:root[data-accent="lime"]   {--accent:#A6E635;--accent2:#84CC16;--accent-rgb:166,230,53;--accent-ink:#0B1006}
:root[data-accent="violet"] {--accent:#7C5CFC;--accent2:#6A3DF5;--accent-rgb:124,92,252;--accent-ink:#fff}
:root[data-accent="emerald"]{--accent:#12D08A;--accent2:#06B97A;--accent-rgb:18,208,138;--accent-ink:#04120C}
:root[data-accent="amber"]  {--accent:#FBA519;--accent2:#F0930E;--accent-rgb:251,165,25;--accent-ink:#140D01}
:root[data-accent="sky"]    {--accent:#22B8F5;--accent2:#0EA5E9;--accent-rgb:34,184,245;--accent-ink:#021018}
:root[data-accent="rose"]   {--accent:#FB4A66;--accent2:#F11E45;--accent-rgb:251,74,102;--accent-ink:#fff}
:root[data-accent="cobalt"] {--accent:#2F6BF5;--accent2:#1D52E0;--accent-rgb:47,107,245;--accent-ink:#fff}
:root[data-accent="fuchsia"]{--accent:#E03BF0;--accent2:#CE1FE0;--accent-rgb:224,59,240;--accent-ink:#2A0B30}

:root{--font-display:'Sora','Geist',system-ui,sans-serif;--font-body:'Geist',system-ui,sans-serif;--fs:1}
:root[data-font="modern"]{--font-display:'Sora','Geist',system-ui,sans-serif;--font-body:'Geist',system-ui,sans-serif}
:root[data-font="editorial"]{--font-display:'Instrument Serif',Georgia,serif;--font-body:'Geist',system-ui,sans-serif}
:root[data-font="grotesque"]{--font-display:'Bricolage Grotesque',system-ui,sans-serif;--font-body:'Geist',system-ui,sans-serif}
:root[data-font="geometric"]{--font-display:'Sora',system-ui,sans-serif;--font-body:'DM Sans',system-ui,sans-serif}
:root[data-font="classic"]{--font-display:'Fraunces',Georgia,serif;--font-body:'Geist',system-ui,sans-serif}

:root[data-theme="dark"]{
  --chrome-bg:#2C3040;
  --accent-dark:var(--accent);
  --bg:#0A0E14;--bg-grad:radial-gradient(1200px 600px at 80% -10%,rgba(var(--accent-rgb),.06),transparent 60%);
  --surface:#10161F;--surface2:#161E29;--surfaceH:#1B2531;--inp:#0C1018;
  --border:rgba(255,255,255,.14);--borderS:rgba(255,255,255,.09);--inpBorder:rgba(255,255,255,.2);
  --txt:#F4F7FC;--txt2:#AEBDD2;--muted:#7C8AA0;--muted2:#4B5567;
  --ok:#34D399;--okSub:rgba(52,211,153,.12);--warn:#FBBF24;--warnSub:rgba(251,191,36,.12);--err:#F87171;--errSub:rgba(248,113,113,.12);
  --sb:#080B11;--sbBorder:rgba(255,255,255,.06);
  --sh:0 1px 3px rgba(0,0,0,.5);--shM:0 4px 20px rgba(0,0,0,.45);--shL:0 8px 32px rgba(0,0,0,.5);
  --cardGlow:inset 0 1px 0 rgba(255,255,255,.05);--track:rgba(255,255,255,.08);
  --scrollthumb:rgba(255,255,255,.16);--scrollthumbH:rgba(255,255,255,.30);
}
:root[data-theme="light"]{
  --chrome-bg:#BEC2CC;
  --accent-dark:color-mix(in srgb,var(--accent),#000 50%);
  --bg:#F0F2F7;--bg-grad:radial-gradient(1200px 600px at 80% -10%,rgba(var(--accent-rgb),.10),transparent 60%);
  --surface:#fff;--surface2:#F0F2F7;--surfaceH:#E8EAF0;--inp:#FAFBFF;
  --border:rgba(0,0,0,.17);--borderS:rgba(0,0,0,.1);--inpBorder:rgba(0,0,0,.24);
  --txt:#0C1320;--txt2:#3C4862;--muted:#6A748B;--muted2:#AEB6C6;
  --ok:#059669;--okSub:rgba(5,150,105,.1);--warn:#D97706;--warnSub:rgba(217,119,6,.1);--err:#DC2626;--errSub:rgba(220,38,38,.1);
  --sb:#131B2B;--sbBorder:rgba(255,255,255,.07);
  --sh:0 1px 3px rgba(0,0,0,.08);--shM:0 4px 20px rgba(0,0,0,.1);--shL:0 8px 32px rgba(0,0,0,.12);
  --cardGlow:inset 0 1px 0 rgba(255,255,255,.9);--track:rgba(0,0,0,.08);
  --scrollthumb:rgba(0,0,0,.22);--scrollthumbH:rgba(0,0,0,.36);
}
*{box-sizing:border-box;margin:0;padding:0}
html{font-size:17px}
body{font-family:var(--font-body);font-weight:440;background:var(--chrome-bg);color:var(--txt);display:flex;justify-content:center;align-items:flex-start;padding:24px;min-height:100vh;min-height:100dvh;overflow-y:auto;-webkit-font-smoothing:antialiased;letter-spacing:-.01em}
.mono{font-family:var(--font-body);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
/* SIDEBAR */
.sb{width:246px;min-width:246px;background:var(--sb);border-right:1px solid var(--sbBorder);display:flex;flex-direction:column;height:100%}
.sb-logo{padding:22px 18px 18px;border-bottom:1px solid var(--sbBorder)}
.sb-logo-row{display:flex;align-items:center;gap:11px}
.logo-icon{width:38px;height:38px;background:linear-gradient(140deg,var(--accent),var(--accent2));border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:calc(14px * var(--fs));font-weight:700;color:var(--accent-ink);flex-shrink:0;box-shadow:0 4px 14px rgba(var(--accent-rgb),.3)}
.brand-logo{width:100%;max-width:100%;height:auto;max-height:96px;object-fit:contain;display:block}
.logo-text{font-size:calc(15.5px * var(--fs));font-weight:700;color:#EEF2FF;letter-spacing:-.3px}
.logo-sub{font-size:calc(12px * var(--fs));color:var(--muted);margin-top:2px}
.sb-nav{flex:1;padding:10px 0;overflow-y:auto}
.nav-sec{padding:12px 14px 4px}
.nav-lbl{font-size:calc(10.5px * var(--fs));font-weight:700;color:#8C9BB2;letter-spacing:1px;text-transform:uppercase;padding:0 8px;margin-bottom:4px}
.nav-item{display:flex;align-items:center;gap:10px;padding:9px 10px;margin-bottom:5px;border-radius:8px;cursor:pointer;color:#AFC4DF;font-size:calc(15px * var(--fs));font-weight:500;transition:background .15s,color .15s;user-select:none;position:relative;white-space:nowrap}
.nav-item svg{flex:none}
.nav-item:hover{background:rgba(255,255,255,.06);color:#E6EEF8}
.nav-item.active{background:rgba(var(--accent-rgb),.22);color:#fff;font-weight:600}
.nav-item.active::before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--accent);box-shadow:0 0 8px rgba(var(--accent-rgb),.6)}
.nav-item svg{width:16px;height:16px;flex-shrink:0;opacity:.85}
.nav-item.active svg{opacity:1}
.nav-badge{margin-left:auto;background:rgba(255,255,255,.07);color:var(--muted);font-size:calc(12px * var(--fs));font-weight:600;padding:1px 7px;border-radius:20px;font-family:var(--font-body)}
.sb-foot{padding:12px 14px;border-top:1px solid var(--sbBorder)}
.sb-settings{margin-bottom:12px}
/* "All systems operational" + version — now lives under the user row in the sidebar */
.sb-status{display:flex;align-items:center;gap:7px;margin-top:9px;padding:0 2px;font-size:calc(11.5px * var(--fs));color:var(--muted)}
.sb-status-txt{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-status .app-ver{margin-left:auto}
/* segmented switches (appearance + text size) — shared, consistent control */
.seg-ctrls{display:flex;gap:10px;flex-wrap:wrap}
.seg{display:inline-flex;background:rgba(255,255,255,.05);border:1.5px solid rgba(255,255,255,.13);border-radius:11px;padding:3px;gap:3px}
.seg-btn{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:30px;padding:0 11px;border:none;background:none;color:#AFC4DF;cursor:pointer;border-radius:8px;font:inherit;font-weight:700;line-height:1;transition:background .15s,color .15s}
.seg-btn svg{width:17px;height:17px}
.seg-btn:hover{color:#fff}
.seg-btn.on{background:var(--accent);color:var(--accent-ink);box-shadow:0 1px 7px rgba(var(--accent-rgb),.45)}
:root[data-theme="light"] .seg{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.14)}
/* segmented switch on a theme-following surface (Settings panel) */
.set-panel .seg{background:var(--surface2);border-color:var(--inpBorder)}
.set-panel .seg-btn{color:var(--txt2)}
.set-panel .seg-btn:hover{color:var(--txt)}
.set-panel .seg-btn.on{color:var(--accent-ink)}
/* MAIN */
.main{flex:1;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.topbar{height:56px;background:color-mix(in srgb,var(--surface) 70%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;padding:0 28px;gap:12px;flex-shrink:0;position:relative;z-index:100}
.topbar-title{font-size:calc(16px * var(--fs));font-weight:600;color:var(--txt);flex:1;letter-spacing:-.02em}
.topbar-meta{font-size:calc(13.5px * var(--fs));color:var(--muted);display:flex;align-items:center;gap:8px}
.app-ver{font-size:calc(11px * var(--fs));font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:999px;padding:1px 8px;letter-spacing:.02em;font-variant-numeric:tabular-nums;cursor:pointer;transition:color .15s,border-color .15s,background .15s}
.app-ver:hover,.app-ver:focus-visible{color:var(--accent-dark);border-color:rgba(var(--accent-rgb),.5);background:rgba(var(--accent-rgb),.1);outline:none}
/* right-aligned header cluster: status + the light/dark and S/M toggles */
.topbar-right{margin-left:auto;display:flex;align-items:center;gap:14px;flex-shrink:0}
/* topbar settings cog + hover menu */
.topset{position:relative}
.topset-btn{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;border:1px solid var(--border);background:var(--surface);color:var(--txt2);cursor:pointer;padding:0;transition:background .15s,color .15s,border-color .15s}
.topset-btn:hover{background:var(--surface2);color:var(--accent-dark);border-color:rgba(var(--accent-rgb),.4)}
.topset-btn svg{width:18px;height:18px}
.topset-menu{position:absolute;top:calc(100% + 9px);right:0;min-width:212px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shL);padding:6px;display:none;flex-direction:column;gap:1px;z-index:60}
.topset-menu::before{content:'';position:absolute;top:-11px;left:0;right:0;height:11px} /* hover bridge across the gap */
.topset:hover .topset-menu,.topset:focus-within .topset-menu{display:flex}
.topset-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;font:inherit;font-size:calc(13.5px*var(--fs));font-weight:500;color:var(--txt2);background:none;border:0;border-radius:8px;padding:8px 11px;cursor:pointer;white-space:nowrap}
.topset-item:hover{background:rgba(var(--accent-rgb),.1);color:var(--accent-dark)}
.topset-ic{width:16px;height:16px;flex:none;color:var(--muted)}
.topset-item:hover .topset-ic{color:var(--accent-dark)}
/* gold "Pro" mark on a module header title (matches the home sidebar mark) */
.mod-pro{vertical-align:super;margin-left:5px;font-size:calc(12px*var(--fs));font-weight:800;letter-spacing:.4px;text-transform:uppercase;background:linear-gradient(180deg,#E7B73E,#B8860B);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#C99A23}
.topbar-welcome{display:flex;flex-direction:row;align-items:center;gap:10px;line-height:1.2;padding-right:8px;border-right:1px solid var(--border);margin-right:4px}
.tw-greetwrap{display:flex;flex-direction:column;align-items:flex-end}
.tw-avatar{display:inline-flex;flex-shrink:0}
.tw-greet{font-size:calc(13px * var(--fs));font-weight:650;color:var(--txt);white-space:nowrap}
.tw-clock{font-size:calc(11.5px * var(--fs));color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-top:1px}
@media(max-width:900px){.topbar-welcome{display:none}}
.topbar .seg-ctrls{gap:8px;flex-wrap:nowrap}
:root .topbar .seg{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:2px} /* (0,3,0) beats :root[data-theme=light] .seg */
.topbar .seg-btn{color:var(--muted);min-width:34px;height:27px;padding:0 9px}
.topbar .seg-btn:hover{color:var(--txt)}
.topbar .seg-btn.on{color:var(--accent-ink)}
.dot{width:6px;height:6px;border-radius:50%;background:var(--ok);box-shadow:0 0 8px var(--ok)}
.content{flex:1;overflow-y:auto;padding:28px}
@keyframes fadeUp{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
.anim{animation:fadeUp .5s cubic-bezier(.22,1,.36,1) both}
.view.active .anim:nth-child(1){animation-delay:.02s}.view.active .anim:nth-child(2){animation-delay:.07s}.view.active .anim:nth-child(3){animation-delay:.12s}.view.active .anim:nth-child(4){animation-delay:.17s}
/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:7px;padding:8px 16px;border-radius:9px;font-family:var(--font-body);font-size:calc(15px * var(--fs));font-weight:500;cursor:pointer;border:none;transition:transform .12s,background .15s,box-shadow .2s;white-space:nowrap;letter-spacing:-.01em}
.btn:active{transform:scale(.97)}
.btn:disabled,.btn[disabled]{opacity:.4;cursor:not-allowed;box-shadow:none;filter:grayscale(.5)}
.btn:disabled:active,.btn[disabled]:active{transform:none}
.btn:disabled:hover,.btn[disabled]:hover{box-shadow:none}
.btn-primary{background:linear-gradient(140deg,var(--accent),var(--accent2));color:var(--accent-ink);font-weight:600;box-shadow:0 4px 16px rgba(var(--accent-rgb),.3)}
.btn-primary:hover{box-shadow:0 6px 22px rgba(var(--accent-rgb),.42)}
/* Secondary action: on-brand soft accent tint (was a transparent/dark "ghost").
   Keeps a clear hierarchy under the solid .btn-primary while staying brand-coloured. */
.btn-ghost{background:rgba(var(--accent-rgb),.12);color:var(--accent-dark);font-weight:600;border:1.5px solid rgba(var(--accent-rgb),.4)}
.btn-ghost:hover{background:rgba(var(--accent-rgb),.2);color:var(--accent-dark);border-color:rgba(var(--accent-rgb),.66)}
.btn-danger{background:var(--err);color:#fff;font-weight:600;box-shadow:0 4px 16px rgba(0,0,0,.18)}
.btn-danger:hover{filter:brightness(1.06)}
.btn-ai{background:rgba(var(--accent-rgb),.12);color:var(--accent-dark);font-weight:600;border:1.5px solid rgba(var(--accent-rgb),.45)}
.btn-ai:hover{background:rgba(var(--accent-rgb),.2);border-color:rgba(var(--accent-rgb),.7)}
.btn-ai:disabled,.btn-ai[disabled]{background:transparent}
.btn-sm{padding:5px 11px;font-size:calc(14px * var(--fs));border-radius:8px}
.btn-icon{width:32px;height:32px;padding:0;justify-content:center;border-radius:7px}
button,.btn,.nav-item,.acc-head{touch-action:manipulation}
@media(pointer:coarse){.btn-sm{padding:9px 14px}.btn-icon{width:42px;height:42px}}
/* CARDS */
.card{background:var(--surface);border:1.5px solid var(--border);border-radius:14px;padding:20px;box-shadow:var(--sh),var(--cardGlow)}
.card-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.card-title{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.8px}
/* STATS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(196px,1fr));gap:16px;margin-bottom:22px}
.stat{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:18px 20px;box-shadow:var(--sh),var(--cardGlow);overflow:hidden;position:relative;transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s}
.stat:hover{transform:translateY(-3px);border-color:rgba(var(--accent-rgb),.3)}
.stat-lbl{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:12px;display:flex;align-items:center;gap:10px}
.stat-ic{width:36px;height:36px;border-radius:11px;background:rgba(var(--accent-rgb),.15);display:flex;align-items:center;justify-content:center;color:var(--accent-dark);flex-shrink:0;box-shadow:inset 0 0 0 1px rgba(var(--accent-rgb),.2)}
.stat-ic svg{width:20px;height:20px;stroke-width:2.4}
:root[data-theme="light"] .stat-ic{background:rgba(var(--accent-rgb),.28);box-shadow:inset 0 0 0 1.5px rgba(var(--accent-rgb),.55),0 2px 6px rgba(0,0,0,.08)}
:root[data-theme="light"] .cust-logo{background:rgba(var(--accent-rgb),.28);box-shadow:inset 0 0 0 1.5px rgba(var(--accent-rgb),.55)}
:root[data-theme="light"] .user-row .ur-av{background:rgba(var(--accent-rgb),.28);box-shadow:inset 0 0 0 1.5px rgba(var(--accent-rgb),.55)}
.stat-val{font-family:var(--font-display);font-size:calc(28px * var(--fs));font-weight:700;color:var(--txt);line-height:1;letter-spacing:-.02em}
.stat-val.sm{font-size:calc(22px * var(--fs))}
.stat-sub{font-size:calc(13.5px * var(--fs));color:var(--muted);margin-top:8px}
.spark{margin-top:12px;height:34px;width:100%;display:block}
/* DASHBOARD v2 */
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hd-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.seg{display:inline-flex;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}
.seg-btn{font:inherit;font-size:calc(13px * var(--fs));font-weight:600;color:var(--muted);background:transparent;border:none;border-radius:7px;padding:7px 13px;cursor:pointer;transition:color .2s,background .2s}
.seg-btn:hover{color:var(--txt)}
.seg-btn.is-on{background:var(--surface);color:var(--accent-dark);box-shadow:var(--sh)}
.seg-btn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
button.stat{font:inherit;text-align:left;cursor:pointer;width:100%}
button.stat:hover{transform:translateY(-2px);border-color:rgba(var(--accent-rgb),.45)}
button.stat:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.stat-top{display:flex;align-items:flex-start;justify-content:space-between;gap:8px}
.stat-delta{display:inline-flex;align-items:center;gap:2px;font-size:calc(12px * var(--fs));font-weight:700;padding:3px 8px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap}
.stat-delta svg{width:11px;height:11px}
.stat-delta.up{color:var(--ok);background:color-mix(in srgb,var(--ok) 16%,transparent)}
.stat-delta.down{color:var(--err);background:color-mix(in srgb,var(--err) 16%,transparent)}
.stat-delta.flat{color:var(--muted);background:var(--surface2)}
.dash-grid-a{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px;margin-bottom:16px}
.dash-grid-b{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:16px}
@media(max-width:900px){.dash-grid-a,.dash-grid-b{grid-template-columns:1fr}}
/* Recent Quotes — collapsible family accordion */
.rq-fam{border-bottom:1px solid var(--border)}
.rq-fam:last-of-type{border-bottom:none}
.rq-head{display:flex;align-items:center;gap:11px;padding:10px 6px;cursor:pointer;width:100%;text-align:left;background:none;border:none;font:inherit;color:var(--txt);border-radius:8px}
.rq-head:hover{background:var(--surfaceH)}
.rq-id{flex:1;min-width:0}
.rq-cust{font-weight:600;font-size:calc(14.5px * var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rq-title{font-size:calc(12.5px * var(--fs));color:var(--txt2);font-weight:500;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rq-ref{font-size:calc(12px * var(--fs));color:var(--accent-dark);font-weight:500}
.rq-right{display:flex;align-items:center;gap:10px;flex-shrink:0}
.rq-price{font-variant-numeric:tabular-nums;font-weight:600;font-size:calc(14px * var(--fs))}
.rq-chev{width:15px;height:15px;color:var(--muted);transition:transform .22s;flex-shrink:0}
.rq-fam.open .rq-chev{transform:rotate(90deg)}
.rq-body{overflow:hidden;max-height:0;transition:max-height .25s ease}
.rq-fam.open .rq-body{max-height:640px}
.rq-ver{display:flex;align-items:center;gap:10px;padding:7px 6px 7px 46px;cursor:pointer;width:100%;text-align:left;background:none;border:none;font:inherit;color:var(--txt);border-top:1px dashed var(--border)}
.rq-ver:hover{background:var(--surfaceH)}
.rq-ver-l{flex:1;display:flex;align-items:center;gap:9px;min-width:0}
.rq-pills{display:flex;flex-wrap:wrap;align-items:center;gap:5px;min-width:0;overflow:hidden}
.rq-pills .qchg{margin:0;max-width:160px;cursor:help}
.rq-pager{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 0 2px;font-size:calc(13px * var(--fs));color:var(--muted)}
/* Status-links KPI card */
.stat-links{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:13px 15px;box-shadow:var(--sh);display:flex;flex-direction:column}
.stat-links-hd{font-size:calc(11.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:7px}
.stat-link{display:flex;align-items:center;gap:9px;padding:5px 7px;border-radius:8px;cursor:pointer;background:none;border:none;font:inherit;color:var(--txt);width:100%;text-align:left}
.stat-link:hover{background:var(--surfaceH)}
.stat-link .sl-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
.stat-link .sl-l{flex:1;font-size:calc(13.5px * var(--fs));font-weight:500}
.stat-link .sl-n{font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted)}
/* Quotes-list status filter chips */
.qfilter{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:14px}
.qfilter-chip{padding:5px 13px;border-radius:20px;border:1.5px solid var(--inpBorder);background:transparent;color:var(--txt2);font:inherit;font-size:calc(13.5px * var(--fs));font-weight:600;cursor:pointer}
.qfilter-chip.on{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.5);color:var(--accent-dark)}
.vbar-row{margin-bottom:15px}
.vbar-row:last-child{margin-bottom:2px}
.vbar-top{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.vbar-top .l{display:flex;align-items:center;gap:8px;color:var(--txt2);font-size:calc(14px * var(--fs))}
.vbar-top .v{font-variant-numeric:tabular-nums;color:var(--muted);font-size:calc(12.5px * var(--fs))}
.vbar-dot{width:9px;height:9px;border-radius:3px;flex-shrink:0;display:inline-block}
.vbar-track{height:9px;border-radius:5px;background:var(--track);overflow:hidden}
.vbar-fill{height:100%;border-radius:5px;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .7s cubic-bezier(.22,1,.36,1)}
.trend-wrap{position:relative}
.trend-svg{width:100%;height:auto;display:block}
#dash-winloss{display:flex;align-items:center;min-height:96px}
.trend-line{transition:stroke-dashoffset 1.1s cubic-bezier(.4,0,.2,1)}
.trend-grid{stroke:var(--border);stroke-width:1;opacity:.55}
:root[data-theme="light"] .trend-grid{opacity:.85}
.trend-yl,.trend-xl{fill:var(--muted);font-size:calc(10.5px * var(--fs));font-weight:600;font-variant-numeric:tabular-nums}
.trend-area{opacity:0;transition:opacity .85s ease .15s}
.trend-fit{stroke:var(--muted);stroke-width:1.6;stroke-dasharray:5 4;stroke-linecap:round;opacity:0;transition:opacity .7s ease .55s}
.trend-wrap.lit .trend-area{opacity:1}
.trend-wrap.lit .trend-fit{opacity:.8}
.trend-dot{fill:var(--surface);stroke:var(--accent);stroke-width:2;cursor:pointer;transition:r .15s}
.trend-dot:hover,.trend-dot:focus-visible{outline:none}
.trend-x{display:flex;justify-content:space-between;margin-top:8px;font-size:calc(11px * var(--fs));color:var(--muted);font-weight:600}
.seg-sm .seg-btn{padding:5px 10px;font-size:calc(12px * var(--fs))}
.trend-tip{position:absolute;left:0;top:0;pointer-events:none;background:var(--txt);color:var(--surface);font-size:calc(12px * var(--fs));font-weight:700;padding:5px 9px;border-radius:7px;transform:translate(-50%,-138%);white-space:nowrap;opacity:0;transition:opacity .15s;z-index:6;font-variant-numeric:tabular-nums}
.donut-wrap{display:flex;align-items:center;gap:22px}
.donut{position:relative;width:118px;height:118px;flex-shrink:0}
.donut svg{transform:rotate(-90deg)}
.donut-arc{transition:stroke-dashoffset .85s cubic-bezier(.22,1,.36,1)}
.donut-ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.donut-pct{font-family:var(--font-display);font-size:calc(27px * var(--fs));font-weight:700;color:var(--txt);line-height:1}
.donut-cap{font-size:calc(10px * var(--fs));text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-top:3px}
.legend-row{display:flex;align-items:center;gap:9px;font-size:calc(13.5px * var(--fs));color:var(--txt2);margin-bottom:9px}
.legend-row .v{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--muted)}
.attn-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 20px;box-shadow:var(--sh),var(--cardGlow);margin-bottom:16px}
.attn-hd{display:flex;align-items:center;gap:10px;margin-bottom:6px}
.attn-hd .card-title{margin:0}
.attn-count{font-size:calc(11px * var(--fs));font-weight:700;padding:1px 8px;border-radius:999px;background:color-mix(in srgb,var(--warn) 20%,transparent);color:var(--warn)}
.attn-item{display:flex;align-items:center;gap:12px;padding:11px 0;border-top:1px solid var(--borderS);cursor:pointer;text-align:left;width:100%;background:none;border-left:0;border-right:0;border-bottom:0;font:inherit;color:var(--txt)}
.attn-item:hover{color:var(--accent-dark)}
.attn-item:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:8px}
.attn-ic{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:flex;align-items:center;justify-content:center}
.attn-tx{flex:1;font-size:calc(14px * var(--fs));font-weight:500}
.attn-tx .sub{font-size:calc(12.5px * var(--fs));color:var(--muted);font-weight:400;margin-top:1px}
.attn-ref{font-size:calc(12.5px * var(--fs));color:var(--muted);font-variant-numeric:tabular-nums;flex-shrink:0}
.attn-clear{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:calc(14px * var(--fs));padding:7px 0}
.attn-clear svg{color:var(--ok);flex-shrink:0}
#dash-quotes tr[tabindex]{cursor:pointer}
#dash-quotes tr[tabindex]:hover{background:rgba(var(--accent-rgb),.05)}
#dash-quotes tr[tabindex]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
/* SETTINGS rail */
.set-layout{display:grid;grid-template-columns:212px 1fr;gap:24px;align-items:start;max-width:1120px}
.set-rail{display:flex;flex-direction:column;gap:3px;position:sticky;top:8px}
.set-tab{display:flex;align-items:center;gap:11px;font:inherit;font-size:calc(14.5px * var(--fs));font-weight:500;color:var(--txt2);background:none;border:none;border-radius:10px;padding:10px 13px;cursor:pointer;text-align:left;width:100%;transition:background .18s,color .18s}
.set-tab svg{width:17px;height:17px;color:var(--muted);flex-shrink:0;transition:color .18s}
.set-tab:hover{background:var(--surface2);color:var(--txt)}
.set-tab.is-on{background:rgba(var(--accent-rgb),.13);color:var(--accent-dark);font-weight:600}
.set-tab.is-on svg{color:var(--accent-dark)}
.set-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.set-panel{display:none}
.set-panel.is-on{display:block;animation:fadeUp .35s cubic-bezier(.22,1,.36,1) both}
.set-panel .card{max-width:none;margin-bottom:18px}
.set-panel .card:last-child{margin-bottom:0}
@media(max-width:760px){
  .set-layout{grid-template-columns:1fr;gap:14px}
  .set-rail{flex-direction:row;overflow-x:auto;gap:6px;position:static;border-bottom:1px solid var(--border);padding-bottom:10px;-webkit-overflow-scrolling:touch}
  .set-tab{white-space:nowrap;width:auto;padding:9px 14px}
}
/* TABLES */
.tbl-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:calc(15px * var(--fs))}
thead th{text-align:left;padding:10px 14px;font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border)}
tbody tr{border-bottom:1px solid var(--borderS);transition:background .1s}
tbody tr:hover{background:var(--surface2)}
tbody tr:last-child{border-bottom:none}
td{padding:12px 14px;color:var(--txt);vertical-align:middle}
.td-m{color:var(--muted);font-size:calc(14px * var(--fs))}
.ref-cell{font-family:var(--font-body);font-size:calc(13.5px * var(--fs));font-weight:500;color:var(--accent-dark)}
.dash-qtitle{font-size:calc(12.5px * var(--fs));color:var(--txt2);font-weight:500;line-height:1.35;margin-top:3px}
/* BADGES */
.badge{display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:6px;font-size:calc(12px * var(--fs));font-weight:600;letter-spacing:.2px}
.badge::before{content:'';width:5px;height:5px;border-radius:50%;background:currentColor}
.badge-plain::before{display:none}
.b-accent{background:rgba(var(--accent-rgb),.13);color:var(--accent-dark)}.b-green{background:var(--okSub);color:var(--ok)}.b-amber{background:var(--warnSub);color:var(--warn)}.b-red{background:var(--errSub);color:var(--err)}.b-grey{background:rgba(255,255,255,.06);color:var(--txt2)}
/* FORMS */
.fg{display:flex;flex-direction:column;gap:6px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.fgrid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.cur-row{display:flex;gap:8px;align-items:center;margin-bottom:8px}
.cur-row .cur-bullet{width:6px;height:6px;border-radius:50%;background:var(--accent);flex-shrink:0;margin:0 4px}
.ffull{grid-column:1/-1}
label{font-size:calc(12px * var(--fs));font-weight:600;color:var(--txt2);text-transform:uppercase;letter-spacing:.5px}
input,select,textarea{background:var(--inp);border:1.5px solid var(--inpBorder);border-radius:9px;padding:9px 12px;font-family:var(--font-body);font-size:calc(15px * var(--fs));color:var(--txt);transition:border-color .15s,box-shadow .15s;width:100%}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent-dark);box-shadow:0 0 0 3px rgba(var(--accent-rgb),.22)}
input[type=number]{-moz-appearance:textfield}input[type=number]::-webkit-outer-spin-button,input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none}
select option{background:var(--surface)}
textarea{resize:vertical;min-height:80px;line-height:1.6}
input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-dark);cursor:pointer}
/* Currency/unit prefix is a REAL flex prefix (not an absolute overlay) so the
   symbol never overlaps the value — works for any symbol length (£, C$, CHF, AED…). */
.inp-pre{position:relative;display:inline-flex;align-items:center;min-width:0}
.inp-pre span{position:static;transform:none;flex:0 0 auto;padding:0 1px 0 9px;color:var(--muted);font-size:calc(14px * var(--fs));pointer-events:none;font-family:var(--font-body);white-space:nowrap}
.inp-pre input{padding-left:4px;flex:1 1 auto;min-width:0}
.divider{height:1px;background:var(--border);margin:18px 0}
.sec{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:1.2px;margin-bottom:16px;display:flex;align-items:center;gap:10px}
.sec::after{content:'';flex:1;height:1px;background:var(--border)}
.hint{font-size:calc(12.5px * var(--fs));color:var(--muted);line-height:1.5}
/* PRICING TABLES */
.ptbl{width:100%;border-collapse:collapse;font-size:calc(14.5px * var(--fs))}
.ptbl th{text-align:left;padding:8px 9px;font-size:calc(11px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;border-bottom:1px solid var(--border);background:var(--surface2)}
.ptbl td{padding:6px 8px;border-bottom:1px solid var(--borderS);vertical-align:middle}
.ptbl tr:last-child td{border-bottom:none}
.ptbl input,.ptbl select{background:rgba(255,255,255,.035);border:1px solid var(--inpBorder);padding:5px 8px;font-size:calc(14px * var(--fs));border-radius:6px;width:100%}
[data-theme="light"] .ptbl input,[data-theme="light"] .ptbl select{background:rgba(0,0,0,.035)}
.ptbl input:focus,.ptbl select:focus{border-color:var(--accent-dark);background:var(--inp);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.16)}
.ptbl tr:hover input,.ptbl tr:hover select{border-color:rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.05)}
.ptbl .inp-pre input{padding-left:4px}
.row-tot{font-family:var(--font-body);font-weight:500;text-align:right;color:var(--txt);min-width:90px;font-variant-numeric:tabular-nums;white-space:nowrap;font-size:calc(14px * var(--fs))}
.subtot-row{display:flex;justify-content:flex-end;align-items:center;padding:9px 9px 2px;border-top:1px solid var(--border);font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.subtot-row span{margin-left:10px;color:var(--accent-dark);font-family:var(--font-body);font-variant-numeric:tabular-nums;font-size:calc(14px * var(--fs));letter-spacing:-.02em}
/* ACCORDION */
.acc-item{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:14px;box-shadow:var(--sh),var(--cardGlow);overflow:hidden;transition:border-color .2s}
.acc-item.open{border-color:rgba(var(--accent-rgb),.28)}
.acc-head{display:flex;align-items:center;gap:13px;padding:16px 20px;cursor:pointer;user-select:none}
.acc-head:hover{background:var(--surface2)}
.acc-chev{transition:transform .3s cubic-bezier(.4,0,.2,1);color:var(--muted);flex-shrink:0}
.acc-item.open .acc-chev{transform:rotate(90deg);color:var(--accent-dark)}
.acc-title{font-size:calc(16px * var(--fs));font-weight:600;color:var(--txt);letter-spacing:-.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.acc-sub{font-size:calc(12.5px * var(--fs));color:var(--muted);margin-top:1px}
.acc-price{display:flex;flex-direction:column;align-items:flex-end;gap:1px;margin-right:4px}
.acc-price .cp-sell{font-family:var(--font-body);font-variant-numeric:tabular-nums;font-size:calc(15.5px * var(--fs));font-weight:600;color:var(--txt)}
.acc-price .cp-margin{font-size:calc(12px * var(--fs));font-weight:600}
.acc-del{opacity:.55}.acc-del:hover{opacity:1}
.acc-panel{max-height:0;overflow:hidden;transition:max-height .42s cubic-bezier(.4,0,.2,1)}
.acc-panel-inner{padding:2px 20px 22px}
.cost-blk{margin-bottom:16px}
.cost-hd{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.cost-title{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:1px}
.custom-sec{border:1px dashed var(--border);border-radius:12px;padding:13px 14px 6px;margin-bottom:16px;background:rgba(var(--accent-rgb),.025)}
.cs-title{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:1px;background:transparent;border:1px solid transparent;border-radius:6px;padding:4px 7px;max-width:60%;width:auto}
.cs-title:hover{border-color:var(--inpBorder)}
.cs-title:focus{border-color:var(--accent-dark);background:var(--inp);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.16);outline:none}
.add-section-row{margin:2px 0 18px}
.add-section-sel{font-size:calc(13px * var(--fs));font-weight:600;color:var(--accent-dark);background:rgba(var(--accent-rgb),.07);border:1px dashed rgba(var(--accent-rgb),.45);border-radius:9px;padding:9px 13px;cursor:pointer;width:auto}
.add-section-sel:hover{background:rgba(var(--accent-rgb),.12)}
.comm-row{display:flex;align-items:center;gap:10px;padding:10px 12px;margin-bottom:16px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.comm-lbl{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
.cprice{display:grid;grid-template-columns:1fr 1fr 1.3fr;gap:12px;margin-top:14px;padding-top:16px;border-top:1px solid var(--border)}
.cf-foot{display:flex;align-items:center;gap:9px;margin-top:14px;font-size:calc(13.5px * var(--fs));color:var(--muted)}
.cf-foot b{color:var(--txt);font-family:var(--font-body);font-variant-numeric:tabular-nums;font-weight:500}
.cf-foot s{color:var(--muted2);text-decoration:none}
.qf-toolbar{display:flex;align-items:center;justify-content:space-between;margin:18px 0 14px}
/* SUMMARY / RING */
.sum-panel{background:linear-gradient(180deg,var(--surface),color-mix(in srgb,var(--surface) 92%,var(--bg)));border:1px solid var(--border);border-radius:16px;padding:0;position:sticky;top:16px;max-height:calc(100vh - 96px);display:flex;flex-direction:column;box-shadow:var(--shM),var(--cardGlow);overflow:hidden}
.sum-scroll{flex:1;overflow-y:auto;min-height:0;padding:22px 22px 6px}
.sum-foot{flex-shrink:0;padding:14px 22px 18px;border-top:1px solid var(--border);background:color-mix(in srgb,var(--surface) 95%,var(--bg))}
/* pricing waterfall */
.wf{margin:2px 0 12px;font-size:calc(13.5px * var(--fs))}
.wf-row{display:flex;align-items:center;gap:8px;padding:6px 2px;border-bottom:1px dashed var(--borderS)}
.wf-row:last-child{border-bottom:none}
.wf-l{flex:1;color:var(--txt2);display:flex;align-items:center;min-width:0}
.wf-v{font-variant-numeric:tabular-nums;font-weight:600;color:var(--txt);white-space:nowrap}
.wf-in{display:inline-flex;align-items:center;gap:2px;flex-shrink:0}
.wf-in input{width:48px;text-align:right;padding:3px 6px;font-size:calc(13px * var(--fs));border:1px solid var(--inpBorder);border-radius:7px;background:var(--inp);color:var(--txt);font-variant-numeric:tabular-nums}
.wf-pc{color:var(--muted);font-size:calc(12.5px * var(--fs))}
.wf-mix{color:var(--accent-dark);font-size:calc(11.5px * var(--fs));font-weight:600;margin-left:5px}
.wf-ctrl .wf-l{color:var(--txt)}
.wf-row.wf-sub{border-top:1px solid var(--borderS);border-bottom:1px solid var(--borderS)}
.wf-row.wf-sub .wf-l,.wf-row.wf-sub .wf-v{font-weight:700;color:var(--txt)}
.wf-l select{appearance:none;background:transparent;border:none;color:var(--txt);font:inherit;font-weight:500;cursor:pointer;padding:0 2px}
.wf-seclbl{font-size:calc(11px * var(--fs));font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:12px 0 8px}
.cs-tag{font-size:calc(10.5px * var(--fs));font-weight:600;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:1px 7px;margin-left:7px;text-transform:none;letter-spacing:0;vertical-align:middle}
.cs-tag.cs-over{color:var(--accent-dark);background:rgba(var(--accent-rgb),.13);border-color:rgba(var(--accent-rgb),.32)}
/* per-section margin pill + popover */
.sec-mpill{font-size:calc(12px * var(--fs));font-weight:600;padding:3px 11px;border-radius:20px;border:1.5px solid var(--inpBorder);background:transparent;color:var(--muted);cursor:pointer;white-space:nowrap;font-family:var(--font-body);flex-shrink:0;margin-right:2px}
.sec-mpill:hover{border-color:rgba(var(--accent-rgb),.55);color:var(--txt2)}
.sec-mpill.on{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.5);color:var(--accent-dark)}
.mpop{position:absolute;z-index:200;width:236px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.28);padding:13px}
.mpop-row{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.mpop-row input{flex:1;padding:7px 10px;border:1px solid var(--inpBorder);border-radius:8px;background:var(--inp);color:var(--txt);font-size:calc(15px * var(--fs));text-align:right;font-variant-numeric:tabular-nums}
.mpop-hint{font-size:calc(12px * var(--fs));color:var(--muted);line-height:1.45;margin-bottom:11px}
.mpop-acts{display:flex;gap:8px}
.wf-warn{display:flex;align-items:center;gap:7px;font-size:calc(12.5px * var(--fs));color:var(--err);background:rgba(248,113,113,.10);border:1px solid rgba(248,113,113,.32);border-radius:9px;padding:7px 10px;line-height:1.35}
/* mobile mini total-bar (keeps the package price pinned where the panel goes static) */
#qf-minibar{display:none}
@media(max-width:1024px){
  #qf-minibar.show{display:flex;align-items:center;justify-content:space-between;gap:12px;position:fixed;left:0;right:0;bottom:0;z-index:90;background:var(--surface);border-top:1px solid var(--border);box-shadow:0 -6px 20px rgba(0,0,0,.18);padding:11px 16px calc(11px + env(safe-area-inset-bottom,0px))}
  #qf-minibar .mb-l{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.5px}
  #qf-minibar .mb-r{display:flex;align-items:baseline;gap:9px}
  #qf-minibar .mb-v{font-family:var(--font-display);font-size:calc(22px * var(--fs));font-weight:700;color:var(--accent-dark)}
  #qf-minibar .mb-m{font-size:calc(13px * var(--fs));font-weight:600;color:var(--muted)}
}
.sum-panel::before{content:'';position:absolute;top:-60px;right:-60px;width:180px;height:180px;background:radial-gradient(circle,rgba(var(--accent-rgb),.12),transparent 70%);pointer-events:none}
.sum-title{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px}
.sum-hero{text-align:center;margin:6px 0}
.sum-hero-lbl{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:1px}
.sum-hero-val{font-family:var(--font-display);font-size:calc(41px * var(--fs));font-weight:700;color:var(--accent-dark);line-height:1.05;letter-spacing:-.03em}
.ring-wrap{display:flex;align-items:center;justify-content:center;gap:18px;margin:8px 0 14px;padding:14px 0;border-top:1px solid var(--borderS);border-bottom:1px solid var(--borderS)}
.ring{position:relative;width:96px;height:96px;flex-shrink:0}.ring svg{transform:rotate(-90deg)}
.ring-track{fill:none;stroke:var(--track);stroke-width:9}
.ring-fill{fill:none;stroke:var(--accent);stroke-width:9;stroke-linecap:round;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1),stroke .3s;filter:drop-shadow(0 0 6px rgba(var(--accent-rgb),.5))}
.ring-ctr{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.ring-pct{font-family:var(--font-display);font-size:calc(27px * var(--fs));font-weight:700;color:var(--txt);line-height:1}
.ring-cap{font-size:calc(10.5px * var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-top:1px}
.ring-side{flex:1}.ring-side .rs-row{display:flex;justify-content:space-between;font-size:calc(13.5px * var(--fs));padding:3px 0}.ring-side .l{color:var(--muted)}.ring-side .v{color:var(--txt);font-family:var(--font-body);font-variant-numeric:tabular-nums}
.cs-card{background:var(--inp);border:1px solid var(--border);border-radius:11px;padding:12px 14px;margin-bottom:10px}
.cs-name{font-size:calc(13.5px * var(--fs));font-weight:600;color:var(--txt);margin-bottom:9px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cs-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.cs-grid>div{display:flex;flex-direction:column;gap:2px}
.cs-grid span{font-size:calc(10px * var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.4px}
.cs-grid b{font-size:calc(14px * var(--fs));color:var(--txt);font-family:var(--font-body);font-variant-numeric:tabular-nums;font-weight:500}
.cs-row{display:flex;align-items:baseline;justify-content:space-between;gap:8px;flex-wrap:wrap}
.cs-price{font-size:calc(15px * var(--fs));font-weight:700;color:var(--txt);font-variant-numeric:tabular-nums}
.cs-mnote{font-size:calc(11.5px * var(--fs));color:var(--muted);font-variant-numeric:tabular-nums}
.pb-brief-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 16px;margin-bottom:14px;box-shadow:var(--sh)}
.pb-brief-lbl{display:block;font-size:calc(13px * var(--fs));font-weight:600;color:var(--txt2);margin-bottom:8px}
.pb-brief-card textarea{width:100%;resize:vertical}
.hi-box{background:rgba(var(--accent-rgb),.07);border:1px solid rgba(var(--accent-rgb),.22);border-radius:12px;padding:16px;margin-top:14px}
/* LAYOUT */
.two-col{display:grid;grid-template-columns:1fr 326px;gap:20px;align-items:start}
#qf-sumcol{align-self:stretch}
.hi-box .inp-pre input{padding-left:4px}
.qf-start-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:2px 0 6px}
@media(max-width:680px){.qf-start-grid{grid-template-columns:1fr}}
.qf-start{display:flex;flex-direction:column;align-items:flex-start;gap:7px;text-align:left;padding:18px;border-radius:14px;border:1.5px solid var(--inpBorder);background:var(--surface);cursor:pointer;transition:border-color .15s,transform .12s,box-shadow .2s;font-family:inherit;color:var(--txt)}
.qf-start:hover{border-color:rgba(var(--accent-rgb),.6);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,.12)}
.qf-start-ic{width:42px;height:42px;border-radius:11px;display:flex;align-items:center;justify-content:center;background:rgba(var(--accent-rgb),.12);color:var(--accent-dark);margin-bottom:2px}
.qf-start-ic svg{width:22px;height:22px}
.qf-start-t{font-size:calc(16px * var(--fs));font-weight:700;letter-spacing:-.01em}
.qf-start-s{font-size:calc(13.5px * var(--fs));color:var(--muted);line-height:1.5}
.qf-start-go{margin-top:auto;padding-top:6px;font-size:calc(13.5px * var(--fs));font-weight:600;color:var(--accent-dark);display:inline-flex;align-items:center;gap:5px}
.page-hd{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:22px}
.page-title{font-family:var(--font-display);font-size:calc(33px * var(--fs));font-weight:700;color:var(--txt);letter-spacing:-.025em;line-height:1.05}
.page-sub{font-size:calc(14.5px * var(--fs));color:var(--muted);margin-top:4px}
.back{display:inline-flex;align-items:center;gap:6px;font-size:calc(14.5px * var(--fs));color:var(--muted);cursor:pointer;margin-bottom:16px;transition:color .15s;font-weight:500}
.back:hover{color:var(--txt)}.back svg{width:15px;height:15px}
.view{display:none}.view.active{display:block}
.mb4{margin-bottom:16px}.flex{display:flex}.items-c{align-items:center}.j-between{justify-content:space-between}.gap2{gap:8px}
.empty{text-align:center;padding:48px 20px;color:var(--muted);font-size:calc(15px * var(--fs))}
.ver-badge{font-family:var(--font-body);font-size:calc(12px * var(--fs));font-weight:600;padding:2px 8px;border-radius:6px;background:rgba(var(--accent-rgb),.16);color:var(--accent-dark);display:inline-block}
.ver-badge.locked{background:rgba(255,255,255,.06);color:var(--txt2)}
[data-theme="light"] .ver-badge.locked{background:rgba(0,0,0,.06)}
.tree-pre{color:var(--muted2);font-family:'Geist Mono',monospace;white-space:pre}
.lock-ic{opacity:.5;vertical-align:-2px;margin-left:5px}
.qchg-lbl{display:block;font-size:calc(11px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.qchg{display:inline-block;font-size:calc(11.5px * var(--fs));font-weight:600;line-height:1.4;padding:1px 7px;border-radius:20px;margin:0 4px 4px 0;border:1px solid var(--border);white-space:nowrap;max-width:170px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle}
.qchg-add{color:var(--ok);background:rgba(52,211,153,.12);border-color:rgba(52,211,153,.32)}
[data-theme="light"] .qchg-add{background:rgba(5,150,105,.10)}
.qchg-del{color:var(--err);background:rgba(248,113,113,.10);border-color:rgba(248,113,113,.32)}
.qchg-edit{color:var(--accent-dark);background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.30)}
.qchg-val{color:var(--txt2);background:var(--surface2);border-color:var(--border)}
.qchg-more{color:var(--muted);border:none;background:none;padding:1px 2px}
.dash-chgs{margin-top:5px;line-height:1.6}
.ver-row{display:flex;align-items:center;gap:8px 8px;flex-wrap:wrap}
.q-head{flex-basis:100%;font-size:calc(12.5px * var(--fs));color:var(--muted);font-weight:600;line-height:1.3;margin-top:1px;max-width:280px}
.q-head::before{content:"Proposal — ";color:var(--txt2);font-weight:500}
.qf-banner{display:none;align-items:center;gap:10px;background:var(--warnSub);border:1px solid rgba(251,191,36,.32);color:var(--warn);border-radius:11px;padding:12px 16px;margin-bottom:18px;font-size:calc(14.5px * var(--fs));font-weight:500}
.qf-banner svg{width:16px;height:16px;flex-shrink:0}
.pb-stale{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:var(--warnSub);border:1.5px solid var(--warn);color:var(--warn);border-radius:12px;padding:13px 16px;margin-bottom:18px;font-size:calc(14.5px * var(--fs));animation:staleIn .3s ease}
.pb-stale-txt{display:flex;align-items:center;gap:11px;min-width:0;line-height:1.45}
.pb-stale-txt svg{width:20px;height:20px;flex-shrink:0}
.pb-stale .btn-primary{flex-shrink:0;animation:stalePulse 2s ease-in-out infinite}
@keyframes staleIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
@keyframes stalePulse{0%,100%{box-shadow:0 0 0 0 rgba(var(--accent-rgb),.5)}50%{box-shadow:0 0 0 7px rgba(var(--accent-rgb),0)}}
@media(prefers-reduced-motion:reduce){.pb-stale,.pb-stale .btn-primary{animation:none}}
.row-current>td{background:rgba(var(--accent-rgb),.04)}
.toast{position:fixed;bottom:22px;right:22px;background:var(--surface2);border:1px solid rgba(var(--accent-rgb),.35);border-radius:11px;padding:12px 17px;font-size:calc(15px * var(--fs));font-weight:500;box-shadow:var(--shL);z-index:999;opacity:0;transform:translateY(8px);transition:all .22s;pointer-events:none;color:var(--txt);display:flex;align-items:center;gap:10px}
.toast::before{content:'';width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 10px var(--accent);flex:none}
.toast.toast-err{border-color:rgba(224,72,72,.6);pointer-events:auto}
.toast.toast-err::before{background:var(--err);box-shadow:0 0 10px var(--err)}
.toast-act{margin-left:2px;font:inherit;font-weight:700;font-size:calc(13px * var(--fs));color:var(--accent);background:rgba(var(--accent-rgb),.16);border:1px solid rgba(var(--accent-rgb),.45);border-radius:7px;padding:4px 11px;cursor:pointer;flex:none}
.toast-act:hover{background:rgba(var(--accent-rgb),.28)}
.cf-warn{margin-top:8px;font-size:calc(12.5px * var(--fs));color:var(--txt2);background:rgba(251,165,25,.12);border:1px solid rgba(251,165,25,.35);border-radius:8px;padding:7px 10px;line-height:1.45}
.toast.show{opacity:1;transform:translateY(0)}
/* SETTINGS */
.accent-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;max-width:760px}
.accent-card{border:1px solid var(--border);border-radius:14px;padding:18px;cursor:pointer;transition:border-color .2s,transform .15s,background .2s;background:var(--inp);position:relative}
.accent-card:hover{transform:translateY(-2px);background:var(--surfaceH)}
.accent-card.sel{border-color:var(--ac);box-shadow:0 0 0 3px color-mix(in srgb,var(--ac) 22%,transparent)}
.accent-swatch{width:100%;height:48px;border-radius:10px;margin-bottom:12px;position:relative;overflow:hidden}
.accent-swatch::after{content:'';position:absolute;inset:0;background:linear-gradient(120deg,transparent,rgba(255,255,255,.25))}
.accent-name{font-size:calc(14.5px * var(--fs));font-weight:600;color:var(--txt)}.accent-desc{font-size:calc(12.5px * var(--fs));color:var(--muted);margin-top:2px}
.accent-card.sel .accent-check{opacity:1;transform:scale(1)}
.accent-check{position:absolute;top:10px;right:10px;width:23px;height:23px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;opacity:0;transform:scale(.6);transition:.2s;box-shadow:0 1px 4px rgba(0,0,0,.35),0 0 0 1.5px rgba(0,0,0,.06);z-index:2}
.accent-check svg{width:13px;height:13px;color:#15171c}
/* logo */
.logo-up{display:flex;align-items:center;gap:16px}
.logo-help{font-size:calc(12px * var(--fs));color:var(--muted);margin-bottom:11px;max-width:560px;line-height:1.5}
.logo-up2{display:flex;gap:18px;flex-wrap:wrap}
.logo-up-card{display:flex;flex-direction:column;gap:9px}
.logo-up-cap{font-size:calc(11px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}
.logo-prev{width:72px;height:72px;border-radius:14px;border:1px dashed var(--inpBorder);background:var(--inp);display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0;color:var(--muted)}
.logo-up2 .logo-prev{width:172px;height:92px;border-style:solid}
.logo-prev-dark{background:#10141b;border-color:#2a3442;color:#5b6b80}
.logo-prev-light{background:#ffffff;border-color:#d8dee8;color:#9aa6b6}
.logo-prev img{width:100%;height:100%;object-fit:contain;padding:8px}
/* Organisation Profile — AI website fill + per-cell accept/reject */
.org-ai-bar{margin-bottom:18px}
.org-ai-form{display:flex;gap:10px;align-items:center;margin-top:12px;flex-wrap:wrap}
.org-ai-form input{flex:1;min-width:200px}
.org-ai-note{margin-top:12px;font-size:calc(13px * var(--fs));color:var(--txt2);line-height:1.55;background:rgba(var(--accent-rgb),.06);border:1px solid rgba(var(--accent-rgb),.22);border-radius:10px;padding:10px 12px}
.org-ai-note a{color:var(--accent-dark);font-weight:600}
.org-ai-caut{margin-top:8px;font-size:calc(12px * var(--fs));color:#C9821B}
.org-sug{margin-top:8px;border:1px solid rgba(var(--accent-rgb),.35);background:rgba(var(--accent-rgb),.06);border-radius:10px;padding:10px 12px;display:flex;flex-direction:column;gap:8px;animation:fadeIn .2s ease}
.org-sug-badge{font-size:calc(10.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--accent-dark)}
.org-sug-val{font-size:calc(13.5px * var(--fs));color:var(--txt);line-height:1.5;white-space:pre-wrap}
.org-sug-act{display:flex;gap:8px}
.fg.was-ai>label::after{content:'AI';font-size:calc(9px * var(--fs));font-weight:700;letter-spacing:.04em;color:var(--accent-dark);background:rgba(var(--accent-rgb),.14);border-radius:5px;padding:1px 5px;margin-left:7px;vertical-align:1px}
/* settings sub-section headers (merged Company & Organisation tab) */
.set-subsec{font-size:calc(12px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--accent-dark);margin:24px 0 13px;padding-top:17px;border-top:1px solid var(--border)}
.set-subsec:first-of-type{border-top:none;padding-top:4px;margin-top:8px}
.set-subsec-note{font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);margin-left:8px;font-size:calc(11.5px * var(--fs))}
/* Company & Organisation single-open accordion (collapses the long settings page) */
.set-acc{margin-top:6px}
.set-acc .acc-item{margin-bottom:10px}
.set-acc .acc-item:last-child{margin-bottom:0}
.set-acc .acc-head{padding:14px 18px}
.set-acc .acc-title{text-transform:none;letter-spacing:-.01em}
.set-acc .acc-panel-inner{padding:2px 18px 20px}
.co-save-bar{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:18px;padding-top:16px;border-top:1px solid var(--border)}
.co-save-bar .hint{margin:0}
.cust-logo{width:32px;height:32px;border-radius:9px;background:rgba(var(--accent-rgb),.13);color:var(--accent-dark);display:inline-flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs));font-weight:600;overflow:hidden;flex-shrink:0}
.cust-logo img{width:100%;height:100%;object-fit:contain;padding:3px}
/* PROPOSAL BUILDER */
.prop-tools{display:flex;align-items:center;gap:10px;margin-bottom:22px;flex-wrap:wrap}
.prop-grid{display:flex;flex-direction:column;gap:18px;max-width:920px}
.rep-item{border:1px solid var(--border);border-radius:12px;padding:16px;margin-bottom:14px;background:var(--inp)}
.rep-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}
.rep-num{font-size:calc(12px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:1px}
.pc-item{padding:0;background:var(--surface);overflow:hidden}
.pc-head{display:flex;align-items:center;gap:11px;padding:13px 15px;cursor:pointer;user-select:none}
.pc-head:hover{background:var(--surface2)}
.pc-chev{transition:transform .3s cubic-bezier(.4,0,.2,1);color:var(--muted);flex-shrink:0}
.pc-item.open .pc-chev{transform:rotate(90deg);color:var(--accent-dark)}
.pc-title-lbl{font-weight:600;font-size:calc(14.5px * var(--fs));flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pc-actions{display:flex;gap:4px;flex-shrink:0}
.pc-panel{max-height:0;overflow:hidden;transition:max-height .42s cubic-bezier(.4,0,.2,1)}
.pc-panel-in{padding:4px 15px 16px}
#pb-courses .pc-item:only-child .pc-move{display:none}
.price-row{display:grid;grid-template-columns:2fr 1fr 1.3fr 1fr 32px;gap:8px;align-items:center;margin-bottom:8px}
.price-row input{padding:7px 10px}
.ord-list{list-style:none;display:flex;flex-direction:column;gap:8px;margin:10px 0}
.ord-item{display:flex;align-items:center;gap:11px;padding:11px 14px;background:var(--inp);border:1px solid var(--border);border-radius:10px;cursor:grab;font-size:calc(14.5px * var(--fs));color:var(--txt);transition:border-color .15s}
.ord-item:hover{border-color:var(--inpBorder)}
.ord-item.dragging{opacity:.45;border-color:var(--accent-dark);border-style:dashed}
.ord-item .ord-handle{color:var(--muted);flex-shrink:0}
.ord-pinned{padding:9px 14px;font-size:calc(13px * var(--fs));color:var(--muted);background:var(--surface2);border:1px dashed var(--border);border-radius:10px;text-align:center;display:flex;align-items:center;justify-content:center;gap:7px}
.ord-pinned svg{width:13px;height:13px;opacity:.6}
/* PROPOSAL DOCUMENT */
.proposal-doc{width:960px;max-width:100%;background:#fff;color:#1b2230;border-radius:22px;overflow:hidden;box-shadow:var(--shL);font-family:var(--font-body)}
.pd-cover{background:linear-gradient(150deg,#0d1320 0%,#10161f 55%,rgba(var(--accent-rgb),.25) 140%);color:#fff;padding:64px 64px 56px;position:relative;overflow:hidden;display:flex;flex-direction:column}
.pd-cover::after{content:'';position:absolute;right:-80px;top:-80px;width:300px;height:300px;border-radius:50%;background:radial-gradient(circle,rgba(var(--accent-rgb),.30),transparent 70%)}
.pd-brand{display:flex;align-items:center;gap:12px;margin-bottom:46px;position:relative;z-index:1}
.pd-cust-hero{width:min(360px,78%);background:#fff;border-radius:16px;padding:24px 28px;margin:30px 0 34px;position:relative;z-index:1;box-shadow:0 12px 38px rgba(0,0,0,.30)}
.pd-cust-hero .ph-lbl{font-size:calc(10.5px * var(--fs));font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:#97a0b2;margin-bottom:13px}
.pd-cust-hero img{width:100%;height:auto;max-height:104px;object-fit:contain;object-position:left center;display:block}
.pd-logo{width:46px;height:46px;border-radius:11px;background:linear-gradient(140deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;font-weight:700;color:var(--accent-ink);font-size:calc(16px * var(--fs));overflow:hidden}
.pd-logo img{width:100%;height:100%;object-fit:contain;padding:5px}
.pd-brand-logo img{height:58px;max-height:58px;max-width:280px;width:auto;object-fit:contain;display:block}
.pd-brand-name{font-size:calc(17px * var(--fs));font-weight:600;letter-spacing:-.02em}
.pd-brand-sub{font-size:calc(12.5px * var(--fs));color:rgba(255,255,255,.6)}
.pd-eyebrow{font-size:calc(13px * var(--fs));font-weight:600;letter-spacing:3px;text-transform:uppercase;color:var(--accent-dark);position:relative;z-index:1;margin-top:auto}
.pd-title{font-family:var(--font-display);font-size:calc(49px * var(--fs));line-height:1.08;margin:14px 0 16px;position:relative;z-index:1;max-width:92%}
.pf-logos{display:flex;gap:12px;flex-wrap:wrap;margin:10px 0}
.pf-logo-card{border:2px solid var(--border);border-radius:12px;padding:11px;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:8px;background:var(--surface2);transition:border-color .15s}
.pf-logo-card:hover{border-color:rgba(var(--accent-rgb),.5)}
.pf-logo-card.on{border-color:var(--accent)}
.pf-logo-prev{width:140px;height:52px;display:flex;align-items:center;justify-content:center;border-radius:8px;overflow:hidden}
.pf-logo-prev.light{background:#fff}
.pf-logo-prev.dark{background:#10161f}
.pf-logo-prev img{max-width:92%;max-height:84%;object-fit:contain}
.pf-logo-lbl{font-size:calc(12px * var(--fs));color:var(--txt2);font-weight:600}
.pf-sig{display:flex;align-items:center;gap:18px;flex-wrap:wrap;margin:10px 0}
.pf-sig-prev{min-width:180px;height:70px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--border);border-radius:10px;padding:8px}
.pf-sig-prev img{max-width:220px;max-height:54px;object-fit:contain}
.pd-signoff{margin-top:22px}
.pd-signoff .pd-sig-img{display:block;max-width:230px;max-height:80px;object-fit:contain;margin:6px 0 2px}
.pd-signoff .pd-sig-name{font-weight:700;font-size:calc(15px * var(--fs))}
.pd-signoff .pd-sig-title{font-size:calc(13px * var(--fs));color:#6b7589}
.pd-refver{font-family:var(--font-body);font-size:calc(22px * var(--fs));font-weight:600;letter-spacing:.5px;color:var(--accent);margin:0 0 22px;position:relative;z-index:1}
.pd-meta{display:flex;gap:40px;position:relative;z-index:1;border-top:1px solid rgba(255,255,255,.14);padding-top:22px}
.pd-meta .m-lbl{font-size:calc(11.5px * var(--fs));text-transform:uppercase;letter-spacing:1px;color:rgba(255,255,255,.5);margin-bottom:5px}
.pd-meta .m-val{font-size:calc(16px * var(--fs));font-weight:500;display:flex;align-items:center;gap:10px}
.pd-cust-logo{width:34px;height:34px;border-radius:8px;background:#fff;padding:3px;object-fit:contain}
.pd-body{padding:52px 64px}
.pd-sec{margin-bottom:36px}
.pd-sec-eye{font-size:calc(12px * var(--fs));font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent2);margin-bottom:8px}
.pd-h{font-family:var(--font-display);font-size:calc(28px * var(--fs));color:#10161f;margin-bottom:14px;line-height:1.15}
.pd-h2{font-size:calc(16px * var(--fs));font-weight:700;color:#10161f;margin:18px 0 8px;text-transform:uppercase;letter-spacing:.5px}
.pd-p{font-size:calc(15px * var(--fs));line-height:1.7;color:#39414f;margin-bottom:12px}
.pd-ul{margin:6px 0 12px;padding-left:0;list-style:none}
.pd-ul li{font-size:calc(14.5px * var(--fs));line-height:1.6;color:#39414f;padding-left:22px;position:relative;margin-bottom:5px}
.pd-ul li::before{content:'';position:absolute;left:4px;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent2)}
.pd-table{width:100%;border-collapse:collapse;margin:14px 0;font-size:calc(14.5px * var(--fs))}
.pd-table th{background:#10161f;color:#fff;text-align:left;padding:11px 14px;font-size:calc(12px * var(--fs));text-transform:uppercase;letter-spacing:.6px;font-weight:600}
.pd-table th:last-child,.pd-table td:last-child{text-align:right}
.pd-table td{padding:11px 14px;border-bottom:1px solid #e6e9ef;color:#39414f}
.pd-table tr:last-child td{border-bottom:none}
.pd-table .pd-total td{font-weight:700;color:#10161f;background:rgba(var(--accent-rgb),.10)}
.pd-course{border:1px solid #e6e9ef;border-radius:14px;padding:26px 28px;margin-bottom:18px;background:#fff}
.pd-course-top{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:13px}
.pd-fw-chip{font-size:calc(11px * var(--fs));font-weight:700;letter-spacing:.6px;text-transform:uppercase;padding:5px 12px;border-radius:999px;background:#eef1f5;background:color-mix(in srgb,var(--fwc,#64748b) 13%,#fff);color:var(--fwc,#64748b);color:color-mix(in srgb,var(--fwc,#64748b) 70%,#000);border:1px solid #d7dde6;border:1px solid color-mix(in srgb,var(--fwc,#64748b) 28%,transparent)}
.pd-course-no{font-family:var(--font-display);font-size:calc(34px * var(--fs));line-height:1;color:#9aa3b4;color:color-mix(in srgb,var(--fwc,#64748b) 46%,#c2cad6);font-weight:600;font-variant-numeric:tabular-nums}
.pd-course-title{font-family:var(--font-display);font-size:calc(24px * var(--fs));color:#10161f;line-height:1.16;margin-bottom:15px;letter-spacing:-.01em}
.pd-course-spec{display:flex;flex-wrap:wrap;margin:0 0 17px;border:1px solid #eceff4;border-radius:11px;overflow:hidden}
.pd-course-spec .sp{flex:1;min-width:118px;padding:11px 16px;border-right:1px solid #eceff4}
.pd-course-spec .sp:last-child{border-right:none}
.pd-course-spec .sp .l{font-size:calc(10.5px * var(--fs));font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#9aa3b4;margin-bottom:4px}
.pd-course-spec .sp .v{font-size:calc(14.5px * var(--fs));font-weight:600;color:#10161f;font-variant-numeric:tabular-nums}
.pd-acc{border:1px solid #e6e9ef;border-radius:8px;padding:16px 18px;margin-bottom:12px}
.pd-acc-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:6px}
.pd-acc-name{font-weight:700;color:#10161f;font-size:calc(15px * var(--fs))}.pd-acc-price{font-weight:700;color:var(--accent2);font-size:calc(16px * var(--fs))}
.pd-sign{margin-top:18px}.pd-sign .s-name{font-weight:700;color:#10161f;font-size:calc(15px * var(--fs))}.pd-sign .s-meta{font-size:calc(14px * var(--fs));color:#6b7589;line-height:1.6}
.pd-contact{background:#10161f;color:#fff;padding:34px 64px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px}
.pd-contact .c-h{font-family:var(--font-display);font-size:calc(23px * var(--fs));margin-bottom:4px}
.pd-contact .c-sub{font-size:calc(14px * var(--fs));color:rgba(255,255,255,.6)}
.pd-contact .c-det{font-size:calc(14px * var(--fs));line-height:1.7;text-align:right}.pd-contact .c-det a{color:var(--accent-dark)}
.pd-contact-side{display:flex;flex-direction:column;align-items:flex-end;gap:14px}
.pd-contact-logo img{height:40px;max-width:220px;object-fit:contain;display:block}
/* Procurement response: formal compliance cover + "Submitted by" closing (Phase 7) */
.pd-fcover{background:#fff;color:#10161f;padding:64px;display:flex;flex-direction:column}
.pd-fcover::after{display:none}
.pd-fc-logo img{height:54px;max-width:280px;object-fit:contain;display:block}
.pd-fc-name{font-size:calc(20px * var(--fs));font-weight:700;color:#10161f}
.pd-fc-rule{height:3px;width:64px;background:var(--accent);border-radius:2px;margin:24px 0 auto}
.pd-fc-eye{font-size:calc(13px * var(--fs));font-weight:700;letter-spacing:3px;text-transform:uppercase;color:var(--accent-dark);margin-top:auto}
.pd-fc-title{font-family:var(--font-display);font-size:calc(44px * var(--fs));line-height:1.1;margin:12px 0 14px;color:#10161f}
.pd-fc-ref{font-size:calc(18px * var(--fs));font-weight:600;color:#475467;margin-bottom:26px}
.pd-fc-meta{display:flex;gap:40px;border-top:1px solid #e6e9ef;padding-top:20px}
.pd-fc-meta .l{font-size:calc(11px * var(--fs));text-transform:uppercase;letter-spacing:1px;color:#8a93a6;margin-bottom:4px}
.pd-fc-meta .v{font-size:calc(15px * var(--fs));font-weight:600;color:#10161f}
.pd-fc-conf{margin-top:18px;font-size:calc(11px * var(--fs));letter-spacing:1px;text-transform:uppercase;color:#8a93a6;font-weight:700}
.pd-submit{background:#f7f8fa;color:#10161f;padding:48px 64px;border-top:3px solid var(--accent)}
.pd-submit .pd-sub-h{font-family:var(--font-display);font-size:calc(24px * var(--fs));margin-bottom:14px}
.pd-submit .pd-sub-det{font-size:calc(15px * var(--fs));line-height:1.8;color:#39414f}
.pd-submit .pd-sub-det b{color:#10161f}
.pd-submit .pd-sub-det a{color:var(--accent-dark)}
@media print{.pd-contact-side{align-items:flex-start}}
@media print{
  @page{size:A4;margin:8mm}
  .sb,.topbar,.no-print,.toast{display:none!important}
  body{display:block!important;height:auto!important;overflow:visible!important;background:#fff!important;background-image:none!important;padding:0!important}
  #app-shell{display:block!important;max-width:none!important;width:100%!important;height:auto!important;overflow:visible!important;background:#fff!important;background-image:none!important;border-radius:0!important;visibility:visible!important}
  .main,.content{display:block;overflow:visible;padding:0!important;height:auto}
  .proposal-doc{width:100%;box-shadow:none;border:none;border-radius:0;overflow:visible}
  .pd-cover,.pd-table th,.pd-table .pd-total td,.pd-contact,.pd-ul li::before,.pd-fw-chip,.pd-cust-hero,.pd-course-no,.proposal-doc{-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .pd-cover,.pd-contact{box-sizing:border-box;border-radius:20px}
  .pd-body{padding:38px 30px}
  .pd-cover{break-after:page;min-height:250mm;padding:56px 48px}
  .pd-contact{break-before:page;min-height:250mm;flex-direction:column;align-items:flex-start;justify-content:center;gap:22px;padding:56px 48px}
  .pd-contact .c-h{font-size:calc(34px * var(--fs));margin-bottom:7px}
  .pd-contact .c-det{text-align:left;font-size:calc(15px * var(--fs))}
  .pd-acc,.pd-table tr{break-inside:avoid}
  .pd-sign{break-inside:avoid;break-before:avoid}
  .pd-h,.pd-h2,.pd-sec-eye,.pd-course-title{break-after:avoid}
  .pd-sec{margin-bottom:22px}
  /* each section starts on its own page (the first follows the cover's break-after) */
  .pd-body .pd-sec{break-before:page;page-break-before:always}
  .pd-body .pd-sec:first-child{break-before:auto;page-break-before:auto}
}
/* AUTH */
#auth-overlay{position:fixed;inset:0;background:var(--bg);background-image:var(--bg-grad);display:none;align-items:center;justify-content:center;z-index:2000;padding:20px}
.auth-card{width:380px;max-width:94vw;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:34px;box-shadow:var(--shL),var(--cardGlow)}
.auth-logo{width:50px;height:50px;border-radius:14px;background:linear-gradient(140deg,var(--accent),var(--accent2));display:flex;align-items:center;justify-content:center;color:var(--accent-ink);font-weight:700;font-size:calc(17px * var(--fs));margin-bottom:20px}
.auth-card h1{font-family:var(--font-display);font-size:calc(31px * var(--fs));font-weight:400;letter-spacing:-.3px;margin-bottom:3px}
.auth-card .auth-sub{color:var(--muted);font-size:calc(14.5px * var(--fs));margin-bottom:24px}
.auth-product{position:absolute;top:18px;right:20px;font-size:calc(11px * var(--fs));font-weight:700;letter-spacing:1.6px;text-transform:uppercase;color:var(--accent-dark);opacity:.8}
.auth-card{position:relative}
.auth-card .fg{margin-bottom:14px}
.auth-err{color:var(--err);font-size:calc(14px * var(--fs));min-height:18px;margin:2px 0 6px}
.auth-card .btn{width:100%;justify-content:center;margin-top:8px;padding:11px}
.user-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:8px;margin-bottom:8px;background:rgba(255,255,255,.04)}
.user-row .ur-av{width:30px;height:30px;border-radius:8px;background:rgba(var(--accent-rgb),.16);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-size:calc(13px * var(--fs));font-weight:600;flex-shrink:0}
.user-row .ur-name{font-size:calc(14px * var(--fs));font-weight:600;color:#C0D4EE;line-height:1.15;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.user-row .ur-role{font-size:calc(11.5px * var(--fs));color:var(--muted);text-transform:capitalize}
.user-row .ur-out{margin-left:auto;color:var(--muted);cursor:pointer;flex-shrink:0;display:flex}
.user-row .ur-out:hover{color:var(--err)}
/* user avatar — on-brand circle, photo or per-name initials, light/dark ring */
.avatar{width:34px;height:34px;border-radius:50%;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(13px * var(--fs));color:#fff;background-size:cover;background-position:center;background-repeat:no-repeat;background-color:var(--surfaceH);box-shadow:0 0 0 2px rgba(var(--accent-rgb),.65),0 2px 6px rgba(0,0,0,.18);vertical-align:middle;user-select:none}
.avatar.avatar-ini{background:hsl(var(--ah,210),55%,50%)}
:root[data-theme="light"] .avatar.avatar-ini{background:hsl(var(--ah,210),60%,44%)}
.avatar-lg{width:60px;height:60px;font-size:calc(22px * var(--fs));box-shadow:0 0 0 2.5px rgba(var(--accent-rgb),.65),0 3px 9px rgba(0,0,0,.2)}
.avatar-sm{width:28px;height:28px;font-size:calc(11.5px * var(--fs));box-shadow:0 0 0 1.6px rgba(var(--accent-rgb),.6),0 1px 4px rgba(0,0,0,.16)}
.avatar-xs{width:22px;height:22px;font-size:calc(9.5px * var(--fs));box-shadow:0 0 0 1.4px rgba(var(--accent-rgb),.55)}
.byline{display:inline-flex;align-items:center;gap:6px}
.myprof{display:flex;align-items:center;gap:18px}
.myprof-info{min-width:0}
.myprof-name{font-family:var(--font-display);font-size:calc(22px * var(--fs));color:var(--txt);letter-spacing:-.3px;line-height:1.1}
.myprof-sub{font-size:calc(13px * var(--fs));color:var(--muted);margin-top:3px}
.myprof-actions{display:flex;gap:8px;margin-top:12px;flex-wrap:wrap}
.kebab-wrap{position:relative;display:inline-block}
.kebab-menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shL);padding:5px;min-width:172px;z-index:200;display:none;flex-direction:column;gap:2px}
.kebab-menu.open{display:flex}
.kebab-menu button{display:flex;align-items:center;gap:9px;width:100%;text-align:left;background:none;border:none;color:var(--txt);font-family:var(--font-body);font-size:calc(14.5px * var(--fs));padding:9px 10px;border-radius:7px;cursor:pointer}
.kebab-menu button:hover{background:var(--surface2)}
.kebab-menu button svg{width:15px;height:15px;color:var(--muted);flex-shrink:0}
.tbl-wrap{overflow:visible}
.hamb{display:none;width:40px;height:40px;border-radius:9px;align-items:center;justify-content:center;background:transparent;border:1px solid var(--border);color:var(--txt);cursor:pointer;flex-shrink:0}
#nav-scrim{display:none}
@media(max-width:980px){
  .hamb{display:inline-flex}
  .sb{position:fixed;left:0;top:0;height:100vh;z-index:1500;transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);box-shadow:var(--shL)}
  body.nav-open .sb{transform:none}
  #nav-scrim{display:block;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1400;opacity:0;pointer-events:none;transition:opacity .3s}
  body.nav-open #nav-scrim{opacity:1;pointer-events:auto}
  .topbar-meta{display:none}
}
@media(max-width:1024px){.two-col{grid-template-columns:1fr}.sum-panel{position:static;max-height:none;display:block}.sum-scroll{overflow:visible;padding:22px 22px 0}}
@media(max-width:860px){
  table.rsp thead{display:none}
  table.rsp tbody tr{display:block;border:1px solid var(--border);border-radius:12px;margin-bottom:12px;background:var(--surface);padding:6px}
  table.rsp tbody tr:hover{background:var(--surface)}
  table.rsp td{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:9px 12px;border:none;text-align:right}
  table.rsp td::before{content:attr(data-label);color:var(--muted);font-size:calc(11.5px * var(--fs));font-weight:600;text-transform:uppercase;letter-spacing:.5px;text-align:left;flex-shrink:0}
  table.rsp td[data-label='']{justify-content:flex-end}
  table.rsp td[data-label='']::before{display:none}
  table.rsp td>div{align-items:flex-end}
  .tree-pre{display:none}
  /* Products & Services catalogue: compact 2-line card instead of label/value stack */
  #course-tbody tr{display:grid;grid-template-columns:1fr auto;grid-template-areas:"name actions" "type price";align-items:center;column-gap:11px;row-gap:6px;padding:13px 15px 14px}
  #course-tbody td{display:block;padding:0;border:none;text-align:left;min-width:0}
  #course-tbody td::before{display:none}
  #course-tbody td[data-label='Code']{display:none}
  #course-tbody td[data-label='Duration']{display:none}
  #course-tbody td[data-label='Group']{display:none}
  #course-tbody td[data-label='Name']{grid-area:name;font-weight:600;font-size:calc(15px * var(--fs));line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #course-tbody td[data-label='Type']{grid-area:type}
  #course-tbody td[data-label='List price']{grid-area:price;justify-self:end;font-size:calc(13px * var(--fs))}
  #course-tbody td[data-label='']{grid-area:actions;justify-self:end}
  /* Customers: compact card matching the course layout */
  #cust-tbody tr{display:grid;grid-template-columns:1fr auto auto;grid-template-areas:"name quotes actions" "contact country country";align-items:center;column-gap:10px;row-gap:5px;padding:13px 15px 14px}
  #cust-tbody td{display:block;padding:0;border:none;text-align:left;min-width:0}
  #cust-tbody td::before{display:none}
  #cust-tbody td[data-label='Email']{display:none}
  #cust-tbody td[data-label='Regulator']{display:none}
  #cust-tbody td[data-label='Company']{grid-area:name;font-size:calc(15px * var(--fs))}
  #cust-tbody td[data-label='Company']>div{align-items:center;min-width:0}
  #cust-tbody td[data-label='Company'] span:not(.cust-logo){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
  #cust-tbody td[data-label='Quotes']{grid-area:quotes;justify-self:end}
  #cust-tbody td[data-label='Contact']{grid-area:contact;font-size:calc(12.5px * var(--fs));color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #cust-tbody td[data-label='Country']{grid-area:country;font-size:calc(12.5px * var(--fs));color:var(--muted);justify-self:end;white-space:nowrap}
  #cust-tbody td[data-label='']{grid-area:actions;justify-self:end}
}
@media(max-width:760px){.content{padding:18px 14px}.topbar{padding:0 14px}.page-title{font-size:calc(26px * var(--fs))}.page-hd{flex-wrap:wrap;gap:12px}body{padding:12px}#app-shell{height:calc(100vh - 24px)!important;height:calc(100dvh - 24px)!important;border-radius:10px}}
/* Organisation document library table */
.ptbl-lib{width:100%;border-collapse:collapse;font-size:calc(14px * var(--fs))}
.ptbl-lib th{text-align:left;font-size:calc(11.5px * var(--fs));text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:600;padding:0 10px 8px;border-bottom:1px solid var(--border)}
.ptbl-lib td{padding:12px 10px;border-bottom:1px solid var(--border);vertical-align:top}
.ptbl-lib tr:last-child td{border-bottom:none}
.ptbl-lib-act{white-space:nowrap;text-align:right}
.ptbl-lib-act .btn{margin-left:4px}
@media(max-width:760px){
  .ptbl-lib thead{display:none}
  .ptbl-lib,.ptbl-lib tbody,.ptbl-lib tr,.ptbl-lib td{display:block}
  .ptbl-lib tr{border:1px solid var(--border);border-radius:11px;padding:11px 13px;margin-bottom:10px;background:var(--surface2)}
  .ptbl-lib td{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:5px 0;border:none;text-align:right}
  .ptbl-lib td::before{content:attr(data-l);font-size:calc(11.5px * var(--fs));font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:left;flex-shrink:0}
  .ptbl-lib td[data-l='']::before{display:none}
  .ptbl-lib-act{justify-content:flex-end;flex-wrap:wrap}
}
/* Tender pricing schedule */
.td-sched-grp{margin-bottom:18px}
.td-sched-grp-hd{font-size:calc(12.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:8px}
.ptbl-sched{width:100%;border-collapse:collapse;font-size:calc(13.5px * var(--fs))}
.ptbl-sched th{text-align:left;font-size:calc(11px * var(--fs));text-transform:uppercase;letter-spacing:.4px;color:var(--muted);font-weight:600;padding:0 8px 6px;border-bottom:1px solid var(--border);white-space:nowrap}
.ptbl-sched td{padding:8px;border-bottom:1px solid var(--border);vertical-align:top}
.ptbl-sched tr:last-child td{border-bottom:none}
.ptbl-sched input,.ptbl-sched select{width:100%;font-size:calc(13.5px * var(--fs))}
.ptbl-sched .inp-pre input{width:100%}
.ptbl-sched .f-lbl{font-weight:600}
.ptbl-sched .f-desc{margin-top:4px;font-size:calc(12.5px * var(--fs));color:var(--muted)}
.ptbl-sched .td-pl-cat{margin-top:4px;font-size:calc(12px * var(--fs));width:auto;max-width:170px;color:var(--muted)}
.ptbl-sched .td-pl-total{text-align:right;font-weight:600;white-space:nowrap}
.td-sched-total{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap;border-top:2px solid var(--border);padding-top:12px;margin-top:4px;font-size:calc(15px * var(--fs))}
.td-sched-total b{font-size:calc(19px * var(--fs))}
.td-sched-pps{color:var(--muted);font-size:calc(14px * var(--fs))}
/* Procurement layered pricing waterfall (Phase 6c) */
.td-pw-wrap{display:grid;grid-template-columns:1fr 300px;gap:20px;align-items:start}
.td-pw-build{min-width:0}
.td-pw-sectitle{font-weight:700;font-size:calc(13.5px * var(--fs));width:auto;max-width:260px;background:transparent;border:1px solid transparent;border-radius:7px;padding:3px 6px}
.td-pw-sectitle:hover,.td-pw-sectitle:focus{border-color:var(--inpBorder);background:var(--surface)}
.td-sched-grp-hd{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:calc(13.5px * var(--fs));color:var(--txt);cursor:pointer;padding:9px 10px;border-radius:9px;margin-bottom:0;user-select:none}
.td-sched-grp-hd:hover{background:var(--surface2)}
.td-sched-grp.acc-item{margin-bottom:10px}
.td-sched-grp-tot{margin-left:auto;font-size:calc(13px * var(--fs));font-weight:700;color:var(--txt);white-space:nowrap}
.td-sched-grp-tot .hint{font-weight:500}
.td-pw-secm{display:inline-flex;align-items:center;gap:5px;font-size:calc(11.5px * var(--fs));color:var(--muted);text-transform:none;letter-spacing:0;font-weight:500}
/* fixed (read-only) cost-line description caption — was an editable text box (#6) */
.f-desc-cap{margin-top:4px;font-size:calc(12.5px * var(--fs));color:var(--muted);line-height:1.45}
.td-eval-note{display:flex;gap:8px;align-items:flex-start;margin-bottom:12px;padding:10px 13px;border-radius:10px;font-size:calc(13px * var(--fs));line-height:1.5;color:var(--txt2);background:rgba(var(--mod-rgb),.07);border:1px solid rgba(var(--mod-rgb),.22)}
.td-eval-note svg{flex-shrink:0;margin-top:2px;color:var(--mod)}
.td-regen{color:var(--warn);border-color:rgba(245,158,11,.4)}
.td-regen:hover{background:rgba(245,158,11,.1)}
.td-pw-secm input{width:58px;font-size:calc(12.5px * var(--fs))}
.td-pw-ins{display:flex;align-items:center;gap:6px}
.td-pw-ins .inp-pre{flex:1;min-width:90px}
.td-pw-x{color:var(--muted);font-weight:600}
.td-pw-q{max-width:84px}
.td-pw-tbl .td-pl-total{text-align:right;font-weight:600;white-space:nowrap}
/* sticky waterfall summary */
.td-pw-sum{position:sticky;top:14px;background:var(--surface2);border:1px solid var(--border);border-radius:13px;padding:16px 16px 18px;font-size:calc(14px * var(--fs))}
.td-pw-sum-hd{font-size:calc(11px * var(--fs));text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-weight:700;margin-bottom:12px}
.td-pw-row{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:6px 0}
.td-pw-row>span{display:flex;align-items:center;gap:5px;color:var(--muted)}
.td-pw-row input{width:54px;font-size:calc(12.5px * var(--fs));padding:3px 6px;text-align:right}
.td-pw-mode{width:auto;font-size:calc(11.5px * var(--fs));padding:2px 4px}
.td-pw-row b{white-space:nowrap}
.td-pw-sub{border-top:1px solid var(--border);margin-top:4px;padding-top:10px}
.td-pw-sub>span,.td-pw-sub b{color:var(--txt);font-weight:600}
.td-pw-grand{border-top:2px solid rgba(var(--mod-rgb),.5);margin-top:6px;padding-top:12px}
.td-pw-grand>span{color:var(--txt);font-weight:700}
.td-pw-grand b{font-size:calc(20px * var(--fs));color:var(--mod)}
.td-pw-overbudget{display:flex;gap:8px;align-items:flex-start;margin-top:12px;padding:10px 12px;border-radius:10px;font-size:calc(13px * var(--fs));line-height:1.5;color:var(--err);background:rgba(239,68,68,.09);border:1px solid rgba(239,68,68,.32)}
.td-pw-overbudget svg{flex-shrink:0;margin-top:2px}
.td-pw-overbudget b{color:var(--err)}
@media(max-width:900px){.td-pw-wrap{grid-template-columns:1fr}.td-pw-sum{position:static}}
@media(max-width:760px){
  .ptbl-sched thead{display:none}
  .ptbl-sched,.ptbl-sched tbody,.ptbl-sched tr,.ptbl-sched td{display:block}
  .ptbl-sched tr{border:1px solid var(--border);border-radius:11px;padding:10px 12px;margin-bottom:10px;background:var(--surface2)}
  .ptbl-sched td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border:none;text-align:right}
  .ptbl-sched td::before{content:attr(data-l);font-size:calc(11px * var(--fs));font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:left;flex-shrink:0}
  .ptbl-sched td[data-l='Item']{display:block}
  .ptbl-sched td[data-l='Item']::before{display:block;margin-bottom:4px}
  .ptbl-sched td[data-l='Item'] .td-pl-cat{max-width:none}
  .ptbl-sched td[data-l='']::before{display:none}
  .ptbl-sched td>input,.ptbl-sched td .inp-pre{max-width:60%}
  .ptbl-sched td[data-l='Item']>input{max-width:none}
}
/* tender intake drop zone */
.ti-drop{border:2px dashed var(--inpBorder);border-radius:13px;padding:30px 20px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;color:var(--txt2)}
.ti-drop:hover,.ti-drop.drag,.ti-drop:focus-visible{border-color:var(--accent);background:rgba(var(--accent-rgb),.07);outline:none}
.ti-drop svg{width:32px;height:32px;color:var(--accent);margin-bottom:8px}
/* intake classify → complexity-dial tier readout (Phase 6b) */
.ti-classify{border-top:1px solid var(--border);padding-top:16px}
.ti-tier-readout{background:var(--surface2);border:1px solid var(--border);border-radius:11px;padding:12px 14px}
.ti-tier-badge{display:inline-block;font-weight:600;font-size:12.5px;letter-spacing:.01em;padding:4px 11px;border-radius:999px;border:1px solid;background:rgba(var(--mod-rgb),.12);color:var(--mod);border-color:rgba(var(--mod-rgb),.4)}
.ti-tier-badge.tier-light{background:rgba(34,197,94,.13);color:#16a34a;border-color:rgba(34,197,94,.4)}
.ti-tier-badge.tier-standard{background:rgba(245,158,11,.14);color:#d97706;border-color:rgba(245,158,11,.42)}
.ti-tier-badge.tier-full{background:rgba(var(--mod-rgb),.14);color:var(--mod);border-color:rgba(var(--mod-rgb),.45)}
:root[data-theme="dark"] .ti-tier-badge.tier-light{color:#4ade80}
:root[data-theme="dark"] .ti-tier-badge.tier-standard{color:#fbbf24}
/* multi-contact editor */
.ci-crow{border:1px solid var(--border);border-radius:11px;padding:12px 13px;margin-bottom:10px;background:var(--surface2)}
.ci-primary{display:inline-flex;align-items:center;gap:6px;font-size:calc(13px * var(--fs));color:var(--muted);cursor:pointer}
.ci-primary input{width:auto;margin:0}
/* customer 360 */
.cust-d-hd{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:18px}
.cust-d-logo{width:56px;height:56px;border-radius:13px;object-fit:contain;background:var(--surface2);border:1px solid var(--border);flex-shrink:0}
.cust-d-mono{display:flex;align-items:center;justify-content:center;font-weight:700;font-size:calc(19px * var(--fs));color:var(--muted)}
.cust-d-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:calc(13.5px * var(--fs));color:var(--muted);margin-top:6px}
.cust-d-meta a{color:var(--accent);text-decoration:none}
.cust-kpis{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-bottom:20px}
.cust-kpis .ck{background:var(--surface2);border:1px solid var(--border);border-radius:12px;padding:12px 14px}
.cust-kpis .ck-n{font-size:calc(19px * var(--fs));font-weight:700;color:var(--txt);line-height:1.2}
.cust-kpis .ck-l{font-size:calc(12px * var(--fs));color:var(--muted);margin-top:3px}
.cust-contact{padding:9px 0;border-bottom:1px solid var(--border)}
.cust-contact:last-child{border-bottom:none}
@media(max-width:980px){.cust-kpis{grid-template-columns:repeat(3,1fr)}}
@media(max-width:560px){.cust-kpis{grid-template-columns:repeat(2,1fr)}}
/* Quote cost tables → stacked labelled cards on phones */
@media(max-width:760px){
  .ptbl thead{display:none}
  .ptbl,.ptbl tbody,.ptbl tr,.ptbl td{display:block}
  .ptbl tr{border:1px solid var(--border);border-radius:11px;padding:10px 13px 12px;margin-bottom:10px;background:var(--surface2)}
  .ptbl tr:last-child td{border-bottom:none}
  .ptbl td{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:5px 0;border:none;text-align:right}
  .ptbl td:first-child{padding:0 0 8px}
  .ptbl td:first-child input{width:100%;font-weight:600;text-align:left}
  .ptbl td:not(:first-child)::before{font-size:calc(11.5px * var(--fs));font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);text-align:left;flex-shrink:0}
  .ptbl td .inp-pre,.ptbl td>input:not(.f-lbl),.ptbl td select{max-width:62%;flex:0 0 auto}
  .ptbl td .inp-pre input{width:100%}
  .ptbl td.row-tot{font-weight:700;border-top:1px solid var(--border);margin-top:5px;padding-top:9px;color:var(--txt)}
  .ptbl td.row-tot::before{content:'Total'}
  .ptbl td:last-child{justify-content:flex-end;padding-top:7px}
  .ptbl-staff td:nth-child(2)::before{content:'Rate'}
  .ptbl-staff td:nth-child(3)::before{content:'Staff'}
  .ptbl-staff td:nth-child(4)::before{content:'Weeks'}
  .ptbl-fac td:nth-child(2)::before{content:'Rate'}
  .ptbl-fac td:nth-child(3)::before{content:'Weeks'}
  .ptbl-sim td:nth-child(2)::before{content:'Rate'}
  .ptbl-sim td:nth-child(3)::before{content:'Units'}
  .ptbl-sim td:nth-child(4)::before{content:'Weeks'}
  .ptbl-mat td:nth-child(2)::before{content:'Rate'}
  .ptbl-mat td:nth-child(3)::before{content:'Basis'}
  .ptbl-sup td:nth-child(2)::before{content:'Rate'}
  .ptbl-sup td:nth-child(3)::before{content:'Qty 1'}
  .ptbl-sup td:nth-child(4)::before{content:'Qty 2'}
  .ptbl-var td:nth-child(2)::before{content:'Amount'}
  .ptbl-custom td:nth-child(2)::before{content:'Rate'}
  .ptbl-custom td:nth-child(3)::before{content:'Qty'}
  .ptbl-custom td:nth-child(4)::before{content:'Basis'}
}
@media(max-width:640px){
  .fgrid,.fgrid3,.price-row{grid-template-columns:1fr}
  .accent-grid{grid-template-columns:repeat(2,1fr)}
  .pd-cover{padding:42px 24px 34px}.pd-body{padding:32px 24px}.pd-title{font-size:calc(35px * var(--fs))}.pd-contact{padding:26px 24px;flex-direction:column;align-items:flex-start}.pd-contact .c-det{text-align:left}
  .pd-cust-hero{width:82%;max-width:300px}
  .pd-course{padding:20px 18px}
  .pd-course-spec{flex-direction:column}
  .pd-course-spec .sp{border-right:none;border-bottom:1px solid #eceff4}
  .pd-course-spec .sp:last-child{border-bottom:none}
  .ring-wrap{flex-direction:column;gap:12px}
}
.fw-row{display:flex;gap:10px;align-items:center;margin-bottom:9px}
.fw-row input[type=text]{flex:1}
.sr-row{display:flex;gap:10px;align-items:center;margin-bottom:9px;flex-wrap:wrap}
.sr-row>input[type=text]{flex:1;min-width:140px}
.sr-row .sr-rate{width:135px;flex-shrink:0}
.sr-row .sr-basis{width:115px;flex-shrink:0}
input[type=color]{width:46px;height:40px;padding:2px;border:1px solid var(--border);border-radius:8px;background:var(--inp);cursor:pointer;flex-shrink:0}
.pill-wrap{display:inline-flex;flex-wrap:wrap;gap:5px}
@keyframes viewIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
.view.active{animation:viewIn .32s cubic-bezier(.22,1,.36,1)}
.btn:focus-visible,.nav-item:focus-visible,.kebab-menu button:focus-visible,.acc-head:focus-visible,.theme-row:focus-visible,.hamb:focus-visible,.accent-card:focus-visible,.back:focus-visible,.sb-logo:focus-visible,.td-step:focus-visible,.td-selall:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.kebab-menu button{transition:background .12s}
#prop-builder textarea{overflow:hidden}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
/* standardized on-brand scrollbars (matches the owner control-plane) */
*{scrollbar-width:thin;scrollbar-color:var(--scrollthumb) transparent}
::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scrollthumb);border-radius:10px;border:3px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:var(--scrollthumbH);background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}
:root{--mod:var(--accent);--mod-rgb:var(--accent-rgb)}
/* ── APP HOME (master dashboard) ── */
.home-wrap{display:flex;flex-direction:column;padding:0 0 12px;width:100%;max-width:none;margin:0}
/* ── Getting Started guide (new-install onboarding) ── */
.setup-wrap{width:100%;margin-bottom:22px}
.setup-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:24px 24px 22px;box-shadow:var(--sh),var(--cardGlow);position:relative;overflow:hidden}
.setup-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;background:linear-gradient(90deg,var(--accent),rgba(var(--accent-rgb),.25))}
.setup-hd{display:flex;align-items:flex-start;gap:18px;flex-wrap:wrap;cursor:pointer;border-radius:12px;margin:-6px;padding:6px;transition:background .15s}
.setup-hd:hover{background:rgba(var(--accent-rgb),.05)}
.setup-hd:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.setup-toggle{display:inline-flex;align-items:center;gap:6px;margin-top:13px;color:var(--accent-dark);font-weight:650}
.setup-toggle-lbl{font-size:calc(12.5px * var(--fs))}
.setup-chev{transition:transform .45s cubic-bezier(.22,1,.36,1)}
.setup-card:not(.is-collapsed) .setup-chev{transform:rotate(180deg)}
.setup-hd:hover .setup-toggle{color:var(--accent)}
.setup-body{overflow:hidden;max-height:1800px;opacity:1;transition:max-height .5s cubic-bezier(.22,1,.36,1),opacity .4s ease}
.setup-card.is-collapsed .setup-body{max-height:0;opacity:0}
.setup-hd-txt{flex:1;min-width:240px}
.setup-eyebrow{font-size:calc(11px * var(--fs));font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--accent-dark);margin-bottom:6px}
.setup-title{font-family:var(--font-display);font-size:calc(24px * var(--fs));font-weight:700;color:var(--txt);letter-spacing:-.02em;line-height:1.15;margin:0 0 5px}
.setup-sub{font-size:calc(14px * var(--fs));color:var(--muted);line-height:1.55;margin:0;max-width:none}
.setup-prog{min-width:148px;text-align:right;flex-shrink:0}
.setup-prog-pct{font-family:var(--font-display);font-size:calc(30px * var(--fs));font-weight:600;color:var(--accent-dark);line-height:1;letter-spacing:-.5px}
.setup-prog-lbl{font-size:calc(12px * var(--fs));color:var(--muted);margin-top:3px}
.setup-bar{position:relative;height:10px;border-radius:99px;background:var(--surface2);border:1px solid var(--border);overflow:hidden;margin-top:10px;width:100%}
.setup-bar-fill{position:relative;display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-dark));box-shadow:0 0 12px rgba(var(--accent-rgb),.55);transition:width .9s cubic-bezier(.22,1,.36,1);overflow:hidden}
.setup-bar-shine{position:absolute;top:0;left:0;height:100%;width:55%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.5),transparent);transform:translateX(-160%);animation:setupShine 2.6s cubic-bezier(.4,0,.2,1) 1.1s infinite}
@keyframes setupShine{0%{transform:translateX(-160%)}55%,100%{transform:translateX(360%)}}
.setup-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:20px}
@media(max-width:680px){.setup-steps{grid-template-columns:1fr}}
.setup-step{display:flex;gap:14px;align-items:flex-start;padding:15px 16px;border:1px solid var(--border);border-radius:14px;background:var(--surface2);transition:border-color .2s,background .2s}
.setup-step.is-done{border-color:rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.05)}
.setup-step-body{flex:1;min-width:0}
.setup-step-lbl{font-size:calc(14.5px * var(--fs));font-weight:650;color:var(--txt);line-height:1.25;margin-bottom:2px}
.setup-step-why{font-size:calc(12.5px * var(--fs));color:var(--muted);line-height:1.45;margin-bottom:7px}
.setup-step-foot{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.setup-step-detail{font-size:calc(11.5px * var(--fs));color:var(--txt2);font-weight:600}
.su-ring{flex-shrink:0;overflow:visible}
.su-ring-t{fill:var(--txt2);font-size:11.5px;font-weight:700;font-variant-numeric:tabular-nums}
.setup-step.is-done .su-ring-t,.su-ring.is-done .su-ring-t{fill:var(--ok);font-size:19px;font-weight:800}
.su-ring.is-done .su-ring-t{transform-box:fill-box;transform-origin:center;animation:suPop .55s cubic-bezier(.34,1.56,.64,1) .35s both}
@keyframes suPop{0%{transform:scale(0);opacity:0}60%{transform:scale(1.25)}100%{transform:scale(1);opacity:1}}
.setup-allset{display:flex;align-items:center;gap:16px;flex-wrap:wrap}
.setup-allset-ic{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(var(--accent-rgb),.12);color:var(--ok);flex-shrink:0}
.setup-allset-txt{flex:1;min-width:220px}
.home-brand{margin-bottom:24px;text-align:center}
.home-eyebrow{font-size:calc(12px * var(--fs));font-weight:700;letter-spacing:2.2px;text-transform:uppercase;color:var(--accent-dark);margin-bottom:8px}
.home-brand-name{font-family:var(--font-display);font-size:calc(34px * var(--fs));font-weight:400;color:var(--txt);letter-spacing:-.4px;line-height:1.1;margin-bottom:6px}
.home-brand-sub{font-size:calc(15px * var(--fs));color:var(--muted);max-width:560px;margin:0 auto}
.home-kpis{width:100%;margin-bottom:22px}
.home-settings{margin-top:20px}
/* "Your account" billing panel */
#acct-panel{width:100%;margin-top:22px}
.acct{display:flex;gap:32px;flex-wrap:wrap;align-items:flex-end}
.acct-fig{min-width:148px}
.acct-fig .l{font-size:calc(11.5px * var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}
.acct-fig .v{font-family:var(--font-display);font-size:calc(30px * var(--fs));font-weight:400;letter-spacing:-.5px;margin-top:5px;line-height:1;color:var(--txt)}
.acct-fig .v .per{font-family:var(--font-body);font-size:calc(14px * var(--fs));color:var(--muted);font-weight:500}
.acct-fig .s{font-size:calc(12.5px * var(--fs));color:var(--muted);margin-top:7px}
.acct-fig.is-low .v{color:var(--warn)}
.acct-fig.is-empty .v{color:var(--err)}
.acct-spark{margin-left:auto}
.acct-spark .l{font-size:calc(11.5px * var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600;margin-bottom:10px}
.spk{display:flex;align-items:flex-end;gap:9px;height:58px}
.spk-col{display:flex;flex-direction:column;align-items:center;gap:6px;height:100%;justify-content:flex-end}
.spk-col span{font-size:calc(10px * var(--fs));color:var(--muted)}
.spk-bar{width:16px;min-height:6px;background:rgba(var(--accent-rgb),.4);border-radius:3px 3px 0 0;transition:height .5s cubic-bezier(.22,1,.36,1)}
.spk-bar.on{background:var(--accent)}
@media(max-width:720px){.acct-spark{margin-left:0;width:100%}}
.module-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;width:100%;position:relative}
/* spinning cogs centred in the VectorDocs (AI Learning) card — the "engine" at
   work, behind the normal card content (which matches every other card) */
.module-card .mod-cogs{position:absolute;inset:0;color:var(--mod);opacity:.06;pointer-events:none} /* specificity beats .module-card>* */
.mod-cogs .cog{position:absolute;left:50%;top:50%;transform-origin:50% 50%;will-change:transform}
.mod-cogs .cog svg{display:block;width:100%;height:100%}
.mod-cogs .cog-a{width:74px;height:74px;margin:-50px 0 0 -60px;animation:cogspin 16s linear infinite}
.mod-cogs .cog-b{width:50px;height:50px;margin:-4px 0 0 -8px;animation:cogspin 11s linear infinite reverse}
@keyframes cogspin{to{transform:rotate(360deg)}}
@media(prefers-reduced-motion:reduce){.mod-cogs .cog{animation:none}}
@media(max-width:1180px){.module-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.module-grid{grid-template-columns:1fr}.module-card{min-height:0;aspect-ratio:auto}}
.module-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:22px 22px;cursor:pointer;transition:transform .2s cubic-bezier(.22,1,.36,1),border-color .2s,box-shadow .2s;box-shadow:var(--sh),var(--cardGlow);display:flex;flex-direction:column;gap:16px;position:relative;overflow:hidden;text-align:left;font:inherit;width:100%;min-height:0}
/* staggered entrance — cards rise + pop in one after another (backwards fill so
   the final state reverts to normal CSS, keeping the hover lift working) */
@keyframes moduleIn{from{opacity:0;transform:translateY(26px) scale(.92)}to{opacity:1;transform:none}}
.module-card.mod-in{animation:moduleIn .55s cubic-bezier(.34,1.56,.64,1) var(--in-delay,0s) backwards}
/* resting cards are a clean surface — the module hue lives in the icon tile and
   the mouse-follow hover glow, not a full-card wash. just a whisper of hue tints
   the top-right corner so cards aren't dead flat. */
.module-card::before{content:'';position:absolute;inset:0;pointer-events:none;z-index:0;border-radius:inherit;
  background:radial-gradient(125% 95% at 100% 0%, rgba(var(--mod-rgb),.06), transparent 56%)}
.module-card>*{position:relative;z-index:1}
:root[data-theme="light"] .module-card::before{background:radial-gradient(125% 95% at 100% 0%, rgba(var(--mod-rgb),.05), transparent 56%)}
.module-card:hover{transform:translateY(-5px);border-color:rgba(var(--mod-rgb),.5);box-shadow:var(--shM),var(--cardGlow)}
.module-card:focus-visible{outline:2px solid var(--mod);outline-offset:2px}
/* greyed-out cards: coming-soon (previewable) and not-paid-for (inert) */
.module-card.is-soon{opacity:.72;filter:grayscale(.5)}
.module-card.is-soon:hover{opacity:.9;filter:grayscale(.2)}
.module-card.is-locked{opacity:.6;filter:grayscale(.75);cursor:default}
.module-card.is-locked:hover{opacity:.5;filter:grayscale(.8);transform:none;border-color:var(--border);box-shadow:var(--sh),var(--cardGlow)}
.mod-lock{color:var(--muted)!important;background:rgba(148,163,184,.16)!important;border-color:rgba(148,163,184,.4)!important}
/* header row: icon on the left, name + description stacked to its right */
.module-top{display:flex;align-items:flex-start;gap:15px}
.module-head{display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}
.module-ic{flex:none;width:52px;height:52px;border-radius:15px;background:linear-gradient(145deg,rgba(var(--mod-rgb),.32),rgba(var(--mod-rgb),.16));display:flex;align-items:center;justify-content:center;color:var(--mod);box-shadow:inset 0 0 0 1.5px rgba(var(--mod-rgb),.55),0 4px 18px rgba(var(--mod-rgb),.38)}
.module-ic svg{width:27px;height:27px;filter:drop-shadow(0 0 7px rgba(var(--mod-rgb),.7))}
.module-card:hover .module-ic{box-shadow:inset 0 0 0 1.5px rgba(var(--mod-rgb),.7),0 6px 24px rgba(var(--mod-rgb),.5)}
:root[data-theme="light"] .module-ic{background:linear-gradient(145deg,rgba(var(--mod-rgb),.26),rgba(var(--mod-rgb),.14));color:var(--mod);color:color-mix(in srgb,var(--mod),#000 16%);box-shadow:inset 0 0 0 1.5px rgba(var(--mod-rgb),.5),0 4px 14px rgba(var(--mod-rgb),.28)}
:root[data-theme="light"] .module-ic svg{filter:drop-shadow(0 0 5px rgba(var(--mod-rgb),.45))}
.module-name{font-size:calc(19px * var(--fs));font-weight:600;color:var(--txt);letter-spacing:-.025em;line-height:1.15;display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.mod-soon{font-size:calc(10px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--mod);background:rgba(var(--mod-rgb),.14);border:1px solid rgba(var(--mod-rgb),.3);border-radius:20px;padding:2px 8px}
.module-desc{font-size:calc(13.5px * var(--fs));font-weight:500;color:var(--txt2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
/* mouse-follow accent glow on active cards — eased position via --gx/--gy (JS) */
.mod-glow{position:absolute;inset:0;z-index:1;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity .45s ease;mix-blend-mode:screen;
  background:radial-gradient(260px circle at var(--gx,50%) var(--gy,50%), rgba(var(--mod-rgb),.20), rgba(var(--mod-rgb),.07) 38%, transparent 66%)}
.module-card.glow-on .mod-glow{opacity:1}
:root[data-theme="light"] .mod-glow{mix-blend-mode:normal;background:radial-gradient(260px circle at var(--gx,50%) var(--gy,50%), rgba(var(--mod-rgb),.16), rgba(var(--mod-rgb),.05) 40%, transparent 66%)}
.module-foot{margin-top:auto;display:flex;flex-direction:column;gap:9px;padding-top:10px}

/* ════ Home sidebar: all-modules list ════ */
.sb-mod-allhd{display:inline-flex;align-items:center;gap:8px;font-size:calc(10.5px*var(--fs));font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#8C9BB2}
.sb-mod-allhd svg{width:14px;height:14px}
.sb-modlist{display:flex;flex-direction:column;gap:7px;padding:8px 12px}
.sb-mod-item{display:flex;align-items:center;gap:11px;width:100%;padding:8px 9px;border-radius:9px;background:none;border:0;cursor:pointer;font:inherit;font-size:calc(14.5px*var(--fs));font-weight:600;color:#CBD8EC;text-align:left;transition:background .15s,color .15s}
.sb-mod-item:hover{background:rgba(255,255,255,.06);color:#fff}
.sb-mod-ic{display:grid;place-items:center;width:31px;height:31px;border-radius:9px;flex:none;background:rgba(var(--mod-rgb),.16);color:var(--mod);box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.28)}
.sb-mod-ic svg{width:17px;height:17px}
.sb-mod-lbl{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-mod-item.is-soon{color:#76859C}
.sb-mod-item.is-soon .sb-mod-ic{background:rgba(255,255,255,.05);color:#76859C;box-shadow:inset 0 0 0 1px rgba(255,255,255,.07)} /* coming-soon: greyed, not colourised */
.sb-mod-item.is-soon:hover{color:#9fb0c8}
.sb-mod-item.is-locked{opacity:.55}
.sb-mod-tag{font-size:calc(9px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:#76859C;background:rgba(255,255,255,.07);padding:2px 7px;border-radius:99px}
/* premium "Pro" mark — small bold gold, superscripted top-right of the module name */
.sb-mod-pro{vertical-align:super;margin-left:3px;font-size:calc(8.5px*var(--fs));font-weight:800;letter-spacing:.4px;text-transform:uppercase;background:linear-gradient(180deg,#FDECB2,#E9C257);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:#F0CD6A}

/* ════ Home dashboard grid ════ */
.dash-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px;width:100%}
.dash-card{grid-column:span var(--span,1);background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px;box-shadow:var(--sh),var(--cardGlow);min-width:0}
.dash-card-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:14px}
.dash-card-title{font-size:calc(14px*var(--fs));font-weight:700;color:var(--txt);letter-spacing:-.01em}
.dash-empty{font-size:calc(13px*var(--fs));color:var(--muted);padding:20px 4px;text-align:center;line-height:1.5}
.kpi-card{display:flex;flex-direction:column;gap:8px;padding:16px 17px}
.kpi-label{font-size:calc(11.5px*var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.05em}
.kpi-mid{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:52px}
.kpi-value{font-family:var(--font-display);font-size:calc(31px*var(--fs));font-weight:700;color:var(--txt);line-height:1;letter-spacing:-.02em}
.kpi-visual{flex:none;display:flex;align-items:center}
.kpi-sub{font-size:calc(12.5px*var(--fs));color:var(--muted);font-weight:500}
.kpi-sub.up{color:#16a34a;font-weight:600}
.dash-spark{width:132px;height:46px}
.dash-donut{width:54px;height:54px}
.pls{display:flex;flex-direction:column;gap:11px}
.pls-row{display:grid;grid-template-columns:50px 1fr auto auto;align-items:center;gap:10px;font-size:calc(13px*var(--fs))}
.pls-lbl{color:var(--txt2);font-weight:600}
.pls-track{height:15px;border-radius:99px;background:var(--surface2);overflow:hidden}
.pls-bar{height:100%;border-radius:99px;transition:width .6s cubic-bezier(.22,1,.36,1)}
.pls-foot{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:16px;padding-top:13px;border-top:1px solid var(--borderS)}
.pls-stat{display:flex;flex-direction:column;gap:1px}
.pls-stat .l{font-size:calc(11px*var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-weight:600}
.pls-stat .v{font-size:calc(15px*var(--fs));font-weight:700;color:var(--txt);font-variant-numeric:tabular-nums}
/* Services dashboard — rich catalogue rows */
.svc-list{display:flex;flex-direction:column}
.svc-row{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 6px;border-bottom:1px solid var(--borderS);cursor:pointer;transition:background .12s}
.svc-row:last-child{border-bottom:0}
.svc-row:hover{background:rgba(var(--accent-rgb),.05)}
.svc-main{min-width:0;flex:1}
.svc-top{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.svc-name{font-size:calc(15.5px*var(--fs));font-weight:600;color:var(--txt)}
.svc-meta{font-size:calc(12.5px*var(--fs));color:var(--muted);margin-top:5px;font-variant-numeric:tabular-nums}
.svc-sum{font-size:calc(13px*var(--fs));color:var(--txt2);line-height:1.5;margin-top:6px;max-width:720px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-right{display:flex;align-items:center;gap:12px;flex:none}
.svc-price{font-family:var(--font-display);font-size:calc(17px*var(--fs));font-weight:700;color:var(--txt);white-space:nowrap;font-variant-numeric:tabular-nums}
.svc-unit{font-family:var(--font-body);font-size:calc(11px*var(--fs));font-weight:500;color:var(--muted)}
.svc-noprice{font-family:var(--font-body);font-size:calc(12.5px*var(--fs));font-weight:500;color:var(--muted)}
.svc-del{display:grid;place-items:center;width:28px;height:28px;border-radius:7px;border:1px solid var(--border);background:none;color:var(--muted);cursor:pointer;opacity:0;transition:opacity .12s,color .15s,border-color .15s}
.svc-row:hover .svc-del{opacity:1}
.svc-del:hover{color:var(--err);border-color:rgba(248,113,113,.4)}
/* Services landing — equal-height product/service cards (single summary view) */
.svc-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(310px,1fr));gap:16px}
.svc-card{display:flex;flex-direction:column;height:292px;overflow:hidden;background:var(--surface);border:1px solid var(--border);border-radius:14px;box-shadow:0 1px 2px rgba(0,0,0,.04);transition:border-color .15s,box-shadow .15s,transform .12s}
.svc-card:hover{border-color:rgba(var(--accent-rgb),.5);box-shadow:0 12px 30px rgba(0,0,0,.12);transform:translateY(-2px)}
.svc-card-hd{background:#1B2533;padding:14px 16px 13px;border-bottom:3px solid var(--mod,var(--accent))}
.svc-card-hd .item-type-badge{background:rgba(255,255,255,.15);color:#fff}
.svc-card-name{font-family:var(--font-display);font-weight:700;font-size:calc(17px*var(--fs));line-height:1.25;margin-top:9px;color:#fff;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-card-code{font-size:calc(12px*var(--fs));color:rgba(255,255,255,.72);margin-top:6px;font-variant-numeric:tabular-nums}
.svc-card-bd{flex:1;min-height:0;overflow:hidden;padding:14px 16px;display:flex;flex-direction:column;gap:10px}
.svc-card-bd>*{flex-shrink:0;min-height:0} /* don't let flex collapse the summary */
.svc-card-sum{font-size:calc(13.5px*var(--fs));color:var(--txt2);line-height:1.5;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.svc-card-deliv{display:flex;flex-direction:column;gap:6px}
.svc-deliv-lbl,.svc-for-lbl{font-size:calc(10px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--muted)}
.svc-chips{display:flex;flex-wrap:wrap;gap:6px;max-height:26px;overflow:hidden}
.svc-chip{font-size:calc(11.5px*var(--fs));background:rgba(var(--accent-rgb),.12);color:var(--accent);padding:3px 9px;border-radius:99px;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis}
.svc-chip-more{background:var(--surfaceH);color:var(--muted)}
.svc-card-for{font-size:calc(12.5px*var(--fs));color:var(--txt2);display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden}
.svc-card-for .svc-for-lbl{margin-right:6px}
.svc-card-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px 16px;border-top:1px solid var(--borderS)}
.svc-card-price{font-family:var(--font-display);font-size:calc(17px*var(--fs));font-weight:700;color:var(--txt);white-space:nowrap;font-variant-numeric:tabular-nums}
.svc-card-actions{display:flex;gap:7px;flex-shrink:0}
/* Branded product View popup */
.svc-view-name{font-family:var(--font-display);font-weight:700;font-size:calc(23px*var(--fs));color:var(--txt);margin:9px 0 4px;line-height:1.2}
.svc-view-meta{font-size:calc(13px*var(--fs));color:var(--muted);margin-bottom:15px;font-variant-numeric:tabular-nums}
.svc-view-sum{font-size:calc(14.5px*var(--fs));color:var(--txt2);line-height:1.6;margin:0}
.svc-view-h{font-family:var(--font-display);font-size:calc(13px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--accent);margin:20px 0 9px}
.svc-view-list{list-style:none;padding:0;margin:0}
.svc-view-list li{position:relative;padding-left:21px;margin-bottom:8px;font-size:calc(14px*var(--fs));color:var(--txt2);line-height:1.5}
.svc-view-list li:before{content:'';position:absolute;left:2px;top:8px;width:7px;height:7px;border-radius:50%;background:var(--accent)}
.svc-view-p{font-size:calc(14px*var(--fs));color:var(--txt2);line-height:1.55;margin:0}
.svc-view-price{display:flex;align-items:center;justify-content:space-between;margin-top:22px;padding:14px 18px;background:var(--surface2);border-radius:11px}
.svc-view-price-lbl{font-size:calc(12px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted)}
.svc-view-price-val{font-family:var(--font-display);font-size:calc(22px*var(--fs));font-weight:700;color:var(--txt)}
.svc-view-unit{font-size:calc(12px*var(--fs));font-weight:500;color:var(--muted)}
/* Locked / coming-soon module tooltip — fixed-position (set on <body> by modTipShow) */
.mod-tip-float{position:fixed;z-index:4000;display:none;flex-direction:column;gap:5px;width:230px;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:12px 13px;box-shadow:0 16px 40px rgba(0,0,0,.32);text-align:left;pointer-events:none}
.sb-mod-tip-h{display:flex;align-items:center;gap:8px;font-weight:700;font-size:calc(13px*var(--fs));color:var(--txt)}
.sb-mod-tip-ic{display:inline-flex;width:20px;height:20px;align-items:center;justify-content:center;color:var(--mod,var(--accent))}
.sb-mod-tip-ic svg{width:15px;height:15px}
.sb-mod-tip-p{font-size:calc(11.5px*var(--fs));color:var(--txt2);line-height:1.45}
.sb-mod-tip-price{font-size:calc(11.5px*var(--fs));font-weight:700;color:var(--accent)}
.pls-n{font-weight:700;color:var(--txt);min-width:18px;text-align:right}
.pls-v{color:var(--muted);min-width:62px;text-align:right;font-variant-numeric:tabular-nums}
.dash-line{width:100%;height:auto;display:block}
.dash-axis{font-size:9px;fill:var(--muted)}
.dash-act{display:flex;align-items:center;gap:11px;padding:8px 2px;border-bottom:1px solid var(--borderS)}
.dash-act:last-child{border-bottom:0}
.dash-act-ic{flex:none;display:grid;place-items:center;width:30px;height:30px;border-radius:8px}
.dash-act-ic svg{width:16px;height:16px}
.dash-act-txt{flex:1;min-width:0;font-size:calc(13.5px*var(--fs));color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.dash-act-txt b{color:var(--txt);font-weight:600}
.dash-act-time{flex:none;font-size:calc(12px*var(--fs));color:var(--muted);white-space:nowrap}
.dash-dl{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:9px 2px;border-bottom:1px solid var(--borderS);cursor:pointer}
.dash-dl:last-child{border-bottom:0}
.dash-dl:hover .dash-dl-t{color:var(--accent-dark)}
.dash-dl-main{min-width:0}
.dash-dl-t{font-size:calc(13.5px*var(--fs));font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dash-dl-m{font-size:calc(12px*var(--fs));color:var(--muted)}
.dash-dl-when{flex:none;text-align:right;font-size:calc(12.5px*var(--fs));color:var(--txt2);font-weight:600;white-space:nowrap}
.dash-dl-when span{display:block;font-size:calc(11px*var(--fs));color:var(--muted);font-weight:500}
.dash-dl-when.red{color:var(--err)}
.dash-dl-when.amber{color:#d97706}
@media(max-width:1080px){.dash-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:680px){.dash-grid{grid-template-columns:1fr}.dash-card{grid-column:auto}}
/* dashboard customise mode */
.dash-card{position:relative}
.dash-bar{display:flex;justify-content:flex-end;margin-bottom:12px;width:100%}
.dash-customise-btn{display:grid;place-items:center;width:30px;height:30px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;padding:0;transition:background .15s,color .15s,border-color .15s}
.dash-customise-btn:hover{background:var(--surface2);color:var(--accent-dark);border-color:rgba(var(--accent-rgb),.4)}
.dash-act{cursor:pointer;border-radius:8px;transition:background .12s}
.dash-act:hover{background:rgba(var(--accent-rgb),.06)}
.dash-act:hover .dash-act-txt b{color:var(--accent-dark)}
.dash-editbar{display:flex;align-items:center;justify-content:space-between;gap:14px;width:100%;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:9px 14px;box-shadow:var(--sh)}
.dash-editbar-l{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0}
.dash-chip{font:inherit;font-size:calc(12.5px*var(--fs));font-weight:600;color:var(--accent-dark);background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.3);border-radius:99px;padding:4px 11px;cursor:pointer}
.dash-chip:hover{background:rgba(var(--accent-rgb),.18)}
.dash-editing .dash-card{cursor:grab;border-style:dashed;border-color:rgba(var(--accent-rgb),.45);padding-top:38px}
.dash-editing .dash-card.dragging{opacity:.45;cursor:grabbing}
.dash-ctrls{position:absolute;top:8px;left:10px;right:10px;display:flex;align-items:center;justify-content:space-between;z-index:4}
.dash-drag{color:var(--muted);display:flex;cursor:grab}
.dash-ctrls-r{display:flex;gap:5px}
.dash-ctrl{display:grid;place-items:center;width:24px;height:24px;border-radius:7px;border:1px solid var(--border);background:var(--surface);color:var(--txt2);cursor:pointer;font-size:13px;line-height:1;padding:0}
.dash-ctrl:hover{background:var(--surface2);color:var(--txt)}
.module-stat{font-size:calc(13px * var(--fs));font-weight:600;color:var(--txt2);min-height:18px;font-variant-numeric:tabular-nums}
.module-cta{display:inline-flex;align-items:center;gap:3px;font-size:calc(13px * var(--fs));font-weight:600;color:var(--mod)}
/* Draft-proposal alert bell (VectorQuote card, top-right) — animated, with an on-brand tooltip */
.mod-bell{position:absolute;top:14px;right:14px;z-index:4;width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:rgba(var(--mod-rgb),.18);color:var(--mod);box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.45);cursor:pointer;transition:background .15s,transform .15s;animation:bellGlow 2.8s ease-in-out infinite}
.mod-bell:hover{background:rgba(var(--mod-rgb),.32);transform:scale(1.09)}
.mod-bell:focus-visible{outline:2px solid var(--mod);outline-offset:2px}
@keyframes bellGlow{0%,100%{box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.45),0 0 0 0 rgba(var(--mod-rgb),.42)}50%{box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.65),0 0 13px 1px rgba(var(--mod-rgb),.5)}}
.mod-bell-ic{width:24px;height:24px;transform-origin:50% 3.5px;animation:bellRing 2.5s ease-in-out infinite}
@keyframes bellRing{0%,58%,100%{transform:rotate(0)}63%{transform:rotate(22deg)}68%{transform:rotate(-18deg)}73%{transform:rotate(13deg)}78%{transform:rotate(-9deg)}83%{transform:rotate(6deg)}88%{transform:rotate(-3deg)}93%{transform:rotate(1deg)}}
.mod-bell-n{position:absolute;top:-7px;right:-7px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:var(--mod);color:#fff;font-size:11.5px;font-weight:800;line-height:1;display:grid;place-items:center;box-shadow:0 0 0 2.5px var(--surface);transform-origin:50% 50%;animation:bellPulse 2.1s ease-in-out infinite}
@keyframes bellPulse{0%,100%{box-shadow:0 0 0 2.5px var(--surface),0 0 0 0 rgba(var(--mod-rgb),.6);transform:scale(1)}50%{box-shadow:0 0 0 2.5px var(--surface),0 0 0 8px rgba(var(--mod-rgb),0);transform:scale(1.14)}}
.mod-bell-tip{position:absolute;top:50px;right:0;width:236px;max-width:74vw;background:var(--surface2);border:1px solid var(--border);border-radius:12px;box-shadow:var(--shL);padding:11px 13px;display:flex;flex-direction:column;gap:5px;opacity:0;visibility:hidden;transform:translateY(-5px);transition:opacity .16s,transform .16s,visibility .16s;z-index:6;pointer-events:none;text-align:left;white-space:normal}
.mod-bell:hover .mod-bell-tip,.mod-bell:focus-visible .mod-bell-tip{opacity:1;visibility:visible;transform:translateY(0)}
.mbt-hd{font-weight:700;font-size:calc(12.5px * var(--fs));color:var(--txt);letter-spacing:-.01em}
.mbt-row{font-size:calc(11.5px * var(--fs));color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}
.mbt-row b{color:var(--txt);font-weight:600}
.mbt-row em{font-style:normal;color:var(--txt2)}
.mbt-more{color:var(--txt2)}
.mbt-foot{margin-top:3px;padding-top:6px;border-top:1px solid var(--border);font-size:calc(11px * var(--fs));color:var(--mod);font-weight:700;font-variant-numeric:tabular-nums}
@media(prefers-reduced-motion:reduce){.mod-bell-ic,.mod-bell-n{animation:none}}
/* account card (9th cell, bottom-right) — silver/slate, expands AI sessions inside its own boundary */
.acct-card{cursor:default}
.acct-card:hover{transform:none;border-color:rgba(var(--mod-rgb),.55);box-shadow:var(--sh),var(--cardGlow)}
.acct-bar-row{cursor:pointer;border-radius:inherit;transition:background .15s}
.acct-bar-row:hover{background:rgba(var(--mod-rgb),.07)}
.acct-expand{display:inline-flex;align-items:center;gap:7px;flex-shrink:0;color:var(--txt2)}
.acct-expand-lbl{font-size:calc(12.5px*var(--fs));font-weight:600;white-space:nowrap}
.acct-bar-row:hover .acct-expand{color:var(--txt)}
.acct-chev{flex-shrink:0;color:var(--muted);transition:transform .2s}
.acct-card.open .acct-chev{transform:rotate(90deg)}
.acct-card.open .acct-expand-lbl{opacity:.7}
@media(max-width:760px){.acct-expand-lbl{display:none}}
.acct-usage{width:100%;border-top:1px solid var(--border);overflow:hidden;animation:fadeIn .2s ease}
.au-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 24px;border-bottom:1px solid var(--border);font-size:13px;font-weight:600;color:var(--txt)}
.au-head .au-total{color:var(--accent-dark);font-variant-numeric:tabular-nums}
.au-list{max-height:420px;overflow-y:auto}
.au-row{display:grid;grid-template-columns:140px 1fr 120px 1fr auto;align-items:center;gap:14px;padding:10px 24px;border-bottom:1px solid var(--border);font-size:13px}
.au-row:last-child{border-bottom:none}
.au-row:nth-child(even){background:rgba(var(--mod-rgb),.04)}
.au-date{color:var(--muted);font-size:12.5px;white-space:nowrap}
.au-task{color:var(--txt);font-weight:600}
.au-mod{color:var(--muted);font-size:12.5px}
.au-ref{color:var(--txt2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.au-amt{font-variant-numeric:tabular-nums;font-weight:600;color:var(--txt);text-align:right;white-space:nowrap}
@media(max-width:760px){.au-row{grid-template-columns:1fr auto;gap:4px 10px}.au-date{grid-column:1/2}.au-amt{grid-column:2/3;grid-row:1/3}.au-mod,.au-ref{font-size:12px}}
.acct-rows{display:flex;flex-direction:column;gap:11px;margin-top:2px}
.ar{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.ar-l{font-size:calc(12.5px * var(--fs));color:var(--muted);font-weight:500}
.ar-v{font-family:var(--font-display);font-size:calc(20px * var(--fs));color:var(--txt);letter-spacing:-.3px;line-height:1;font-variant-numeric:tabular-nums}
.ar-v .ar-per{font-family:var(--font-body);font-size:calc(12px * var(--fs));color:var(--muted);font-weight:500;letter-spacing:0}
.ar-v.ar-date{font-family:var(--font-body);font-size:calc(14px * var(--fs));font-weight:600;letter-spacing:-.01em}
.ar-v.is-low{color:var(--warn)}.ar-v.is-empty{color:var(--err)}
.acct-spark-mini{display:flex;align-items:flex-end;gap:5px;height:30px;margin-top:auto;padding-top:12px}
.acct-spark-mini .b{flex:1;min-height:4px;background:rgba(var(--mod-rgb),.4);border-radius:2px 2px 0 0}
.acct-spark-mini .b.on{background:rgba(var(--mod-rgb),.85)}
/* "Your account" — 3-column panel below the module grid */
.acct-wrap{margin-top:18px;width:100%}
.acct-card{display:flex;flex-direction:column;gap:18px;padding:22px 24px;min-height:0;aspect-ratio:auto}
.acct-hd{display:flex;align-items:center;gap:13px}
.acct-hd .module-ic{width:44px;height:44px}
.acct-hd-txt{min-width:0}
.acct-hd-sub{font-size:calc(12.5px * var(--fs));color:var(--muted);margin-top:2px}
.acct-grid{display:grid;grid-template-columns:1fr 1fr 2fr;gap:16px}
@media(max-width:900px){.acct-grid{grid-template-columns:1fr 1fr}.acct-col-usage{grid-column:1/-1}}
@media(max-width:560px){.acct-grid{grid-template-columns:1fr}}
.acct-col{background:var(--surface2);border:1px solid var(--border);border-radius:14px;padding:15px 16px;display:flex;flex-direction:column;min-width:0}
.acct-col-l{font-size:calc(11px * var(--fs));color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.acct-col-v{font-family:var(--font-display);font-size:calc(28px * var(--fs));font-weight:600;letter-spacing:-.5px;line-height:1;margin-top:9px;color:var(--txt);font-variant-numeric:tabular-nums}
.acct-col-v .acct-per{font-family:var(--font-body);font-size:calc(13px * var(--fs));color:var(--muted);font-weight:500}
.acct-col-v.is-low{color:var(--warn)}.acct-col-v.is-empty{color:var(--err)}
.acct-col-s{font-size:calc(12px * var(--fs));color:var(--muted);margin-top:7px}
.acct-chart{display:flex;align-items:flex-end;gap:7px;height:54px;margin-top:auto;padding-top:14px}
.acct-cbar-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;height:100%;justify-content:flex-end}
.acct-cbar{width:100%;max-width:18px;min-height:6px;background:linear-gradient(180deg,rgba(var(--accent-rgb),.55),rgba(var(--accent-rgb),.28));border-radius:4px 4px 0 0}
.acct-cbar.on{background:linear-gradient(180deg,var(--accent),var(--accent-dark))}
.acct-cbar-col span{font-size:calc(9.5px * var(--fs));color:var(--muted)}
.acct-prog{height:9px;border-radius:99px;background:var(--surface);border:1px solid var(--border);overflow:hidden;margin-top:13px}
.acct-prog>i{display:block;height:100%;border-radius:99px;background:linear-gradient(90deg,var(--accent),var(--accent-dark));box-shadow:0 0 10px rgba(var(--accent-rgb),.5)}
.acct-col-hd{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:6px}
.acct-usage-total{font-size:calc(11.5px * var(--fs));color:var(--accent-dark);font-weight:600;font-variant-numeric:tabular-nums}
.acct-usage-list{display:flex;flex-direction:column;overflow-y:auto;max-height:178px;margin:0 -2px;padding-right:2px}
.aurow{display:flex;align-items:center;gap:11px;padding:8px 2px;border-bottom:1px solid var(--border)}
.aurow:last-child{border-bottom:none}
.aurow-ic{width:30px;height:30px;border-radius:9px;flex-shrink:0;display:grid;place-items:center;background:rgba(var(--mod-rgb,148,163,184),.16);color:var(--mod,#94A3B8);box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb,148,163,184),.28)}
.acct-buy{margin-top:14px;width:100%;justify-content:center;gap:7px;background:rgba(var(--accent-rgb),.1);border:1px solid rgba(var(--accent-rgb),.4);color:var(--accent-dark);font-weight:600}
.acct-buy:hover{background:rgba(var(--accent-rgb),.18);border-color:var(--accent)}
.acct-buy svg{width:14px;height:14px}
.buycred-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
@media(max-width:520px){.buycred-grid{grid-template-columns:repeat(2,1fr)}}
.buycred-opt{padding:15px 8px;border:1.5px solid var(--border);border-radius:12px;background:var(--surface2);color:var(--txt);font-weight:700;font-size:calc(16px * var(--fs));cursor:pointer;font-variant-numeric:tabular-nums;transition:border-color .15s,background .15s,color .15s}
.buycred-opt:hover{border-color:rgba(var(--accent-rgb),.5)}
.buycred-opt.on{border-color:var(--accent);background:rgba(var(--accent-rgb),.13);color:var(--accent-dark)}
.aurow-ic svg{width:15px;height:15px}
.aurow-main{flex:1;min-width:0}
.aurow-task{font-size:calc(13px * var(--fs));font-weight:600;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aurow-meta{font-size:calc(11.5px * var(--fs));color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.aurow-amt{font-variant-numeric:tabular-nums;font-weight:700;color:var(--txt);white-space:nowrap;font-size:calc(13.5px * var(--fs))}
.acct-usage-split{display:flex;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px}
.aus-chip{display:inline-flex;align-items:center;gap:6px;font-size:calc(11.5px * var(--fs));font-weight:600;color:var(--txt2);font-variant-numeric:tabular-nums}
.aus-dot{width:8px;height:8px;border-radius:50%}
.aus-free .aus-dot{background:var(--ok)}
.aus-charged .aus-dot{background:#94A3B8}
.au-tag{display:inline-block;font-size:calc(9.5px * var(--fs));font-weight:700;letter-spacing:.02em;padding:1px 6px;border-radius:6px;vertical-align:1px}
.au-free{background:rgba(var(--accent-rgb),.14);color:var(--accent-dark)}
.au-mixed{background:rgba(251,165,25,.16);color:#C9821B}
.au-charged{background:rgba(148,163,184,.16);color:var(--txt2)}
.au-included{background:rgba(45,212,191,.16);color:#0E9E94}
.aus-included .aus-dot{background:#14B8A6}
.aurow-amt.aurow-free{color:var(--muted);font-weight:600}
.aurow-amt.aurow-free s{text-decoration-thickness:1.5px}
/* Recent AI usage column → clickable to the full history popup */
.acct-col-usage.is-clickable{cursor:pointer;border-radius:12px;margin:-6px;padding:6px;transition:background .15s}
.acct-col-usage.is-clickable:hover{background:rgba(var(--accent-rgb),.05)}
.acct-col-usage.is-clickable:focus-visible{outline:2px solid rgba(var(--accent-rgb),.5);outline-offset:2px}
.acct-viewall{display:inline-flex;align-items:center;gap:2px;margin-left:7px;color:var(--accent-dark);font-weight:600}
.acct-col-usage.is-clickable:hover .acct-viewall svg{transform:translateX(2px);transition:transform .15s}
/* Full AI-usage history popup */
.usem-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:720px;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shL),var(--cardGlow);overflow:hidden;animation:fadeUp .25s cubic-bezier(.22,1,.36,1)}
.usem-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,var(--bg));flex-shrink:0}
.usem-head-l{display:flex;align-items:center;gap:11px;min-width:0}
.usem-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(var(--accent-rgb),.14);color:var(--accent-dark);flex-shrink:0}
.usem-title{font-weight:700;font-size:calc(16px*var(--fs));color:var(--txt);letter-spacing:-.2px}
.usem-sub{font-size:calc(12.5px*var(--fs));color:var(--muted);margin-top:1px;font-variant-numeric:tabular-nums}
.usem-acts{display:flex;align-items:center;gap:7px;flex-shrink:0}
.usem-x{padding:7px 9px}
.usem-tools{padding:13px 18px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:11px;flex-shrink:0}
.usem-filters{display:flex;gap:8px;flex-wrap:wrap}
.usem-filters select,.usem-filters input{padding:7px 11px;font-size:calc(13px*var(--fs));border-radius:9px;border:1px solid var(--border);background:var(--surface2);color:var(--txt)}
.usem-filters input{flex:1;min-width:150px}
.usem-split{display:flex;flex-wrap:wrap;gap:8px 14px}
.usem-body{flex:1;min-height:0;overflow-y:auto;padding:6px 18px 18px}
.usem-body .aurow{padding:11px 2px}
/* changelog popup (topbar version → what's new) */
.clog-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:600px;max-height:84vh;display:flex;flex-direction:column;box-shadow:var(--shL),var(--cardGlow);overflow:hidden;animation:fadeUp .25s cubic-bezier(.22,1,.36,1)}
.clog-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,var(--bg));flex-shrink:0}
.clog-head-l{display:flex;align-items:center;gap:11px;min-width:0}
.clog-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(var(--accent-rgb),.14);color:var(--accent-dark);flex-shrink:0}
.clog-title{font-weight:700;font-size:calc(16px*var(--fs));color:var(--txt);letter-spacing:-.2px}
.clog-sub{font-size:calc(12.5px*var(--fs));color:var(--muted);margin-top:1px}
.clog-x{padding:7px 9px;flex-shrink:0}
.clog-body{flex:1;min-height:0;overflow-y:auto;padding:8px 18px 20px}
.clog-rel{padding:14px 0;border-bottom:1px solid var(--border)}
.clog-rel:last-child{border-bottom:0}
.clog-relhd{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.clog-ver{font-weight:700;font-size:calc(15px*var(--fs));color:var(--txt);font-variant-numeric:tabular-nums}
.clog-now{font-size:calc(10px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:1px 8px;border-radius:999px;background:rgba(34,197,94,.16);color:#16a34a}
.clog-date{margin-left:auto;font-size:calc(12px*var(--fs));color:var(--muted);font-variant-numeric:tabular-nums}
.clog-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.clog-item{display:flex;gap:10px;align-items:flex-start;font-size:calc(13.5px*var(--fs));color:var(--txt2);line-height:1.5}
.clog-tag{flex:none;font-size:calc(10px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:999px;margin-top:1px;min-width:54px;text-align:center}
.clog-tag.added{background:rgba(34,197,94,.14);color:#16a34a}
.clog-tag.fixed{background:rgba(var(--accent-rgb),.14);color:var(--accent-dark)}
.clog-tag.changed{background:rgba(245,158,11,.14);color:#d97706}
.clog-tag.removed{background:rgba(148,163,184,.18);color:var(--muted)}
.clog-itxt{flex:1;min-width:0}
:root[data-theme="light"] .module-cta{color:var(--mod);color:color-mix(in srgb,var(--mod),#000 22%)}
.module-cta svg{width:14px;height:14px;transition:transform .2s}
.module-card:hover .module-cta svg{transform:translateX(4px)}
/* per-module hue applied to a view (--mod set inline by setModuleHue on #app-shell) */
.view[data-module] .mod-header-ic,.view[data-module] .stat-ic{color:var(--mod)}
.view[data-module] .stat-ic{background:rgba(var(--mod-rgb),.13)}
/* module header block */
.mod-header{display:flex;align-items:center;gap:15px;margin-bottom:22px}
.mod-header-ic{width:46px;height:46px;border-radius:13px;flex-shrink:0;background:rgba(var(--mod-rgb),.14);display:flex;align-items:center;justify-content:center;color:var(--mod);box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.22)}
.mod-header-ic svg{width:24px;height:24px}
/* Premium-tier pill on the VectorProcurement module header (Phase 9c) — a metallic
   gold treatment that carries the premium identity into the module dashboard. */
.mod-prem-pill{display:inline-block;vertical-align:middle;margin-left:11px;font-size:calc(11px * var(--fs));font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#5c4708;padding:3px 11px;border-radius:999px;background:linear-gradient(135deg,#f5e6a8 0%,#d9b94e 38%,#c9a227 62%,#e9d27e 100%);box-shadow:inset 0 1px 0 rgba(255,255,255,.55),0 1px 3px rgba(201,162,39,.45);border:1px solid rgba(140,108,20,.35)}
:root[data-theme="dark"] .mod-prem-pill{color:#2a2003}
/* tender/crm dashboard lists + bars */
.tdash-dl{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--borderS);cursor:pointer;border-radius:8px}
.tdash-dl:last-child{border-bottom:none}.tdash-dl:hover{background:var(--surface2)}
.tdash-dl-t{font-size:calc(14px * var(--fs));font-weight:500;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tdash-dl-m{font-size:calc(12.5px * var(--fs));color:var(--muted)}
.tdash-bar{display:flex;align-items:center;gap:12px;padding:7px 0}
.tdash-bar-l{width:90px;font-size:calc(13px * var(--fs));color:var(--txt2);flex-shrink:0}
.tdash-bar-track{flex:1;height:9px;background:var(--surface2);border-radius:6px;overflow:hidden}
.tdash-bar-fill{height:100%;background:linear-gradient(90deg,rgba(var(--mod-rgb),.55),var(--mod));border-radius:6px}
.tdash-bar-n{width:24px;text-align:right;font-weight:700;font-size:calc(13px * var(--fs));color:var(--txt2);font-variant-numeric:tabular-nums}
/* coming-soon landing */
.soon-card{max-width:560px;margin:8vh auto 0;text-align:center;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:40px 32px;box-shadow:var(--sh),var(--cardGlow)}
.soon-ic{width:64px;height:64px;border-radius:18px;margin:0 auto 18px;background:rgba(var(--mod-rgb),.14);color:var(--mod);display:flex;align-items:center;justify-content:center;box-shadow:inset 0 0 0 1px rgba(var(--mod-rgb),.25)}
.soon-ic svg{width:32px;height:32px}
.soon-desc{font-size:calc(16px * var(--fs));color:var(--txt2);margin:6px 0 14px}
.soon-note{font-size:calc(14px * var(--fs));color:var(--muted);line-height:1.6;margin-bottom:22px}
/* topbar breadcrumb */
.crumbs{display:flex;align-items:center;gap:5px;flex-wrap:wrap;min-width:0}
.crumb{font:inherit;font-size:calc(15px * var(--fs));font-weight:600;color:var(--muted);background:none;border:none;cursor:pointer;padding:3px 6px;border-radius:7px;white-space:nowrap}
.crumb:hover{color:var(--txt);background:var(--surface2)}
.crumb.cur{color:var(--txt);font-weight:700;cursor:default}.crumb.cur:hover{background:none}
.crumb-home{color:var(--accent-dark)}
.crumb-sep{color:var(--muted);opacity:.6;flex-shrink:0}
.crumb:focus-visible,.sb-back:focus-visible,.sb-mod-name:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
/* Sidebar: logo + module switcher header */
.sb-logo{cursor:pointer;transition:opacity .15s}.sb-logo:hover{opacity:.85}
.sb-mod-hd2{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:8px 16px 12px;margin-bottom:6px;border-bottom:1px solid var(--borderS)}
.sb-back{display:inline-flex;align-items:center;gap:4px;font:inherit;font-size:calc(11.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#9AA9C0;background:none;border:none;cursor:pointer;padding:3px 6px;border-radius:7px;margin-left:-6px}
.sb-back:hover{color:#fff;background:rgba(255,255,255,.06)}
.sb-back svg{width:13px;height:13px}
.sb-mod-name{display:inline-flex;align-items:center;gap:9px;font:inherit;font-size:calc(16px * var(--fs));font-weight:700;color:#F2F5FA;background:none;border:none;padding:4px 7px;margin-left:-7px;text-align:left;cursor:pointer;border-radius:8px;transition:background .15s}
.sb-mod-name:hover{background:rgba(255,255,255,.06)}
.sb-mod-name svg{width:18px;height:18px;color:var(--mod);flex-shrink:0}
.sb-mod-home svg{color:var(--accent)}
/* active nav uses the module hue */
.view[data-module] ~ *{}
#sb-modnav .nav-item.active{background:rgba(var(--mod-rgb),.2);color:#fff}
#sb-modnav .nav-item.active::before{background:var(--mod);box-shadow:0 0 8px rgba(var(--mod-rgb),.6)}
/* ── COURSE MATRIX VIEWER ── */
.mx-courses{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}
.mx-pill{font:inherit;font-size:calc(13.5px * var(--fs));font-weight:600;color:var(--txt2);background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:8px 13px;cursor:pointer;transition:all .15s;display:flex;align-items:center;gap:8px;white-space:nowrap}
.mx-pill:hover{border-color:var(--inpBorder);color:var(--txt)}
.mx-pill.is-on{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.5);color:var(--accent-dark)}
.mx-pill .mx-pill-code{font-variant-numeric:tabular-nums;font-weight:700;letter-spacing:.2px}
.mx-pill .mx-pill-n{font-size:calc(11.5px * var(--fs));font-weight:600;color:var(--muted);background:rgba(255,255,255,.06);padding:1px 7px;border-radius:20px}
.mx-pill.is-on .mx-pill-n{background:rgba(var(--accent-rgb),.18);color:var(--accent-dark)}
[data-theme="light"] .mx-pill .mx-pill-n{background:rgba(0,0,0,.06)}
.mx-pill:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mx-summary{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:18px}
.mx-stat{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px 16px;box-shadow:var(--sh),var(--cardGlow);min-width:96px}
.mx-stat-lbl{font-size:calc(10.5px * var(--fs));font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.6px;margin-bottom:5px}
.mx-stat-val{font-family:var(--font-display);font-size:calc(23px * var(--fs));color:var(--txt);line-height:1;letter-spacing:-.3px}
.mx-stat-val small{font-family:var(--font-body);font-size:calc(12.5px * var(--fs));color:var(--muted);font-weight:500}
.mx-levelbars{display:flex;gap:3px;margin-top:7px}
.mx-levelbar{height:6px;border-radius:3px;flex:1;min-width:6px}
.mx-filters{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;padding:12px 14px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:var(--sh),var(--cardGlow)}
.mx-search{position:relative;flex:1;min-width:200px}
.mx-search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);width:15px;height:15px;color:var(--muted);pointer-events:none}
.mx-search input{padding-left:33px;width:100%}
.mx-filters select{width:auto;min-width:120px;flex-shrink:0}
.mx-count{font-size:calc(13px * var(--fs));color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap}
.mx-acc-tools{display:flex;gap:6px;margin-left:auto}
@media(max-width:760px){.mx-acc-tools{margin-left:0;width:100%}.mx-filters select,.mx-search{width:100%;flex:1 1 100%}}
/* subject = collapsible; topic = labelled group; objective = row */
.mx-subject{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:12px;box-shadow:var(--sh),var(--cardGlow);overflow:hidden;transition:border-color .2s}
.mx-subject.open{border-color:rgba(var(--accent-rgb),.28)}
.mx-subj-head{display:flex;align-items:center;gap:13px;padding:14px 18px;cursor:pointer;user-select:none}
.mx-subj-head:hover{background:var(--surface2)}
.mx-subj-head:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
.mx-chev{transition:transform .28s cubic-bezier(.4,0,.2,1);color:var(--muted);flex-shrink:0}
.mx-subject.open .mx-chev{transform:rotate(90deg);color:var(--accent-dark)}
.mx-subj-no{width:26px;height:26px;border-radius:8px;background:rgba(var(--accent-rgb),.13);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;font-size:calc(12.5px * var(--fs));font-weight:700;flex-shrink:0;font-variant-numeric:tabular-nums}
.mx-subj-title{font-size:calc(15.5px * var(--fs));font-weight:600;color:var(--txt);letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mx-subj-n{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);background:rgba(255,255,255,.06);padding:2px 9px;border-radius:20px;flex-shrink:0}
[data-theme="light"] .mx-subj-n{background:rgba(0,0,0,.05)}
.mx-subj-panel{display:none;padding:2px 18px 14px}
.mx-subject.open .mx-subj-panel{display:block}
.mx-topic{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.7px;margin:14px 0 6px;display:flex;align-items:center;gap:9px}
.mx-topic::after{content:'';flex:1;height:1px;background:var(--border)}
.mx-obj{display:grid;grid-template-columns:96px 30px 1fr;gap:12px;padding:9px 4px;border-bottom:1px solid var(--borderS);align-items:start;position:relative}
.mx-obj:last-child{border-bottom:none}
.mx-obj-ref{font-family:'Geist Mono',monospace;font-size:calc(12px * var(--fs));color:var(--txt2);font-weight:500;padding-top:2px;white-space:nowrap}
.mx-lvl{width:26px;height:22px;border-radius:6px;display:flex;align-items:center;justify-content:center;font-size:calc(11.5px * var(--fs));font-weight:700;flex-shrink:0}
.mx-lvl1{background:rgba(120,135,160,.18);color:#9AA8BD}
.mx-lvl2{background:rgba(86,199,249,.16);color:#56C7F9}
.mx-lvl3{background:rgba(var(--accent-rgb),.18);color:var(--accent-dark)}
.mx-lvl4{background:rgba(245,181,68,.18);color:#F5B544}
.mx-lvl5{background:rgba(251,113,133,.18);color:#FB7185}
[data-theme="light"] .mx-lvl1{color:#5C697D}[data-theme="light"] .mx-lvl2{color:#0a87c2}
.mx-obj-main{min-width:0}
.mx-obj-text{font-size:calc(14.5px * var(--fs));color:var(--txt);line-height:1.45}
.mx-obj-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.mx-tag{font-size:calc(11px * var(--fs));font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface2);color:var(--muted);border:1px solid var(--borderS);white-space:nowrap}
.mx-tag.tp-prac{background:rgba(var(--accent-rgb),.1);color:var(--accent-dark);border-color:transparent}
.mx-tag.tp-theory{background:rgba(86,199,249,.12);color:#56C7F9;border-color:transparent}
[data-theme="light"] .mx-tag.tp-theory{color:#0a87c2}
.mx-tag.mx-tag-sub{font-weight:500;color:var(--txt2)}
.mx-empty{text-align:center;padding:48px 20px;color:var(--muted);font-size:calc(15px * var(--fs))}
@media(max-width:620px){.mx-obj{grid-template-columns:1fr;gap:5px}.mx-obj-ref{padding-top:0}.mx-lvl{position:absolute;right:0}}
/* ── TENDERS ── */
.td-urgency{font-size:calc(11.5px * var(--fs));font-weight:700;padding:2px 8px;border-radius:999px;white-space:nowrap}
.td-urgency.u-red{background:var(--errSub);color:var(--err)}
.td-urgency.u-amber{background:var(--warnSub);color:var(--warn)}
.td-urgency.u-grey{background:rgba(255,255,255,.06);color:var(--txt2)}
[data-theme="light"] .td-urgency.u-grey{background:rgba(0,0,0,.06)}
.td-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.td-chip{font-size:calc(12.5px * var(--fs));color:var(--txt2);background:var(--surface2);border:1px solid var(--borderS);border-radius:8px;padding:4px 10px}
.td-chip-warn{color:#d97706;background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.4)}
.td-eval-scale{margin-top:18px}
/* compliance matrix (Phase 8c) */
.td-mand{display:inline-block;font-size:calc(9.5px * var(--fs));font-weight:700;letter-spacing:.5px;color:var(--err);background:rgba(239,68,68,.12);border:1px solid rgba(239,68,68,.4);border-radius:5px;padding:1px 5px;vertical-align:middle}
.td-matrix select{font-size:calc(12.5px * var(--fs));width:auto;min-width:74px}
.td-matrix .td-cs-F{color:#16a34a;font-weight:600}
.td-matrix .td-cs-P{color:#d97706;font-weight:600}
.td-matrix .td-cs-N{color:var(--err);font-weight:600}
/* matrix unmet-mandatory disposition (accept & manage the gap) */
.td-matrix tr.td-matrix-block td{box-shadow:inset 3px 0 0 var(--err)}
.td-matrix tr.td-matrix-disprow td{padding-top:0;border-top:0}
.td-matrix-disp{display:flex;align-items:center;gap:10px;flex-wrap:wrap;font-size:calc(13px * var(--fs));line-height:1.5;padding:9px 12px;border-radius:8px;margin:2px 0 6px}
.td-matrix-disp.warn{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.35)}
.td-matrix-disp.accepted{background:rgba(34,197,94,.08);border:1px solid rgba(34,197,94,.28)}
.td-matrix-disp .td-flag-mit{flex-basis:100%}
.td-matrix-disp svg{color:#d97706;flex:none}
/* scored bid/no-bid (Phase 8d) */
.td-bid-tbl select{width:auto;min-width:64px}
.td-bid-rec{margin-top:14px;padding:11px 14px;border-radius:10px;font-size:calc(14px * var(--fs));border:1px solid var(--border);background:var(--surface2)}
.td-bid-bid{border-color:rgba(34,197,94,.4);background:rgba(34,197,94,.10)}
.td-bid-no_bid{border-color:rgba(239,68,68,.4);background:rgba(239,68,68,.10)}
/* Colour Review gate (Phase 8e): Pink coverage / Red scoring / Gold sign-off */
.td-pink{display:flex;flex-direction:column;gap:2px}
.td-pink-row{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--borderS);font-size:calc(14px * var(--fs))}
.td-pink-row:last-child{border-bottom:none}
.td-pink-ic{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(12px * var(--fs));font-weight:700;flex-shrink:0;color:#fff}
.td-pink-ic.ok{background:#16a34a}.td-pink-ic.warn{background:#d97706}.td-pink-ic.bad{background:var(--err)}
.td-red-sec{border:1px solid var(--border);border-radius:11px;padding:14px 16px;margin-bottom:12px;background:var(--surface2)}
.td-red-hd{display:flex;align-items:center;justify-content:space-between;gap:10px}
.td-red-hd b{font-size:calc(14.5px * var(--fs))}
.td-red-score{font-size:calc(13px * var(--fs));font-weight:700;padding:3px 10px;border-radius:999px}
.td-red-ok{color:#16a34a;background:rgba(34,197,94,.12)}
.td-red-warn{color:#d97706;background:rgba(245,158,11,.12)}
.td-red-bad{color:var(--err);background:rgba(239,68,68,.12)}
.td-red-col{margin:6px 0}
.td-red-lbl{font-size:calc(12px * var(--fs));font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-bottom:3px}
.td-red-lbl.bad{color:var(--err)}.td-red-lbl.ok{color:#16a34a}
.td-red-col ul{margin:0;padding-left:18px;font-size:calc(13.5px * var(--fs));color:var(--txt2);line-height:1.55}
.td-red-fix{margin-top:9px;padding:9px 12px;border-radius:9px;background:rgba(var(--accent-rgb),.08);border:1px solid rgba(var(--accent-rgb),.22);font-size:calc(13.5px * var(--fs));color:var(--txt2);display:flex;gap:7px;align-items:flex-start}
.td-red-fix svg{flex-shrink:0;margin-top:2px;color:var(--accent-dark)}
/* per-vulnerability disposition (decide on each scoring weakness) */
.td-red-col ul li.td-vuln{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;margin-bottom:5px}
li.td-vuln.addressed .td-vuln-t,li.td-vuln.accepted .td-vuln-t{opacity:.62}
.td-vuln-t{flex:1;min-width:0}
.td-vuln-acts{flex:none;display:flex;gap:6px;white-space:nowrap}
.td-vuln-act{background:none;border:0;cursor:pointer;font:inherit;font-size:calc(11.5px * var(--fs));font-weight:600;color:var(--accent-dark);padding:1px 5px;border-radius:5px}
.td-vuln-act:hover{background:rgba(var(--accent-rgb),.12)}
.td-vuln-badge{font-size:calc(10.5px * var(--fs));font-weight:700;padding:1px 7px;border-radius:999px;text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;margin-left:4px}
.td-vuln-badge.ok{background:rgba(34,197,94,.14);color:#16a34a}
.td-vuln-badge.acc{background:rgba(148,163,184,.16);color:var(--muted)}
.td-gold-banner{border-color:rgba(201,162,39,.5);background:rgba(201,162,39,.10)}
/* Phase 8f: proactive deadline reminder banner on the tender detail header */
.td-deadline-alert{display:flex;gap:9px;align-items:flex-start;margin:12px 0 4px;padding:10px 13px;border-radius:10px;font-size:calc(13.8px * var(--fs));line-height:1.5;font-weight:500}
.td-deadline-alert svg{flex-shrink:0;margin-top:1px}
.td-deadline-alert.red{color:var(--err);background:rgba(239,68,68,.10);border:1px solid rgba(239,68,68,.35)}
.td-deadline-alert.amber{color:#b45309;background:rgba(245,158,11,.10);border:1px solid rgba(245,158,11,.35)}
.td-chip b{color:var(--txt);font-weight:600}
.td-doc-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--borderS)}
.td-doc-row:last-child{border-bottom:none}
.td-doc-ic{width:34px;height:34px;border-radius:9px;background:rgba(var(--accent-rgb),.12);color:var(--accent-dark);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.td-doc-ic svg{width:17px;height:17px}
.td-doc-name{flex:1;min-width:0;font-size:calc(14.5px * var(--fs));font-weight:500;color:var(--txt);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-doc-meta{font-size:calc(12.5px * var(--fs));color:var(--muted);white-space:nowrap}
.td-doc-flag{display:inline-block;margin-left:8px;font-size:calc(10.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#b45309;background:rgba(245,158,11,.13);border:1px solid rgba(245,158,11,.3);border-radius:999px;padding:1px 7px;vertical-align:middle;white-space:nowrap}
.td-progress{display:flex;align-items:center;gap:12px;background:rgba(var(--accent-rgb),.07);border:1px solid rgba(var(--accent-rgb),.25);border-radius:11px;padding:13px 16px;font-size:calc(14.5px * var(--fs));color:var(--txt2)}
.td-spin{width:18px;height:18px;border:2.5px solid rgba(var(--accent-rgb),.25);border-top-color:var(--accent);border-radius:50%;animation:tdspin .8s linear infinite;flex-shrink:0}
@keyframes tdspin{to{transform:rotate(360deg)}}
/* staged job progress list */
.td-plist{display:flex;flex-direction:column;margin-top:14px;border-top:1px solid var(--borderS);padding-top:8px}
.td-pstep{display:flex;align-items:center;gap:11px;padding:7px 2px;font-size:calc(14px * var(--fs));color:var(--muted)}
.td-pstep-ic{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:2px solid var(--border);background:var(--surface2);transition:all .25s}
.td-pstep.done{color:var(--txt2)}
.td-pstep.done .td-pstep-ic{background:var(--ok);border-color:var(--ok);color:#fff}
.td-pstep.done .td-pstep-ic svg{width:11px;height:11px}
.td-pstep.current{color:var(--txt);font-weight:600}
.td-pstep.current .td-pstep-ic{border-color:rgba(var(--accent-rgb),.45);background:transparent}
@media(prefers-reduced-motion:reduce){.td-pstep-ic{transition:none}}
.td-req{display:flex;align-items:flex-start;gap:10px;padding:9px 4px;border-bottom:1px solid var(--borderS)}
.td-req:last-child{border-bottom:none}
.td-req input[type=checkbox]{margin-top:3px;flex-shrink:0}
.td-req-main{flex:1;min-width:0}
.td-req-text{font-size:calc(14.5px * var(--fs));color:var(--txt);line-height:1.45}
.td-req.done .td-req-text{color:var(--muted);text-decoration:line-through}
.td-req-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:5px}
.td-src{display:inline-flex;align-items:center;gap:4px;font-size:calc(11.5px * var(--fs));font-weight:600;padding:2px 8px;border-radius:6px;background:var(--surface2);color:var(--muted);border:1px solid var(--borderS);white-space:nowrap}
.td-src svg{width:11px;height:11px;flex-shrink:0}
.td-req-actions{display:flex;gap:4px;flex-shrink:0;opacity:.5}
.td-req:hover .td-req-actions{opacity:1}
.td-summary{font-size:calc(14.5px * var(--fs));color:var(--txt);line-height:1.7}
.td-summary h2{font-family:var(--font-display);font-size:calc(20px * var(--fs));font-weight:400;color:var(--txt);margin:16px 0 6px}
.td-summary h2:first-child{margin-top:0}
.td-summary ul,.td-summary .td-sum-ul{margin:6px 0 12px 20px}
.td-summary li{margin-bottom:5px}
.td-summary p{margin-bottom:10px}
/* "Should we bid?" brief — scannable section blocks (#1) */
.td-sum-h2{font-family:var(--font-display);font-size:calc(19px * var(--fs));font-weight:600;color:var(--mod);margin:2px 0 14px;letter-spacing:-.01em}
.td-sum-block{margin:0 0 14px;padding-left:13px;border-left:2.5px solid rgba(var(--mod-rgb),.32)}
.td-sum-lbl{font-weight:700;color:var(--mod);font-size:calc(12px * var(--fs));text-transform:uppercase;letter-spacing:.05em;margin-bottom:3px}
.td-sum-val{color:var(--txt);line-height:1.6}
.td-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;background:rgba(var(--accent-rgb),.07);border:1px solid rgba(var(--accent-rgb),.3);border-radius:12px;padding:12px 16px;margin-bottom:14px;font-size:calc(14px * var(--fs));color:var(--txt2)}
.td-banner b{color:var(--txt)}
.td-count{font-size:calc(12px * var(--fs));font-weight:600;color:var(--muted);background:rgba(255,255,255,.06);padding:2px 9px;border-radius:20px}
[data-theme="light"] .td-count{background:rgba(0,0,0,.05)}
.td-secs{display:flex;flex-direction:column;gap:16px}
.bil-table td{padding:9px 12px;font-size:calc(14px * var(--fs))}
.bil-table th{padding:8px 12px}
@media(max-width:760px){
#view-tenders .card-hd{flex-wrap:wrap;gap:10px}#view-tenders .card-hd>.flex{width:100%}#view-tenders .card-hd select{min-width:0;flex:1}}
/* tender priority headline + red flags */
/* Post-analysis summary under the tender title/client — full width, with room to breathe. */
.td-headline{font-size:calc(16px * var(--fs));line-height:1.62;color:var(--txt);margin:16px 0 4px;max-width:none}
.td-flag{display:flex;align-items:flex-start;gap:11px;padding:11px 4px;border-bottom:1px solid var(--borderS)}
.td-flag:last-child{border-bottom:none}
.td-flag-ic{width:18px;height:18px;flex-shrink:0;margin-top:2px}
/* bigger, clearly-coloured flag badge per severity (#2) */
.td-flag-icwrap{width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.td-flag-icwrap svg{width:20px;height:20px}
.td-flag.sev-critical .td-flag-icwrap,.td-flag.sev-high .td-flag-icwrap{color:var(--err);background:rgba(239,68,68,.13)}
.td-flag.sev-medium .td-flag-icwrap{color:var(--warn);background:rgba(245,158,11,.15)}
.td-flag.sev-low .td-flag-icwrap{color:var(--muted);background:rgba(148,163,184,.16)}
.td-flag-main{flex:1;min-width:0}
.td-flag-text{font-size:calc(14.5px * var(--fs));color:var(--txt);line-height:1.45}
.td-flag-sev{font-size:calc(11px * var(--fs));font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;flex-shrink:0;text-transform:uppercase;letter-spacing:.4px}
.td-flag-sev.sev-critical{background:var(--errSub);color:var(--err)}
.td-flag-sev.sev-high{background:var(--errSub);color:var(--err)}
.td-flag-sev.sev-medium{background:var(--warnSub);color:var(--warn)}
.td-flag-sev.sev-low{background:rgba(255,255,255,.06);color:var(--txt2)}
[data-theme="light"] .td-flag-sev.sev-low{background:rgba(0,0,0,.06)}
.td-flag-x{opacity:.45;flex-shrink:0}.td-flag-x:hover{opacity:1}
/* Red-flag risk register (disposition: accept / not-applicable) */
.td-flag-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
.td-flag-tags{display:flex;align-items:center;gap:6px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
.td-flag-disp{font-size:calc(11px * var(--fs));font-weight:700;padding:2px 9px;border-radius:999px;white-space:nowrap;text-transform:uppercase;letter-spacing:.4px}
.td-flag-disp.accepted{background:rgba(34,197,94,.14);color:#16a34a}
.td-flag-disp.na{background:rgba(148,163,184,.16);color:var(--muted)}
.td-flag-acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:9px}
.td-flag-extra{margin-top:9px}
.td-flag-mit{width:100%;font-size:calc(13.5px * var(--fs));line-height:1.5;resize:vertical}
.td-flag-owner{font-size:calc(13.5px * var(--fs));max-width:220px}
.td-flag.fstate-accepted{background:rgba(34,197,94,.05);border-radius:9px}
.td-flag.fstate-na{opacity:.6}
.td-flag.fstate-na .td-flag-text{text-decoration:line-through;text-decoration-color:rgba(148,163,184,.7)}
.td-bid-accepted{margin-top:12px;padding:10px 13px;border-radius:10px;font-size:calc(13.5px * var(--fs));line-height:1.5;display:flex;gap:8px;align-items:flex-start;background:rgba(245,158,11,.08);border:1px solid rgba(245,158,11,.3);color:var(--txt2)}
.td-bid-accepted svg{flex-shrink:0;margin-top:2px;color:#b45309}
/* clarification questions */
.td-q-sub{font-size:calc(11.5px * var(--fs));font-weight:700;color:var(--accent-dark);text-transform:uppercase;letter-spacing:.7px;margin-bottom:6px;display:flex;align-items:center;gap:9px}
.td-q{display:flex;align-items:flex-start;gap:10px;padding:9px 4px;border-bottom:1px solid var(--borderS)}
.td-q:last-child{border-bottom:none}
.td-q-sug{background:rgba(var(--accent-rgb),.04);border-radius:8px;padding:9px 10px;border-bottom:none;margin-bottom:6px}
.td-q-num{width:22px;flex-shrink:0;font-variant-numeric:tabular-nums;font-weight:700;color:var(--muted);font-size:calc(13.5px * var(--fs));padding-top:1px}
.td-q-actions{display:flex;gap:2px;flex-shrink:0;opacity:.55}
.td-q:hover .td-q-actions{opacity:1}
.td-q-stack{flex-direction:column;align-items:stretch}
.td-q-top{display:flex;align-items:flex-start;gap:10px}
.td-q-ans{margin:8px 0 2px 32px}
.td-q-ans-hd{margin-bottom:4px}
.td-q-ans-badge{font-size:calc(11px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#d97706}
.td-q-ans-badge.on{color:#16a34a}
.td-q-ans-in{width:100%;font-size:calc(13.5px * var(--fs));line-height:1.5;resize:vertical}
.td-q-ignored{margin-top:12px;font-size:calc(13px * var(--fs));color:var(--muted)}
.td-q-ignored summary{cursor:pointer;padding:6px 0}
.td-q-ign{opacity:.7}
/* Review gate sub-stepper (Flags → Response Checklist → Bid Decision) */
.td-substep{display:flex;align-items:center;gap:0;margin-bottom:16px;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}
.td-sub{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:10px;border:1.5px solid var(--border);background:var(--surface);color:var(--muted);font-weight:600;font-size:calc(13.5px * var(--fs));cursor:pointer;white-space:nowrap;transition:background .15s,border-color .15s,color .15s}
.td-sub:hover{border-color:rgba(var(--accent-rgb),.4);color:var(--txt)}
.td-sub.current{background:rgba(var(--accent-rgb),.12);border-color:rgba(var(--accent-rgb),.55);color:var(--accent-dark)}
.td-sub.done{color:var(--accent-dark)}
.td-sub-n{width:21px;height:21px;border-radius:50%;display:grid;place-items:center;font-size:calc(11.5px * var(--fs));background:rgba(var(--accent-rgb),.16);color:var(--accent-dark);flex-shrink:0}
.td-sub.current .td-sub-n{background:var(--accent);color:var(--accent-ink)}
.td-sub-n svg{width:12px;height:12px}
.td-sub-ct{font-size:calc(11px * var(--fs));font-weight:700;background:rgba(var(--accent-rgb),.16);color:var(--accent-dark);border-radius:20px;padding:1px 7px}
.td-sub-sep{flex:0 0 16px;height:1.5px;background:var(--border);margin:0 3px}
/* gated timeline stepper */
.td-steps{display:flex;align-items:flex-start;gap:0;margin-top:18px;overflow-x:auto;padding:6px 2px 2px;scrollbar-width:thin}
.td-step{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;min-width:96px;position:relative;background:none;border:none;font:inherit;cursor:default;padding:0;color:var(--muted)}
.td-step.clickable{cursor:pointer}
.td-step-num{width:45px;height:45px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:calc(16px * var(--fs));font-weight:700;background:var(--surface2);border:1.5px solid var(--border);color:var(--txt2);transition:all .18s;z-index:1}
.td-step-num svg{width:20px;height:20px}
.td-step-lbl{font-size:calc(12px * var(--fs));font-weight:600;text-align:center;line-height:1.2;white-space:nowrap}
/* connector: one flat 2px line per gap, centred on the 45px node (top = r-1) */
.td-step::before,.td-step::after{content:"";position:absolute;top:21.5px;height:2px;background:var(--border);z-index:0;transition:background .3s}
.td-step::before{left:0;right:50%}.td-step::after{left:50%;right:0}
.td-step:first-child::before,.td-step:last-child::after{display:none}
.td-step.done .td-step-num{background:var(--ok);border-color:var(--ok);color:#fff}
.td-step.done .td-step-lbl{color:var(--txt)}
/* the progress line fills green through completed steps and up to the active node */
.td-step.done::before,.td-step.done::after,.td-step.current::before{background:var(--ok)}
/* Current step: static highlight only (no breathing pulse — the header
   re-renders on every checkbox/score change and a restarting animation flickers). */
.td-step.current .td-step-num{background:linear-gradient(140deg,var(--accent),var(--accent2));border-color:transparent;color:var(--accent-ink);transform:scale(1.08);box-shadow:0 4px 14px rgba(var(--accent-rgb),.42),0 0 0 4px rgba(var(--accent-rgb),.16)}
.td-step.current .td-step-lbl{color:var(--accent-dark);font-weight:700}
.td-step.locked{opacity:.45}
.td-step.clickable:hover .td-step-num{border-color:var(--accent)}
a.td-chip{text-decoration:none;display:inline-flex;align-items:center;gap:5px}a.td-chip:hover{border-color:rgba(var(--accent-rgb),.6)}
.td-selall{font:inherit;font-size:calc(12px * var(--fs));font-weight:600;color:var(--accent-dark);background:none;border:none;cursor:pointer;padding:2px 6px;border-radius:6px;margin-left:auto}
.td-selall:hover{background:rgba(var(--accent-rgb),.1)}
/* response builder sections */
.td-sec-meta{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap;justify-content:flex-end}
/* "needs your input" call-out panel */
.td-needs{background:var(--warnSub);border:1px solid rgba(251,191,36,.35);border-radius:11px;padding:12px 14px;margin-top:12px}
[data-theme="light"] .td-needs{border-color:rgba(217,119,6,.35)}
.td-needs-hd{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--warn);margin-bottom:4px}
.td-need-row{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid rgba(251,191,36,.18)}
.td-need-row:last-of-type{border-bottom:none}
.td-need-txt{flex:1;min-width:0;font-size:calc(13.5px * var(--fs));color:var(--txt);line-height:1.45}
.td-link{font:inherit;font-size:inherit;font-weight:600;color:var(--accent-dark);background:none;border:none;cursor:pointer;padding:0;text-decoration:underline;text-underline-offset:2px}
.td-link:hover{opacity:.8}
.td-link:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.td-evi{background:var(--surface2);border:1px dashed var(--inpBorder);border-radius:11px;padding:12px 14px;margin-top:14px}
.td-evi-hd{font-size:calc(11.5px * var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--txt2);margin-bottom:6px;display:flex;align-items:center;gap:8px}
.td-sec-purpose{font-size:calc(13.5px * var(--fs));color:var(--muted);line-height:1.55;margin-bottom:12px}
.td-sec-draft{width:100%;min-height:140px;font-family:var(--font-body);line-height:1.55;font-size:calc(14.5px * var(--fs))}
mark.td-inreq{background:var(--warnSub);color:var(--warn);border-radius:4px;padding:0 3px;font-weight:600}
.td-gate-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:18px}
.td-gate-hint{font-size:calc(13px * var(--fs));color:var(--muted)}
/* response-checklist include/exclude + response gate */
.td-req.included{background:rgba(var(--accent-rgb),.06)}
.td-req-inc{font-size:calc(10.5px * var(--fs));font-weight:700;padding:2px 7px;border-radius:6px;background:var(--okSub);color:var(--ok);white-space:nowrap;letter-spacing:.3px}
/* compact stepper on phones: number-only steps, label only on the current one */
@media(max-width:700px){
  .td-step{min-width:46px}
  .td-step .td-step-lbl{display:none}
  .td-step.current .td-step-lbl{display:block}
  .td-step-num{width:38px;height:38px;font-size:calc(14px * var(--fs))}
  .td-step-num svg{width:16px;height:16px}
  .td-step::before,.td-step::after{top:18px}
}
@media(prefers-reduced-motion:reduce){
  .anim{animation:none}
  .modal-card{animation:none}
  .acc-panel{transition:none}
  .le-sec-body{transition:none}
}
/* searchable customer combobox */
.td-combo{position:relative}
.td-combo-list{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--surface);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shL);max-height:240px;overflow-y:auto;padding:5px;display:none}
.td-combo-list.open{display:block}
.td-combo-opt{display:block;width:100%;text-align:left;font:inherit;font-size:calc(14px * var(--fs));color:var(--txt);background:none;border:none;padding:8px 10px;border-radius:7px;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.td-combo-opt:hover,.td-combo-opt.active{background:var(--surface2)}
.td-combo-empty{padding:8px 10px;font-size:calc(13px * var(--fs));color:var(--muted)}
/* modal (quick-add customer etc.) */
.modal-scrim{position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:2000;display:none;align-items:center;justify-content:center;padding:20px}
.modal-scrim.open{display:flex}
.modal-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:22px;max-width:560px;width:100%;box-shadow:var(--shL);max-height:85vh;overflow-y:auto;animation:fadeUp .25s cubic-bezier(.22,1,.36,1)}
/* AI job overlay: blur + dim the page behind to emphasise "don't navigate away" */
.ai-scrim{background:rgba(8,11,18,.62);-webkit-backdrop-filter:blur(5px) saturate(.9);backdrop-filter:blur(5px) saturate(.9)}
.ai-card{max-width:520px}
.confirm-ic{flex-shrink:0;width:36px;height:36px;border-radius:10px;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent)}
.ai-modal-hd{display:flex;align-items:flex-start;gap:14px;margin-bottom:6px}
.ai-modal-hd .td-spin{width:24px;height:24px;border-width:3px;margin-top:2px}
.ai-card .td-plist{border-top:1px solid var(--borderS);margin-top:14px;padding-top:10px}
.ai-modal-foot{display:flex;justify-content:flex-end}

    .fmt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:14px}
    .fmt-group-lbl{grid-column:1/-1;font-size:calc(12px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin:6px 0 -2px}
    .fmt-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:16px 17px;display:flex;flex-direction:column;gap:7px;box-shadow:var(--sh)}
    .fmt-name{font-weight:700;font-size:calc(16px*var(--fs));display:flex;align-items:center;gap:8px}
    .fmt-badge{font-size:calc(10px*var(--fs));font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--muted);background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:2px 8px}
    .fmt-desc{font-size:calc(13px*var(--fs));color:var(--muted);line-height:1.5;flex:1}
    .fmt-meta{font-size:calc(12px*var(--fs));color:var(--txt2);font-variant-numeric:tabular-nums}
    .fmt-acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}
    .le-sec{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:15px 16px;margin-bottom:12px;box-shadow:var(--sh)}
    .le-sec-h{display:flex;gap:8px;align-items:center;margin-bottom:9px;cursor:pointer}
    .le-sec-chev{flex-shrink:0;color:var(--muted);transition:transform .22s}
    .le-sec.open>.le-sec-h .le-sec-chev{transform:rotate(90deg)}
    /* grid-template-rows animation = genuinely smooth open AND close (no max-height snap) */
    .le-sec-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows .34s cubic-bezier(.4,0,.2,1)}
    .le-sec-body>.le-sec-inner{min-height:0;overflow:hidden}
    .le-sec:not(.open)>.le-sec-h{margin-bottom:0}
    .le-sec.open>.le-sec-body{grid-template-rows:1fr}
    .le-addsec{margin-top:2px}
    .le-sec-title{flex:1;font-weight:600;font-size:calc(15px*var(--fs))}
    .le-blurb{width:100%;min-height:40px;margin-bottom:10px;font-size:calc(13px*var(--fs))}
    .le-secblurb{width:100%;margin-bottom:10px;font-size:calc(13px*var(--fs));color:var(--txt)}
    .le-lines{display:flex;flex-direction:column;gap:10px;margin-bottom:9px}
    /* Cost line — two tidy rows: description on top, the calc "equation" below. */
    .le-line{display:flex;flex-direction:column;gap:9px;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:11px 12px}
    .le-row-a{display:flex;gap:10px;align-items:center}
    .le-line-lbl{flex:1;min-width:0}
    .le-row-b{display:flex;gap:8px 10px;align-items:flex-end;flex-wrap:wrap}
    .le-type,.le-role{flex:0 1 auto;min-width:0;max-width:170px;align-self:flex-end}
    .le-eq{display:inline-flex;align-items:flex-end;gap:7px;flex-wrap:nowrap;margin-left:auto}
    .le-eq .eqf{display:flex;flex-direction:column;gap:3px}
    .le-eq .eqf>span{font-size:calc(10.5px*var(--fs));color:var(--muted);font-weight:500;white-space:nowrap;letter-spacing:.2px}
    .le-eq .eqf input{width:84px;text-align:right;font-variant-numeric:tabular-nums}
    .le-eq .eqx{align-self:center;color:var(--muted);font-weight:700;font-size:calc(15px*var(--fs));padding-bottom:5px}
    .le-eq .eqtot{align-self:flex-end;font-weight:700;font-variant-numeric:tabular-nums;min-width:82px;text-align:right;color:var(--txt);padding-bottom:6px}
    .le-x{flex:none;align-self:center}
    .qline-tot{font-weight:600;font-variant-numeric:tabular-nums;color:var(--txt2);min-width:62px;text-align:right;align-self:center}
    .fmt-pick{cursor:pointer;text-align:left;font:inherit;color:inherit;width:100%;transition:border-color .15s,transform .15s}
    .fmt-pick:hover{border-color:rgba(var(--accent-rgb),.55);transform:translateY(-2px)}
    @media(max-width:760px){.le-type,.le-role{flex:1 1 46%;min-width:0}.le-eq{margin-left:0;width:100%}.le-eq .eqf{flex:1 1 auto}.le-eq .eqf input{width:100%}}
    .le-sec-foot{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
    .le-catsel{font:inherit;font-size:13px;padding:5px 9px;border-radius:8px;border:1px solid rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.06);color:var(--accent-dark);max-width:340px}
    .le-line.le-cat{background:rgba(var(--accent-rgb),.05);border-radius:9px}
    .le-catbadge{flex-shrink:0;font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--accent-dark);background:rgba(var(--accent-rgb),.15);padding:3px 8px;border-radius:999px}
    .le-catunit{align-self:center;font-size:12px;color:var(--muted)}
    .item-type-badge{display:inline-block;font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px;background:rgba(var(--accent-rgb),.10);color:var(--accent-dark);white-space:nowrap}
    /* Pricing (price book) */
    .px-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-top:14px;padding:14px 16px}
    .px-period{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
    .px-year{font-family:var(--font-display);font-size:calc(22px*var(--fs));font-weight:600;min-width:62px;text-align:center;font-variant-numeric:tabular-nums}
    .px-tools{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
    .px-uplift{display:flex;align-items:center;gap:6px}
    .px-lbl{font-size:12.5px;color:var(--muted);font-weight:500}
    .px-save.px-dirty{box-shadow:0 0 0 3px rgba(var(--accent-rgb),.25)}
    .px-tbl th{font-size:12px}
    .px-tbl td{vertical-align:middle}
    .px-name{font-weight:500}
    .px-tbl .px-unit{width:100%;font-size:13.5px}
    .px-price-wrap{width:150px}.px-price-wrap input{text-align:right;font-variant-numeric:tabular-nums}
    @media(max-width:760px){.px-bar{flex-direction:column;align-items:stretch}.px-tools{justify-content:space-between}}
    /* Proposal builder: format bar + section kind badges + AI overlay */
    .pb-fmtbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:11px 14px;margin-bottom:14px}
    .pb-fmtbar .pbfb-l{display:flex;align-items:center;gap:8px;min-width:0}
    .pb-fmtbar .pbfb-lbl{font-size:11px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:600}
    .pb-fmtbar .pbfb-name{font-weight:600;color:var(--txt)}
    .pb-fmtbar .pbfb-actions{display:flex;gap:8px;flex-shrink:0}
    .pb-kbadge{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;padding:2px 8px;border-radius:999px;white-space:nowrap;margin-right:8px}
    .pbk-ai{background:rgba(var(--accent-rgb),.14);color:var(--accent-dark)}
    .pbk-pricing{background:rgba(16,185,129,.16);color:#0f9b6c}
    .pbk-static{background:var(--chip,#e8ebf1);color:var(--muted)}
    .pb-gen-ov{position:fixed;inset:0;z-index:5000;display:none;align-items:center;justify-content:center;background:rgba(8,12,20,.45);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px)}
    /* On-brand PDF preview popup for the generated proposal */
    .pdfm{position:fixed;inset:0;z-index:4200;display:none;flex-direction:column;background:rgba(8,11,18,.74);-webkit-backdrop-filter:blur(6px) saturate(.9);backdrop-filter:blur(6px) saturate(.9)}
    .pdfm.open{display:flex}
    .pdfm-bar{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:11px 18px;background:color-mix(in srgb,var(--surface) 82%,transparent);border-bottom:1px solid var(--border);flex-shrink:0;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
    .pdfm-title{display:flex;align-items:center;gap:10px;font-weight:700;font-size:calc(15px * var(--fs));color:var(--txt);min-width:0}
    .pdfm-title svg{width:18px;height:18px;color:var(--accent-dark);flex-shrink:0}
    .pdfm-sub{font-weight:500;color:var(--muted);font-size:calc(12.5px * var(--fs));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
    .pdfm-acts{display:flex;align-items:center;gap:8px;flex-shrink:0}
    .pdfm-close{padding:7px 9px}
    .pdfm-scroll{flex:1;min-height:0;overflow:auto;padding:26px 16px 48px}
    .pdfm-scroll .proposal-doc{margin:0 auto;box-shadow:0 24px 70px rgba(0,0,0,.5)}
    .pdfm-prep{display:flex;flex-direction:column;align-items:center;justify-content:center;color:#cdd5e0;padding:70px 20px;font-weight:600}
    .pdfm-scroll .pagedjs_pages{margin:0 auto}
    .pdfm-scroll .pagedjs_page{margin:0 auto 18px!important;background:#fff;box-shadow:0 18px 50px rgba(0,0,0,.5)}
    /* full-width divider lines under the header / above the footer (Paged.js margin rows) */
    .pdfm-paged .pagedjs_margin-top-right .pagedjs_margin-content{text-align:right;justify-content:flex-end}
    /* header/footer divider lines + cover/contact exclusions are emitted by pagedProposalCss (toggleable in Proposal Output settings) */
    @media print{
      body.print-doc #app-shell{display:none!important}
      body.print-doc .pdfm{position:static!important;display:block!important;background:#fff!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}
      body.print-doc .pdfm-bar{display:none!important}
      body.print-doc .pdfm-scroll{display:block!important;overflow:visible!important;padding:0!important}
      body.print-doc .pdfm-scroll .proposal-doc{box-shadow:none!important}
    }
    .pb-gen-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:26px 30px;max-width:380px;text-align:center;box-shadow:0 18px 50px rgba(0,0,0,.3)}
    .pb-gen-msg{font-weight:600;font-size:16px;margin:14px 0 6px;color:var(--txt)}
    .pb-gen-spin{width:34px;height:34px;border-radius:50%;border:3px solid rgba(var(--accent-rgb),.25);border-top-color:var(--accent);margin:0 auto;animation:pbspin .8s linear infinite}
    @keyframes pbspin{to{transform:rotate(360deg)}}
    @media(prefers-reduced-motion:reduce){.pb-gen-spin{animation:none}}
    /* billable-confirm credit balance row */
    .cc-bal{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:14px;padding:12px 15px;border:1px solid var(--border);border-radius:11px;background:rgba(var(--accent-rgb),.06)}
    .cc-bal span{font-size:13px;color:var(--muted);font-weight:500}
    .cc-bal b{font-family:var(--font-display);font-size:19px;color:var(--txt);font-variant-numeric:tabular-nums}
    .cc-bal b.is-low{color:var(--warn)}.cc-bal b.is-empty{color:var(--err)}
    .cc-bal.cc-est{background:transparent;margin-top:12px}.cc-bal.cc-est b{font-size:17px}
    /* Quote intake (start from a brief) */
    .qi-summary{font-size:calc(15px * var(--fs));line-height:1.6;color:var(--txt);background:var(--surface);border:1px solid var(--border);border-radius:11px;padding:13px 15px;margin-bottom:14px;white-space:pre-wrap}
    .qi-cols{display:grid;grid-template-columns:1fr 1fr;gap:16px}
    @media(max-width:760px){.qi-cols{grid-template-columns:1fr}}
    .qi-h{font-size:calc(12.5px * var(--fs));text-transform:uppercase;letter-spacing:.6px;color:var(--muted);font-weight:700;margin-bottom:6px}
    .qi-list{margin:0 0 0 2px;padding:0;list-style:none}
    .qi-list li{position:relative;padding:3px 0 3px 16px;font-size:calc(14.5px * var(--fs));color:var(--txt);line-height:1.45}
    .qi-list li::before{content:"";position:absolute;left:2px;top:11px;width:5px;height:5px;border-radius:50%;background:var(--accent)}
    .qi-chips{display:flex;flex-wrap:wrap;gap:7px}
    .qi-chip{font-size:12.5px;padding:4px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface);color:var(--txt)}
    .qi-chip-pricing{border-color:rgba(16,185,129,.4);color:#0f9b6c;background:rgba(16,185,129,.08)}
    .qi-chip-static{color:var(--muted)}
    .qi-lines{border:1px solid var(--border);border-radius:11px;overflow:hidden}
    .qi-line{display:flex;align-items:baseline;gap:10px;padding:8px 12px;border-bottom:1px solid var(--border);font-size:13.5px}
    .qi-line:last-child{border-bottom:none}
    .qi-line-sec{flex-shrink:0;width:135px;color:var(--muted);font-size:calc(13px * var(--fs));font-weight:600}
    .qi-line-lbl{flex:1;color:var(--txt)}
    .qi-line-type{flex-shrink:0;color:var(--muted);font-size:calc(13px * var(--fs))}
    @media(max-width:620px){.qi-line{flex-wrap:wrap}.qi-line-sec{width:auto}}
    /* AI assessment popup — pinned actions header + scannable body */
    .qim-card{background:var(--surface);border:1px solid var(--border);border-radius:16px;width:100%;max-width:760px;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shL),var(--cardGlow);overflow:hidden;animation:fadeUp .25s cubic-bezier(.22,1,.36,1)}
    .qim-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:15px 18px;border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--surface) 86%,var(--bg));flex-shrink:0;flex-wrap:wrap}
    .qim-head-l{display:flex;align-items:center;gap:11px;min-width:0}
    .qim-ic{display:grid;place-items:center;width:32px;height:32px;border-radius:9px;background:rgba(var(--accent-rgb),.14);color:var(--accent-dark);flex-shrink:0}
    .qim-title{font-weight:700;font-size:calc(16px*var(--fs));color:var(--txt);letter-spacing:-.2px}
    .qim-sub{font-size:calc(12.5px*var(--fs));color:var(--muted);margin-top:1px}
    .qim-acts{display:flex;align-items:center;gap:8px;flex-shrink:0;flex-wrap:wrap}
    .qim-x{padding:7px 9px}
    .qim-body{flex:1;min-height:0;overflow-y:auto;padding:18px 20px 22px}
    .qi-stats{display:flex;flex-wrap:wrap;gap:9px;margin:0 0 16px}
    .qi-stat{display:flex;align-items:baseline;gap:6px;background:var(--surface2);border:1px solid var(--border);border-radius:9px;padding:7px 12px}
    .qi-stat-n{font-weight:700;font-size:calc(16px*var(--fs));color:var(--accent-dark);font-variant-numeric:tabular-nums}
    .qi-stat-l{font-size:calc(12.5px*var(--fs));color:var(--muted)}
    .qi-h-note{font-weight:500;text-transform:none;letter-spacing:0;color:var(--txt2);margin-left:6px}
    .qi-buildup{display:flex;flex-direction:column;gap:2px}
    .qi-bu-sec{display:flex;gap:12px;align-items:baseline;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
    .qi-bu-sec+.qi-bu-sec{margin-top:6px}
    .qi-bu-name{flex-shrink:0;width:150px;font-weight:600;font-size:calc(13.5px*var(--fs));color:var(--txt)}
    .qi-bu-lines{flex:1;font-size:calc(13px*var(--fs));color:var(--muted);line-height:1.5}
    @media(max-width:620px){.qim-head{align-items:flex-start}.qi-bu-sec{flex-direction:column;gap:3px}.qi-bu-name{width:auto}}
    /* Quick-add service chips under the requirements brief */
    .svc-chips{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-top:9px}
    .svc-chips-lbl{font-size:12px;color:var(--muted);margin-right:2px}
    .svc-chip{font:inherit;font-size:12.5px;font-weight:600;cursor:pointer;padding:4px 11px;border-radius:999px;border:1px solid rgba(var(--accent-rgb),.4);background:rgba(var(--accent-rgb),.07);color:var(--accent-dark);transition:background .12s,border-color .12s}
    .svc-chip:hover{background:rgba(var(--accent-rgb),.14);border-color:rgba(var(--accent-rgb),.7)}
    .svc-chip.on{background:var(--accent);border-color:var(--accent);color:#fff}
    .svc-chip:disabled{opacity:.5;cursor:default}

/* AI Learning — knowledge module */
.know-int-q{border:1px solid var(--border);border-radius:12px;padding:13px 14px;margin-bottom:11px;background:var(--surface2)}
.know-int-q .kq-q{font-weight:600;font-size:14.5px;margin-bottom:3px}
.know-int-q .kq-why{font-size:12.5px;color:var(--muted);margin-bottom:9px}
.know-int-q textarea{width:100%;min-height:62px}
.know-meter{display:grid;grid-template-columns:1fr 1fr;gap:10px}
@media(max-width:680px){.know-meter{grid-template-columns:1fr}}
.know-meter-row{display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--border);border-radius:10px;background:var(--surface2)}
.know-tick{width:22px;height:22px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;border:2px solid var(--border);color:#fff;background:transparent}
.know-tick.on{background:#12B886;border-color:#12B886}
.know-meter-lbl{font-weight:600;font-size:14px}
.know-meter-sub{font-size:12px;color:var(--muted)}
.know-doc-list{display:flex;flex-direction:column;gap:8px}
.know-doc{display:flex;gap:12px;align-items:flex-start;padding:10px 12px;border:1px solid var(--border);border-radius:10px}
.know-doc-t{font-weight:600;font-size:14px;display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.know-doc-sum{font-size:13px;color:var(--muted);margin-top:5px;line-height:1.5}
.know-slot+.know-slot{margin-top:14px}
@media(max-width:600px){.know-doc{flex-direction:column}}


/* ── Premium module (VectorProcurement) — metallic gold/platinum sheen ── */
.module-card.is-premium{
  background:linear-gradient(150deg, rgba(var(--mod-rgb),.08), rgba(var(--mod-rgb),.015) 45%, rgba(var(--mod-rgb),.06));
  border-color:rgba(var(--mod-rgb),.34);
  box-shadow:var(--sh),var(--cardGlow),inset 0 1px 0 rgba(255,245,215,.18);
}
.module-card.is-premium:hover{border-color:rgba(var(--mod-rgb),.72)}

/* ── Compliance module (js/compliance.js) ── */
.comp-scaffold{text-align:center;padding:48px 32px;max-width:620px;margin:24px auto}
.comp-scaffold-ic{width:56px;height:56px;margin:0 auto 18px;border-radius:14px;display:grid;place-items:center;background:rgba(var(--mod-rgb),.14);color:var(--mod)}
.comp-scaffold-ic svg{width:28px;height:28px}
.comp-scaffold-h{font-size:calc(20px * var(--fs));font-weight:700;margin:0 0 10px;color:var(--text)}
.comp-scaffold-p{font-size:calc(14px * var(--fs));line-height:1.6;color:var(--muted);margin:0 auto 10px;max-width:480px}
.comp-scaffold-next{font-size:calc(13px * var(--fs));opacity:.85}
.comp-scaffold code{font-family:var(--font-mono,ui-monospace,monospace);font-size:.92em;background:rgba(var(--mod-rgb),.1);color:var(--mod);padding:1px 6px;border-radius:5px}
