/* Atlas — shared design system (used by index.html + investments.html) */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  --navy:#0f2040;--navy2:#162d4e;--teal:#0ea5e9;--green:#10b981;
  --amber:#f59e0b;--red:#ef4444;--purple:#8b5cf6;
  --bg:#f1f5f9;--card:#fff;--border:#e2e8f0;--text:#1e293b;--muted:#64748b;
}
body{font-family:system-ui,-apple-system,sans-serif;background:var(--bg);color:var(--text);font-size:14px}
.hdr-btn{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2);color:#fff;border-radius:6px;padding:6px 12px;cursor:pointer;font-size:11px;font-weight:600}
.hdr-btn:hover{background:rgba(255,255,255,.2)}

/* ── Sidebar nav (replaces header+nav as of v2.1 Phase 1) ── */
#sidebar{position:fixed;left:0;top:0;width:180px;height:100vh;background:var(--navy);display:flex;flex-direction:column;z-index:100;overflow-y:auto}
.sb-logo{padding:20px 16px 16px;border-bottom:1px solid #1e3a5c;flex-shrink:0}
.sb-title{font-size:18px;font-weight:700;color:#fff}.sb-title span{color:var(--teal)}
.sb-sub{font-size:11px;color:#94a3b8;margin-top:2px}
.sb-nav{flex:1;padding:8px 0;overflow-y:auto}
.sb-group-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#5b7aa0;padding:14px 16px 4px}
.sb-link{display:block;padding:10px 16px;font-size:13px;color:#94a3b8;text-decoration:none;border-left:3px solid transparent;transition:all .15s;cursor:pointer;background:none;border-top:none;border-right:none;border-bottom:none;width:100%;text-align:left;font-family:inherit}
.sb-link:hover{background:rgba(255,255,255,.06);color:#fff}
.sb-link.active{background:rgba(14,165,233,.12);color:var(--teal);border-left-color:var(--teal)}
.sb-status{padding:12px 16px;border-top:1px solid #1e3a5c;display:flex;align-items:center;gap:6px;font-size:11px;color:#94a3b8;flex-shrink:0}
.topbar{position:fixed;left:180px;top:0;right:0;height:48px;background:#fff;border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 20px;z-index:90;gap:12px}
.topbar>div:first-child{flex-shrink:0}
.topbar-title{font-size:15px;font-weight:700;color:var(--text);white-space:nowrap}
.topbar-actions{display:flex;gap:8px;align-items:center;flex:1;min-width:0;justify-content:flex-end;overflow-x:auto;-webkit-overflow-scrolling:touch}
.tb-btn{background:var(--bg);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:6px 12px;cursor:pointer;font-size:11px;font-weight:600;flex-shrink:0;white-space:nowrap}
.tb-btn:hover{background:var(--border)}
.hamburger-btn{display:none;background:none;border:none;font-size:20px;cursor:pointer;color:var(--text);padding:4px 8px;flex-shrink:0}
main{padding:20px 24px;max-width:none;margin:0;margin-left:180px;margin-top:48px}
.app-offset{margin-left:180px;margin-top:48px}
@media(max-width:768px){
  #sidebar{transform:translateX(-100%);transition:transform .2s;box-shadow:2px 0 12px rgba(0,0,0,.3)}
  #sidebar.open{transform:translateX(0)}
  .topbar{left:0}
  .hamburger-btn{display:inline-block}
  main{margin-left:0}
  .app-offset{margin-left:0}
  #hdr-date{display:none}
}
.tab{display:none}.tab.active{display:block}
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.g5{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.card{background:var(--card);border:1px solid var(--border);border-radius:10px;padding:16px;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.card h3{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:12px}
.kpi{text-align:center;padding:12px}
.kpi .v{font-size:24px;font-weight:800;line-height:1}
.kpi .l{font-size:12px;color:var(--muted);margin-top:4px}
.kpi .s{font-size:11px;color:var(--muted);margin-top:2px}
.green{color:var(--green)}.amber{color:var(--amber)}.red{color:var(--red)}.teal{color:var(--teal)}.purple{color:var(--purple)}
table{width:100%;border-collapse:collapse}
th{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.04em;padding:6px 8px;border-bottom:2px solid var(--border);text-align:left}
td{padding:5px 8px;border-bottom:1px solid #f8fafc;font-size:13px}
tr:last-child td{border-bottom:none}
.tf td{font-weight:700;border-top:2px solid var(--border);padding-top:8px;border-bottom:none}
input[type=number],input[type=text],input[type=date]{width:100%;border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:13px;color:var(--text);background:var(--bg)}
input:focus{outline:none;border-color:var(--teal)}
input[type=range]{width:100%;accent-color:var(--teal)}
select{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:13px;color:var(--text);background:var(--card);cursor:pointer}
select:focus{outline:none;border-color:var(--teal)}
.badge{display:inline-block;padding:2px 7px;border-radius:10px;font-size:11px;font-weight:600}
.bg{background:#d1fae5;color:#065f46}.ba{background:#fef3c7;color:#92400e}
.br{background:#fee2e2;color:#991b1b}.bt{background:#e0f2fe;color:#075985}.bp{background:#ede9fe;color:#4c1d95}
.bi{background:#e0e7ff;color:#3730a3}
.bm{background:#e2e8f0;color:#334155}.bl{background:#ecfccb;color:#3f6212}
.row-hl{background:#f8fafc}
.ir{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid #f8fafc;font-size:13px}
.bucket{text-align:center;padding:14px 10px;border-radius:10px;border:2px solid transparent}
.bucket .pct{font-size:20px;font-weight:800;line-height:1}
.bucket .amt{font-size:14px;font-weight:800;margin-top:5px}
.bucket .lbl{font-size:12px;color:var(--muted);margin-top:5px}
.bucket .target{font-size:11px;margin-top:5px;padding:2px 8px;border-radius:8px;display:inline-block}
.b-needs{border-color:#e0f2fe;background:#f0f9ff}.b-wants{border-color:#fef3c7;background:#fffbeb}.b-save{border-color:#d1fae5;background:#f0fdf4}
.alloc-bar{display:flex;border-radius:10px;overflow:hidden;border:1px solid var(--border);height:32px}
.alloc-seg{padding:6px 8px;font-weight:700;color:#fff;font-size:12px}
.ctrl-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:16px}
.ctrl-item label{display:block;font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.ctrl-item .val-display{font-size:14px;font-weight:700;color:var(--teal);margin-top:2px}
.scenario-col{border-radius:10px;padding:14px;border:2px solid var(--border)}
.scenario-col.rent-col{border-color:#e0f2fe;background:#f0f9ff}
.scenario-col.buy-col{border-color:#d1fae5;background:#f0fdf4}
.scenario-col h3{font-size:14px;font-weight:700;margin-bottom:10px;color:var(--text)}
.metric-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid rgba(0,0,0,.06);font-size:13px}
.metric-row:last-child{border-bottom:none}
.metric-row.total{font-weight:700;font-size:14px;padding-top:8px;border-top:2px solid rgba(0,0,0,.1);border-bottom:none;margin-top:4px}
.year-display{font-size:22px;font-weight:800;color:var(--teal);text-align:center}
.cw{position:relative;height:240px}.cwl{position:relative;height:300px}
.section-hdr{background:var(--navy);color:#fff;padding:10px 16px;border-radius:10px 10px 0 0;font-size:13px;font-weight:700;letter-spacing:.06em}
.section-wrap{background:var(--card);border:1px solid var(--border);border-top:none;border-radius:0 0 10px 10px;padding:14px}
.sub-hdr{font-size:11px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:8px;padding-bottom:4px;border-bottom:1px solid var(--border)}
.fl{color:var(--muted);width:54%;padding:4px 6px;font-size:12px;vertical-align:middle}
.proj-row{display:flex;justify-content:space-between;padding:4px 0;border-bottom:1px solid #f8fafc;font-size:12px}
.proj-row:last-child{border-bottom:none}
.proj-row.tot{font-weight:700;border-top:2px solid var(--border);padding-top:6px;margin-top:2px}
/* ── Frequency toggle ── */
.freq-bar{display:flex;gap:4px;margin-bottom:14px;flex-wrap:wrap}
.freq-btn{background:var(--card);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer;color:var(--muted);font-weight:500}
.freq-btn.active{background:var(--navy);color:#fff;border-color:var(--navy)}
/* ── Big percentage display ── */
.big-pct-card{text-align:center;padding:20px;border-radius:12px;border:2px solid var(--border);margin-bottom:14px}
.big-pct-num{font-size:72px;font-weight:900;line-height:1;letter-spacing:-2px}
.big-pct-label{font-size:16px;color:var(--muted);margin-top:4px;font-weight:500}
.big-pct-sub{display:flex;justify-content:center;gap:24px;margin-top:14px;flex-wrap:wrap}
.big-pct-sub .item{text-align:center}
.big-pct-sub .item .v{font-size:20px;font-weight:800}
.big-pct-sub .item .l{font-size:11px;color:var(--muted)}
/* ── Investment badges ── */
.rec-badge{display:inline-block;padding:3px 10px;border-radius:8px;font-size:11px;font-weight:700;cursor:pointer;border:none;transition:opacity .15s}
.rec-buy{background:#d1fae5;color:#065f46}.rec-hold{background:#e0f2fe;color:#075985}
.rec-sell{background:#fee2e2;color:#991b1b}.rec-watch{background:#fef3c7;color:#92400e}
.rec-badge:hover{opacity:.8}
/* ── Progress bar ── */
.prog-bar{background:#e2e8f0;border-radius:8px;height:20px;overflow:hidden;margin-top:8px;position:relative}
.prog-fill{height:100%;border-radius:8px;transition:width .6s;display:flex;align-items:center;padding-left:10px;font-size:11px;font-weight:700;color:#fff}
/* ── Sub-tab nav (for Transactions) ── */
.sub-nav{display:flex;gap:8px;margin-bottom:14px;border-bottom:2px solid var(--border);padding-bottom:0}
.sub-tab-btn{background:none;border:none;border-bottom:3px solid transparent;padding:8px 16px;cursor:pointer;font-size:13px;font-weight:500;color:var(--muted);margin-bottom:-2px}
.sub-tab-btn.active{color:var(--teal);border-bottom-color:var(--teal)}
.sub-tab{display:none}.sub-tab.active{display:block}
/* ── Expense editor ── */
.exp-edit td{padding:3px 4px}
.exp-edit input{padding:4px 6px;font-size:12px}
.exp-edit select{padding:4px 6px;font-size:12px}
.del-btn{background:var(--red);color:#fff;border:none;border-radius:4px;padding:3px 8px;cursor:pointer;font-size:11px;font-weight:700}
.add-btn{background:var(--navy);color:#fff;border:none;border-radius:6px;padding:8px 16px;cursor:pointer;font-size:12px;font-weight:600}
/* ── Report modal ── */
#report-modal{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.55);z-index:999;overflow:auto}
.report-box{background:#fff;max-width:860px;width:calc(100% - 32px);margin:40px auto;padding:40px;border-radius:12px;overflow-wrap:anywhere}
@media (max-width:600px){.report-box{margin:12px auto;padding:18px}}
.report-box h2{font-size:22px;font-weight:800;margin-bottom:4px}
.report-box .report-date{font-size:13px;color:var(--muted);margin-bottom:24px}
.report-section{margin-bottom:24px}
.report-section h3{font-size:14px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--navy);border-bottom:2px solid var(--border);padding-bottom:6px;margin-bottom:12px}
.report-row{display:flex;justify-content:space-between;padding:5px 0;border-bottom:1px solid #f8fafc;font-size:14px}
.report-row.total{font-weight:700;font-size:16px;border-top:2px solid var(--border);margin-top:6px;border-bottom:none;padding-top:8px}
/* ── Investments page extras ── */
.inv-expand{background:#f8fafc;font-size:12px;color:var(--muted)}
.inv-expand td{padding:10px 14px}
.clickable{cursor:pointer}
.clickable:hover{background:#f8fafc}
.mkt-strip{display:flex;gap:18px;flex-wrap:wrap;align-items:center;background:var(--navy2);color:#cbd5e1;border-radius:10px;padding:10px 16px;font-size:12px;margin-bottom:14px}
.mkt-strip b{color:#fff}
.pill{display:inline-block;padding:2px 8px;border-radius:8px;font-size:11px;font-weight:700}
.pill-great{background:#d1fae5;color:#065f46}.pill-good{background:#e0f2fe;color:#075985}
.pill-wait{background:#f1f5f9;color:#64748b}
/* ── hdr-btn inside cards (light version, not on dark nav) ── */
.card .hdr-btn{color:var(--text);background:var(--bg);border:1px solid var(--border);font-size:11px;font-weight:600;border-radius:6px;padding:5px 11px;cursor:pointer}
.card .hdr-btn:hover{background:#e2e8f0}
/* ── Responsive ── */
@media(max-width:960px){.g2,.g3,.g4,.g5,.ctrl-grid{grid-template-columns:1fr}}
@media(max-width:600px){.big-pct-num{font-size:52px}}
@media print{nav,header,#report-modal .report-actions{display:none!important}}
