
/* ==> styles/00-type-and-tokens.css */
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/rajdhani-400.759a9000.woff2) format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:500;font-display:swap;src:url(fonts/rajdhani-500.23afdb9b.woff2) format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/rajdhani-600.433a7007.woff2) format('woff2')}
@font-face{font-family:'Rajdhani';font-style:normal;font-weight:700;font-display:swap;src:url(fonts/rajdhani-700.5b7e4a6f.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url(fonts/ibm-plex-mono-400.08949f72.woff2) format('woff2')}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:600;font-display:swap;src:url(fonts/ibm-plex-mono-600.0d1f0b8d.woff2) format('woff2')}

:root{
  --ink:#16233F; --bg:#F5F0E8; --card:#FFFFFF; --border:#E7E1D4; --border-2:#F1EBDF;
  --muted:#4E5C77; --muted-2:#5A6780;
  --brand:#E4572E; --brand-cta:#C4451F; --brand-text:#B33F1D; --on-brand:#fff; --brand-soft:#FDF0EB; --brand-deep:#101D3A;
  --green:#127C4E; --green-soft:#E7F5EE;
  --amber:#8A5200; --amber-soft:#FDF3E3;
  --red:#B3261E;  --red-soft:#FCEDEC;
  --focus:#1B5FB8;
  --blue:#2A5FD0; --blue-soft:#EBF1FD; --blue-line:#C3D6F7;
  --violet:#6941C6; --violet-soft:#F2EDFC;
  --slate:#4E5C77; --slate-soft:#EAECF2;
  --ink-fill:#16233F; --on-ink:#FFFFFF;
  --surface-2:#FAF7F0;
  --surface-3:#EFEADF;
  --line:#D0C9BA;
  --control-line:#75808F;
  --line-strong:#75808F;
  --muted-3:#8792A6;
  --r:var(--r-surface); --shadow:none;
  --sans:'Rajdhani',-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --display:'Rajdhani',-apple-system,'Segoe UI',Helvetica,Arial,sans-serif;
  --mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  --r-control:6px; --r-surface:10px; --r-pill:999px;
  --sp0:2px; --sp1:4px; --sp2:8px; --sp3:12px; --sp4:16px; --sp5:24px; --sp6:32px;
  --sp7:48px; --sp8:64px;
  --t-label:11px;
  --t-small:13px;
  --t-body:15px; --t-title:18px; --t-page:24px; --t-kpi:32px;
  --w-text:400; --w-body:500; --w-med:600; --w-bold:700;
  --track-display:-.01em; --track-caps:.06em;
  --lh-tight:1.2; --lh-ui:1.35; --lh-prose:1.55;
  --shadow-1:0 1px 2px rgba(0,0,0,.35);
  --shadow-2:0 16px 40px rgba(0,0,0,.45);
  --tap:44px;
  --h-control:32px; --h-control-sm:26px;
  --dur-1:120ms; --dur-2:180ms; --ease:cubic-bezier(.2,0,0,1);
  --focus-ring:2px solid var(--focus);
  color-scheme:light;
  --on-fill:#FFFFFF;
  --shade:#000000;
  --done-soft:#D3E5DB; --done-ink:#0C5C39;
  --on-deep-muted:#A8B0BC; --on-deep-warn:#FFC145;
}
html[data-theme="dark"]{
  color-scheme:dark;
  --ink:#E9EDF5; --bg:#0A1220; --card:#111C2E; --border:#243349; --border-2:#1C2A3F;
  --muted:#A3AFC4; --muted-2:#8F9BB2; --muted-3:#7A879E;
  --ink-fill:#E9EDF5; --on-ink:#0A1220;
  --surface-2:#16233A; --surface-3:#1E2E48; --line:#33445F; --line-strong:#8A96AC;
  --control-line:#8C97AD;
  --brand:#F0714B; --brand-cta:#F0714B; --brand-text:#F58A5E; --on-brand:#180E09; --brand-soft:#2C1A13; --brand-deep:#060D1C;
  --green:#4ADE9B; --green-soft:#122A1F;
  --amber:#F0B45C; --amber-soft:#2E220F;
  --red:#FF8A80;   --red-soft:#331714;
  --focus:#8FC0FF;
  --blue:#7EA8F5;  --blue-soft:#152238; --blue-line:#2C4166;
  --violet:#B49BF0; --violet-soft:#221B33;
  --slate:#A3AFC4; --slate-soft:#192640;
  --done-soft:#1B2E24; --done-ink:#7FD9AC;
  --shadow:none;
}
html[data-theme="dark"] .viz{
  --surface-1:#111C2E;
  --s1:#6FA8F0; --s2:#F58A5E; --s3:#4ADE9B;
  --st-good:#4ADE9B; --st-warn:#F0B45C; --st-serious:#F58A5E; --st-crit:#FF8A80; --st-none:#78838F;
}
html[data-theme="dark"] .gnav{background:var(--brand-deep)}
html[data-theme="dark"] .b-brand{color:var(--brand);background:var(--brand-soft)}
html[data-theme="dark"] .crumb .sep{color:var(--muted-2)}
html[data-theme="dark"] .rtabs button{color:var(--muted)}
html[data-theme="dark"] .gnav-tabs button{color:var(--muted)}
html[data-theme="dark"] .ppin{border-color:var(--bg)}
.ppin{text-shadow:0 1px 2px color-mix(in srgb,var(--shade) 45%,transparent)}
html[data-theme="dark"] .tsec h5 .c{background:var(--surface-3);color:var(--ink)}
html[data-theme="dark"] .stub{color:var(--control-line)}

html[data-theme="dark"] .sortable th .ar{opacity:.6}
html[data-theme="dark"] .skip,html[data-theme="dark"] .lb-t kbd{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .thbtn:focus-visible{outline-color:var(--focus)}
html[data-theme="dark"] img,html[data-theme="dark"] .photo{filter:brightness(.85)}
html[data-theme="dark"] .toast{background:var(--border)}
html[data-theme="dark"] #tip{background:var(--border)}

*{box-sizing:border-box}
html{scroll-padding-top:104px;scroll-padding-bottom:70px}
.skip{position:fixed;left:-9999px;top:0;z-index:200;white-space:nowrap;background:var(--card);color:var(--ink);
  border:1px solid var(--border);border-radius:0 0 var(--r-control) 0;padding:var(--sp3) var(--sp4);font-size:var(--t-small);font-weight:var(--w-med)}
.skip:focus-visible{left:0}
.step.off{background:var(--red);color:var(--on-fill)}
.thbtn{all:unset;display:inline-flex;align-items:center;gap:var(--sp1);cursor:pointer;width:100%;
  min-height:24px;margin:-3px 0;padding:var(--sp0) 0;
  font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit}
.thbtn:focus-visible{outline:var(--focus-ring);outline-offset:-2px;border-radius:var(--r-control)}
fieldset{border:0;margin:0;padding:0;min-width:0}
input[type=checkbox],input[type=radio]{margin:0;color:inherit}
.vh{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
html,body{margin:0;padding:0;font-weight:var(--w-body)}
body{
  background:var(--bg); color:var(--ink);
  font:var(--w-body) var(--t-body)/var(--lh-prose) var(--sans);
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
a{color:var(--ink);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:2px;
  text-decoration-color:color-mix(in srgb,currentColor 45%,transparent)}
a.btn,a.skip{text-decoration:none}

button{font:inherit;cursor:pointer}
input,select,textarea,optgroup,option{font-family:inherit;font-weight:inherit}
input,select,textarea{font-size:var(--t-small)}
b,strong{font-weight:var(--w-bold)}

/* ==> styles/05-global-nav.css */
.gnav{background:var(--brand-deep);color:var(--on-fill);position:sticky;top:0;z-index:60}
.gnav-top{display:flex;align-items:center;gap:var(--sp4);padding:var(--sp2) var(--sp5)}
.logo{display:flex;align-items:center;gap:var(--sp2);font-weight:var(--w-bold);letter-spacing:-.01em}
.beacon{width:22px;height:22px;flex:0 0 22px}
.logo small{display:block;font-family:var(--sans);font-weight:var(--w-body);font-size:var(--t-label);letter-spacing:.15em;color:var(--muted-2);text-transform:uppercase;margin-top:-1px}
.gsearch{flex:1;max-width:460px}
.gsearch input{width:100%;background:color-mix(in srgb,var(--on-fill) 8%,transparent);border:1px solid color-mix(in srgb,var(--on-fill) 13%,transparent);color:var(--on-fill);
  border-radius:var(--r-control);padding:var(--sp2) var(--sp3);font-size:var(--t-small);outline:none}
.gsearch input::placeholder{color:var(--muted-2)}
.gsearch input:focus-visible{outline:var(--focus-ring);outline-offset:1px}
.gsearch{position:relative}
.gres{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:120;background:var(--card);
  border:1px solid var(--border);border-radius:var(--r-surface);box-shadow:var(--shadow-2);
  max-height:min(70vh,520px);overflow:auto;padding:var(--sp1)}
html[data-theme="dark"] .gres{box-shadow:var(--shadow-2)}
.gres .gh{font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);
  padding:var(--sp2) var(--sp3) var(--sp1);font-family:var(--sans)}
.gres .gi{display:flex;align-items:center;gap:var(--sp3);padding:var(--sp2) var(--sp3);border-radius:var(--r-control);cursor:pointer;
  width:100%;text-align:left;background:none;border:0;font:inherit;color:var(--ink)}
.gres .gi.sel{background:var(--surface-2)}
.gres .gi.sel{box-shadow:inset 2px 0 0 var(--ink-fill)}
.gres .gi .tag{flex:0 0 auto;font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;
  padding:var(--sp0) var(--sp2);border-radius:var(--r-control);background:var(--surface-3);color:var(--muted-2);font-family:var(--sans)}
.gres .gi .tx{flex:1;min-width:0}
.gres .gi .tx b{display:block;font-size:var(--t-small);font-weight:var(--w-med);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gres .gi .tx span{display:block;font-size:var(--t-label);color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gres .gi mark{background:transparent;color:inherit;font-weight:var(--w-bold)}
.gres .gempty{padding:var(--sp4) var(--sp3);font-size:var(--t-small);color:var(--muted);line-height:var(--lh-prose)}
.gres .gfoot{border-top:1px solid var(--border-2);margin-top:var(--sp1);padding:var(--sp2) var(--sp3);font-size:var(--t-label);color:var(--muted-2)}
.gres .gfoot kbd{font-family:var(--mono);font-size:var(--t-label);background:var(--surface-3);border:1px solid var(--border);
  border-radius:var(--r-control);padding:0 var(--sp1);margin:0 var(--sp0)}
:where(button,select,input,[tabindex]):focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--r-control)}
:where(select,input:not([type=checkbox]),textarea):where([style*="border"],.in,.fin){border-color:var(--control-line)}
select:not([class]){border:1px solid var(--control-line)}
.switch input:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.gnav-right{margin-left:auto;display:flex;align-items:center;gap:var(--sp3);flex-wrap:wrap;justify-content:flex-end}
.gnav-top{flex-wrap:wrap}
.map-legend{flex-wrap:wrap}
.theme{display:inline-flex;background:color-mix(in srgb,var(--on-fill) 7%,transparent);border:1px solid color-mix(in srgb,var(--on-fill) 13%,transparent);
  border-radius:var(--r-control);padding:var(--sp0);gap:var(--sp0)}
.theme button{all:unset;width:36px;height:32px;display:grid;place-items:center;border-radius:var(--r-control);
  cursor:pointer;color:color-mix(in srgb,var(--on-fill) 72%,transparent)}
.theme button svg{width:16px;height:16px;display:none}
.theme button svg.on{display:block}

.theme button:focus-visible{outline:2px solid var(--on-fill);outline-offset:1px}
.wstate[hidden],#lr-edit-panel[hidden]{display:none !important}
.wstate{display:inline-flex;align-items:center;gap:var(--sp2);font-size:var(--t-label);font-weight:var(--w-med);
  padding:var(--sp1) var(--sp2);border-radius:var(--r-pill);border:1px solid var(--border);color:var(--muted);
  background:var(--card);white-space:nowrap}
.wstate::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--muted-3)}
.wstate.saving::before{background:var(--amber);animation:wpulse 1s ease-in-out infinite}
.wstate.saved::before{background:var(--green)}
.wstate.rejected{color:var(--red);border-color:var(--red)}
.wstate.rejected::before{background:var(--red)}
@keyframes wpulse{0%,100%{opacity:1}50%{opacity:.3}}
.avatar{width:28px;height:28px;border-radius:50%;background:#33415C;display:grid;place-items:center;font-size:var(--t-small);font-weight:var(--w-bold);color:#EDF1F6;border:0;cursor:pointer;padding:0;font-family:var(--sans)}

.avatar:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.gnav-tabs{display:flex;gap:var(--sp0);padding:0 var(--sp5);border-top:1px solid color-mix(in srgb,var(--on-fill) 7%,transparent);overflow-x:auto}
.gnav-tabs button{background:none;border:0;color:var(--muted-3);padding:var(--sp3) var(--sp3);font-size:var(--t-small);font-weight:var(--w-body);
  border-bottom:2.5px solid transparent;white-space:nowrap}

.gnav-tabs button.on{color:var(--on-fill);border-bottom-color:var(--ink-fill)}
.gnav-tabs button.stub{color:#8B95A3;cursor:not-allowed}

.gnav-tabs button.stub::after{content:"";display:inline-block;width:5px;height:5px;border-radius:50%;background:#3A4250;margin-left:var(--sp2);vertical-align:middle}

.wrap{max-width:1360px;margin:0 auto;padding:var(--sp4) var(--sp5) var(--sp8)}
.grid{display:grid;grid-template-columns:minmax(0,1fr) 372px;gap:var(--sp4);align-items:start}
.grid>*,.grid2>*,.grid3>*,.kpis>*{min-width:0}
.card,.card-b,.tabcard,.pane{min-width:0}
.card{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--sp4)}
.card-h{display:flex;align-items:center;gap:var(--sp2);padding:var(--sp3) var(--sp4);border-bottom:1px solid var(--border-2)}
.card-h :is(h2,h3){margin:0;font-size:var(--t-small);font-weight:var(--w-med);}
.card-h .count{color:var(--muted-2);font-weight:var(--w-body);font-size:var(--t-small)}
.card-h .sp{margin-left:auto;display:flex;gap:var(--sp2);flex-wrap:wrap;min-width:0}
.card-h{flex-wrap:wrap;row-gap:var(--sp2)}
.card-h .sp select,.card-h .sp .in{max-width:100%}
.card-b{padding:var(--sp4) var(--sp4)}

.crumb{font-size:var(--t-small);color:var(--muted);margin-bottom:var(--sp2);display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
.crumb .sep{color:var(--muted-2)}
.hl{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--sp4);overflow:hidden}
.hl-top{display:flex;gap:var(--sp4);padding:var(--sp4) var(--sp4) var(--sp4);align-items:flex-start;flex-wrap:wrap}
.objicon{width:44px;height:44px;border-radius:var(--r-surface);display:grid;place-items:center;flex:0 0 44px;color:#fff}
.objicon.loc{background:linear-gradient(150deg,#E4572E,#C0341A)}
.objicon.ast{background:linear-gradient(150deg,#2A5FD0,#1B3F94)}
.hl-id{min-width:240px;flex:1 1 260px}
.hl-kicker{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med)}
.hl-name{font-size:var(--t-page);font-weight:var(--w-med);margin:var(--sp0) 0 0;display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
.hl-sub{font-size:var(--t-small);color:var(--muted);margin-top:var(--sp0)}
.hl-actions{display:flex;gap:var(--sp2);flex-wrap:wrap;justify-content:flex-end;flex:0 1 auto}
.btn{border:1px solid var(--border);background:var(--card);color:var(--ink);border-radius:var(--r-control);padding:var(--sp2) var(--sp3);font-size:var(--t-small);font-weight:var(--w-body)}

.btn.pri{background:var(--brand-cta);border-color:var(--brand-cta);color:var(--on-brand)}

.btn.sm{padding:var(--sp1) var(--sp2);font-size:var(--t-small)}
.hl-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--sp0);background:var(--border-2);border-top:1px solid var(--border-2)}
.hl-f{background:var(--card);padding:var(--sp3) var(--sp4)}
.hl-f .k{font-size:var(--t-label);color:var(--muted-2);font-weight:var(--w-med);letter-spacing:.06em;text-transform:uppercase}
.hl-f .v{font-size:var(--t-small);font-weight:var(--w-med);margin-top:var(--sp0)}

.path-wrap{border-top:1px solid var(--border-2);background:var(--surface-2);padding:var(--sp3) var(--sp4) var(--sp3)}
.path-head{display:flex;align-items:center;gap:var(--sp3);margin-bottom:var(--sp2);flex-wrap:wrap}
.path-head .lbl{font-size:var(--t-small);color:var(--muted-2);font-weight:var(--w-med)}
.path{display:flex;overflow-x:auto;padding-bottom:var(--sp0)}
.path::-webkit-scrollbar{height:6px}
.path::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--r-control)}
.step{position:relative;flex:0 0 auto;background:var(--surface-3);color:var(--muted);font-size:var(--t-label);font-weight:var(--w-med);
  padding:var(--sp2) var(--sp4) var(--sp2) var(--sp5);margin-right:var(--sp0);white-space:nowrap;
  clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%,9px 50%)}
.step:first-child{padding-left:var(--sp4);clip-path:polygon(0 0,calc(100% - 9px) 0,100% 50%,calc(100% - 9px) 100%,0 100%)}
.step.done{background:var(--done-soft);color:var(--done-ink)}
.step.now{background:var(--brand-cta);color:var(--on-brand)}
.step.now::after{content:"";position:absolute;inset:0}
.excep{display:flex;gap:var(--sp2);flex-wrap:wrap;margin-top:var(--sp3);align-items:center}
.excep .lbl{font-size:var(--t-small);color:var(--muted-2);font-weight:var(--w-med)}
.chip{font-size:var(--t-label);font-weight:var(--w-med);padding:var(--sp0) var(--sp2);border-radius:var(--r-pill);border:1px solid transparent}
.chip.ex{background:var(--card);border-color:var(--slate-soft);color:var(--muted)}

.badge{display:inline-flex;align-items:center;gap:var(--sp1);font-size:var(--t-label);font-weight:var(--w-med);padding:var(--sp0) var(--sp2);border-radius:var(--r-pill);line-height:var(--lh-ui)}
.b-green{background:var(--green-soft);color:var(--green)}
.b-amber{background:var(--amber-soft);color:var(--amber)}
.b-red{background:var(--red-soft);color:var(--red)}
.b-blue{background:var(--slate-soft);color:var(--slate)}
.b-violet{background:var(--slate-soft);color:var(--slate)}
.b-slate{background:var(--slate-soft);color:var(--slate)}
.b-brand{background:var(--brand-soft);color:var(--brand-text)}
.dot{width:6px;height:6px;border-radius:50%;background:currentColor;flex:0 0 6px}

.rtabs{display:flex;flex-wrap:nowrap;gap:var(--sp2);padding:var(--sp2);background:transparent;overflow-x:auto}
.rtabs.st-tabs{padding:0;scrollbar-width:thin}
.rtabs button{background:transparent;border:0;border-radius:var(--r-surface);padding:var(--sp2) var(--sp3);font-size:var(--t-small);font-weight:var(--w-med);
  color:var(--muted);white-space:nowrap;cursor:pointer}

.rtabs button.on{color:var(--on-ink) !important;background:var(--ink-fill)}
.tabcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--sp4)}
.tabcard .rtabs{border-radius:var(--r) var(--r) 0 0}
#view-status .tabcard,#view-home .tabcard,#view-reports .tabcard,#view-schema .tabcard,#view-lifecycles .tabcard,#view-locchanges .tabcard,
#view-inventory .tabcard,#view-shipments .tabcard,#view-users .tabcard,#view-perms .tabcard,
#view-feedback .tabcard,#view-decisions .tabcard{background:transparent;border:0;box-shadow:none}
#view-schema .card{background:transparent;border:0;box-shadow:none;margin-bottom:var(--sp5)}
#view-schema .card-h{display:none}
#view-schema .card-b{padding-left:0;padding-right:0}
.pane{display:none;padding:var(--sp2) var(--sp4) var(--sp4)}
.pane.on{display:block}

.sect{border-top:1px solid var(--border-2);padding:var(--sp4) 0 var(--sp1)}
.sect:first-child{border-top:0}
.sect > :is(h2,h3,h4){margin:0 0 var(--sp3);font-size:var(--t-small);color:var(--muted);font-weight:var(--w-med);
  display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap;min-width:0}
.sect > :is(h2,h3,h4) > *{min-width:0}
.sect > :is(h2,h3,h4) .count{overflow:hidden;text-overflow:ellipsis}
.sect > :is(h2,h3,h4) .ln{flex:1 1 40px;height:1px;background:var(--border-2)}
.sect,.pane,.tabbody{min-width:0}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp0) var(--sp6)}
.f{padding:var(--sp2) 0;border-bottom:1px solid var(--surface-2);min-width:0}
.f .k{font-size:var(--t-label);color:var(--muted);font-weight:var(--w-med);display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
.f .v{font-size:var(--t-small);margin-top:var(--sp0);word-break:break-word}
.f .v.empty{color:var(--muted-2);font-style:italic}
.prov{display:none;font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;padding:var(--sp0) var(--sp1);border-radius:var(--r-control);text-transform:uppercase}
.prov.auto{background:var(--green-soft);color:var(--green)}
.prov.part{background:var(--amber-soft);color:var(--amber)}
.prov.man{background:var(--slate-soft);color:var(--slate)}
body.spec .prov{display:inline-block}
.spec-note{display:none;margin-top:var(--sp1);padding:var(--sp2) var(--sp2);background:var(--surface-2);border-left:2px solid var(--border);border-radius:0 var(--r-control) var(--r-control) 0}
body.spec .spec-note{display:block}

/* ==> styles/10-inline-edit.css */
.f{position:relative}
.f .pen{position:absolute;right:0;top:5px;width:24px;height:24px;border-radius:var(--r-control);border:1px solid transparent;
  background:none;display:grid;place-items:center;color:var(--muted-2);opacity:0;transition:opacity var(--dur-1)}
.f:focus-within .pen,.f .pen:focus-visible{opacity:1}

.f .pen:focus-visible{opacity:1;background:var(--surface-2);border-color:var(--border);color:var(--ink)}
.f .pen svg{width:16px;height:16px}
.f.ro .pen{display:none}
:root{--rp-primary:#F0501E;--rp-ink:#101417;--rp-font:'Inter',var(--sans)}
.rp{font-family:var(--rp-font);color:var(--rp-ink)}
[data-theme="dark"] .rp{color:var(--ink)}
.rp-hl{position:sticky;top:calc(var(--topbar-h,52px) + 6px);z-index:30;background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow-1);margin-bottom:var(--sp3)}
.rp-hl-top{display:grid;grid-template-columns:minmax(230px,1.1fr) minmax(0,2.4fr) auto;gap:var(--sp4);align-items:center;padding:var(--sp3) var(--sp4)}
.rp-id{display:flex;gap:var(--sp3);align-items:center;min-width:0}
.rp-icon{flex:none;width:40px;height:40px;border-radius:var(--r-surface);display:grid;place-items:center;background:var(--slate-soft);color:var(--slate)}
.rp-icon svg{width:20px;height:20px}
.rp-kicker{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med)}
.rp-name{margin:var(--sp0) 0 0;font-size:var(--t-title);font-weight:var(--w-bold);line-height:var(--lh-tight);display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap;min-width:0}
.rp-name .badge{font-size:var(--t-label)}
.rp-fields{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--sp3);min-width:0}
.rp-field .k{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-field .v{font-size:var(--t-small);font-weight:var(--w-med);margin-top:var(--sp0);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp-actions{display:flex;gap:var(--sp2);align-items:center;flex:none;position:relative}
.rp-actions-main{display:flex;gap:var(--sp2)}
.rp-actions .btn.pri{background:var(--rp-primary);border-color:var(--rp-primary);color:var(--on-fill)}
.rp-menu{position:absolute;right:0;top:calc(100% + 6px);min-width:230px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-surface);box-shadow:var(--shadow-2);padding:var(--sp2);display:flex;flex-direction:column;gap:var(--sp0);z-index:40}
.rp-menu[hidden]{display:none}
.rp-menu .btn{justify-content:flex-start;width:100%;border:0;background:transparent;text-align:left;box-shadow:none}

.rp-menu .btn.pri{background:transparent;color:var(--rp-ink)}
[data-theme="dark"] .rp-menu .btn.pri{color:var(--ink)}
.rp-below{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--sp3);overflow:hidden}
.rp-below .path-wrap{border-top:0}
.rp.has-below .rp-hl{border-bottom-left-radius:0;border-bottom-right-radius:0;margin-bottom:0;box-shadow:none}
.rp.has-below .rp-below{border-top:0;border-top-left-radius:0;border-top-right-radius:0}
.rp.has-below .rp-below .path-wrap{background:transparent}
.rp-tabs{margin-bottom:var(--sp3);background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}
.rp-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--sp4);align-items:start}
.rp-main{min-width:0}
.rp-main > .pane,.rp-extra > .pane{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);margin-bottom:var(--sp4)}
.rp-main .pane.on{display:block}
.rp-side{min-width:0}
.rp-body.rp-full{grid-template-columns:minmax(0,1fr)}
.rp-body.rp-full .rp-side{display:none}
.rp-tab-activity{display:none}
.rp-details-body .sect > :is(h2,h3,h4){cursor:pointer;user-select:none}
.rp-details-body .sect > :is(h2,h3,h4)::before{content:'\25BE';font-size:var(--t-label);color:var(--muted-2);width:12px;display:inline-block}
.rp-details-body .sect.collapsed > :is(h2,h3,h4)::before{content:'\25B8'}
.rp-details-body .sect.collapsed .fgrid{display:none}
.rp-details-body .fgrid{grid-template-columns:1fr 1fr;gap:0 var(--sp6)}
.rp-details-body .f{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:0 var(--sp3);align-items:start;padding:var(--sp2) var(--sp5) var(--sp2) 0}
.rp-details-body .f .k{margin:0;padding-top:var(--sp0)}
.rp-details-body .f .v{margin:0}
.rp-details-body .f .fin{grid-column:2}
.rp-details-body .f .der,.rp-details-body .f .msg,.rp-details-body .f .spec-note{grid-column:1 / -1}
.rp-details-body .f .pen{top:6px}
.rp-details-body .f.ro .v{color:var(--muted)}
.rp-details-body .f .v.na{color:var(--muted-2);font-style:italic}
.rp-related .card-h h3 .count{font-size:var(--t-small);color:var(--muted);font-weight:var(--w-med);text-transform:none;letter-spacing:0}
.rp-related .card-h .sp{display:flex;gap:var(--sp2);margin-left:auto}
.rp-related table td,.rp-related table th{font-size:var(--t-small)}
.rp-related .mini{color:var(--muted-2)}
.rp-activity .rp-act{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 var(--sp3);padding:var(--sp2) 0;border-bottom:1px solid var(--surface-2);font-size:var(--t-small)}
.rp-activity .rp-act:last-child{border-bottom:0}
.rp-activity .rp-act .when{color:var(--muted-2);white-space:nowrap;font-size:var(--t-label);padding-top:var(--sp0)}
.rp-activity .rp-act .who{color:var(--muted);font-size:var(--t-label)}
.rp-notes textarea{width:100%;min-height:110px;resize:vertical}

.f.dirty{background:var(--amber-soft);border-radius:var(--r-control);margin:0 -8px;padding-left:var(--sp2);padding-right:var(--sp2)}
.f.dirty .k::after{content:"edited";margin-left:var(--sp2);font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;
  text-transform:uppercase;background:var(--amber-soft);color:var(--amber);padding:var(--sp0) var(--sp1);border-radius:var(--r-control)}
.f.err .fin{border-color:var(--red);background:var(--red-soft)}
.f .msg{display:none;font-size:var(--t-label);color:var(--red);margin-top:var(--sp1);font-weight:var(--w-med)}
.f.err .msg{display:block}
.fin{width:100%;border:1px solid var(--line-strong);border-radius:var(--r-control);padding:var(--sp2) var(--sp2);font-size:var(--t-small);background:var(--card);color:var(--ink);
  font-family:inherit;margin-top:var(--sp0)}
.fin:focus{outline:var(--focus-ring);outline-offset:0;border-color:var(--blue)}
input.in,select.in,textarea.in{border:1px solid var(--line-strong);border-radius:var(--r-control);padding:var(--sp2) var(--sp2);font-size:var(--t-small);
  background-color:var(--card);color:var(--ink);font-family:inherit}
input.in::placeholder,textarea.in::placeholder{color:var(--muted-2)}
input.in:focus,select.in:focus,textarea.in:focus{outline:var(--focus-ring);outline-offset:0;border-color:var(--blue)}
textarea.fin{min-height:64px;resize:vertical;line-height:var(--lh-prose)}
.f .edit-row{display:flex;gap:var(--sp2);align-items:center;margin-top:var(--sp0)}
.f .der{font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp1);display:flex;align-items:center;gap:var(--sp2);flex-wrap:wrap}
.f .der button{border:1px solid var(--border);background:var(--card);border-radius:var(--r-control);padding:var(--sp0) var(--sp2);font-size:var(--t-label);font-weight:var(--w-med);color:var(--muted)}

.ovr{font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;background:var(--slate-soft);
  color:var(--slate);padding:var(--sp0) var(--sp1);border-radius:var(--r-control)}
.lockbadge{font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;background:var(--slate-soft);
  color:var(--slate);padding:var(--sp0) var(--sp1);border-radius:var(--r-control)}

.savebar{position:fixed;left:0;right:0;bottom:0;z-index:80;background:color-mix(in srgb,var(--shade) 97%,transparent);color:var(--on-fill);
  padding:var(--sp3) var(--sp5);display:none;align-items:center;gap:var(--sp4);box-shadow:var(--shadow-1)}
.savebar.on{display:flex}
.savebar .n{font-size:var(--t-small);font-weight:var(--w-med)}
.savebar .n b{color:var(--on-deep-warn)}
.savebar .sp{margin-left:auto;display:flex;gap:var(--sp2)}
.savebar button{border-radius:var(--r-control);padding:var(--sp2) var(--sp4);font-size:var(--t-small);font-weight:var(--w-med);border:1px solid color-mix(in srgb,var(--on-fill) 25%,transparent);
  background:transparent;color:var(--on-fill)}

.savebar button.pri{background:var(--brand-cta);border-color:var(--brand-cta);color:var(--on-brand)}

body.has-savebar{padding-bottom:58px}

#boot-veil{position:fixed;inset:0;z-index:120;display:none;align-items:center;justify-content:center;
  background:var(--bg);}
.boot-card{width:min(420px,86vw);text-align:center;display:flex;flex-direction:column;
  align-items:center;gap:var(--sp3)}
.boot-mark{font-family:var(--display);font-weight:var(--w-med);font-size:var(--t-kpi);
  color:var(--brand-text)}
.boot-title{font-family:var(--display);font-weight:var(--w-body);font-size:var(--t-body);color:var(--ink)}
.boot-detail{font-size:var(--t-small);color:var(--muted);line-height:var(--lh-prose)}
.boot-bar{width:180px;height:3px;border-radius:var(--r-control);background:var(--line);overflow:hidden;margin-top:var(--sp1)}
body.is-loading #main .card:not(.sk-host)>*,body.is-loading #main .kpi:not(.sk)>*{visibility:hidden}
#boot-veil.sk-shield{background:transparent}
.sk-line{display:block;height:10px;border-radius:var(--r-control);background:var(--line)}
.kpi.sk .sk-k{width:45%}
.kpi.sk .sk-v{width:35%;height:22px;margin:var(--sp3) 0}
.kpi.sk .sk-d{width:70%}
.sk-row td{padding:var(--sp3) var(--sp3)}
@media (prefers-reduced-motion:no-preference){.sk-line{animation:sk-pulse 1.4s ease-in-out infinite}}
@keyframes sk-pulse{50%{opacity:.5}}
.boot-bar i{display:block;width:40%;height:100%;border-radius:var(--r-control);background:var(--ink-fill);
  animation:bootslide 1.1s ease-in-out infinite}
@keyframes bootslide{0%{transform:translateX(-100%)}100%{transform:translateX(350%)}}
@media (prefers-reduced-motion:reduce){.boot-bar i{animation:none;width:100%}}
.toast{position:fixed;left:50%;bottom:74px;transform:translateX(-50%) translateY(8px);z-index:90;
  background:var(--ink-fill);color:var(--on-fill);padding:var(--sp3) var(--sp4);border-radius:var(--r-surface);font-size:var(--t-small);font-weight:var(--w-med);
  box-shadow:var(--shadow-2);opacity:0;transition:var(--dur-2);pointer-events:none;display:flex;gap:var(--sp2);align-items:center}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
.toast .ok{width:17px;height:17px;border-radius:50%;background:var(--green);display:grid;place-items:center}
.toast .ok svg{width:9px;height:9px}
.spec-note .why{font-size:var(--t-label);color:var(--muted);line-height:var(--lh-ui)}
.spec-note .vals{font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp1);font-family:var(--mono)}

.togglebar{display:flex;align-items:center;gap:var(--sp3);flex-wrap:wrap;margin-bottom:var(--sp4);
  background:var(--card);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp2) var(--sp4);box-shadow:var(--shadow)}
.switch{display:flex;align-items:center;gap:var(--sp2);font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted)}
.switch input{appearance:none;width:40px;height:24px;border-radius:var(--r-pill);background:var(--muted-3);
  position:relative;transition:background var(--dur-1);flex:0 0 40px}
.switch input:checked{background:var(--ink-fill)}
.switch input::after{content:"";position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:var(--card);transition:var(--dur-1)}
.switch input:checked::after{transform:translateX(16px)}
.legend{margin-left:auto;display:flex;gap:var(--sp2);align-items:center;font-size:var(--t-label);color:var(--muted-2);
  flex-wrap:wrap;min-width:0}
.legend .prov{display:inline-block}

table{width:100%;border-collapse:collapse}
.tw{overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;position:relative}
.card,.card-b,main.wrap,#main,.view{min-width:0}
main.wrap{overflow-x:clip}
#sp-rules .tw{overflow:visible}
#sp-rules .thr-in{width:100%;min-width:120px;font:inherit;font-size:var(--t-small);color:var(--ink);background:var(--card);border:1px solid var(--control-line);border-radius:var(--r-control);padding:var(--sp1) var(--sp2)}
#sp-rules .thr-in:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 2px color-mix(in srgb,var(--focus) 30%,transparent)}
.preview{max-width:100%}
.prev-b table{min-width:520px}
th .thunit{text-transform:none}
th{text-align:left;font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-bold);
  padding:var(--sp2) var(--sp3);border-bottom:1px solid var(--border-2);white-space:nowrap}
td{padding:var(--sp2) var(--sp3);border-bottom:1px solid var(--surface-2);font-size:var(--t-small);vertical-align:top}
tbody tr:last-child td{border-bottom:0}

.mono{font-family:var(--mono);font-size:var(--t-small);}

h1,h2,h3,h4,h5,.hl-name,.kpi .v,.logo{font-family:var(--display)}
h1{font-size:var(--t-page)} h2{font-size:var(--t-title)} h3{font-size:var(--t-body)} h4,h5,h6{font-size:var(--t-small)}
.page-h h1{font-size:var(--t-page);font-weight:var(--w-med);}
.hl-name{font-weight:var(--w-med)}
.card-h :is(h2,h3){font-family:var(--display);font-weight:var(--w-med);}
.kpi .v{font-weight:var(--w-med);font-feature-settings:'tnum' 1,'zero' 1}
.kpi .k{font-family:var(--sans);font-weight:var(--w-body);}
.sect > :is(h2,h3,h4){font-family:var(--sans);font-weight:var(--w-med);}
.rowlbl,.hl-kicker{font-family:var(--sans);font-weight:var(--w-med);}
.kpi .v,.f .v,td,.hl-f .v,.count,.loop .lp .v,.terrlist .tr .c{font-feature-settings:'tnum' 1}
.badge,.chip,.lg{font-family:var(--sans);font-weight:var(--w-med);}
.btn{font-family:var(--sans);font-weight:var(--w-med);}
.logo>div{font-family:var(--display);font-weight:var(--w-bold);font-size:var(--t-title);letter-spacing:-.03em}
td .mono,td .linkish,td .badge{white-space:nowrap}
.linkish{color:var(--ink);cursor:pointer;font-weight:var(--w-body)}
button.linkish{background:none;border:0;font:inherit;font-weight:var(--w-body);
  color:var(--ink);text-align:left;text-decoration:underline;text-underline-offset:2px;
  text-decoration-thickness:1px;text-decoration-color:color-mix(in srgb,var(--ink) 45%,transparent);
  display:inline-flex;align-items:center;min-height:24px;padding:var(--sp0) 0}


.linkish:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--r-control)}


.health{display:grid;grid-template-columns:132px 1fr;gap:var(--sp4);align-items:center}
.score{position:relative;width:132px;height:132px}
.score svg{transform:rotate(-90deg)}
.score .num{position:absolute;inset:0;display:grid;place-items:center;text-align:center}
.score .num b{font-size:var(--t-kpi);font-weight:var(--w-bold);display:block;line-height:1}
.score .num span{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med)}
.factors{display:grid;gap:var(--sp3)}
.factor .fname{display:block;font-size:var(--t-small);font-weight:var(--w-med);margin-bottom:var(--sp1)}
.factor .frow{display:flex;align-items:center;gap:var(--sp2)}
.factor .frow .pct{flex:0 0 auto;min-width:36px;font-size:var(--t-small);color:var(--muted)}
.factor .frow .bar{flex:1 1 auto;min-width:0}
.factor .fnote{font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp1);line-height:var(--lh-ui)}
.bar{height:7px;background:var(--surface-3);border-radius:var(--r-control);overflow:hidden}
.bar i{display:block;height:100%;border-radius:var(--r-control)}
.thresholds{display:grid;gap:var(--sp2);margin-top:var(--sp4);padding-top:var(--sp3);border-top:1px solid var(--border-2)}
.thr{display:flex;align-items:center;gap:var(--sp2);font-size:var(--t-small)}
.thr .rng{font-family:var(--mono);font-size:var(--t-label);font-weight:var(--w-bold);padding:var(--sp0) var(--sp2);border-radius:var(--r-control);min-width:62px;text-align:center}
.open-q{background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);border-radius:var(--r-control);padding:var(--sp2) var(--sp3);font-size:var(--t-small);color:var(--amber);margin-top:var(--sp3);line-height:var(--lh-prose)}
.open-q b{color:inherit}

.tl-filters{display:flex;gap:var(--sp2);flex-wrap:wrap;padding:var(--sp3) var(--sp4);border-bottom:1px solid var(--border-2);align-items:center}
.fbtn{border:1px solid var(--border);background:var(--card);border-radius:var(--r-pill);padding:var(--sp1) var(--sp3);font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted)}

.fbtn.on{background:var(--ink-fill);border-color:var(--ink-fill);color:var(--on-ink)}
.tl{padding:var(--sp2) var(--sp4) var(--sp4);position:relative}
.ev{display:grid;grid-template-columns:22px 1fr;gap:var(--sp3);padding:var(--sp3) 0 var(--sp3);border-bottom:1px solid var(--surface-2);position:relative}
.ev:last-child{border-bottom:0}
.ev::before{content:"";position:absolute;left:10.5px;top:0;bottom:0;width:1.5px;background:var(--border-2)}
.ev:first-child::before{top:22px}
.ev:last-child::before{bottom:calc(100% - 22px)}
.ev .marker{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;z-index:1;margin-top:var(--sp0);
  border:2px solid var(--on-fill);box-shadow:0 0 0 1px var(--border-2)}
.ev .marker svg{width:16px;height:16px}
.ev .body{min-width:0}
.ev .h{display:flex;gap:var(--sp2);align-items:baseline;flex-wrap:wrap}
.ev .h b{font-size:var(--t-small);font-weight:var(--w-med);}
.ev .when{font-size:var(--t-label);color:var(--muted-2);white-space:nowrap}
.ev .delta{display:inline-flex;align-items:center;gap:var(--sp2);margin-top:var(--sp2);font-size:var(--t-small);flex-wrap:wrap}
.ev .old{background:var(--surface-2);color:var(--muted);padding:var(--sp0) var(--sp2);border-radius:var(--r-control);text-decoration:line-through;text-decoration-color:var(--line)}
.ev .arw{color:var(--muted-2);font-weight:var(--w-bold)}
.ev .new{background:var(--green-soft);color:var(--green);padding:var(--sp0) var(--sp2);border-radius:var(--r-control);font-weight:var(--w-med)}
.ev .meta{font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp2);display:flex;gap:var(--sp3);flex-wrap:wrap}
.ev .meta em{font-style:normal;color:var(--muted);font-weight:var(--w-med)}
.ev .note{font-size:var(--t-small);color:var(--muted);margin-top:var(--sp2);line-height:var(--lh-prose)}
.m-life{background:var(--green-soft);color:var(--green)} .m-loc{background:var(--slate-soft);color:var(--slate)}
.m-fw{background:var(--slate-soft);color:var(--slate)} .m-net{background:var(--slate-soft);color:var(--slate)}
.m-health{background:var(--amber-soft);color:var(--amber)}
.m-rma{background:var(--red-soft);color:var(--red)}

.empty-note{padding:var(--sp5) var(--sp4);text-align:center;color:var(--muted-2);font-size:var(--t-small)}
.mini{font-size:var(--t-small);color:var(--muted);line-height:var(--lh-prose)}
#qap-table th.bt-th{white-space:nowrap;text-align:center}
#qap-table .bt-sub{display:block;font-size:var(--t-label);text-transform:inherit;color:var(--muted-2);font-weight:var(--w-med)}
#qap-table td.bt-c{text-align:center;vertical-align:middle;padding-left:var(--sp2);padding-right:var(--sp2)}
#qap-table th.bt-th{padding-left:var(--sp2);padding-right:var(--sp2)}
#qap-table td{vertical-align:middle}
#qap-table{font-size:var(--t-small)}
#qap-table td,#qap-table th{font-size:1em}
#qap-table td.bt-sn b{font-size:1em;font-weight:var(--w-med)}
#qap-zoom{zoom:var(--qa-zoom,1)}
.qa-zoom-ctl{display:inline-flex;align-items:center;gap:var(--sp0);margin-left:auto}
.qa-zoom-ctl button{font:inherit;font-size:var(--t-small);min-width:30px;padding:var(--sp1) var(--sp2);border:1px solid var(--border);border-radius:var(--r-control);background:var(--card);color:var(--ink);cursor:pointer}

.qa-zoom-ctl .qa-zoom-pct{min-width:52px;font-family:var(--mono)}
#qap-table .bt-chk{width:17px;height:17px;accent-color:var(--green);cursor:pointer}
#qap-table .bt-chk:disabled{cursor:default}
#qap-table .bt-in{width:104px;font:inherit;font-size:1em;padding:var(--sp1) var(--sp2);border:1px solid var(--border);border-radius:var(--r-control);background:var(--card);color:var(--ink)}
#qap-table .bt-num{width:70px;font-family:var(--mono)}
#qap-table .bt-sel{width:104px;cursor:pointer}
#qap-table .bt-trk{width:136px;font-family:var(--mono);font-size:1em}
#qap-table .bt-in:focus{outline:var(--focus-ring);outline-offset:1px}
#qap-table .bt-in:disabled{opacity:.7}
#qap-table .bt-note{width:180px;font-family:inherit}
#qap-table .bt-who{width:150px}
#qap-table td.bt-sn{white-space:nowrap}
#qap-table .bt-meta{display:block;font-size:1em;color:var(--muted-2);margin-top:var(--sp0);white-space:nowrap}
#qap-table .bt-status{white-space:nowrap}
#qap-table .bt-photos{white-space:nowrap}
#qap-table .bt-saving{outline:2px solid var(--amber);outline-offset:1px}
#qap-table .bt-err{outline:2px solid var(--red,#c0392b);outline-offset:1px}
.qa-toolbar{display:flex;gap:var(--sp3);flex-wrap:wrap;align-items:center;margin:0 0 var(--sp3)}
.qa-toolbar input,.qa-toolbar select{font:inherit;font-size:var(--t-small);padding:var(--sp1) var(--sp2);border:1px solid var(--border);border-radius:var(--r-control);background-color:var(--card);color:var(--ink)}
.qa-toolbar input{width:220px}
.qa-teams{position:relative;display:inline-block}
.qa-teams-btn{font:inherit;font-size:var(--t-small);padding:var(--sp1) var(--sp3);border:1px solid var(--border);border-radius:var(--r-control);background:var(--card);color:var(--ink);cursor:pointer;white-space:nowrap}
.qa-teams-btn.on{border-color:var(--brand,var(--ink));font-weight:var(--w-med)}
.qa-teams-panel{position:absolute;z-index:40;top:calc(100% + 6px);left:0;min-width:280px;max-width:360px;background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);box-shadow:var(--shadow-2);padding:var(--sp2)}
.qa-teams-panel[hidden]{display:none}
.qa-teams-panel input{width:100%;box-sizing:border-box;margin-bottom:var(--sp2)}
.qa-teams-list{max-height:260px;overflow:auto;display:flex;flex-direction:column;gap:var(--sp0)}
.qa-teams-list label{display:flex;align-items:center;gap:var(--sp2);padding:var(--sp1) var(--sp2);border-radius:var(--r-control);font-size:var(--t-small);cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

.qa-teams-list input{width:15px;height:15px;margin:0;accent-color:var(--green)}
.qa-teams-list .qa-team-int{margin-left:auto;font-size:var(--t-label);color:var(--muted-2);text-transform:uppercase;letter-spacing:.06em}
.qa-teams-foot{display:flex;align-items:center;justify-content:space-between;gap:var(--sp2);margin-top:var(--sp2);padding-top:var(--sp2);border-top:1px solid var(--border)}
#qa-photo-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--sp3);margin:var(--sp3) 0}
#qa-photo-list figure{margin:0;border:1px solid var(--border);border-radius:var(--r-control);overflow:hidden;background:var(--card)}
#qa-photo-list img{display:block;width:100%;height:120px;object-fit:cover;cursor:zoom-in}
#qa-photo-list .qa-ph-missing{display:grid;place-items:center;height:120px;font-size:var(--t-label);color:var(--amber);background:var(--card);padding:0 var(--sp3);text-align:center}
#qa-photo-list figcaption{font-size:var(--t-label);padding:var(--sp2) var(--sp2);color:var(--muted-2);display:flex;justify-content:space-between;gap:var(--sp2);align-items:center}
#qa-photo-list figcaption .qa-ph-meta{display:flex;flex-direction:column;min-width:0;gap:var(--sp0)}
#qa-photo-list figcaption .qa-ph-meta b{color:var(--ink);font-weight:var(--w-med);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qa-photo-list figcaption .qa-ph-meta span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#qa-photo-drop{border:1px dashed var(--border);border-radius:var(--r-control);padding:var(--sp3);text-align:center;font-size:var(--t-small);color:var(--muted-2)}
#qa-photo-drop input{display:block;margin:var(--sp2) auto 0}
#qap-table .bt-bad{border-color:var(--red);color:var(--red)}
#qap-table td.bt-act{white-space:nowrap;text-align:right}
#qa-table td{vertical-align:middle}
#qa-table td.bt-c{text-align:center;padding-left:var(--sp2);padding-right:var(--sp2)}
#qa-table th.bt-th{white-space:nowrap;text-align:center}
#qa-table .bt-sub{display:block;font-size:var(--t-label);text-transform:inherit;color:var(--muted-2);font-weight:var(--w-med)}
#qa-table .bt-in{font:inherit;font-size:var(--t-small);padding:var(--sp1) var(--sp2);border:1px solid var(--border);border-radius:var(--r-control);background:var(--card);color:var(--ink)}
#qa-table .bt-num{width:70px;font-family:var(--mono)}
#qa-table .bt-who{width:190px}
#qa-table .bt-in:focus{outline:var(--focus-ring);outline-offset:1px}
#qa-table .bt-in:disabled{opacity:.7}
#qa-table td.bt-sn{white-space:nowrap}
#qa-table td.bt-sn b{font-weight:var(--w-med)}
#qa-table .bt-meta{display:block;color:var(--muted-2);margin-top:var(--sp0);white-space:nowrap}
#qa-table .bt-saving{outline:2px solid var(--amber);outline-offset:1px}
#qa-table .bt-err{outline:2px solid var(--red,#c0392b);outline-offset:1px}
#qap-table tr.bt-done td{background:var(--green-soft)}
#qap-table .btn:disabled{opacity:.45;cursor:not-allowed}
.kv{display:flex;justify-content:space-between;gap:var(--sp3);padding:var(--sp2) 0;border-bottom:1px solid var(--surface-2);font-size:var(--t-small)}
.kv:last-child{border-bottom:0}
.kv .k{color:var(--muted);font-size:var(--t-small)}
.kv .v{font-weight:var(--w-med);text-align:right}
.view{display:none}
.view.on{display:block}
.pill-row{display:flex;gap:var(--sp2);flex-wrap:wrap;margin-top:var(--sp2)}
.gap{background:var(--red-soft);border:1px solid color-mix(in srgb,var(--red) 35%,transparent);color:var(--red);border-radius:var(--r-control);padding:var(--sp2) var(--sp3);font-size:var(--t-small);line-height:var(--lh-prose);margin-top:var(--sp3)}
.gap b{color:inherit}
.map-mock{height:190px;border-radius:var(--r-control);background:
  linear-gradient(0deg,rgba(14,17,22,.04),rgba(14,17,22,.04)),
  repeating-linear-gradient(0deg,#E8EDE7 0 1px,transparent 1px 26px),
  repeating-linear-gradient(90deg,#E8EDE7 0 1px,transparent 1px 26px),
  linear-gradient(140deg,#F3F6F1,#E6EDE6);
  border:1px solid var(--border);position:relative;overflow:hidden}
.pin{position:absolute;width:15px;height:15px;border-radius:50%;border:2.5px solid var(--on-fill);box-shadow:var(--shadow-1)}
.map-legend{position:absolute;left:9px;bottom:9px;background:color-mix(in srgb,var(--on-fill) 94%,transparent);border:1px solid var(--border);
  border-radius:var(--r-control);padding:var(--sp2) var(--sp2);font-size:var(--t-label);color:var(--muted);display:flex;gap:var(--sp3)}
.map-legend i{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:var(--sp1)}

/* ==> styles/15-dashboard-viz.css */
.viz{
  --surface-1:#FFFFFF;
  --s1:#2A5FD0; --s2:#eb6834; --s3:#0e8f61;
  --st-good:#127C4E; --st-warn:#B26A00; --st-serious:#E4572E; --st-crit:#B3261E; --st-none:var(--muted-3);
}
.page-h{display:flex;align-items:flex-end;gap:var(--sp4);flex-wrap:wrap;margin-bottom:var(--sp4)}
.page-h h1{margin:0;font-size:var(--t-page);font-weight:var(--w-med);}
.page-h p{margin:var(--sp0) 0 0;font-size:var(--t-small);color:var(--muted);max-width:640px}
.page-h .sp{margin-left:auto;display:flex;gap:var(--sp2);flex-wrap:wrap}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(152px,1fr));gap:var(--sp3);margin-bottom:var(--sp4)}
.kpi{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--sp3) var(--sp4)}
.kpi .k{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med)}
.kpi .v{font-size:var(--t-kpi);font-weight:var(--w-bold);line-height:var(--lh-tight);margin-top:var(--sp1);font-variant-numeric:tabular-nums}
.kpi .v small{font-size:var(--t-body);font-weight:var(--w-med);color:var(--muted-2);}
.kpi .d{font-size:var(--t-small);font-weight:var(--w-med);margin-top:var(--sp1);display:flex;align-items:center;gap:var(--sp1)}
.kpi .d.up{color:var(--green)} .kpi .d.dn{color:var(--red)} .kpi .d.flat{color:var(--muted-2)}
.kpi .spark{margin-top:var(--sp2);display:block}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{transition-duration:.01ms !important;animation-duration:.01ms !important;animation-iteration-count:1 !important;scroll-behavior:auto !important}}
.krow{grid-template-columns:repeat(auto-fit,minmax(168px,1fr))}
#home-kpis{grid-template-columns:repeat(auto-fit,minmax(238px,1fr))}
#hp-ops.editing .krow{min-height:58px}
#env-kpis .kpi{padding:var(--sp5) var(--sp5)}
#env-kpis .kpi .k{font-size:var(--t-small)}
#env-kpis .kpi .v{font-size:var(--t-kpi);margin-top:var(--sp2)}
#hp-ops .krow{gap:0;background:var(--card);border:1px solid var(--border);border-radius:var(--r-surface);overflow:hidden}
#hp-ops .krow>.kpi{background:transparent;border:0;border-radius:0;box-shadow:none;
  border-left:1px solid var(--border);border-top:1px solid var(--border);margin:-1px 0 0 -1px}
#env-kpis .kpi .d{font-size:var(--t-small);margin-top:var(--sp2)}
.scope-banner{background:var(--slate-soft);color:var(--ink);border:1px solid var(--line);border-radius:var(--r-surface);padding:var(--sp2) var(--sp4);font-size:var(--t-small);font-weight:var(--w-med);margin-bottom:var(--sp4);display:flex;align-items:center;gap:var(--sp2)}
.scope-banner::before{content:"◔";font-size:var(--t-body)}
.scope-banner[hidden]{display:none}
.sn-warn{font-size:var(--t-label);color:var(--red);font-weight:var(--w-med);margin-top:var(--sp0)}
.loop{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--sp3);margin:var(--sp1) 0 var(--sp0)}
.loop .lp{border:1px solid var(--border);border-radius:var(--r);padding:var(--sp3) var(--sp3);background:var(--card);position:relative}
.loop .lp .n{font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2)}
.loop .lp .v{font-size:var(--t-page);font-weight:var(--w-bold);margin-top:var(--sp1);font-variant-numeric:tabular-nums}
.loop .lp .s{font-size:var(--t-label);color:var(--muted);margin-top:var(--sp0);line-height:var(--lh-ui)}
.loop .lp.auto{border-color:var(--line);background:var(--slate-soft)}

#terr-table tbody tr.terr-row{cursor:pointer}

#terr-table tbody tr.terr-row.sel{background:var(--slate-soft)}
#terr-table tbody tr.terr-row.sel td:first-child{box-shadow:inset 3px 0 0 var(--ink-fill)}
.terrlist .tr{display:flex;align-items:flex-start;gap:var(--sp3);border:1px solid var(--border);border-radius:var(--r);
  padding:var(--sp3) var(--sp3);cursor:pointer;background:var(--card);text-align:left;width:100%;font:inherit}

.terrlist .tr.sel{border-color:var(--line-strong);background:var(--slate-soft)}
.terrlist .tr .sw{width:14px;height:14px;border-radius:var(--r-control);flex:0 0 14px;margin-top:var(--sp0)}
.terrlist .tr b{font-size:var(--t-small);display:block}
.terrlist .tr .m{font-size:var(--t-label);color:var(--muted);margin-top:var(--sp0);line-height:var(--lh-ui)}
.terrlist .tr .c{margin-left:auto;font-size:var(--t-label);color:var(--muted-2);font-weight:var(--w-med);text-align:right;white-space:nowrap}
.krow-empty{grid-column:1/-1;display:flex;align-items:center;justify-content:center;min-height:58px;
  border:1px dashed var(--border-2);border-radius:var(--r);color:var(--muted-2);font-size:var(--t-small);font-weight:var(--w-med)}
.rowlbl:empty{display:none}
#hp-ops.editing .rowlbl:empty{display:inline-block;min-width:190px}
#hp-ops.editing .rowlbl:empty::before{content:'Name this section';color:var(--muted-2)}
.rowlbl{display:inline-block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-family:var(--display);font-size:var(--t-title);text-transform:none;
  color:var(--ink);font-weight:var(--w-bold);margin:var(--sp2) 0 var(--sp3) -3px;border-radius:var(--r-control);padding:var(--sp0) var(--sp1)}


.ts-empty{padding:var(--sp5) var(--sp4);color:var(--muted-2);font-size:var(--t-small);text-align:center;line-height:var(--lh-prose)}
/* ==> styles/20-layout-edit-mode.css */
#layout-bar{margin:0 0 var(--sp4)}
.lb-in{display:flex;align-items:flex-start;gap:var(--sp3);background:var(--slate-soft);
  border:1px solid var(--line);border-radius:var(--r);padding:var(--sp3) var(--sp4)}
.lb-ic{flex:0 0 26px;width:26px;height:26px;border-radius:var(--r-control);background:var(--s1);color:var(--on-fill);
  display:flex;align-items:center;justify-content:center;margin-top:var(--sp0)}
.lb-t{flex:1 1 auto;min-width:0;font-size:var(--t-small);line-height:var(--lh-prose);color:var(--ink)}
.lb-t b{display:block;font-size:var(--t-small);margin-bottom:var(--sp0)}
.lb-t span{color:var(--muted)}
.lb-t kbd{font-family:var(--mono);font-size:var(--t-label);background:var(--card);border:1px solid var(--border);
  border-bottom-width:2px;border-radius:var(--r-control);padding:0 var(--sp1)}
.lb-a{flex:0 0 auto;display:flex;gap:var(--sp2);align-items:center}

#hp-ops.editing .kpi,#hp-ops.editing .grid2>.card,#hp-ops.editing .grid3>.card{cursor:grab}
#hp-ops.editing .kpi:focus-visible,#hp-ops.editing .rowlbl:focus-visible{outline:var(--focus-ring);outline-offset:2px}
#hp-ops.editing .kpi{position:relative;border-color:var(--control-line)}
#hp-ops.editing .kpi::after{content:'';position:absolute;top:7px;right:8px;width:12px;height:8px;opacity:.42;
  background:radial-gradient(circle,var(--muted-2) 1.1px,transparent 1.2px) 0 0/4px 4px}
#hp-ops.editing .rowlbl{background:var(--card);border:1px dashed var(--border-2);cursor:text}

#hp-ops.editing .grid2>.card>.card-h,#hp-ops.editing .grid3>.card>.card-h{cursor:grab}
.drag-src{opacity:.38}
.krow.drop-in,.grid2.drop-in,.grid3.drop-in{outline:2px dashed var(--s1);outline-offset:5px;border-radius:var(--r)}
.drop-mark{border-left:3px solid var(--s1) !important;margin-left:-3px}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp4);align-items:start}
.grid2.eq{align-items:stretch}
.grid2.eq>.card{display:flex;flex-direction:column}
.grid2.eq>.card>.card-b{flex:1}
#hp-fleet,#hp-exec{--home-fit:0px;display:grid;gap:var(--sp4);min-height:0;
  height:max(var(--home-fit),380px)}
#hp-fleet{grid-template-rows:auto 1fr 1fr}
#hp-exec{grid-template-rows:auto 1fr}
#hp-fleet>.grid2{min-height:0}
#hp-fleet .kpis,#hp-exec .kpis{margin-bottom:0}
#hp-fleet .kpis{grid-template-columns:repeat(8,minmax(0,1fr))}
#hp-fleet .grid2>.card,#hp-exec>.card{min-height:0;overflow:hidden}
#hp-fleet .grid2>.card>.card-b,#hp-exec>.card>.card-b{min-height:0;overflow:auto}
#hp-fleet .card,#hp-exec>.card{margin-bottom:0}
#hp-fleet .kpis,#hp-exec .kpis{margin-bottom:var(--sp3)}
#hp-fleet .kpi,#hp-exec .kpi{padding:var(--sp2) var(--sp4)}
#hp-fleet .card-h,#hp-exec .card-h{padding:var(--sp2) var(--sp4)}
#hp-fleet .card-b,#hp-exec .card-b{padding:var(--sp2) var(--sp4)}
#hp-fleet .stackleg{margin-top:var(--sp2)}
#hp-exec .card-b{padding-bottom:var(--sp1)}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp4);align-items:start}
.health-top{--health-card-h:236px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:var(--health-card-h);gap:var(--sp3);margin-bottom:var(--sp4);align-items:stretch}
.health-top .health-kpis{display:contents}
.health-top > .card,.health-top .health-metric{height:var(--health-card-h);min-width:0;overflow:hidden;margin:0}
.health-top #health-hist-card{grid-column:1 / span 2;grid-row:1 / span 2;height:auto}
.health-top #health-hist-card > .card-b{display:flex;flex-direction:column;justify-content:center}
.health-top .health-metric > .card-b{padding:var(--sp4) var(--sp4);display:flex;flex-direction:column;justify-content:center;height:100%}
.health-top .health-metric .k{font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted-2);font-weight:var(--w-med);line-height:var(--lh-tight)}
.health-top .health-metric .v{font-size:var(--t-kpi);font-weight:var(--w-med);margin-top:var(--sp2)}
.health-top .health-metric .v small{font-size:var(--t-small);font-weight:var(--w-body);color:var(--muted)}
.health-top .health-metric .d{font-size:var(--t-small);color:var(--muted);margin-top:var(--sp2)}
.health-top #ch-hist svg{max-width:100%;height:auto;max-height:340px}
.health-mid{--health-card-h:236px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));grid-auto-rows:var(--health-card-h);gap:var(--sp3);margin-bottom:var(--sp4);align-items:stretch}
.health-mid > .card{margin:0;min-width:0;overflow:hidden}
.health-mid #health-adc-card{grid-column:1 / -1;grid-row:1 / span 2}
.health-mid #ch-fleetcharge svg{width:100%;height:158px!important}
#hp-data #health-cost-card{margin-bottom:var(--sp4)}
#hp-data #health-cost-card > .card-b{display:grid;grid-template-columns:minmax(0,340px) minmax(0,1fr);gap:var(--sp1) var(--sp4);align-items:start}
#hp-data #health-cost-card #ch-carrier{grid-column:1}
#hp-data #health-cost-card #data-leg{grid-column:2;margin-top:var(--sp0)}
#hp-data #health-cost-card #data-leg .row{grid-template-columns:11px 1fr auto}
#hp-data #health-cost-card #data-leg .row .p{display:none}
#hp-data #health-cost-card #data-note{grid-column:1 / -1;margin-top:var(--sp2)}
#hp-data #ch-carrier svg{width:100%;height:auto}
.chart-sub{font-size:var(--t-small);color:var(--muted);margin:-4px 0 var(--sp3)}
.legend-row{display:flex;gap:var(--sp4);flex-wrap:wrap;margin-bottom:var(--sp3)}
.lg{display:flex;align-items:center;gap:var(--sp2);font-size:var(--t-small);color:var(--muted);font-weight:var(--w-body)}
.lg i{width:10px;height:10px;border-radius:var(--r-control);flex:0 0 10px}
.axis-lbl{font-size:var(--t-label);fill:var(--muted);font-weight:var(--w-med)}
.grid-line{stroke:var(--surface-3);stroke-width:1}
.baseline{stroke:var(--line);stroke-width:1}
.target-line{stroke:var(--ink);stroke-width:1.5;stroke-dasharray:4 3;opacity:.55}
.val-lbl{font-size:var(--t-label);fill:var(--muted);font-weight:var(--w-med)}
svg .mark{transition:opacity var(--dur-1)}



#tip{position:fixed;z-index:99;pointer-events:none;background:var(--ink-fill);color:var(--on-fill);border-radius:var(--r-control);
  padding:var(--sp2) var(--sp3);font-size:var(--t-small);line-height:var(--lh-ui);box-shadow:var(--shadow-2);opacity:0;transition:opacity var(--dur-1);max-width:250px}
#tip b{font-weight:var(--w-med)}
#tip .t-sub{color:var(--on-deep-muted);font-size:var(--t-label)}

.stack{display:flex;height:26px;border-radius:var(--r-control);overflow:hidden;background:var(--surface-3)}
.stack i{display:block;height:100%;border-right:2px solid var(--card)}
.stack i:last-child{border-right:0}
.stackleg{display:grid;gap:var(--sp2);margin-top:var(--sp3)}
.stackleg .row{display:grid;grid-template-columns:11px 1fr auto auto;gap:var(--sp2);align-items:center;font-size:var(--t-small)}
.stackleg .row i{width:11px;height:11px;border-radius:var(--r-control)}
.stackleg .row .n{color:var(--muted)}
.stackleg .row .c{font-weight:var(--w-med);font-variant-numeric:tabular-nums}
.stackleg .row .p{color:var(--muted-2);font-size:var(--t-label);width:38px;text-align:right;font-variant-numeric:tabular-nums}

.qrow{display:grid;grid-template-columns:auto 1fr auto;gap:var(--sp3);align-items:start;padding:var(--sp3) 0;border-bottom:1px solid var(--surface-2)}
.qrow:last-child{border-bottom:0}
.qrow .ic{width:26px;height:26px;border-radius:var(--r-control);display:grid;place-items:center;flex:0 0 26px}
.qrow .ic svg{width:16px;height:16px}
.qrow b{font-size:var(--t-small);font-weight:var(--w-med);display:block}
.qrow span{font-size:var(--t-label);color:var(--muted-2)}


.stepper{display:flex;gap:0;overflow-x:auto;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r);padding:var(--sp3) var(--sp4);margin-bottom:var(--sp4)}
.sstep{display:flex;align-items:center;gap:var(--sp2);padding-right:var(--sp5);position:relative;flex:0 0 auto}
.sstep:not(:last-child)::after{content:"";position:absolute;right:9px;top:50%;width:8px;height:8px;border-right:1.5px solid var(--line);border-top:1.5px solid var(--line);transform:translateY(-50%) rotate(45deg)}
.sstep .n{width:23px;height:23px;border-radius:50%;display:grid;place-items:center;font-size:var(--t-label);font-weight:var(--w-bold);background:var(--surface-3);color:var(--muted)}
.sstep .lb{font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted);white-space:nowrap}
.sstep.done .n{background:var(--green-soft);color:var(--green)}
.sstep.done .lb{color:var(--ink)}
.sstep.now .n{background:var(--brand-cta);color:var(--on-brand)}
.sstep.now .lb{color:var(--brand-text);font-weight:var(--w-bold)}

.param{display:grid;gap:var(--sp3)}
.param label{display:block;font-size:var(--t-label);font-weight:var(--w-med);color:var(--muted);margin-bottom:var(--sp1)}
.param .in{width:100%;border:1px solid var(--control-line);border-radius:var(--r-control);padding:var(--sp2) var(--sp3);font-size:var(--t-small);background:var(--card);color:var(--ink)}
.param .in[disabled]{background:var(--surface-2);color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp3)}

.bigmap{height:400px;border-radius:var(--r-surface);position:relative;overflow:hidden;border:1px solid var(--border);
  background:linear-gradient(0deg,color-mix(in srgb,var(--shade) 3%,transparent),color-mix(in srgb,var(--shade) 3%,transparent)),
  repeating-linear-gradient(0deg,var(--surface-3) 0 1px,transparent 1px 34px),
  repeating-linear-gradient(90deg,var(--surface-3) 0 1px,transparent 1px 34px),
  linear-gradient(140deg,var(--surface-2),var(--surface-3))}
.radius{position:absolute;border-radius:50%;background:color-mix(in srgb,var(--blue) 10%,transparent);border:1px dashed color-mix(in srgb,var(--blue) 45%,transparent);transform:translate(-50%,-50%)}
.ppin{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:50%;display:grid;place-items:center;
  font-size:var(--t-label);font-weight:var(--w-bold);color:var(--on-fill);border:2px solid var(--card);box-shadow:var(--shadow-1);cursor:pointer;
  padding:0;font-family:inherit}
.ppin:focus-visible{outline:var(--focus-ring);outline-offset:2px}
.boundary{position:absolute;border:2px dashed color-mix(in srgb,var(--brand) 60%,transparent);border-radius:var(--r-surface);background:color-mix(in srgb,var(--brand) 4%,transparent)}
.maptools{position:absolute;top:10px;right:10px;display:flex;gap:var(--sp2);flex-direction:column}
.maptools button{background:var(--card);border:1px solid var(--border);border-radius:var(--r-control);padding:var(--sp1) var(--sp3);font-size:var(--t-small);font-weight:var(--w-med)}
.maptools button[aria-pressed="true"]{background:var(--ink-fill);border-color:var(--ink-fill);color:var(--on-ink)}
.bigmap.sat{background:
  radial-gradient(circle at 22% 30%,rgba(58,74,46,.55),transparent 42%),
  radial-gradient(circle at 71% 62%,rgba(74,86,52,.5),transparent 46%),
  radial-gradient(circle at 45% 82%,rgba(96,84,58,.45),transparent 40%),
  linear-gradient(155deg,#5A6544,#6E7350 55%,#7C7355)}
.bigmap.sat .radius{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.6)}
.bigmap.sat .boundary{border-color:rgba(255,214,170,.85);background:rgba(255,214,170,.06)}
.bigmap.sat .map-legend{background:rgba(0,0,0,.55);color:#fff;border-color:rgba(255,255,255,.25)}
.celllayer{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(circle at 104% -6%,rgba(42,120,214,.30) 0%,rgba(42,120,214,.16) 34%,rgba(42,120,214,.05) 62%,transparent 78%)}
.celltower{position:absolute;right:2%;top:-2%;font-size:var(--t-title);color:var(--blue,#2A5FD0);text-shadow:0 1px 3px color-mix(in srgb,var(--shade) 40%,transparent);cursor:pointer}
.ppin.hand{border-style:dashed;border-color:var(--ink)}
.mpt{position:absolute;width:9px;height:9px;border-radius:50%;background:var(--ink);
  border:2px solid var(--card);transform:translate(-50%,-50%);box-shadow:var(--shadow-1)}
.map-empty{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted);font-size:var(--t-small);text-align:center;padding:0 var(--sp6)}
#kbd-dialog[hidden],#sub-dialog[hidden]{display:none}
#kbd-dialog,#sub-dialog{position:fixed;inset:0;z-index:140;display:grid;place-items:center;background:color-mix(in srgb,var(--shade) 45%,transparent)}
#sub-dialog .kbd-card{width:min(600px,94vw);max-height:86vh;overflow-y:auto;text-align:left}
.sub-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:var(--sp3);align-items:center;
  padding:var(--sp2) 0;border-top:1px solid var(--border-2);font-size:var(--t-small)}
.sub-row b{font-size:var(--t-small)}
.sub-row .m{color:var(--muted-2);font-size:var(--t-label);display:block}
.kbd-card{background:var(--card);border:1px solid var(--border);border-radius:var(--r-surface);padding:var(--sp5) var(--sp5);
  width:min(460px,92vw);box-shadow:var(--shadow-2)}
.kbd-card h2{font-family:var(--display);font-size:var(--t-title);margin:0 0 var(--sp4)}
.kbd-list{display:grid;grid-template-columns:auto 1fr;gap:var(--sp2) var(--sp4);margin:0 0 var(--sp4);font-size:var(--t-small)}
.kbd-list dt{margin:0} .kbd-list dd{margin:0;color:var(--muted)}
.kbd-opt{display:flex;flex-direction:column;gap:var(--sp1);margin:0 0 var(--sp4);font-size:var(--t-small);
  border-top:1px solid var(--border-2);padding-top:var(--sp4)}
.kbd-opt label{display:flex;align-items:center;gap:var(--sp2);font-weight:var(--w-med)}
.kbd-opt input{width:16px;height:16px}
.pbtns{display:inline-flex;gap:var(--sp1);white-space:nowrap}
.ovmenu{position:fixed;z-index:1200;min-width:210px;max-height:calc(100vh - 16px);overflow:auto;background:var(--card);border:1px solid var(--border);
  border-radius:var(--r-surface);box-shadow:var(--shadow-2);padding:var(--sp1);display:flex;flex-direction:column}
.ovmenu button{text-align:left;background:none;border:0;font:inherit;font-size:var(--t-small);color:var(--ink);
  padding:var(--sp2) var(--sp3);border-radius:var(--r-control);cursor:pointer}

.ovmenu button:focus-visible{background:var(--surface-2,var(--bg));outline:var(--focus-ring);outline-offset:-2px}
.ovsep{height:1px;background:var(--border);margin:var(--sp1) var(--sp2)}
.lrpanel{border:1px solid var(--border);border-radius:var(--r-surface);background:var(--card);padding:var(--sp4);margin-top:var(--sp3)}
.lredit{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp3)}
.lredit label{display:block;font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted-2);margin-bottom:var(--sp1)}
.flash{outline:2px solid var(--focus);outline-offset:3px;transition:outline-color .4s}

.sortable td,.sortable th{white-space:nowrap}
.sortable .badge{white-space:nowrap}
.sortable th{cursor:pointer;user-select:none}

.sortable th .ar{opacity:.62;font-size:var(--t-label);margin-left:var(--sp0)}
.sortable th.act .ar{opacity:1;color:var(--ink)}
.filters{display:flex;gap:var(--sp2);flex-wrap:wrap;align-items:center;padding:var(--sp3) var(--sp4);border-bottom:1px solid var(--border-2)}
.filters select,.filters input{border:1px solid var(--control-line);border-radius:var(--r-control);padding:var(--sp1) var(--sp2);font-size:var(--t-small);background-color:var(--card);color:var(--ink)}
.filters .lb{font-size:var(--t-small);color:var(--muted-2);font-weight:var(--w-med)}
.gsearch-open,.gsearch-close,.page-more,.path-sheet-btn{display:none}
.gsearch-open{align-items:center;justify-content:center;margin-left:auto;background:none;border:0;color:var(--ink);padding:var(--sp2);border-radius:var(--r-control)}
.gsearch-open svg{width:20px;height:20px}
#lc-sheet[hidden]{display:none}
#lc-sheet{position:fixed;inset:0;z-index:200}
.lc-sheet-list{flex-direction:column;align-items:flex-start;list-style:none;margin:0 0 var(--sp4);padding:0}
.lc-sheet-list.path .step+.step{margin-left:0;margin-top:var(--sp1)}
.lc-sheet-list.path .step+.step::after{display:none}
.colpick{position:relative}
.colpick>summary{list-style:none;display:inline-flex;align-items:center}
.colpick>summary::-webkit-details-marker{display:none}
.colpick:not([open])>.colpick-menu{display:none}
.colpick-menu{position:absolute;right:0;top:calc(100% + var(--sp1));z-index:40;min-width:220px;max-height:min(60vh,420px);overflow:auto;
  background:var(--card);border:1px solid var(--border);border-radius:var(--r-surface);box-shadow:var(--shadow-2);padding:var(--sp2)}
.colpick-menu label{display:flex;align-items:center;gap:var(--sp2);padding:var(--sp1) var(--sp2);font-size:var(--t-small);white-space:nowrap;border-radius:var(--r-control)}
.panel-chip{margin-left:var(--sp2)}
.rowlbl:has(+ .panel-chip),.rowlbl + .panel-chip{vertical-align:middle}
.panel-chip[hidden]{display:none}
.why-off{display:block;margin-top:var(--sp1);font-size:var(--t-label);line-height:var(--lh-ui);color:var(--muted);font-weight:var(--w-body);white-space:normal;text-align:left}
.inv-dialog[hidden]{display:none}
.inv-dialog{position:fixed;inset:0;z-index:150;display:grid;place-items:center;background:color-mix(in srgb,var(--shade) 45%,transparent)}
.inv-dialog .il-card{width:min(520px,95vw);max-height:90vh;overflow:auto;text-align:left;background:var(--card);
    border:1px solid var(--border);border-radius:var(--r-surface);padding:var(--sp5);box-shadow:var(--shadow)}
.inv-dialog label.fld-lbl{display:block;font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted);margin:var(--sp3) 0 var(--sp1)}
.inv-dialog .in-txt{width:100%;box-sizing:border-box}
.inv-state[hidden],.inv-msg[hidden],.inv-dialog[hidden],.inv-fleet[hidden]{display:none}
.inv-msg{font-size:var(--t-small);color:var(--muted);margin:0 0 0 var(--sp2)}
p.inv-msg{margin:var(--sp2) 0}
.inv-msg.err{color:var(--red)}
.inv-check{margin:calc(-1 * var(--sp2)) 0 var(--sp4)}
.inv-empty{text-align:center;color:var(--muted-2);padding:var(--sp5)}
.inv-add-grid{display:grid;grid-template-columns:minmax(110px,max-content) minmax(0,1fr);gap:var(--sp2) var(--sp3);align-items:start}
.inv-add-grid>label{padding-top:var(--sp2);font-size:var(--t-small);font-weight:var(--w-med)}
.inv-add-grid textarea{width:100%;margin-bottom:var(--sp2)}
.inv-flags{margin:var(--sp2) 0 0;padding-left:var(--sp4);line-height:var(--lh-prose)}
.inv-sub{font-size:var(--t-small);font-weight:var(--w-bold);margin:var(--sp4) 0 0}
.inv-now{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--sp3)}
.inv-now .k{font-size:var(--t-label);color:var(--muted-2)}
.inv-dialog .il-card{max-height:90vh;overflow:auto}
.inv-dialog .il-card>label,.inv-count-parts label{display:block;margin-top:var(--sp2);font-size:var(--t-small);font-weight:var(--w-med)}
.inv-dialog .il-card .in{width:100%}
.inv-part-row{display:flex;gap:var(--sp2);align-items:center}
.inv-part-row .in{width:auto;flex:1 1 0;min-width:0}
.inv-dialog-actions{display:flex;flex-wrap:wrap;gap:var(--sp2);justify-content:flex-end;margin-top:var(--sp3)}
#tip.is-hint{max-width:280px}
#env-kpis .kpi[data-state="error"] .v,#env-kpis .kpi[data-state="empty"] .v{line-height:var(--lh-tight)}
.kpi[data-state="error"] .v,.health-metric[data-state="error"] .v{color:var(--ink)}
.kpi[data-state="empty"] .v,.health-metric[data-state="empty"] .v,.kpi.is-stale .v,.health-metric.is-stale .v{color:var(--muted)}
.panel-retry{margin-left:var(--sp2)}
.tbl-state{margin:0 0 var(--sp2);padding:var(--sp2) var(--sp3);border-radius:var(--r-control);font-size:var(--t-small);line-height:var(--lh-ui);color:var(--ink);background:var(--shade)}
.tbl-state[hidden]{display:none}
.tbl-state[data-state="stale"]{background:var(--amber-soft)}
.tbl-state[data-state="error"]{background:var(--red-soft)}
.kpi[data-state="loading"] .v .sk-line,.health-metric[data-state="loading"] .v .sk-line{display:block;width:60%;height:18px}
.kpi .v,td,.mono,time,.hl-f .v,.count,.rp-field .v,.health-metric .v{font-variant-numeric:tabular-nums}


.step.clickable{cursor:pointer}
.path{align-items:center;gap:0;flex-wrap:nowrap;scrollbar-width:thin}
.path .step,.path .step:first-child{display:inline-flex;align-items:center;gap:var(--sp2);clip-path:none;
  background:none;border:0;border-radius:var(--r-pill);margin:0;padding:var(--sp1) var(--sp2);
  font:inherit;font-size:var(--t-small);font-weight:var(--w-body);line-height:var(--lh-ui);color:var(--muted-2);white-space:nowrap}
.path .step::before{content:"";flex:0 0 8px;width:8px;height:8px;box-sizing:border-box;border-radius:50%;
  border:1.5px solid var(--line-strong);background:transparent}
.path .step+.step{margin-left:var(--sp3)}
.path .step+.step::after{content:"";position:absolute;inset:auto;left:calc(-1 * var(--sp3));top:50%;width:var(--sp3);height:1px;background:var(--line)}
.path .step.done{color:var(--muted)}
.path .step.done::before{background:var(--muted);border-color:var(--muted)}
.path .step.now{background:var(--brand-cta);color:var(--on-brand);font-weight:var(--w-med);padding:var(--sp1) var(--sp3)}
.path .step.now::before{background:var(--on-brand);border-color:var(--on-brand)}
.path .step.now.off{background:var(--red);color:var(--on-fill)}
.path .step.now.off::before{background:var(--on-fill);border-color:var(--on-fill)}
.path-other{margin-top:var(--sp2)}
.path-other>summary{cursor:pointer;width:max-content;font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted-2);padding:var(--sp1) 0}
.path-other[open]>summary{margin-bottom:var(--sp1)}

.hold-banner{display:flex;gap:var(--sp3);align-items:center;background:var(--amber-soft);border:1px solid color-mix(in srgb,var(--amber) 35%,transparent);border-radius:var(--r-surface);
  padding:var(--sp3) var(--sp3);margin:0 0 var(--sp4);font-size:var(--t-small);color:var(--amber)}
.hold-banner b{color:inherit}
.hold-banner .sp{margin-left:auto;display:flex;gap:var(--sp2)}


.cap{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--sp0);background:var(--border-2);
  border:1px solid var(--border);border-top:0;border-radius:0 0 var(--r) var(--r);overflow:hidden;margin-top:-1px}
.cap div{background:var(--surface-2);padding:var(--sp2) var(--sp3);font-size:var(--t-label);color:var(--muted)}
.cap div.over{background:var(--red-soft);color:var(--red);font-weight:var(--w-bold)}

/* ==> styles/25-pmo.css */
.cpstrip{display:flex;gap:0;overflow-x:auto;background:var(--card);border:1px solid var(--border);border-radius:var(--r);
  box-shadow:var(--shadow);padding:var(--sp3) var(--sp4);margin-bottom:var(--sp4)}
.cpc{flex:0 0 auto;padding-right:var(--sp5);position:relative;min-width:172px}
.cpc:not(:last-child)::after{content:"";position:absolute;right:11px;top:22px;width:8px;height:8px;
  border-right:1.5px solid var(--line);border-top:1.5px solid var(--line);transform:rotate(45deg)}
.cpc .id{font-size:var(--t-label);font-weight:var(--w-bold);color:var(--muted-2)}
.cpc .nm{font-size:var(--t-small);font-weight:var(--w-med);margin:var(--sp0) 0 var(--sp2);line-height:var(--lh-ui)}
.cpc .gate{height:5px;border-radius:var(--r-control);background:var(--surface-3);overflow:hidden;margin-bottom:var(--sp1)}
.cpc .gate i{display:block;height:100%;border-radius:var(--r-control)}
.cpc .cnt{font-size:var(--t-label);color:var(--muted-2);font-weight:var(--w-med)}
.cpc.done .nm{color:var(--green)} .cpc.now .nm{color:var(--brand-text)}

.tq{display:grid;gap:0}
.tsec{border-top:1px solid var(--border-2);padding:var(--sp3) 0 var(--sp1)}
.tsec:first-child{border-top:0;padding-top:var(--sp1)}
.tsec h5{margin:0 0 var(--sp2);font-size:var(--t-small);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:var(--w-bold);
  display:flex;align-items:center;gap:var(--sp2)}
.tsec h5 .c{background:var(--surface-3);color:var(--muted);border-radius:var(--r-pill);padding:var(--sp0) var(--sp2);font-size:var(--t-label);letter-spacing:0}
.tsec h5 .hint{margin-left:auto;text-transform:none;letter-spacing:0;font-weight:var(--w-body);font-size:var(--t-label);color:var(--muted-2)}
.trow{display:grid;grid-template-columns:26px 1fr auto;gap:var(--sp3);align-items:flex-start;padding:var(--sp2) var(--sp2);border-radius:var(--r-control);
  border:1px solid transparent}

.trow .tick{width:24px;height:24px;border-radius:var(--r-control);border:1.5px solid var(--line-strong);background:var(--card);margin-top:0;
  display:grid;place-items:center;color:transparent;flex:0 0 19px}

.trow .tick svg{width:16px;height:16px}
.trow.done .tick{background:var(--green);border-color:var(--green);color:var(--on-fill)}
.trow.done .tt{text-decoration:line-through;color:var(--muted-2)}
.trow .tid{font-family:var(--mono);font-size:var(--t-label);font-weight:var(--w-bold);color:var(--muted-2);
  background:var(--surface-2);border-radius:var(--r-control);padding:var(--sp0) var(--sp1);margin-right:var(--sp2)}
.trow .tt{font-size:var(--t-small);font-weight:var(--w-med);}
.trow .tm{font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp0);display:flex;gap:var(--sp3);flex-wrap:wrap;align-items:center}
.trow .tm em{font-style:normal;color:var(--muted);font-weight:var(--w-med)}
.trow .right{display:flex;gap:var(--sp2);align-items:center;flex-wrap:wrap;justify-content:flex-end}
.unb{background:var(--slate-soft);color:var(--slate);font-size:var(--t-label);font-weight:var(--w-bold);padding:var(--sp0) var(--sp2);border-radius:var(--r-pill);white-space:nowrap}
.blk{background:var(--red-soft);color:var(--red);font-size:var(--t-label);font-weight:var(--w-bold);padding:var(--sp0) var(--sp2);border-radius:var(--r-pill)}
.own{font-size:var(--t-label);font-weight:var(--w-med);color:var(--muted)}
.own.none{color:var(--amber)}
.pmo-filters{display:flex;gap:var(--sp2);flex-wrap:wrap;align-items:center;padding:var(--sp3) var(--sp4);border-bottom:1px solid var(--border-2)}
.pmo-filters select{border:1px solid var(--border);border-radius:var(--r-control);padding:var(--sp1) var(--sp2);font-size:var(--t-small);background-color:var(--card);color:var(--ink)}
.seg{display:inline-flex;max-width:100%;border:1px solid var(--border);border-radius:var(--r-control);overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}
.seg>*{flex:0 0 auto}
.seg button{background:var(--card);border:0;padding:var(--sp1) var(--sp3);font-size:var(--t-small);font-weight:var(--w-med);color:var(--muted);border-right:1px solid var(--border)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--ink-fill);color:var(--on-ink)}
.pboard{display:grid;gap:var(--sp4)}
.pph{border:1px solid var(--border);border-radius:var(--r);background:var(--card);box-shadow:var(--shadow)}
.pph-h{display:flex;align-items:center;gap:var(--sp3);padding:var(--sp3) var(--sp4);border-bottom:1px solid var(--border-2)}
.pph-h b{font-size:var(--t-small);font-weight:var(--w-med)}
.pph-h .bar{flex:1;max-width:200px;height:6px;border-radius:var(--r-control);background:var(--surface-3);overflow:hidden}
.pph-h .bar i{display:block;height:100%;background:var(--green)}
.pph-b{padding:var(--sp2) var(--sp2) var(--sp3)}
.rulecard{display:grid;grid-template-columns:1fr auto 1fr;gap:var(--sp4);align-items:center;padding:var(--sp3) var(--sp4);
  border:1px solid var(--border-2);border-radius:var(--r-surface);margin-bottom:var(--sp2);background:var(--card)}
.rulecard .arw{color:var(--muted-2);font-weight:var(--w-bold)}
.rulecard b{font-size:var(--t-small);font-weight:var(--w-med);display:block}
.rulecard span{font-size:var(--t-label);color:var(--muted-2)}

.repcard{background:var(--card);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow);padding:var(--sp4) var(--sp4);display:flex;flex-direction:column;gap:var(--sp2)}
.repcard :is(h2,h3,h4){margin:0;font-size:var(--t-body);font-weight:var(--w-med);}
.repcard .aud{font-size:var(--t-label);color:var(--muted-2);font-weight:var(--w-med)}
.repcard .desc{font-size:var(--t-small);color:var(--muted);line-height:var(--lh-prose);flex:1}
.repcard .foot{display:flex;gap:var(--sp2);align-items:center;flex-wrap:wrap;padding-top:var(--sp2);border-top:1px solid var(--border-2)}
.preview{border:1px solid var(--border);border-radius:var(--r-surface);overflow:hidden;background:var(--card)}
.prev-b .tw{margin:0 -2px}
.prev-head{background:var(--brand-deep);color:var(--on-fill);padding:var(--sp4) var(--sp4);display:flex;align-items:center;gap:var(--sp3)}
.prev-head .t{font-weight:var(--w-med);font-size:var(--t-body);}
.prev-head .m{margin-left:auto;font-size:var(--t-label);color:var(--muted-2)}
.prev-b{padding:var(--sp4) var(--sp4)}
.prev-b h5{margin:var(--sp4) 0 var(--sp2);font-size:var(--t-label);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:var(--w-bold)}
.prev-b h5:first-child{margin-top:0}
#pv-body table td,#pv-body table th{white-space:nowrap}
.photostrip{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));gap:var(--sp2)}
.photo{aspect-ratio:4/3;border-radius:var(--r-control);border:1px solid var(--border);display:grid;place-items:center;
  background:linear-gradient(150deg,var(--green-soft),var(--border));color:var(--muted-3);font-size:var(--t-label);font-weight:var(--w-med);text-align:center;padding:var(--sp1)}

.usmap-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch}
.usmap-scroll:focus-visible{outline:var(--focus-ring);outline-offset:2px}

/* ==> styles/30-phone-ergonomics.css */

.gnav-tabs,.rtabs,.card-b[style*="overflow"],.tw{scrollbar-width:thin}



.kmove{display:none}
#hp-ops.editing .kmove{
  display:flex;gap:var(--sp2);margin-top:var(--sp2);padding-top:var(--sp2);border-top:1px solid var(--border-2);
}
#hp-ops.editing .kmove button{
  flex:1;min-height:32px;border:1px solid var(--control-line);background:var(--card);
  border-radius:var(--r-control);color:var(--muted);font-size:var(--t-body);line-height:1;
}
#hp-ops.editing .kmove button:active{background:var(--surface-2)}


/* ==> styles/35-status-page.css */
.stx-row{display:grid;grid-template-columns:minmax(180px,240px) minmax(0,1fr) auto;gap:var(--sp4);align-items:center;
  padding:var(--sp3) 0;border-top:1px solid var(--border-2)}
.stx-row:first-child{border-top:0}
.stx-row .nm b{font-size:var(--t-small)}
.stx-row .nm span{display:block;font-size:var(--t-label);color:var(--muted-2);margin-top:var(--sp0)}
.stx-strip{display:flex;gap:var(--sp0);height:22px;align-items:stretch}
.stx-strip i{flex:1;border-radius:var(--r-control);background:var(--green);min-width:2px}
.stx-strip i.w{background:var(--amber)}
.stx-strip i.d{background:var(--red)}
.stx-strip i.o{background:var(--surface-3)}
.stx-right{text-align:right;white-space:nowrap}
.stx-right .up{font-size:var(--t-small);font-weight:var(--w-bold)}
.stx-right .m{display:block;font-size:var(--t-label);color:var(--muted-2)}


.attn-wide{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:var(--sp1) var(--sp5);align-content:start}

details.notefold{border:1px solid var(--border-2);border-radius:var(--r-control);background:var(--surface-2);margin-top:var(--sp3)}
details.notefold>summary{cursor:pointer;padding:var(--sp2) var(--sp3);font-size:var(--t-label);font-weight:var(--w-med);color:var(--muted);list-style:none;display:flex;align-items:center;gap:var(--sp2)}
details.notefold>summary::before{content:'▸';font-size:var(--t-label);transition:transform var(--dur-1)}
details.notefold[open]>summary::before{transform:rotate(90deg)}
details.notefold>summary:focus-visible{outline:var(--focus-ring);outline-offset:2px;border-radius:var(--r-control)}
details.notefold>.open-q,details.notefold>.gap{margin-top:0;border:0;border-radius:0 0 var(--r-control) var(--r-control)}

.qrow.acked{opacity:.55}
.qrow.acked b{text-decoration:line-through;text-decoration-thickness:1px}
.ackline{font-size:var(--t-label);color:var(--green);font-weight:var(--w-med)}

.slack-feed{display:grid;gap:var(--sp2);max-height:240px;overflow-y:auto;margin-top:var(--sp3)}
.slack-msg{display:flex;gap:var(--sp2);align-items:flex-start;font-size:var(--t-small);padding:var(--sp2) var(--sp3);border:1px solid var(--border-2);border-radius:var(--r-control);background:var(--surface-2)}
.slack-msg .ch{font-family:var(--mono);font-size:var(--t-label);color:var(--muted);white-space:nowrap;padding-top:var(--sp0)}
.slack-msg .tx{flex:1;min-width:0;color:var(--ink)}
.slack-msg .at{font-size:var(--t-label);color:var(--muted-2);white-space:nowrap;padding-top:var(--sp0)}
.slack-cfg label{display:block;font-size:var(--t-label);font-weight:var(--w-med);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:var(--sp3) 0 var(--sp0)}
.slack-cfg input{width:100%;box-sizing:border-box;border:1px solid var(--control-line);border-radius:var(--r-control);padding:var(--sp2) var(--sp2);font-size:var(--t-small);font-family:var(--mono);background:var(--card);color:var(--ink)}



/* ==> styles/40-vertical-rail.css */
:root{ --rail:64px; --rail-open:212px; --bottom-bar:66px; }

.vrail{
  position:fixed; inset:0 auto 0 0; width:var(--rail); z-index:80;
  display:flex; flex-direction:column; align-items:stretch;
  background:var(--rail-bg);
  transition:width var(--dur-1) var(--ease);
}
.vrail::after{content:'';position:absolute;top:var(--topbar-h,52px);right:0;bottom:0;width:1px;background:var(--rail-line);pointer-events:none}
.vrail-logo{
  height:var(--topbar-h,52px); display:flex; align-items:center;
  padding:0 0 0 var(--sp5); flex:0 0 auto; overflow:hidden;
}
.logo[role="link"]{cursor:pointer}
.vrail-logo .logo{gap:var(--sp3); color:var(--rail-ink); white-space:nowrap}
.vrail-logo .logo small{color:var(--rail-head)}
.vrail-logo .logo>div{opacity:0; transition:opacity var(--dur-1) var(--ease); font-size:var(--t-body)}
.vrail-logo .beacon{width:24px;height:24px;flex:0 0 24px}

.vrail .gnav-tabs{
  display:flex; flex-direction:column; gap:var(--sp1);
  padding:var(--sp1) var(--sp3) var(--sp4); border-top:0; flex:1 1 auto;
  overflow-y:auto; overflow-x:hidden;
  -webkit-mask-image:none; mask-image:none;
  scrollbar-width:none;
}
.vrail .gnav-tabs::-webkit-scrollbar{width:0}
.vrail .gnav-tabs button{
  position:relative; display:flex; align-items:center; gap:var(--sp3);
  width:100%; min-height:44px; padding:0 0 0 var(--sp3);
  border:0; border-bottom:0; border-radius:var(--r-surface);
  color:var(--rail-icon); background:none;
  font-size:var(--t-small); font-weight:var(--w-body); white-space:nowrap;
}
.vrail .gnav-tabs button svg{width:20px;height:20px;flex:0 0 21px;stroke:currentColor;
  stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.vrail .gnav-tabs button .lbl{opacity:0;transition:opacity var(--dur-1) var(--ease);pointer-events:none}

.vrail .gnav-tabs button.on{
  color:var(--rail-on-ink); background:var(--rail-on-bg);
  border-bottom-color:transparent;
}
.vrail .gnav-tabs button.on::before{
  content:""; position:absolute; left:-10px; top:50%; transform:translateY(-50%);
  width:3px; height:22px; border-radius:0 var(--r-control) var(--r-control) 0; background:var(--ink-fill);
}
.vrail .gnav-tabs button.stub{color:var(--rail-stub);cursor:not-allowed}

.vrail .gnav-tabs button.stub::after{display:none}
.vrail .gnav-tabs button:focus-visible{outline:var(--focus-ring);outline-offset:-2px}
.rgrp{display:flex;flex-direction:column;gap:var(--sp1)}
body.rail-open .rgrp+.rgrp:not(.bottom){margin-top:var(--sp2)}
.rgrp.bottom{margin-top:auto}
.rgrp-h{
  all:unset; box-sizing:border-box; position:relative;
  display:flex; align-items:center; gap:var(--sp3);
  width:100%; min-height:44px; padding:0 0 0 var(--sp3); border-radius:var(--r-surface);
  color:var(--rail-icon); background:none; cursor:pointer;
  font-family:var(--sans); font-size:var(--t-small); font-weight:var(--w-med); white-space:nowrap;
}
.rgrp-h .gi{display:flex;flex:0 0 21px}
.rgrp-h .gi svg{width:20px;height:20px;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;fill:none}
.rgrp-h .lbl{opacity:0;transition:opacity var(--dur-1) var(--ease);flex:1;text-align:left}
.rgrp-h .chev{display:none}

.rgrp-h:focus-visible{outline:var(--focus-ring);outline-offset:-2px}
.rgrp.single>button[data-v]{display:none !important}
body.rail-open .rgrp.single .rgrp-h.on{color:var(--rail-on-ink);background:var(--rail-on-bg)}
body:not(.rail-open) .vrail .rgrp-h.on{color:var(--rail-on-ink);background:var(--rail-on-bg)}
body:not(.rail-open) .vrail .rgrp-h.on::before{content:"";position:absolute;left:-10px;top:50%;
  transform:translateY(-50%);width:3px;height:22px;border-radius:0 var(--r-control) var(--r-control) 0;background:var(--ink-fill)}
body.rail-open .rgrp-h{min-height:30px;margin-top:var(--sp0);padding-left:var(--sp3);
  font-size:var(--t-small);font-weight:var(--w-med);color:var(--rail-head)}
body.rail-open .rgrp-h .gi{display:none}
body.rail-open .rgrp-h .lbl{opacity:1}
body.rail-open .rgrp-h.on .lbl{color:var(--ink)}
body.rail-open .rgrp-h .chev{display:block;flex:0 0 auto;opacity:.65;transition:transform var(--dur-1) var(--ease)}
body.rail-open .rgrp-h .chev svg{width:16px;height:16px;stroke:currentColor;stroke-width:2;fill:none;stroke-linecap:round;stroke-linejoin:round;display:block}
body.rail-open .rgrp-h[aria-expanded="false"] .chev{transform:rotate(-90deg)}

body.rail-open{ --rail:var(--rail-open) }
body.rail-open .vrail .gnav-tabs button .lbl,
body.rail-open .vrail-logo .logo>div{opacity:1}
body.rail-open .vrail .gnav-tabs button{padding-left:var(--sp3)}
.vrail .gnav-tabs button .lbl-soon{margin-left:auto;margin-right:var(--sp3);font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;
  text-transform:uppercase;padding:var(--sp0) var(--sp1);border-radius:var(--r-control);border:1px solid var(--muted-2);color:var(--muted-2);
  opacity:0;transition:opacity var(--dur-1) var(--ease);pointer-events:none}
body.rail-open .vrail .gnav-tabs button .lbl-soon{opacity:.85}

.rail-pin{
  all:unset; box-sizing:border-box; display:flex; align-items:center; gap:var(--sp3);
  min-height:36px; margin:var(--sp2) var(--sp3) var(--sp3); padding:0 0 0 var(--sp3); border-radius:var(--r-surface);
  color:var(--rail-head); cursor:pointer; font-size:var(--t-small); font-weight:var(--w-med);
  flex:0 0 auto;
}

.rail-pin svg{width:16px;height:16px;flex:0 0 16px;stroke:currentColor;stroke-width:1.8;
  stroke-linecap:round;stroke-linejoin:round;fill:none;margin-left:var(--sp0)}
.rail-pin .lbl{opacity:0;transition:opacity var(--dur-1) var(--ease)}
body.rail-open .rail-pin .lbl{opacity:1}
.rail-pin:focus-visible{outline:var(--focus-ring);outline-offset:-2px}

#rail-tip{
  position:fixed; z-index:200; opacity:0; visibility:hidden;
  transform:translateY(-50%); transition:opacity var(--dur-1) var(--ease);
  background:var(--tip-bg); color:var(--tip-ink); font-size:var(--t-small); font-weight:var(--w-med);
  padding:var(--sp2) var(--sp3); border-radius:var(--r-control); white-space:nowrap;
  box-shadow:var(--shadow-2);
}
#rail-tip.show{opacity:1;visibility:visible}
#rail-tip::before{content:"";position:absolute;left:-4px;top:50%;margin-top:-4px;
  width:8px;height:8px;background:inherit;transform:rotate(45deg)}

.gnav{margin-left:var(--rail)}
.gnav-top{padding-left:var(--sp2)}
.gnav-top .logo{display:none}
main.wrap{margin-left:var(--rail);max-width:1440px}
.savebar{left:var(--rail)}
.toast{left:calc(50% + var(--rail)/2)}

.gnav{border-bottom:1px solid var(--rail-line)}

#mnav-sheet{display:none}

.btn.blocked{ color:var(--muted); border-style:dashed; cursor:not-allowed }


/* ==> styles/42-dispatch-board.css */





/* ==> styles/45-chrome.css */
:root{
  --rail-bg:var(--card); --rail-line:var(--border);
  --rail-ink:var(--ink); --rail-icon:var(--muted); --rail-stub:var(--muted-3);
  --rail-head:var(--muted);
  --rail-hover:var(--surface-2);
  --rail-on-bg:var(--surface-3); --rail-on-ink:var(--ink);
  --rail-focus:var(--focus); --rail-shadow:0 0 40px rgba(16,24,40,.14);
  --tip-bg:#0F1B2E; --tip-ink:#fff;
}
.gnav{background:var(--card);color:var(--ink)}
html[data-theme="dark"] .gnav{background:var(--card)}
.gnav .gsearch input{background:var(--surface-2);border-color:var(--control-line);color:var(--ink)}
.gnav .gsearch input::placeholder{color:var(--muted-2)}
.gnav .theme{background:var(--surface-2);border-color:var(--border)}
.gnav .theme button{color:var(--muted)}

.gnav .theme button:focus-visible{outline-color:var(--focus)}
.gnav .avatar{background:var(--surface-3);color:var(--ink)}
.hnav{display:inline-flex;flex:none;gap:var(--sp0);padding:var(--sp0);background:var(--surface-2);border:1px solid var(--border);border-radius:var(--r-control)}
.hnav button{all:unset;width:32px;height:32px;display:grid;place-items:center;border-radius:var(--r-control);cursor:pointer;color:var(--muted)}
.hnav button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.hnav button:focus-visible{outline:2px solid var(--focus);outline-offset:1px}
.hnav button:disabled{cursor:default;opacity:.4}


/* ==> styles/50-asset-record.css */

.hl-body{display:grid;grid-template-columns:minmax(0,1fr) 320px;align-items:stretch}
.hl-main{min-width:0;display:flex;flex-direction:column}
.hl-main .path-wrap{flex:1}
.hl-health{border-left:1px solid var(--border-2);padding:var(--sp3) var(--sp4) var(--sp4);background:var(--card);min-width:0}
#view-asset .hl-fields{gap:0;background:transparent;border-top:0}
#view-asset .hl-f{background:transparent}
#view-asset .hl-main .path-wrap{border-top:0;background:transparent}
#view-asset .hl-health{border-left:0;border-top:0}
#view-locrec .hl-fields{gap:0;background:transparent;border-top:0}
#view-locrec .hl-f{background:transparent}
#view-locrec .path-wrap{border-top:0;background:transparent}
#view-accounts .card > .filters{border-bottom:0}
#view-accounts .card > .card-b{border-top:0}
.hl-health-h{display:flex;align-items:center;gap:var(--sp2);margin-bottom:var(--sp3)}
.hl-health-h :is(h2,h3){margin:0;font-size:var(--t-small);font-weight:var(--w-med);}
.hl-health-h .badge{margin-left:auto}
.hl-health .score{width:100px;height:100px;margin:0 auto var(--sp3)}
.hl-health .score svg{width:100px;height:100px}
.hl-health .score .num b{font-size:var(--t-kpi)}
.hl-health .factors{grid-template-columns:1fr 1fr;gap:var(--sp2) var(--sp4)}
.hl-health .factor{min-width:0}

.bl-move{padding:var(--sp2) 0;border-top:1px solid var(--border-2)}
.bl-move:first-child{border-top:0;padding-top:0}
.bl-k{font-size:var(--t-label);font-weight:var(--w-bold);letter-spacing:.06em;text-transform:uppercase;
  color:var(--muted-2);font-family:var(--sans)}
.bl-pair{display:flex;align-items:baseline;gap:var(--sp2);margin-top:var(--sp0);flex-wrap:wrap;
  font-family:var(--mono);font-size:var(--t-small)}
.bl-pair .was{color:var(--muted)}
.bl-pair .arw{color:var(--muted-3);font-family:var(--sans)}
.bl-pair .now{font-weight:var(--w-med)}
.bl-d{font-size:var(--t-page);font-weight:var(--w-bold);margin-top:var(--sp0)}
.bl-rest{border-top:1px solid var(--border-2);margin-top:var(--sp2);padding-top:var(--sp2)}
.bl-kv{display:flex;justify-content:space-between;gap:var(--sp3);padding:var(--sp0) 0;font-size:var(--t-small)}
.bl-kv .k{color:var(--muted)}
.bl-kv .v{font-weight:var(--w-med);text-align:right}

#view-asset .hl-main .path{flex-wrap:nowrap;overflow-x:auto;padding-bottom:0}
#view-asset .hl-main .path .step{margin-bottom:0}
#view-asset .hl-main .path .step{margin-right:var(--sp0)}
.bl-none{font-size:var(--t-small);color:var(--muted);line-height:var(--lh-prose);margin-top:var(--sp1)}

/* ==> typography */
h1,h2,.kpi .v,.hl-name,.health-metric .v,.score .num b{letter-spacing:var(--track-display)}
.kpi .d,.health-metric .d,.hl-sub,.mini,.help,.note,.sub,td,.f .der{font-weight:var(--w-text)}
td,.thr,.mini,.help{line-height:var(--lh-ui)}

/* ==> controls */
.ctl{border:1px solid var(--border);border-radius:var(--r-control);font-size:var(--t-small);background-color:var(--card);color:var(--ink);padding-inline:var(--sp3)}
select:not([multiple]):not([size]),input:is([type=text],[type=search],[type=email],[type=password],[type=number],[type=date],[type=tel],[type=url],[type=month],[type=time]),input:not([type]),.btn,.fbtn,.rtabs button{min-height:var(--h-control);padding-block:0;line-height:var(--lh-ui)}
.btn.sm,.f .der button,.al-win-t .btn{min-height:var(--h-control-sm)}
select:not([multiple]):not([size]){appearance:none;-webkit-appearance:none;
  background-color:var(--card);color:var(--ink);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%234E5C77' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right var(--sp2) center;background-size:12px 12px;
  padding-right:var(--sp6)}
html[data-theme="dark"] select:not([multiple]):not([size]){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2.5 4.5 6 8l3.5-3.5' fill='none' stroke='%23A3AFC4' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}

/* ==> motion */
.btn,.fbtn,.rtabs button,.gnav-tabs button,.rgrp-h,.rail-pin,.hnav button,.theme button,.avatar,
.gres .gi,tbody tr,.trow,.fb-vote,.aa-chip,.aa-topbtn,.ovmenu button,.acc-chk,.gate-row.click,
.sortable th,.f .pen,.f .der button,.step.clickable,.login-google,.login-reveal,
select:not([multiple]):not([size]),input:is([type=text],[type=search],[type=email],[type=password],[type=number],[type=date],[type=tel],[type=url],[type=month],[type=time]),input:not([type]),textarea{
  transition:background-color var(--dur-1) var(--ease),border-color var(--dur-1) var(--ease),
    color var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease),transform var(--dur-1) var(--ease)}
.btn:active:not(:disabled),.fbtn:active,.rtabs button:active,.hnav button:not(:disabled):active,
.theme button:active,.aa-topbtn:active,.fb-vote:active,.ovmenu button:active,
.rgrp-h:active,.rail-pin:active,.vrail .gnav-tabs button:active{transform:translateY(1px)}
.btn.pri:active:not(:disabled){background:color-mix(in srgb,var(--brand-cta) 78%,var(--shade));
  border-color:color-mix(in srgb,var(--brand-cta) 78%,var(--shade))}
::selection{background:color-mix(in srgb,var(--brand) 26%,transparent)}
