/* Layout: fixed left rail of modules + work area split into inputs (left) and live results (right).
   Collapses to a horizontal module strip and single column under 900px. */
:root{
  --bg:#e4e4e4; --surface:#f0f0f0; --sunk:#ffffff; --ink:#1b1b1b; --muted:#5a5a5a; --line:#c8c8c8; --line-strong:#a8a8a8;
  --accent:#0b6a6a; --accent-ink:#ffffff; --accent-soft:#d9eeec;
  --ok:#2c7a3a; --warn:#9a5a00; --crit:#b3261e; --warn-soft:#fbefd9; --crit-soft:#fbe3e1; --ok-soft:#e1f1e3;
  --formation:#c9b28e; --formation-line:#a48a63; --steel:#5f707b; --cement:#9aa3a8; --mudcol:#7fb3c8;
  --font-display:"Segoe UI Variable Display","Segoe UI",system-ui,-apple-system,sans-serif;
  --font-body:"Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,Roboto,sans-serif;
  --font-mono:"Cascadia Mono",Consolas,ui-monospace,"SF Mono",monospace;
  --r:4px; --chrome:#d6d6d6; --pane:#ebebeb; --hover:rgba(0,0,0,.07); --sel:#cfe3e1; --status:#c4c4c4; --status-ink:#1b1b1b;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#1e1e1e; --surface:#2a2a2a; --sunk:#1b1b1b; --ink:#e2eaee; --muted:#93a5af; --line:#3a3a3a; --line-strong:#505050;
  --accent:#4cb5ad; --accent-ink:#06211f; --accent-soft:#16332f;
  --ok:#6cc27a; --warn:#e3a54a; --crit:#f07a6e; --warn-soft:#33270f; --crit-soft:#3a1a17; --ok-soft:#14301a;
  --formation:#5d4c33; --formation-line:#86704f; --steel:#9db0bb; --cement:#6d777d; --mudcol:#2f6377; --chrome:#2b2b2b; --pane:#262626; --hover:rgba(255,255,255,.08); --sel:#24403d; --status:#333333; --status-ink:#dcdcdc; color-scheme:dark}}
:root[data-theme="dark"]{
  --bg:#1e1e1e; --surface:#2a2a2a; --sunk:#1b1b1b; --ink:#e2eaee; --muted:#93a5af; --line:#3a3a3a; --line-strong:#505050;
  --accent:#4cb5ad; --accent-ink:#06211f; --accent-soft:#16332f;
  --ok:#6cc27a; --warn:#e3a54a; --crit:#f07a6e; --warn-soft:#33270f; --crit-soft:#3a1a17; --ok-soft:#14301a;
  --formation:#5d4c33; --formation-line:#86704f; --steel:#9db0bb; --cement:#6d777d; --mudcol:#2f6377; --chrome:#2b2b2b; --pane:#262626; --hover:rgba(255,255,255,.08); --sel:#24403d; --status:#333333; --status-ink:#dcdcdc; color-scheme:dark}
*{box-sizing:border-box}
html,body{height:100%}
body{margin:0;color:var(--ink);font:13px/1.4 var(--font-body);-webkit-font-smoothing:antialiased}
a{color:var(--accent)}
h1,h2,h3{font-family:var(--font-display);font-weight:600;letter-spacing:.005em;text-wrap:balance;margin:0}
h2{font-size:18px;font-weight:600} h3{font-size:12px;font-weight:600;color:var(--muted)}
.num,td.n,th.n{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* ---- desktop application frame: app bar + menu, toolbar, explorer | tabs + work pane, status bar ---- */
body{height:100vh;height:100dvh;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;overflow:hidden;background:var(--chrome)}
.appbar{display:flex;align-items:center;gap:4px;height:34px;padding:0 8px;background:var(--chrome);border-bottom:1px solid var(--line);user-select:none;-webkit-user-select:none}
.appbar .brand{display:flex;align-items:center;padding:0 6px 0 2px}
.menubar{display:flex;align-items:center;gap:0}
.menu{position:relative}
.mtop{font:inherit;font-size:13px;color:var(--ink);background:none;border:0;border-radius:4px;padding:5px 9px;cursor:default}
.mtop u{text-decoration:none} body.alt .mtop u{text-decoration:underline}
.mtop:hover,.menu.open .mtop{background:var(--hover)}
.drop{display:none;position:absolute;left:0;top:calc(100% + 2px);min-width:250px;background:var(--surface);border:1px solid var(--line-strong);border-radius:6px;box-shadow:0 8px 24px rgba(0,0,0,.18);padding:4px;z-index:60}
.menu.open .drop{display:block}
.drop button{display:flex;width:100%;justify-content:space-between;gap:24px;align-items:center;font:inherit;font-size:13px;color:var(--ink);background:none;border:0;border-radius:4px;padding:6px 10px 6px 26px;text-align:left;cursor:default;position:relative}
.drop button:hover,.drop button:focus-visible{background:var(--hover);outline:none}
.drop button[aria-checked="true"]::before{content:"✓";position:absolute;left:9px;color:var(--accent)}
.drop kbd{font:11.5px var(--font-body);color:var(--muted)}
.drop hr{border:0;border-top:1px solid var(--line);margin:4px 2px}
.apptitle{flex:1;min-width:0;display:flex;justify-content:center;gap:8px;font-size:12.5px;color:var(--muted);white-space:nowrap;overflow:hidden}
.apptitle b{color:var(--ink);font-weight:600;overflow:hidden;text-overflow:ellipsis}
.apptitle b::after{content:"—";margin-left:8px;color:var(--muted);font-weight:400}
.toolbar{display:flex;align-items:center;gap:2px;padding:3px 8px;background:var(--chrome);border-bottom:1px solid var(--line-strong);box-shadow:inset 0 1px 0 rgba(255,255,255,.5);overflow-x:auto;scrollbar-width:none}
.tb{display:flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;color:var(--ink);background:none;border:1px solid transparent;border-radius:4px;padding:4px 8px;cursor:default;white-space:nowrap}
.tb svg{width:16px;height:16px;flex:none;color:var(--accent)}
.tb:hover{background:var(--hover);border-color:var(--line)}
.tb:active{background:var(--line)}
.tsep{width:1px;height:20px;background:var(--line-strong);margin:0 5px;flex:none}
.tspacer{flex:1}
.tunits{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--muted);white-space:nowrap}
.tunits select{width:auto;padding:2px 6px;font-size:12.5px}
.shell{display:grid;grid-template-columns:var(--explorer-w,214px) minmax(0,1fr);min-height:0}
body.noexp .shell{grid-template-columns:0 minmax(0,1fr)} body.noexp nav.rail{visibility:hidden}
nav.rail{background:var(--pane);border-right:1px solid var(--line);overflow:auto;padding:0 0 10px;user-select:none;-webkit-user-select:none}
.paneh{font-size:11px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:9px 12px 4px}
nav.rail details{margin:2px 0}
nav.rail summary{list-style:none;cursor:default;font-size:12.5px;font-weight:600;padding:4px 10px;display:flex;align-items:center;gap:6px}
nav.rail summary::-webkit-details-marker{display:none}
nav.rail summary::before{content:"";width:0;height:0;border-left:4px solid var(--muted);border-top:4px solid transparent;border-bottom:4px solid transparent;transition:transform .12s}
nav.rail details[open] summary::before{transform:rotate(90deg)}
nav.rail summary:hover{background:var(--hover)}
nav.rail a{display:flex;justify-content:space-between;align-items:center;gap:8px;color:var(--ink);text-decoration:none;padding:4px 10px 4px 28px;font-size:13px;border-left:3px solid transparent}
nav.rail a:hover{background:var(--hover)}
nav.rail a[aria-current="page"]{background:var(--sel);border-left-color:var(--accent);font-weight:600}
nav.rail a small{font-family:var(--font-mono);font-size:10.5px;color:var(--muted);font-weight:400}
.work{display:grid;grid-template-rows:auto minmax(0,1fr);min-width:0;min-height:0}
.tabs{display:flex;align-items:flex-end;gap:1px;padding:5px 6px 0;background:var(--chrome);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:thin;user-select:none;-webkit-user-select:none}
.tab{display:flex;align-items:center;gap:6px;font:inherit;font-size:12.5px;color:var(--muted);background:transparent;border:1px solid transparent;border-bottom:0;border-radius:6px 6px 0 0;padding:5px 6px 6px 12px;cursor:default;white-space:nowrap;margin-bottom:-1px}
.tab:hover{background:var(--hover)}
.tab[aria-selected="true"]{background:var(--bg);color:var(--ink);border-color:var(--line);font-weight:600}
.tab .tx{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:3px;color:var(--muted);font-size:13px;line-height:1}
.tab .tx:hover{background:var(--line);color:var(--ink)}
main{min-width:0;overflow:auto;background:var(--bg);padding:14px 16px 28px}
.statusbar{display:flex;align-items:center;gap:0;height:24px;border-top:1px solid var(--line-strong);background:var(--status);color:var(--status-ink);font-size:12px;user-select:none;-webkit-user-select:none;overflow:hidden}
.statusbar > *{padding:0 10px;white-space:nowrap;border-right:1px solid var(--line-strong);line-height:24px}
.statusbar > :last-child{border-right:0}
.statusbar .grow{flex:1;overflow:hidden;text-overflow:ellipsis}
.statusbar a{color:inherit;text-decoration:none}
.sev-pill{display:inline-flex;gap:6px;align-items:center}
.sev-pill:hover{background:var(--hover)}
.sev-pill i{width:8px;height:8px;border-radius:50%;display:inline-block;box-shadow:0 0 0 1px rgba(0,0,0,.25)}
.save[data-state="dirty"]{color:var(--warn);font-weight:600} .save[data-state="error"]{color:var(--crit);font-weight:600}
#ver{font-family:var(--font-mono);font-size:11px;opacity:.85}
.view{display:none} .view.on{display:block}
.vh{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-bottom:12px}
.vh p{margin:0;color:var(--muted);max-width:80ch;font-size:12.5px}
.split{display:grid;grid-template-columns:minmax(300px,410px) minmax(0,1fr);gap:16px;align-items:start}
.col{display:flex;flex-direction:column;gap:16px;min-width:0}
/* group boxes: title sits on the border, as in a desktop dialog */
.box{position:relative;background:var(--surface);border:1px solid var(--line-strong);border-radius:4px;padding:16px 12px 12px;min-width:0;margin-top:6px}
.box > h3:first-child{position:absolute;top:-8px;left:9px;background:var(--surface);padding:0 5px;margin:0;font:600 11.5px var(--font-body);letter-spacing:.02em;text-transform:none;color:var(--ink)}
.box.flat{background:transparent;border:0;padding:0;margin-top:0}

/* ---- forms ---- */
.fields{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px 10px}
.fields.two{grid-template-columns:1fr 1fr}
label.f{display:flex;flex-direction:column;gap:2px;font-size:12px;color:var(--muted);min-width:0}
label.f u{text-decoration:none;font-family:var(--font-mono);font-size:10.5px;color:var(--muted);opacity:.85;margin-left:4px}
label.f > span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
input,select,textarea{font:inherit;color:var(--ink);background:var(--sunk);border:1px solid var(--line-strong);border-bottom-color:var(--muted);border-radius:4px;padding:4px 7px;min-width:0;width:100%}
input[type=number]{font-family:var(--font-mono);font-variant-numeric:tabular-nums}
input:focus,select:focus,textarea:focus{outline:none;border-bottom-color:var(--accent);box-shadow:inset 0 -1px 0 var(--accent)}
input[type=checkbox]{width:auto}
.btn{font:13px var(--font-body);border:1px solid var(--line-strong);border-bottom-color:var(--muted);background:var(--surface);color:var(--ink);border-radius:4px;padding:4px 12px;min-height:28px;cursor:default;white-space:nowrap}
.btn:hover{background:var(--hover)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)} .btn.primary:hover{filter:brightness(1.08)}
.btn.danger{color:var(--crit);border-color:var(--crit)}
.btn.small{padding:4px 8px;font-size:12px}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.prov{display:grid;grid-template-columns:auto minmax(170px,1fr) minmax(0,1.2fr);gap:6px;align-items:center;font-size:12px;color:var(--muted);margin:-4px 0 10px;padding:6px 8px;border-radius:5px;background:var(--sunk);border:1px dashed var(--line-strong)}
.prov[data-kind="sample"]{background:var(--warn-soft);border-color:var(--warn)}
.prov select,.prov input{padding:3px 6px;font-size:12px}

/* ---- editable tables ---- */
.tw{overflow-x:auto;border:1px solid var(--line);border-radius:5px;background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:12.5px}
th{font-weight:600;text-align:left;color:var(--ink);font-size:11px;letter-spacing:.03em;padding:6px 8px;border-bottom:1px solid var(--line-strong);background:var(--sunk);white-space:nowrap}
td{padding:5px 8px;border-bottom:1px solid var(--line);vertical-align:top}
th.n,td.n{text-align:right}
tr:last-child td{border-bottom:0}
table.edit td{padding:3px}
table.edit input{padding:4px 6px;border-color:transparent;background:transparent}
table.edit input:hover{border-color:var(--line-strong)}
table.edit input:focus{background:var(--sunk);border-color:var(--accent)}
table.edit td.x{width:28px;text-align:center}
table.edit input[type=number]{min-width:68px;text-align:right;padding:4px 5px}
table.edit input[type=text]{min-width:96px}
.xbtn{border:0;background:none;color:var(--muted);cursor:pointer;font-size:16px;line-height:1;padding:4px}
.xbtn:hover{color:var(--crit)}
.tbl-foot{display:flex;justify-content:space-between;align-items:center;padding:6px 8px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}

/* ---- results ---- */
.kpis{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.kpi{background:var(--surface);padding:8px 10px;min-width:0;box-shadow:inset -1px -1px 0 var(--line)}
.kpi .l{font-size:11px;color:var(--muted);letter-spacing:.02em}
.kpi .v{font-family:var(--font-mono);font-variant-numeric:tabular-nums;font-size:18px;font-weight:500;line-height:1.2;margin-top:2px;white-space:nowrap}
.kpi .v small{font-size:12px;color:var(--muted);margin-left:3px}
.kpi .s{font-size:11px;color:var(--muted)}
.kpi.hl{box-shadow:inset 0 3px 0 var(--accent),inset -1px -1px 0 var(--line)}
.kpi.warn{box-shadow:inset 0 3px 0 var(--warn),inset -1px -1px 0 var(--line)} .kpi.crit{box-shadow:inset 0 3px 0 var(--crit),inset -1px -1px 0 var(--line);background:var(--crit-soft)}
.chip{display:inline-block;font-size:11px;padding:1px 7px;border-radius:999px;border:1px solid currentColor;white-space:nowrap}
.chip.lam{color:var(--ok)} .chip.tra{color:var(--warn)} .chip.tur{color:var(--crit)}
.issues{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.issues li{display:grid;grid-template-columns:72px 110px minmax(0,1fr);gap:8px;font-size:12.5px;padding:7px 10px;border-radius:5px;background:var(--sunk);border-left:3px solid var(--line-strong)}
.issues li[data-s="error"]{border-left-color:var(--crit);background:var(--crit-soft)}
.issues li[data-s="warning"]{border-left-color:var(--warn);background:var(--warn-soft)}
.issues li b{font-size:11px;text-transform:uppercase;letter-spacing:.06em}
.note{font-size:12px;color:var(--muted);margin:8px 0 0;max-width:80ch}
.err{color:var(--crit);background:var(--crit-soft);border-radius:5px;padding:8px 10px;font-size:13px}
.lim{font-size:12px;color:var(--muted);border-top:1px dashed var(--line-strong);margin-top:10px;padding-top:8px}
.lim b{color:var(--ink);font-weight:600}
.chart{width:100%;height:auto;display:block}
.chart text{fill:var(--muted);font:11px var(--font-mono)}
.chart .ax{stroke:var(--line-strong)} .chart .gr{stroke:var(--line);stroke-dasharray:2 3}
.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.schem-wrap{display:grid;grid-template-columns:260px minmax(0,1fr);gap:14px;align-items:start}
.legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--muted);margin-top:6px}
.legend i{display:inline-block;width:12px;height:3px;vertical-align:middle;margin-right:5px}
.toast{position:fixed;right:max(16px,env(safe-area-inset-right,0px));bottom:calc(34px + env(safe-area-inset-bottom,0px));background:var(--ink);color:var(--bg);padding:9px 14px;border-radius:5px;font-size:13px;z-index:40;max-width:min(420px,90vw)}
.modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.45);z-index:50;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--surface);border-radius:var(--r);border:1px solid var(--line);max-width:760px;width:100%;max-height:85vh;overflow:auto;padding:16px;display:flex;flex-direction:column;gap:10px}
.modal textarea{font-family:var(--font-mono);font-size:11px;height:320px}
.confirm{display:flex;gap:6px;align-items:center;font-size:12px;color:var(--crit)}
.status-badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:4px;background:var(--sunk);border:1px solid var(--line-strong)}
.status-badge[data-s="L2-candidate"]{background:var(--ok-soft);border-color:var(--ok);color:var(--ok)}
.status-badge[data-s="Screening"]{background:var(--warn-soft);border-color:var(--warn);color:var(--warn)}
.status-badge[data-s="Candidate"],.status-badge[data-s="Superseded"]{color:var(--muted)}
.banner{border:1px solid var(--warn);background:var(--warn-soft);border-radius:var(--r);padding:10px 12px;font-size:12.5px;margin-bottom:14px}

/* ---- report ---- */
.report{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:22px 26px;max-width:960px}
.report h1{font-size:22px} .report h2{font-size:16px;margin:18px 0 6px;border-bottom:1px solid var(--line-strong);padding-bottom:4px}
.report .meta{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:4px 16px;font-size:12px;margin:10px 0;border:1px solid var(--line);padding:8px 10px;border-radius:4px}
.report .meta b{display:block;font-size:10.5px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-weight:600}

@media (max-width:1100px){.split{grid-template-columns:minmax(0,1fr)}}
/* Narrow windows and phones: the same frame, explorer becomes a module strip, labels drop from the toolbar. */
@media (max-width:900px){
  body{display:block;height:auto;overflow:visible}
  .appbar{position:sticky;top:0;z-index:25;padding-top:env(safe-area-inset-top,0px);height:auto;min-height:34px}
  .apptitle span{display:none} .apptitle b::after{display:none}
  .menubar{overflow-x:auto;scrollbar-width:none}
  .tb span{display:none} .tunits{font-size:0} .tunits select{font-size:12.5px}
  .shell{display:block}
  nav.rail{position:sticky;top:34px;z-index:15;display:flex;overflow-x:auto;border-right:0;border-bottom:1px solid var(--line);padding:4px max(8px,env(safe-area-inset-left,0px));background:var(--pane)}
  nav.rail .paneh,nav.rail summary{display:none} nav.rail details{display:flex;flex:none;margin:0} nav.rail details:not([open]) > a{display:flex}
  nav.rail a{white-space:nowrap;padding:5px 10px;border-left:0;border-bottom:2px solid transparent} nav.rail a[aria-current="page"]{border-bottom-color:var(--accent)} nav.rail a small{display:none}
  .tabs{display:none} .work{display:block}
  main{overflow:visible;padding:12px max(14px,env(safe-area-inset-left,0px)) 40px max(14px,env(safe-area-inset-right,0px))}
  .statusbar{position:sticky;bottom:0;padding-bottom:env(safe-area-inset-bottom,0px);height:auto}
  .statusbar #sbMsg,.statusbar #sbUnits,.statusbar #ver{display:none}
  .schem-wrap{grid-template-columns:minmax(0,1fr)}
  body.noexp nav.rail{visibility:visible}
}
@media (max-width:520px){.prov{grid-template-columns:1fr}.issues li{grid-template-columns:1fr}.fields.two{grid-template-columns:1fr}.statusbar .grow{display:none}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
@media print{
  :root{--bg:#fff;--surface:#fff;--sunk:#fff;--ink:#000;--muted:#333;--line:#bbb;--line-strong:#888;color-scheme:light}
  .appbar,.toolbar,.tabs,.statusbar,nav.rail,.noprint,.toast{display:none!important}
  body{display:block;height:auto;overflow:visible} .shell,.work{display:block} main{padding:0;overflow:visible} .view{display:none!important} .view.printme{display:block!important}
  .report{border:0;padding:0;max-width:none} .report h2{break-after:avoid} table{break-inside:auto} tr{break-inside:avoid}
}
.apptitle em{font-style:normal;color:var(--accent);font-weight:600}
.appbar .brand img{display:block}
.rep-brand{display:flex;justify-content:flex-end;margin:-6px 0 6px}
.rep-brand img{height:44px;width:auto}
@media print{.rep-brand img{height:40px}}

/* ===================== Classic Windows look (v0.22.1) =====================
   Grey windows with title bars, sunken white fields, bevelled buttons, grid tables,
   Windows-blue selection, compact Segoe UI. Overrides the rules above. */
:root{--win:#f0f0f0;--frame:#a0a0a0;--face1:#fdfdfd;--face2:#e1e1e1;--selbg:#cce8ff;--selbd:#99d1ff;--hot:#e5f3ff;--wsp:#c9c9c9;--field:#ffffff;--fieldbd:#7a7a7a;--focus:#0078d7;--chrome:#f0f0f0;--pane:#ffffff;--status:#f0f0f0;--status-ink:#1b1b1b;--sel:var(--selbg);--hover:var(--hot);--bg:var(--wsp);--surface:var(--win);--sunk:var(--field)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--win:#2b2b2b;--frame:#5a5a5a;--face1:#3d3d3d;--face2:#313131;--selbg:#264f78;--selbd:#3a6ea5;--hot:#2f3d4b;--wsp:#1b1b1b;--field:#1e1e1e;--fieldbd:#6a6a6a;--chrome:#2b2b2b;--pane:#202020;--status:#2b2b2b;--status-ink:#dcdcdc}}
:root[data-theme="dark"]{--win:#2b2b2b;--frame:#5a5a5a;--face1:#3d3d3d;--face2:#313131;--selbg:#264f78;--selbd:#3a6ea5;--hot:#2f3d4b;--wsp:#1b1b1b;--field:#1e1e1e;--fieldbd:#6a6a6a;--chrome:#2b2b2b;--pane:#202020;--status:#2b2b2b;--status-ink:#dcdcdc}
body{font:12px/1.35 "Segoe UI",Tahoma,system-ui,sans-serif}
h2{font:600 13px "Segoe UI",Tahoma,sans-serif} h3{font:600 12px "Segoe UI",Tahoma,sans-serif;color:var(--ink)}
/* frame */
.appbar{height:28px;background:var(--chrome);border-bottom:1px solid var(--frame)}
.mtop{border-radius:0;padding:3px 8px;font-size:12px} .mtop:hover,.menu.open .mtop{background:var(--selbg);box-shadow:inset 0 0 0 1px var(--selbd)}
.drop{border-radius:0;border:1px solid var(--frame);box-shadow:2px 2px 4px rgba(0,0,0,.28);padding:2px;background:var(--win)}
.drop button{border-radius:0;padding:4px 10px 4px 26px;font-size:12px} .drop button:hover,.drop button:focus-visible{background:var(--selbg);box-shadow:inset 0 0 0 1px var(--selbd)}
.toolbar{background:var(--chrome);border-bottom:1px solid var(--frame);box-shadow:none;padding:2px 6px}
.tb{border-radius:0;padding:2px 6px;font-size:12px} .tb:hover{background:var(--hot);border-color:var(--selbd)} .tb:active{background:var(--selbg)}
.tb svg{color:#2f5f8a} :root[data-theme="dark"] .tb svg{color:#8fc1ec}
.apptitle{font-size:12px}
nav.rail{background:var(--pane);border-right:1px solid var(--frame)}
.paneh{background:var(--win);border-bottom:1px solid var(--frame);padding:4px 8px;font-size:11px;letter-spacing:.02em;text-transform:none;font-weight:600;color:var(--ink)}
nav.rail summary{font-size:12px;padding:2px 8px} nav.rail a{font-size:12px;padding:2px 8px 2px 26px;border-left:0}
nav.rail a:hover{background:var(--hot)} nav.rail a[aria-current="page"]{background:var(--selbg);box-shadow:inset 0 0 0 1px var(--selbd);font-weight:400}
.tabs{background:var(--chrome);padding:4px 4px 0;border-bottom:1px solid var(--frame);gap:0}
.tab{border-radius:0;background:linear-gradient(var(--face1),var(--face2));border:1px solid var(--frame);border-bottom:0;margin-right:-1px;padding:2px 4px 2px 10px;font-size:12px;color:var(--ink)}
.tab:hover{background:var(--hot)} .tab[aria-selected="true"]{background:var(--win);font-weight:400;position:relative;top:1px;padding-bottom:3px}
.tab .tx{border-radius:0}
main{background:var(--wsp);padding:8px}
.statusbar{background:var(--status);border-top:1px solid var(--frame);height:22px;padding:0 2px;gap:2px}
.statusbar > *{border:1px solid;border-color:var(--frame) var(--face1) var(--face1) var(--frame);line-height:16px;padding:0 8px;margin:2px 0}
/* page caption: a slim window strip, not a web heading */
.vh{background:var(--win);border:1px solid var(--frame);padding:3px 8px;margin-bottom:8px;gap:0 12px;align-items:center}
.vh h2{font-size:12.5px} .vh p{font-size:11.5px;max-width:none}
.split{gap:8px} .col{gap:8px} .grid2{gap:8px}
/* panels as grey windows with a title bar */
.box{background:var(--win);border:1px solid var(--frame);border-radius:0;padding:0 8px 8px;margin-top:0;box-shadow:1px 1px 0 rgba(0,0,0,.10)}
.box > h3:first-child{position:static;display:block;margin:0 -8px 8px;padding:3px 8px;background:linear-gradient(var(--face1),var(--face2));border-bottom:1px solid var(--frame);font:600 12px "Segoe UI",Tahoma,sans-serif;letter-spacing:0;color:var(--ink)}
.box.flat{background:transparent;border:0;padding:0;box-shadow:none}
/* fields and buttons */
label.f{font-size:11.5px;color:var(--ink);gap:1px}
input,select,textarea{background:var(--field);border:1px solid var(--fieldbd);border-radius:0;padding:2px 4px;font-size:12px;box-shadow:inset 1px 1px 1px rgba(0,0,0,.10);min-height:22px}
input:focus,select:focus,textarea:focus{border-color:var(--focus);box-shadow:inset 0 0 0 1px var(--focus)}
.fields{gap:5px 8px}
.btn{background:linear-gradient(var(--face1),var(--face2));border:1px solid #adadad;border-radius:2px;padding:1px 12px;min-height:23px;font:12px "Segoe UI",Tahoma,sans-serif;color:var(--ink);cursor:default}
.btn:hover{background:linear-gradient(#ecf6fd,#dcf0fc);border-color:#3c7fb1} .btn:active{background:linear-gradient(#c4e5f6,#a6d6ef)}
:root[data-theme="dark"] .btn:hover{background:linear-gradient(#3a4b5c,#2f3d4b)}
.btn.primary{background:linear-gradient(var(--face1),var(--face2));color:var(--ink);border:1px solid var(--focus);box-shadow:inset 0 0 0 1px var(--selbd);font-weight:600}
.btn.primary:hover{filter:none;background:linear-gradient(#ecf6fd,#dcf0fc)}
.btn.small{padding:0 8px;min-height:20px;font-size:11.5px}
.prov{border-radius:0;background:var(--win);border:1px solid var(--frame);margin:0 0 8px;padding:4px 6px}
.prov[data-kind="sample"]{background:#fff4ce;border-color:#d6b656} :root[data-theme="dark"] .prov[data-kind="sample"]{background:#3a3218}
/* grids */
.tw{border:1px solid var(--frame);border-radius:0;background:var(--field)}
table{font-size:12px}
th{background:linear-gradient(var(--face1),var(--face2));border:1px solid #c5c5c5;color:var(--ink);font-size:11.5px;letter-spacing:0;padding:2px 6px}
td{border:1px solid #e3e3e3;padding:2px 6px}
:root[data-theme="dark"] th{border-color:#474747} :root[data-theme="dark"] td{border-color:#3a3a3a}
table.edit td{padding:0} table.edit input{border:0;box-shadow:none;min-height:21px;background:transparent}
table.edit input:focus{box-shadow:inset 0 0 0 1px var(--focus);background:var(--field)}
.tbl-foot{background:var(--win);border-top:1px solid var(--frame);padding:3px 6px}
/* readouts */
.kpis{border:1px solid var(--frame);border-radius:0;background:var(--win);gap:4px;padding:4px;grid-template-columns:repeat(auto-fill,minmax(132px,1fr))}
.kpi{background:var(--field);border:1px solid #9a9a9a;box-shadow:inset 1px 1px 2px rgba(0,0,0,.12);padding:3px 7px}
.kpi .l{font-size:11px;color:var(--muted)} .kpi .v{font-size:16px;font-weight:600} .kpi .s{font-size:10.5px}
.kpi.hl{box-shadow:inset 3px 0 0 #2f5f8a,inset 1px 1px 2px rgba(0,0,0,.12)}
.kpi.warn{box-shadow:inset 3px 0 0 var(--warn),inset 1px 1px 2px rgba(0,0,0,.12)} .kpi.crit{box-shadow:inset 3px 0 0 var(--crit),inset 1px 1px 2px rgba(0,0,0,.12)}
.banner{border-radius:0;padding:4px 8px;font-size:12px;margin-bottom:8px;background:#fff4ce;border-color:#d6b656}
:root[data-theme="dark"] .banner{background:#3a3218}
.issues li{border-radius:0;padding:4px 8px;font-size:12px}
.err{border-radius:0;padding:4px 8px;border:1px solid var(--crit)}
.chip{border-radius:2px;font-size:10.5px;padding:0 5px}
.status-badge{border-radius:0}
.modal-bg{background:rgba(0,0,0,.25)}
.modal{border-radius:0;border:1px solid var(--frame);box-shadow:4px 4px 12px rgba(0,0,0,.35);background:var(--win);padding:0 12px 10px}
.modal > h2:first-child{margin:0 -12px 8px;padding:5px 12px;background:linear-gradient(var(--face1),var(--face2));border-bottom:1px solid var(--frame);font-size:12.5px}
.toast{border-radius:0;background:#ffffe1;color:#000;border:1px solid #767676;box-shadow:2px 2px 4px rgba(0,0,0,.25);font-size:12px}
.report{border-radius:0;box-shadow:2px 2px 6px rgba(0,0,0,.25);background:#fff;color:#111}
.chart text{font:10.5px "Segoe UI",Tahoma,sans-serif}
.lim,.note{font-size:11.5px}

/* number fields: no spin arrows (they looked like drop-downs) */
input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number] { -moz-appearance: textfield; appearance: textfield; }

/* field validation */
label.f .fmsg{display:block;white-space:normal;font-size:11px;line-height:1.3;margin-top:2px;color:var(--crit)}
label.f.bad input{border-color:var(--crit)!important;background:var(--crit-soft)!important;outline:1px solid var(--crit)}
label.f.wrn input{border-color:#c08a00!important;background:#fff6dc!important}
label.f.wrn .fmsg{color:#7a5600}

/* ---------- layout switch: desktop (default classic) and phone & tablet (touch) ---------- */
.hamb,.laybtn,.laysel,.drawer-bg{display:none}
html.touchdev .laysel,html[data-layout="touch"] .laysel,html[data-layout="tablet"] .laysel{display:inline-block;margin-left:auto;width:auto;font-size:12px;min-height:0;padding:1px 4px}
html[data-layout="touch"] .laysel{margin-left:0;font-size:14px;min-height:40px}
.laybtn{border:1px solid var(--frame);background:linear-gradient(var(--face1),var(--face2));font-size:11px;padding:1px 6px;margin-left:auto;white-space:nowrap}
.laybtn .l-touch{display:none}
html[data-layout="desktop"] .laybtn{display:inline-block}
html[data-layout="touch"] .laybtn{display:inline-block} html[data-layout="touch"] .laybtn .l-touch{display:inline} html[data-layout="touch"] .laybtn .l-desk{display:none}
html[data-layout="desktop"]:not(.touchdev) .laybtn{display:none}
html[data-layout="touch"] body{font-size:15px;line-height:1.45;display:block;height:auto;overflow:visible}
html[data-layout="touch"] .appbar{position:sticky;top:0;z-index:30;height:auto;min-height:48px;padding:env(safe-area-inset-top,0px) 6px 0;gap:6px}
html[data-layout="touch"] .hamb{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--frame);background:linear-gradient(var(--face1),var(--face2));padding:0}
html[data-layout="touch"] .hamb svg{width:22px;height:22px}
html[data-layout="touch"] .menubar{display:none}
html[data-layout="touch"] .apptitle{font-size:15px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} html[data-layout="touch"] .apptitle span{display:none}
html[data-layout="touch"] .laybtn{font-size:12.5px;padding:8px 10px;margin-left:0}
html[data-layout="touch"] .toolbar{overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none;gap:2px;padding:4px 6px}
html[data-layout="touch"] .tb{min-width:44px;min-height:40px;font-size:13px} html[data-layout="touch"] .tb svg{width:20px;height:20px} html[data-layout="touch"] .tb span{display:none}
html[data-layout="touch"] .tunits select{font-size:15px;min-height:40px}
html[data-layout="touch"] .shell{display:block}
html[data-layout="touch"] nav.rail{position:fixed;top:0;bottom:0;left:0;width:min(86vw,340px);z-index:50;display:block;overflow:auto;transform:translateX(-102%);transition:transform .2s;border-right:1px solid var(--frame);padding:env(safe-area-inset-top,0px) 0 20px;visibility:visible;box-shadow:4px 0 16px rgba(0,0,0,.25)}
html[data-layout="touch"] body.drawer-open nav.rail{transform:none}
html[data-layout="touch"] body.drawer-open .drawer-bg{display:block;position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.35)}
html[data-layout="touch"] nav.rail .paneh{display:block;font-size:15px;padding:12px 14px} html[data-layout="touch"] nav.rail summary{display:list-item;font-size:14px;padding:10px 14px;font-weight:600}
html[data-layout="touch"] nav.rail details{display:block} html[data-layout="touch"] nav.rail a{display:block;font-size:16px;padding:12px 14px 12px 30px;border-bottom:0;white-space:normal} html[data-layout="touch"] nav.rail a small{display:inline}
html[data-layout="touch"] .tabs{display:none} html[data-layout="touch"] .work{display:block}
html[data-layout="touch"] main{overflow:visible;padding:12px max(12px,env(safe-area-inset-left,0px)) 60px max(12px,env(safe-area-inset-right,0px))}
html[data-layout="touch"] .vh h2{font-size:19px} html[data-layout="touch"] .vh p{font-size:14px}
html[data-layout="touch"] .box h3{font-size:16px}
html[data-layout="touch"] .fields{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px 12px}
html[data-layout="touch"] label.f{font-size:13.5px;gap:3px} html[data-layout="touch"] label.f > span{white-space:normal}
html[data-layout="touch"] input,html[data-layout="touch"] select,html[data-layout="touch"] textarea{font-size:16px;min-height:42px;padding:6px 8px}
html[data-layout="touch"] .btn,html[data-layout="touch"] button.btn{min-height:42px;font-size:15px;padding:6px 14px}
html[data-layout="touch"] .btn.small{min-height:36px;font-size:14px;padding:4px 12px}
html[data-layout="touch"] .xbtn{min-width:36px;min-height:36px;font-size:18px}
html[data-layout="touch"] table{font-size:14px} html[data-layout="touch"] th{font-size:13px;padding:6px 8px} html[data-layout="touch"] td{padding:6px 8px}
html[data-layout="touch"] td input,html[data-layout="touch"] td select{min-height:38px;font-size:15px}
html[data-layout="touch"] .tblwrap,html[data-layout="touch"] .tw{overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-layout="touch"] .kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:6px}
html[data-layout="touch"] .kpi .l{font-size:13px} html[data-layout="touch"] .kpi .v{font-size:21px} html[data-layout="touch"] .kpi .s{font-size:12.5px}
html[data-layout="touch"] .note,html[data-layout="touch"] .lim{font-size:13.5px} html[data-layout="touch"] label.f .fmsg{font-size:13px}
html[data-layout="touch"] .banner,html[data-layout="touch"] .issues li,html[data-layout="touch"] .toast{font-size:14.5px}
html[data-layout="touch"] details > summary{min-height:36px;padding-top:6px}
html[data-layout="touch"] .split{grid-template-columns:minmax(0,1fr)}
html[data-layout="touch"] .statusbar{position:sticky;bottom:0;font-size:13px;padding-bottom:env(safe-area-inset-bottom,0px);height:auto;min-height:30px}
html[data-layout="touch"] .statusbar #sbMsg,html[data-layout="touch"] .statusbar #ver{display:none}
html[data-layout="touch"] .modal{width:min(96vw,640px);max-height:90vh;overflow:auto;font-size:15px}
@media (max-width:600px){html[data-layout="touch"] .fields{grid-template-columns:1fr 1fr} html[data-layout="touch"] .fields.two{grid-template-columns:1fr}}
@media (max-width:380px){html[data-layout="touch"] .fields{grid-template-columns:1fr}}
nav.rail .tmenu{display:none}
html[data-layout="touch"] nav.rail .tmenu{display:block} html[data-layout="touch"] nav.rail .tmenu summary{color:var(--muted)}
html[data-layout="touch"] nav.rail .tmi{display:block;width:100%;text-align:left;background:none;border:0;font-size:15px;padding:11px 14px 11px 30px;color:var(--ink)}
html[data-layout="touch"] nav.rail .tmi[aria-checked="true"]::before{content:"✓ ";font-weight:700}
html[data-layout="touch"],html[data-layout="touch"] body{overflow-x:hidden}
html[data-layout="touch"] main,html[data-layout="touch"] .box,html[data-layout="touch"] .split > *,html[data-layout="touch"] .view{min-width:0;max-width:100%}
html[data-layout="touch"] .tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
html[data-layout="touch"] nav.rail .tmi[data-action="toggleExplorer"],html[data-layout="touch"] nav.rail .tmi[data-action^="closeTab"],html[data-layout="touch"] nav.rail .tmi[data-action="closeOthers"],html[data-layout="touch"] nav.rail .tmi[data-action="closeOtherTabs"]{display:none}

/* ---------- tablet (10–12.1 in): desktop structure, touch-sized controls; explorer pinned in landscape, drawer in portrait ---------- */
html[data-layout="tablet"] body{font-size:14px}
html[data-layout="tablet"] .appbar{height:auto;min-height:44px;padding-top:env(safe-area-inset-top,0px);gap:6px}
html[data-layout="tablet"] .laysel{font-size:14px;min-height:36px;padding:2px 6px}
html[data-layout="tablet"] .mtop{font-size:15px;padding:9px 14px}
html[data-layout="tablet"] .drop button{font-size:15px;padding:11px 18px 11px 30px}
html[data-layout="tablet"] .apptitle{font-size:14px}
html[data-layout="tablet"] .toolbar{padding:4px 8px;gap:4px}
html[data-layout="tablet"] .tb{min-height:40px;font-size:13.5px;padding:4px 10px} html[data-layout="tablet"] .tb svg{width:18px;height:18px}
html[data-layout="tablet"] .tunits{font-size:13px} html[data-layout="tablet"] .tunits select{font-size:14px;min-height:36px}
html[data-layout="tablet"] .shell{grid-template-columns:var(--explorer-w,250px) minmax(0,1fr)}
html[data-layout="tablet"] nav.rail .paneh{font-size:13px;padding:8px 10px} html[data-layout="tablet"] nav.rail summary{font-size:14px;padding:9px 10px}
html[data-layout="tablet"] nav.rail a{font-size:15px;padding:10px 10px 10px 28px}
html[data-layout="tablet"] .tab{font-size:14px;padding:7px 6px 7px 14px} html[data-layout="tablet"] .tab .tx{min-width:28px;min-height:28px}
html[data-layout="tablet"] main{padding:12px 14px 40px}
html[data-layout="tablet"] .vh h2{font-size:17px} html[data-layout="tablet"] .vh p{font-size:13.5px}
html[data-layout="tablet"] .box h3{font-size:15px}
html[data-layout="tablet"] .fields{grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px 12px}
html[data-layout="tablet"] label.f{font-size:13px;gap:3px}
html[data-layout="tablet"] input,html[data-layout="tablet"] select,html[data-layout="tablet"] textarea{font-size:15px;min-height:38px;padding:4px 7px}
html[data-layout="tablet"] .btn{min-height:38px;font-size:14px;padding:5px 12px} html[data-layout="tablet"] .btn.small{min-height:34px;font-size:13.5px}
html[data-layout="tablet"] .xbtn{min-width:34px;min-height:34px;font-size:17px}
html[data-layout="tablet"] table{font-size:13.5px} html[data-layout="tablet"] th{font-size:12.5px;padding:5px 7px} html[data-layout="tablet"] td{padding:5px 7px}
html[data-layout="tablet"] td input,html[data-layout="tablet"] td select{min-height:34px;font-size:14px}
html[data-layout="tablet"] .kpis{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}
html[data-layout="tablet"] .kpi .l{font-size:12.5px} html[data-layout="tablet"] .kpi .v{font-size:19px} html[data-layout="tablet"] .kpi .s{font-size:12px}
html[data-layout="tablet"] .note,html[data-layout="tablet"] .lim{font-size:13px} html[data-layout="tablet"] label.f .fmsg{font-size:12.5px}
html[data-layout="tablet"] .banner,html[data-layout="tablet"] .issues li,html[data-layout="tablet"] .toast{font-size:14px}
html[data-layout="tablet"] details > summary{min-height:32px;padding-top:4px}
html[data-layout="tablet"] .statusbar{font-size:13px;min-height:28px;height:auto;padding-bottom:env(safe-area-inset-bottom,0px)}
html[data-layout="tablet"] .modal{font-size:14.5px}
html[data-layout="tablet"] .tw{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}
/* portrait (≈ 800–1000 px wide): the explorer becomes a drawer, panels in two columns */
@media (max-width:1099px){
  html[data-layout="tablet"] body{display:block;height:auto;overflow:visible;overflow-x:hidden}
  html[data-layout="tablet"] .appbar{position:sticky;top:0;z-index:30}
  html[data-layout="tablet"] .hamb{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border:1px solid var(--frame);background:linear-gradient(var(--face1),var(--face2));padding:0}
  html[data-layout="tablet"] .hamb svg{width:22px;height:22px}
  html[data-layout="tablet"] .menubar{overflow-x:visible}
  html[data-layout="tablet"] .shell{display:block}
  html[data-layout="tablet"] nav.rail{position:fixed;top:0;bottom:0;left:0;width:320px;z-index:50;display:block;overflow:auto;transform:translateX(-102%);transition:transform .2s;border-right:1px solid var(--frame);padding:env(safe-area-inset-top,0px) 0 20px;visibility:visible;box-shadow:4px 0 16px rgba(0,0,0,.25);border-bottom:0}
  html[data-layout="tablet"] body.drawer-open nav.rail{transform:none}
  html[data-layout="tablet"] body.drawer-open .drawer-bg{display:block;position:fixed;inset:0;z-index:45;background:rgba(0,0,0,.35)}
  html[data-layout="tablet"] nav.rail .paneh{display:block} html[data-layout="tablet"] nav.rail summary{display:list-item} html[data-layout="tablet"] nav.rail details{display:block}
  html[data-layout="tablet"] nav.rail a{display:block;white-space:normal;border-bottom:0} html[data-layout="tablet"] nav.rail a small{display:inline}
  html[data-layout="tablet"] .tabs{display:flex} html[data-layout="tablet"] .work{display:block}
  html[data-layout="tablet"] main{overflow:visible}
  html[data-layout="tablet"] .tb span{display:inline} html[data-layout="tablet"] .tunits{font-size:13px}
  html[data-layout="tablet"] .statusbar{position:sticky;bottom:0}
}

/* well / section bar */
.secbar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:4px 8px;background:var(--chrome);border-bottom:1px solid var(--frame);font-size:12.5px}
.secbar .sb-sel{display:flex;align-items:center;gap:6px;font-weight:600}
.secbar select{width:auto;max-width:min(70vw,420px);font-weight:600;padding:2px 6px}
.secbar a.btn{text-decoration:none}
tr.sel td{background:var(--sel-soft,rgba(43,74,111,.08))}
.pill-err{color:var(--crit);font-weight:600}
html[data-layout="touch"] .secbar{font-size:14px;padding:6px 10px;position:sticky;top:48px;z-index:25}
html[data-layout="touch"] .secbar .sb-well{display:none}
html[data-layout="touch"] .secbar select{font-size:15px;min-height:40px;max-width:100%}
html[data-layout="touch"] .secbar .sb-sel{flex:1 1 100%}
html[data-layout="tablet"] .secbar{font-size:14px} html[data-layout="tablet"] .secbar select{font-size:15px;min-height:36px}

.modal .tw{max-height:none}
/* schematic mode switch (VIS-01) */
.seg{display:inline-flex;gap:0}
.seg .btn{border-radius:0;margin:0}
.seg .btn:first-child{border-radius:6px 0 0 6px}
.seg .btn:last-child{border-radius:0 6px 6px 0;margin-left:-1px}
.schem2{max-width:620px;margin:6px auto 0}
.schem2 text{font-size:11px}
.schem-box{position:relative}
.schem2 .hit{cursor:pointer}
.schem2 .hit:hover{filter:brightness(1.12)}
.schem2 .hit.on{filter:drop-shadow(0 0 2.5px var(--accent)) brightness(1.15)}
.schem-tip{position:absolute;z-index:5;min-width:180px;max-width:280px;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.18);padding:8px 28px 8px 10px;font-size:12.5px;line-height:1.45}
.schem-tip b{display:block;margin-bottom:2px}
.schem-tip .x{position:absolute;top:2px;right:4px;border:0;background:none;color:var(--muted);font-size:18px;cursor:pointer;min-height:0;padding:0 4px}

/* logo exactly as supplied (light lettering) on its dark plate, on every background */
.logo-plate{display:inline-flex;align-items:center;background:linear-gradient(#2b3b44,#0e161a);border-radius:6px;padding:3px 7px}
.logo-plate img{display:block;height:22px;width:auto}
html[data-layout="touch"] .logo-plate img{height:18px}
.rep-brand .logo-plate{border-radius:8px;padding:6px 10px}
.rep-brand .logo-plate img{height:38px}
.logo-plate{-webkit-print-color-adjust:exact;print-color-adjust:exact}
/* start-up splash with the full logo */
#splash{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:linear-gradient(#2b3b44,#0e161a);pointer-events:none;transition:opacity .55s ease}
#splash img{width:min(72vw,560px);height:auto;animation:splashIn .7s ease both}
#splash.out{opacity:0}
@keyframes splashIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media print{#splash{display:none}}
/* full logo, bottom-right corner (status bar) */
.statusbar .sb-logo{margin-left:auto;padding:0 3px;display:flex;align-items:center;line-height:0}
.statusbar .sb-logo .logo-plate{padding:2px 6px;border-radius:4px}
.statusbar .sb-logo img{height:15px;width:auto}
/* long KPI units (e.g. lbf·sⁿ/100ft²) sit under the value instead of running out of the tile */
.kpi .v small.u2{display:block;margin:2px 0 0;white-space:normal}
