/* FSS Commercial Console. Scene: Josh at a laptop between meetings in Riyadh or Dubai, daylight, scanning what
   needs doing next; sometimes a phone in a car. Dense working tool. Light warm-stone ground, ink type, one muted
   slate accent used only for selection and progress; green, amber, red only where state demands it.
   Hierarchy comes from weight and contrast, not size or whitespace.
   Type: Archivo throughout, Archivo Narrow for labels and column heads, tabular figures for every number.
   Scale (px): 11.5 meta · 12 secondary · 12.5 small · 13.5 body and tables · 14 section/strong · 20 page · 17/23 figures. Space: 4 · 6 · 8 · 12 · 16 · 24. Radius 3. */
:root{
  --paper:oklch(0.984 0.004 85);   /* ground */
  --sunk:oklch(0.962 0.006 85);    /* sidebar, quiet panels */
  --deep:oklch(0.934 0.008 85);    /* hover, meter track */
  --ink:oklch(0.21 0.012 70);
  --graphite:oklch(0.41 0.012 70); /* secondary text */
  --faint:oklch(0.565 0.010 70);   /* metadata */
  --rule:oklch(0.905 0.006 80);
  --rule-2:oklch(0.835 0.008 80);
  --blue:oklch(0.45 0.075 245);    /* accent */
  --blue-soft:oklch(0.952 0.016 245);
  --blue-line:oklch(0.74 0.05 245);
  --ok:oklch(0.48 0.085 150); --ok-soft:oklch(0.955 0.022 150);
  --warn:oklch(0.50 0.105 65); --warn-dot:oklch(0.70 0.13 75); --warn-soft:oklch(0.962 0.032 82);
  --stop:oklch(0.51 0.15 28); --stop-soft:oklch(0.962 0.022 28);
  --sans:"Archivo",system-ui,-apple-system,"Segoe UI",sans-serif;
  --narrow:"Archivo Narrow","Arial Narrow",system-ui,sans-serif;
  --sea:oklch(0.915 0.022 228); --land:oklch(0.982 0.005 85); --land-2:oklch(0.955 0.006 85); --coast:oklch(0.80 0.03 228);
  --road-1:oklch(0.88 0.012 75); --road-2:oklch(0.80 0.035 75); --road-3:oklch(0.74 0.06 70);
  --golf:oklch(0.925 0.045 140); --golf-line:oklch(0.83 0.06 140); --golf-text:oklch(0.48 0.07 145);
  --r:3px; --rail:192px; --top:47px;
  color-scheme:light;
}
/* light is the default presentation; dark applies only when the viewer explicitly chooses it */
:root[data-theme="dark"]{
  --sea:oklch(0.235 0.022 240); --land:oklch(0.205 0.008 70); --land-2:oklch(0.225 0.008 70); --coast:oklch(0.36 0.03 240);
  --road-1:oklch(0.30 0.01 75); --road-2:oklch(0.37 0.03 75); --road-3:oklch(0.46 0.05 70);
  --golf:oklch(0.29 0.04 145); --golf-line:oklch(0.36 0.05 145); --golf-text:oklch(0.72 0.08 145);
  --paper:oklch(0.195 0.008 70); --sunk:oklch(0.225 0.008 70); --deep:oklch(0.265 0.010 70);
  --ink:oklch(0.945 0.006 85); --graphite:oklch(0.79 0.010 80); --faint:oklch(0.64 0.010 80);
  --rule:oklch(0.305 0.010 70); --rule-2:oklch(0.40 0.012 70);
  --blue:oklch(0.76 0.085 245); --blue-soft:oklch(0.29 0.035 245); --blue-line:oklch(0.52 0.06 245);
  --ok:oklch(0.76 0.10 150); --ok-soft:oklch(0.28 0.035 150);
  --warn:oklch(0.80 0.11 78); --warn-dot:oklch(0.78 0.12 78); --warn-soft:oklch(0.30 0.045 78);
  --stop:oklch(0.73 0.13 28); --stop-soft:oklch(0.30 0.045 28);
  color-scheme:dark;
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:13.5px;line-height:1.42;margin:0;
  -webkit-font-smoothing:antialiased;font-feature-settings:"tnum" 1}
a{color:inherit}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:2px solid var(--blue);outline-offset:1px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.num{font-variant-numeric:tabular-nums;text-align:right;white-space:nowrap}
.muted{color:var(--graphite)} .faint{color:var(--faint)}
.nowrap{white-space:nowrap}
.id{font-family:var(--narrow);font-weight:500;color:var(--faint);font-size:12px}

/* ---------- frame ---------- */
.app{display:grid;grid-template-columns:var(--rail) minmax(0,1fr);min-height:100%}
.rail{background:var(--sunk);border-right:1px solid var(--rule);position:sticky;top:env(safe-area-inset-top,0px);
  height:100vh;display:flex;flex-direction:column;padding-block:12px 10px;overflow-y:auto}
.brand{padding:0 14px 10px;display:flex;align-items:baseline;gap:7px}
.brand b{font-weight:720;font-size:14px;letter-spacing:.05em}
.brand span{font-family:var(--narrow);font-weight:500;color:var(--faint);font-size:12px}
.navgroup{display:flex;flex-direction:column;padding-block:2px 6px}
.navgroup .grp{font-family:var(--narrow);font-weight:600;font-size:11.5px;color:var(--faint);padding:7px 14px 2px}
.navgroup a{text-decoration:none;padding:4px 14px;display:flex;justify-content:space-between;align-items:baseline;
  color:var(--graphite);font-weight:500}
.navgroup a:hover{background:var(--deep);color:var(--ink)}
/* active item is flush and joins the content sheet, like a tab cut into the rail */
.navgroup a[aria-current="page"]{background:var(--paper);color:var(--ink);font-weight:650;margin-right:-1px;
  box-shadow:inset 0 1px 0 var(--rule),inset 0 -1px 0 var(--rule)}
.navgroup a i{font-style:normal;font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums}
.navgroup a i.over{color:var(--stop);font-weight:600}
.navgroup.sys a{font-size:12.5px}
.railfoot{margin-top:auto;padding:10px 14px 0;font-size:11.5px;color:var(--faint);display:flex;gap:7px;align-items:flex-start;line-height:1.35}
.railfoot .dot{width:6px;height:6px;border-radius:50%;flex:none;margin-top:4px;background:var(--faint)}
.railfoot.live .dot{background:var(--ok)} .railfoot.ro .dot{background:var(--warn-dot)} .railfoot.off .dot{background:var(--stop)}
.main{min-width:0;display:flex;flex-direction:column}
.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--rule);
  display:flex;gap:8px;align-items:center;padding:7px clamp(14px,2vw,24px);min-height:var(--top)}
.search{position:relative;flex:1;min-width:0;max-width:400px}
.search input{width:100%;height:30px;padding:0 10px 0 28px;border:1px solid var(--rule-2);background:var(--paper);border-radius:var(--r);
  background-image:radial-gradient(circle at 12px 13px,transparent 4px,var(--faint) 4.5px,var(--faint) 5.5px,transparent 6px);background-repeat:no-repeat}
.search input::placeholder{color:var(--faint)}
.results{position:absolute;left:0;right:-160px;top:34px;background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--r);
  box-shadow:0 12px 32px -14px color-mix(in oklab,var(--ink) 40%,transparent);max-height:70vh;overflow:auto;z-index:30}
.results a{display:grid;grid-template-columns:84px minmax(0,1fr);gap:10px;padding:6px 12px;text-decoration:none;border-bottom:1px solid var(--rule)}
.results a:hover,.results a.on{background:var(--blue-soft)}
.results a span:first-child{font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px;padding-top:1px}
.results a span:last-child{font-weight:600}
.results small{display:block;color:var(--graphite);font-weight:400}
.topacts{display:flex;gap:6px;flex:none;margin-left:auto}
#view{padding:16px clamp(14px,2vw,24px) 56px;outline:none;min-width:0}

/* ---------- controls ---------- */
.btn{height:28px;padding:0 11px;border:1px solid var(--rule-2);background:var(--paper);cursor:pointer;white-space:nowrap;
  font-weight:550;font-size:12.5px;border-radius:var(--r);color:var(--ink)}
.btn:hover{background:var(--sunk);border-color:var(--faint)}
.btn.primary{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.btn.primary:hover{background:color-mix(in oklab,var(--ink) 85%,var(--paper))}
.btn.ghost{border-color:transparent;background:transparent;color:var(--graphite)}
.btn.ghost:hover{background:var(--deep);color:var(--ink)}
.btn.sm{height:22px;padding:0 7px;font-size:12px}
.btn.link,.lnk{border:0;background:none;padding:0;height:auto;color:var(--blue);cursor:pointer;font-size:12px;font-weight:500;
  text-decoration:underline;text-decoration-color:var(--blue-line);text-underline-offset:2px}
.btn.danger{color:var(--stop)}
.btn[disabled]{opacity:.5;cursor:default}
input[type=text],input[type=search],input[type=date],input[type=number],input[type=time],select,textarea{
  border:1px solid var(--rule-2);background:var(--paper);height:28px;padding:0 7px;min-width:0;border-radius:var(--r)}
textarea{height:auto;padding:5px 7px;resize:vertical;line-height:1.45}
/* inline editors read as text until touched */
.inl,input.inl,select.inl{height:24px;font-size:13.5px;padding:0 5px;border-color:transparent;background:transparent;width:100%;border-radius:var(--r)}
input.inl:hover,select.inl:hover{border-color:var(--rule-2);background:var(--paper)}
input.inl:focus,select.inl:focus,textarea.inl:focus{background:var(--paper);border-color:var(--blue);outline:0}
textarea.inl{height:auto;border-color:var(--rule);background:var(--paper)}
select.inl{width:auto;max-width:100%;padding-right:2px;cursor:pointer}
input.inl[type=date]{width:118px;color:var(--graphite);font-size:12.5px}
input.inl::placeholder{color:var(--faint)}
input.inl.blank:not(:focus):not(:hover){color:var(--rule-2)}
.chips{display:flex;flex-wrap:wrap;gap:2px 2px;align-items:center}
.chips .lab{font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px;margin-right:6px;min-width:52px}
.chips button{height:24px;padding:0 8px;border:1px solid transparent;background:transparent;cursor:pointer;font-size:12.5px;
  color:var(--graphite);border-radius:var(--r)}
.chips button:hover{background:var(--deep);color:var(--ink)}
.chips button[aria-pressed="true"]{background:var(--paper);color:var(--ink);border-color:var(--rule-2);font-weight:600}
.chips button i{font-style:normal;font-size:11.5px;margin-left:4px;color:var(--faint)}
.filterbar{display:flex;flex-direction:column;gap:3px;margin:0 0 12px;padding:6px 0;border-block:1px solid var(--rule)}
.filterbar .row{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:center}

/* ---------- page header ---------- */
.vh{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:6px 20px;margin-bottom:14px}
.vh h1{margin:0;font-size:20px;line-height:1.15;letter-spacing:-.012em;font-weight:680;text-wrap:balance}
.vh p{margin:2px 0 0;color:var(--graphite);max-width:100ch}
.vh .acts{display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.crumb{font-family:var(--narrow);font-weight:500;color:var(--faint);margin-bottom:2px;display:flex;gap:6px;flex-wrap:wrap;font-size:12.5px}
.crumb a{text-decoration:none;color:var(--graphite)} .crumb a:hover{color:var(--blue)}
.hmeta{display:flex;flex-wrap:wrap;gap:3px 14px;align-items:center;margin-top:4px;color:var(--graphite);font-size:12.5px}
.lead{font-size:14px;line-height:1.55;max-width:96ch;margin:0 0 14px;color:var(--ink)}

/* ---------- sections ---------- */
.sec{min-width:0;margin-bottom:20px}
.sec>h2,.h2{font-size:14px;font-weight:650;margin:0 0 6px;display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.sec>h2 small,.h2 small{font-weight:400;color:var(--faint);font-size:12px;text-align:right}
.sec h3{font-family:var(--narrow);font-weight:600;font-size:12.5px;margin:12px 0 3px;color:var(--graphite)}
.sec.recede>h2{color:var(--graphite);font-weight:600;font-size:13.5px}
.cols{display:grid;gap:4px 28px;align-items:start}
.home{grid-template-columns:minmax(0,1.7fr) minmax(270px,1fr)}
.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.c21{grid-template-columns:minmax(0,1.75fr) minmax(270px,1fr)}
.wk{grid-template-columns:minmax(0,2.35fr) minmax(260px,1fr)}
@media (max-width:1100px){.c21,.home,.wk{grid-template-columns:minmax(0,1fr)}}
@media (max-width:860px){.c2,.c3{grid-template-columns:minmax(0,1fr)}}
.empty{color:var(--faint);padding:8px 0;font-size:12.5px}
.note{color:var(--faint);font-size:12px;margin:5px 0 0;line-height:1.45}
.prose{max-width:96ch;white-space:pre-line;line-height:1.55}
/* notices: full hairline border and wash, never a side stripe */
.warnline,.stopline,.okline,.infoline{padding:7px 11px;margin:0 0 12px;font-size:12.5px;border:1px solid;border-radius:var(--r)}
.warnline{background:var(--warn-soft);border-color:color-mix(in oklab,var(--warn) 30%,transparent);color:var(--ink)}
.stopline{background:var(--stop-soft);border-color:color-mix(in oklab,var(--stop) 28%,transparent);color:var(--ink)}
.okline{background:var(--ok-soft);border-color:color-mix(in oklab,var(--ok) 28%,transparent)}
.infoline{background:var(--sunk);border-color:var(--rule);color:var(--graphite)}
.privacy{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;padding:7px 11px;border:1px solid var(--rule-2);border-radius:var(--r);
  margin:0 0 14px;background:var(--sunk);font-size:12.5px;color:var(--graphite)}
.privacy b{color:var(--ink);font-weight:650}

/* ---------- figure ledger: one row, deliberately unequal ---------- */
.ledger{display:flex;flex-wrap:wrap;align-items:stretch;margin:0 0 16px;border-block:1px solid var(--rule)}
.ledger>div{padding:7px 18px 8px 0;margin-right:18px;border-right:1px solid var(--rule);min-width:0}
.ledger>div:last-child{border-right:0;margin-right:0}
.ledger span{display:block;font-size:12px;color:var(--graphite);font-weight:500}
.ledger b{display:block;font-size:17px;font-weight:620;line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.01em;margin-top:1px}
.ledger small{display:block;color:var(--faint);font-size:11.5px}
.ledger .key b{font-size:23px;font-weight:660}
.ledger .key span{color:var(--ink);font-weight:620}
.ledger .zero b,.ledger .zero span{color:var(--faint);font-weight:500}
.ledger .minor b{font-size:14px;font-weight:550;color:var(--graphite)}
.ledger .minor span{color:var(--faint)}
.pending{color:var(--faint);font-style:italic;font-weight:400}
.ledger .pending{font-style:normal;font-weight:500}
/* vertical summary list */
.mini{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 14px;margin:0}
.mini dt{color:var(--graphite)} .mini dd{margin:0;text-align:right;font-variant-numeric:tabular-nums;font-weight:560}
.mini dt.key{font-weight:650;color:var(--ink)} .mini dd.key{font-weight:680;color:var(--ink);font-size:15px}
.mini dd.zero{color:var(--faint);font-weight:400}
.mini .sep{grid-column:1/-1;border-top:1px solid var(--rule);margin:2px 0}

/* composition bar */
.comp{margin:-8px 0 16px}
.comp .bar{display:flex;height:6px;border-radius:1px;overflow:hidden;background:var(--deep)}
.comp .bar i{display:block;height:100%}
.comp .bar .q{background:var(--blue)} .comp .bar .e{background:var(--blue-line)}
.comp .bar .h{background:repeating-linear-gradient(135deg,var(--rule-2) 0 3px,var(--deep) 3px 6px)}
.comp .key{display:flex;flex-wrap:wrap;gap:3px 16px;margin-top:5px;font-size:12px;color:var(--graphite)}
.comp .key span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:1px;margin-right:5px;vertical-align:0}
.comp .key .q::before{background:var(--blue)} .comp .key .e::before{background:var(--blue-line)}
.comp .key .h::before{background:repeating-linear-gradient(135deg,var(--rule-2) 0 2px,var(--deep) 2px 4px)}
.comp .key b{font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- tables ---------- */
.tw{overflow-x:auto;min-width:0}
table.t{width:100%;border-collapse:collapse;font-size:13.5px}
.t th{font-family:var(--narrow);font-weight:600;font-size:12px;color:var(--faint);text-align:left;padding:5px 10px 5px 0;
  border-bottom:1px solid var(--rule-2);background:var(--paper);white-space:nowrap}
/* headers stick to the page only where the wrapper does not need its own horizontal scroll */
@media (min-width:1280px){.tw{overflow-x:visible} .t th{position:sticky;top:var(--top);z-index:1}}
.t td{padding:7px 10px 7px 0;border-bottom:1px solid var(--rule);vertical-align:top}
.t th:first-child,.t td:first-child{padding-left:2px}
.t tbody tr:hover td{background:color-mix(in oklab,var(--sunk) 75%,transparent)}
.t th.num,.t td.num{text-align:right}
.t td.tight{width:1%;white-space:nowrap}
.t td.tight .lnk{color:var(--faint);text-decoration-color:var(--rule-2)}
.t tr:hover td.tight .lnk,.t td.tight .lnk:focus-visible{color:var(--blue);text-decoration-color:var(--blue-line)}
.t a.go{text-decoration:none;font-weight:620;color:var(--ink)}
.t a.go:hover{color:var(--blue);text-decoration:underline;text-decoration-color:var(--blue-line);text-underline-offset:2px}
.t .sub{display:block;color:var(--faint);font-size:12px;font-weight:400;margin-top:1px}
.t .sub a{color:var(--graphite)}
.t .sub.warnsub{color:var(--stop)}
.t tr.group td{background:var(--sunk);padding-top:5px;padding-bottom:5px;border-bottom-color:var(--rule-2)}
.t tr.group td:first-child{padding-left:7px}
.t tr.sel td{background:var(--blue-soft)}
.t tr.unver td{color:var(--graphite)}
.t tr.unver td a.go{font-weight:500;color:var(--graphite)}
.t tr.unver td.num{color:var(--faint)}
.t tr.muted-row td{color:var(--faint)} .t tr.muted-row td a.go{color:var(--graphite);font-weight:500}
.t.compact td{padding-top:5px;padding-bottom:5px}
.t.flat th{position:static}
.t tfoot td{font-weight:600;border-top:1px solid var(--rule-2);border-bottom:0}
.t td.pmc{width:14px;padding-right:4px}
@media (max-width:760px){.m-hide{display:none}}

/* ---------- state marks ---------- */
.tag{display:inline-block;font-family:var(--narrow);font-weight:600;font-size:12px;line-height:1;padding:3px 6px;border-radius:var(--r);
  border:1px solid var(--rule-2);color:var(--graphite);white-space:nowrap;vertical-align:1px;margin:0 4px 0 0;background:var(--paper)}
.tag.ink{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.tag.info{color:var(--blue);border-color:var(--blue-line);background:var(--blue-soft)}
.tag.ok{color:var(--ok);border-color:color-mix(in oklab,var(--ok) 40%,transparent);background:var(--ok-soft)}
.tag.warn{color:var(--warn);border-color:color-mix(in oklab,var(--warn) 35%,transparent);background:var(--warn-soft)}
.tag.stop{color:var(--stop);border-color:color-mix(in oklab,var(--stop) 35%,transparent);background:var(--stop-soft)}
/* flags: text with a severity dot, no capsule */
.flag{display:inline-flex;align-items:baseline;gap:5px;font-size:12px;color:var(--graphite);white-space:nowrap;margin-right:10px}
.flag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--faint);flex:none;transform:translateY(-1px)}
.flag.stop{color:var(--stop)} .flag.stop::before{background:var(--stop)}
.flag.warn{color:var(--warn)} .flag.warn::before{background:var(--warn-dot)}
.flag.info{color:var(--faint)} .flag.info::before{background:transparent;box-shadow:inset 0 0 0 1px var(--faint)}
.flags{display:flex;flex-wrap:wrap;gap:1px 0}
.t .flags{max-width:240px;min-width:150px} .t .flag{white-space:normal}
.warnline .flag,.stopline .flag,.focus .flag{white-space:normal}
/* due dates: overdue obvious, today actionable, future recedes */
.due{font-size:12.5px;white-space:nowrap;color:var(--graphite);font-variant-numeric:tabular-nums}
.due.over{color:var(--stop);font-weight:620}
.due.today{color:var(--warn);font-weight:620}
.due.none{color:var(--stop);font-weight:500}
/* operating status: a square and a word */
.op{display:inline-flex;align-items:baseline;gap:6px;font-size:12.5px;color:var(--graphite);white-space:nowrap}
.op::before{content:"";width:7px;height:7px;flex:none;background:var(--rule-2);transform:translateY(-1px)}
.op.a{color:var(--ink);font-weight:600} .op.a::before{background:var(--ink)}
.op.s::before{background:var(--blue)} .op.n::before{background:var(--faint)} .op.w::before{background:transparent;box-shadow:inset 0 0 0 1px var(--faint)}
/* priority marker for active rows */
.pm{display:inline-block;width:7px;height:7px;border-radius:50%;margin-top:5px}
.pm.p0{background:var(--stop)} .pm.p1{background:var(--blue)} .pm.p2{box-shadow:inset 0 0 0 1px var(--rule-2)}
/* stage meter: neutral to accent as it progresses, green when won, muted when lost */
.stage{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;font-size:12.5px;color:var(--graphite)}
.stage .bars,.stagecell .bars{display:inline-flex;gap:2px}
.stage .bars i,.stagecell .bars i{display:block;width:4px;height:10px;border-radius:1px;background:var(--deep)}
.stage .bars i.past,.stagecell .bars i.past{background:var(--blue-line)} .stage .bars i.on,.stagecell .bars i.on{background:var(--blue)}
.stagecell.won .bars i{background:var(--ok)} .stagecell.lost .bars i{background:var(--rule)} .stagecell.hold .bars i{background:transparent;box-shadow:inset 0 0 0 1px var(--rule-2)}
.stage.late{color:var(--ink);font-weight:600}
.stage.won .bars i{background:var(--ok)} .stage.won{color:var(--ok);font-weight:600}
.stage.lost .bars i{background:var(--rule)} .stage.lost{color:var(--faint)}
.stage.hold .bars i{background:transparent;box-shadow:inset 0 0 0 1px var(--rule-2)} .stage.hold{color:var(--faint)}
.stagecell{display:inline-flex;align-items:center;gap:3px;white-space:nowrap}
.stagecell select.inl{font-size:12.5px;color:var(--graphite);padding-left:2px}
.stagecell.late select.inl{color:var(--ink);font-weight:600}
/* relationship strength */
.str{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--graphite);white-space:nowrap}
.str i{display:inline-flex;gap:2px} .str i b{width:5px;height:5px;border-radius:50%;background:var(--rule-2);display:block}
.str i b.on{background:var(--ink)}
.str.s4,.str.s3{color:var(--ink)}
.key-mark{font-family:var(--narrow);font-weight:600;font-size:11.5px;color:var(--blue);margin-left:6px}
/* FSS relationship to an asset */
.sup{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;white-space:nowrap;color:var(--graphite)}
.sup::before{content:"";width:9px;height:9px;flex:none;border-radius:2px}
.sup.fss{color:var(--ink);font-weight:600} .sup.fss::before{background:var(--blue)}
.sup.own{color:var(--ink)} .sup.own::before{box-shadow:inset 0 0 0 2px var(--blue)}
.sup.inst::before{box-shadow:inset 0 0 0 1px var(--graphite);background:linear-gradient(135deg,transparent 45%,var(--graphite) 45% 55%,transparent 55%)}
.sup.svc::before{background:var(--faint)}
.sup.third{color:var(--faint)} .sup.third::before{background:var(--rule-2)}
.sup.unk{color:var(--warn)} .sup.unk::before{box-shadow:inset 0 0 0 1.5px var(--warn-dot)}
.legend{display:flex;gap:4px 18px;flex-wrap:wrap;font-size:12px;color:var(--graphite);margin:0 0 12px}
/* meeting status */
.ms{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.ms::before{content:"";width:8px;height:8px;border-radius:50%;flex:none;box-shadow:inset 0 0 0 1px var(--faint)}
.ms.m1::before{box-shadow:inset 0 0 0 1px var(--blue);background:linear-gradient(90deg,var(--blue) 50%,transparent 50%)}
.ms.m2::before{box-shadow:inset 0 0 0 1px var(--warn-dot);background:var(--warn-soft)}
.ms.m3::before{background:var(--blue);box-shadow:none}
.ms.m4::before{background:var(--ok);box-shadow:none}
.ms.m5::before{background:var(--rule-2);box-shadow:none}
.ms select.inl{font-size:12.5px}
/* managed service progression */
.svcp{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.svcp .bars{display:inline-flex;gap:2px}
.svcp .bars i{display:block;width:11px;height:4px;border-radius:1px;background:var(--deep)}
.svcp .bars i.on{background:var(--blue)} .svcp.acc .bars i.on{background:var(--ok)}
.svcp.off .bars i{background:var(--rule)}
.svcp select.inl{font-size:12.5px;padding-left:2px}
.kv dd .svcp{display:flex;max-width:100%;min-width:0}
.kv dd .svcp select.inl{min-width:0;flex:0 1 auto}

/* ---------- attention list ---------- */
.att{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule-2)}
.att li{display:grid;grid-template-columns:88px minmax(0,1fr) auto;gap:1px 12px;padding:7px 0 8px;border-bottom:1px solid var(--rule);align-items:baseline}
.att li .when{padding-left:2px}
.att li .acct{font-weight:660;font-size:14px;text-decoration:none;color:var(--ink)}
.att li .acct:hover{color:var(--blue)}
.att li .what{min-width:0}
.att li .act{display:block;color:var(--ink);margin-top:1px}
.att li .act:hover{color:var(--blue)}
.att li .meta{display:block;color:var(--faint);font-size:12px;margin-top:1px}
.att li .ops{display:flex;gap:10px;white-space:nowrap}
.att li.block .when .due{color:var(--stop);font-weight:620}
.att.later li{padding:5px 0}
.att.later li .acct{font-weight:600;font-size:13.5px;color:var(--graphite)}
.att.later li .act{color:var(--graphite)}
.att.later li .when .due{color:var(--faint);font-weight:400}
.att .k{font-family:var(--narrow);font-weight:600;font-size:11.5px;color:var(--faint);margin-left:6px}
@media (max-width:560px){.att li{grid-template-columns:70px minmax(0,1fr)} .att li .ops{grid-column:2}}

/* ---------- key-value and header grids ---------- */
.kv{display:grid;grid-template-columns:minmax(118px,auto) minmax(0,1fr);margin:0;border-top:1px solid var(--rule)}
.kv dt,.kv dd{padding:5px 0;border-bottom:1px solid var(--rule);margin:0}
.kv dt{color:var(--faint);padding-right:14px;font-family:var(--narrow);font-weight:600;font-size:12.5px;padding-top:7px}
.kv dd{min-width:0;overflow-wrap:anywhere}
.kv.ed dd{padding:2px 0}
.hdrgrid{display:flex;flex-wrap:wrap;gap:4px 0;margin:0 0 14px;border-block:1px solid var(--rule)}
.hdrgrid>div{padding:6px 18px 7px 0;margin-right:18px;border-right:1px solid var(--rule);min-width:0}
.hdrgrid>div:last-child{border-right:0}
.hdrgrid label,.hdrgrid .k{display:block;font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px}
.hdrgrid .sub{display:block;color:var(--faint);font-size:12px;font-weight:400}
.hdrgrid .v{font-weight:600}
.hdrgrid select.inl{font-weight:600;padding-left:0;margin-left:-1px}

/* ---------- stage strip ---------- */
.strip{display:grid;grid-template-columns:repeat(8,minmax(0,1fr)) 10px repeat(3,minmax(0,.75fr));gap:3px;margin:0 0 14px}
.strip .gap{grid-column:9}
.strip button{border:0;background:transparent;padding:6px 0 0;cursor:pointer;text-align:left;font-size:12px;color:var(--faint);
  border-top:3px solid var(--deep);line-height:1.2;font-weight:500}
.strip button:hover{color:var(--ink);border-top-color:var(--rule-2)}
.strip button.past{border-top-color:var(--blue-line);color:var(--graphite)}
.strip button.on{border-top-color:var(--blue);color:var(--ink);font-weight:650}
.strip button.won.on{border-top-color:var(--ok);color:var(--ok)}
.strip button.lost.on{border-top-color:var(--faint);color:var(--graphite)}
.strip button.hold.on{border-top-color:var(--warn-dot)}
@media (max-width:760px){.strip{grid-template-columns:repeat(4,minmax(0,1fr))} .strip .gap{display:none}}

/* ---------- next action panel ---------- */
.nextbar{display:grid;grid-template-columns:minmax(0,1fr) 140px auto;gap:8px;align-items:end;padding:10px 12px;background:var(--sunk);
  border:1px solid var(--rule-2);border-radius:var(--r);margin:0 0 14px}
.nextbar label{display:block;font-family:var(--narrow);font-weight:600;color:var(--graphite);font-size:12.5px;margin-bottom:3px}
.nextbar input{width:100%;height:32px;font-size:14px;font-weight:560}
.nextbar input[type=date]{font-size:13.5px}
@media (max-width:640px){.nextbar{grid-template-columns:minmax(0,1fr)}}

/* ---------- focus panel ---------- */
.focus{border:1px solid var(--rule-2);border-radius:var(--r);padding:11px 14px 12px;margin:0 0 18px;background:var(--paper)}
.focus .fh{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 16px;align-items:baseline;margin-bottom:8px}
.focus .fh h2{margin:0;font-size:15px;font-weight:660}
.focus .fgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px 20px}
.focus .fgrid .k{display:block;font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px}

/* ---------- whitespace matrix ---------- */
.wm{display:grid;grid-template-columns:repeat(auto-fill,minmax(145px,1fr));border-top:1px solid var(--rule)}
.wm div{padding:5px 10px 6px 0;border-bottom:1px solid var(--rule)}
.wm span{display:block;font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px}
.ws{font-weight:600;font-size:12.5px}
.ws.fss{color:var(--blue)} .ws.oth{color:var(--graphite)} .ws.white{color:var(--ink)} .ws.unk{color:var(--faint)} .ws.na{color:var(--faint);font-weight:400}

/* ---------- timeline ---------- */
.tl{list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:70px minmax(0,1fr);gap:1px 12px;padding:6px 0;border-bottom:1px solid var(--rule)}
.tl li .d{font-size:12px;color:var(--faint);font-variant-numeric:tabular-nums;padding-top:1px}
.tl li .b small{display:block;color:var(--graphite)}
.tl li .b b{font-weight:600}
.tl li.empty{display:block;color:var(--faint)}
.tl li.plan .d{color:var(--blue)}
details.more>summary{cursor:pointer;color:var(--blue);font-size:12px;list-style:none;margin-top:4px}
details.more>summary::-webkit-details-marker{display:none}
details.more[open]>summary{color:var(--faint)}
details.sec.more>summary{color:inherit;font-size:inherit;margin:0}
details.sec.more>summary:hover .lnk{text-decoration-color:var(--blue)}

/* ---------- checklist ---------- */
.checks-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--rule)}
.checks-list li{display:grid;grid-template-columns:20px minmax(0,1fr) minmax(0,1.1fr);gap:3px 12px;align-items:center;padding:4px 0;border-bottom:1px solid var(--rule)}
.checks-list li.done .t{color:var(--ink);font-weight:600}
.checks-list li .t{color:var(--graphite)}
.checks-list input[type=checkbox]{width:15px;height:15px;margin:0;accent-color:var(--ok)}
@media (max-width:640px){.checks-list li{grid-template-columns:20px minmax(0,1fr)} .checks-list li .inl{grid-column:2}}

/* ---------- drawer ---------- */
.scrim{position:fixed;inset:0;background:color-mix(in oklab,var(--ink) 26%,transparent);z-index:40}
.drawer{position:fixed;top:0;right:0;bottom:0;width:min(540px,100%);background:var(--paper);border-left:1px solid var(--rule-2);
  z-index:41;display:flex;flex-direction:column;box-shadow:-18px 0 40px -24px color-mix(in oklab,var(--ink) 45%,transparent)}
.drawer header{padding:calc(12px + env(safe-area-inset-top,0px)) 16px 10px;border-bottom:1px solid var(--rule);display:flex;
  justify-content:space-between;align-items:baseline;gap:12px}
.drawer header h2{margin:0;font-size:16px;font-weight:650}
.drawer form{overflow-y:auto;padding:12px 16px;flex:1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px 12px;align-content:start}
.drawer .f{display:flex;flex-direction:column;gap:3px;min-width:0}
.drawer .f.full{grid-column:1 / -1}
.drawer .f>label,.drawer .f>.lab{font-family:var(--narrow);font-weight:600;color:var(--graphite);font-size:12.5px}
.drawer .f input,.drawer .f select,.drawer .f textarea{width:100%}
.drawer .f .hint{font-size:12px;color:var(--faint)}
.drawer .f.sep{grid-column:1 / -1;border-top:1px solid var(--rule);padding-top:8px;margin-top:2px;font-weight:650;font-size:13px}
.drawer .checks{display:flex;flex-direction:column;gap:2px;max-height:150px;overflow:auto;border:1px solid var(--rule);border-radius:var(--r);padding:6px 8px}
.drawer .checks label{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.35}
.drawer .checks input[type=checkbox]{width:15px;height:15px;margin:2px 0 0;flex:none}
.drawer .checks details{margin-top:4px} .drawer .checks summary{cursor:pointer;color:var(--faint);font-size:12px;list-style:none}
.drawer .checks summary::-webkit-details-marker{display:none} .drawer .checks summary::before{content:"+ "}
.drawer .checks details[open] summary::before{content:"\2212  "}
.drawer footer{padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--rule);display:flex;gap:8px;
  align-items:center;flex-wrap:wrap}
.drawer footer .msg{flex:1;min-width:160px;font-size:12.5px;color:var(--warn)}
@media (max-width:560px){.drawer form{grid-template-columns:minmax(0,1fr)}}
.toast{position:fixed;left:50%;bottom:calc(18px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);
  color:var(--paper);padding:7px 13px;font-size:12.5px;z-index:50;opacity:0;pointer-events:none;transition:opacity .18s;border-radius:var(--r)}
.toast.on{opacity:1}
.toast.act{pointer-events:auto;display:flex;gap:14px;align-items:baseline}
.toast button{background:none;border:0;padding:0;color:var(--paper);font:inherit;font-weight:650;cursor:pointer;
  text-decoration:underline;text-underline-offset:2px}
.toast button:focus-visible{outline:2px solid var(--blue-line);outline-offset:2px}
@media (prefers-reduced-motion:reduce){.toast{transition:none}}

/* ---------- map: embedded geography, constant-size pins and labels ---------- */
.gm{position:relative;height:460px;border:1px solid var(--rule);border-radius:var(--r);overflow:hidden;background:var(--sea);touch-action:none;user-select:none;-webkit-user-select:none}
.gm.sm{height:400px}
@media (max-width:760px){.gm,.gm.sm{height:340px}}
.gm>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.gm-base{cursor:grab} .gm.drag .gm-base{cursor:grabbing}
.gm-top{pointer-events:none;overflow:visible}
.gm-sea{fill:var(--sea)} .gm-land{fill:var(--land)} .gm-ctx{fill:var(--land-2)}
.gm-coast{stroke:var(--coast);stroke-width:.8}
.gm-golf{fill:var(--golf);stroke:var(--golf-line);stroke-width:.7}
.gm-r1,.gm-r2,.gm-r3{fill:none;stroke-linecap:round;stroke-linejoin:round}
.gm-r1{stroke:var(--road-1);stroke-width:.9} .gm-r2{stroke:var(--road-2);stroke-width:1.4} .gm-r3{stroke:var(--road-3);stroke-width:2}
.gm-pl{font-family:var(--narrow);font-size:10.5px;font-weight:600;fill:var(--faint);letter-spacing:.05em;text-transform:uppercase;text-anchor:middle;
  paint-order:stroke;stroke:var(--land);stroke-width:3px;stroke-linejoin:round}
.gm-pl.r0{font-size:12.5px;fill:var(--graphite);letter-spacing:.08em} .gm-pl.r1{font-size:11.5px;fill:var(--graphite)}
.gm-gl{font-size:10.5px;font-style:italic;fill:var(--golf-text);text-anchor:middle;paint-order:stroke;stroke:var(--land);stroke-width:3px;stroke-linejoin:round}
.gm-pin{pointer-events:auto;cursor:pointer;outline:none}
.gm-pin circle{stroke:var(--land);stroke-width:1.6}
.gm-pin.a circle{fill:var(--ink)} .gm-pin.s circle{fill:var(--blue)} .gm-pin.n circle{fill:var(--faint)}
.gm-pin.approx circle{fill:var(--land);stroke-width:2;stroke-dasharray:2.5 1.8}
.gm-pin.approx.a circle{stroke:var(--ink)} .gm-pin.approx.s circle{stroke:var(--blue)} .gm-pin.approx.n circle{stroke:var(--faint)}
.gm-pin .num{fill:var(--paper);font-size:10.5px;font-weight:700;text-anchor:middle;dominant-baseline:central;font-variant-numeric:tabular-nums}
.gm-pin.approx .num{fill:var(--ink)}
.gm-pin.hl circle,.gm-pin.on circle,.gm-pin:focus-visible circle{stroke:var(--warn-dot);stroke-width:3;stroke-dasharray:none}
.gm-lbl{font-size:12px;font-weight:620;fill:var(--ink);paint-order:stroke;stroke:var(--land);stroke-width:3.5px;stroke-linejoin:round;pointer-events:auto;cursor:pointer}
.gm-ctl{position:absolute;top:8px;right:8px;display:flex;flex-direction:column;border:1px solid var(--rule-2);background:var(--paper);border-radius:var(--r);overflow:hidden}
.gm-ctl button{width:30px;height:28px;border:0;background:transparent;font-size:16px;line-height:1;cursor:pointer;color:var(--ink)}
.gm-ctl button+button{border-top:1px solid var(--rule)} .gm-ctl button[data-z="fit"]{font-size:11px;font-family:var(--narrow);font-weight:600}
.gm-ctl button:hover{background:var(--deep)}
.gm-hint{position:absolute;left:50%;top:10px;transform:translateX(-50%);background:var(--ink);color:var(--paper);font-size:12px;padding:4px 9px;border-radius:var(--r);pointer-events:none}
.gm-attr{position:absolute;right:6px;bottom:4px;font-size:10.5px;color:var(--faint);background:color-mix(in oklab,var(--paper) 80%,transparent);padding:0 4px;border-radius:2px;pointer-events:none}
.gm-card{position:absolute;left:8px;bottom:8px;width:min(330px,calc(100% - 16px));background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--r);
  padding:10px 12px 11px;box-shadow:0 6px 18px -10px color-mix(in oklab,var(--ink) 45%,transparent);font-size:13px;cursor:auto}
.gm-card h4{margin:0 24px 3px 0;font-size:14px;font-weight:650;line-height:1.3}
.gm-card p{margin:0 0 5px} .gm-card .when{display:block;font-size:12px;color:var(--faint)} .gm-card .acts{display:flex;gap:8px;align-items:center;margin-top:8px}
.gm-card .x{position:absolute;top:3px;right:6px;border:0;background:none;cursor:pointer;color:var(--faint);font-size:18px;line-height:1;padding:2px}
.gm-n{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;border-radius:50%;background:var(--deep);color:var(--graphite);
  font-size:10.5px;font-weight:700;margin-right:6px;vertical-align:1px;font-variant-numeric:tabular-nums}
tr.map-hl td{background:var(--warn-soft)!important}
.maplegend{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:var(--graphite);margin:5px 0 0}
.maplegend{align-items:center}
.maplegend button{border:0;background:none;padding:0;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center}
.maplegend button[aria-pressed="false"]{color:var(--faint);text-decoration:line-through}
.maplegend .d{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:5px}
.maplegend .d.a{background:var(--ink)} .maplegend .d.s{background:var(--blue)} .maplegend .d.n{background:var(--faint)}
.maplegend .d.ring{background:var(--land);border:1.5px dashed var(--graphite)}
.maplegend button[aria-pressed="false"] .d{opacity:.35}
.maplegend .gm-how{margin-left:auto}

/* ---------- executive ---------- */
.exec .ledger b{font-size:20px}
.exec .ledger .key b{font-size:26px}
.exec .ledger>div{padding-block:9px 10px}
.exec .sec>h2{font-size:14.5px}

/* ---------- handbook ---------- */
.rules{margin:0;padding:0;list-style:none;border-top:1px solid var(--rule)}
.rules li{padding:6px 0;border-bottom:1px solid var(--rule);display:grid;grid-template-columns:minmax(150px,230px) minmax(0,1fr);gap:3px 18px}
.rules li b{font-weight:620}
.rules li span{color:var(--graphite)}
@media (max-width:640px){.rules li{grid-template-columns:minmax(0,1fr)}}

/* ---------- responsive frame ---------- */
@media (max-width:900px){
  .app{grid-template-columns:minmax(0,1fr)}
  .rail{position:sticky;height:auto;flex-direction:row;overflow-x:auto;padding:0;border-right:0;border-bottom:1px solid var(--rule);z-index:25}
  .brand{padding:10px 12px;flex:none}
  .navgroup{flex-direction:row;padding:0;flex:none}
  .navgroup .grp{display:none}
  .navgroup a{padding:10px 9px;white-space:nowrap;margin:0}
  .navgroup a[aria-current="page"]{box-shadow:inset 0 -2px 0 var(--ink);background:transparent}
  .railfoot{display:none}
  .topbar{top:0;flex-wrap:wrap}
  .search{max-width:none}
  .results{right:0}
  .t th{top:0}
  .ledger>div{padding-right:12px;margin-right:12px}
  .ledger .key b{font-size:20px}
}

/* next action: two lines at most when read, full text on hover, editable in place */
.clamp2{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden}
.nx{position:relative;min-width:0}
.nx-t{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2;overflow:hidden;
  padding:2px 5px;line-height:1.4;border:1px solid transparent;border-radius:var(--r);min-height:24px}
.nx-t.ph{color:var(--faint)}
.nx:hover .nx-t{border-color:var(--rule-2);background:var(--paper)}
textarea.inl.nx-e{position:absolute;inset:0;height:100%;width:100%;opacity:0;resize:none;overflow:hidden;
  padding:2px 5px;line-height:1.4;font-size:inherit;cursor:text}
textarea.inl.nx-e:focus{opacity:1;bottom:auto;min-height:100%;z-index:3;box-shadow:0 3px 10px -4px color-mix(in oklab,var(--ink) 30%,transparent)}
/* pipeline: diagnostic health filters sit behind one quiet toggle */
.hf>summary{list-style:none;cursor:pointer;display:inline-flex;align-items:baseline;gap:6px;font-size:12.5px;color:var(--graphite)}
.hf>summary::-webkit-details-marker{display:none}
.hf>summary::before{content:"";width:5px;height:5px;border-right:1.5px solid var(--faint);border-bottom:1.5px solid var(--faint);
  transform:rotate(-45deg);align-self:center;margin-right:2px}
.hf[open]>summary::before{transform:rotate(45deg);margin-top:-3px}
.hf>summary:hover{color:var(--ink)}
.hf>summary b{font-weight:600;color:var(--ink)}
.hf .chips{margin-top:6px}

/* reference: service model. Included Aftercare is set apart from the two paid tiers */
.svm h3{font-family:var(--sans);font-size:14px;font-weight:650;color:var(--ink);margin:0 0 4px}
.svm h3 span{font-weight:400;color:var(--faint);font-size:12px;margin-left:6px}
.svm h4{font-family:var(--narrow);font-weight:600;font-size:12px;color:var(--faint);margin:8px 0 3px}
.svm p{margin:0 0 6px;max-width:96ch}
.svm ul{margin:0;padding-left:16px;color:var(--graphite);font-size:12.5px;line-height:1.5}
.svm-base{background:var(--sunk);border:1px solid var(--rule);border-radius:var(--r);padding:10px 14px 12px;margin-bottom:16px}
.svm-base h3 span{display:inline-block}
.svm-paid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 28px}
.svm-tier{border-top:2px solid var(--blue);padding-top:8px}
.svm-tier ul{columns:2;column-gap:22px} .svm-tier li{break-inside:avoid}
.svm-future{margin-top:14px}
@media (max-width:860px){.svm-paid{grid-template-columns:minmax(0,1fr)} .svm-tier ul{columns:1}}

/* ---------- quotes: sub-navigation, costing table, line detail, customer sheet ---------- */
.subnav{display:flex;flex-wrap:wrap;margin:-6px 0 14px;border-bottom:1px solid var(--rule)}
.subnav a{padding:5px 0 6px;margin-right:22px;text-decoration:none;color:var(--graphite);font-size:12.5px;font-weight:500;border-bottom:2px solid transparent;margin-bottom:-1px}
.subnav a:hover{color:var(--ink)}
.subnav a[aria-current="page"]{color:var(--ink);font-weight:650;border-bottom-color:var(--ink)}
.qtabs{margin:0 0 10px}
.qtabs .tag{margin-left:10px}
/* costing table: each figure that can be typed is an input that reads as text until touched */
.qt td{padding-top:4px;padding-bottom:4px}
.qt input.inl.nf{text-align:right;font-variant-numeric:tabular-nums}
.qt td.qi{min-width:190px;width:27%}
.qt td.qi input.inl{font-weight:560}
.qt select.inl.ccy{appearance:none;-webkit-appearance:none;width:40px;padding:0 3px;color:var(--faint);font-size:12px;text-align:right;text-align-last:right}
.qt td.qsel{font-size:12.5px;color:var(--graphite);white-space:nowrap}
.qt td.qsel select.inl{font-size:12.5px;color:var(--graphite);max-width:124px;padding-left:0}
.qt td.qsa{text-align:right;line-height:1.5}
/* FX and line type step aside on mid-width screens; both are in the line detail */
@media (max-width:1399px){.qt .x-hide{display:none}}
.qt tr.opt td{color:var(--graphite)} .qt tr.opt td.qi input.inl{font-weight:400;font-style:italic}
.qt tr.exc td{color:var(--faint)} .qt tr.exc td.qi input.inl{font-weight:400;text-decoration:line-through;color:var(--faint)}
.qt tr.open>td{border-bottom-color:transparent}
.qt tr.qsec td{padding-top:6px;padding-bottom:5px}
.qt tr.qsec input.sect{font-weight:650;font-size:13.5px;max-width:360px;display:block}
.qt tr.qsec input.sdesc{font-size:12px;color:var(--graphite);height:20px;max-width:520px;display:block}
.qt tr.qsec input.sdesc:placeholder-shown:not(:focus):not(:hover){opacity:.55}
.qt tr.qaddrow:hover td,.qt tr.qdet:hover td{background:transparent}
.qfx table.t{width:auto;min-width:min(680px,100%)}
.qfx .t td{padding-right:16px;vertical-align:middle}
.qt tr.qaddrow td{padding:3px 0 10px 2px;border-bottom:0}
.qadd{position:relative;max-width:520px}
.qadd input{width:100%;height:26px;font-size:12.5px;border-style:dashed;background:transparent}
.qadd input:focus{border-style:solid;background:var(--paper)}
.qres{position:fixed;background:var(--paper);border:1px solid var(--rule-2);border-radius:var(--r);
  box-shadow:0 12px 32px -14px color-mix(in oklab,var(--ink) 40%,transparent);max-height:340px;overflow:auto;z-index:15}
.qres a{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;padding:5px 10px;text-decoration:none;border-bottom:1px solid var(--rule)}
.qres a:hover,.qres a.on{background:var(--blue-soft)}
.qres a span:first-child{font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px;padding-top:1px}
.qres a span:last-child{font-weight:600}
.qres small{display:block;color:var(--graphite);font-weight:400;font-size:12px}
.qtools{display:flex;gap:8px 18px;flex-wrap:wrap;align-items:center;margin-top:2px;padding-top:8px;border-top:1px solid var(--rule)}
/* line detail: the full record behind a row */
.qt tr.qdet td{padding:2px 0 12px 7px;border-bottom:1px solid var(--rule-2)}
.qdg{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px 22px;background:var(--sunk);border:1px solid var(--rule);
  border-radius:var(--r);padding:10px 12px 12px}
.qdg fieldset{border:0;margin:0;padding:0;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px 10px;align-content:start}
.qdg legend{font-size:12.5px;font-weight:650;padding:0;margin-bottom:4px}
.qdg legend .faint{font-weight:400}
.qdg label{display:flex;flex-direction:column;gap:2px;min-width:0}
.qdg label.wide{grid-column:1/-1}
.qdg label>span:first-child{font-family:var(--narrow);font-weight:600;color:var(--faint);font-size:12px}
.qdg label input,.qdg label select{height:26px;font-size:12.5px;width:100%}
.qdg label.chk{flex-direction:row-reverse;justify-content:flex-end;align-items:center;gap:7px;grid-column:1/-1}
.qdg label.chk input{width:15px;height:15px;margin:0}
.qdg label .v{font-size:12.5px;min-height:20px}
.qdg .qda{grid-column:1/-1;display:flex;gap:8px;flex-wrap:wrap;align-items:center;border-top:1px solid var(--rule);padding-top:8px}
.qdg .qda label{flex-direction:row;align-items:center;gap:6px}
.qdg .qda label select{width:auto}
.qms{display:flex;gap:4px 12px;flex-wrap:wrap;align-items:center}
.qms span{display:inline-flex;gap:2px;align-items:center;white-space:nowrap}
/* customer preview: a sheet of paper, the same in either theme, because it is the document the customer receives */
.cqwrap{background:#fff;border:1px solid var(--rule-2);border-radius:var(--r);padding:clamp(16px,3vw,36px);overflow-x:auto;margin-bottom:8px}

/* landed-cost review panel (costing tab, internal) */
.lcr-lead{color:var(--faint);font-size:12.5px;margin:0 0 8px;line-height:1.45}
.lcr-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:8px 0 4px}
.lcr-row h3{font-size:13px;font-weight:650;margin:0}
.lcr-count{color:var(--faint);font-size:12.5px}
.lcr-list{margin:2px 0 6px;padding-left:18px;font-size:12.5px;line-height:1.5}
.lcr-list li.stop{color:var(--stop)}
.lcr-fig{border-collapse:collapse;font-size:12.5px;max-width:640px}
.lcr-fig td{padding:3px 10px 3px 0;border-bottom:1px solid var(--rule)}
.lcr-fig tr.g td{font-weight:650;border-bottom:0}
.lcr-fig .lcr-sub{padding-left:16px;font-size:12px}
.lcr-na{font-size:12.5px;margin:2px 0}
.lcr-more{margin:0 0 6px;font-size:12.5px}
.lcr-more summary{cursor:pointer;color:var(--faint)}
.lcr-tech{margin-top:6px;font-size:12px}
.lcr-tech summary{cursor:pointer;color:var(--faint)}
.lcr-tech table{margin-top:4px}
.qdg label.alloc>span:first-child{font-weight:500}
.alloc-note{grid-column:1/-1;margin:0}
.lcr-pol td{font-size:12px}
.lcr-mode{margin-top:8px;display:flex;flex-direction:column;gap:4px;align-items:flex-start}
/* the costing-mode button's long label wraps on a phone instead of pushing the page sideways */
@media (max-width:560px){.lcr-mode .btn{white-space:normal;height:auto;min-height:28px;padding:5px 11px;text-align:left;max-width:100%}}
.lcr-note{font-size:12.5px;color:var(--graphite);margin:8px 0 0;max-width:72ch;line-height:1.45}
