﻿:root,[data-theme=light]{--bg-base: #F6F5F1;--bg-secondary: #FFFFFF;--bg-card: #FFFFFF;--bg-hover: #ECEAE3;--border: #DEDBD1;--border-light: #EAE7DE;--text-primary: #22282A;--text-secondary: rgb(35.701754386%, 42.0020639835%, 44.1021671827%);--text-muted: #666F72;--accent: #1B6E6E;--nav-bg: #FFFFFF;--nav-text: rgb(26.7543859649%, 31.475748194%, 33.0495356037%);--chart-cat-1: #2a78d6;--chart-cat-2: #eb6834;--chart-cat-3: #1baf7a;--chart-cat-4: #eda100;--chart-cat-5: #e87ba4;--chart-cat-other: #666F72}[data-theme=dark]{--bg-base: #171B1C;--bg-secondary: #1D2224;--bg-card: #212728;--bg-hover: #2A3132;--border: #343C3E;--border-light: #2A3132;--text-primary: #EDEFEE;--text-secondary: #C7CDCB;--text-muted: #8D9698;--accent: rgb(17.6831258051%, 72.042364391%, 72.042364391%);--nav-bg: #212728;--nav-text: #C7CDCB;--chart-cat-1: #3987e5;--chart-cat-2: #d95926;--chart-cat-3: #199e70;--chart-cat-4: #c98500;--chart-cat-5: #d55181;--chart-cat-other: #8D9698}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif;background:var(--bg-base);color:var(--text-primary);line-height:1.5;min-height:100vh;display:flex;flex-direction:column;transition:background-color .2s ease,color .2s ease}main{flex:1;width:90%;max-width:1800px;margin:0 auto;padding:32px 0 64px}:where(a){color:#124f4f}:where([data-theme=dark] a){color:hsl(180,60.5839416058%,46.862745098%)}h1,h2,h3{color:var(--text-primary);line-height:1.25}.muted{color:var(--text-muted)}.site-footer{text-align:center;padding:24px;color:var(--text-muted);font-size:.85rem}.inline-form{display:inline}.money{font-family:"SF Mono","Fira Code","Consolas",monospace;font-variant-numeric:tabular-nums}.money-positive{color:#2e8b57}.money-negative{color:#b5433a}.money-masked{color:var(--text-muted);letter-spacing:1px}.page-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:24px;flex-wrap:wrap}.owner-switcher{display:flex;align-items:center;gap:8px;margin-bottom:16px;font-size:.85rem;color:var(--text-muted)}.owner-switcher select{font-size:.85rem;padding:4px 8px}.empty-state{text-align:center;padding:48px 24px;color:var(--text-muted)}[draggable=true]{cursor:grab}.dragging{opacity:.4}.drag-handle{cursor:grab;color:var(--text-muted);padding:0 6px;user-select:none;touch-action:none}.nav{position:relative;display:flex;align-items:center;justify-content:space-between;padding:16px 24px;background:var(--nav-bg);border-bottom:1px solid var(--border);gap:12px}.demo-credentials-banner{margin:16px 24px 0;text-align:center}.demo-credentials-banner code{font-size:.95em}.nav-actions{display:flex;align-items:center;gap:4px}.nav-menu-toggle{display:flex;flex-direction:column;justify-content:center;gap:5px;width:40px;height:40px;padding:0;background:rgba(0,0,0,0);border:none;border-radius:9999px;cursor:pointer}.nav-menu-toggle:hover{background:var(--bg-hover)}.nav-menu-toggle-bar{display:block;width:20px;height:2px;margin:0 auto;background:var(--nav-text);border-radius:1px;transition:transform .15s ease,opacity .15s ease}.nav-menu-toggle[aria-expanded=true] .nav-menu-toggle-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-menu-toggle[aria-expanded=true] .nav-menu-toggle-bar:nth-child(2){opacity:0}.nav-menu-toggle[aria-expanded=true] .nav-menu-toggle-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-brand{display:flex;align-items:center}.nav-logo{font-size:1.15rem;font-weight:700;text-decoration:none;color:var(--nav-text);display:flex;align-items:center;gap:8px}.nav-logo-icon{width:28px;height:28px;border-radius:6px}.nav-links{position:absolute;top:100%;right:24px;z-index:20;display:flex;flex-direction:column;align-items:stretch;gap:2px;min-width:220px;margin-top:8px;padding:8px;background:var(--nav-bg);border:1px solid var(--border);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.18)}.nav-links[hidden]{display:none}.nav-links .nav-link,.nav-links .btn-nav-logout{border-radius:6px;text-align:left;width:100%}.nav-links .inline-form{width:100%}.nav-link{padding:8px 14px;border-radius:9999px;text-decoration:none;color:var(--nav-text);font-size:.92rem;font-weight:500}.nav-link:hover{background:var(--bg-hover)}.nav-link.active{background:var(--accent);color:#fff}.nav-link-btn{display:block;width:100%;background:none;border:none;cursor:pointer;font:inherit;text-align:left}.nav-link-btn:hover{background:none;text-decoration:underline}.btn-nav-logout{background:rgba(0,0,0,0);border:none;font:inherit;color:var(--nav-text);cursor:pointer;padding:8px 14px;border-radius:9999px}.btn-nav-logout:hover{background:var(--bg-hover)}.btn-nav-create{background:var(--accent);color:#fff !important;padding:8px 16px;border-radius:9999px;text-decoration:none;font-weight:500}.btn-nav-create:hover{filter:brightness(0.92)}.theme-toggle{background:rgba(0,0,0,0);border:none;font-size:1.1rem;cursor:pointer;padding:6px 10px;border-radius:9999px}.theme-toggle:hover{background:var(--bg-hover)}@media(min-width: 861px){.nav-menu-toggle{display:none}.nav-links{position:static;display:flex;flex-direction:row;align-items:center;flex-wrap:wrap;gap:4px;min-width:0;margin-top:0;padding:0;background:none;border:none;box-shadow:none}.nav-links[hidden]{display:flex}.nav-links .nav-link,.nav-links .btn-nav-logout,.nav-links .nav-link-btn{width:auto;text-align:left}.nav-links .inline-form{width:auto}}.btn{display:inline-block;padding:10px 20px;border-radius:9999px;font-size:.95rem;font-weight:600;text-decoration:none;border:none;cursor:pointer;transition:transform .1s ease,background-color .15s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.btn[hidden]{display:none}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{filter:brightness(0.92)}.btn-secondary{background:rgba(0,0,0,0);color:var(--text-primary);border:1px solid var(--border)}.btn-danger{background:rgba(0,0,0,0);color:#b5433a;border:1px solid #b5433a}.btn-success{background:rgba(0,0,0,0);color:#2e8b57;border:1px solid #2e8b57}.btn-sm{padding:6px 14px;font-size:.82rem}.btn-block{display:block;width:100%;text-align:center}.btn-row{display:flex;gap:8px;flex-wrap:wrap}.form-group{margin-bottom:18px}label{display:block;margin-bottom:6px;font-size:.9rem;color:var(--text-secondary)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=file],textarea,select{width:100%;padding:10px 14px;border:1px solid var(--border);border-radius:10px;background:var(--bg-secondary);color:var(--text-primary);font-size:1rem;font-family:inherit}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=date]:focus,input[type=file]:focus,textarea:focus,select:focus{outline:none;border-color:var(--accent)}.form-row{display:flex;gap:12px;flex-wrap:wrap}.form-row>.form-group{flex:1;min-width:160px}.form-row[hidden]{display:none}#column-toggle-list{flex-direction:column;align-items:flex-start;gap:4px}.new-account-actions{display:flex;gap:8px;align-self:flex-end;margin-bottom:18px;flex:0 0 auto}.form-hint{font-size:.82rem;color:var(--text-muted);margin-top:6px}.form-error{background:rgba(181,67,58,.14);color:#b5433a;border-radius:10px;padding:10px 14px;font-size:.9rem;margin-bottom:18px}.form-success{background:rgba(46,139,87,.14);color:#2e8b57;border-radius:10px;padding:10px 14px;font-size:.9rem;margin-bottom:18px}.appearance-theme-col{min-width:280px}.appearance-theme-col h4{margin:0 0 8px}.theme-field-group-title{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:14px 0 6px}.theme-field-group-title:first-child{margin-top:0}.theme-color-field{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.theme-color-field label{margin:0}.theme-color-field input[type=color]{width:44px;height:32px;padding:2px;border:1px solid var(--border);border-radius:6px;background:var(--bg-secondary);cursor:pointer}.auth-card{max-width:420px;margin:48px auto;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:32px}.checkbox-row{display:flex;align-items:center;gap:8px}.checkbox-row input[type=checkbox]{width:auto}.checkbox-row label{margin:0}.checkbox-row[hidden]{display:none}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px 24px;margin-bottom:20px}.card-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:16px}.stat-card,.widget{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:18px 20px}.stat-card .stat-label,.widget .stat-label{font-size:.8rem;color:var(--text-muted);text-transform:uppercase;letter-spacing:.03em}.stat-card .stat-value,.widget .stat-value{font-size:1.6rem;font-weight:700;font-family:"SF Mono","Fira Code","Consolas",monospace;margin-top:4px}.badge{display:inline-block;padding:2px 10px;border-radius:9999px;font-size:.75rem;font-weight:600;background:var(--badge-bg, var(--bg-hover));color:var(--badge-color, var(--text-secondary))}.badge-warn{background:var(--badge-bg, rgba(227, 169, 58, 0.22));color:var(--badge-color, rgb(54.0784313725%, 38.1568627451%, 7.6862745098%))}.table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:16px;background:var(--bg-card)}.register-table-wrap{max-height:75vh;overflow-y:auto}table.data-table{width:100%;border-collapse:collapse;font-size:.92rem}table.data-table th,table.data-table td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--border-light);white-space:nowrap}table.data-table th{color:var(--text-muted);font-weight:600;font-size:.78rem;text-transform:uppercase;letter-spacing:.03em;background:var(--bg-secondary)}table.data-table tbody tr:hover{background:var(--bg-hover)}table.data-table td.wrap{white-space:normal}.row-actions{display:flex;gap:6px;justify-content:flex-end}table.register-table{table-layout:fixed}table.register-table th,table.register-table td{padding:8px 8px}table.register-table td:not(.wrap){overflow:hidden;text-overflow:ellipsis}table.register-table.asset-register{table-layout:auto}table.register-table.asset-register th[data-col=date],table.register-table.asset-register td[data-col=date]{width:130px;max-width:130px}table.register-table.asset-register th[data-col=amount],table.register-table.asset-register td[data-col=amount]{width:140px;max-width:140px}table.register-table.asset-register td.wrap,table.register-table.asset-register th[data-col=notes]{width:40%}table.register-table.asset-register input[type=date]{width:100%;max-width:100%;padding-left:4px;padding-right:4px}.icon-btn{padding:4px 7px;line-height:1}.quick-add-row{background:var(--bg-secondary)}.quick-add-row input,.quick-add-row select{font-size:.85rem;padding:6px 8px}.quick-add-row td{position:sticky;top:0;z-index:5;background-color:inherit;box-shadow:0 2px 4px rgba(0,0,0,.08)}.filter-row input{font-size:.85rem;padding:6px 8px;width:100%}.cleared-toggle{background:rgba(0,0,0,0);border:none;cursor:pointer;font-size:1rem;padding:2px 6px;border-radius:6px}.cleared-toggle:hover{background:var(--bg-hover)}.cleared-toggle-on{color:#2e8b57}.cleared-toggle-off{color:var(--text-muted)}table.register-table.hide-col-date col[data-col=date]{width:0}table.register-table.hide-col-date th[data-col=date],table.register-table.hide-col-date td[data-col=date]{display:none}table.register-table.hide-col-payee col[data-col=payee]{width:0}table.register-table.hide-col-payee th[data-col=payee],table.register-table.hide-col-payee td[data-col=payee]{display:none}table.register-table.hide-col-category col[data-col=category]{width:0}table.register-table.hide-col-category th[data-col=category],table.register-table.hide-col-category td[data-col=category]{display:none}table.register-table.hide-col-notes col[data-col=notes]{width:0}table.register-table.hide-col-notes th[data-col=notes],table.register-table.hide-col-notes td[data-col=notes]{display:none}table.register-table.hide-col-tags col[data-col=tags]{width:0}table.register-table.hide-col-tags th[data-col=tags],table.register-table.hide-col-tags td[data-col=tags]{display:none}table.register-table.hide-col-amount col[data-col=amount]{width:0}table.register-table.hide-col-amount th[data-col=amount],table.register-table.hide-col-amount td[data-col=amount]{display:none}table.register-table.hide-col-balance col[data-col=balance]{width:0}table.register-table.hide-col-balance th[data-col=balance],table.register-table.hide-col-balance td[data-col=balance]{display:none}table.register-table.hide-col-cleared col[data-col=cleared]{width:0}table.register-table.hide-col-cleared th[data-col=cleared],table.register-table.hide-col-cleared td[data-col=cleared]{display:none}.editable-cell{cursor:text}.editable-cell:hover{box-shadow:inset 0 0 0 1px var(--border)}.editable-cell input,.editable-cell select{width:100%;font-size:inherit;font-family:inherit;padding:2px 4px}.register-forecast-header{display:flex;align-items:center;justify-content:space-between}.register-forecast-header h3{margin:0}.quick-links-list{display:flex;flex-wrap:wrap;gap:8px}.quick-links-list a{display:inline-block;padding:6px 14px;border-radius:9999px;background:var(--bg-hover);color:var(--text-primary);text-decoration:none;font-size:.9rem;border:1px solid var(--border)}.quick-links-list a:hover{border-color:var(--text-muted)}.quick-links-picker{display:flex;flex-direction:column;gap:6px;max-height:320px;overflow-y:auto;margin-bottom:16px}#register-forecast-chart{position:relative}#register-forecast-chart svg{width:100%;height:auto;aspect-ratio:1400/280;display:block;margin-top:8px}.upcoming-row{font-style:italic;color:var(--text-muted)}.upcoming-row td{background:var(--bg-secondary)}.upcoming-divider-row td{background:var(--bg-secondary);padding:6px 14px}.upcoming-toggle-btn{background:none;border:none;padding:0;color:var(--accent);font-size:.85rem;font-weight:600;cursor:pointer}.upcoming-toggle-btn:hover{text-decoration:underline}.register-readonly .register-table .row-actions,.register-readonly .register-table .cleared-toggle,.register-readonly .register-table .row-select-cell{display:none}.register-readonly .register-table .editable-cell{cursor:default}.register-readonly .register-table .editable-cell:hover{box-shadow:none}.page-landing .hero{max-width:640px;margin:64px auto;text-align:center}.hero-tagline{font-size:1.3rem;color:var(--text-secondary);margin-bottom:12px}.hero-mission{color:var(--text-secondary);line-height:1.6}.hero-actions{display:flex;justify-content:center;gap:12px;margin-top:24px}.rta-banner{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-radius:16px;margin-bottom:24px;background:var(--accent);color:#fff}.rta-banner.rta-negative{background:#b5433a}.rta-banner .rta-label{font-size:.85rem;opacity:.85;text-transform:uppercase;letter-spacing:.03em}.rta-banner .rta-value{font-size:1.8rem;font-weight:700;font-family:"SF Mono","Fira Code","Consolas",monospace}.month-nav{display:flex;align-items:center;gap:12px;margin-bottom:20px}.month-nav .month-label{font-weight:600;min-width:140px;text-align:center}.budget-group{margin-bottom:24px}.budget-group .budget-group-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);margin:0 0 8px 4px}.budget-row{display:grid;grid-template-columns:1fr 120px 120px 120px;gap:12px;align-items:center;padding:10px 14px;border-bottom:1px solid var(--border-light)}.budget-row input[type=number]{text-align:right}.budget-row .balance-cell{text-align:right;font-family:"SF Mono","Fira Code","Consolas",monospace;font-weight:600;padding:4px 10px;border-radius:6px}.budget-row .balance-cell.balance-positive{color:#2e8b57}.budget-row .balance-cell.balance-negative{color:#b5433a;background:rgba(181,67,58,.14)}.budget-row-head{display:grid;grid-template-columns:1fr 120px 120px 120px;gap:12px;padding:0 14px 6px;font-size:.75rem;text-transform:uppercase;letter-spacing:.03em;color:var(--text-muted);text-align:right}.budget-row-head span:first-child{text-align:left}.split-row{display:flex;gap:8px;margin-bottom:8px;align-items:center}.split-row select,.split-row input{flex:1}.widget{position:relative}.widget-wide{grid-column:span 2}.widget-full{grid-column:1/-1}.widget-clickable{cursor:pointer}.widget-clickable:hover{box-shadow:0 0 0 1px var(--border)}.widget-clickable .drag-handle{cursor:grab}.widget-balance{display:flex;flex-direction:column;min-height:110px}.widget-balance .stat-value{flex:1;display:flex;align-items:center;justify-content:center;text-align:center;font-size:1.8rem}.widget-summary-grid{display:grid;grid-template-columns:repeat(3, 1fr);gap:12px;margin-top:8px}.widget-summary-grid>div{min-width:0}.widget-summary-value{font-size:1.1rem;overflow-wrap:break-word}.widget-chart{margin-top:8px;position:relative}.widget-chart svg{width:100%;height:140px;display:block}.widget-full .widget-chart svg{height:auto;aspect-ratio:900/140}.trend-axis-label{font-size:9px;fill:var(--text-muted);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif}.trend-zero-line{stroke:var(--border);stroke-width:1}.networth-line{fill:none;stroke:var(--accent);stroke-width:2}.cashflow-income-line{fill:none;stroke:#2e8b57;stroke-width:2}.cashflow-expense-line{fill:none;stroke:#b5433a;stroke-width:2}.forecast-grid-line{stroke:var(--border);stroke-width:1}.forecast-line{fill:none;stroke:var(--accent);stroke-width:2}.forecast-line-projected{stroke-dasharray:4 3}.forecast-danger-zone{fill:rgba(181,67,58,.12)}.forecast-threshold-line{stroke:rgba(181,67,58,.6);stroke-width:1;stroke-dasharray:2 2}.forecast-threshold-marker{fill:#b5433a;stroke:var(--bg-card);stroke-width:2}.forecast-warning{margin-top:6px;font-size:.8rem;color:#b5433a}.forecast-today-line{stroke:var(--text-muted);stroke-width:1;stroke-dasharray:3 3}.customize-section{border-top:1px solid var(--border-light);padding:12px 0}.customize-section:first-of-type{border-top:none;padding-top:0}.customize-section summary{cursor:pointer;font-weight:600;padding:4px 0;list-style:none}.customize-section summary::-webkit-details-marker{display:none}.customize-section summary::before{content:"▸";display:inline-block;margin-right:6px;color:var(--text-muted);transition:transform .15s ease}.customize-section[open] summary::before{transform:rotate(90deg)}.customize-section>*:not(summary):first-of-type{margin-top:10px}#dashboard-widgets.align-left .widget{text-align:left}#dashboard-widgets.align-center .widget{text-align:center}#dashboard-widgets.align-right .widget{text-align:right}.widget-instance-row{display:flex;align-items:center;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--border-light);font-size:.9rem}.dashboard-range-nav{display:flex;align-items:center;gap:16px;margin-bottom:16px;flex-wrap:wrap}.dashboard-range-nav select{width:auto}.pie-chart-layout{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:8px}.pie-chart-layout svg{width:160px;height:160px;flex-shrink:0}.pie-slice{stroke:var(--bg-card);stroke-width:2}.pie-center-label{font-family:"SF Mono","Fira Code","Consolas",monospace;font-size:13px;font-weight:600;fill:var(--text-primary)}.pie-legend{display:flex;flex-direction:column;gap:6px;min-width:160px;flex:1}.pie-legend-row{display:flex;align-items:center;gap:8px;font-size:.85rem}.pie-legend-swatch{width:10px;height:10px;border-radius:2px;flex-shrink:0}.pie-legend-label{color:var(--text-secondary);flex:1}.pie-legend-value{font-family:"SF Mono","Fira Code","Consolas",monospace;color:var(--text-primary);white-space:nowrap}.pie-slice.chart-cat-1{fill:var(--chart-cat-1)}.pie-legend-swatch.chart-cat-1{background:var(--chart-cat-1)}.pie-slice.chart-cat-2{fill:var(--chart-cat-2)}.pie-legend-swatch.chart-cat-2{background:var(--chart-cat-2)}.pie-slice.chart-cat-3{fill:var(--chart-cat-3)}.pie-legend-swatch.chart-cat-3{background:var(--chart-cat-3)}.pie-slice.chart-cat-4{fill:var(--chart-cat-4)}.pie-legend-swatch.chart-cat-4{background:var(--chart-cat-4)}.pie-slice.chart-cat-5{fill:var(--chart-cat-5)}.pie-legend-swatch.chart-cat-5{background:var(--chart-cat-5)}.pie-slice.chart-cat-other{fill:var(--chart-cat-other)}.pie-legend-swatch.chart-cat-other{background:var(--chart-cat-other)}.spend-chart{width:100%}.spend-chart svg{width:100%;height:auto;display:block}.spend-bar-label{font-size:11px;fill:var(--text-secondary);font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif}.spend-bar-value{font-size:11px;fill:var(--text-primary);font-family:"SF Mono","Fira Code","Consolas",monospace}.spend-bar-value-inside{font-size:11px;font-weight:600;font-family:"SF Mono","Fira Code","Consolas",monospace;fill:#22282a;paint-order:stroke;stroke:rgba(255,255,255,.8);stroke-width:3px;stroke-linejoin:round}.spend-bar-default{fill:var(--accent)}.spend-bar-spent{fill:#e3a93a}.spend-bar-remaining{fill:#2e8b57}.spend-bar-over{fill:#b5433a}.diverging-legend{display:flex;gap:16px;margin-bottom:12px;font-size:.82rem;color:var(--text-secondary)}.diverging-legend .legend-swatch{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:6px}.diverging-legend .legend-income .legend-swatch{background:#2e8b57}.diverging-legend .legend-expense .legend-swatch{background:#b5433a}.diverging-legend .legend-net .legend-swatch{background:var(--accent);border-radius:9999px}.diverging-legend .legend-spent .legend-swatch{background:#e3a93a}.diverging-legend .legend-remaining .legend-swatch{background:#2e8b57}.diverging-legend .legend-over-budget .legend-swatch{background:#b5433a}.ie-chart{width:100%;position:relative}.ie-chart svg{width:100%;height:220px;display:block}.ie-bar-income{fill:#2e8b57}.ie-bar-expense{fill:#b5433a}.ie-zero-line{stroke:var(--border);stroke-width:1}.ie-net-line{fill:none;stroke:var(--accent);stroke-width:2}.ie-net-dot{fill:var(--accent)}.ie-month-label{fill:var(--text-muted);font-size:9px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Helvetica Neue",Arial,sans-serif}.trend-sparkline{width:100%;height:120px}.chart-crosshair{stroke:var(--border);stroke-width:1;pointer-events:none}.chart-hover-dot{stroke:var(--bg-card);stroke-width:2;pointer-events:none}.chart-hover-dot.networth-line{fill:var(--accent)}.chart-hover-dot.cashflow-income-line{fill:#2e8b57}.chart-hover-dot.cashflow-expense-line{fill:#b5433a}.chart-hover-dot.forecast-line{fill:var(--accent)}.chart-hover-dot.ie-net-line{fill:var(--accent)}.chart-hover-dot.ie-bar-income{fill:#2e8b57}.chart-hover-dot.ie-bar-expense{fill:#b5433a}.chart-hit-layer{fill:rgba(0,0,0,0);cursor:crosshair}.chart-tooltip{position:absolute;top:8px;z-index:5;background:var(--bg-card);border:1px solid var(--border);border-radius:10px;padding:8px 10px;font-size:.8rem;pointer-events:none;box-shadow:0 2px 8px rgba(0,0,0,.18);white-space:nowrap}.chart-tooltip-header{font-weight:600;color:var(--text-primary);margin-bottom:4px}.chart-tooltip-row{display:flex;align-items:center;gap:6px}.chart-tooltip-row+.chart-tooltip-row{margin-top:2px}.chart-tooltip-key{display:inline-block;width:10px;height:2px;border-radius:1px;flex-shrink:0}.chart-tooltip-key.networth-line{background:var(--accent)}.chart-tooltip-key.cashflow-income-line{background:#2e8b57}.chart-tooltip-key.cashflow-expense-line{background:#b5433a}.chart-tooltip-key.forecast-line{background:var(--accent)}.chart-tooltip-key.ie-net-line{background:var(--accent)}.chart-tooltip-key.ie-bar-income{background:#2e8b57}.chart-tooltip-key.ie-bar-expense{background:#b5433a}.chart-tooltip-name{color:var(--text-muted);flex:1}.chart-tooltip-value{font-weight:600;color:var(--text-primary);font-family:"SF Mono","Fira Code","Consolas",monospace;margin-left:8px}.admin-tiles{display:grid;grid-template-columns:repeat(auto-fill, minmax(200px, 1fr));gap:16px}.admin-tile{display:block;background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:20px;text-decoration:none;color:var(--text-primary)}.admin-tile:hover{border-color:var(--accent)}.admin-tile h3{margin:0 0 6px;font-size:1.05rem}.admin-tile p{margin:0;color:var(--text-muted);font-size:.88rem}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}.modal-overlay[hidden]{display:none}.modal-card{background:var(--bg-card);border:1px solid var(--border);border-radius:16px;padding:24px;max-width:440px;width:100%;max-height:calc(100vh - 32px);overflow-y:auto}.link-plain{text-decoration:none;color:inherit}.link-plain:hover{text-decoration:underline}
