@charset "UTF-8";
:root{color-scheme:light;--bg:#f6f7f4;--surface:#fff;--surface-alt:#f8faf7;--sidebar:#fff;--text:#263b34;--heading:#21392f;--muted:#87928b;--border:#e8ede8;--primary:#2e6653;--primary-hover:#24533f;--primary-soft:#e9f3ec;--primary-faint:#f2f7f2;--primary-rgb:46,102,83;--income:#3f8063;--income-soft:#eaf4ed;--expense:#c18d60;--expense-soft:#faf0e6;--danger:#bf5e59;--danger-soft:#fceeed;--purple:#8b80b6;--blue:#7494b0;--shadow:0 4px 24px rgba(30,54,39,.025);--shadow-hover:0 10px 30px rgba(30,54,39,.075);--radius:18px;--radius-sm:10px;--ease:cubic-bezier(.2,.7,.2,1);--font:Inter,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif;--display:Georgia,"Times New Roman","Songti SC",serif}
[data-theme="minimal"]{--bg:#f7f7f7;--surface:#fff;--surface-alt:#f7f7f7;--sidebar:#fff;--text:#393939;--heading:#191919;--muted:#868686;--border:#e8e8e8;--primary:#252525;--primary-hover:#000;--primary-soft:#ededed;--primary-faint:#f5f5f5;--primary-rgb:37,37,37;--income:#477b64;--income-soft:#edf4f0;--expense:#9c765e;--expense-soft:#f5f0eb;--shadow:none;--radius:10px;--radius-sm:6px;--display:var(--font)}
[data-theme="tech"]{color-scheme:dark;--bg:#0c1421;--surface:#131f30;--surface-alt:#182639;--sidebar:#101b2b;--text:#c6d5e7;--heading:#edf8ff;--muted:#7d93ab;--border:#22344a;--primary:#6ddbc9;--primary-hover:#9cf1df;--primary-soft:#183b40;--primary-faint:#152c35;--primary-rgb:109,219,201;--income:#79d5b1;--income-soft:#19392f;--expense:#e1b27c;--expense-soft:#3a3029;--danger:#f39696;--danger-soft:#38252f;--purple:#afa4ed;--blue:#80b9e7;--shadow:0 4px 24px rgba(0,0,0,.1);--shadow-hover:0 12px 32px rgba(0,0,0,.2);--display:Consolas,"SFMono-Regular",monospace}
*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font:14px/1.65 var(--font);-webkit-font-smoothing:antialiased;overflow-wrap:break-word}a{color:inherit;text-decoration:none;transition:color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease)}button,input,select,textarea{font:inherit}button{cursor:pointer}button,input,select,textarea,a,summary{ -webkit-tap-highlight-color:transparent;transition:background .22s var(--ease),border-color .22s var(--ease),box-shadow .22s var(--ease),color .22s var(--ease),opacity .22s var(--ease),transform .22s var(--ease)}button:active,.button:active{transform:translateY(1px) scale(.98)}button:disabled{cursor:wait;opacity:.6}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(var(--primary-rgb),.32);outline-offset:3px}h1,h2,h3,h4,p{margin:0}h1,h2,h3,h4{color:var(--heading)}h1{font-size:29px;font-weight:650;line-height:1.4;letter-spacing:.025em}h2{font-size:16px;font-weight:650}h3{font-size:14px;font-weight:650}strong{font-weight:600}small{font-size:12px}svg{display:block}svg.icon{flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}.icon-library{position:absolute;width:0;height:0;overflow:hidden}.muted{color:var(--muted)}.text-income{color:var(--income)}.text-expense{color:var(--expense)}.text-danger{color:var(--danger)}.tabular{font-variant-numeric:tabular-nums}.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}.skip-link{position:fixed;left:16px;top:-100px;z-index:100;background:var(--primary);color:var(--surface);padding:12px 20px;border-radius:8px}.skip-link:focus{top:16px}
.app-shell{display:flex;min-height:100vh}.sidebar{position:fixed;inset:0 auto 0 0;width:236px;padding:37px 22px 0;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:20}.brand{display:flex;gap:13px;align-items:center;width:max-content}.brand:hover{opacity:.8}.brand-mark{display:block;position:relative;width:35px;height:40px;flex-shrink:0}.brand-mark span{position:absolute;background:var(--primary);width:16px;height:28px;border-radius:15px 15px 5px 15px;transform:rotate(-28deg);bottom:4px;left:2px}.brand-mark span:nth-child(2){left:15px;bottom:9px;height:33px;transform:rotate(28deg);opacity:.72}.brand-mark span:nth-child(3){left:7px;bottom:0;width:26px;height:8px;border-radius:50%;opacity:.28;transform:rotate(0)}.brand-name{font-size:25px;font-weight:650;letter-spacing:.14em;line-height:1.2;color:var(--heading)}.brand-name small{display:block;font-size:8px;letter-spacing:.18em;font-weight:500;color:var(--muted);margin-top:8px}.nav-caption{font-size:10px;letter-spacing:.16em;color:var(--muted);padding:0 17px;margin:58px 0 16px}.nav-items{display:grid;gap:9px}.nav-item{display:flex;align-items:center;gap:13px;padding:13px 17px;border-radius:10px;color:var(--muted);font-size:13px;position:relative;white-space:nowrap}.nav-item .icon{width:18px;height:18px}.nav-item:hover{color:var(--primary);background:var(--primary-faint);transform:translateX(2px)}.nav-item.is-active{color:var(--primary);background:var(--primary-soft);font-weight:600}.nav-indicator{width:5px;height:5px;background:currentColor;border-radius:50%;margin-left:auto;opacity:0}.is-active .nav-indicator{opacity:1}.sidebar-note{margin:auto 17px 34px;padding-top:80px}.tiny-label{font-size:8px;letter-spacing:.18em;color:var(--muted)}.sidebar-note p{font-family:var(--display);font-size:18px;line-height:1.9;letter-spacing:.12em;color:var(--muted);margin-top:11px}.note-line{display:block;width:28px;height:2px;background:var(--primary);opacity:.4;margin-top:24px}.sidebar-footer{display:flex;align-items:center;gap:10px;border-top:1px solid var(--border);margin:0 -22px;padding:20px 20px}.family-avatar{width:34px;height:34px;background:var(--primary-soft);border:1px solid var(--border);color:var(--primary);border-radius:50%;display:grid;place-items:center;flex-shrink:0;font-size:14px}.account-copy{min-width:0;flex:1;line-height:1.4}.account-copy strong{display:block;font-size:12px}.account-copy span{display:block;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;font-size:9px;color:var(--muted);margin-top:4px}.sidebar-footer .icon-button{width:28px;height:30px}.sidebar-footer .icon{width:16px;height:16px}.app-main{margin-left:236px;flex:1;min-width:0}.topbar{height:76px;border-bottom:1px solid var(--border);padding:0 40px;display:flex;align-items:center;justify-content:space-between;background:var(--surface)}.topbar-context{display:flex;gap:10px;align-items:center;font-size:11px}.status-dot{width:6px;height:6px;border-radius:50%;background:var(--income);box-shadow:0 0 0 3px var(--income-soft)}.topbar-divider{color:var(--border);margin:0 5px}.topbar-profile{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--muted)}.topbar-profile:hover{color:var(--primary)}.topbar-profile .icon{width:16px;height:16px}.page-content{max-width:1580px;margin:0 auto;padding:34px 40px 0}.page-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.eyebrow{font-size:9px;letter-spacing:.19em;color:var(--muted);font-weight:500}.page-heading h1{margin-top:7px}.page-description{font-size:12px;color:var(--muted);margin-top:7px}.heading-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.month-picker{display:flex;align-items:center;gap:5px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:3px 5px}.month-picker input{border:0;background:transparent;box-shadow:none;padding:5px 4px;min-height:31px;width:137px;font-size:12px}.month-picker input:focus{box-shadow:none}.month-picker .icon{width:16px;height:16px}.month-picker .icon-button{width:26px;height:30px}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid transparent;background:var(--primary);color:#fff;min-height:41px;padding:9px 17px;font-size:12px;border-radius:var(--radius-sm);font-weight:550;white-space:nowrap;line-height:1.5}.button:hover{background:var(--primary-hover);box-shadow:0 4px 12px rgba(var(--primary-rgb),.15);transform:translateY(-1px)}[data-theme="tech"] .button{color:#0c2527}.button .icon{width:16px;height:16px}.button-secondary{background:var(--surface);border-color:var(--border);color:var(--text)!important}.button-secondary:hover{background:var(--surface-alt);border-color:var(--primary);box-shadow:none}.button-ghost{background:transparent;color:var(--primary)!important;padding:7px 9px;min-height:32px}.button-ghost:hover{background:var(--primary-soft);box-shadow:none}.button-danger{background:var(--danger);color:#fff!important}.button-danger:hover{background:var(--danger);filter:brightness(.95)}.button-small{min-height:32px;padding:6px 11px;font-size:11px}.button-full{width:100%}.icon-button{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid transparent;background:transparent;color:var(--muted);border-radius:8px;padding:7px;flex-shrink:0}.icon-button:hover{color:var(--primary);background:var(--primary-soft)}.icon-button.danger:hover{color:var(--danger);background:var(--danger-soft)}.text-link{color:var(--primary);font-size:12px;display:inline-flex;gap:6px;align-items:center}.text-link:hover{opacity:.8;transform:translateX(2px)}.text-link .icon{width:14px;height:14px}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-bottom:23px}.stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:21px 22px;position:relative;overflow:hidden;box-shadow:var(--shadow);animation:rise-in .55s var(--ease) both}.stat-card:nth-child(2){animation-delay:.05s}.stat-card:nth-child(3){animation-delay:.1s}.stat-card:nth-child(4){animation-delay:.15s}.stat-card:hover{box-shadow:var(--shadow-hover);transform:translateY(-2px)}.stat-label{display:flex;justify-content:space-between;align-items:center;color:var(--muted);font-size:11px}.stat-icon{display:grid;place-items:center;width:30px;height:30px;background:var(--income-soft);color:var(--income);border-radius:9px}.stat-icon.expense{background:var(--expense-soft);color:var(--expense)}.stat-icon .icon{width:16px;height:16px}.stat-value{font-family:var(--display);color:var(--heading);font-weight:400;font-variant-numeric:tabular-nums;font-size:33px;letter-spacing:-.04em;line-height:1.35;margin-top:11px;white-space:nowrap}.stat-value .currency{font:14px var(--font);margin-right:5px;vertical-align:6px;color:var(--muted)}.stat-note{margin-top:11px;font-size:10px;color:var(--muted);display:flex;align-items:center;gap:5px}.stat-note .icon{width:11px;height:11px}.stat-card.featured{background:var(--primary);border-color:var(--primary);color:#fff}.featured .stat-label,.featured .stat-note,.featured .currency{color:rgba(255,255,255,.7)}.featured .stat-value{color:#fff}.featured .stat-icon{background:rgba(255,255,255,.13);color:#fff}.featured::after{content:"";position:absolute;width:150px;height:150px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-70px;bottom:-74px;box-shadow:0 0 0 24px rgba(255,255,255,.035),0 0 0 48px rgba(255,255,255,.025)}[data-theme="tech"] .featured{background:linear-gradient(135deg,#184645,#173349);border-color:#26565b}.content-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);gap:22px;align-items:start}.content-stack{display:grid;gap:22px;min-width:0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;animation:rise-in .55s var(--ease) both;animation-delay:.12s}.panel-header{padding:23px 24px 0;display:flex;justify-content:space-between;align-items:center;gap:15px}.panel-title{display:flex;align-items:center;gap:9px}.panel-title .icon{width:17px;height:17px;color:var(--muted)}.panel-subtitle{font-size:10px;color:var(--muted);margin-top:4px}.panel-body{padding:22px 24px 24px}.panel-footer{padding:14px 24px;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}.chart-legend{display:flex;gap:17px;align-items:center;font-size:10px;color:var(--muted);flex-wrap:wrap}.legend-key{display:inline-flex;gap:6px;align-items:center}.legend-dot{display:inline-block;width:7px;height:7px;border-radius:50%;flex-shrink:0;background:var(--primary)}.legend-dot.expense{background:var(--expense)}.legend-dot.purple{background:var(--purple)}.legend-dot.blue{background:var(--blue)}.chart{position:relative;min-height:210px;width:100%}.chart svg{width:100%;height:auto;overflow:visible}.chart .chart-grid{stroke:var(--border);stroke-dasharray:3 5;stroke-width:1}.chart .chart-axis{fill:var(--muted);font:10px var(--font)}.chart .chart-line{fill:none;stroke-width:2.5;stroke-linejoin:round;stroke-linecap:round;animation:draw-in 1s var(--ease) both}.chart .line-primary{stroke:var(--income)}.chart .line-secondary{stroke:var(--expense)}.chart .chart-area{fill:var(--primary-soft);opacity:.55}.chart .chart-hit{fill:transparent;cursor:crosshair}.chart .chart-point{fill:var(--surface);stroke-width:2;stroke:var(--income);opacity:0;transition:opacity .2s}.chart .chart-hit:hover+.chart-point,.chart .chart-hit:focus+.chart-point{opacity:1}.chart-tip{position:absolute;z-index:2;pointer-events:none;left:50%;top:6px;transform:translateX(-50%);background:var(--heading);color:var(--surface);font-size:11px;padding:8px 12px;border-radius:8px;box-shadow:var(--shadow-hover);max-width:90%;text-align:center}.chart-tip:empty{display:none}.chart-empty{min-height:210px;display:flex;align-items:center;justify-content:center;text-align:center;flex-direction:column;gap:10px;color:var(--muted);font-size:12px;background:repeating-linear-gradient(to bottom,transparent 0,transparent 51px,var(--border) 52px,transparent 53px);border-radius:8px}.chart-empty .icon{color:var(--primary);opacity:.45;width:29px;height:29px}.chart-empty small{font-size:10px;max-width:250px}.donut-layout{display:flex;align-items:center;gap:25px}.donut-chart{width:160px;min-height:160px;flex-shrink:0;position:relative}.donut-chart svg{transform:rotate(-90deg)}.donut-chart .donut-segment{fill:none;stroke-width:23;transition:stroke-width .2s,opacity .2s;animation:donut-in .8s var(--ease) both}.donut-chart .donut-segment:hover,.donut-chart .donut-segment:focus{stroke-width:28;outline:none}.donut-center{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;pointer-events:none}.donut-center span{font-size:10px;color:var(--muted)}.donut-center strong{font:25px var(--display);margin-top:3px;letter-spacing:-.04em;color:var(--heading)}.category-legend{flex:1;min-width:0;display:grid;gap:13px}.category-line{display:flex;align-items:center;gap:7px;font-size:10px}.category-line .category-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.category-line strong{font-size:11px;white-space:nowrap;font-weight:500;font-variant-numeric:tabular-nums}.category-line .percentage{width:33px;text-align:right;color:var(--muted);font-size:9px}.color-0{background:var(--primary)}.color-1{background:var(--expense)}.color-2{background:var(--purple)}.color-3{background:var(--blue)}.color-4{background:#a3b58d}.color-5{background:#b7a68b}.color-6{background:#ba91a0}.color-7{background:#8fb5b5}.chart-data{margin-top:14px;font-size:10px;color:var(--muted)}.chart-data summary{cursor:pointer;display:inline-block;font-size:10px;padding:4px 0}.chart-data summary:hover{color:var(--primary)}.chart-data table{margin-top:8px;font-size:10px}.chart-data table th,.chart-data table td{padding:7px}.evaluation-panel{background:var(--primary-faint)}.evaluation-top{display:flex;align-items:center;gap:13px}.evaluation-badge{width:44px;height:44px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;border-radius:50%;flex-shrink:0}.evaluation-top h3{font-size:17px}.evaluation-top p{font-size:10px;color:var(--muted);margin-top:2px}.evaluation-copy{font-size:12px;line-height:1.85;margin-top:15px;color:var(--text)}.evaluation-metrics{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.evaluation-metrics span{font-size:10px;color:var(--muted);display:block}.evaluation-metrics strong{font:25px var(--display);color:var(--primary);display:block;margin-top:4px}.evaluation-rule{font-size:9px;line-height:1.7;color:var(--muted);margin-top:19px;display:flex;align-items:flex-start;gap:6px}.evaluation-rule .icon{width:12px;height:12px;flex-shrink:0;margin-top:2px}.budget-track{height:6px;background:var(--border);border-radius:99px;overflow:hidden;margin:12px 0 9px}.budget-track progress{display:block;width:100%;height:100%;appearance:none;border:none;background:transparent}.budget-track progress::-webkit-progress-bar{background:transparent}.budget-track progress::-webkit-progress-value{background:var(--primary);border-radius:99px;transition:width .6s var(--ease)}.budget-track progress::-moz-progress-bar{background:var(--primary);border-radius:99px}.budget-track.is-over progress::-webkit-progress-value{background:var(--danger)}.budget-caption{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted)}.budget-value{font-family:var(--display);font-size:25px;color:var(--heading)}.budget-value small{font:11px var(--font);color:var(--muted);margin-left:5px}.necessity-list{display:grid;gap:16px}.necessity-row-top{display:flex;justify-content:space-between;gap:10px;font-size:11px}.necessity-row-top span{display:flex;align-items:center;gap:7px}.necessity-row-top strong{font-weight:500;font-variant-numeric:tabular-nums}.necessity-progress{height:4px;width:100%;appearance:none;border:0;background:var(--border);display:block;margin-top:8px;border-radius:99px}.necessity-progress::-webkit-progress-bar{background:var(--border);border-radius:99px}.necessity-progress::-webkit-progress-value{background:var(--primary);border-radius:99px}.necessity-progress::-moz-progress-bar{background:var(--primary);border-radius:99px}.necessity-row:nth-child(2n) progress::-webkit-progress-value{background:var(--expense)}.necessity-row:nth-child(3n) progress::-webkit-progress-value{background:var(--purple)}
.transaction-list{display:grid}.transaction-row{display:flex;align-items:center;gap:13px;padding:16px 0;border-bottom:1px solid var(--border)}.transaction-row:last-child{border-bottom:0;padding-bottom:0}.transaction-row:first-child{padding-top:0}.transaction-glyph{height:35px;width:35px;display:grid;place-items:center;border-radius:11px;background:var(--expense-soft);color:var(--expense);flex-shrink:0}.transaction-glyph.income{background:var(--income-soft);color:var(--income)}.transaction-glyph .icon{width:17px;height:17px}.transaction-copy{flex:1;min-width:0}.transaction-copy strong{display:block;font-size:12px;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.transaction-copy small{color:var(--muted);font-size:10px;display:block;margin-top:2px}.transaction-amount{font-size:13px;white-space:nowrap;font-weight:550;font-variant-numeric:tabular-nums}.transaction-date{font-size:9px;color:var(--muted);text-align:right;margin-top:3px}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:37px 20px;gap:9px;color:var(--muted)}.empty-state .empty-icon{width:48px;height:48px;display:grid;place-items:center;color:var(--primary);background:var(--primary-faint);border-radius:15px;margin-bottom:4px}.empty-state h3{font-size:13px;font-weight:500}.empty-state p{font-size:11px;max-width:290px}.empty-state .button{margin-top:8px}.empty-state.compact{padding:24px 10px}.empty-state.compact p{font-size:10px}.page-footer{display:flex;justify-content:space-between;align-items:center;padding:31px 0 23px;gap:12px;font-size:9px;color:var(--muted);letter-spacing:.03em}.page-footer>span:last-child{display:flex;align-items:center;gap:5px}.page-footer .icon{width:12px;height:12px}.table-panel{overflow:hidden}.table-scroll{overflow-x:auto;width:100%;scrollbar-width:thin}table{width:100%;border-collapse:collapse;font-size:12px;text-align:left}thead{background:var(--surface-alt);color:var(--muted)}th{padding:13px 20px;font-size:10px;font-weight:500;white-space:nowrap}td{padding:17px 20px;border-bottom:1px solid var(--border);vertical-align:middle}tbody tr{transition:background .2s var(--ease)}tbody tr:hover{background:var(--primary-faint)}tbody tr:last-child td{border-bottom:0}td .cell-main{font-weight:500;color:var(--heading)}td .cell-secondary{display:block;font-size:10px;color:var(--muted);margin-top:4px;max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.amount-cell{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:13px;font-weight:550}.actions-cell{white-space:nowrap;text-align:right}.actions-cell>form{display:inline-block}.actions-cell .icon-button{width:29px;height:29px;padding:6px}.actions-cell .icon{width:15px;height:15px}.pill{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:3px 7px;background:var(--surface-alt);font-size:9px;white-space:nowrap;color:var(--muted);border:1px solid var(--border);transition:background .2s,transform .2s}.pill:hover{transform:translateY(-1px)}.pill-income{background:var(--income-soft);color:var(--income);border-color:transparent}.pill-expense{background:var(--expense-soft);color:var(--expense);border-color:transparent}.filter-bar{display:flex;align-items:end;gap:12px;flex-wrap:wrap;padding:21px 24px;border-bottom:1px solid var(--border)}.filter-field{display:grid;gap:6px;min-width:105px;flex:1}.filter-field label{font-size:10px;color:var(--muted)}.filter-field.search-field{flex:1.8}.filter-field input,.filter-field select{font-size:11px;min-height:36px;padding:7px 10px}.filter-bar .button{min-height:36px;font-size:11px}.filter-reset{font-size:10px;align-self:center;color:var(--muted);padding-top:20px}.filter-reset:hover{color:var(--primary)}.table-summary{display:flex;justify-content:space-between;gap:12px;padding:15px 24px;border-bottom:1px solid var(--border);font-size:10px;color:var(--muted)}.table-summary strong{font-size:11px}.summary-amounts{display:flex;gap:18px;flex-wrap:wrap}.pagination{display:flex;align-items:center;justify-content:space-between;padding:18px 24px;border-top:1px solid var(--border);font-size:10px;color:var(--muted);gap:10px}.pagination-links{display:flex;align-items:center;gap:9px}.pagination-current{padding:5px 10px;color:var(--primary);background:var(--primary-soft);border-radius:7px}.pagination .icon-button{border-color:var(--border);width:28px;height:28px;padding:5px}.pagination .icon{width:13px;height:13px}.section-spacer{margin-top:24px}.section-title{margin:26px 0 16px;display:flex;justify-content:space-between;align-items:center;gap:15px}.section-title p{font-size:11px;color:var(--muted);margin-top:4px}.asset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px}.asset-card{padding:21px 22px}.asset-card-top{display:flex;gap:11px;align-items:center}.asset-card-top>div:nth-child(2){flex:1;min-width:0}.asset-card h3{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:13px}.asset-card .asset-type{font-size:10px;color:var(--muted);margin-top:3px}.asset-card .stat-value{font-size:28px;margin-top:22px}.asset-card-bottom{border-top:1px solid var(--border);padding-top:15px;margin-top:18px;display:flex;align-items:center;justify-content:space-between;gap:8px}.asset-updated{font-size:9px;color:var(--muted)}.asset-card-actions{display:flex;gap:2px}.asset-card-actions .icon-button{width:27px;height:27px;padding:6px}.asset-card-actions .icon{width:14px;height:14px}.asset-add-card{border:1px dashed var(--border);background:transparent;border-radius:var(--radius);min-height:208px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:10px;color:var(--muted)}.asset-add-card:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-faint);transform:translateY(-2px)}.asset-add-card .icon{width:25px;height:25px}.asset-add-card span{font-size:12px}.asset-add-card small{font-size:10px}.notice-strip{display:flex;align-items:flex-start;gap:9px;background:var(--primary-faint);border:1px solid var(--border);border-radius:10px;padding:13px 16px;font-size:11px;color:var(--muted);line-height:1.75}.notice-strip .icon{width:15px;height:15px;color:var(--primary);flex-shrink:0;margin-top:2px}.settings-layout{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,1fr);gap:22px;align-items:start}.settings-section{scroll-margin-top:20px}.settings-section .panel-header{padding-top:24px}.section-heading-icon{width:31px;height:31px;background:var(--primary-faint);color:var(--primary);border-radius:9px;display:grid;place-items:center;margin-right:1px}.section-heading-icon .icon{width:16px;height:16px}.theme-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:18px 0}.theme-option{cursor:pointer;position:relative;display:block;min-width:0}.theme-option input{position:absolute;opacity:0;width:1px;height:1px}.theme-preview{background:#f6f7f4;border:2px solid var(--border);border-radius:10px;overflow:hidden;height:80px;display:flex;padding:9px 7px;gap:5px;transition:border-color .2s,transform .2s,box-shadow .2s}.theme-option:hover .theme-preview{transform:translateY(-2px)}.theme-option input:checked+.theme-preview{border-color:var(--primary);box-shadow:0 0 0 2px var(--primary-soft)}.theme-option input:focus-visible+.theme-preview{outline:3px solid rgba(var(--primary-rgb),.4);outline-offset:3px}.preview-sidebar{width:17px;background:white;border-radius:3px;display:grid;gap:4px;align-content:start;padding:4px 3px}.preview-sidebar i{height:3px;width:100%;background:#dde8df;border-radius:2px}.preview-main{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:4px;align-content:start;padding-top:6px}.preview-main i{height:17px;border-radius:3px;background:white;border:1px solid #e8ede8}.preview-main i:first-child{background:#2e6653;border-color:#2e6653}.preview-main i:last-child{grid-column:1/-1;height:23px}.preview-minimal{background:#f4f4f4}.preview-minimal .preview-main i{border-radius:1px}.preview-minimal .preview-main i:first-child{background:#292929;border-color:#292929}.preview-minimal .preview-sidebar i{background:#ddd}.preview-tech{background:#0c1421}.preview-tech .preview-sidebar{background:#152237}.preview-tech .preview-main i{background:#172a3e;border-color:#24384d}.preview-tech .preview-main i:first-child{background:#24585a;border-color:#6ddbc9}.preview-tech .preview-sidebar i{background:#346c6c}.theme-name{display:flex;justify-content:center;gap:5px;align-items:center;font-size:11px;margin-top:9px}.theme-name .icon{width:12px;height:12px;opacity:0;color:var(--primary)}.theme-option:has(input:checked) .theme-name{color:var(--primary);font-weight:600}.theme-option:has(input:checked) .theme-name .icon{opacity:1}.list-settings{display:grid;gap:0}.setting-row{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:1px solid var(--border)}.setting-row:first-child{padding-top:0}.setting-row:last-child{border-bottom:0}.setting-row .setting-copy{flex:1;min-width:0}.setting-row strong{font-size:12px;font-weight:500;display:block}.setting-row small{font-size:10px;color:var(--muted);display:block;overflow:hidden;text-overflow:ellipsis}.setting-row .actions-cell{display:flex;gap:2px}.inline-form{display:flex;gap:8px;align-items:end;margin-top:18px;padding-top:18px;border-top:1px solid var(--border)}.inline-form .form-field{flex:1;margin:0}.inline-form .button{min-height:40px}.security-note{display:flex;gap:10px;align-items:flex-start;margin-top:18px}.security-note .icon{width:17px;height:17px;color:var(--primary);margin-top:2px}.security-note p{font-size:10px;color:var(--muted);line-height:1.85}.invite-link{word-break:break-all;padding:12px;background:var(--surface-alt);border:1px solid var(--border);border-radius:8px;font-size:11px}.settings-tabs{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:24px}.settings-tabs a{font-size:11px;color:var(--muted);background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:8px 13px}.settings-tabs a:hover{color:var(--primary);border-color:var(--primary)}
input,select,textarea{display:block;width:100%;border:1px solid var(--border);border-radius:8px;background:var(--surface);color:var(--text);padding:10px 12px;min-height:41px;font-size:12px;max-width:100%;line-height:1.5}input:hover,select:hover,textarea:hover{border-color:rgba(var(--primary-rgb),.4)}input:focus,select:focus,textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-soft);outline:none}input::placeholder,textarea::placeholder{color:var(--muted);opacity:.8}textarea{min-height:86px;resize:vertical}input[type="checkbox"],input[type="radio"]{width:16px;height:16px;min-height:0;accent-color:var(--primary);cursor:pointer;display:inline-block}input[type="color"]{padding:4px;width:54px;height:38px}input[type="file"]{padding:8px}input[type="number"]{font-variant-numeric:tabular-nums}label{font-size:11px;color:var(--text);display:block;margin-bottom:6px}.form-field{margin-bottom:17px;min-width:0}.form-field:last-child{margin-bottom:0}.checkbox-field{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.checkbox-field label{margin:0;cursor:pointer}.checkbox-field .field-help{width:100%;padding-left:24px;margin-top:-3px}.required-mark{color:var(--muted);font-weight:400}.field-help{color:var(--muted);font-size:10px;line-height:1.75;margin-top:6px}.field-help ul{margin:5px 0;padding-left:17px}.field-help a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}.field-errors{color:var(--danger);font-size:10px;margin-top:5px}.field-errors ul,.form-errors ul{padding:0;margin:0;list-style:none}.has-error input,.has-error select,.has-error textarea{border-color:var(--danger)}.form-errors{background:var(--danger-soft);border:1px solid var(--danger);color:var(--danger);border-radius:8px;padding:10px 12px;font-size:11px;margin-bottom:18px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-actions{display:flex;justify-content:flex-end;gap:9px;align-items:center;margin-top:24px;padding-top:19px;border-top:1px solid var(--border)}.form-actions .button{min-width:85px}.form-hint{font-size:10px;color:var(--muted);line-height:1.8;margin:15px 0}.dialog{color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:20px;padding:0;max-width:min(500px,calc(100% - 28px));width:500px;max-height:calc(100dvh - 40px);box-shadow:0 20px 100px rgba(0,0,0,.15);overflow:auto;overscroll-behavior:contain}.dialog[open]{animation:dialog-in .25s var(--ease)}.dialog::backdrop{background:rgba(15,32,24,.35);backdrop-filter:blur(5px);animation:fade-in .2s}.dialog-header{padding:22px 25px 0;display:flex;align-items:start;justify-content:space-between;gap:12px}.dialog-header h2{font-size:18px;margin-top:3px}.dialog-header p{font-size:11px;color:var(--muted);margin-top:6px}.dialog-body{padding:23px 25px 25px}.dialog-header .icon-button{margin:-4px -7px 0 0}.dialog-wide{width:660px;max-width:min(660px,calc(100% - 28px))}.dialog-small{width:400px}.confirm-copy{font-size:12px;color:var(--muted);line-height:1.9}.confirm-copy strong{color:var(--text)}.dialog .form-field input,.dialog .form-field select{min-height:42px}.messages{display:grid;gap:9px;margin-bottom:20px}.message{display:flex;align-items:center;gap:10px;font-size:12px;border:1px solid var(--border);border-radius:10px;background:var(--primary-soft);color:var(--primary);padding:10px 13px;animation:rise-in .3s var(--ease)}.message>.icon{width:16px;height:16px}.message>span{flex:1}.message .icon-button{width:25px;height:25px;padding:5px}.message .icon-button .icon{width:14px;height:14px}.message-error{background:var(--danger-soft);color:var(--danger)}.message-warning{background:var(--expense-soft);color:var(--expense)}
.auth-body{background:var(--surface)}.auth-layout{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr}.auth-story{background:var(--primary-faint);position:relative;padding:45px 10%;display:flex;flex-direction:column;overflow:hidden}.auth-story .brand-name{font-size:28px}.auth-story-copy{margin:auto 0;padding:60px 0 25px;position:relative}.auth-story-copy .eyebrow{font-size:9px;color:var(--primary);opacity:.6}.auth-story h1{font-family:var(--display);font-size:clamp(30px,3vw,47px);font-weight:400;line-height:1.7;letter-spacing:.08em;margin-top:22px}.auth-story p{font-size:12px;color:var(--muted);line-height:2.1;margin-top:20px;letter-spacing:.03em}.auth-orbit{height:260px;max-width:320px;position:relative;margin:35px auto 0;display:grid;place-items:center}.orbit-ring{position:absolute;left:50%;top:50%;border:1px solid rgba(var(--primary-rgb),.1);border-radius:50%;transform:translate(-50%,-50%)}.ring-one{width:230px;height:230px}.ring-two{width:310px;height:310px}.orbit-core{width:190px;height:155px;background:var(--surface);border:1px solid var(--border);box-shadow:0 10px 40px rgba(var(--primary-rgb),.04);border-radius:20px;padding:21px 20px 18px;transform:rotate(-5deg);animation:float 7s ease-in-out infinite}.orbit-core svg{height:85px;width:100%;fill:none;stroke:var(--primary);stroke-width:2.5;stroke-linecap:round}.orbit-core span{display:block;font-size:9px;text-align:center;letter-spacing:.12em;color:var(--muted);margin-top:9px}.orbit-dot{position:absolute;width:11px;height:11px;background:var(--primary-soft);border:3px solid var(--surface);border-radius:50%;box-shadow:0 0 0 1px var(--border)}.dot-one{top:19px;left:50px}.dot-two{bottom:36px;right:8px;background:var(--expense)}.auth-story-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:9px;letter-spacing:.08em;color:var(--muted);padding-top:30px;white-space:nowrap}.auth-story-footer span{font-size:8px}.auth-panel{display:flex;align-items:center;justify-content:center;padding:60px 35px}.auth-form-wrap{width:100%;max-width:345px;animation:rise-in .5s var(--ease)}.auth-eyebrow{color:var(--primary);font-size:9px;letter-spacing:.17em;margin-bottom:12px}.auth-form-wrap h2{font-size:27px;font-weight:600;letter-spacing:.04em}.auth-subtitle{font-size:12px;line-height:1.9;color:var(--muted);margin:11px 0 29px}.auth-form .form-field{margin-bottom:18px}.auth-form .form-field label{font-size:11px}.auth-form .form-field input{min-height:45px}.auth-form .button-full{min-height:45px;margin-top:5px}.auth-secondary{margin-top:22px;text-align:center;color:var(--muted);font-size:11px}.auth-secondary a{color:var(--primary);margin-left:5px}.auth-secondary a:hover{text-decoration:underline;text-underline-offset:4px}.auth-assurance{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--muted);font-size:9px;margin-top:44px}.auth-assurance .icon{width:12px;height:12px}.auth-form-links{display:flex;justify-content:flex-end;margin:-3px 0 20px}.auth-form-links a{font-size:10px;color:var(--primary)}.auth-status-icon{width:59px;height:59px;border-radius:18px;background:var(--primary-soft);color:var(--primary);display:grid;place-items:center;margin-bottom:24px}.auth-status-icon .icon{width:27px;height:27px}.auth-notice{font-size:12px;line-height:1.95;color:var(--muted);margin:15px 0 25px}.auth-inline-note{font-size:10px;color:var(--muted);line-height:1.8;margin-top:14px}.maintenance-body{min-height:100dvh;display:flex;align-items:center;justify-content:center;padding:30px}.maintenance-card{max-width:480px;text-align:center}.maintenance-card .auth-status-icon{margin:0 auto 25px}.maintenance-card h1{font-size:26px}.maintenance-card p{color:var(--muted);margin-top:15px;font-size:13px;line-height:1.9}.maintenance-card .eyebrow{margin-top:25px;display:block}.error-page{padding:80px 20px;text-align:center}.error-page .auth-status-icon{margin:0 auto 24px}.error-page p{font-size:13px;color:var(--muted);margin:14px 0 22px}
.heading-dot{color:var(--primary)}.stat-unit{font:12px var(--font);color:var(--muted);letter-spacing:0}.unvalued-amount{font:17px var(--font);color:var(--muted);letter-spacing:0}.asset-card-note{font-size:10px;color:var(--muted);margin-top:9px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.asset-card-actions>form{display:inline-flex}.notice-warning{background:var(--expense-soft)}.notice-warning>.icon{color:var(--expense)}.history-table-wrap{margin-top:20px}.history-table-wrap td{font-size:10px;padding:13px 15px}.history-table-wrap th{padding:11px 15px}.history-table-wrap .amount-cell{font-size:12px}.theme-fieldset{border:0;padding:0;margin:0;min-width:0}.theme-fieldset legend{padding:0;font-size:11px;margin:0}.theme-fieldset .theme-options{margin-top:12px;margin-bottom:20px}.profile-email{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:14px 0 0;border-top:1px solid var(--border);font-size:10px;color:var(--muted)}.profile-email strong{font-size:10px;font-weight:400;flex:1;overflow-wrap:anywhere}.profile-email .icon{height:9px;width:9px}.invite-form{border-top:1px solid var(--border);padding-top:20px;margin-top:15px}.invite-form h3,.pending-invites h3{font-size:12px}.invite-form .form-hint{font-size:10px;margin:7px 0 15px}.invite-form .form-field label{font-size:10px}.invite-form .button{margin-top:15px}.pending-invites{border-top:1px solid var(--border);padding-top:20px;margin-top:20px}.pending-invites>h3{margin-bottom:16px}.invite-accept-form{margin-top:22px}.auth-small{font-size:10px;margin-top:12px}.chart-data-note{margin-top:9px;font-size:9px;line-height:1.8}.donut-layout.is-empty{display:block}.donut-layout.is-empty .donut-chart{width:100%;min-height:155px}.donut-layout.is-empty .chart-empty{min-height:155px;background:none}.donut-layout.is-empty .category-legend{display:none}.empty-inline{font-size:11px;color:var(--muted);line-height:1.85}.chart .chart-hit:focus-visible{outline:0;stroke:var(--primary);stroke-width:1;stroke-dasharray:3 3}.donut-chart .donut-segment:focus-visible{stroke-width:28;opacity:.8}.form-field .errorlist{list-style:none;margin:0;padding:0}.setting-copy strong{overflow-wrap:anywhere}.topbar-context{min-width:0}.topbar-context>span:nth-child(2){overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:200px}
@keyframes rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{from{opacity:0}to{opacity:1}}@keyframes dialog-in{from{opacity:0;transform:translateY(12px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes draw-in{from{opacity:0;stroke-dasharray:0 1000}to{opacity:1;stroke-dasharray:1000 0}}@keyframes donut-in{from{opacity:0;stroke-width:15}to{opacity:1;stroke-width:23}}@keyframes float{0%,100%{transform:translateY(0) rotate(-5deg)}50%{transform:translateY(-8px) rotate(-3deg)}}
@media(min-width:1600px){.page-content{padding-top:40px}.content-grid{grid-template-columns:minmax(0,1.7fr) minmax(350px,1fr)}.stat-value{font-size:40px}.stat-card{padding:24px 25px}.sidebar{width:255px}.app-main{margin-left:255px}.page-heading{margin-bottom:32px}.panel-body{padding:25px 27px}.panel-header{padding:25px 27px 0}.chart{min-height:260px}}
@media(max-width:1250px){.sidebar{width:208px;padding-left:17px;padding-right:17px}.app-main{margin-left:208px}.sidebar-footer{margin:0 -17px;padding-left:15px;padding-right:15px}.topbar{padding:0 28px}.page-content{padding:28px 28px 0}.stat-card{padding:18px}.stat-value{font-size:28px}.content-grid{grid-template-columns:minmax(0,1.45fr) minmax(285px,1fr);gap:18px}.content-stack{gap:18px}.panel-header{padding:20px 20px 0}.panel-body{padding:20px}.donut-layout{gap:15px}.donut-chart{width:130px;min-height:130px}.donut-center strong{font-size:22px}.category-line .percentage{display:none}.asset-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:minmax(0,1fr) minmax(290px,1fr);gap:18px}.stats-grid{gap:12px}.theme-options{gap:8px}}
@media(max-width:1050px){.sidebar{width:185px;padding-left:13px;padding-right:13px}.app-main{margin-left:185px}.brand{gap:10px}.brand-name{font-size:23px}.brand-name small{font-size:7px}.nav-item{padding:13px 12px;gap:10px;font-size:12px}.nav-caption{padding-left:12px}.sidebar-footer{margin:0 -13px;padding-left:12px;padding-right:12px}.sidebar-footer .family-avatar{width:29px;height:29px;font-size:12px}.sidebar-footer{gap:8px}.sidebar-footer .icon-button{width:23px;padding:4px}.page-content{padding:25px 24px 0}.topbar{padding:0 24px;height:66px}.stats-grid{gap:12px}.stat-card{padding:17px 16px}.stat-value{font-size:26px}.stat-value .currency{font-size:12px;vertical-align:4px;margin-right:3px}.stat-note{font-size:9px}.stat-icon{width:25px;height:25px;border-radius:7px}.content-grid{grid-template-columns:1fr}.content-grid>.content-stack:last-child{grid-template-columns:1fr 1fr;align-items:start}.content-grid>.content-stack:last-child>.panel:last-child:nth-child(odd){grid-column:1/-1}.donut-layout{gap:25px}.donut-chart{width:155px;min-height:155px}.category-line .percentage{display:block}.settings-layout{grid-template-columns:1fr}.theme-preview{height:100px}.page-heading h1{font-size:26px}.heading-actions{gap:8px}.heading-actions>.button{padding:9px 12px}.month-picker{padding:2px 4px}.month-picker input{width:128px;font-size:11px}.month-picker .icon-button{width:22px}.panel-title h2{font-size:15px}.page-heading{gap:14px}.page-description{font-size:11px}.auth-story{padding-left:10%;padding-right:10%}.auth-story h1{font-size:34px}.auth-story-footer{white-space:normal}.auth-story-footer span{display:none}}
@media(max-width:760px){.sidebar{position:fixed;top:auto;bottom:0;left:0;right:0;width:100%;height:65px;padding:0;border:0;border-top:1px solid var(--border);background:var(--surface);box-shadow:0 -4px 20px rgba(0,0,0,.02);padding-bottom:env(safe-area-inset-bottom);height:calc(65px + env(safe-area-inset-bottom))}.sidebar>.brand,.nav-caption,.sidebar-note,.sidebar-footer{display:none}.nav-items{display:grid;grid-template-columns:repeat(4,1fr);gap:0;height:100%;padding:6px 6px}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;font-size:9px;padding:5px 3px;border-radius:9px}.nav-item .icon{width:19px;height:19px}.nav-item.is-active{background:var(--primary-faint)}.nav-item:hover{transform:translateY(-1px)}.nav-indicator{display:none}.app-main{margin-left:0;margin-bottom:calc(65px + env(safe-area-inset-bottom))}.topbar{height:57px;padding:0 21px}.topbar-context{font-size:10px;gap:8px}.topbar-profile{font-size:10px}.topbar-profile .icon{width:15px;height:15px}.topbar-divider{margin:0 1px}.page-content{padding:23px 20px 0}.page-heading{align-items:start;margin-bottom:21px;gap:14px;flex-wrap:wrap}.page-heading h1{font-size:26px;margin-top:4px}.eyebrow{font-size:8px}.page-description{font-size:10px;margin-top:6px}.heading-actions{gap:8px;margin-top:0}.page-heading>.heading-actions{width:100%;justify-content:space-between;margin-top:2px}.month-picker input{width:133px;font-size:11px}.heading-actions>.button{min-height:37px;font-size:11px}.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:17px}.stat-card{padding:17px 18px;border-radius:14px}.stat-label{font-size:10px}.stat-value{font-size:32px;margin-top:9px}.stat-value .currency{font-size:12px;vertical-align:6px}.stat-note{margin-top:8px;font-size:9px}.stat-icon{width:27px;height:27px}.stat-icon .icon{width:15px;height:15px}.content-grid{gap:17px}.content-stack{gap:17px}.content-grid>.content-stack:last-child{grid-template-columns:1fr 1fr;gap:15px}.panel{border-radius:14px}.panel-header{padding:19px 19px 0}.panel-body{padding:19px}.panel-title h2{font-size:14px}.panel-subtitle{font-size:9px}.chart-legend{font-size:9px;gap:10px}.chart{min-height:190px}.chart-empty{min-height:190px}.donut-layout{justify-content:center;gap:30px}.donut-chart{width:160px;min-height:160px}.category-legend{max-width:240px}.evaluation-top{gap:9px}.evaluation-badge{width:34px;height:34px}.evaluation-badge .icon{width:18px;height:18px}.evaluation-top h3{font-size:15px}.evaluation-copy{font-size:11px;margin-top:13px}.evaluation-metrics{margin-top:17px;gap:10px}.evaluation-metrics span{font-size:9px}.evaluation-metrics strong{font-size:23px}.evaluation-rule{font-size:9px}.panel-footer{padding:12px 19px;font-size:9px}.page-footer{padding:25px 0 20px;font-size:8px;flex-direction:column;align-items:flex-start;gap:7px}.filter-bar{padding:17px;gap:10px}.filter-field{min-width:calc(50% - 6px);flex:1}.filter-field.search-field{flex-basis:100%}.filter-field input,.filter-field select{min-height:38px}.filter-bar .button{flex:1}.filter-reset{padding-top:0;align-self:center}.table-summary{padding:14px 17px;font-size:9px;align-items:start;flex-direction:column;gap:6px}.summary-amounts{gap:14px}.mobile-table thead{display:none}.mobile-table,.mobile-table tbody{display:block}.mobile-table tr{display:flex;flex-wrap:wrap;position:relative;gap:0;padding:15px 17px;border-bottom:1px solid var(--border)}.mobile-table tr:last-child{border:0}.mobile-table td{display:block;border:0;padding:0;font-size:11px}.mobile-table .date-cell{width:100%;font-size:9px;color:var(--muted);margin-bottom:7px}.mobile-table .description-cell{width:calc(100% - 115px);padding-right:12px}.mobile-table .amount-cell{position:absolute;top:35px;right:17px;font-size:14px}.mobile-table .type-cell{width:auto;order:1;margin:9px 5px 0 0}.mobile-table .category-cell{width:auto;order:1;margin:9px 5px 0 0}.mobile-table .necessity-cell{width:auto;order:1;margin:9px 5px 0 0}.mobile-table .member-cell{display:none}.mobile-table .actions-cell{margin-left:auto;order:2;position:relative;top:4px}.mobile-table td .cell-secondary{font-size:9px;max-width:100%;margin-top:2px}.mobile-table td .cell-main{font-size:12px}.pagination{padding:15px 17px;font-size:9px}.asset-grid{gap:13px}.asset-card{padding:17px}.asset-card h3{font-size:12px}.asset-card .stat-value{font-size:27px;margin-top:19px}.asset-card .asset-type{font-size:9px}.asset-card-top{gap:8px}.asset-card-top .transaction-glyph{width:30px;height:30px;border-radius:8px}.asset-card-bottom{flex-wrap:wrap;gap:7px;padding-top:10px;margin-top:14px}.asset-card-actions{margin-left:auto}.asset-updated{font-size:8px}.asset-add-card{min-height:190px}.section-title{margin-top:23px}.section-title h2{font-size:15px}.section-title p{font-size:10px}.notice-strip{font-size:10px;padding:12px 13px}.settings-tabs{gap:7px;margin-bottom:18px}.settings-tabs a{font-size:10px;padding:6px 10px}.settings-layout{gap:17px}.theme-preview{height:88px}.auth-layout{grid-template-columns:1fr;min-height:100dvh}.auth-story{padding:25px 25px;background:var(--primary-faint)}.auth-story .brand-name{font-size:23px}.auth-story .brand-name small{font-size:7px}.auth-story .brand-mark{transform:scale(.85);transform-origin:left center;width:29px}.auth-story-copy,.auth-story-footer{display:none}.auth-panel{padding:40px 26px 35px;align-items:start}.auth-form-wrap{max-width:390px}.auth-form-wrap h2{font-size:25px}.auth-subtitle{font-size:11px;margin-bottom:25px}.auth-assurance{margin-top:35px}.dialog{max-height:calc(100dvh - 30px);border-radius:16px}.dialog-header{padding:20px 21px 0}.dialog-body{padding:20px 21px 22px}.dialog-header h2{font-size:17px}.dialog-header p{font-size:10px}.form-grid{gap:0 13px}}
@media(max-width:440px){.page-content{padding:21px 15px 0}.topbar{padding:0 16px}.topbar-context .topbar-divider,.topbar-context .muted{display:none}.page-heading h1{font-size:25px}.stat-card{padding:15px 14px}.stat-value{font-size:28px}.stat-value .currency{font-size:11px;vertical-align:5px}.stat-icon{width:25px;height:25px}.stat-label{font-size:10px}.stat-note{font-size:8px;gap:3px}.stats-grid{gap:10px}.content-grid>.content-stack:last-child{grid-template-columns:1fr}.content-grid>.content-stack:last-child>.panel:last-child:nth-child(odd){grid-column:auto}.panel-header{padding:18px 17px 0}.panel-body{padding:18px 17px}.panel-title h2{font-size:14px}.chart-legend{gap:8px;font-size:8px}.donut-layout{gap:22px}.donut-chart{width:137px;min-height:137px}.donut-center strong{font-size:23px}.category-line{font-size:9px;gap:5px}.category-line strong{font-size:10px}.category-line .percentage{font-size:8px;width:27px}.category-legend{gap:12px}.asset-grid{grid-template-columns:1fr 1fr;gap:10px}.asset-card{padding:14px}.asset-card h3{font-size:11px}.asset-card .stat-value{font-size:24px}.asset-card .stat-value .currency{font-size:10px}.asset-card-top .transaction-glyph{width:25px;height:25px;display:none}.asset-card-bottom{display:block}.asset-card-actions{justify-content:flex-end;margin-top:7px}.asset-card-actions .button-small{font-size:9px;padding:5px 7px;min-height:27px}.asset-add-card{min-height:180px}.asset-add-card small{font-size:8px}.form-grid{grid-template-columns:1fr}.theme-options{gap:7px}.theme-preview{height:74px;padding:7px 5px;gap:4px}.theme-name{font-size:10px}.preview-sidebar{width:13px;padding:4px 2px}.inline-form{flex-wrap:wrap}.inline-form .form-field{min-width:calc(50% - 5px)}.inline-form .button{width:100%}.page-footer{font-size:8px}.button{font-size:11px}.month-picker{gap:0}.month-picker input{width:125px}.heading-actions>.button{padding:8px 11px}.chart{min-height:165px}.chart-empty{min-height:165px}.auth-story{padding:22px 24px}.auth-panel{padding:34px 24px}.auth-status-icon{width:50px;height:50px;border-radius:15px}.auth-form-wrap h2{font-size:24px}.auth-form .form-field input{min-height:44px}.dialog-header{padding-left:18px;padding-right:18px}.dialog-body{padding-left:18px;padding-right:18px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.orbit-core{transform:rotate(-5deg)}.chart .chart-line{stroke-dasharray:none}}
.legend-color{flex-shrink:0;width:8px;height:8px}.stat-value.amount-fit-1,.budget-value.amount-fit-1{font-size:26px!important}.stat-value.amount-fit-2,.budget-value.amount-fit-2{font-size:23px!important}.stat-value.amount-fit-3,.budget-value.amount-fit-3{font-size:20px!important}.stat-value.amount-fit-4,.budget-value.amount-fit-4{font-size:18px!important}.stat-value.amount-fit-5,.budget-value.amount-fit-5{font-size:16px!important}.stat-value.amount-fit-6,.budget-value.amount-fit-6{font-size:14px!important}.stat-value.amount-fit-7,.budget-value.amount-fit-7{font-size:12px!important;white-space:normal;overflow-wrap:anywhere}
/* Keep the absolute center aligned to the SVG, independent of line-chart minimum heights. */
.chart.donut-chart:not(.is-empty){min-height:0;aspect-ratio:1}
@media print{.sidebar,.topbar,.page-footer,.heading-actions,.filter-bar,.actions-cell,dialog,.chart-data summary,.settings-tabs{display:none!important}.app-main{margin:0}.page-content{max-width:none;padding:0}.app-shell{display:block}.panel,.stat-card{break-inside:avoid;box-shadow:none}.chart-data{display:block}.chart-data table{display:table}.stats-grid{grid-template-columns:repeat(4,1fr)}body{background:#fff;color:#111}.content-grid{grid-template-columns:1.5fr 1fr}.panel{border-color:#ddd}}

/* Responsive charts and fast entry, 2026-11-03. */
.panel-body{container-type:inline-size}
.chart[data-chart="line"]{min-height:0}
.chart .chart-line{animation:none;stroke-width:2.7;vector-effect:non-scaling-stroke}
.chart .chart-area{opacity:.38}
.chart .chart-axis{font-size:11px;font-variant-numeric:tabular-nums}
.chart .chart-zero{stroke:var(--muted);stroke-dasharray:none;opacity:.35}
.chart .chart-guide{stroke:var(--muted);stroke-width:1;stroke-dasharray:3 4;opacity:.5}
.chart .chart-hit{touch-action:pan-y}
.chart-readout{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px;min-height:52px;margin-top:10px;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface-alt);font-size:11px;line-height:1.6;font-variant-numeric:tabular-nums}
.chart-readout-month{color:var(--muted);font-size:10px;white-space:nowrap}
.chart-readout-value{display:flex;gap:7px;flex-wrap:wrap;min-width:0}
.chart-readout-value.line-primary{color:var(--income)}
.chart-readout-value.line-secondary{color:var(--expense)}
.chart-readout-value strong{overflow-wrap:anywhere}
.chart-data summary{padding:10px 0;font-size:11px;min-height:40px}
.donut-center{pointer-events:none;inset:0 14%;max-width:none;width:auto;transform:none}
.donut-center>span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}
.donut-center>small{display:block;margin-top:3px;font-size:9px;color:var(--muted)}
.donut-chart .donut-segment{animation:none;cursor:pointer;touch-action:pan-y}
.donut-chart .donut-segment.is-selected{stroke-width:28}
.category-legend{gap:5px;max-width:none}
.category-line{display:grid;grid-template-columns:8px minmax(0,1fr) auto auto;gap:7px;text-align:left;width:100%;padding:8px 4px;min-height:36px;border:0;border-radius:7px;background:transparent;color:var(--text);font:11px var(--font)}
.category-line .category-name{white-space:normal;overflow-wrap:anywhere;line-height:1.5}
.category-line strong{font-size:11px;max-width:100%;overflow-wrap:anywhere}
.category-line .percentage{display:block;font-size:10px;width:36px}
.category-line:hover,.category-line[aria-pressed="true"]{background:var(--primary-faint)}
.save-status:empty{display:none}
.save-status{font-size:12px;line-height:1.8;padding-top:10px;min-height:32px;color:var(--primary)}
.save-status.text-danger{color:var(--danger)}
#save-notice{margin-bottom:16px}
.has-dialog{overflow:hidden;scrollbar-gutter:stable}
.dialog-header{position:sticky;top:0;z-index:3;background:var(--surface);padding-bottom:12px;border-bottom:1px solid var(--border)}
.dialog .form-actions{position:sticky;bottom:-25px;z-index:2;flex-wrap:wrap;background:var(--surface);padding-bottom:14px;margin-bottom:-14px}
.dialog [aria-busy="true"] button[data-dialog-close]{pointer-events:none;opacity:.6}
@container(max-width:400px){
  .donut-layout:not(.is-empty){display:grid;grid-template-columns:minmax(0,1fr);gap:18px;justify-items:center}
  .donut-layout .donut-chart{width:164px;min-height:0}
  .donut-layout .category-legend{width:100%;max-width:none}
  .donut-layout .category-line{font-size:12px;padding:9px 6px}
  .donut-layout .category-line strong{font-size:12px}
}
@media(max-width:760px){
  body{font-size:15px}
  .panel,.stat-card{animation:none}
  .topbar{padding-top:env(safe-area-inset-top);height:calc(57px + env(safe-area-inset-top))}
  .page-content{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  input,select,textarea,.dialog .form-field input,.dialog .form-field select,.filter-field input,.filter-field select,.auth-form .form-field input{font-size:16px;min-height:46px}
  input[type="checkbox"],input[type="radio"]{min-height:0}
  .month-picker input{font-size:16px;width:145px;padding:4px 1px;min-height:40px}
  .month-picker .icon-button{min-width:30px;height:42px}
  label,.form-field label{font-size:13px;margin-bottom:7px}
  .button,.heading-actions>.button,.form-actions .button{min-height:44px;font-size:13px}
  .icon-button,.actions-cell .icon-button{width:44px;height:44px}
  .icon-button .icon{width:19px;height:19px}
  .panel-header{align-items:flex-start;flex-wrap:wrap;gap:8px}
  .panel-subtitle{font-size:11px;line-height:1.7}
  .panel-footer,.notice-strip,.field-help,.form-hint{font-size:11px}
  .chart-legend{font-size:11px;gap:14px}
  .chart-readout{padding:10px;gap:6px 12px}
  .chart-readout-month{width:100%}
  .chart-readout-value{font-size:12px}
  .chart-empty,.chart-empty small{font-size:12px}
  .dialog,.dialog-wide,.dialog-small{width:100%;max-width:100%;max-height:calc(100dvh - 12px);margin:auto 0 0;border-radius:20px 20px 0 0;border-bottom:0;overscroll-behavior:contain}
  .dialog::backdrop{backdrop-filter:none}
  .dialog[open]{animation:none}
  .dialog-header{padding:18px 20px 12px;align-items:center}
  .dialog-header h2{font-size:19px}
  .dialog-header p{font-size:11px}
  .dialog-header .icon-button{margin:-4px -8px 0 0}
  .dialog-body{padding:18px 20px calc(20px + env(safe-area-inset-bottom))}
  .dialog .form-field{margin-bottom:15px}
  .dialog .form-actions{bottom:calc(-20px - env(safe-area-inset-bottom));padding:12px 0 calc(14px + env(safe-area-inset-bottom));margin-top:16px;margin-bottom:calc(-14px - env(safe-area-inset-bottom));gap:8px}
  .dialog .form-actions .button{flex:1;min-width:0;white-space:normal;padding:9px 11px;font-size:12px}
  .dialog .form-actions>[data-dialog-close]{flex:0 0 auto;min-width:54px}
  .form-errors,.field-errors{font-size:12px}
  .filter-field{min-width:calc(50% - 6px)}
  .summary-amounts{flex-wrap:wrap;row-gap:8px;font-size:11px}
  .mobile-table .description-cell{width:100%;padding-right:0}
  .mobile-table .description-cell .cell-main{font-size:14px;overflow-wrap:anywhere}
  .mobile-table .amount-cell{position:static;width:100%;text-align:left;margin-top:8px;font-size:19px;white-space:normal;overflow-wrap:anywhere}
  .mobile-table .date-cell{font-size:11px}
  .mobile-table .type-cell,.mobile-table .category-cell,.mobile-table .necessity-cell{margin-top:10px}
  .mobile-table .actions-cell{top:0;margin-top:1px}
  .mobile-table .pill{font-size:11px}
  .pagination{flex-wrap:wrap;font-size:11px;gap:10px}
  .asset-card .stat-value{font-size:27px}
  .asset-card h3{font-size:13px}
  .asset-card .button-small{min-height:40px;font-size:11px}
  .asset-card-actions{flex-wrap:wrap}
  .auth-subtitle,.auth-secondary{font-size:13px}
}
@media(max-width:380px){
  .asset-grid{grid-template-columns:1fr}
  .asset-card-bottom{display:flex}
  .category-line{grid-template-columns:8px minmax(0,1fr) auto}
  .category-line .percentage{grid-column:3;grid-row:2;font-size:10px}
  .category-line strong{font-size:11px}
  .stat-value{font-size:26px}
  .heading-actions{gap:6px}
  .heading-actions>.button{padding:8px 10px}
  .chart-readout-value{font-size:11px}
}
@media print{.chart-readout{border:0;background:none}.save-status,#save-notice{display:none!important}.category-line{padding:3px;min-height:0}}

/* Household net worth includes cumulative ledger cash flow. */
.asset-equation{margin-bottom:22px}
.asset-equation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0}
.asset-equation-grid>div{min-width:0}
.asset-equation-grid dt{color:var(--muted);font-size:12px;margin-bottom:8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.asset-equation-grid dd{margin:0;display:block;max-width:100%;font-size:24px}
.asset-equation-grid small{display:block;color:var(--muted);font-size:10px;margin-top:5px;line-height:1.8}
.asset-accounting-note{font-size:11px;color:var(--muted);line-height:1.9;margin-top:16px}
.asset-accounting-note.text-danger{color:var(--danger)}
.asset-card-automatic{border-color:var(--primary);background:var(--primary-faint)}
.asset-card-automatic .asset-card-note{white-space:normal;overflow:visible}
@media(max-width:760px){.asset-equation{margin-bottom:17px}.asset-equation-grid{gap:15px;grid-template-columns:1fr}.asset-equation-grid>div{padding-bottom:12px;border-bottom:1px solid var(--border)}.asset-equation-grid>div:last-child{padding-bottom:0;border:0}.asset-equation-grid dt{font-size:12px}.asset-equation-grid dd{font-size:25px}.asset-accounting-note,.asset-equation-grid small{font-size:11px}}
