/* Lucky Ledger look: deep green rail, warm white pages, gold for the one
   number that matters. Loaded after app.css and the inline styles, so
   everything here wins by order. */
:root, :root[data-app="ledger"]{
  --lg-green:#0B2E1F; --lg-green-2:#123F2C; --lg-green-ink:#0B5130; --lg-gold:#C29A2B; --lg-gold-soft:#F3E9CF;
  --lg-cream:#F6F2E8; --lg-page:#F7F5EF; --lg-card:#FFFFFF; --lg-line:#E6E1D6; --lg-line-2:#EFEBE2;
  --lg-ink:#14201B; --lg-muted:#6B7570; --lg-good:#0B5130; --lg-bad:#B23A3A; --lg-warn:#B7791F;
  --brand:#0B5130; --brand-ink:#0B2E1F; --brand-soft:#E8F0EA; --brand-hi:#2E7A55; --brand-lo:#0B5130;
  --brand-rgb:11,81,48; --brand-deep-rgb:11,46,31; --brand-line:#BFD3C6; --brand-tint:#EEF3EF;
  --good:#0B5130; --bad:#B23A3A; --warn:#B7791F; --muted:#6B7570; --line:#E6E1D6; --ink:#14201B;
}
html,body{background:var(--lg-page)!important;color:var(--lg-ink)}
body{background-image:none!important}
.hdr{display:none!important}
/* ---- the rail ---- */
#side{position:fixed;left:0;top:0;bottom:0;width:236px;background:var(--lg-green);color:var(--lg-cream);display:flex;flex-direction:column;z-index:40;padding:22px 14px 16px}
#side .wm{font-family:var(--serif,Georgia,serif);font-size:24px;color:#fff;letter-spacing:.01em;padding:0 10px 18px;display:block}
#side .wm em{color:var(--lg-gold);font-style:italic}
#side nav{display:flex;flex-direction:column;gap:2px}
#side nav button{display:flex;align-items:center;gap:11px;width:100%;text-align:left;background:none;border:0;color:rgba(246,242,232,.72);font:inherit;font-size:14px;font-weight:500;padding:10px 12px;border-radius:8px;cursor:pointer}
#side nav button svg{width:17px;height:17px;flex:none;opacity:.85}
#side nav button:hover{background:rgba(255,255,255,.06);color:#fff}
#side nav button.on{background:rgba(255,255,255,.1);color:#fff;box-shadow:inset 3px 0 0 var(--lg-gold)}
#side nav button .bdg{margin-left:auto;background:var(--lg-gold);color:#0B2E1F;font-size:11px;font-weight:700;padding:1px 7px;border-radius:9px}
#side .foot{margin-top:auto;padding:12px 10px 0;border-top:1px solid rgba(255,255,255,.1);font-size:12px;color:rgba(246,242,232,.6)}
#side .foot .who{color:#fff;font-weight:600;font-size:12px;margin-bottom:4px;word-break:break-all}
#side .foot .chip-conn{position:static;display:inline-block;margin-top:6px;background:rgba(255,255,255,.08);color:#fff;border:0}
#side .foot .chip-conn[data-s="live"]{color:#9BE0B8}
#side .foot a{color:rgba(246,242,232,.6);text-decoration:none}
main#main{margin-left:236px;padding:34px 40px 60px;max-width:1240px}
footer{margin-left:236px}
/* ---- page furniture ---- */
.ph h2{font-family:var(--serif,Georgia,serif);font-weight:400;font-size:30px;letter-spacing:-.01em;margin:0 0 4px;color:var(--lg-ink)}
.ph .sub{color:var(--lg-muted);font-size:14px}
.card{background:var(--lg-card);border:1px solid var(--lg-line);border-radius:10px;box-shadow:0 1px 2px rgba(20,32,27,.04)}
.card h3{font-size:13px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lg-muted);margin:0 0 10px}
.hint{color:var(--lg-muted);font-size:13px;line-height:1.45}
.btn{border-radius:8px;border:1px solid var(--lg-line);background:#fff;color:var(--lg-ink)}
.btn.primary{background:var(--lg-green);border-color:var(--lg-green);color:#fff}
.btn.primary:hover{background:var(--lg-green-2)}
.chip{border-radius:8px;border:1px solid var(--lg-line);background:#fff;color:var(--lg-ink)}
.chip.on{background:var(--lg-green);color:#fff;border-color:var(--lg-green)}
/* ---- KPI tiles ---- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.kpi{background:#fff;border:1px solid var(--lg-line);border-radius:10px;padding:16px 18px 14px;min-height:96px}
.kpi .k{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--lg-muted)}
.kpi .v{font-size:28px;font-weight:700;letter-spacing:-.01em;margin:6px 0 4px;font-variant-numeric:tabular-nums;color:var(--lg-ink)}
.kpi .v.gold{color:var(--lg-gold)}.kpi .v.good{color:var(--lg-good)}.kpi .v.bad{color:var(--lg-bad)}
.kpi .s{font-size:12px;color:var(--lg-muted)}
.kpi .s b{color:var(--lg-ink);font-weight:600}
.delta{font-size:12px;font-weight:600}.delta.up{color:var(--lg-good)}.delta.down{color:var(--lg-bad)}
/* ---- grids ---- */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.g3{display:grid;grid-template-columns:2fr 1fr;gap:14px}
.g23{display:grid;grid-template-columns:1fr 2fr;gap:14px}
.cardp{padding:18px 20px}
/* ---- lists and statements ---- */
.ln{display:flex;justify-content:space-between;align-items:baseline;padding:9px 0;border-bottom:1px solid var(--lg-line-2);font-size:14px}
.ln:last-child{border-bottom:0}
.ln .n{color:var(--lg-ink)}.ln .n small{display:block;color:var(--lg-muted);font-size:12px}
.ln .a{font-variant-numeric:tabular-nums;font-weight:600}
.ln.tot{border-top:1px solid var(--lg-line);border-bottom:0;font-weight:700;margin-top:2px}
.ln.dim .n,.ln.dim .a{color:var(--lg-muted);font-weight:500}
.ln .pct{color:var(--lg-muted);font-size:12px;margin-left:8px;font-weight:500}
table.st{width:100%;border-collapse:collapse;font-size:14px}
table.st th{font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--lg-muted);text-align:right;padding:8px 10px;border-bottom:1px solid var(--lg-line)}
table.st th:first-child,table.st td:first-child{text-align:left;padding-left:0}
table.st td{padding:9px 10px;border-bottom:1px solid var(--lg-line-2);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
table.st tr.sec td{border-bottom:0;padding-top:18px;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--lg-muted);text-align:left}
table.st tr.sub td{padding-left:22px;color:#2B3A33}
table.st tr.tot td{font-weight:700;border-top:1px solid var(--lg-line);border-bottom:0}
table.st tr.net td{font-weight:700;font-size:16px;border-top:2px solid var(--lg-green);border-bottom:0;padding-top:12px}
table.st tr.dim td{color:var(--lg-muted)}
table.st td.neg{color:var(--lg-bad)}
table.st .pc{color:var(--lg-muted);font-size:12px;font-weight:400}
/* ---- report controls ---- */
.rsub{display:flex;gap:6px;flex-wrap:wrap;margin:14px 0 18px}
.rsub button{background:none;border:0;border-bottom:2px solid transparent;padding:8px 2px;margin-right:14px;font:inherit;font-size:14px;font-weight:600;color:var(--lg-muted);cursor:pointer}
.rsub button.on{color:var(--lg-ink);border-bottom-color:var(--lg-gold)}
.pctl{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.pctl select,.pctl input[type=month]{height:36px;border:1px solid var(--lg-line);border-radius:8px;padding:0 10px;background:#fff;font:inherit;font-size:13px}
.pctl label{font-size:12px;color:var(--lg-muted);display:flex;align-items:center;gap:6px}
.legend{display:flex;flex-direction:column;gap:6px;font-size:13px}
.legend div{display:flex;align-items:center;gap:8px}
.legend i{width:10px;height:10px;border-radius:3px;flex:none}
.legend .p{margin-left:auto;color:var(--lg-muted);font-variant-numeric:tabular-nums}
.legend .a{width:78px;text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.note{font-size:12px;color:var(--lg-muted);border-left:2px solid var(--lg-gold);padding:6px 10px;background:var(--lg-gold-soft);border-radius:0 6px 6px 0;margin-top:12px}
.needs{display:flex;flex-direction:column;gap:6px}
.needs a{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;border:1px solid var(--lg-line);border-radius:8px;text-decoration:none;color:var(--lg-ink);font-size:14px}
.needs a b{color:var(--lg-warn)}
.needs a.ok b{color:var(--lg-good)}
.needs a:hover{background:var(--lg-page)}
.stat{border-left-color:var(--lg-line)}
/* the old Mobius stat strip / retainer tiles, if still rendered anywhere */
.rtile.paid{border-color:var(--lg-line)}
@media(max-width:1024px){.kpis{grid-template-columns:repeat(2,1fr)}.g2,.g3,.g23{grid-template-columns:1fr}}
@media(max-width:720px){#side{display:none}main#main,footer{margin-left:0;padding:18px 16px 90px}}

/* nothing may widen the page: grids clamp their tracks, tables scroll inside their card */
main#main{min-width:0;overflow-x:hidden}
.g2{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.g3{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.g23{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.kpis{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}
.card,.kpi{min-width:0}
.tbl-wrap{overflow-x:auto;max-width:100%}
canvas{max-width:100%}
@media(max-width:1024px){.g2,.g3,.g23{grid-template-columns:minmax(0,1fr)}}
