:root{
  --ink:#16181c; --ink-2:#1d2025; --card:#212429; --card-2:#262a30;
  --line:#33373e; --line-soft:#2a2e34;
  --text:#ece8e1; --muted:#9aa0a8; --dim:#6b7178;
  --brass:#c9a96a; --brass-dim:#9d834c;
  --pos:#84b06a; --neg:#d6705f; --info:#7fa8c9;
  --r:14px;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  font-family:'Mona Sans','Hanken Grotesk',system-ui,sans-serif;
  background:var(--ink); color:var(--text);
  font-size:17px;
  font-feature-settings:"tnum" 1; letter-spacing:.005em;
  padding:28px 20px 80px; line-height:1.5;
}
.wrap{max-width:1180px;margin:0 auto}
.num{font-variant-numeric:tabular-nums}

/* Topbar */
.topbar{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:16px;margin-bottom:26px;padding-bottom:22px;border-bottom:1px solid var(--line-soft)}
.title{font-family:'Inter',sans-serif;font-size:30px;font-weight:600;letter-spacing:-.01em;line-height:1.1}
.title .accent{color:var(--brass);font-style:italic}
.subtitle{color:var(--muted);font-size:14px;margin-top:6px}
.controls{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.saved{font-size:12.5px;color:var(--dim);display:flex;align-items:center;gap:6px}
.saved .dot{width:7px;height:7px;border-radius:50%;background:var(--pos);box-shadow:0 0 8px var(--pos)}
button{font-family:inherit;font-size:13px;cursor:pointer;border-radius:9px;border:1px solid var(--line);background:var(--card);color:var(--text);padding:8px 14px;transition:.15s}
button:hover{background:var(--card-2);border-color:var(--brass-dim)}
button.ghost{background:transparent}

/* Hero */
.hero{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:14px;margin-bottom:14px}
.hero-card{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:20px 22px}
.hero-card.feature{background:linear-gradient(135deg,#23262c,#1c1f24);border-color:var(--brass-dim)}
.hk-label{font-size:12.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.08em;font-weight:500}
.hk-val{font-family:'Inter',sans-serif;font-size:34px;font-weight:600;margin-top:8px;letter-spacing:-.01em;line-height:1}
.feature .hk-val{font-size:42px;color:var(--brass)}
.hk-sub{font-size:12.5px;color:var(--dim);margin-top:7px}
.pos{color:var(--pos)} .neg{color:var(--neg)}

/* Cashflow bar */
.flow{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:20px 22px;margin-bottom:26px}
.flow-top{display:flex;justify-content:space-between;align-items:baseline;flex-wrap:wrap;gap:10px;margin-bottom:14px}
.flow-top h3{font-family:'Inter',sans-serif;font-weight:600;font-size:18px}
.flow-stats{display:flex;gap:26px;flex-wrap:wrap}
.flow-stat .l{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.flow-stat .v{font-size:19px;font-weight:600;margin-top:2px}
.track{height:14px;border-radius:8px;background:var(--ink-2);overflow:hidden;display:flex}
.track .seg{height:100%}
.track .seg.income{background:var(--brass)}
.track-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:10px;font-size:12px;color:var(--muted)}
.track-legend span{display:flex;align-items:center;gap:6px}
.track-legend i{width:9px;height:9px;border-radius:2px;display:inline-block}

/* Sections grid */
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:26px}
.section{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:18px 20px}
.section.wide{grid-column:1/-1}
.section h2{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;margin-bottom:4px;display:flex;align-items:center;gap:9px}
.section h2 .tag{font-family:'Hanken Grotesk';font-size:11px;color:var(--brass);border:1px solid var(--brass-dim);border-radius:20px;padding:2px 9px;letter-spacing:.04em;text-transform:uppercase;font-weight:500}
.sec-note{font-size:12px;color:var(--dim);margin-bottom:14px}
.field{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 0;border-bottom:1px solid var(--line-soft)}
.field:last-child{border-bottom:none}
.field label{font-size:14px;color:var(--text)}
.field label .hint{display:block;font-size:11.5px;color:var(--dim)}
.ipt{display:flex;align-items:center;background:var(--ink-2);border:1px solid var(--line);border-radius:8px;padding:0 4px 0 9px;transition:.15s;min-width:120px}
.ipt:focus-within{border-color:var(--brass);background:#1a1d22}
.ipt .pre{color:var(--dim);font-size:13.5px}
.ipt input{font-family:inherit;font-size:14.5px;font-variant-numeric:tabular-nums;background:transparent;border:none;color:var(--text);text-align:right;width:120px;padding:7px 4px;outline:none;font-weight:500}
.ipt input::-webkit-outer-spin-button,.ipt input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.ipt input[type=number]{-moz-appearance:textfield}
.ipt .suf{color:var(--dim);font-size:12px;padding-right:6px;white-space:nowrap}

/* derived row inside sections */
.derived{margin-top:12px;padding-top:12px;border-top:1px dashed var(--line)}
.drow{display:flex;justify-content:space-between;font-size:13px;padding:4px 0}
.drow .dl{color:var(--muted)} .drow .dv{font-weight:600;font-variant-numeric:tabular-nums}

/* Insights */
.insights{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px}
.ins{background:var(--card-2);border:1px solid var(--line-soft);border-radius:var(--r);padding:16px 18px}
.ins .il{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ins .iv{font-family:'Inter',sans-serif;font-size:25px;font-weight:600;margin-top:7px}
.ins .ih{font-size:12px;color:var(--dim);margin-top:6px;line-height:1.45}

/* Checklist */
.checklist{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:20px 22px}
.checklist h2{font-family:'Inter',sans-serif;font-weight:600;font-size:18px;margin-bottom:4px}
.cl-note{font-size:12.5px;color:var(--dim);margin-bottom:16px}
.clitem{display:flex;gap:13px;align-items:flex-start;padding:11px 0;border-bottom:1px solid var(--line-soft);cursor:pointer}
.clitem:last-child{border-bottom:none}
.clbox{flex-shrink:0;width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;transition:.15s;margin-top:1px;font-size:13px;color:var(--ink)}
.clitem.done .clbox{background:var(--brass);border-color:var(--brass)}
.clitem.done .ct{color:var(--dim);text-decoration:line-through}
.ct{font-size:14.5px;line-height:1.5}
.ct .cd{display:block;font-size:12.5px;color:var(--muted);margin-top:2px}
.clitem.done .cd{color:var(--dim)}

/* Collapsible checklist */
.checklist h2{cursor:pointer;user-select:none;display:flex;align-items:center;justify-content:space-between}
.cl-chevron{font-size:13px;color:var(--dim);transition:transform .2s;margin-left:10px}
.checklist.collapsed .cl-note,.checklist.collapsed #checklist{display:none}
.checklist.collapsed .cl-chevron{transform:rotate(-90deg)}

/* Snapshots */
.snap{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:20px 22px;margin-bottom:26px}
.snap-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:14px;margin-bottom:16px}
.snap-head h2{font-family:'Inter',sans-serif;font-weight:600;font-size:18px}
.snap-head .sn-note{font-size:12.5px;color:var(--dim);margin-top:4px;max-width:430px}
.capture{background:var(--brass);color:#1a1407;border:none;font-weight:600;padding:10px 18px;font-size:13.5px}
.capture:hover{background:#d8bd84;border:none}
.snap-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:18px}
.ss{background:var(--ink-2);border-radius:10px;padding:13px 16px}
.ss .l{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.ss .v{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:4px}
.metric-toggle{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.mt{font-size:12.5px;padding:6px 13px;border-radius:20px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:.15s}
.mt:hover{border-color:var(--brass-dim);color:var(--text)}
.mt.active{background:var(--brass);color:#1a1407;border-color:var(--brass);font-weight:600}
.chartwrap{width:100%;overflow:hidden}
.chartwrap svg{width:100%;height:auto;display:block}
.empty-chart{text-align:center;padding:46px 20px;color:var(--dim);font-size:14px;border:1px dashed var(--line);border-radius:12px}
.snap-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:13.5px}
.snap-table th{text-align:left;font-size:11.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500;padding:8px 10px;border-bottom:1px solid var(--line)}
.snap-table th.r,.snap-table td.r{text-align:right}
.snap-table td{padding:9px 10px;border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums}
.snap-table tr:last-child td{border-bottom:none}
.del{background:transparent;border:none;color:var(--dim);cursor:pointer;font-size:13px;padding:2px 6px;border-radius:5px}
.del:hover{color:var(--neg);background:rgba(214,112,95,.12)}
.footer{margin-top:30px;text-align:center;font-size:12px;color:var(--dim);line-height:1.7}

/* Toast notification */
.toast{position:fixed;bottom:30px;right:30px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 24px;box-shadow:0 10px 40px rgba(0,0,0,0.3);font-size:14px;color:var(--text);z-index:10000;animation:slideIn 0.3s ease-out;display:flex;align-items:center;gap:12px}
.toast.success{border-color:var(--pos);background:rgba(132,176,106,0.08)}
.toast.success::before{content:'✓';color:var(--pos);font-weight:bold;font-size:18px}
@keyframes slideIn{from{transform:translateX(100%);opacity:0}to{transform:translateX(0);opacity:1}}
@keyframes slideOut{from{transform:translateX(0);opacity:1}to{transform:translateX(100%);opacity:0}}

/* Tax Depreciation Schedule */
.dep{background:var(--card);border:1px solid var(--line-soft);border-radius:var(--r);padding:20px 22px;margin-bottom:26px}
.dep-head{display:flex;justify-content:space-between;align-items:flex-start;flex-wrap:wrap;gap:12px;margin-bottom:14px}
.dep-head h2{font-family:'Inter',sans-serif;font-weight:600;font-size:17px;display:flex;align-items:center;gap:9px;margin-bottom:4px}
.dep-note{font-size:12px;color:var(--dim)}
.dep-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:14px}
.dst{background:var(--ink-2);border-radius:10px;padding:13px 16px}
.dst .dl{font-size:11.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.dst .dv{font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:4px}
.dep-toggle-btn{font-size:12.5px;padding:6px 13px;border-radius:8px;border:1px solid var(--line);background:transparent;color:var(--muted);cursor:pointer;transition:.15s;white-space:nowrap}
.dep-toggle-btn:hover{border-color:var(--brass-dim);color:var(--text)}
.dep-table-wrap{overflow:hidden}
.dep-table{width:100%;border-collapse:collapse;font-size:13px}
.dep-table th{text-align:left;font-size:11px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);font-weight:500;padding:7px 8px;border-bottom:1px solid var(--line)}
.dep-table th.r,.dep-table td.r{text-align:right}
.dep-table td{padding:7px 8px;border-bottom:1px solid var(--line-soft);font-variant-numeric:tabular-nums;color:var(--muted)}
.dep-table tr.dep-current td{background:rgba(201,169,106,0.07);color:var(--text);font-weight:500}
.dep-table tr.dep-current td:first-child{border-left:3px solid var(--brass);padding-left:6px}
.dep-table tr.dep-past td{color:var(--dim)}
.dep-table tr:last-child td{border-bottom:none}

@media(max-width:900px){
  .hero{grid-template-columns:1fr 1fr}
  .insights{grid-template-columns:1fr 1fr}
  .grid{grid-template-columns:1fr}
}
@media(max-width:560px){
  .hero{grid-template-columns:1fr}
  .insights{grid-template-columns:1fr}
  .snap-summary{grid-template-columns:1fr}
  .dep-stats{grid-template-columns:1fr}
}
