:root{--canvas: #f5f7f6;--ink: #202725;--muted: #63716a;--line: #dce3df;--accent: #156e56;--accent-soft: #e4f0eb;--warning: #c38a36;--danger: #b84f42;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ink);background:var(--canvas);font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{min-width:320px;min-height:100vh;min-height:100dvh;margin:0}button,a{font:inherit}.app-shell{width:min(100% - 40px,960px);min-height:100vh;min-height:100dvh;margin:0 auto;padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom)}.topbar{display:flex;min-height:68px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.wordmark{display:inline-flex;align-items:center;gap:10px;color:inherit;font-size:16px;font-weight:700;text-decoration:none}.wordmark-mark{display:grid;width:30px;height:30px;place-items:center;border-radius:7px;background:var(--accent);color:#fff}.connection{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:12px}.connection-dot{width:7px;height:7px;border-radius:50%;background:var(--warning)}.connection-connected .connection-dot{background:#23815f}.connection-unavailable .connection-dot{background:var(--danger)}.auth-status{margin:12px 0 0;color:var(--danger);font-size:12px}.home-screen-action{min-height:34px;padding:0 8px;border:1px solid var(--line);border-radius:5px;background:transparent;color:var(--accent);font-size:12px;cursor:pointer}.primary-tabs{display:flex;gap:24px;border-bottom:1px solid var(--line)}.tab{flex:0 0 auto;min-height:48px;padding:0 2px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-size:13px;font-weight:550;cursor:pointer}.tab:hover{color:var(--ink)}.tab-active{border-bottom-color:var(--accent);color:var(--accent)}.tab:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.page-content{padding:34px 0 64px}.page-heading{padding-bottom:26px}.eyebrow{margin:0 0 8px;color:var(--muted);font-size:12px}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:28px;line-height:1.2}h2{margin-bottom:0;font-size:18px;line-height:1.3}.summary-row{display:flex;align-items:center;gap:40px;padding-bottom:30px;border-bottom:1px solid var(--line)}.summary-label{margin-bottom:8px;color:var(--muted);font-size:13px}.summary-value{margin:0;font-size:30px;font-weight:650;line-height:1.1}.summary-value span{color:var(--muted);font-size:18px;font-weight:500}.summary-rule{width:1px;height:42px;background:var(--line)}.content-section{padding-top:24px}.content-section h2{font-size:16px}.family-panel{padding:24px 0;border-bottom:1px solid var(--line)}.family-panel h2{margin-bottom:14px;font-size:16px}.account-panel{padding-top:18px}.account-list{border-top:1px solid var(--line)}.account-row{display:flex;min-height:68px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.account-primary{display:grid;min-width:0;gap:5px}.account-name{overflow-wrap:anywhere;font-size:14px;font-weight:600}.account-meta{color:var(--muted);font-size:12px}.account-balance{flex:0 0 auto;font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}.account-form,.account-type-form{display:grid;max-width:680px;gap:8px;padding-top:20px}.account-form-grid{display:grid;grid-template-columns:minmax(120px,1fr) minmax(120px,.8fr) minmax(140px,.9fr) auto;gap:8px}.account-form-grid input,.account-form-grid select,.account-type-form input{min-width:0;min-height:38px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.account-form-grid :focus,.account-type-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.family-count{margin:0;color:var(--muted);font-size:13px}.family-forms{display:grid;max-width:480px;gap:20px}.family-forms form{display:grid;gap:8px}.field-label{color:var(--muted);font-size:12px}.form-row,.invite-row{display:flex;align-items:center;gap:10px}.form-row input{min-width:0;min-height:38px;flex:1;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font-size:14px}.form-row input:focus{outline:2px solid var(--accent);outline-offset:1px}.text-button{min-height:36px;padding:0 10px;border:0;border-radius:5px;background:var(--accent-soft);color:var(--accent);font-size:13px;font-weight:600;cursor:pointer}.text-button:disabled{opacity:.55;cursor:wait}.invite-block{display:grid;max-width:480px;gap:8px;margin-top:14px}.invite-row{justify-content:space-between}.invite-row code{overflow-wrap:anywhere;color:var(--ink);font-size:13px}.form-error{margin:10px 0 0;color:var(--danger);font-size:12px}.finance-tabs{display:flex;gap:20px;overflow-x:auto;border-bottom:1px solid var(--line);scrollbar-width:none}.finance-tabs::-webkit-scrollbar{display:none}.finance-tabs .tab{min-height:44px}.operation-modes{display:inline-flex;gap:4px;margin:18px 0 6px;padding:3px;border:1px solid var(--line);border-radius:6px}.operation-modes button{min-height:32px;padding:0 10px;border:0;border-radius:4px;background:transparent;color:var(--muted);font-size:12px;cursor:pointer}.operation-modes .mode-active{background:var(--accent-soft);color:var(--accent);font-weight:650}.operation-type-tabs{display:flex;gap:22px;border-bottom:1px solid var(--line)}.operation-type-tabs .tab{min-height:42px}.transaction-panel{max-width:560px}.transaction-form{display:grid;gap:8px;padding-top:18px}.transaction-form input,.transaction-form select,.inline-category-form input{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.transaction-form :focus,.inline-category-form input:focus{outline:2px solid var(--accent);outline-offset:1px}.transaction-form .text-button{justify-self:start;margin-top:10px}.category-field{display:flex;gap:8px}.category-field select{flex:1}.inline-category-form{display:flex;gap:8px}.inline-category-form input{flex:1}.transaction-saved{margin:12px 0 0;color:var(--accent);font-size:13px}.history-panel{padding-top:36px}.history-panel h2{margin-bottom:16px;font-size:16px}.history-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding-bottom:18px}.history-filters input,.history-filters select{min-width:0;min-height:36px;padding:0 8px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:12px}.history-list{border-top:1px solid var(--line)}.history-row{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.history-primary{display:grid;min-width:0;gap:5px}.history-operation{overflow-wrap:anywhere;font-size:13px;font-weight:600}.history-amount{flex:0 0 auto;font-size:13px;font-variant-numeric:tabular-nums;font-weight:600}.history-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}.transaction-editing{margin:0;font-size:14px;font-weight:600}.dashboard-flows{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;padding:16px 0;border-bottom:1px solid var(--line)}.dashboard-flows>div,.dashboard-event{display:flex;align-items:center;justify-content:space-between;gap:12px}.dashboard-flows span,.dashboard-event span{color:var(--muted);font-size:13px}.dashboard-flows strong,.dashboard-event strong{font-size:14px;font-variant-numeric:tabular-nums}.dashboard-events{display:grid}.dashboard-event{min-height:48px;border-bottom:1px solid var(--line)}.dashboard-notices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.dashboard-notices h2{margin:0 0 8px}.dashboard-notices p{color:var(--muted);font-size:13px}@media(max-width:420px){.dashboard-flows{grid-template-columns:1fr;gap:12px}}@media(max-width:420px){.dashboard-notices{grid-template-columns:1fr;gap:16px}}.history-empty{padding:20px 0;color:var(--muted);font-size:13px}.history-more{margin-top:14px}.import-panel{padding-top:28px}.import-form{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.import-form input{min-width:0;max-width:100%;font:inherit;font-size:13px}.import-counts{color:var(--muted);font-size:13px}.import-preview{max-height:260px;overflow:auto;border-top:1px solid var(--line)}.import-preview-row{display:grid;grid-template-columns:82px minmax(72px,1fr) minmax(0,2fr);gap:10px;padding:9px 0;border-bottom:1px solid var(--line);font-size:12px}.import-preview-row span{overflow-wrap:anywhere}.import-preview-row span:nth-child(2){color:var(--muted)}.export-actions{display:flex;flex-wrap:wrap;align-items:end;gap:10px}.export-actions label{display:grid;min-width:min(100%,240px);gap:6px}.export-actions select{min-width:0;min-height:38px;padding:0 8px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.budget-panel{max-width:720px}.budget-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:18px 0 8px}.budget-toolbar select,.budget-category-row select,.budget-category-row input,.budget-date-row input{min-width:0;min-height:38px;padding:0 9px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:13px}.budget-toolbar select{flex:1 1 250px}.budget-date-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.budget-date-row label{display:grid;gap:6px}.budget-date-row input{width:100%}.budget-category-fields{display:grid;gap:9px;padding-top:12px}.budget-category-fields h2{margin:0 0 2px;font-size:15px}.budget-category-row{display:grid;grid-template-columns:minmax(100px,1fr) minmax(95px,140px) auto;gap:8px}.budget-form-actions{display:flex;flex-wrap:wrap;gap:8px;padding-top:12px}.budget-form-fields{display:grid;gap:8px;min-width:0;margin:0;padding:0;border:0}.budget-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;padding:20px 0;border-bottom:1px solid var(--line)}.budget-summary>div{display:grid;gap:7px}.budget-summary span,.budget-plans dt{color:var(--muted);font-size:12px}.budget-summary strong{font-size:18px;font-variant-numeric:tabular-nums}.budget-plans{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:0;padding:16px 0;border-bottom:1px solid var(--line)}.budget-plans div{display:grid;gap:6px}.budget-plans dd{margin:0;font-size:14px;font-weight:600;font-variant-numeric:tabular-nums}.budget-category-list{border-top:1px solid var(--line)}.budget-category-result{display:grid;grid-template-columns:minmax(100px,1fr) auto auto;align-items:center;gap:12px;min-height:46px;border-bottom:1px solid var(--line);font-size:13px}.budget-category-result span:first-child{overflow-wrap:anywhere}.budget-category-result span:nth-child(2){color:var(--muted);font-variant-numeric:tabular-nums}.budget-category-result strong{font-variant-numeric:tabular-nums}.recurring-panel{max-width:680px}.recurring-form{padding-top:22px}.recurring-form h2{margin:0 0 4px;font-size:16px}.recurring-cadence{display:grid;grid-template-columns:110px minmax(0,1fr);gap:8px}.recurring-cadence input,.recurring-cadence select,.recurring-dates input{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.recurring-dates{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.recurring-dates label{display:grid;gap:6px}.recurring-dates input{width:100%}.recurring-row{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.loan-panel{max-width:620px}.loan-form{padding-top:22px}.loan-form h2{margin:0 0 4px;font-size:16px}.loan-form input,.loan-form select,.loan-date-grid input{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.loan-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.loan-date-grid label{display:grid;gap:6px}.loan-date-grid input{width:100%}.loan-row{display:flex;min-height:62px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.loan-values{display:grid;justify-items:end;gap:4px;white-space:nowrap}.loan-values strong{font-size:14px;font-variant-numeric:tabular-nums}.loan-values span{color:var(--muted);font-size:11px}.debt-panel{max-width:680px}.debt-form{padding-top:22px}.debt-form h2{margin:0 0 4px;font-size:16px}.debt-form input,.debt-form select,.debt-date-grid input,.debt-payment-form input{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.debt-date-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.debt-date-grid label{display:grid;gap:6px}.debt-date-grid input{width:100%}.debt-row{display:flex;min-height:72px;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.debt-values{display:grid;justify-items:end;gap:6px}.debt-values>strong{font-size:14px;font-variant-numeric:tabular-nums}.debt-payment-form{display:flex;gap:6px}.debt-payment-form input{width:110px;min-height:34px;padding:0 8px;font-size:12px}.debt-payment-form .text-button{min-height:34px}.investment-panel{max-width:760px}.investment-select-label{display:grid;max-width:420px;gap:6px;padding-top:18px}.investment-select-label select,.investment-actions input,.investment-actions select,.investment-create-form input{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.investment-create-form{max-width:500px;padding-top:22px}.investment-create-form h2,.investment-actions h2{margin:0 0 4px;font-size:16px}.investment-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.investment-summary>div{display:grid;gap:6px}.investment-summary span{color:var(--muted);font-size:12px}.investment-summary strong{overflow-wrap:anywhere;font-size:15px;font-variant-numeric:tabular-nums}.investment-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.investment-actions>form{align-content:start}.investment-history-row{display:flex;min-height:44px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);font-size:13px}.investment-history-row strong{font-variant-numeric:tabular-nums}.goal-panel{max-width:720px}.goal-select-label{display:grid;max-width:420px;gap:6px;padding-top:18px}.goal-select-label select,.goal-create-form input,.goal-create-form select,.goal-create-form textarea,.goal-transfer-form input,.goal-transfer-form select{min-width:0;min-height:40px;padding:0 10px;border:1px solid #cbd6d0;border-radius:5px;background:#fff;color:var(--ink);font:inherit;font-size:14px}.goal-create-form{max-width:520px;padding-top:22px}.goal-create-form h2,.goal-transfer-form h2{margin:0 0 4px;font-size:16px}.goal-create-form textarea{min-height:84px;padding:9px 10px;resize:vertical}.goal-priority-fieldset{display:grid;gap:6px;margin:0;padding:0;border:0}.goal-priority-fieldset legend{padding:0 0 4px;color:var(--muted);font-size:12px}.goal-summary{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px 0;border-bottom:1px solid var(--line)}.goal-summary>div{display:grid;gap:6px}.goal-summary span{color:var(--muted);font-size:12px}.goal-summary strong{overflow-wrap:anywhere;font-size:15px;font-variant-numeric:tabular-nums}.goal-transfer-form{max-width:540px;padding-top:22px}@media(max-width:520px){.recurring-dates{grid-template-columns:1fr}.recurring-row{align-items:flex-start;padding:10px 0}}@media(max-width:520px){.loan-date-grid{grid-template-columns:1fr}.loan-row{align-items:flex-start;padding:10px 0}.debt-date-grid{grid-template-columns:1fr}.debt-row{align-items:flex-start;padding:10px 0}.debt-payment-form{flex-wrap:wrap;justify-content:flex-end}.goal-summary{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:600px){.investment-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.investment-actions{grid-template-columns:1fr;gap:20px}}@media(max-width:520px){.budget-summary,.budget-plans{grid-template-columns:1fr;gap:10px}.budget-summary>div,.budget-plans div{grid-template-columns:1fr auto;align-items:baseline}.budget-date-row{grid-template-columns:1fr}.budget-category-row{grid-template-columns:minmax(0,1fr) 100px}.budget-category-row .text-button{grid-column:1 / -1;justify-self:start}.budget-category-result{grid-template-columns:minmax(80px,1fr) auto;gap:6px}.budget-category-result strong{grid-column:2}}.empty-state{display:grid;min-height:176px;justify-items:center;align-content:center;gap:12px;border-bottom:1px solid var(--line);color:#68756f;font-size:13px}.empty-state p{margin:0}.empty-mark{display:grid;width:40px;height:40px;place-items:center;border:1px solid #cbd6d0;border-radius:50%;color:var(--accent);font-size:17px}@media(max-width:600px){.app-shell{width:calc(100% - 32px)}.primary-tabs{position:fixed;z-index:2;right:0;bottom:0;left:0;justify-content:space-around;gap:0;padding:0 8px env(safe-area-inset-bottom);border-top:1px solid var(--line);border-bottom:0;background:var(--canvas)}.primary-tabs .tab{min-width:54px;min-height:54px;font-size:11px}.page-content{padding-top:28px;padding-bottom:94px}.page-heading{padding-bottom:22px}.finance-tabs{gap:16px;overflow-x:auto;overscroll-behavior-x:contain;scrollbar-width:none;-webkit-overflow-scrolling:touch}.finance-tabs::-webkit-scrollbar{display:none}.summary-row{gap:22px}.summary-value{font-size:26px}.account-form-grid{grid-template-columns:1fr 1fr}.account-form-grid .text-button{grid-column:1 / -1}.history-filters{grid-template-columns:repeat(2,minmax(0,1fr))}}
