/* MehlSoft Finance: the MehlSoft Hub and MehlSoft Time look (white cards, purple to indigo gradient on the active
   item and main buttons, orange eyebrows, Inter), so the apps read as one product. Light is the default; dark is
   the same palette at night. --oak is the accent (indigo; the name is kept so older rules still work).
   Certainty is part of the visual language:
   solid = actual, dotted rule = confirmed, hatched = estimated, dashed = assumption, striped = demo. */
:root{
  --bg:#f3f5f9;--panel:#ffffff;--raise:#f1f4f9;--rule:#e4e8ef;--rule2:#d5dce6;
  --ink:#0f172a;--ink2:#334155;--ink3:#64748b;
  --oak:#4f46e5;--oak-d:#c7d2fe;--orange:#f97316;--tint:#eef2ff;
  --grad:linear-gradient(135deg,#7c3aed,#4f46e5);--glow:0 4px 12px rgba(79,70,229,.28);
  --sh:0 1px 2px rgba(15,23,42,.05),0 1px 3px rgba(15,23,42,.04);--sh2:0 10px 30px rgba(15,23,42,.12);
  --actual:#0d9488;--confirmed:#0284c7;--estimated:#d97706;--assume:#7c3aed;--demo:#db2777;
  --good:#059669;--warn:#b45309;--bad:#dc2626;--info:#4f46e5;
  --side-bg:#ffffff;--top-bg:rgba(255,255,255,.94);--field:#ffffff;--hover:#f8fafc;--tot:#f1f4f9;--th:#f8fafc;--backdrop:rgba(15,23,42,.4);
  --on-oak:#ffffff;--on-bad:#ffffff;--grid:#e8edf3;
  --warn-bg:#fffbeb;--warn-ink:#92400e;--warn-rule:#fcd34d;--good-bg:#ecfdf5;--good-ink:#065f46;--good-rule:#a7f3d0;
  --bad-bg:#fef2f2;--bad-rule:#fecaca;--info-bg:#eef2ff;--demo-a:#fdf2f8;--demo-b:#fce7f3;--demo-ink:#9d174d;
  --r:14px;--r2:8px;--gap:16px;--side:244px;
  --sans:Inter,"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --disp:Inter,"Segoe UI",system-ui,sans-serif;
}
:root[data-theme=dark]{
  --bg:#0b1022;--panel:#131a33;--raise:#1a2342;--rule:#252f50;--rule2:#344068;
  --ink:#e8ecf8;--ink2:#aab4d0;--ink3:#7f8aab;
  --oak:#a5b4fc;--oak-d:#3730a3;--orange:#fb923c;--tint:#1f2752;
  --glow:0 4px 14px rgba(79,70,229,.45);--sh:none;--sh2:0 12px 34px rgba(0,0,0,.5);
  --actual:#2dd4bf;--confirmed:#38bdf8;--estimated:#fbbf24;--assume:#c4b5fd;--demo:#f472b6;
  --good:#34d399;--warn:#fbbf24;--bad:#f87171;--info:#a5b4fc;
  --side-bg:#0e1430;--top-bg:rgba(11,16,34,.92);--field:#0e1430;--hover:#18203d;--tot:#161e3b;--th:#161e3b;--backdrop:rgba(3,6,18,.7);
  --on-bad:#1a0606;--grid:#1f2947;
  --warn-bg:#2b2110;--warn-ink:#fcd98f;--warn-rule:#6b4d1f;--good-bg:#0f2a22;--good-ink:#8ff0c8;--good-rule:#1f6b4a;
  --bad-bg:#3b1722;--bad-rule:#5a2433;--info-bg:#1c2450;--demo-a:#2a1420;--demo-b:#331a28;--demo-ink:#ffc2d8;
}
*{box-sizing:border-box}
html{color-scheme:light}
:root[data-theme=dark]{color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{font-family:var(--disp);margin:0;font-weight:600;letter-spacing:-.01em}
a{color:var(--oak)}
.skip{position:absolute;left:-999px}.skip:focus{left:8px;top:8px;background:var(--oak);color:#fff;padding:8px 12px;z-index:99;border-radius:6px}
:focus-visible{outline:2px solid var(--oak);outline-offset:2px}
.num,td.n,.kpi b{font-variant-numeric:tabular-nums}
.shell{display:grid;grid-template-columns:var(--side) minmax(0,1fr);min-height:100vh}
.side{background:var(--side-bg);border-right:1px solid var(--rule);position:sticky;top:0;height:100vh;display:flex;flex-direction:column;overflow:hidden}
.brand{display:flex;gap:10px;align-items:center;padding:16px 16px 12px}
.brand b{font:800 16px var(--disp);display:block;line-height:1.1;letter-spacing:-.01em}.brand small{color:var(--orange);font-size:12px;font-weight:700;letter-spacing:.02em}
.mark{width:38px;height:33px;flex:none;display:block}
#nav{flex:1;overflow:auto;padding:4px 8px 12px}
.ng{margin-top:10px}
.ng>button{all:unset;display:flex;width:100%;align-items:center;justify-content:space-between;padding:6px 10px;color:var(--ink3);font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;cursor:pointer;border-radius:6px;box-sizing:border-box}
.ng>button:hover{color:var(--ink2)}.ng>button:after{content:"▾";font-size:10px}.ng.shut>button:after{content:"▸"}.ng.shut .ni{display:none}
.ni{display:flex;align-items:center;gap:10px;padding:7px 10px;margin:1px 0;border-radius:10px;color:var(--ink2);text-decoration:none;position:relative;font-size:13.5px;font-weight:600;transition:background .12s}
.ni svg{flex:none;color:var(--ink3)}.ni:hover{background:var(--raise);color:var(--ink)}
.ni[aria-current=page]{background:var(--grad);color:#fff;box-shadow:var(--glow)}.ni[aria-current=page] svg{color:#fff}
.ni .dot{margin-left:auto;min-width:18px;height:18px;border-radius:9px;background:var(--orange);color:var(--on-bad);font-size:11px;font-weight:700;display:grid;place-items:center;padding:0 5px}
.ng.more{border-top:1px solid var(--rule);padding-top:8px;margin-top:14px}
.ni.ext span{display:flex;flex-direction:column;line-height:1.2}.ni.ext small{color:var(--ink3);font-size:11px}
.ni.ext i{margin-left:auto;font-style:normal;color:var(--ink3);font-size:12px}.ni.ext:hover i{color:var(--orange)}
.ni.ext small{font-weight:500}
.side-foot{padding:12px 14px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink3)}
.main{min-width:0}
.top{display:flex;align-items:center;gap:14px;padding:12px 24px;border-bottom:1px solid var(--rule);position:sticky;top:0;background:var(--top-bg);backdrop-filter:blur(8px);z-index:20}
.crumb span{display:block;color:var(--orange);font-size:11px;font-weight:700;letter-spacing:.02em;line-height:1.2}.crumb h1{font-size:21px;font-weight:800}
.top-r{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.btn.menu{display:none}
#main{padding:22px 24px 60px;max-width:1680px;outline:none}
.banner{padding:9px 24px;font-size:13px;display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--rule)}
.banner.demo{background:repeating-linear-gradient(45deg,var(--demo-a),var(--demo-a) 12px,var(--demo-b) 12px,var(--demo-b) 24px);color:var(--demo-ink)}
.banner.warn{background:var(--warn-bg);color:var(--warn-ink)}
.banner.col{flex-direction:column;align-items:flex-start;gap:4px}
.banner .howto summary{cursor:pointer;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.banner .howto ol{margin:8px 0 6px 18px;padding:0;line-height:1.5}
.banner .howto li{margin:3px 0}
.banner .howto p{margin:4px 0 0;opacity:.85}
.banner .howto a{color:inherit;text-decoration:underline}
/* controls */
.btn{font:inherit;font-weight:600;font-size:13px;color:var(--ink2);background:var(--panel);border:1px solid var(--rule2);border-radius:10px;padding:6px 12px;cursor:pointer;text-decoration:none;display:inline-flex;gap:6px;align-items:center;min-height:32px}
.btn:hover{border-color:var(--ink3);color:var(--ink);background:var(--hover)}.btn:disabled{opacity:.5;cursor:not-allowed}
.btn.pri{background:var(--grad);border-color:transparent;color:#fff;font-weight:700;box-shadow:var(--glow)}.btn.pri:hover{filter:brightness(1.08);color:#fff;background:var(--grad)}
.btn.ghost{background:transparent;box-shadow:none}.btn.sm{padding:3px 10px;min-height:28px;font-size:12px;border-radius:8px}.btn.icon{padding:6px 10px}
.btn.danger{color:var(--bad);border-color:var(--bad-rule)}
input,select,textarea{font:inherit;color:var(--ink);background:var(--field);border:1px solid var(--rule2);border-radius:9px;padding:6px 9px;min-height:32px;max-width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--oak);box-shadow:0 0 0 3px rgba(79,70,229,.15)}
input[type=number]{width:120px}textarea{width:100%;min-height:70px}
label.f{display:grid;gap:3px;font-size:12px;color:var(--ink2)}
label.f small{color:var(--ink3)}
.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.row.sp{justify-content:space-between}
.grid{display:grid;gap:var(--gap)}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(3,minmax(0,1fr))}.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.g21{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}.g12{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
.stack>*+*{margin-top:var(--gap)}
.card{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);padding:18px;min-width:0;box-shadow:var(--sh)}
.card>h3{font-size:15px;font-weight:700;margin-bottom:2px}.card>.sub{color:var(--ink3);font-size:12px;margin-bottom:12px}
.card.flat{background:transparent}
.pagehead{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;margin-bottom:18px;flex-wrap:wrap}
.pagehead p{margin:4px 0 0;color:var(--ink3);max-width:70ch}.pagehead h2{font-size:22px;font-weight:800}
/* KPI */
.kpis{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.kpi{background:var(--panel);border:1px solid var(--rule);border-radius:var(--r);padding:14px 16px;position:relative;overflow:hidden;min-width:0;box-shadow:var(--sh)}
.kpi span.l{color:var(--ink3);font-size:11.5px;font-weight:600;display:block}
.kpi b{display:block;font:800 26px/1.15 var(--disp);margin:3px 0 2px;letter-spacing:-.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.kpi small{color:var(--ink3);font-size:12px;display:block}
.kpi:before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--actual)}
.kpi.c-CONFIRMED:before{background:var(--confirmed)}.kpi.c-ESTIMATED:before{background:repeating-linear-gradient(180deg,var(--estimated) 0 4px,transparent 4px 7px)}
.kpi.c-ASSUMPTION:before{background:repeating-linear-gradient(180deg,var(--assume) 0 2px,transparent 2px 6px)}.kpi.c-DEMO:before{background:var(--demo)}
.kpi.bad b{color:var(--bad)}.kpi.good b{color:var(--good)}
/* badges */
.badge{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--rule2);border-radius:20px;padding:1px 9px;font-size:12px;color:var(--ink2);white-space:nowrap}
.badge:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink3)}
.b-ACTUAL:before{background:var(--actual)}.b-CONFIRMED:before{background:var(--confirmed)}
.b-ESTIMATED:before{background:repeating-linear-gradient(45deg,var(--estimated) 0 2px,var(--panel) 2px 3px)}
.b-ASSUMPTION:before{background:transparent;border:1.5px dashed var(--assume)}.b-DEMO:before{background:var(--demo)}
.sev{font-size:12px;font-weight:600;border-radius:5px;padding:1px 7px}
.sev-High{background:var(--bad-bg);color:var(--bad)}.sev-Medium{background:var(--warn-bg);color:var(--warn)}.sev-Low{background:var(--info-bg);color:var(--info)}.sev-Info{background:var(--raise);color:var(--ink2)}
.pass{color:var(--good)}.fail{color:var(--bad)}.warnc{color:var(--warn)}.muted{color:var(--ink3)}
.chip{display:inline-flex;gap:6px;align-items:center;border-radius:999px;padding:5px 12px;font-size:12px;font-weight:700;border:1px solid var(--rule2);background:var(--panel);cursor:pointer;color:var(--ink);font-family:inherit}
.chip.draft{border-color:var(--warn-rule);background:var(--warn-bg);color:var(--warn-ink)}.chip.ready{border-color:var(--good-rule);background:var(--good-bg);color:var(--good-ink)}
.chip.stale{color:var(--ink2)}
/* tables */
.tw{overflow:auto;border:1px solid var(--rule);border-radius:var(--r);max-width:100%;background:var(--panel)}
table{border-collapse:collapse;width:100%;font-size:13px}
th,td{padding:7px 11px;text-align:left;border-bottom:1px solid var(--rule);white-space:nowrap}
th{position:sticky;top:0;background:var(--th);color:var(--ink3);font-weight:700;font-size:11px;letter-spacing:.04em;text-transform:uppercase;cursor:default;z-index:1}
th.s{cursor:pointer}th.s:hover{color:var(--ink)}
td.n,th.n{text-align:right}td.wrap{white-space:normal;min-width:220px}
tr:last-child td{border-bottom:0}tbody tr:hover td{background:var(--hover)}
tr.tot td{font-weight:600;background:var(--tot)}
tr.gap td{color:var(--ink3);font-style:italic}
td.neg{color:var(--bad)}td.pos{color:var(--good)}
tr.est td{background-image:repeating-linear-gradient(135deg,rgba(240,185,92,.07) 0 6px,transparent 6px 12px)}
.tools{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
/* charts */
.chart{position:relative;height:300px}.chart.tall{height:380px}.chart.short{height:220px}
.legend{display:flex;gap:14px;flex-wrap:wrap;font-size:12px;color:var(--ink2);margin-top:8px}
.legend i{display:inline-block;width:14px;height:8px;border-radius:2px;margin-right:5px;vertical-align:middle}
.lg-est i{background:repeating-linear-gradient(135deg,var(--estimated) 0 3px,transparent 3px 5px);border:1px solid var(--estimated)}
.lg-ass i{border:1px dashed var(--assume)}
/* tabs, bars, misc */
.tabs{display:flex;gap:2px;border-bottom:1px solid var(--rule);margin-bottom:14px;overflow:auto}
.tabs button{all:unset;padding:8px 14px;cursor:pointer;color:var(--ink3);font-weight:600;border-bottom:2px solid transparent;white-space:nowrap}
.tabs button[aria-selected=true]{color:var(--oak);border-color:var(--oak)}.tabs button:hover{color:var(--ink)}
.bar{height:8px;border-radius:4px;background:var(--raise);overflow:hidden}.bar>i{display:block;height:100%;background:var(--actual)}
.callout{border:1px solid var(--rule);border-left:3px solid var(--orange);background:var(--panel);border-radius:var(--r2);padding:10px 14px;font-size:13px;color:var(--ink2)}
.callout.bad{border-left-color:var(--bad)}.callout.good{border-left-color:var(--good)}.callout.info{border-left-color:var(--info)}
.callout b{color:var(--ink)}
.issue{display:grid;grid-template-columns:auto 1fr auto;gap:12px;padding:12px 0;border-bottom:1px solid var(--rule);align-items:start}
.issue:last-child{border-bottom:0}.issue h4{font-size:14px}.issue p{margin:2px 0;color:var(--ink2);font-size:13px}
.issue.ack{opacity:.55}
.check{display:grid;grid-template-columns:70px 1fr;gap:10px;padding:8px 0;border-bottom:1px solid var(--rule)}
.check:last-child{border:0}.check p{margin:0;color:var(--ink3);font-size:12px}
.empty{padding:36px 16px;text-align:center;color:var(--ink2);border:1px dashed var(--rule2);border-radius:var(--r)}
.empty b{display:block;color:var(--ink);margin-bottom:4px;font-size:15px}
.kv{display:grid;grid-template-columns:max-content 1fr;gap:4px 16px;font-size:13px}.kv dt{color:var(--ink3)}.kv dd{margin:0}
.cert-hatch{background:repeating-linear-gradient(135deg,rgba(240,185,92,.35) 0 4px,transparent 4px 8px)}
.tip{border-bottom:1px dotted var(--ink3);cursor:help}
.form{display:grid;gap:12px;grid-template-columns:repeat(auto-fill,minmax(210px,1fr))}
.form .wide{grid-column:1/-1}
dialog{background:var(--panel);color:var(--ink);border:1px solid var(--rule);border-radius:16px;box-shadow:var(--sh2);padding:0;width:min(760px,94vw);max-height:90vh}
dialog::backdrop{background:var(--backdrop)}
.dh{display:flex;justify-content:space-between;align-items:center;padding:14px 18px;border-bottom:1px solid var(--rule)}
.db{padding:18px;overflow:auto;max-height:68vh}.df{padding:12px 18px;border-top:1px solid var(--rule);display:flex;gap:8px;justify-content:flex-end}
#toasts{position:fixed;right:16px;bottom:16px;display:grid;gap:8px;z-index:60}
.toast{background:var(--panel);border:1px solid var(--rule2);border-left:3px solid var(--good);padding:10px 14px;border-radius:10px;max-width:380px;box-shadow:var(--sh2)}
.toast.err{border-left-color:var(--bad)}
.scrim{display:none}
@media (prefers-reduced-motion:no-preference){.toast{animation:in .18s ease-out}@keyframes in{from{transform:translateY(8px);opacity:0}}}
@media (max-width:1280px){.g4{grid-template-columns:repeat(2,minmax(0,1fr))}.g3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:1024px){
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:fixed;left:0;top:0;bottom:0;width:var(--side);transform:translateX(-100%);transition:transform .2s;z-index:50}
  .shell.open .side{transform:none}.shell.open .scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:40}
  .btn.menu{display:inline-flex}.g21,.g12{grid-template-columns:minmax(0,1fr)}
  .top,#main,.banner{padding-left:16px;padding-right:16px}
}
@media (max-width:720px){.g2,.g3,.g4{grid-template-columns:minmax(0,1fr)}.chart{height:240px}.kpi b{font-size:22px}.issue{grid-template-columns:1fr}.crumb h1{font-size:17px}}
@media print{.side,.top,.btn,#toasts{display:none}.shell{display:block}body{background:#fff;color:#000}}

.help{margin:-6px 0 18px;max-width:78ch;color:var(--ink2);font-size:13.5px}
.help summary{cursor:pointer;font-weight:600;color:var(--ink);list-style:none}
.help summary::-webkit-details-marker{display:none}
.help summary::before{content:'?';display:inline-grid;place-items:center;width:18px;height:18px;margin-right:8px;border:1px solid var(--rule2);border-radius:50%;font-size:12px}
.help[open] summary{margin-bottom:6px}
.help ol{margin:6px 0 8px 20px;padding:0;line-height:1.55}
.help li{margin:3px 0}
.help p{margin:4px 0}
.help .each{border-left:2px solid var(--rule2);padding-left:10px}

.theme-btn{min-width:32px;justify-content:center}

/* Cost groups against sales (Management accounts, Cost groups tab) */
.cghead{font-size:13px;font-weight:700;margin:18px 0 8px;color:var(--ink)}
table.cgt td{vertical-align:middle}
tr.cgrow{cursor:pointer}tr.cgrow:focus-visible{outline:2px solid var(--oak);outline-offset:-2px}
.cgcaret{display:inline-block;width:14px;color:var(--ink3);font-size:11px;transition:transform .15s}
tr.cgrow[aria-expanded=true] .cgcaret{transform:rotate(90deg);color:var(--oak)}
tr.cgacc>td{background:var(--raise);padding:10px 14px;white-space:normal}tr.cgacc .tw{max-width:100%}tr.cgacc table td{white-space:normal}
.spark{display:block;width:92px;height:24px;color:var(--oak)}.spark.hot{color:var(--warn)}
.cgtag{display:inline-block;border-radius:999px;padding:2px 9px;font-size:11.5px;font-weight:700;white-space:nowrap;background:var(--raise);color:var(--ink3)}
.cgtag.watch{background:var(--warn-bg);color:var(--warn)}.cgtag.easing{background:var(--good-bg);color:var(--good)}
form.cgset{margin-top:16px;align-items:flex-end}form.cgset label.f{max-width:360px}
.sugtag{display:block;margin-top:3px;font-size:11px;font-weight:600;color:var(--orange)}

/* Company logo top left (from the Hub), MehlSoft lockup top right (06/11/2026) */
.clogo{width:44px;height:38px;object-fit:contain;border-radius:9px;background:#fff;border:1px solid var(--rule);padding:3px;flex:none}
.brand small{display:block}
.mslock{display:flex;align-items:center;gap:8px;padding-left:10px;margin-left:4px;border-left:1px solid var(--rule)}
.mslock .mark{width:30px;height:26px}.mslock b{display:block;font:800 13px/1.1 var(--disp)}.mslock small{display:block;color:var(--orange);font-size:11px;font-weight:700}
/* the MehlSoft logo is the ORIGINAL picture, never redrawn or recoloured (07/11/2026, Daniel); only the word "Finance" beside it is ours */
img.mslogo{height:34px;width:auto;display:block;flex:none;margin:-4px 0}.mslock img.mslogo{height:30px}
i.msword{font-style:normal;font-size:15px;font-weight:700;color:#fe8a17;padding-left:9px;border-left:1.5px solid #cbd5e1;line-height:18px;white-space:nowrap}
.brand small b{display:inline;font:inherit;color:#154a7e;letter-spacing:0}.brand small b::after{content:"|";color:#cbd5e1;font-weight:400;margin:0 6px}.brand small{color:#fe8a17}
@media (max-width:1024px){.mslock{display:none}}
.mslock[hidden]{display:none!important}

/* Suppliers: bars on one scale (largest = full width) and tags */
.bars{display:grid;gap:10px}
.brow{display:grid;grid-template-columns:minmax(120px,200px) minmax(0,1fr) 84px;gap:10px;align-items:center;font-size:12.5px}
.brow .nm b{display:block;font-weight:700}.brow .nm small{color:var(--ink3)}
.track{display:grid;gap:3px}.track i{display:block;height:9px;border-radius:5px;min-width:2px}
.track i.now{background:linear-gradient(90deg,var(--assume),var(--oak))}.track i.prev{background:var(--rule2)}
.brow .v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}
.cgtag.new{background:var(--tint);color:var(--oak)}
tr.srow{cursor:pointer}tr.srow:focus-visible{outline:2px solid var(--oak);outline-offset:-2px}
@media (max-width:520px){.brow{grid-template-columns:minmax(0,1fr) 76px}.brow .track{grid-column:1/-1;grid-row:2}}

/* Last month report (Board reporting) */
.lmhead{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:6px 0 14px}.lmhead small{display:block;width:100%}
.lmhead h2{font-size:20px;font-weight:800;text-wrap:balance}
.said{display:grid;gap:9px;margin:0;padding:0;list-style:none}
.said li{display:grid;grid-template-columns:14px minmax(0,1fr);gap:8px;font-size:13.5px;color:var(--ink2)}
.said li::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--orange);margin-top:7px}
.bridge{display:grid;gap:6px}
.bridge .row{display:grid;grid-template-columns:150px minmax(0,1fr) 60px;gap:10px;align-items:center;font-size:12.5px;flex-wrap:nowrap}
.bridge .lane{position:relative;height:16px;background:var(--raise);border-radius:4px}
.bridge .lane i{position:absolute;top:2px;bottom:2px;border-radius:3px}
.bridge .lane i.base{background:var(--oak)}.bridge .lane i.neg{background:var(--bad)}.bridge .lane i.pos{background:var(--good)}
.bridge .v{text-align:right;font-weight:700;font-variant-numeric:tabular-nums}.bridge .v.neg{color:var(--bad)}.bridge .v.pos{color:var(--good)}
.lmboxes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.lmbox{display:grid;gap:6px}.lmbox textarea{min-height:90px;resize:vertical}
@media (max-width:720px){.lmboxes{grid-template-columns:minmax(0,1fr)}.bridge .row{grid-template-columns:96px minmax(0,1fr) 50px}}
.eyebrow{font-size:11.5px;font-weight:700;color:var(--orange);letter-spacing:.02em}

/* Balance sheet */
table.bst tr.grpline td{font-size:11px;font-weight:700;color:var(--orange);letter-spacing:.04em;text-transform:uppercase;background:var(--panel);padding-top:14px}
table.bst tr.strong td{background:var(--tint);font-weight:800}
.up{color:var(--bad)}.down{color:var(--good)}
code{font-size:12px;background:var(--raise);padding:1px 5px;border-radius:5px}

/* Loading note shown before the figures arrive */
.loading{display:flex;align-items:center;gap:12px;padding:40px 8px;color:var(--ink3);font-weight:600}
.spin{width:18px;height:18px;border-radius:50%;border:2.5px solid var(--rule2);border-top-color:var(--oak);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.spin{animation:none}}

/* Overhead budgets (Cost groups) */
details.obud{margin-top:16px;border:1px solid var(--rule);border-radius:var(--r);padding:12px 16px;background:var(--panel)}
details.obud summary{cursor:pointer;font-weight:700}
.obgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;margin-top:10px}
.obgrid input{width:100%}.obgrid .row{grid-column:1/-1}
.steps-ol{margin:8px 0 8px 20px;padding:0;display:grid;gap:6px;line-height:1.5}

/* Why the cash moves (overview) */
.cashwhy{border-top:1px solid var(--rule);padding-top:10px;font-size:13px;color:var(--ink2)}
.cashwhy ul{margin:6px 0 8px 18px;padding:0;display:grid;gap:4px}.cashwhy b{color:var(--ink)}
.wear{height:8px;border-radius:4px;background:var(--raise);overflow:hidden;min-width:70px}.wear i{display:block;height:100%;background:linear-gradient(90deg,var(--estimated),var(--bad))}

/* Assets: what is needed */
.card.todo ul{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:8px}
.card.todo li{display:grid;grid-template-columns:62px minmax(0,1fr);gap:10px;align-items:start;font-size:13.5px;color:var(--ink2)}
.card.todo li span{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:.04em;border-radius:999px;padding:2px 0;text-align:center}
.card.todo li.act span{background:var(--bad-bg);color:var(--bad)}.card.todo li.check span{background:var(--warn-bg);color:var(--warn)}.card.todo li.info span{background:var(--info-bg);color:var(--info)}
.aprl{display:inline-flex;align-items:center;gap:6px;cursor:pointer}.aprl input{width:18px;height:18px;min-height:0}.mapbar{padding:0 0 12px}.mapbar .savebtn{margin-left:auto}
.mapbar .row{align-items:flex-end}.mapbar .row .btn{min-height:36px}.mapbar label.f select{min-height:36px}#shownc{align-self:center}
.mstrip{margin-bottom:10px}.mstrip th:first-child,.mstrip td:first-child{position:sticky;left:0;background:var(--panel);z-index:1}.cgcmprow{margin-bottom:12px;align-items:flex-end}.cgcmprow .muted{padding-bottom:8px}
.mgrid td.cur{background:var(--tint);font-weight:700}.mgrid th:first-child,.mgrid td:first-child{position:sticky;left:0;background:var(--panel);z-index:1;min-width:200px}

/* Board report (Last month) */
.lmhero{background:linear-gradient(135deg,#0f172a,#1e1b4b 65%,#312e81);color:#fff;border-radius:18px;padding:20px 24px;margin:6px 0 14px;position:relative;overflow:hidden}
.lmhero::after{content:"";position:absolute;width:360px;height:360px;border-radius:50%;background:radial-gradient(circle,rgba(249,115,22,.25),transparent 65%);right:-110px;top:-160px;pointer-events:none}
.lmhero>*{position:relative}.lmhero small{color:#fdba74;font-weight:700;font-size:11.5px}.lmhero h2{font-size:24px;font-weight:800;margin:4px 0 10px;text-wrap:balance}
.lmcounts{display:flex;flex-wrap:wrap;gap:8px}.lmcounts span{padding:4px 11px;border-radius:999px;font-size:12px;font-weight:700;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}
.lmcounts .t-bad{background:rgba(220,38,38,.25);border-color:rgba(248,113,113,.5)}.lmcounts .t-watch{background:rgba(217,119,6,.25);border-color:rgba(251,191,36,.45)}.lmcounts .t-good{background:rgba(5,150,105,.25);border-color:rgba(52,211,153,.45)}
.scgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
.sc{position:relative;background:var(--panel);border:1px solid var(--rule);border-radius:12px;padding:12px 14px 12px 16px;box-shadow:var(--sh);overflow:hidden;min-width:0}
.sc::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ink3)}
.sc span{display:block;font-size:11.5px;font-weight:600;color:var(--ink3)}.sc b{display:block;font-size:21px;font-weight:800;letter-spacing:-.02em;font-variant-numeric:tabular-nums;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sc small{display:block;font-size:11.5px;color:var(--ink3);line-height:1.35}.sc i{position:absolute;right:12px;top:10px;font-style:normal;font-size:13px}
.sc.t-good::before{background:var(--good)}.sc.t-good i{color:var(--good)}.sc.t-bad::before{background:var(--bad)}.sc.t-bad b,.sc.t-bad i{color:var(--bad)}
.sc.t-watch::before{background:var(--warn)}.sc.t-watch i{color:var(--warn)}.sc.t-info::before{background:var(--oak)}
.fds{display:grid;gap:8px;margin-top:6px}
.fd{display:grid;grid-template-columns:28px minmax(0,1fr);gap:10px;align-items:start;padding:10px 12px;border-radius:10px;border:1px solid var(--rule);border-left:4px solid var(--ink3);background:var(--panel)}
.fd .ic{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;font-size:11px;font-weight:800;color:#fff;background:var(--ink3)}
.fd .fdh{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center}.fd .fdh b{font-size:14px}.fd .fdh em{font-style:normal;font-size:11px;font-weight:700;color:var(--ink3);text-transform:uppercase;letter-spacing:.04em}
.fd p{margin:3px 0 0;color:var(--ink2);font-size:13px}
.fd.t-bad{border-left-color:var(--bad);background:var(--bad-bg)}.fd.t-bad .ic{background:var(--bad)}
.fd.t-watch{border-left-color:var(--warn);background:var(--warn-bg)}.fd.t-watch .ic{background:var(--warn)}
.fd.t-good{border-left-color:var(--good)}.fd.t-good .ic{background:var(--good)}.fd.t-info .ic{background:var(--oak)}
.decis ol{margin:8px 0 0;padding-left:22px;display:grid;gap:8px}.decis li b{display:block}.decis li span{display:block;color:var(--ink2);font-size:13px}.decis li a{font-size:12.5px;font-weight:600}

/* User menu in the top bar (06/11/2026) */
.side-foot:empty{display:none}
.um{position:relative}
.umbtn{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:8px;padding:4px 10px 4px 4px;border:1px solid var(--rule);border-radius:12px;background:var(--panel);cursor:pointer}
.umbtn:hover{border-color:var(--rule2)}.umbtn:focus-visible{outline:2px solid var(--oak)}
.umbtn .av{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,var(--orange),#fb923c);color:#fff;font-weight:800;font-size:12px}
.umn b{display:block;font-size:12.5px;line-height:1.15;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.umn small{display:block;font-size:11px;color:var(--ink3)}
.xdot{width:8px;height:8px;border-radius:50%;flex:none;background:var(--ink3)}.xdot.ok{background:var(--good)}.xdot.bad{background:var(--bad)}
.umpop{position:absolute;right:0;top:calc(100% + 6px);min-width:240px;background:var(--panel);border:1px solid var(--rule);border-radius:12px;box-shadow:var(--sh2);padding:6px;z-index:40;display:grid}
.umpop[hidden]{display:none}
.umhead{padding:8px 10px;border-bottom:1px solid var(--rule);margin-bottom:4px}.umhead b{display:block}.umhead small{color:var(--ink3)}
.umrow{display:flex;align-items:center;gap:8px;padding:6px 10px;font-size:12.5px;color:var(--ink2)}
.umpop a,.umpop button{all:unset;box-sizing:border-box;display:block;padding:8px 10px;border-radius:8px;font-size:13px;font-weight:600;color:var(--ink);cursor:pointer}
.umpop a:hover,.umpop button:hover{background:var(--raise)}.umnote{padding:6px 10px;font-size:12px;color:var(--ink3)}
@media (max-width:720px){.umn{display:none}}
.lmcost table{font-size:12.5px}.lmcost th,.lmcost td{white-space:normal;padding:6px 8px}
a.brand{color:inherit;text-decoration:none;border-radius:12px}a.brand:hover b{color:var(--oak)}a.brand:focus-visible{outline:2px solid var(--oak);outline-offset:-2px}

/* which build is running (09/11/2026): the tiny line under the lockup, the menu block, the Demo pill by the company name */
.ver{font-size:10px;color:var(--muted,#94a3b8);font-weight:600;line-height:1.2;text-align:right;white-space:nowrap;margin-left:4px}.ver b{color:#64748b;font-weight:700}
.umpop .uver{padding:8px 12px 6px;font-size:10.5px;line-height:1.5;color:#64748b;border-top:1px solid var(--rule);margin-top:4px}.umpop .uver b{color:var(--ink,#334155)}
.demopill{display:inline-block;background:#fff7ed;color:#c2410c;border:1px solid #fed7aa;border-radius:999px;font-size:9.5px;font-weight:800;letter-spacing:.06em;padding:1px 7px;margin-left:6px;vertical-align:middle;text-transform:uppercase;line-height:1.4}
@media (max-width:1024px){.ver{display:none}}
