:root{--bg:#0a0a0a;--surface:#111;--surface-elevated:#181818;--surface-secondary:#000;--text-on-secondary:#fff;--text:#b3b3b3;--text-h:#fff;--text-muted:#737373;--border:#2a2a2a;--border-secondary:#2a2a2a;--black:#0a0a0a;--white:#fff;--gray-100:#1a1a1a;--gray-200:#2a2a2a;--gray-400:#737373;--gray-600:#b3b3b3;--red:#f87171;--yellow:#facc15;--green:#4ade80;--btn-primary-bg:var(--white);--btn-primary-text:var(--black);--btn-secondary-bg:var(--surface-elevated);--btn-secondary-text:var(--text-h);--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;font:16px/150% var(--sans);color:var(--text);background:var(--bg);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:before,:after{box-sizing:border-box}body{background:var(--bg);min-height:100svh;color:var(--text);-webkit-text-size-adjust:100%;overscroll-behavior-y:none;margin:0}button,input,select,textarea{touch-action:manipulation}#root{min-height:100svh}.app-loading{min-height:100svh;color:var(--text-muted);justify-content:center;align-items:center;font-size:14px;display:flex}.panel-secondary{background:var(--surface-secondary);color:var(--text-on-secondary);border:1px solid var(--border-secondary);--text-h:var(--text-on-secondary);--text:#b3b3b3;--gray-400:#737373;--gray-600:#b3b3b3;--gray-100:#1a1a1a;--gray-200:#2a2a2a;--border:var(--border-secondary);border-radius:8px}.auth-page{min-height:100svh;padding:24px;padding-top:max(24px, env(safe-area-inset-top,0px));padding-bottom:max(24px, env(safe-area-inset-bottom,0px));justify-content:center;align-items:center;display:flex}.auth-card{width:100%;max-width:380px;padding:28px 24px}.auth-title{letter-spacing:-.03em;color:var(--text-h);text-align:center;margin:0 0 24px;font-size:24px;font-weight:600}.auth-title span{color:var(--gray-400);font-weight:500}.auth-tabs{border-bottom:1px solid var(--border);gap:4px;margin-bottom:24px;display:flex}.auth-tab{color:var(--gray-400);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;flex:1;margin-bottom:-1px;padding:10px 0;font-family:inherit;font-size:14px;font-weight:500}.auth-tab--active{color:var(--text-h);border-bottom-color:var(--text-h)}.auth-form{flex-direction:column;gap:16px;display:flex}.auth-field{color:var(--gray-600);flex-direction:column;gap:6px;font-size:14px;display:flex}.auth-field input{border:1px solid var(--border);min-height:48px;color:var(--text-h);background:var(--surface-elevated);border-radius:6px;padding:12px;font-family:inherit;font-size:16px}.auth-field input:focus{outline:2px solid var(--text-h);outline-offset:-1px}.auth-error{color:var(--red);margin:0;font-size:14px}.auth-message{color:var(--gray-600);margin:0;font-size:14px}.auth-invite-banner{color:var(--gray-600);background:var(--gray-100);border:1px solid var(--border);text-align:center;border-radius:6px;margin:0 0 16px;padding:10px 12px;font-size:14px}.auth-submit{color:var(--btn-primary-text);background:var(--btn-primary-bg);cursor:pointer;-webkit-tap-highlight-color:transparent;border:none;border-radius:6px;min-height:48px;margin-top:4px;padding:14px 12px;font-family:inherit;font-size:16px;font-weight:600}.auth-submit:hover:not(:disabled){opacity:.85}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-resend{color:var(--gray-600);cursor:pointer;text-align:left;background:0 0;border:none;padding:0;font-family:inherit;font-size:14px}.auth-resend:hover:not(:disabled){color:var(--text-h);text-decoration:underline}.auth-resend:disabled{opacity:.6;cursor:not-allowed}.auth-code-form{border-top:1px solid var(--border);flex-direction:column;gap:12px;margin-top:24px;padding-top:24px;display:flex}.auth-code-form__heading{color:var(--text-h);margin:0;font-size:15px;font-weight:600}.auth-code-form__hint{color:var(--gray-600);margin:0;font-size:13px;line-height:1.5}.auth-code-form input{letter-spacing:.2em;text-align:center;font-family:ui-monospace,monospace;font-size:22px}.auth-submit--secondary{background:var(--surface-elevated);color:var(--text-h);border:1px solid var(--border)}@media (width<=640px){.auth-page{padding:16px;padding-top:max(16px, env(safe-area-inset-top,0px));align-items:flex-start}.auth-card{margin-top:8vh;padding:24px 20px}.auth-tab{min-height:44px}}.account-menu{margin-left:auto;position:relative}.account-menu__trigger{border:1px solid var(--border);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border-radius:999px;justify-content:center;align-items:center;width:40px;height:40px;padding:0;font-family:inherit;transition:border-color .15s,background .15s;display:flex}.account-menu__trigger:hover{border-color:var(--text-muted);background:var(--surface-elevated)}.account-menu--open .account-menu__trigger{border-color:var(--text-h);background:var(--surface-elevated)}.account-menu__avatar{color:var(--text-h);font-size:14px;font-weight:600;line-height:1}.account-menu__dropdown{background:var(--surface-elevated);border:1px solid var(--border);z-index:30;border-radius:8px;flex-direction:column;gap:2px;min-width:160px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000073}.account-menu__item{text-align:left;color:var(--text-h);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;min-height:44px;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500}.account-menu__item:hover{background:var(--surface)}.account-menu__item--danger{color:var(--red)}@media (width<=768px){.account-menu__trigger{width:44px;height:44px}.account-menu__dropdown{top:auto;left:16px;right:16px;bottom:calc(68px + env(safe-area-inset-bottom,0px));min-width:0;position:fixed}}.add-action{align-items:center;display:flex;position:relative}.add-action__trigger{-webkit-tap-highlight-color:transparent;border:1px solid var(--border);background:var(--btn-primary-bg);width:44px;height:44px;color:var(--btn-primary-text);cursor:pointer;border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;font-family:inherit;font-size:22px;font-weight:400;line-height:1;transition:transform .2s,opacity .15s;display:flex}.add-action__trigger:hover{opacity:.9}.add-action--open .add-action__trigger{transform:rotate(45deg)}.add-action__menu{background:var(--surface-elevated);border:1px solid var(--border);z-index:20;border-radius:8px;flex-direction:column;gap:2px;min-width:180px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;box-shadow:0 12px 32px #00000073}.add-action__item{text-align:left;color:var(--text-h);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500}.add-action__item:hover{background:var(--surface)}@media (width<=768px){.add-action__menu{top:auto;left:16px;right:16px;bottom:calc(68px + env(safe-area-inset-bottom,0px));z-index:60;min-width:0;position:fixed}.add-action__item{min-height:48px;padding:12px 14px;font-size:15px}}.expenses-panel{padding:20px}.expenses-heading{color:var(--text-h);margin:0 0 16px;font-size:16px;font-weight:600}.expense-form{flex-direction:column;gap:14px;display:flex}.expense-form-row{grid-template-columns:1fr 1fr;gap:12px;display:grid}.expense-field{color:var(--gray-600);flex-direction:column;gap:6px;font-size:13px;display:flex}.expense-field--grow{flex:1}.expense-field input,.expense-field select{border:1px solid var(--border);color:var(--text-h);background:var(--surface-elevated);border-radius:6px;padding:9px 11px;font-family:inherit;font-size:14px}.expense-field input:focus,.expense-field select:focus{outline:2px solid var(--text-h);outline-offset:-1px}.expense-inline{align-items:flex-end;gap:8px;display:flex}.expense-inline input{border:1px solid var(--border);color:var(--text-h);border-radius:6px;flex:1;padding:9px 11px;font-family:inherit;font-size:14px}.expense-btn{cursor:pointer;white-space:nowrap;border:none;border-radius:6px;padding:9px 14px;font-family:inherit;font-size:14px;font-weight:500}.expense-btn--primary{background:var(--btn-primary-bg);color:var(--btn-primary-text)}.expense-btn--primary:hover:not(:disabled){opacity:.85}.expense-btn--secondary{background:var(--gray-100);color:var(--text-h);border:1px solid var(--border)}.expense-btn--secondary:hover:not(:disabled){background:var(--gray-200)}.expense-btn:disabled{opacity:.6;cursor:not-allowed}.participant-list{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.participant-chip{background:var(--gray-100);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:13px;display:inline-flex}.participant-chip button{cursor:pointer;color:var(--gray-600);background:0 0;border:none;padding:0;font-family:inherit;font-size:16px;line-height:1}.expense-hint{color:var(--gray-400);margin:6px 0 0;font-size:12px}.expense-error{color:var(--red);margin:0;font-size:14px}.expense-warnings{color:var(--gray-600);margin:0;padding-left:18px;font-size:13px}.expenses-empty{color:var(--gray-400);margin:0;font-size:14px}.expense-date-groups{flex-direction:column;gap:20px;display:flex}.expense-date-group__heading{color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em;margin:0 0 10px;font-size:13px;font-weight:600}.expense-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.expense-row{border:1px solid var(--border);background:var(--gray-100);border-radius:8px;overflow:hidden}.expense-row--group{border-color:var(--border)}.expense-row__summary{cursor:pointer;text-align:left;background:0 0;border:none;grid-template-columns:1fr auto auto;align-items:center;gap:12px;width:100%;padding:12px 14px;font-family:inherit;display:grid}.expense-row__summary:hover{background:#ffffff08}.expense-row__labels{flex-direction:column;gap:2px;min-width:0;display:flex}.expense-row__item{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.expense-row__meta{color:var(--gray-400);text-transform:uppercase;letter-spacing:.04em;font-size:11px}.expense-row__amount-col{flex-direction:column;align-items:flex-end;gap:2px;display:flex}.expense-row__amount{color:var(--text-h);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:14px;font-weight:600}.expense-row__chevron{color:var(--gray-400);text-align:center;width:20px;font-size:18px;line-height:1}.expense-detail{border-top:1px solid var(--border);background:var(--surface-secondary);flex-direction:column;gap:14px;padding:14px;display:flex}.expense-detail__grid{grid-template-columns:1fr 1fr;gap:10px 16px;margin:0;display:grid}.expense-detail__row{flex-direction:column;gap:2px;display:flex}.expense-detail__row dt{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-400);font-size:11px;font-weight:600}.expense-detail__row dd{color:var(--text-h);margin:0;font-size:14px}.expense-detail__section{flex-direction:column;gap:6px;display:flex}.expense-detail__label{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-400);margin:0;font-size:11px;font-weight:600}.expense-detail__value{color:var(--text-h);margin:0;font-size:14px}.expense-detail__balances,.expense-detail__items{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.expense-detail__balances li,.expense-detail__item-main{color:var(--text-h);justify-content:space-between;gap:12px;font-size:14px;display:flex}.expense-detail__paid-note{color:var(--gray-400);font-size:12px}.expense-detail__item{border:1px solid var(--border);background:var(--gray-100);border-radius:6px;flex-direction:column;gap:6px;padding:10px 12px;display:flex}.expense-detail__item-main{font-weight:500}.expense-detail__item-meta{color:var(--gray-600);margin:0;font-size:12px}.expense-detail__actions{justify-content:flex-end;padding-top:4px;display:flex}.expense-detail__item--split{gap:10px}.settle-up{border-top:1px solid var(--border);flex-direction:column;gap:10px;padding-top:12px;display:flex}.settle-up__heading{text-transform:uppercase;letter-spacing:.04em;color:var(--gray-400);margin:0;font-size:11px;font-weight:600}.settle-up__block{flex-direction:column;gap:10px;display:flex}.settle-up__status{color:var(--gray-600);margin:0;font-size:13px}.settle-up__btn{align-self:flex-start}.settle-up__pending,.settle-up__owner-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.settle-up__pending-item,.settle-up__owner-item{color:var(--text-h);border:1px solid var(--border);background:var(--gray-100);border-radius:6px;flex-direction:column;gap:8px;padding:10px 12px;font-size:13px;display:flex}.settle-up__pending-actions{flex-wrap:wrap;gap:8px;display:flex}.expense-delete{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px}.expense-delete:hover:not(:disabled){text-decoration:underline}.expense-delete:disabled{opacity:.6;cursor:not-allowed}.expense-form-actions{justify-content:flex-end;gap:8px;margin-top:4px;display:flex}.expense-item-desc{color:var(--text-h);margin:0 0 4px;font-size:14px;font-weight:500}.expense-item-meta{color:var(--gray-400);margin:0;font-size:12px}.expense-item-amount{color:var(--text-h);white-space:nowrap;margin:0;font-size:14px;font-weight:600}.expense-item-participants{color:var(--gray-600);margin:8px 0 0;font-size:12px}.split-expense-list{flex-direction:column;gap:12px;display:flex}.split-expense-card{padding:16px 18px}.split-expense-header{margin-bottom:14px}.split-expense-desc{color:var(--text-h);margin:0 0 4px;font-size:15px;font-weight:600}.split-expense-meta{color:var(--gray-400);margin:0;font-size:12px}.split-table{border-collapse:collapse;width:100%;font-size:14px}.split-table th{text-align:left;color:var(--text-h);border-bottom:1px solid var(--border);padding:8px 0;font-weight:600}.split-table th:last-child,.split-table td:last-child{text-align:right}.split-table td{border-bottom:1px solid var(--border);color:var(--text-h);padding:10px 0}.split-table tbody tr:last-child td{border-bottom:none}.split-table-amount{font-variant-numeric:tabular-nums;font-weight:600}.split-table-paid{color:var(--gray-400);font-size:12px;font-weight:400}.expense-split-toggle{color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:500;display:inline-flex}.expense-split-toggle input{width:16px;height:16px;accent-color:var(--text-h)}.expense-split-section{border:1px solid var(--border);background:var(--gray-100);border-radius:8px;flex-direction:column;gap:14px;padding:14px;display:flex}.expense-split-methods{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.expense-split-methods legend{color:var(--gray-600);margin-bottom:4px;padding:0;font-size:13px}.expense-radio{color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.expense-radio input{accent-color:var(--text-h)}.expense-field-label{color:var(--gray-600);margin:0 0 8px;font-size:13px}.expense-custom-shares{flex-direction:column;gap:8px;display:flex}.expense-custom-share-row{color:var(--text-h);grid-template-columns:1fr 120px;align-items:center;gap:10px;font-size:13px;display:grid}.expense-custom-share-row input{border:1px solid var(--border);color:var(--text-h);background:var(--surface-elevated);border-radius:6px;padding:9px 11px;font-family:inherit;font-size:14px}@media (width<=640px){.expense-form-row{grid-template-columns:1fr}.expense-inline{flex-direction:column;align-items:stretch}.expense-row__summary{grid-template-columns:1fr auto;gap:8px;min-height:56px;padding:14px 12px}.expense-row__chevron{display:none}.expense-row__amount-col{align-items:flex-end}.expense-detail__grid,.expense-custom-share-row{grid-template-columns:1fr}.expense-btn{min-height:44px;padding:11px 16px}.settle-up__btn{align-self:stretch;width:100%}.settle-up__pending-actions{flex-direction:column}.settle-up__pending-actions .expense-btn{width:100%}.expense-field input,.expense-field select{min-height:48px;font-size:16px}}.modal-overlay{z-index:100;-webkit-backdrop-filter:blur(8px);background:#000000a6;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-panel{border-radius:12px;width:100%;max-width:480px;max-height:calc(100svh - 48px);overflow-y:auto;box-shadow:0 20px 40px #0006}.modal-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.modal-title{color:var(--text-h);margin:0;font-size:16px;font-weight:600}.modal-close{color:var(--gray-400);cursor:pointer;background:0 0;border:none;padding:0 4px;font-family:inherit;font-size:24px;line-height:1}.modal-close:hover{color:var(--text-h)}.modal-body{padding:20px}.modal-panel--fixed{flex-direction:column;max-width:560px;height:min(620px,100svh - 48px);display:flex;overflow:hidden}.modal-panel--fixed .modal-body{flex-direction:column;flex:1;min-height:0;padding:0;display:flex;overflow:hidden}@media (width<=640px){.modal-overlay{align-items:flex-end;padding:0}.modal-panel{max-height:calc(92svh - env(safe-area-inset-bottom,0px));border-radius:16px 16px 0 0;max-width:none}.modal-panel--fixed{height:min(620px, calc(92svh - env(safe-area-inset-bottom,0px)))}.modal-header{padding:16px}.modal-close{justify-content:center;align-items:center;min-width:44px;min-height:44px;display:flex}.modal-panel:not(.modal-panel--fixed) .modal-body{padding:16px}}.group-expense-form{flex-direction:column;height:100%;min-height:0;display:flex}.group-expense-form__scroll{flex-direction:column;flex:1;gap:14px;min-height:0;padding:20px;display:flex;overflow-y:auto}.group-expense-form__footer{border-top:1px solid var(--border);background:var(--surface-secondary);flex-direction:column;flex-shrink:0;gap:12px;padding:16px 20px;display:flex}.group-expense-form__add-item{width:100%}.group-expense-form__actions{justify-content:flex-end;gap:8px;display:flex}.group-expense-items{flex-direction:column;gap:12px;display:flex}.group-expense-items__heading{color:var(--text-h);margin:0;font-size:14px;font-weight:600}.group-expense-items__hint{margin:-4px 0 0}.group-expense-item{border:1px solid var(--border);background:var(--gray-100);border-radius:8px;flex-direction:column;gap:12px;padding:14px;display:flex}.group-expense-item__header{justify-content:space-between;align-items:center;gap:12px;display:flex}.group-expense-item__label{color:var(--text-h);font-size:13px;font-weight:600}.group-expense-item__remove{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px}.group-expense-item__remove:hover{text-decoration:underline}.group-expense-item__split{border:none;flex-direction:column;gap:8px;margin:0;padding:0;display:flex}.group-expense-item__split legend{color:var(--gray-600);margin-bottom:4px;padding:0;font-size:13px}.expense-checkbox{color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:inline-flex}.expense-checkbox input{width:16px;height:16px;accent-color:var(--text-h)}@media (width<=640px){.group-expense-form__scroll{padding:16px}.group-expense-form__footer{padding:14px 16px calc(14px + env(safe-area-inset-bottom,0px))}.group-expense-form__actions{flex-direction:column-reverse}.group-expense-form__actions .expense-btn{width:100%;min-height:48px}.group-expense-item__header{flex-wrap:wrap}}.users-panel{flex-direction:column;gap:20px;display:flex}.users-section{padding:20px}.users-heading{color:var(--text-h);margin:0 0 8px;font-size:16px;font-weight:600}.users-section__hint{color:var(--gray-400);margin:0 0 16px;font-size:13px;line-height:1.5}.users-hint{color:var(--gray-400);margin:0;font-size:13px}.users-form{flex-direction:column;gap:14px;display:flex}.users-field{color:var(--gray-600);flex-direction:column;gap:6px;font-size:13px;display:flex}.users-field input{border:1px solid var(--border);color:var(--text-h);background:var(--surface-elevated);border-radius:6px;padding:9px 11px;font-family:inherit;font-size:14px}.users-field input:disabled{background:var(--gray-100);color:var(--gray-600)}.users-field input:focus{outline:2px solid var(--black);outline-offset:-1px}.users-error{color:var(--red);margin:0;font-size:14px}.users-message{color:var(--gray-600);margin:0;font-size:14px}.users-empty{color:var(--gray-400);margin:0;font-size:14px}.users-directory-list,.users-contact-list{flex-direction:column;gap:8px;margin:12px 0 0;padding:0;list-style:none;display:flex}.users-directory-item,.users-contact-item{border:1px solid var(--border);background:var(--gray-100);border-radius:8px;justify-content:space-between;align-items:center;gap:12px;padding:12px;display:flex}.users-directory-item__info,.users-contact-item__info{flex-direction:column;gap:2px;min-width:0;display:flex}.users-directory-item__name,.users-contact-item__name{color:var(--text-h);font-size:14px;font-weight:500}.users-directory-item__email,.users-contact-item__email,.users-contact-item__phone{color:var(--gray-600);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.users-directory-item__add{flex-shrink:0}.users-contact-remove{color:var(--red);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:8px 4px;font-family:inherit;font-size:12px}.users-contact-remove:hover:not(:disabled){text-decoration:underline}.users-contact-remove:disabled{opacity:.6;cursor:not-allowed}.users-invite-list{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.users-invite-item{border:1px solid var(--border);border-radius:6px;justify-content:space-between;align-items:center;gap:12px;padding:10px 12px;font-size:14px;display:flex}.users-invite-actions{align-items:center;gap:10px;display:flex}.users-invite-delete{color:var(--red);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px}.users-invite-delete:hover:not(:disabled){text-decoration:underline}.users-invite-delete:disabled{opacity:.6;cursor:not-allowed}.users-invite-status{text-transform:capitalize;color:var(--gray-400);font-size:12px}.users-invite-status--accepted{color:var(--green)}.users-invite-status--pending{color:var(--yellow)}@media (width<=640px){.users-section{padding:16px}.users-field input{min-height:48px;font-size:16px}.users-directory-item,.users-contact-item,.users-invite-item{flex-direction:column;align-items:stretch}.users-directory-item__add{width:100%}.users-invite-actions{justify-content:space-between;width:100%}.expense-btn{min-height:44px}}.side-nav{z-index:40;position:fixed;top:53px;bottom:0;left:0}.side-nav-panel{background:var(--surface-elevated);border-right:1px solid var(--border);white-space:nowrap;flex-direction:column;gap:4px;width:12px;padding:16px 0;transition:width .22s;display:flex;position:absolute;top:0;bottom:0;left:0;overflow:hidden}.side-nav:hover .side-nav-panel,.side-nav:focus-within .side-nav-panel{width:160px;padding:16px 12px}.side-nav-label{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);opacity:0;margin:0 0 8px;padding:0 8px;font-size:11px;font-weight:600;transition:opacity .15s}.side-nav:hover .side-nav-label,.side-nav:focus-within .side-nav-label{opacity:1}.side-nav-item{text-align:left;color:var(--text);cursor:pointer;background:0 0;border:none;border-radius:6px;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:500;transition:background .15s,color .15s}.side-nav-item:hover,.side-nav-item--active{background:var(--surface);color:var(--text-h)}.mobile-nav{display:none}@media (width<=768px){.side-nav{display:none}.mobile-nav{z-index:50;background:var(--surface);border-top:1px solid var(--border);padding:6px 12px calc(6px + env(safe-area-inset-bottom,0px));gap:8px;display:flex;position:fixed;bottom:0;left:0;right:0}.mobile-nav-item{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:8px;flex:1;min-height:44px;padding:10px 12px;font-family:inherit;font-size:14px;font-weight:600;transition:background .15s,color .15s}.mobile-nav-item--active{background:var(--surface-elevated);color:var(--text-h)}}.widget-panel{flex-direction:column;gap:16px;min-width:0;min-height:320px;padding:20px;display:flex;position:sticky;top:24px}.widget-panel__picker{background:var(--gray-100);border:1px solid var(--border);border-radius:8px;flex-wrap:wrap;gap:4px;padding:4px;display:flex}.widget-panel__picker-btn{min-width:0;color:var(--gray-400);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:6px;flex:1;padding:8px 10px;font-family:inherit;font-size:12px;font-weight:500}.widget-panel__picker-btn:hover{color:var(--text-h)}.widget-panel__picker-btn--active{background:var(--surface-elevated);color:var(--text-h)}.widget-panel__content{flex:1;min-height:0}.widget-panel__empty,.widget-chart__empty{color:var(--gray-400);margin:0;font-size:14px}.widget-chart__title{color:var(--text-h);margin:0 0 12px;font-size:15px;font-weight:600}.widget-chart__body{flex-direction:column;align-items:center;gap:20px;display:flex}.widget-chart__donut-wrap{aspect-ratio:1;width:min(100%,220px);position:relative}.widget-chart__svg{width:100%;height:100%;display:block}.widget-chart__center{pointer-events:none;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:0 24px;display:flex;position:absolute;inset:0}.widget-chart__center-label{text-transform:uppercase;letter-spacing:.05em;color:var(--gray-400);font-size:10px;font-weight:600}.widget-chart__center-value{color:var(--text-h);font-variant-numeric:tabular-nums;font-size:15px;font-weight:700;line-height:1.2}.widget-chart__legend{flex-direction:column;gap:8px;width:100%;margin:0;padding:0;list-style:none;display:flex}.widget-chart__legend-item{grid-template-columns:12px 1fr auto;align-items:center;gap:8px;font-size:13px;display:grid}.widget-chart__swatch{border-radius:2px;flex-shrink:0;width:12px;height:12px}.widget-chart__legend-label{color:var(--text-h);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.widget-chart__legend-value{color:var(--gray-600);font-variant-numeric:tabular-nums;white-space:nowrap}.widget-chart__legend-pct{color:var(--gray-400);margin-left:4px;font-size:12px}@media (width<=900px){.widget-panel{min-height:280px;position:static}}@media (width<=768px){.widget-panel{min-height:240px;padding:16px}.widget-panel__picker-btn{min-height:44px;font-size:13px}}.app{background:var(--bg);flex-direction:column;min-height:100svh;display:flex}.app-layout{--mobile-nav-offset:0px}@media (width<=768px){.app-layout{--mobile-nav-offset:calc(56px + env(safe-area-inset-bottom,0px))}.app-layout .main{padding-bottom:var(--mobile-nav-offset)}}.header{padding:16px 24px;padding-top:max(16px, env(safe-area-inset-top,0px));border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:12px;display:flex}.sign-out{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;min-width:44px;min-height:44px;margin-left:auto;padding:10px 4px;font-family:inherit;font-size:14px}.sign-out:hover{color:var(--text-h)}.status-dot{border-radius:50%;flex-shrink:0;width:10px;height:10px}.status-dot--disconnected{background:var(--red)}.status-dot--connecting{background:var(--yellow)}.status-dot--connected{background:var(--green)}.logo{letter-spacing:-.02em;color:var(--text-h);font-size:16px;font-weight:600}.logo span{color:var(--text-muted);font-weight:500}.main{flex:1;min-width:0}@media (width<=768px){.header{padding-left:16px;padding-right:16px}}.landing-main{flex-direction:column;align-items:stretch;gap:16px;width:100%;max-width:720px;margin:0 auto;padding:24px;display:flex}.landing-main--expenses{max-width:none;margin:0;padding:24px 24px 24px 36px}.landing-main--narrow{max-width:720px;margin:0 auto}.expenses-split{grid-template-columns:1fr 1fr;align-items:start;gap:24px;width:100%;display:grid}.expenses-split__left{flex-direction:column;gap:16px;min-width:0;display:flex}.landing-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.expense-view-tabs{background:var(--surface);border:1px solid var(--border);border-radius:8px;gap:4px;min-width:0;padding:4px;display:flex}.expense-view-tab{color:var(--text-muted);cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;min-height:44px;padding:8px 14px;font-family:inherit;font-size:13px;font-weight:500;transition:background .15s,color .15s}.expense-view-tab:hover{color:var(--text-h)}.expense-view-tab--active{background:var(--surface-elevated);color:var(--text-h)}.landing-notice{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;margin:0;padding:12px 16px 12px 32px;font-size:13px}@media (width<=900px){.expenses-split{grid-template-columns:1fr}}@media (width<=768px){.landing-main,.landing-main--expenses{padding:16px}}@media (width<=640px){.landing-toolbar{flex-direction:row;align-items:center}.expense-view-tabs{flex:1;min-width:0}.expense-view-tab{text-align:center;flex:1;padding:8px 6px;font-size:12px}}
