/* Layout: single-column phone app shell — sticky header, scrolling form body, fixed action bar at the thumb. */
:root{
  --bg:#eef0f2; --surface:#ffffff; --surface-2:#f6f7f9; --line:#d5d9df; --ink:#14171c; --ink-2:#4b525d; --ink-3:#7a828e;
  --accent:#c8102e; --accent-ink:#ffffff; --accent-soft:#fbe7ea;
  --ok:#1f7a4d; --ok-soft:#e3f3ea; --warn:#a85d00; --warn-soft:#fff1dc; --crit:#c8102e; --crit-soft:#fbe7ea;
  --p1:#c8102e; --p2:#e06a00; --p3:#c9a100; --p4:#1f7a4d;
  --check-a:#c8102e; --check-b:#ffffff;
  --paper:#ffffff; --paper-ink:#111111; --paper-line:#888888;
  --f-display:"Barlow Condensed", "Arial Narrow", system-ui, sans-serif;
  --f-body:"Barlow", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  --f-mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", Consolas, monospace;
  --r:10px;
}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){
  --bg:#0f1216; --surface:#181c22; --surface-2:#1f242b; --line:#2e353f; --ink:#eef1f4; --ink-2:#b4bcc6; --ink-3:#808a96;
  --accent:#d92b3e; --accent-ink:#ffffff; --accent-soft:#3a1a1f;
  --ok:#4cc38a; --ok-soft:#16301f; --warn:#f0a23a; --warn-soft:#33260f; --crit:#ff4d5e; --crit-soft:#3a1a1f;
  --check-a:#d92b3e; --check-b:#ffffff; color-scheme:dark }}
:root[data-theme="dark"]{
  --bg:#0f1216; --surface:#181c22; --surface-2:#1f242b; --line:#2e353f; --ink:#eef1f4; --ink-2:#b4bcc6; --ink-3:#808a96;
  --accent:#d92b3e; --accent-ink:#ffffff; --accent-soft:#3a1a1f;
  --ok:#4cc38a; --ok-soft:#16301f; --warn:#f0a23a; --warn-soft:#33260f; --crit:#ff4d5e; --crit-soft:#3a1a1f;
  --check-a:#d92b3e; --check-b:#ffffff; color-scheme:dark }
*{box-sizing:border-box}
[hidden]{display:none!important}
html,body{height:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.4 var(--f-body);-webkit-tap-highlight-color:transparent}
/* Phones that draw under the status bar (Android app): start the page below it, and keep a solid strip there while scrolling,
   so the sticky top bar never covers the top of the page. */
body{padding-top:env(safe-area-inset-top,0px);padding-bottom:env(safe-area-inset-bottom,0px)}
body::before{content:'';position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:var(--surface);z-index:21}
@media print{body{padding-top:0}body::before{display:none}}
button,input,select,textarea{font:inherit;color:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.mono,.num{font-family:var(--f-mono);font-variant-numeric:tabular-nums}
h1,h2,h3{font-family:var(--f-display);font-weight:700;letter-spacing:.01em;margin:0;text-wrap:balance}
h2{font-size:1.6rem} h3{font-size:1.15rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.wrap{max-width:720px;margin:0 auto;padding-inline:16px}

/* checker band — the IPSS mark */
.checker{height:8px;background-image:linear-gradient(45deg,var(--check-a) 25%,transparent 25%,transparent 75%,var(--check-a) 75%),linear-gradient(45deg,var(--check-a) 25%,var(--check-b) 25%,var(--check-b) 75%,var(--check-a) 75%);background-size:8px 8px;background-position:0 0,4px 4px}

header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--surface);border-bottom:1px solid var(--line)}
header.top .bar{display:flex;align-items:center;gap:8px;padding:10px 16px;max-width:720px;margin:0 auto}
.brand{display:flex;flex-direction:column;line-height:1;min-width:0}
.brand b{font-family:var(--f-display);font-size:1.35rem;letter-spacing:.02em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.brand small{white-space:nowrap;font-size:.72rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.12em;margin-top:2px}
.spacer{flex:1}
.pill{display:inline-flex;align-items:center;gap:6px;font-size:.75rem;font-weight:600;padding:4px 10px;border-radius:999px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.pill .dot{width:8px;height:8px;border-radius:50%;background:var(--ok)}
.pill.off .dot{background:var(--warn)}
.fbbtn .lbl{margin-left:4px}@media (max-width:560px){.fbbtn .lbl{display:none}}
.iconbtn{border:1px solid var(--line);background:var(--surface-2);border-radius:8px;padding:6px 10px;font-size:.85rem;font-weight:600;cursor:pointer}

main{padding-block:16px 140px}
main:has(+ .actionbar .flagnav){padding-bottom:210px}
.stack{display:flex;flex-direction:column;gap:14px}
.stack>*{min-width:0}
.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px}
.card.flat{background:transparent;border:none;padding:0}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
@media (max-width:520px){.grid3{grid-template-columns:repeat(2,minmax(0,1fr))}}
.span2{grid-column:1/-1}
.f{display:flex;flex-direction:column;gap:5px;min-width:0}
.f>span{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2)}
input,select,textarea{width:100%;min-height:46px;padding:10px 12px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface-2)}
textarea{min-height:90px;resize:vertical}
input:focus,select:focus,textarea:focus{border-color:var(--accent);outline:none;background:var(--surface)}
input.bad{border-color:var(--crit);background:var(--crit-soft)}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.combo{position:relative;display:flex;gap:6px}.combo input{flex:1;min-width:0}.combo-btn{min-width:46px;border:1.5px solid var(--line);border-radius:8px;background:var(--surface-2);font-size:1.1rem;cursor:pointer}
.bprow{display:flex;gap:6px;align-items:stretch}.bprow input{flex:1;min-width:0}.bpslash{min-width:44px;font-size:1.25rem;font-weight:700;padding:0 10px}   /* v303: number keypad has no / */
details.agc>summary{display:flex;align-items:center;gap:8px;cursor:pointer;list-style:none}details.agc>summary::-webkit-details-marker{display:none}details.agc>summary::after{content:'▾';margin-left:auto;font-size:1.3rem;line-height:1;color:var(--muted,#777);border:1px solid var(--line,#ddd);border-radius:8px;padding:2px 10px}details.agc[open]>summary::after{content:'▴'}.agc-hint{font-size:.85rem;color:var(--muted,#777);font-weight:400}   /* v310: Other services looks like a drop-down */
.selq{margin-bottom:4px}.selq-hits{max-height:240px}.row>.selq{flex-basis:100%;margin-bottom:0}.row>.selq-hits{flex-basis:100%;order:9}
.combo-list{max-height:280px;overflow:auto;border:1.5px solid var(--line);border-radius:8px;background:var(--surface);margin-top:4px}
.combo-list button{display:block;width:100%;text-align:left;padding:11px 12px;border:0;border-bottom:1px solid var(--line);background:none;font:inherit;color:inherit;cursor:pointer}
.combo-list button:hover,.combo-list button.on{background:var(--surface-2)}.combo-list .none{padding:11px 12px}
.chip{min-height:42px;padding:8px 14px;border-radius:8px;border:1.5px solid var(--line);background:var(--surface-2);font-weight:600;cursor:pointer}
.chip.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.chip.sm{min-height:34px;padding:4px 10px;font-size:.85rem;font-weight:500}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:50px;padding:10px 18px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface);font-weight:700;font-size:1rem;cursor:pointer;text-decoration:none;color:var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.btn.dark{background:var(--ink);border-color:var(--ink);color:var(--surface)}
.btn.ghost{background:transparent}
.btn.block{width:100%}
.btn:disabled{opacity:.45;cursor:not-allowed}
.row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.muted{color:var(--ink-3)} .small{font-size:.85rem}
.note{padding:10px 12px;border-radius:8px;font-size:.9rem}
.note.warn{background:var(--warn-soft);color:var(--warn)} .note.ok{background:var(--ok-soft);color:var(--ok)} .note.crit{background:var(--crit-soft);color:var(--crit)} .note.info{background:var(--surface-2);color:var(--ink-2);border:1px solid var(--line)}
.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent)}

/* login */
.login{min-height:100%;display:flex;flex-direction:column}
.login .hero{padding:40px 16px 24px;max-width:460px;margin:0 auto;width:100%}
.login .hero .big{font-family:var(--f-display);font-size:3.2rem;line-height:.9;font-weight:700}
.login .hero .big em{font-style:normal;color:var(--accent)}
.login form{max-width:460px;margin:0 auto;width:100%;padding:0 16px 32px;display:flex;flex-direction:column;gap:14px}
.lockbox{max-width:360px;margin:0 auto;width:100%;padding:0 16px 32px;display:flex;flex-direction:column;gap:14px;align-items:stretch}
.pindots{display:flex;justify-content:center;gap:14px;margin:6px 0 2px}
.pindots i{width:16px;height:16px;border-radius:50%;border:2px solid var(--ink-2)}
.pindots i.on{background:var(--ink);border-color:var(--ink)}
.pinpad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pinpad button{min-height:64px;border-radius:14px;border:1.5px solid var(--line);background:var(--surface);font-family:var(--f-display);font-size:1.7rem;font-weight:600;cursor:pointer;color:var(--ink)}
.pinpad button.fn{font-size:1.1rem;background:var(--surface-2)}
.pinpad button:active{background:var(--surface-2)}

/* home tiles */
.tiles{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tile{display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;gap:18px;min-height:130px;padding:16px;border-radius:12px;border:1.5px solid var(--line);background:var(--surface);cursor:pointer;text-align:left}
.tile b{font-family:var(--f-display);font-size:1.5rem;line-height:1}
.tile .ct{font-family:var(--f-mono);font-size:2rem;font-weight:600}
.tile.new{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tile.new .muted{color:inherit;opacity:.85}
.tile.alert{border-color:var(--warn);background:var(--warn-soft)}
.list{display:flex;flex-direction:column}
.li{display:flex;gap:12px;align-items:center;padding:12px 0;border-top:1px solid var(--line);cursor:pointer}
.li:first-child{border-top:none}
.li .grow{flex:1;min-width:0}
.li .t{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tag{font-size:.7rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 8px;border-radius:6px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.tag.draft{color:var(--ink-2)} .tag.submitted{color:var(--ok);border-color:var(--ok)} .tag.returned{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)} .tag.approved{background:var(--ok);color:var(--surface);border-color:var(--ok)} .tag.crit{color:var(--crit);border-color:var(--crit);background:var(--crit-soft)} .tag.warn{color:var(--warn);border-color:var(--warn);background:var(--warn-soft)}

/* wizard */
.stepwrap{display:flex;align-items:stretch;max-width:720px;margin:0 auto}
.stepper{display:flex;gap:4px;padding:10px 4px 0;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;scroll-behavior:smooth;cursor:grab}
.stepper::-webkit-scrollbar{display:none}
.stepper.drag{cursor:grabbing;scroll-behavior:auto}
.stepnav{flex:0 0 40px;border:none;background:none;color:var(--ink);font-size:1.7rem;line-height:1;cursor:pointer;padding:6px 0 0}
.stepnav.off{visibility:hidden}
.stepper button{flex:0 0 auto;border:none;background:none;padding:6px 8px 10px;font-family:var(--f-display);font-weight:600;font-size:.95rem;color:var(--ink-3);border-bottom:3px solid transparent;cursor:pointer;white-space:nowrap}
.stepper button.mat{color:var(--crit)}
table.ref{width:100%;border-collapse:collapse;font-size:.88rem}table.ref th{text-align:left;font-weight:600;padding:5px 8px 5px 0;vertical-align:top}table.ref th:first-child:nth-last-child(2){width:48%}table.ref td{padding:5px 8px 5px 0;vertical-align:top}table.ref td:last-child{padding-right:0}table.ref tr+tr{border-top:1px solid var(--line)}
.card.ped{border-color:var(--accent)}
.stepper button.cur{color:var(--ink);border-color:var(--accent)}
.stepper button.done{color:var(--ink-2)}
.leaflet-control-layers input{width:auto;min-height:0;height:auto;padding:0;margin:0 6px 0 0;box-shadow:none} .leaflet-control-layers label{display:flex;align-items:center;font-size:.85rem;margin:2px 0} .leaflet-control-layers-base span{display:inline}
.hmark.h-priv{background:#1d4ed8} .hmark.h-clinic{background:#15803d}
.hmark{width:22px;height:22px;padding:0!important;justify-content:center;border-radius:50%!important;font-size:13px!important;line-height:22px!important;cursor:pointer;border:2px solid #fff} .hmark span{display:none!important} .hmark.h-clinic{width:18px;height:18px;font-size:11px!important;line-height:18px!important}
.mapz-far .hmark:not(.local){display:none} .mapz-far .bmark span{display:none} .mapz-far .bmark{padding:1px 4px}
.hmark{display:inline-flex;align-items:center;gap:3px;padding:1px 6px 1px 4px;border-radius:10px;background:#b91c1c;color:#fff;font:600 11px/18px var(--f-body);white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 1px 3px rgba(0,0,0,.35)} .hmark span{font-weight:500}
.bmark{display:inline-flex;align-items:center;gap:3px;padding:1px 6px 1px 4px;border-radius:10px;background:#1f2937;color:#fff;font:600 11px/18px var(--f-body);white-space:nowrap;transform:translate(-50%,-50%);box-shadow:0 1px 3px rgba(0,0,0,.35)} .bmark span{font-weight:500}
.stabs{margin-bottom:4px} .badge{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--crit);color:#fff;font-size:.75rem;line-height:18px;text-align:center}
.rgrid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px} .rhd{text-align:center;font-size:.75rem;color:var(--ink-3)}
.rcal{border:1px solid var(--line);border-radius:6px;min-height:46px;padding:3px 5px;display:flex;flex-direction:column;font-size:.8rem} .rcal small{color:var(--ink-3)} .rcal b{margin:auto;font-size:.95rem}
.rcal.today{outline:2px solid var(--accent)} .rcal.on,.rtable .rc.on{background:#dbeafe;color:#1e3a8a} .rcal.lv,.rtable .rc.lv{background:#fef3c7;color:#92400e} .rcal.sk,.rtable .rc.sk{background:#fee2e2;color:#991b1b}
.rcal.tr,.rtable .rc.tr{background:#ede9fe;color:#5b21b6} .rcal.sb,.rtable .rc.sb{background:#e0f2fe;color:#075985}
.rtable-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:8px} .rtable{border-collapse:collapse;font-size:.78rem;min-width:100%}
.rtable th,.rtable td{border-bottom:1px solid var(--line);padding:3px 4px;text-align:center;white-space:nowrap} .rtable th.we{color:var(--crit)}
.rtable .nm{text-align:left;position:sticky;left:0;background:var(--surface);z-index:1;min-width:130px} .rtable select{min-height:28px;padding:2px;font-size:.78rem;width:auto}
.rtable .rc{cursor:pointer;min-width:24px;font-weight:600} .rtable .rc.set{box-shadow:inset 0 0 0 2px var(--ink-3)} .rtable .rc:hover{outline:2px solid var(--accent)}
.rtable tr.cnt td{font-weight:700;background:var(--surface-2)} .rtable tr.cnt td.zero{color:var(--crit)}
@media (prefers-color-scheme: dark){.rcal.on,.rtable .rc.on{background:#1e3a8a;color:#dbeafe}.rcal.lv,.rtable .rc.lv{background:#78350f;color:#fef3c7}.rcal.sk,.rtable .rc.sk{background:#7f1d1d;color:#fee2e2}.rcal.tr,.rtable .rc.tr{background:#4c1d95;color:#ede9fe}.rcal.sb,.rtable .rc.sb{background:#075985;color:#e0f2fe}}
.alertscard .li.unread .t{font-weight:700} .alertscard .li.unread{border-left:3px solid var(--accent);padding-left:8px}
.als{display:inline-block;font-size:.65rem;font-weight:700;padding:0 4px;border-radius:4px;background:#dcfce7;color:#166534;vertical-align:middle}
details.card>summary{cursor:pointer;list-style:none} details.card>summary::-webkit-details-marker{display:none} details.card[open]>summary{margin-bottom:8px}
select.bmove{max-width:190px;min-height:34px;padding:2px 6px;font-size:.85rem}
.sopeople{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px} .soperson{display:flex;flex-direction:column;gap:2px;text-align:left;padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;font:inherit;color:inherit}
.soperson:hover{border-color:var(--accent)} .soflow{border-color:var(--accent)}
.camsheet{max-width:440px} .camwrap{position:relative;border-radius:14px;overflow:hidden;background:#000;aspect-ratio:4/3} .camwrap video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.camoval{position:absolute;top:12%;right:26%;bottom:12%;left:26%;border:3px solid rgba(255,255,255,.75);border-radius:50%} .camprompt{font:700 1.15rem var(--f-display);text-align:center;padding:8px 0}
.vcrow{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding:8px 0;border-top:1px solid var(--line)} .vcrow .grow{min-width:180px} .vcrow.bad{background:var(--crit-soft);border-radius:8px;padding:8px}
.vcrow .vcnote{flex-basis:100%} .chip.def.on{background:var(--crit);border-color:var(--crit);color:#fff}
table.audit td{vertical-align:top} .nowrap{white-space:nowrap}
.wrap.wide{max-width:1100px} .dtiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.dtile{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:flex;flex-direction:column;gap:2px;background:var(--surface)} .dtile small{color:var(--ink-3);font-size:.75rem} .dtile b{font:700 1.6rem/1.1 var(--f-display);color:var(--ink)} .dtile span{font-size:.75rem;color:var(--ink-2)}
.tbl{border-collapse:collapse;width:100%} .tbl th,.tbl td{border-bottom:1px solid var(--line);padding:6px 8px;text-align:left;vertical-align:middle} .tbl th{color:var(--ink-3);font-weight:600;white-space:nowrap}
html.noptr,html.noptr body{overscroll-behavior-y:contain}
.mcilist{display:flex;flex-direction:column;gap:6px} .mcirow{display:flex;flex-wrap:wrap;gap:8px;padding:8px 10px;border:1px solid var(--line);border-left:5px solid;border-radius:10px;background:var(--surface)} .mcirow label{display:flex;flex-direction:column;gap:2px} .mcirow label>span{font-size:.7rem;color:var(--ink-3)} .mcirow select{min-width:110px} .mcirow input,.mcirow select{min-height:38px}
.dtile.warn{border-color:var(--warn);box-shadow:inset 3px 0 0 var(--warn)} .dgrid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px}
.dbar{display:grid;grid-template-columns:minmax(90px,38%) 1fr 40px;gap:8px;align-items:center;font-size:.85rem;padding:3px 0} .dbar .dk{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2)} .dbar b{text-align:right;color:var(--ink)}
.dtrack{height:10px;background:var(--surface-2);border-radius:4px;overflow:hidden} .dfill{display:block;height:100%;background:var(--accent);border-radius:0 4px 4px 0}
.cdgrid td,.cdgrid th{text-align:center} .cdgrid td.crit{color:var(--crit);font-weight:700} tr.warnrow td{background:var(--warn-soft)} td.num{text-align:right} .cdcount{text-align:center;font-weight:700}
dl.kv{display:grid;grid-template-columns:minmax(110px,30%) 1fr;gap:6px 12px;margin:0} dl.kv dt{color:var(--ink-3);font-size:.85rem} dl.kv dd{margin:0}
.officebar{border-left:4px solid var(--ink-3)} .officebar.edit{border-left-color:var(--accent)} .officebar.flag{border-left-color:var(--crit)}
.ro input,.ro select,.ro textarea,.ro button,.ro canvas{pointer-events:none} .ro .flagnote button{pointer-events:auto} .ro input,.ro select,.ro textarea{background:var(--surface-2)}
.ro .chip:not(.on){opacity:.55}
.ro textarea{field-sizing:content;overflow:hidden;resize:none}
.ro .accok,.ro .accok input,.ro .accok select,.ro .accok button{pointer-events:auto}.ro .accok input,.ro .accok select{background:var(--surface);outline:2px solid var(--ok,#16a34a)}
.flagmode .f,.flagmode .vset,.flagmode tr,.flagmode .card{cursor:pointer} .flagmode .f:hover,.flagmode .vset:hover,.flagmode tr:hover{outline:2px dashed var(--crit);outline-offset:3px;border-radius:6px}
.flagnav{display:flex;gap:8px;align-items:center;padding:6px 8px;margin-bottom:8px;border:2px solid var(--crit);border-radius:10px;background:var(--crit-soft)}.flagnav .grow{min-width:0;line-height:1.25}.flagnav .muted{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.flagpulse{animation:flagpulse 1s ease-in-out 2}@keyframes flagpulse{50%{box-shadow:0 0 0 6px var(--crit-soft)}}
.cgflag{outline:2px solid var(--crit);outline-offset:3px;border-radius:6px;background:var(--crit-soft)} .cgflag.fixed{outline-color:var(--ok);background:var(--ok-soft)}
.flagnote{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:6px 0 4px;padding:8px 10px;border-radius:8px;background:var(--crit-soft);color:var(--crit);font-size:.9rem}
.flagnote.fixed{background:var(--ok-soft);color:var(--ok)} .flagnote span{flex:1;min-width:180px}
.flagbanner .small{margin-top:6px} .stepper button.flg::after{content:'⚑';color:var(--crit);margin-left:4px}
.editlist{margin:4px 0 0;padding-left:18px} .editlist s{color:var(--ink-3)}
.casebar{display:flex;gap:10px;align-items:center;padding:8px 16px;max-width:720px;margin:0 auto;font-size:.85rem;color:var(--ink-2);border-top:1px solid var(--line)}
.prio{display:inline-flex;align-items:center;justify-content:center;min-width:30px;height:24px;padding:0 6px;border-radius:6px;font-weight:700;color:#fff;font-family:var(--f-mono);font-size:.8rem}
.prio.p1{background:var(--p1)}.prio.p2{background:var(--p2)}.prio.p3{background:var(--p3);color:#14171c}.prio.p4{background:var(--p4)}

.actionbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:var(--surface);border-top:1px solid var(--line);padding:10px 16px calc(10px + env(safe-area-inset-bottom,0px))}
html.kb .actionbar,html.kb header.top .bar,html.kb .stepwrap{display:none}html.kb main{padding-bottom:16px!important}
.actionbar .in{max-width:720px;margin:0 auto;display:flex;flex-direction:column;gap:8px}
.actionbar .nav{display:grid;grid-template-columns:1fr 1.4fr;gap:10px}
.status-btn{width:100%;min-height:54px;border-radius:10px;border:none;background:var(--ink);color:var(--surface);font-family:var(--f-display);font-size:1.3rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}
.status-row{display:flex;gap:8px}
.status-row .status-btn{flex:1}
.status-row .alt{flex:0 1 auto;line-height:1.1;background:var(--surface-2);color:var(--ink);border:1.5px solid var(--line);font-size:.95rem;padding:0 12px}

/* treating mode */
.mode{display:grid;grid-template-columns:1fr 1fr;gap:6px;padding:8px 16px 0;max-width:720px;margin:0 auto}
.mode button{min-height:44px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-2);font-family:var(--f-display);font-weight:700;font-size:1.1rem;letter-spacing:.03em;text-transform:uppercase;cursor:pointer;color:var(--ink-2)}
.mode button.on{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}
.tiles4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media (max-width:420px){.tiles4{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}}
.vt{display:flex;flex-direction:column;align-items:center;gap:2px;padding:10px 4px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-2);cursor:pointer;min-width:0}
.vt small{font-size:.68rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em;font-weight:600;white-space:nowrap}
.vt b{font-family:var(--f-mono);font-size:1.25rem;font-weight:600;white-space:nowrap}
.vt.bad{border-color:var(--crit);background:var(--crit-soft)} .vt.bad b,.vt.bad small{color:var(--crit)}
.due{font-size:.8rem;font-weight:600;color:var(--ink-2)} .due.now{color:var(--surface);background:var(--crit);padding:4px 10px;border-radius:999px}
.sheet.pad{gap:10px}
.padtabs{display:flex;gap:4px;overflow-x:auto;scrollbar-width:none}
.padtabs button{flex:0 0 auto;border:1.5px solid var(--line);background:var(--surface-2);border-radius:8px;padding:6px 10px;font-weight:600;font-size:.85rem;cursor:pointer}
.padtabs button.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}
.padshow{text-align:center;padding:6px 0}
.padshow small{display:block;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.75rem}
.padshow b{font-family:var(--f-mono);font-size:2.6rem;font-weight:600}
.padshow b.bad{color:var(--crit)}
.keys{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.keys button{min-height:58px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-2);font-family:var(--f-mono);font-size:1.6rem;font-weight:600;cursor:pointer}
.keys button:active{background:var(--line)}
/* photos */
.photos{display:flex;flex-wrap:wrap;gap:10px}
.ph{position:relative;width:96px;height:96px}
.ph img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--line);background:var(--surface-2);cursor:pointer}
.ph .x{position:absolute;top:-8px;right:-8px;width:28px;height:28px;border-radius:50%;border:2px solid var(--surface);background:var(--ink);color:var(--surface);font-size:1rem;line-height:1;cursor:pointer}
.phadd{width:96px;height:96px;border:1.5px dashed var(--line);border-radius:8px;display:grid;place-items:center;text-align:center;font-size:.78rem;font-weight:600;padding:6px;cursor:pointer;color:var(--ink-2);background:var(--surface-2)}
.paper .att{display:flex;flex-wrap:wrap;gap:8px}
.paper .att figure{margin:0;width:calc(50% - 4px)}
.paper .att img{width:100%;border:1px solid #ccc}
/* dispatch card */
.dispatch{border:2px solid var(--accent);border-radius:12px;background:var(--surface);overflow:hidden}
.dispatch .hd{background:var(--accent);color:var(--accent-ink);padding:10px 16px;display:flex;justify-content:space-between;align-items:center;font-family:var(--f-display);font-weight:700;font-size:1.1rem;letter-spacing:.05em;text-transform:uppercase}
.dispatch .bd{padding:16px;display:flex;flex-direction:column;gap:12px}
.kv{display:grid;grid-template-columns:auto 1fr;gap:6px 14px;font-size:.95rem}
.kv dt{color:var(--ink-3);font-size:.75rem;text-transform:uppercase;letter-spacing:.07em;font-weight:600;padding-top:3px}
.kv dd{margin:0;font-weight:600;min-width:0;overflow-wrap:anywhere}
.maplink{display:flex;align-items:center;gap:12px;padding:12px;border-radius:10px;border:1.5px solid var(--line);background:var(--surface-2);text-decoration:none;color:var(--ink)}
.pin{width:34px;height:34px;flex:0 0 auto;border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--accent);display:grid;place-items:center}
.pin i{width:12px;height:12px;border-radius:50%;background:var(--surface);transform:rotate(45deg)}

/* overlays */
.overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;background:rgba(10,12,16,.6);display:flex;align-items:flex-end;justify-content:center;padding:16px}
.overlay .sheet{width:100%;max-width:560px;max-height:calc(100% - 20px);overflow:auto;background:var(--surface);border-radius:16px;padding:18px;display:flex;flex-direction:column;gap:14px}
.overlay .sheet>*{flex-shrink:0}   /* v366: same as the control dock — a list with its own scroll (search results, pick lists) could shrink to a line in a tall sheet */
@keyframes flash{0%,100%{box-shadow:0 0 0 0 var(--accent)}50%{box-shadow:0 0 0 8px transparent}}
.overlay .dispatch{animation:flash 1.2s ease-in-out 3}
@media (prefers-reduced-motion:reduce){.overlay .dispatch{animation:none}}

/* vitals */
.vset{border:1px solid var(--line);border-radius:10px;padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--surface)}
.vset .hd{display:flex;align-items:center;gap:10px}
.vset.vfold{padding:8px 12px;gap:4px} .vset.vfold .hd{cursor:pointer} .vsum{line-height:1.35}
.vgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
@media (max-width:480px){.vgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
.vgrid .f>span{font-size:.68rem}
.vgrid input{min-height:42px;padding:8px}
.flagtxt{font-size:.72rem;color:var(--crit);font-weight:700}
.gcs{display:grid;grid-template-columns:auto 1fr;gap:8px 12px;align-items:center}
.gcs .chips .chip{min-width:44px;justify-content:center}
.chip.gcsb{display:flex;flex-direction:column;align-items:center;gap:1px;min-width:74px;max-width:96px;padding:6px 8px;line-height:1.1}
.chip.gcsb b{font-family:var(--f-mono);font-size:1.05rem}
.chip.gcsb small{font-size:.68rem;font-weight:500;text-align:center;opacity:.8}
.gcs{grid-template-columns:1fr}
.gcs>b{margin-top:4px}
.gcs-total{font-family:var(--f-mono);font-size:1.8rem;font-weight:600}

/* diagnosis */
.sugg{display:flex;flex-direction:column;gap:8px}
.sugg button{display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border-radius:8px;border:1.5px dashed var(--line);background:var(--surface-2);cursor:pointer}
.sugg .why{font-size:.8rem;color:var(--ink-3)}
.code{font-family:var(--f-mono);font-size:.85rem;font-weight:600;padding:2px 6px;border-radius:5px;background:var(--surface-2);border:1px solid var(--line);white-space:nowrap}
.dxsel{display:flex;flex-direction:column;gap:8px}
.dxsel .it{display:flex;gap:10px;align-items:center;padding:10px 12px;border-radius:8px;background:var(--ink);color:var(--surface)}
.dxsel .it .code{background:transparent;color:inherit;border-color:currentColor}
.dxsel .it button{margin-left:auto;background:none;border:none;color:inherit;font-size:1.3rem;cursor:pointer;line-height:1}
.dxsel .it button+button{margin-left:4px}
.dxsel .it.bad{outline:3px solid var(--warn, #c77700);outline-offset:-3px}
.dxsel .it .tag{background:transparent;color:inherit;border:1px solid currentColor}
.results{display:flex;flex-direction:column;max-height:260px;overflow:auto;border:1px solid var(--line);border-radius:8px;flex-shrink:0}   /* v360: inside the control dock (a flex column) it shrank to a 2 px line on shorter screens — the results were there but invisible */
.ctldock>*{flex-shrink:0}
.results button{display:flex;gap:10px;align-items:center;text-align:left;padding:10px 12px;border:none;border-top:1px solid var(--line);background:var(--surface);cursor:pointer}
.results button:first-child{border-top:none}

/* times */
.ttable{width:100%;border-collapse:collapse}
.ttable th{font-size:.72rem;text-transform:uppercase;letter-spacing:.07em;color:var(--ink-2);text-align:left;padding:6px 4px}
.ttable td{padding:5px 4px;border-top:1px solid var(--line)}
.ttable td:first-child{font-weight:600;white-space:nowrap}
.ttable input{min-height:42px;padding:8px}
.totals{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
@media (max-width:480px){.totals{grid-template-columns:repeat(2,minmax(0,1fr))}}
.total{padding:12px;border-radius:10px;background:var(--surface-2);border:1px solid var(--line)}
.total small{display:block;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:600}
.total b{font-family:var(--f-mono);font-size:1.25rem}

/* signatures */
.sig{display:flex;flex-direction:column;gap:8px}
.sig canvas{width:100%;height:150px;border:1.5px dashed var(--line);border-radius:10px;background:var(--paper);touch-action:none;cursor:crosshair}
.sig .who{font-size:.85rem;color:var(--ink-2)}
.sig img{width:100%;height:150px;object-fit:contain;border:1.5px solid var(--ok);border-radius:10px;background:var(--paper)}

/* review checklist */
.check{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.check:first-child{border-top:none}
.check .mk{width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-size:.8rem;font-weight:700;flex:0 0 auto}
.check .mk.y{background:var(--ok);color:var(--surface)} .check .mk.n{background:var(--crit-soft);color:var(--crit);border:1.5px solid var(--crit)}

/* PRF document (paper) */
.paper{max-width:100%;background:var(--paper);color:var(--paper-ink);border-radius:6px;padding:22px;font-size:12px;line-height:1.35;overflow-x:auto;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.paper .doc{min-width:640px}
.paper h4{margin:12px 0 4px;font:700 12px var(--f-body);text-transform:uppercase;letter-spacing:.08em;background:#c8102e;color:#fff;padding:3px 6px}
.paper .t{color:#c8102e}
.paper td,.paper th{border-color:#e3a3ad}
.paper th{background:#fbe7ea!important;color:#7a0a1c}
.paper{-webkit-print-color-adjust:exact;print-color-adjust:exact}
.paper table{width:100%;border-collapse:collapse}
.paper td,.paper th{border:1px solid var(--paper-line);padding:3px 5px;vertical-align:top;text-align:left}
.paper th{background:#eee;font-weight:600;font-size:11px}
.paper .lbl{color:#555;font-size:10px;text-transform:uppercase;letter-spacing:.04em;display:block}
.paper .dhead{display:flex;justify-content:space-between;align-items:flex-start;gap:16px}
.paper .dhead .t{font:700 22px var(--f-display);letter-spacing:.02em}
.paper .no{font:600 18px var(--f-mono);color:#c8102e}
.paper .sigimg{height:56px;max-width:100%}
.paper .checker{--check-a:#c8102e;--check-b:#fff;width:160px}
/* Printing / PDF: never cut a row (or a small table such as vital signs) across two pages, and keep a section heading with what follows it. */
.paper tr,.paper .sigimg,.paper img{break-inside:avoid;page-break-inside:avoid}
.paper table{break-inside:avoid;page-break-inside:avoid}
.paper thead{display:table-header-group}
.paper h4{break-after:avoid;page-break-after:avoid}
.receipt{background:var(--paper);color:var(--paper-ink);font:12px/1.35 var(--f-mono);padding:14px;border-radius:4px;white-space:pre;overflow-x:auto;max-width:100%}
.toast{position:fixed;left:50%;bottom:150px;transform:translateX(-50%);z-index:5100;background:var(--ink);color:var(--surface);padding:10px 16px;border-radius:10px;font-weight:600;max-width:calc(100% - 32px)}
@media (max-width:420px){.pill{padding:4px 8px}.brand b{font-size:1.2rem}header.top .bar{gap:6px;padding:10px 12px}.pill .lbl{display:none}.brand small{display:none}[data-act=menu]+.brand{display:none}}
@media print{
  body{background:#fff} header.top,.actionbar,.noprint,.toast{display:none!important}
  main{padding:0} .paper{box-shadow:none;padding:0} .paper .doc{min-width:0}
}
#hprint{display:none}
@media print{body.pshort>*:not(#hprint){display:none!important}body.pshort #hprint{display:block}body.pshort{padding:0!important}}

/* control room */
main.ctl{padding:0 0 16px}
.ctlbar{display:flex;gap:10px;align-items:center;padding:10px 16px;flex-wrap:wrap}
.ctlbar .tabs{display:flex;gap:4px}.ctlbar .tabs button{border:1px solid var(--line);background:var(--surface);padding:8px 14px;border-radius:8px;font-weight:600;cursor:pointer;color:var(--ink)}.ctlbar .tabs button.on{background:var(--ink);color:var(--surface)}
.ctlgrid{display:grid;grid-template-columns:340px 1fr 320px;gap:12px;padding:0 16px;height:calc(100vh - 175px - var(--alerts-h, 0px));min-height:480px}
.ctlcol{overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:10px}
.ctlcol h3{margin:2px 4px 8px}
.ctlmap{position:relative;border-radius:12px;overflow:hidden;border:1px solid var(--line);display:flex;flex-direction:column}
#ctl-map{flex:1;min-height:300px}.mapel{width:100%;height:100%}.maphint{padding:6px 10px;background:var(--surface)}
.ctlcall{border:1px solid var(--line);border-left:5px solid var(--line);border-radius:10px;padding:8px 10px;margin-bottom:8px;cursor:pointer;background:var(--surface)}
.ctlcall.waiting{border-left-color:#c8102e;background:var(--crit-soft)}.ctlcall.sent{border-left-color:#d97706}.ctlcall.accepted{border-left-color:#2563eb}.ctlcall.closed,.ctlcall.cancelled{opacity:.65}.ctlcall.sel{outline:2px solid var(--accent)}
.ctlcall .r1,.ctlveh .r1{display:flex;gap:6px;align-items:center}.ctlcall .r2{font-weight:600;margin:2px 0}
.ctlveh{border:1px solid var(--line);border-radius:8px;padding:5px 8px;margin-bottom:5px;font-size:.88em;line-height:1.3}.ctlveh.out{opacity:.7}
.ctlveh .small{font-size:.92em}.ctlveh .chip.sm{padding:2px 8px;font-size:.85em}.ctlveh .row{gap:4px;margin-top:2px}
.vdot{width:12px;height:12px;border-radius:50%;display:inline-block}
#ctl-alerts{max-height:118px;overflow-y:auto}
.ctlalert.div{background:#e0ecff;color:#1e3a8a} @media (prefers-color-scheme: dark){.ctlalert.div{background:#1e2a44;color:#c7d7fe}} .ctlalert{display:flex;gap:8px;align-items:center;margin:0 16px 8px;padding:8px 12px;border-radius:10px;background:var(--warn-soft);color:var(--warn);font-weight:600}.ctlalert span{flex:1}.ctlalert.crit{background:var(--crit-soft);color:var(--crit);animation:ctlpulse 1.2s ease-in-out 3}
@keyframes ctlpulse{50%{box-shadow:0 0 0 4px var(--crit)}}
.ihtcard{border-color:#2563eb}
.ctlmap .leaflet-container{background:#e8e4dc}
/* Pop-out map window (second screen): only the map. Main window while the map is popped out: calls and vehicles side by side. */
html.mapwin header.top,html.mapwin .ctlbar,html.mapwin #ctl-mci,html.mapwin #ctl-alerts,html.mapwin .ctlcol,html.mapwin #ctl-modal,html.mapwin main.ctl>.wrap,html.mapwin #toast{display:none!important}
html.mapwin main.ctl{padding:0!important}html.mapwin .ctlgrid{grid-template-columns:1fr!important;height:100vh!important;padding:0!important}html.mapwin .ctlmap{border-radius:0;border:0;height:100vh!important}
html.mapout .ctlmap{display:none}html.mapout .ctlgrid{grid-template-columns:minmax(0,1.7fr) minmax(300px,1fr)}
.ctldock{position:fixed;top:118px;left:16px;bottom:16px;width:min(480px,calc(100vw - 32px));z-index:1200;overflow-y:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 10px 34px rgba(0,0,0,.35);padding:16px}
.ctlmodal{position:fixed;top:0;right:0;bottom:0;left:0;background:rgba(0,0,0,.45);display:flex;align-items:flex-start;justify-content:center;z-index:1200;overflow-y:auto;padding:30px 12px}
.ctlmodal .sheet{background:var(--surface);border-radius:14px;padding:16px;width:100%;max-width:560px}.ctlmodal .sheet.wide{max-width:760px}
.chip.busy{opacity:.75}.grow{flex:1;min-width:0}
/* v319: in a row that wraps, the text part keeps a readable width — the buttons move to the next line on a phone instead of squeezing the text into a narrow column */
.row:not(.li)>.grow{min-width:min(220px,100%)}
.tl{display:flex;flex-direction:column;gap:4px}.tli{display:flex;gap:10px}.tli.declined,.tli.cancelled{color:var(--crit)}.tli.note{color:var(--ink-2)}
.vmark{color:#fff;font:700 12px/1 system-ui,sans-serif;padding:5px 7px;border-radius:7px;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);white-space:nowrap;transform:translate(-50%,-50%)}.vmark.old{opacity:.55}
.cmark{background:#c8102e;color:#fff;font:700 12px/1 system-ui,sans-serif;padding:6px 7px;border-radius:50% 50% 50% 0;border:2px solid #fff;box-shadow:0 1px 4px rgba(0,0,0,.5);transform:translate(-50%,-100%) rotate(-45deg)}
.wrap.wide{max-width:1300px}table.rpt{width:100%;border-collapse:collapse;font-size:.82rem}table.rpt th,table.rpt td{border-bottom:1px solid var(--line);padding:5px 6px;text-align:left;white-space:nowrap}
@media (max-width:1100px){.ctlgrid{grid-template-columns:1fr;height:auto}.ctlmap{height:420px}.ctlcol{max-height:none}}
.audlist{display:flex;flex-direction:column}.audrow{display:flex;gap:12px;padding:10px 0;border-top:1px solid var(--line)}.audrow:first-child{border-top:0}
.audtime{flex:0 0 auto;font-size:.85em;opacity:.7;padding-top:2px}.audbody{flex:1;min-width:0}.auddetail{overflow-wrap:anywhere;word-break:break-word;margin-top:2px}

/* ===== v268 refresh: same IPSS red / white, calmer and more professional ===== */
:root{--line-soft:#e3e6eb;--shadow:0 1px 2px rgba(16,24,40,.04),0 1px 3px rgba(16,24,40,.07);--shadow-up:0 4px 14px rgba(16,24,40,.10);--bg:#f2f3f5;--r:12px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){--line-soft:#2a3038;--shadow:none;--shadow-up:0 4px 14px rgba(0,0,0,.4);--bg:#0f1216}}
:root[data-theme="dark"]{--line-soft:#2a3038;--shadow:none;--shadow-up:0 4px 14px rgba(0,0,0,.4);--bg:#0f1216}
body{background:var(--bg)}
h2{font-size:1.75rem;line-height:1.1} h3{font-size:.92rem;letter-spacing:.09em}
.eyebrow{margin-bottom:2px}
.card{border-color:var(--line-soft);box-shadow:var(--shadow)}
details.card>summary{font-weight:600}
header.top{border-bottom:0;box-shadow:0 1px 0 var(--line-soft),0 2px 8px rgba(16,24,40,.04)}
header.top .bar{min-height:58px}
.brand b{font-size:1.3rem}
.iconbtn{background:transparent;border-color:transparent;border-radius:8px;color:var(--ink-2)} .iconbtn:hover{background:var(--surface-2);border-color:var(--line-soft);color:var(--ink)}
header.top .iconbtn[data-act=menu]{border-color:var(--line-soft);background:var(--surface);color:var(--ink)}
.pill{background:transparent;border-color:var(--line-soft);color:var(--ink-2);font-weight:600}
body.wideui header.top .bar,body.wideui .casebar{max-width:1380px}
/* home tiles */
.tile{border:1px solid var(--line-soft);box-shadow:var(--shadow);transition:transform .12s ease,box-shadow .12s ease,border-color .12s ease;position:relative;overflow:hidden}
.tile:hover{transform:translateY(-1px);box-shadow:var(--shadow-up);border-color:var(--line)}
.tile b{font-size:1.4rem}
.tile:not(.new):not(.alert)::before{content:'';position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--accent);opacity:0;transition:opacity .12s}
.tile:not(.new):not(.alert):hover::before{opacity:1}
.tile.new{box-shadow:0 2px 10px rgba(200,16,46,.25)}
.tile.alert{border-color:var(--warn);box-shadow:inset 4px 0 0 var(--warn),var(--shadow)}
/* buttons and chips */
.btn{border-width:1px;border-color:var(--line);box-shadow:var(--shadow)} .btn:hover:not(:disabled){border-color:var(--ink-3)}
.btn.primary{box-shadow:0 1px 2px rgba(200,16,46,.3)} .btn.primary:hover:not(:disabled){filter:brightness(1.06);border-color:var(--accent)}
.btn.ghost{box-shadow:none}
.chip{border-width:1px;border-color:var(--line)} .chip:hover{border-color:var(--ink-3)}
input,select,textarea{border-width:1px;border-color:var(--line);background:var(--surface)}
.dtile{border-color:var(--line-soft);box-shadow:var(--shadow)}
.tag{border-radius:999px;padding:3px 9px;align-self:center}
.audrow{flex-wrap:wrap;align-items:center;row-gap:8px;border-top-color:var(--line-soft)} .audrow>.audbody{flex:1 1 220px} .audrow>.chip,.audrow>.btn{align-self:center}
/* sub-section tabs: one tidy underlined strip (scrolls sideways on a phone) instead of rows of buttons */
.chips.stabs{flex-wrap:nowrap;overflow-x:auto;gap:2px;border-bottom:1px solid var(--line);scrollbar-width:none;margin-bottom:6px;padding:0 2px}
.chips.stabs::-webkit-scrollbar{display:none}
@media (max-width:760px){.chips.stabs{-webkit-mask-image:linear-gradient(90deg,#000 88%,transparent);mask-image:linear-gradient(90deg,#000 88%,transparent);padding-right:28px}}
.chips.stabs .chip{background:none;border:0;border-bottom:3px solid transparent;border-radius:0;min-height:44px;padding:8px 12px;color:var(--ink-2);white-space:nowrap;box-shadow:none;flex:0 0 auto}
@media (hover:hover){.chips.stabs .chip:hover{color:var(--ink);border-bottom-color:var(--line)} .snav-i:hover{background:var(--surface-2);color:var(--ink)}}
.chips.stabs .chip.on{background:none;color:var(--ink);border-bottom-color:var(--accent)}
/* grouped section menu */
.snav-side,.snav-sheet{background:var(--surface);border:1px solid var(--line-soft);border-radius:var(--r);padding:8px;box-shadow:var(--shadow)}
.snav-g+.snav-g{margin-top:6px;padding-top:6px;border-top:1px solid var(--line-soft)}
.snav-h{font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);padding:6px 10px 4px}
.snav-i{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;text-align:left;border:0;background:none;padding:7px 10px;border-radius:8px;font-weight:500;font-size:.92rem;color:var(--ink-2);cursor:pointer;min-height:36px}
.snav-i.on{background:var(--accent-soft);color:var(--accent);font-weight:700;box-shadow:inset 3px 0 0 var(--accent)}
.snav-pick{display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line-soft);border-radius:var(--r);background:var(--surface);box-shadow:var(--shadow);cursor:pointer;text-align:left;min-height:56px;color:var(--ink)}
.snav-pick small{display:block;font-size:.66rem;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--accent);margin-bottom:2px}
.snav-pick b{font-size:1.05rem} .snav-pick>span:first-child{min-width:0} .snav-pick>.row{flex-wrap:nowrap;flex-shrink:0}
.snav-sheet{margin-top:8px} .snav-sheet .snav-i{min-height:44px;font-size:1rem}
.snav-gh{display:flex;justify-content:space-between;align-items:center;width:100%;min-height:48px;padding:8px 10px;border:0;background:none;font:inherit;font-weight:700;font-size:1rem;color:var(--ink);text-align:left;cursor:pointer;border-radius:10px} .snav-gh.on{color:var(--crit)} .snav-sheet .snav-g:has(.snav-gh.on) .snav-i{padding-left:22px}
.sidecol{max-width:720px;margin:0 auto 14px;padding-inline:16px}
@media (max-width:1023px){main.sidemain>.wrap>div:first-child:has(>.eyebrow + h2):not(:has(button,select,input,a,.small)){display:none} .snav-pick b{font:700 1.45rem/1.1 var(--f-display)}}
@media (max-width:1023px){.snav-side{display:none}}
@media (min-width:1024px){
  main.sidemain{display:grid;grid-template-columns:236px minmax(0,1fr);gap:28px;max-width:1380px;margin:0 auto;padding-inline:20px;align-items:start}
  main.sidemain>.wrap{margin:0;padding-inline:0;width:100%}
  .sidecol{position:sticky;top:calc(76px + env(safe-area-inset-top,0px));max-height:calc(100vh - 96px);overflow:auto;margin:0;padding:0;scrollbar-width:thin}
  .snav-pick,.snav-sheet{display:none}
  .tiles{grid-template-columns:repeat(3,1fr)}
}
.tile.mtile{justify-content:flex-start;gap:8px;min-height:108px} .tile.mtile b{font-size:1.35rem} .tile.mtile .small{line-height:1.35}
/* v279: glove mode — bigger targets for wet / gloved hands (per person, per phone) */
.fcgrid{border-collapse:separate;border-spacing:2px;font-size:11px;width:100%;min-width:620px} .fcgrid th{font-weight:600;color:var(--muted,#666);text-align:left;padding:0 4px} .fcgrid td{height:26px;border-radius:4px;text-align:center;font-weight:600;min-width:20px;background-clip:padding-box;box-shadow:inset 0 0 0 1px rgba(0,0,0,.04)} .fcgrid td.num{box-shadow:none;text-align:right;padding-left:6px}
#ctldrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:rgba(200,16,46,.12);border:4px dashed #c8102e;display:flex;align-items:center;justify-content:center;pointer-events:none}
#ctldrop div{background:#fff;padding:22px 30px;border-radius:14px;font:700 20px var(--f-body,sans-serif);text-align:center;box-shadow:0 8px 30px rgba(0,0,0,.2)} #ctldrop span{font-weight:400;font-size:14px;color:#555}
.omwrap{position:fixed;top:0;right:0;bottom:0;left:0;z-index:140;background:var(--bg,#f1f2f4);display:flex;flex-direction:column} .omtop{display:flex;gap:8px;align-items:center;padding:8px 10px;background:#fff;border-bottom:1px solid #ddd}
#ommap{flex:1;min-height:200px} .omlist{background:#fff;padding:8px 12px;max-height:34vh;overflow:auto;border-top:1px solid #ddd} .omscene{font-size:28px;line-height:1;filter:drop-shadow(0 1px 2px rgba(0,0,0,.4))}
#micfab{position:fixed;right:14px;bottom:170px;z-index:150;display:none;align-items:center;gap:6px;border:0;border-radius:999px;padding:7px 14px;font:600 14px var(--f-body, sans-serif);background:#1f2937;color:#fff;box-shadow:0 4px 14px rgba(0,0,0,.25)}
#micfab.on{display:flex} #micfab.rec{background:#c8102e;animation:micp 1.2s infinite} @keyframes micp{50%{box-shadow:0 0 0 10px rgba(200,16,46,.15)}} body.glove #micfab{padding:10px 18px;font-size:16px}
body.glove{font-size:18px} body.glove .btn{min-height:60px;font-size:1.1rem;padding:12px 20px} body.glove .chip{min-height:52px;padding:10px 18px;font-size:1.05rem}
body.glove .chip.sm{min-height:46px;padding:8px 14px;font-size:1rem} body.glove input,body.glove select,body.glove textarea{min-height:56px;font-size:1.1rem}
body.glove .chips{gap:10px} body.glove .stepper button{min-height:48px;padding:10px 14px} body.glove .f>span{font-size:.85rem}
body.glove .actionbar .btn{min-height:64px} body.glove input[type=checkbox]{transform:scale(1.4)}
@media print{.sidecol{display:none} main.sidemain{display:block}}
/* v325: tables wider than the screen scroll sideways — a soft shadow at the edge shows there is more */
div[style*="overflow-x:auto"],div[style*="overflow-x: auto"]{background:linear-gradient(to right,var(--surface) 30%,rgba(255,255,255,0)),linear-gradient(to right,rgba(255,255,255,0),var(--surface) 70%) 0 100%,radial-gradient(farthest-side at 0 50%,rgba(0,0,0,.18),rgba(0,0,0,0)),radial-gradient(farthest-side at 100% 50%,rgba(0,0,0,.18),rgba(0,0,0,0)) 0 100%;background-repeat:no-repeat;background-color:var(--surface);background-size:40px 100%,40px 100%,14px 100%,14px 100%;background-position:0 0,100% 0,0 0,100% 0;background-attachment:local,local,scroll,scroll}

/* v328: the office (CG / Accounts) read-only form — buttons that change the PRF are hidden instead of looking usable */
.ro [data-act="delRow"],.ro [data-act="idScan"],.ro [data-act="delDx"],.ro [data-act^="add"],.ro [data-act="secTog"],.ro [data-act^="mon"],.ro [data-act="aiImport"],.ro [data-act^="scene"],.ro [data-act="xpRemove"],.ro [data-act="newSet"],.ro [data-act="estWeight"],.ro .due{display:none!important}
/* v328: small phones (360 px) — a list row's PRF / reference number sits on its own line above the name, so the name and complaint get the full width */
@media (max-width:400px){.list .li{flex-wrap:wrap}.list .li>.mono:first-child{flex:1 1 100%;margin-bottom:-4px}.list .li>.grow{min-width:0;flex:1 1 60%}}
/* v328: sign-in page links big enough to tap, in the app's colour */
.login a{color:var(--accent);display:inline-block;padding:8px 2px;font-weight:600}
.login>.stack{max-width:460px;margin:0 auto;width:100%;padding:0 16px 32px;box-sizing:border-box}   /* v328: vehicle picker had no side gap */

/* v328: Guides */
.guide h2{margin:2px 0}.guide .ghead{border-bottom:2px solid var(--line,#ccc);padding-bottom:8px;margin-bottom:10px}
.guide .gcols{columns:2 320px;column-gap:24px}.guide section{break-inside:avoid;margin-bottom:12px}
.guide h3{font-size:1.02rem;margin:0 0 4px}.guide ol{margin:0;padding-left:20px}.guide li{margin:2px 0;line-height:1.35}
.guide .gfoot{margin-top:10px;border-top:1px solid var(--line,#ccc);padding-top:6px}
@media print{body.pguide *{visibility:hidden!important}body.pguide #guide-print,body.pguide #guide-print *{visibility:visible!important}
  body.pguide #guide-print{position:absolute;left:0;top:0;width:100%;color:#000;background:#fff;font-size:10.5pt}body.pguide #guide-print .muted{color:#444}
  body.pguide .guide .gcols{columns:2;column-gap:18px}}
.vmark2{background:#fff;color:#334155;font:700 11px/1 system-ui,sans-serif;padding:3px 6px;border-radius:7px;border:2px dashed #64748b;white-space:nowrap;transform:translate(-50%,-50%);opacity:.9}
.missdot{color:#c8102e;margin-left:3px}:root[data-theme="dark"] .missdot{color:#ff6b7d}@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .missdot{color:#ff6b7d}}
/* v352 (from Events v55/v64): section tabs wrap onto a second line instead of scrolling sideways — with a mouse there is no swipe, so tabs scrolled off to the left could not be reached */
.chips.stabs{flex-wrap:wrap;overflow-x:visible;-webkit-mask-image:none;mask-image:none;padding-right:2px}
@media (max-width:760px){.chips.stabs .chip{min-height:40px;padding:6px 10px}}

/* v358 (Rodney, mock test): the vehicle choices on a call — bigger and easier to read on the control-room screen */
.vpickf { margin-top: 10px; padding-top: 10px; border-top: 2px solid var(--line); }
.vpickf > span { display: block; font-size: 20px; font-weight: 800; text-transform: none; letter-spacing: 0; color: #fff; background: #c8102e; padding: 10px 14px; border-radius: 8px; }   /* v359: a red heading band — control couldn't find these */
.vpickf > span .small { color: #fff; opacity: .85; font-weight: 500; }
.vpick { gap: 10px; }
.vpick .chip:not(.sm) { font-size: 19px; padding: 14px 20px; min-height: 56px; border-width: 2px; }
.vpick .chip:not(.sm) b { font-size: 22px; }
.vpick .chip .als { font-size: 13px; font-weight: 700; }
.vnear { font-size: 15px; }
