@import "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&display=swap";:root{color:var(--ink);background:var(--surface);font-synthesis:none;--ink:#202124;--muted:#6f7378;--border:#dadce0;--border-dark:#b8bcc2;--canvas:#f8f9fa;--surface:#fff;--soft:#f1f3f4;--selected:#e8eaed;--inverse-bg:#202124;--inverse-text:#fff;font-family:IBM Plex Mono,SFMono-Regular,Consolas,monospace}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--ink:#e8eaed;--muted:#9aa0a6;--border:#3c4043;--border-dark:#5f6368;--canvas:#202124;--surface:#292a2d;--soft:#303134;--selected:#3c4043;--inverse-bg:#e8eaed;--inverse-text:#202124}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--canvas);min-width:320px;min-height:100vh;color:var(--ink);margin:0}button,input,select{color:inherit;font:inherit}input::placeholder{color:var(--muted);opacity:.75}select option{background:var(--surface);color:var(--ink)}.app-shell{grid-template-columns:292px minmax(0,1fr);align-items:start;width:100%;min-height:100vh;display:grid}.control-sidebar{border-right:1px solid var(--border);background:var(--surface);scrollbar-width:thin;flex-direction:column;height:100vh;padding:18px;display:flex;position:sticky;top:0;overflow-y:auto}.sidebar-title{margin:0 0 12px}.sidebar-title h2{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:17px;font-weight:600}.controls-grid{gap:7px;display:grid}.field{border:1px solid var(--border);background:var(--surface);border-radius:2px;padding:9px 10px}.field:focus-within{border-color:var(--ink);outline:1px solid var(--ink)}.field>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:4px;font-size:8px;font-weight:600;display:block}.input-wrap{align-items:baseline;gap:6px;display:flex}.input-wrap b{color:var(--muted);white-space:nowrap;font-size:9px;font-weight:400}.field input,.field select{width:100%;min-width:0;color:var(--ink);background:0 0;border:0;outline:0;padding:0;font-size:13px;font-weight:500}.field select{cursor:pointer}.payments-editor{border-top:1px solid var(--border);margin-top:14px;padding-top:12px}.payments-heading{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;justify-content:space-between;align-items:center;gap:10px;margin-bottom:7px;font-size:8px;font-weight:600;display:flex}.payments-heading strong{color:var(--ink);font-size:9px}.payment-row{border:1px solid var(--border);background:var(--surface);border-bottom:0;grid-template-columns:minmax(0,1fr) 92px 24px;display:grid}.payment-row:last-of-type{border-bottom:1px solid var(--border)}.payment-row>input,.payment-amount,.payment-row>button{min-width:0;height:30px;color:var(--ink);background:0 0;border:0;font-size:8px}.payment-row>input{border-right:1px solid var(--border);outline:none;padding:0 7px}.payment-row input:focus{background:var(--soft)}.payment-amount{border-right:1px solid var(--border);align-items:center;gap:4px;padding:0 5px;display:flex}.payment-amount span{color:var(--muted);font-size:7px}.payment-amount input{width:100%;min-width:0;color:var(--ink);font:inherit;text-align:right;background:0 0;border:0;outline:0}.payment-row>button{cursor:pointer;color:var(--muted)}.payment-row>button:hover{background:var(--soft);color:var(--ink)}.add-payment{border:1px solid var(--border);background:var(--soft);width:100%;color:var(--ink);text-align:left;cursor:pointer;border-radius:0;padding:7px;font-size:8px}.add-payment:hover{background:var(--selected)}.cash-left{border:1px solid var(--border-dark);background:var(--surface);margin-top:10px;padding:10px}.cash-left span{color:var(--muted);text-transform:uppercase;letter-spacing:.05em;font-size:7px;display:block}.cash-left strong{color:var(--ink);margin-top:4px;font-size:15px;display:block}.cash-left.negative{background:var(--inverse-bg)}.cash-left.negative span,.cash-left.negative strong{color:var(--inverse-text)}.reset-button{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--ink);cursor:pointer;border-radius:2px;margin-top:10px;padding:8px;font-size:9px}.reset-button:hover{background:var(--soft)}.reset-button:active{transform:scale(.99)}.theme-toggle{border:0;border-top:1px solid var(--border);width:100%;color:var(--ink);cursor:pointer;background:0 0;justify-content:space-between;align-items:center;margin-top:auto;padding:14px 0 0;font-size:9px;display:flex}.theme-toggle>i{border:1px solid var(--border-dark);background:var(--soft);width:30px;height:16px;padding:2px;display:block}.theme-toggle>i>b{background:var(--muted);width:10px;height:10px;transition:transform .12s,background .12s;display:block;transform:translate(0)}.theme-toggle[aria-checked=true]>i>b{background:var(--ink);transform:translate(14px)}.data-column{background:var(--canvas);min-width:0}.page{flex-direction:column;width:100%;min-width:0;min-height:100vh;padding:16px 18px 48px;display:flex}.worksheet{flex:1;width:100%;min-width:0}.metrics-grid{border-top:1px solid var(--border);border-left:1px solid var(--border);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));width:100%;margin-bottom:14px;display:grid}.metric{border-right:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--surface);flex-direction:column;justify-content:space-between;min-height:112px;padding:14px;display:flex}.metric>span{color:var(--muted);letter-spacing:.06em;text-transform:uppercase;font-size:8px;font-weight:600}.metric strong{color:var(--ink);letter-spacing:-.05em;white-space:nowrap;margin:10px 0 3px;font-size:clamp(16px,1.8vw,22px);font-weight:600;display:block}.metric small{color:var(--muted);font-size:8px}.metric-green,.metric-navy{background:var(--soft)}.metric-green strong,.metric-navy strong{color:var(--ink)}.metric-negative{background:var(--inverse-bg)}.metric-negative>span,.metric-negative strong,.metric-negative small{color:var(--inverse-text)}.chart-shell,.schedule-section{border:1px solid var(--border);background:var(--surface);border-radius:0;width:100%;min-width:0}.chart-shell{margin-bottom:14px;padding:20px 20px 14px}.chart-heading,.section-heading{justify-content:space-between;align-items:center;gap:20px;display:flex}.chart-heading h2,.section-heading h2{color:var(--ink);letter-spacing:-.04em;margin:0;font-size:15px;font-weight:600}.legend{color:var(--muted);flex-wrap:wrap;gap:14px;font-size:8px;display:flex}.legend span{align-items:center;gap:5px;display:flex}.legend-line{background:var(--ink);width:16px;height:2px;display:block}.legend-line.deposits{background:var(--muted)}.legend-line.interest{background:var(--border-dark)}.projection-chart{width:100%;height:auto;margin-top:14px;display:block;overflow:visible}.grid-line{stroke:var(--border);stroke-width:1px}.axis-label{fill:var(--muted);font-family:IBM Plex Mono,monospace;font-size:9px}.chart-line{fill:none;stroke-linecap:square;stroke-linejoin:round;vector-effect:non-scaling-stroke}.balance-chart{stroke:var(--ink);stroke-width:2px}.deposit-chart{stroke:var(--muted);stroke-width:1.5px;stroke-dasharray:5 4}.interest-chart{stroke:var(--border-dark);stroke-width:1.5px}.interest-area{fill:var(--selected);opacity:.45}.year-dot{fill:var(--surface);stroke:var(--ink);stroke-width:1.5px}.schedule-section{padding:20px}.schedule-section .section-heading{margin-bottom:14px}.year-filter{color:var(--muted);align-items:center;gap:7px;font-size:9px;display:flex}.year-filter select{border:1px solid var(--border);background:var(--surface);color:var(--ink);border-radius:2px;outline:none;padding:6px 22px 6px 8px;font-size:9px}.table-wrap{width:100%;overflow-x:auto}table{border-collapse:collapse;background:var(--surface);width:100%;min-width:720px;font-size:9px}th{border:1px solid var(--border);background:var(--soft);color:var(--muted);letter-spacing:.04em;text-align:right;text-transform:uppercase;white-space:nowrap;padding:8px;font-size:8px;font-weight:600}th:first-child,td:first-child{text-align:center;width:56px}td{border:1px solid var(--border);color:var(--ink);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;padding:8px}tbody tr:nth-child(2n){background:var(--soft)}.interest-number{color:var(--ink);font-weight:600}.year-end{background:var(--selected)!important}.year-end td{border-top-color:var(--border-dark);border-bottom-color:var(--border-dark)}.site-footer{color:var(--muted);padding:16px 2px 46px;font-size:8px}.site-footer p{margin:0}.sheet-tabs{z-index:5;border-top:1px solid var(--border);background:var(--surface);align-items:stretch;height:36px;margin:0 -18px -48px;padding:0 8px;display:flex;position:sticky;bottom:0}.sheet-tabs button{border:0;border-right:1px solid var(--border);background:var(--surface);min-width:92px;color:var(--muted);cursor:pointer;border-radius:0;padding:0 14px;font-size:9px}.sheet-tabs button.active{border-bottom:2px solid var(--ink);background:var(--soft);color:var(--ink);font-weight:600}.sheet-tabs button:hover{background:var(--soft);color:var(--ink)}@media (width<=980px){.metrics-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=760px){.app-shell{grid-template-columns:1fr}.control-sidebar{border-right:0;border-bottom:1px solid var(--border);height:auto;position:relative}.controls-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=560px){.control-sidebar{padding:14px}.controls-grid,.metrics-grid{grid-template-columns:1fr}.page{padding:10px 10px 44px}.chart-shell,.schedule-section{padding:14px 10px}.chart-heading,.section-heading{flex-direction:column;align-items:flex-start}.projection-chart{min-width:600px}.chart-shell{overflow-x:auto}.site-footer{flex-direction:column;gap:4px}.sheet-tabs{margin:0 -10px -44px;overflow-x:auto}}
