:root{--bg: #fcfaf7;--surface: #ffffff;--surface-2: #f3f1ec;--ink: #1f2937;--ink-2: #4b5563;--muted: #6b7280;--line: #e5e7eb;--line-strong: #d1d5db;--accent: #2f6f56;--accent-soft: #e4f2ea;--accent-strong: #276049;--on-fill: #ffffff;--mint: #a7d7c5;--blue: #7aa2f7;--violet: #b794f6;--brass: #9a6b1e;--brass-soft: #fbf3e0;--up: #2f6f56;--down: #b0473a;--down-soft: #fdf0ee;--grid: #eef0f2;--series-1: #2f6f56;--series-2: #c48a2c;--series-3: #4f7fe0;--series-4: #d2624f;--series-5: #8b63d9;--surface-bar: rgba(255, 255, 255, .85);--surface-rail: rgba(255, 255, 255, .6);--surface-panel: rgba(255, 255, 255, .7);--focus-ring: rgba(47, 111, 86, .14);--aurora: radial-gradient(60% 45% at 100% 0%, rgba(167, 215, 197, .35), transparent 70%), radial-gradient(40% 35% at 0% 100%, rgba(122, 162, 247, .2), transparent 70%), radial-gradient(35% 30% at 95% 100%, rgba(183, 148, 246, .16), transparent 70%);--radius: 12px;--radius-sm: 8px;--radius-xs: 6px;--shadow-card: 0 1px 2px rgba(31, 41, 55, .04), 0 6px 20px rgba(31, 41, 55, .05);--shadow-pop: 0 4px 14px rgba(31, 41, 55, .1), 0 1px 3px rgba(31, 41, 55, .06);--shadow-tab: 0 1px 2px rgba(31, 41, 55, .05);--font-body: "Inter", "Helvetica Neue", Arial, sans-serif;--font-display: "Source Serif 4", "Tiempos Text", Georgia, serif;--font-mono: "JetBrains Mono", Menlo, monospace;color-scheme:light}:root[data-theme=dark]{--bg: #12161c;--surface: #191e26;--surface-2: #222833;--ink: #e8eaed;--ink-2: #b9c0cb;--muted: #8b95a5;--line: #2b323d;--line-strong: #3c4553;--accent: #6ec49b;--accent-soft: #1b3229;--accent-strong: #86d4ae;--on-fill: #10231a;--mint: #7fc4ab;--blue: #8fb0f8;--violet: #c3a5f7;--brass: #d9a54a;--brass-soft: #2e2415;--up: #6ec49b;--down: #f08579;--down-soft: #37211f;--grid: #242b35;--series-1: #4fbf8b;--series-2: #e0a33c;--series-3: #6f9aee;--series-4: #ec7f68;--series-5: #a98bf0;--surface-bar: rgba(25, 30, 38, .85);--surface-rail: rgba(25, 30, 38, .6);--surface-panel: rgba(25, 30, 38, .7);--focus-ring: rgba(110, 196, 155, .22);--shadow-card: 0 1px 2px rgba(0, 0, 0, .3), 0 6px 20px rgba(0, 0, 0, .35);--shadow-pop: 0 4px 14px rgba(0, 0, 0, .5), 0 1px 3px rgba(0, 0, 0, .4);--shadow-tab: 0 1px 2px rgba(0, 0, 0, .35);--aurora: radial-gradient(60% 45% at 100% 0%, rgba(110, 196, 155, .14), transparent 70%), radial-gradient(40% 35% at 0% 100%, rgba(122, 162, 247, .12), transparent 70%), radial-gradient(35% 30% at 95% 100%, rgba(183, 148, 246, .1), transparent 70%);color-scheme:dark}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5;font-feature-settings:"cv11","ss01";-webkit-font-smoothing:antialiased}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;background:var(--aurora)}h1,h2,h3{font-family:var(--font-display);font-weight:500;margin:0;letter-spacing:-.015em}button{font:inherit;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:6px 12px;cursor:pointer;transition:border-color .12s ease,background-color .12s ease,color .12s ease}button:hover{border-color:var(--line-strong);background:var(--surface-2)}button:disabled{opacity:.45;cursor:default}button:focus-visible,input:focus-visible{outline:2px solid var(--accent);outline-offset:1px}button.primary{background:var(--accent);border-color:var(--accent);color:var(--on-fill);font-weight:600}button.primary:hover{background:var(--accent-strong);border-color:var(--accent-strong)}button.danger:hover{border-color:var(--down);color:var(--down)}button.quiet{border-color:transparent;background:transparent;color:var(--ink-2);padding:5px 9px}button.quiet:hover{background:var(--surface-2);color:var(--ink)}button.quiet.danger:hover{background:transparent}.app{display:flex;flex-direction:column;height:100%}.app-error,.loading{min-height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:48px 20px;text-align:center}.loading-compact{min-height:0;padding:40px 20px 32px}.loading-mark{width:64px;height:64px;display:block;overflow:visible}.loading-mark polygon{transform-box:fill-box;transform-origin:center;animation:prism-rise 1.5s ease-in-out infinite}.loading-mark polygon:nth-child(2){animation-delay:.2s}.loading-mark polygon:nth-child(3){animation-delay:.4s}@keyframes prism-rise{0%,to{transform:translateY(0);opacity:.55}50%{transform:translateY(-5px);opacity:1}}.loading-title{margin:8px 0 0;font-family:var(--font-display);font-size:1.15rem;font-weight:600;color:var(--ink)}.loading-actions{margin-top:8px}.loading-step{margin:0;font-size:.9rem;color:var(--muted);animation:loading-step-in .4s ease-out}@keyframes loading-step-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion: reduce){.loading-mark polygon,.loading-step{animation:none}}.app-error{color:var(--down)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 24px;border-bottom:1px solid var(--line);background:var(--surface-bar);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.brand{display:flex;align-items:center;gap:9px;margin-right:8px}.brand h1{font-size:1.35rem;font-weight:600;letter-spacing:-.02em}.brand-mark{width:28px;height:28px;display:block}.topbar-left,.topbar-right{display:flex;align-items:center;gap:20px}.assumptions-toggle{border-style:dashed;color:var(--ink-2)}.assumptions-toggle.active{border-style:solid;border-color:var(--brass);background:var(--brass-soft);color:var(--brass);font-weight:600}.view-toggle[aria-disabled=true]{opacity:.45}.view-toggle{display:flex;gap:2px}.view-toggle button{border:0;background:transparent;border-radius:var(--radius-sm);padding:6px 13px;color:var(--ink-2);font-weight:500}.view-toggle button:hover{background:var(--surface-2);color:var(--ink)}.view-toggle button.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.theme-toggle button{display:flex;align-items:center;padding:6px 8px;color:var(--muted)}.theme-icon{width:16px;height:16px}.scenario-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:8px 24px;background:var(--surface-rail);border-bottom:1px solid var(--line)}.tabs{display:flex;gap:4px;flex-wrap:wrap}.tab{border:1px solid transparent;background:transparent;padding:5px 12px;color:var(--ink-2)}.tab.active{background:var(--surface);border-color:var(--line);color:var(--ink);font-weight:600;box-shadow:var(--shadow-tab)}.tab-scenario.active{background:var(--brass-soft);color:var(--brass);border-color:var(--brass-soft)}.tab-new{color:var(--accent);font-weight:500}.actions{display:flex;align-items:center;gap:8px}.unsaved{font-size:.85rem;color:var(--brass);font-weight:600;margin-right:6px}.workspace{display:grid;grid-template-columns:320px 1fr;flex:1;min-height:0}.sidebar{border-right:1px solid var(--line);overflow-y:auto;background:var(--surface)}.sidebar-head{padding:18px 20px 6px}.sidebar-head h2{font-size:1.1rem}.hint{color:var(--muted);font-size:.84rem;margin:4px 0 0;max-width:68ch}.inputs{padding:8px 20px 32px}.input-group{padding:14px 0 6px;border-top:1px solid var(--line)}.input-group:first-child{border-top:0}.input-group h3{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin-bottom:8px}.field{display:grid;grid-template-columns:1fr 120px;align-items:center;gap:10px;padding:4px 0}.field-label{font-size:.9rem;color:var(--ink-2)}.field-changed .field-label{color:var(--brass);font-weight:600}.field-input{display:flex;align-items:center;border:1px solid var(--line);border-radius:var(--radius-xs);background:var(--surface);padding:0 8px;transition:border-color .12s ease,box-shadow .12s ease}.field-input:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--focus-ring)}.field-changed .field-input{border-color:var(--brass)}.field-input input{width:100%;border:0;background:transparent;font:inherit;font-family:var(--font-mono);font-size:.85rem;padding:5px 2px;text-align:right;min-width:0}.field-input input:focus{outline:none}.field-select{grid-template-columns:1fr 160px}.field-input select{width:100%;border:0;background:transparent;font:inherit;font-size:.85rem;padding:5px 0}.field-input select:focus{outline:none}.field-typeahead{grid-template-columns:1fr 210px}.combobox{position:relative;display:flex;width:100%;min-width:0}.combobox input{width:100%;border:0;background:transparent;font:inherit;font-size:.85rem;padding:5px 0;text-align:left;min-width:0;color:var(--ink)}.combobox input:focus{outline:none}.combobox input::placeholder{color:var(--muted)}.combobox-list{position:absolute;top:calc(100% + 5px);left:-9px;right:-9px;z-index:40;margin:0;padding:4px;list-style:none;max-height:260px;overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--radius-sm);box-shadow:var(--shadow-pop)}.combobox-option{padding:6px 8px;border-radius:var(--radius-xs);font-size:.85rem;color:var(--ink);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.combobox-option.is-selected{font-weight:600}.combobox-option.is-active{background:var(--accent-soft);color:var(--accent-strong)}.affix{color:var(--muted);font-size:.8rem}.field-boolean{grid-template-columns:1fr auto}.content{overflow-y:auto;padding:28px 32px 64px;display:flex;flex-direction:column;gap:22px}.content>*{width:100%;max-width:1240px;margin:0 auto}.page-head{display:flex;flex-direction:column;gap:4px;margin-bottom:2px}.page-head h2{font-size:1.9rem;font-weight:500;letter-spacing:-.02em;line-height:1.15}.page-head p{margin:0;color:var(--ink-2);font-size:.95rem}.panel-head{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;margin-bottom:10px}.panel-head h3{margin:0}.summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.tile{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:18px 20px 16px}.tile-label{font-size:.68rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600}.tile-value{font-family:var(--font-display);font-size:2rem;font-weight:500;letter-spacing:-.02em;line-height:1.1;margin-top:8px;font-variant-numeric:tabular-nums}.tile-delta,.tile-sub{margin-top:6px}.tile-delta,.tile-sub{font-size:.85rem;color:var(--muted);font-variant-numeric:tabular-nums}.tile-delta.up{color:var(--up)}.tile-delta.down{color:var(--down)}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:20px 22px 14px}.panel h3{font-size:1.2rem;margin-bottom:6px}.panel>.hint{margin:-2px 0 12px}.chart{width:100%;height:300px}.chart-legend{display:flex;gap:16px;flex-wrap:wrap;font-size:.8rem;color:var(--ink-2);margin:0}.chart-legend .swatch{display:inline-block;width:9px;height:9px;border-radius:999px;margin-right:6px;vertical-align:-1px}.chart-legend .swatch.dashed{background:transparent;border:1px dashed var(--ink-2);height:0;border-width:1px 0 0;width:14px;vertical-align:3px}.chart-tooltip{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px 10px;font-size:.85rem;box-shadow:var(--shadow-pop)}.chart-tooltip .tt-year{font-weight:600;margin-bottom:4px}.chart-tooltip .tt-row{display:flex;justify-content:space-between;gap:16px;font-variant-numeric:tabular-nums}.chart-tooltip .tt-row span:last-child{font-family:var(--font-mono);font-size:.8rem}.table-wrap{overflow-x:auto}.year-table{border-collapse:collapse;width:100%;font-size:.82rem;font-variant-numeric:tabular-nums}.year-table th,.year-table td{text-align:right;padding:5px 8px;border-bottom:1px solid var(--grid);white-space:nowrap}.year-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600;position:sticky;top:0;background:var(--surface)}.year-table td.year{font-family:var(--font-mono);color:var(--ink-2)}.year-table tr.row-now td{background:var(--accent-soft)}.year-table td.up{color:var(--up)}.year-table td.down{color:var(--down)}.assumptions{display:flex;flex-direction:column;gap:18px}.assumptions h4{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:0 0 6px}.assumptions .hint{max-width:78ch;margin-bottom:12px}.assumption-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:18px 28px}.assumption-group dl{margin:0}.assumption-group dl>div{display:flex;justify-content:space-between;gap:12px;padding:3px 0;border-bottom:1px solid var(--grid);font-size:.88rem}.assumption-group dt{color:var(--ink-2)}.assumption-group dd{margin:0;font-family:var(--font-mono);font-size:.8rem;text-align:right;white-space:nowrap}.assumption-group .changed dd{color:var(--brass);font-weight:500}.assumption-group .was{display:block;color:var(--muted);font-weight:400;font-size:.72rem}.year-table td.changed-cell{color:var(--brass);font-weight:600}dl.rules{margin:0;display:grid;gap:10px;max-width:78ch}dl.rules>div{display:grid;grid-template-columns:170px 1fr;gap:12px;font-size:.92rem}dl.rules dt{color:var(--ink-2);font-weight:600}dl.rules dd{margin:0}.bracket-tables{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:24px;margin-top:18px}.small-table{border-collapse:collapse;font-size:.82rem;font-variant-numeric:tabular-nums;width:100%}.small-table th,.small-table td{text-align:right;padding:4px 8px;border-bottom:1px solid var(--grid);white-space:nowrap}.small-table th{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}@media (max-width: 900px){.workspace{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);max-height:40vh}.summary{grid-template-columns:repeat(2,1fr)}}.results{gap:18px}.key-strip{display:flex;flex-direction:column;gap:10px}.key-items{display:flex;gap:8px;flex-wrap:wrap}.key-item{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:8px 12px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:left;min-width:140px}.key-item:hover{border-color:var(--line-strong);background:var(--surface)}.key-item.changed{border-color:var(--brass);background:var(--brass-soft)}.key-item .key-label{font-size:.74rem;color:var(--muted);font-weight:500}.key-item .key-value{font-size:.88rem;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}.key-item .was{font-size:.72rem;color:var(--muted)}.key-more .key-value{color:var(--accent);font-family:var(--font-body)}.changes{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--brass);border-radius:var(--radius-sm);padding:10px 14px}.changes-empty{background:transparent;border:0;padding:0 2px}.changes-title{font-size:.88rem;color:var(--ink-2);font-weight:600;margin-bottom:4px}.changes-empty .changes-title{color:var(--muted);font-weight:400;margin:0}.changes ul{margin:0;padding:0;list-style:none;display:grid;gap:3px}.changes li{display:flex;gap:10px;font-size:.9rem;align-items:baseline}.changes li .link{font-weight:600;min-width:180px;text-align:left}button.link{border:0;background:transparent;color:var(--accent);padding:0;font-size:.85rem}button.link:hover{text-decoration:underline}.model{display:grid;grid-template-columns:210px 1fr;flex:1;min-height:0}.model-nav{border-right:1px solid var(--line);background:var(--surface-rail);padding:16px 12px;overflow-y:auto}.model-nav-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:8px 8px 6px}.nav-divider{border-top:1px solid var(--line);margin:12px 10px}.model-nav .nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:transparent;padding:7px 10px;border-radius:var(--radius-sm);color:var(--ink-2);font-weight:500}.model-nav .nav-item:hover{background:var(--surface-2);color:var(--ink)}.model-nav .nav-item.active{background:var(--accent-soft);color:var(--accent);font-weight:600}.model-nav .nav-icon{width:16px;height:16px;flex:none;color:var(--muted)}.model-nav .nav-item.active .nav-icon{color:var(--accent)}.model-nav .editing{margin:0 8px;padding:6px 10px;border-radius:var(--radius-sm);background:var(--surface-2);font-weight:600;font-size:.9rem}.model-nav .editing-scenario{background:var(--brass-soft);color:var(--brass)}.model-nav .hint{margin:8px}.model-main{overflow-y:auto;padding:28px 32px 80px;display:flex;flex-direction:column;gap:20px}.model-main>*{width:100%;max-width:1240px;margin:0 auto}.model-section h3{margin-bottom:4px}.quantities{display:flex;flex-direction:column;gap:6px;margin-top:10px}.quantities .field{grid-template-columns:1fr 180px;max-width:560px}.quantities .field .was{display:block;font-size:.72rem;color:var(--muted);font-weight:400}.quantity-timeline{border-top:1px solid var(--line);padding-top:12px;margin-top:8px}.quantity-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap;margin-bottom:8px}.quantity-head h4{font-family:var(--font-body);font-size:.95rem;font-weight:600;margin:0}.rule{display:flex;gap:16px}.rule-field{display:flex;align-items:center;gap:8px}.rule-field .field-label{font-size:.85rem;color:var(--ink-2)}.rule-field .field-input{width:140px}.rule-field.field-changed .field-label{color:var(--brass);font-weight:600}.rule-field.field-changed .field-input{border-color:var(--brass)}.tl-scroll{max-height:340px;overflow-y:auto;border:1px solid var(--line);border-radius:var(--radius-sm)}.tl-table th.left,.tl-table td.left{text-align:left}.tl-table td.value{font-family:var(--font-mono)}.tl-table td.value .was{display:block;font-size:.72rem;color:var(--muted);text-decoration:line-through}.tl-table tr.row-changed td{background:var(--brass-soft)}.tl-table tr.row-changed td.value{color:var(--brass);font-weight:600}.tl-table .detail{color:var(--muted);font-size:.78rem}.tl-table td.action{width:70px}.badge{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;padding:1px 6px;border-radius:4px;margin-right:4px}.badge-actual{background:var(--accent-soft);color:var(--accent)}.badge-base{background:var(--surface-2);color:var(--ink-2)}.badge-override{background:var(--brass-soft);color:var(--brass)}.override-form td{background:var(--surface-2)}.override-fields{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:4px 0}.override-fields .field-input{width:150px}.override-fields .check{display:flex;align-items:center;gap:5px;font-size:.85rem}.override-fields .note{font:inherit;font-size:.85rem;border:1px solid var(--line);border-radius:var(--radius-xs);padding:5px 8px;width:200px}.override-fields .error{color:var(--down);font-size:.85rem}.show-all{margin-top:6px}.tile-bad{border-color:var(--down)}.tile-bad .tile-value{color:var(--down)}.section-head{display:flex;justify-content:space-between;align-items:baseline}.danger-link{color:var(--down)}.adders{display:flex;gap:8px;flex-wrap:wrap}.child-costs{margin-top:10px}.child-costs-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:8px;flex-wrap:wrap}.child-costs .hint{margin:0}.cell-input{width:130px;margin-left:auto}.cell-input input{padding:3px 2px}.child-costs-actions{display:flex;gap:14px;margin-top:6px}.model-body{display:grid;grid-template-columns:1fr;min-height:0}.model-body.with-panel{grid-template-columns:minmax(0,1fr) 600px}.calc-panel{border-left:1px solid var(--line);background:var(--surface-panel);overflow-y:auto;padding:16px 18px 40px;display:flex;flex-direction:column;gap:12px}.calc-head{display:flex;justify-content:space-between;align-items:flex-start}.calc-year{display:flex;align-items:center;gap:10px}.calc-year h3{font-size:1.4rem}.calc-year .link{font-size:1.3rem;line-height:1}.calc-total{display:flex;flex-direction:column;gap:2px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--radius-sm)}.calc-total-value{font-family:var(--font-display);font-size:1.5rem}.calc-lines{list-style:none;margin:0;padding:0;display:grid;gap:3px;font-size:.88rem}.calc-lines li{display:flex;justify-content:space-between;gap:10px;border-bottom:1px solid var(--grid);padding:2px 0}.calc-lines .value{font-family:var(--font-mono);font-size:.82rem;white-space:nowrap}.calc-section h4{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:8px 0 6px}.cost-table td.left,.cost-table th.left{text-align:left}.cost-table .cell-input{width:96px;margin-left:auto}.cost-table .cell-text{width:100%;margin-left:0}.cost-table .cell-text input{text-align:left;font-family:var(--font-body)}.cost-table tr.row-inactive td{color:var(--muted)}.cost-table tr.row-inactive .cell-input{opacity:.6}.cost-items .link{margin-top:6px}.tl-table td.value .was,.child-costs-head .was{color:var(--muted);font-size:.75rem;text-decoration:line-through;margin-left:6px}.cost-table td.left{min-width:170px}.tl-scroll{overflow-x:auto}.cell-share{width:84px}.cell-override{border-color:var(--brass)}.cell-override input{color:var(--brass);font-weight:600}button.link.tiny{font-size:.7rem;margin-left:4px}.mc{display:flex;flex-direction:column;gap:14px}.mc-controls{display:flex;gap:14px;align-items:flex-end;flex-wrap:wrap;margin-top:6px}.mc-opt{display:flex;flex-direction:column;gap:3px;font-size:.78rem;color:var(--ink-2)}.mc-opt .field-input{width:110px}.mc .error{color:var(--down)}.mc .stale{color:var(--brass)}.chart-tall{height:360px}.grid-table{width:auto;margin:8px 0 12px}.grid-table td,.grid-table th{padding:6px 14px}.grid-table td.left{text-align:left}.grid-table td.warn{color:var(--brass)}.income-sheet{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}.tl-table tr.row-inactive td{color:var(--muted)}.income-summary{display:flex;flex-direction:column;gap:10px}.income-summary-person{display:grid;grid-template-columns:90px 1fr;gap:12px;align-items:center}.income-summary-name{font-family:var(--font-display);font-size:1.1rem}.income-summary-years{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.income-summary .tile-value{font-size:1.35rem}.income-summary .tile-sub{font-size:.78rem}.tile-changed{border-color:var(--brass)}.tile-changed .tile-value{color:var(--brass)}.job-editor{display:flex;flex-direction:column;gap:8px;margin:6px 0 10px}.field-wide{grid-template-columns:160px 1fr;max-width:none}.inline-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.month-picker{display:inline-flex;gap:6px}.grants .field-label{margin-bottom:6px;display:block}.grants .cost-table{margin-bottom:4px}.section-adders{margin-top:10px;align-items:center}.section-toggle{display:flex;align-items:baseline;gap:10px;border:0;background:transparent;padding:0;text-align:left;min-width:0}.section-toggle h3{margin:0}.section-toggle .chevron{color:var(--muted);font-size:.85rem;width:12px}.section-summary{color:var(--muted);font-size:.85rem;font-family:var(--font-mono)}.model-section.collapsed{padding-bottom:12px}.subsections{display:flex;flex-direction:column;gap:10px;margin:14px 0 4px}.model-subsection{background:var(--bg);border-color:var(--line);padding:12px 14px 8px}.subsection-title{font-family:var(--font-display);font-size:1rem;font-weight:500;margin:0;letter-spacing:-.01em;text-transform:none;color:var(--ink)}.model-subsection.collapsed{padding-bottom:10px}.job-card{display:flex;flex-direction:column;gap:14px;margin-top:4px}.job-head{display:flex;justify-content:space-between;align-items:flex-end;gap:16px;flex-wrap:wrap}.job-title{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.job-name{width:260px}.job-name input{text-align:left;font-family:var(--font-display);font-size:1.15rem;padding:4px 2px}.job-pill{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.job-pill-current{background:var(--accent-soft);color:var(--accent)}.job-pill-past{background:var(--surface-2);color:var(--ink-2)}.job-pill-future{background:var(--brass-soft);color:var(--brass)}.job-headline{display:flex;flex-direction:column;align-items:flex-end;gap:2px}.job-total{font-family:var(--font-display);font-size:1.5rem;line-height:1.1}.comp{display:flex;flex-direction:column;gap:6px}.comp-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--surface-2);gap:2px}.comp-bar span{display:block;height:100%}.comp-legend{display:flex;gap:14px;flex-wrap:wrap;font-size:.82rem;color:var(--ink-2)}.comp-legend .swatch{display:inline-block;width:9px;height:9px;border-radius:2px;margin-right:5px;vertical-align:-1px}.job-groups{display:flex;flex-direction:column;gap:12px}.job-group{border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);padding:12px 14px}.job-group-changed{border-color:var(--brass)}.job-group-head{display:flex;align-items:center;gap:10px;margin-bottom:4px}.job-group h5{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:0}.job-group .hint{margin:0 0 10px}.job-group .quantity-timeline{border-top:0;padding-top:4px;margin-top:4px}.timing{display:grid;grid-template-columns:1fr 1fr;gap:16px}.timing-item{display:flex;flex-direction:column;gap:6px}.timing-item .field-label{font-size:.8rem}label.mini{display:flex;flex-direction:column;gap:3px;font-size:.72rem;color:var(--muted)}.grant-list{display:flex;flex-direction:column;gap:10px;margin-bottom:8px}.grant{border-top:1px solid var(--grid);padding-top:10px}.grant:first-child{border-top:0;padding-top:0}.grant-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.grant-name{width:170px;margin:0}.grant-name input{font-weight:600}.grant-progress{display:flex;align-items:center;gap:10px;margin-top:8px}.progress-track{flex:0 0 160px;height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.progress-fill{display:block;height:100%;background:var(--series-5)}.progress-track.chance{flex-basis:90px}.progress-track.chance .progress-fill{background:var(--brass)}.outcomes{display:flex;flex-direction:column;gap:8px;margin-bottom:8px}.outcome-row{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap}.outcome-name{width:190px;margin:0}.outcome-expected{font-family:var(--font-mono);font-size:.82rem;padding-bottom:6px}.outcome-rest{font-size:.85rem;color:var(--muted)}.cost-table.compact td,.cost-table.compact th{padding:4px 6px}.model{grid-template-rows:minmax(0,1fr)}.model-body{grid-template-rows:minmax(0,1fr);min-height:0}.model-main,.calc-panel{min-height:0}.refresh{margin-top:12px;padding-top:10px;border-top:1px solid var(--grid);display:flex;flex-direction:column;gap:8px}.refresh.field-changed{border-top-color:var(--brass)}.refresh-note{margin:0}.bracket-editor{display:grid;gap:14px}.bracket-base{padding-bottom:14px;border-bottom:1px solid var(--line)}.bracket-base .badge{margin-left:8px}.bracket-rows{display:grid;grid-template-columns:150px 110px auto;gap:6px 12px;align-items:center;width:max-content}.bracket-rows .head{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);font-weight:600}.bracket-rows .bracket-row{display:contents}.bracket-rows .bracket-row.field-changed .field-input{border-color:var(--brass)}.bracket-rows .field-input input:disabled{color:var(--muted)}.bracket-rows .bracket-add{grid-column:1 / -1;padding-top:4px}.bracket-years td.value .cell-rate{display:block;font-size:.68rem;color:var(--muted)}.bracket-override{display:grid;gap:10px;padding:6px 0}.bracket-override .hint{margin:0}.tax-tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:14px}.tax-sheet .tl-scroll,.harvest-sheet .tl-scroll{max-height:520px}.harvest-notice{display:grid;gap:10px;justify-items:start}.harvest-notice .hint{margin:0}.chart-tooltip .tt-row.up span:last-child{color:var(--up)}.chart-tooltip .tt-row.down span:last-child{color:var(--down)}button.revert{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;padding:0;margin-left:4px;border:1px solid transparent;border-radius:50%;background:transparent;color:var(--brass);vertical-align:-4px;cursor:pointer}button.revert svg{width:11px;height:11px}button.revert:hover{background:var(--brass);border-color:var(--brass);color:var(--on-fill)}.badge-differs{display:inline-flex;align-items:center;gap:2px;padding-right:3px}.badge-differs button.revert,.was button.revert{width:15px;height:15px;margin-left:2px;vertical-align:-3px}.badge-differs button.revert svg,.was button.revert svg{width:9px;height:9px}.tl-table td.action{white-space:nowrap;width:auto}.key-item-wrap{position:relative;display:inline-flex}.key-item-wrap button.revert{position:absolute;top:6px;right:6px;margin:0}.key-item-wrap .key-item.changed{padding-right:32px}.undo-redo{display:inline-flex;gap:2px}.tab .unsaved-dot{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--brass);margin-left:6px;vertical-align:2px}.spending-summary{display:grid;gap:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:16px 18px}.spending-summary .spend-total{margin-left:6px}.spend-bar{display:flex;height:12px;border-radius:6px;overflow:hidden;background:var(--surface-2)}.spend-seg{display:block;height:100%}.seg-1{background:var(--series-3)}.seg-2{background:var(--ink-2)}.seg-3{background:var(--series-1)}.seg-4{background:var(--series-4)}.seg-5{background:var(--series-5)}.seg-6{background:var(--series-2)}.spend-cats{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}.spend-cat .tile-label{display:flex;align-items:center;gap:6px}.spend-cat .swatch{width:8px;height:8px;border-radius:2px;display:inline-block}.spend-share{margin-left:6px;font-size:.75rem;color:var(--muted);font-weight:400}.spend-lines{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:18px}.spend-list-head{display:flex;justify-content:space-between;font-size:.85rem;border-bottom:1px solid var(--line);padding-bottom:4px;margin-bottom:6px}.spend-line{display:grid;grid-template-columns:1fr 110px 70px 40px;gap:10px;align-items:center;font-size:.85rem;padding:2px 0}.spend-line-bar{height:6px;border-radius:3px;background:var(--surface-2);overflow:hidden}.spend-line-bar i{display:block;height:100%;background:var(--series-1)}.spend-line-amount{text-align:right;font-family:var(--font-mono)}.spend-line-share{text-align:right;color:var(--muted);font-size:.75rem}.spend-list .detail.down{color:var(--down)}.tl-open{margin-top:2px}.tl-remove,.field-remove{margin-left:10px;font-size:.78rem;font-weight:400}.tl-links{display:flex;gap:16px;margin-top:6px}.monarch{display:flex;flex-direction:column;gap:18px}.import-error{border:1px solid var(--down);color:var(--down);background:var(--surface);border-radius:var(--radius-sm);padding:8px 12px;font-size:.9rem}.import-drop{position:relative;display:flex;align-items:center;justify-content:center;border:1.5px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-2);color:var(--ink-2);padding:18px;margin:12px 0;cursor:pointer}.import-drop:hover,.import-drop.dragging{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.import-drop.busy{cursor:progress}.import-drop input{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;cursor:inherit}.import-log{margin:0 0 12px;padding-left:18px;font-size:.85rem;color:var(--ink-2)}.import-log .bad{color:var(--down)}.map-table th.left,.map-table td.left{text-align:left}.map-table td{vertical-align:top}.map-table tr.dim td{color:var(--muted)}.map-table .detail{color:var(--muted);font-size:.76rem}.map-table .detail.block{display:block;white-space:normal;max-width:34ch}.map-table .badge{margin-left:6px}.map-table tr.total-row td{border-top:1px solid var(--line-strong)}.map-table tr.subtotal-row td{border-bottom-color:var(--line)}.map-table tr.part-row td.left{padding-left:22px}.map-table .check{display:inline-flex;align-items:center;gap:4px;font-size:.78rem}.map-select{width:220px;margin-left:auto}.cell-plan{display:block;font-size:.72rem;color:var(--muted)}.badge-suggested{background:var(--surface-2);color:var(--muted)}.badge-stale{background:var(--brass-soft);color:var(--brass)}.subhead{font-family:var(--font-body);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-weight:600;margin:18px 0 6px}.tx-row td{background:var(--surface-2)}.tx-list{border-collapse:collapse;font-size:.78rem;font-variant-numeric:tabular-nums}.tx-list td{padding:2px 10px 2px 0;border:0}.tx-list tr.dim td{color:var(--muted)}.warn-list{color:var(--brass);font-size:.85rem;margin:10px 0 0;padding-left:18px}.apply-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;border-top:1px solid var(--line);margin-top:14px;padding-top:12px}.apply-bar .hint{margin:0}.map-select-sm{width:170px;margin-left:auto}.tl-move{display:inline-flex;align-items:center;gap:4px;margin-left:10px;font-family:var(--font-body);font-weight:400;vertical-align:middle}.tl-move .field-input{padding:0 4px}.tl-move select{font-size:.78rem;padding:2px 0;color:var(--ink-2)}.tl-move.field-changed .field-input{border-color:var(--brass)}.category-table .behaviour-select{width:290px}.category-table .cell-text{width:220px;margin-left:0}.category-table .cell-text input{text-align:left}.category-actions{white-space:nowrap;width:auto}.category-actions button{margin-left:8px}.category-actions button:disabled{color:var(--line-strong);cursor:default}.section-adders .link.spaced{margin-left:auto}.import-picker select{font-size:.85rem;padding:5px 0;max-width:320px}.accounts-editor{display:flex;flex-direction:column;gap:8px;margin-top:8px}.account-table .cell-input{width:120px}.account-table td.left .cell-input{width:100%;min-width:170px}.account-table td.left .cell-input input{text-align:left}.account-table .field-input select{font-size:.82rem}.account-table .field-input{border-color:transparent;background:transparent}.account-table tr:hover .field-input,.account-table .field-input:focus-within{border-color:var(--line);background:var(--surface)}.account-table .field-input:focus-within{border-color:var(--accent)}.account-table td{vertical-align:top}.account-table td .detail{color:var(--muted);font-size:.74rem}.account-table td.left .detail.block{display:block;max-width:230px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-table th:first-child,.account-table td:first-child{max-width:250px}.account-table tr.row-questioned td:first-child{box-shadow:inset 2px 0 0 var(--brass)}.account-table .detail.warn{color:var(--brass)}.account-table tr.row-open td{border-bottom-color:transparent}.account-table tr.detail-row td{background:var(--surface-2)}.account-detail{display:flex;align-items:flex-end;flex-wrap:wrap;gap:18px;padding:4px 2px 8px}.detail-field{display:flex;flex-direction:column;gap:4px}.detail-field .field-label{font-size:.74rem;color:var(--muted)}.detail-field .cell-input{width:130px;margin-left:0}.account-detail .field-input{border-color:var(--line);background:var(--surface)}.accounts-editor .table-tools{display:flex;align-items:center;gap:16px}.accounts-editor .check{display:inline-flex;align-items:center;gap:5px;font-size:.82rem}.account-table th.sortable{padding:0}.account-table .sort-button{width:100%;display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;padding:5px 8px;font:inherit;text-transform:inherit;letter-spacing:inherit;color:inherit;background:none;border:0;border-radius:0}.account-table th.left .sort-button{justify-content:flex-start}.account-table .sort-button:hover{background:none;color:var(--ink)}.account-table .sort-caret{font-size:.6rem;color:var(--accent)}.account-table tr.group-row td,.account-list tr.group-row td{background:var(--surface-2);font-weight:600;color:var(--ink-2)}.account-table tr.group-row .detail,.account-list tr.group-row .detail{font-weight:400;margin-left:6px}.all-accounts .map-select{width:190px;margin-left:0}.all-accounts .owner-select{width:92px}.account-list td.left:first-child{white-space:normal;max-width:32ch}.account-list td.left:first-child .detail.block{display:block;max-width:30ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-list td.action{text-align:right;white-space:nowrap}.account-list td.action button+button{margin-left:10px}.account-list .warn{color:var(--brass)}.account-list tr.dim .map-select select{color:var(--muted)}.cell-plan.down{color:var(--down)}.phases{display:flex;flex-direction:column;gap:10px;margin-top:8px}.phase-table .cell-input{width:110px}.phase-table .cell-input input{text-align:right}.phase-table td.left .cell-input input{text-align:left}.spend-tag{margin-left:4px;font-size:.72rem;color:var(--muted)}.onboard{height:100%;overflow-y:auto;padding:40px 20px 80px}.onboard-card{max-width:620px;margin:0 auto;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:8px 28px 28px}.onboard-head{padding:24px 0 8px;text-align:center}.onboard-head svg{width:36px;height:36px}.onboard-head h1{font-family:var(--font-display);font-size:1.7rem;font-weight:600;margin:10px 0 8px}.onboard-head p{color:var(--ink-2);margin:0 auto;max-width:46ch}.onboard .input-group{padding:18px 0 8px}.onboard .field{grid-template-columns:1fr 160px}.onboard .field-text{grid-template-columns:1fr 220px}.onboard .field-input input{text-align:right}.onboard .field-text .field-input input{text-align:left;font-family:var(--font-body)}.onboard .field-label em{display:block;font-style:normal;font-size:.78rem;color:var(--muted)}.onboard-person{border:1px solid var(--line);border-radius:var(--radius-sm);padding:4px 14px 12px;margin-bottom:10px;background:var(--bg)}.onboard-person-head{display:flex;align-items:center;justify-content:space-between;padding:10px 0 2px}.onboard-person-head h4{margin:0;font-size:.95rem;font-weight:600}.onboard-row{display:grid;grid-template-columns:1fr 1fr auto;align-items:end;gap:10px;padding:6px 0}.onboard-row .field{grid-template-columns:1fr;gap:2px}.onboard-choice{display:flex;gap:8px;padding:4px 0 10px}.onboard-choice button{flex:1}.onboard-choice button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent);font-weight:600}.onboard-problem{margin:2px 0 8px;color:var(--down);font-size:.82rem}.onboard-error{margin:14px 0 0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--down-soft);color:var(--down);font-size:.88rem}.onboard-foot{display:flex;flex-direction:column;align-items:center;gap:10px;padding:24px 0 4px;border-top:1px solid var(--line);margin-top:18px}.onboard-foot button.primary{padding:10px 28px;font-size:.95rem}.onboard-note{text-align:center;max-width:52ch;margin:0 auto}.start-over-strip{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;padding:10px 20px;background:var(--brass-soft);border-bottom:1px solid var(--line);color:var(--ink-2);font-size:.87rem}.start-over-strip strong{color:var(--brass)}.start-over-strip.asking{background:var(--down-soft)}.start-over-strip.asking strong{color:var(--down)}.start-over-actions{display:flex;gap:8px;flex-shrink:0}.start-over-error{flex-basis:100%;color:var(--down)}button.start-over{margin:12px 12px 0;width:calc(100% - 24px);justify-content:flex-start;color:var(--muted)}button.start-over:hover{color:var(--down);border-color:var(--down)}.onboard-explore{display:flex;align-items:center;gap:20px;margin-top:20px;padding:16px 18px;border:1px solid var(--mint);border-radius:var(--radius-sm);background:var(--accent-soft)}.onboard-explore h2{margin:0 0 4px;font-family:var(--font-display);font-size:1.05rem;font-weight:600;color:var(--accent)}.onboard-explore p{margin:0;font-size:.85rem;color:var(--ink-2)}.onboard-explore button{flex-shrink:0;padding:9px 18px}.onboard-concepts{margin-top:18px}.onboard-concepts h3{margin:0 0 10px;font-family:var(--font-display);font-size:.9rem;font-weight:600;color:var(--ink-2)}.concept-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.concept-card{display:flex;flex-direction:column;gap:4px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-sm);background:var(--surface);text-align:left;cursor:pointer}.concept-card:hover:not(:disabled){border-color:var(--mint);background:var(--accent-soft)}.concept-card:disabled{opacity:.55;cursor:default}.concept-name{font-family:var(--font-display);font-size:.95rem;font-weight:600;color:var(--accent)}.concept-tagline{font-size:.82rem;color:var(--ink-2)}.concept-question{font-size:.8rem;font-style:italic;color:var(--muted)}.concept-where{margin-top:2px;font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.onboard-or{display:flex;align-items:center;gap:12px;margin:22px 0 0;color:var(--muted);font-size:.78rem;text-transform:uppercase;letter-spacing:.08em}.onboard-or:before,.onboard-or:after{content:"";flex:1;height:1px;background:var(--line)}.onboard-foot .onboard-note{margin:0}@media (max-width: 560px){.onboard-explore{flex-direction:column;align-items:stretch}}.signin-form{padding:8px 0 0}.signin-form .field-text{grid-template-columns:1fr;gap:6px}.signin-form .field-text .field-input input{font-size:1rem;padding:8px 4px}.signin-sent{color:var(--ink-2);margin:16px 0 4px}.signin-test{margin-top:20px;padding-top:14px;border-top:1px solid var(--line)}.signin-test .hint{margin:4px 0 0}.onboard-account{display:flex;justify-content:flex-end;gap:4px;padding:12px 0 0}.invite-strip strong{color:inherit}.people-panel{max-width:620px;margin:12px auto 0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow-card);padding:14px 20px 18px}.people-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.people-head h2{font-family:var(--font-display);font-size:1.15rem;font-weight:600;margin:0}.people-list{list-style:none;margin:10px 0;padding:0}.people-list li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:baseline;padding:7px 0;border-top:1px solid var(--line)}.people-name{font-weight:500}.people-meta{color:var(--muted);font-size:.82rem}.people-invited .people-name{color:var(--ink-2);font-weight:400}.people-invite{display:flex;gap:8px;align-items:stretch;margin:6px 0 10px}.people-invite .field-input{flex:1}.people-invite .field-input input{text-align:left;font-family:var(--font-body);font-size:.9rem}
