/* Resa clinic system. The look follows the agreed prototype (docs/prototype/source/head.html):
   IBM Plex type, teal accent, white panels on a pale green-grey page, a side menu of modules,
   and a strip of tabs under each module's title. Fonts are served from this server so the
   clinic computer looks the same without internet. */
@font-face{font-family:"IBM Plex Sans";font-weight:400;font-display:swap;src:url(fonts/IBMPlexSans-Regular-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:500;font-display:swap;src:url(fonts/IBMPlexSans-Medium-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans";font-weight:600 700;font-display:swap;src:url(fonts/IBMPlexSans-SemiBold-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Sans Condensed";font-weight:600;font-display:swap;src:url(fonts/IBMPlexSansCondensed-SemiBold-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:400;font-display:swap;src:url(fonts/IBMPlexMono-Regular-Latin1.woff2) format("woff2")}
@font-face{font-family:"IBM Plex Mono";font-weight:500 600;font-display:swap;src:url(fonts/IBMPlexMono-Medium-Latin1.woff2) format("woff2")}

:root{
  --bg:#f1f5f4;--panel:#fff;--ink:#14262b;--muted:#56696c;--line:#d3dddb;
  --accent:#0d6b63;--accent-ink:#fff;--accent-soft:#dcefeb;
  --bad:#b3261e;--bad-soft:#fbe4e1;--warn:#855600;--warn-soft:#fbefd0;--ok:#1d6b34;--ok-soft:#dff2e3;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
  --cond:"IBM Plex Sans Condensed","IBM Plex Sans",system-ui,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  /* older names still used by some screens */
  --brand:var(--accent);--brand-ink:var(--accent-ink);--bad-bg:var(--bad-soft);--ok-bg:var(--ok-soft);--warn-bg:var(--warn-soft)
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:14px/1.45 var(--sans)}
a{color:var(--accent)}
[hidden]{display:none!important}

/* Header */
header{position:sticky;top:0;z-index:5;background:var(--panel);border-bottom:1px solid var(--line)}
.bar{display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;padding:10px 16px;min-height:57px}
.brand{font:600 18px var(--cond);letter-spacing:.01em;display:flex;gap:8px;align-items:center;margin-right:auto;color:var(--ink);text-decoration:none}
.brand svg{flex:none}
.demo,.tag{font:500 11px var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--warn);background:var(--warn-soft);padding:2px 6px;border-radius:3px}
.who{display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}
.who details{border:0;padding:0;position:relative}
.who summary{list-style:none;font:400 14px var(--sans);color:var(--ink);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:7px 30px 7px 12px;position:relative;margin:0}
.who summary::-webkit-details-marker{display:none}
.who summary::after{content:"";position:absolute;right:11px;top:50%;width:6px;height:6px;border:solid var(--ink);border-width:0 1.5px 1.5px 0;transform:translateY(-70%) rotate(45deg)}
.who .menu{position:absolute;right:0;top:calc(100% + 4px);background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:6px;display:flex;flex-direction:column;gap:2px;min-width:200px;box-shadow:0 6px 20px rgba(0,0,0,.08);z-index:6}
.who .menu a,.who .menu button{all:unset;cursor:pointer;padding:7px 10px;border-radius:4px;color:var(--ink);font:14px var(--sans)}
.who .menu a:hover,.who .menu button:hover{background:var(--bg)}
.who .menu form{margin:0;display:flex;flex-direction:column}

/* Side menu of modules */
.shell{display:grid;grid-template-columns:212px minmax(0,1fr);align-items:start;min-height:calc(100vh - 58px);background:linear-gradient(to right,var(--panel) 0 211px,var(--line) 211px 212px,transparent 212px)}
.shell>nav{display:flex;flex-direction:column;gap:2px;padding:14px 8px 24px 12px;position:sticky;top:58px;max-height:calc(100vh - 58px);overflow-y:auto}
.shell>nav .ng{font:600 11px var(--sans);text-transform:uppercase;letter-spacing:.07em;color:var(--muted);padding:12px 10px 4px}
.shell>nav .ng:first-child{padding-top:2px}
.shell>nav a{color:var(--ink);font:500 14px var(--sans);padding:8px 10px;border-left:3px solid transparent;border-radius:4px;white-space:nowrap;text-decoration:none;display:flex;justify-content:space-between;align-items:center;gap:6px}
.shell>nav a:hover{background:var(--bg)}
.shell>nav a.on{color:var(--accent);border-left-color:var(--accent);background:var(--accent-soft)}
.shell>nav .n,.tabs .n{font:500 11px var(--mono);background:var(--accent-soft);color:var(--accent);border-radius:9px;padding:0 6px;margin-left:4px}
.shell>nav a.on .n{background:var(--panel)}
.shell>.body{min-width:0}
@media (max-width:860px){.shell{grid-template-columns:minmax(0,1fr);background:none}.shell>nav{background:var(--panel);flex-direction:row;position:static;max-height:none;overflow-x:auto;border-bottom:1px solid var(--line);padding:4px 12px}.shell>nav .ng{display:none}}

main{max-width:1240px;width:100%;padding:16px 16px 48px}
.narrow{max-width:420px;margin:48px auto}
/* A module page: the module's name, then its tabs (the page's own first heading is then not needed). */
.modhead{display:flex;flex-direction:column;gap:12px;margin-bottom:16px}
.tabbed main>h1:first-of-type,.tabbed main>.row.between:first-of-type>h1{display:none}
.tabbed main>.row.between:first-of-type{justify-content:flex-end}
.tabs{display:flex;flex-wrap:wrap;gap:6px}
.tabs a{font:500 13px var(--sans);border:1px solid var(--line);background:var(--panel);color:var(--muted);border-radius:4px;padding:5px 10px;text-decoration:none;display:inline-flex;align-items:center}
.tabs a:hover{color:var(--ink)}
.tabs a.on{border-color:var(--accent);color:var(--accent);background:var(--accent-soft)}
.tabs.gt{border-bottom:1px solid var(--line);margin-bottom:-6px}
.tabs.gt a{font-weight:600;border-radius:4px 4px 0 0;border-bottom-width:3px}

/* Type */
h1{font:600 22px var(--cond);margin:0 0 16px;text-wrap:balance}
.modhead h1{margin:0}
h2{font:600 16px var(--cond);margin:0 0 10px;text-wrap:balance}
h3{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 8px}
p{margin:0 0 8px}
.muted{color:var(--muted)}.small{font-size:12.5px}.mono{font-family:var(--mono);font-size:12.5px}
.pre{white-space:pre-wrap}
.flag{color:var(--bad);font-weight:600}
.num{text-align:right;font-variant-numeric:tabular-nums}
.total{font:600 20px var(--cond)}
mark{background:var(--warn-soft);color:var(--ink);padding:0 1px}

/* Panels and layout */
.panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:16px;margin-bottom:16px;min-width:0}
.panel>:last-child{margin-bottom:0}
.panel h2:first-child,.panel h3:first-child{margin-top:0}
.cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.cols.wide{grid-template-columns:minmax(0,5fr) minmax(0,3fr)}
.cols.list{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}
@media (max-width:860px){.cols,.cols.wide,.cols.list{grid-template-columns:minmax(0,1fr)}}
.stack{display:flex;flex-direction:column;gap:12px;min-width:0}
.row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.row form{margin:0}
.between{justify-content:space-between}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:0 10px}

/* Forms */
label{display:flex;flex-direction:column;gap:3px;margin:0 0 10px;font-size:12.5px;color:var(--muted);min-width:0}
label.chk,.chk{flex-direction:row;align-items:center;gap:6px;color:var(--ink);font-size:14px}
input,select,textarea{font:14px var(--sans);color:var(--ink);background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:7px 8px;width:100%;min-width:0;margin:0}
input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--accent)}
input[type=file]{background:transparent;border:0;padding:4px 0}
textarea{min-height:64px;resize:vertical}
:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.err,.errorlist{color:var(--bad);font-size:12.5px;margin:2px 0 0;padding:0;list-style:none}

/* Buttons: filled for the main action, outlined (.s) for others, red outline (.danger) to undo or refuse */
button,.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;font:500 14px var(--sans);border:1px solid var(--accent);background:var(--accent);color:var(--accent-ink);border-radius:4px;padding:7px 12px;cursor:pointer;text-decoration:none;white-space:nowrap}
button.s,.btn.s{background:var(--panel);color:var(--accent)}
button.danger,.btn.danger{background:var(--panel);color:var(--bad);border-color:var(--bad)}
button.sm,.btn.sm{padding:3px 8px;font-size:12.5px}
button:disabled{opacity:.5;cursor:not-allowed}
@media (prefers-reduced-motion:no-preference){button,.btn,.shell>nav a{transition:background .12s,color .12s}}

/* Badges */
.pill,.tagok{display:inline-block;font:500 11.5px var(--mono);padding:1px 7px;border-radius:9px;background:var(--accent-soft);color:var(--accent);white-space:nowrap;vertical-align:1px}
.pill.bad,.pill.emergency{background:var(--bad-soft);color:var(--bad)}
.pill.warn,.pill.urgent{background:var(--warn-soft);color:var(--warn)}
.pill.ok,.pill.routine,.tagok{background:var(--ok-soft);color:var(--ok)}
.pill.n{background:var(--bg);color:var(--muted);border:1px solid var(--line)}

/* Messages and boxes */
.msg{padding:10px 12px;border-radius:4px;border:1px solid var(--line);background:var(--ok-soft);color:var(--ok);margin-bottom:12px}
.msg.error,.msg.bad{background:var(--bad-soft);color:var(--bad)}
.msg.warning,.msg.warn{background:var(--warn-soft);color:var(--warn)}
.msg.info{background:transparent;color:var(--muted)}
.warnbox,.once{background:var(--warn-soft);border:1px solid #e3c96b;border-radius:6px;padding:12px 14px;margin-bottom:16px}
.once .mono{font-size:20px;font-weight:600;user-select:all}
.alert{background:var(--bad-soft);border:1px solid var(--bad);color:var(--bad);border-radius:6px;padding:12px 14px;margin-bottom:16px}

/* Tables */
.tw{overflow-x:auto}
table{border-collapse:collapse;width:100%;font-size:13.5px}
th{text-align:left;font:600 11.5px var(--sans);text-transform:uppercase;letter-spacing:.05em;color:var(--muted);padding:6px 8px;border-bottom:1px solid var(--line);white-space:nowrap;vertical-align:bottom}
td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:top}
td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}
td a{color:var(--accent);font-weight:500}
tr.grp td{background:var(--bg);font-weight:600}

/* Details, key-value lists, timelines, tiles, queues */
details>summary{cursor:pointer;font:600 14px var(--cond);padding:4px 0;margin-bottom:6px}
.panel details{border-top:1px solid var(--line);padding-top:6px;margin-top:6px}
.kv{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 12px;font-size:13.5px;margin:0}
.kv dt{color:var(--muted)}.kv dd{margin:0}
.tl{display:flex;flex-direction:column;gap:2px;font:12.5px var(--mono)}
.tl span{color:var(--muted)}
.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:16px}
.tile{border:1px solid var(--line);border-radius:6px;padding:10px 12px;background:var(--panel);display:flex;flex-direction:column;color:var(--ink);text-decoration:none}
.tile b{display:block;font:600 24px var(--cond);font-variant-numeric:tabular-nums}
.tile span{color:var(--muted)}
.tile.hot{border-color:var(--bad)}.tile.hot b{color:var(--bad)}
a.tile:hover{border-color:var(--accent)}
.q{display:flex;flex-direction:column}
.q>a,.q>div{padding:10px 8px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:3px;color:var(--ink);text-decoration:none}
.q>a:hover{background:var(--bg)}
.q>a.on{background:var(--accent-soft)}
.q .t{font-weight:600}
.ph{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:8px 12px;display:flex;flex-wrap:wrap;gap:4px 10px;align-items:baseline;margin-bottom:12px}
.ph b{font-weight:600;font-size:15px}
.stg{font:12.5px/1.5 var(--mono);white-space:pre-wrap;margin:0;color:var(--ink)}

/* Receipts, forms and letters to print */
.receipt{max-width:420px;margin:0 auto}
.receipt h2{text-align:center;margin-bottom:2px}
.receipt .c{text-align:center}
.letter{max-width:760px;margin:0 auto;font-size:14px}
.letter .head{text-align:center;border-bottom:2px solid var(--accent);padding-bottom:8px;margin-bottom:12px}
.letter .head b{font:600 22px var(--cond);color:var(--accent);letter-spacing:.02em}
.letter h2{text-align:center;font-size:18px;margin:10px 0}
.letter h3{font-size:12.5px;margin:14px 0 4px;border-bottom:1px solid var(--line);letter-spacing:.04em;color:var(--ink)}
.letter .lbl{color:var(--muted)}
.letter .box{margin-top:6px;padding:6px 8px;border:2px solid var(--bad);color:var(--bad);font-weight:700}
.letter .foot{margin-top:16px;border-top:1px solid var(--line);padding-top:8px;text-align:center;font-size:12.5px}
.letter .tick{margin:6px 0}
.labels{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.labels>div{border:1px dashed var(--muted);border-radius:4px;padding:10px;font-size:13px;break-inside:avoid}

@media print{
  header,nav,.noprint,.msg,.modhead{display:none!important}
  body{background:#fff;font-size:12pt}
  .shell{display:block;background:none}
  .panel{border:0;padding:0}
  main{padding:0;max-width:none}
  .letter{max-width:none;font-size:12pt}
  .pagebreak{break-before:page}
}
.stack>.panel,.cols>.panel{margin-bottom:0}
.cols{margin-bottom:16px}
.rxgrid>label:first-child{grid-column:1/-1}

/* Doctor's consultation (October 2026): one continuous page. Sticky patient and triage header; collapsible
   sections in the order of the clinical workflow; management actions open on the page; a right-hand panel of
   results and medicines (a slide-out drawer on small screens); a bar at the bottom to save or close the case. */
.cx-head{position:sticky;top:57px;z-index:4;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:10px;display:flex;flex-wrap:wrap;gap:6px 18px;align-items:center;box-shadow:0 1px 3px rgba(20,38,43,.06)}
.cx-who{min-width:240px;flex:1 1 320px}
.cx-name{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;font-size:17px}
.cx-name .known{color:var(--warn);font-weight:600}
.cx-allergy{font:600 12.5px var(--sans);padding:3px 9px;border-radius:5px;text-decoration:none;letter-spacing:.01em}
.cx-allergy.bad{background:var(--bad);color:#fff}
.cx-allergy.warn{background:var(--warn-soft);color:var(--warn);border:1px solid #e5c77a}
.cx-allergy.ok{background:var(--ok-soft);color:var(--ok)}
.cx-tri{display:flex;flex-wrap:wrap;gap:5px;align-items:center;flex:2 1 380px}
.vrow{display:flex;flex-wrap:wrap;gap:6px;margin:2px 0 4px}
.vrow .vchip{font-size:15px;padding:4px 10px}
.vchip{font:13px var(--sans);padding:2px 8px;border-radius:5px;border:1px solid var(--line);background:var(--panel);white-space:nowrap}
.vchip b{font:600 13px var(--mono)}
.vchip.warn,.vbox.warn{background:var(--warn-soft);border-color:#e5c77a;color:var(--warn)}
.vchip.bad,.vbox.bad{background:var(--bad-soft);border-color:#eab0a9;color:var(--bad)}
.cx-tools{display:flex;flex-wrap:wrap;gap:6px;margin-left:auto}
.cx-tools .n{font:500 11px var(--mono);background:var(--bad);color:#fff;border-radius:9px;padding:0 6px;margin-left:4px}
.vgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:8px;margin-bottom:8px}
.vbox{border:1px solid var(--line);border-radius:6px;padding:6px 9px;display:flex;flex-direction:column}
.vbox span{font-size:12px;color:var(--muted)}.vbox.warn span,.vbox.bad span{color:inherit}
.vbox b{font:600 17px var(--mono)}
.cx-closed{background:var(--ink);color:#fff;border-radius:8px;padding:12px 14px;margin-bottom:10px}
.cx-closed input{background:#fff}
.cx-body{display:grid;grid-template-columns:minmax(0,1fr) var(--side-w,320px);gap:14px;align-items:start}
.cx.side-off .cx-body{grid-template-columns:minmax(0,1fr)}
.cx.side-off .cx-side{display:none}
.cx-main{display:flex;flex-direction:column;gap:10px;min-width:0}
.cs{background:var(--panel);border:1px solid var(--line);border-radius:8px;scroll-margin-top:150px}
.cs>.cs-h,.cs>summary.cs-h{display:flex;align-items:center;gap:10px;padding:11px 14px;margin:0;font:600 15.5px var(--sans);list-style:none;cursor:pointer}
.cs.fixed>.cs-h{cursor:default}
.cs>summary.cs-h::-webkit-details-marker{display:none}
.cs>summary.cs-h::after{content:"";margin-left:auto;flex:none;width:8px;height:8px;border:solid var(--muted);border-width:0 2px 2px 0;transform:rotate(45deg);transition:transform .15s}
.cs[open]>summary.cs-h::after{transform:rotate(225deg)}
.cs>summary.cs-h:hover{background:#f7faf9;border-radius:8px}
.cs-n{flex:none;min-width:26px;height:26px;padding:0 5px;border-radius:13px;background:var(--accent-soft);color:var(--accent);display:inline-flex;align-items:center;justify-content:center;font:600 12px var(--mono)}
.cs-s{margin-left:auto;font:400 12.5px var(--sans);color:var(--muted);text-align:right}
.cs-s.bad{color:var(--bad);font-weight:600}.cs-s.warn{color:var(--warn);font-weight:600}.cs-s.ok{color:var(--ok);font-weight:600}
.cs-b{padding:2px 14px 14px 50px;display:flex;flex-direction:column;gap:10px}
.cs[data-attention]>summary .cs-n{background:var(--bad);color:#fff}
details.sub{border:1px solid var(--line);border-radius:6px;padding:6px 10px;margin:0}
details.sub>summary{margin:0}
details.sub[open]>summary{margin-bottom:6px}
.sub-box{border:1px solid var(--line);border-radius:6px;padding:8px 10px}
.grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 12px}
.grid4{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:4px 10px;align-items:end}
.pre.ro{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:6px 8px;margin-top:3px;font-weight:400;color:var(--ink)}
.actgrid,.formgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.actbtn{all:unset;box-sizing:border-box;cursor:pointer;display:flex;align-items:center;gap:8px;border:1px solid var(--line);border-radius:6px;padding:9px 10px;background:var(--panel);font:500 13.5px var(--sans);color:var(--ink);min-height:46px}
.actbtn:hover{background:#f7faf9}
.actbtn[aria-expanded="true"]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-soft)}
.actbtn .pill{margin-left:auto}
.actbtn .acticon{flex:none;color:var(--accent)}
table.msum{margin-top:10px;font-size:14px}
table.msum tr[data-act]{cursor:pointer}
table.msum tr[data-act]:hover td{background:#f4f8f7}
table.msum tr[data-act]:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
table.msum .acticon{vertical-align:-5px;color:var(--accent)}
.actbtn:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.actpanel{border:1px solid var(--accent);border-radius:8px;padding:10px 12px;background:#fbfdfc;scroll-margin-top:150px}
.actpanel>h3{margin:0 0 8px}
.gate{margin:0}
.dxrow{display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;padding:6px 0;border-top:1px solid var(--line)}
details.inline{border:0;padding:0;margin:0}
details.inline>summary{display:inline-block;font:500 12px var(--sans);border:1px solid var(--line);border-radius:4px;padding:4px 8px;margin:0}
.dispo{display:flex;flex-wrap:wrap;gap:6px}
.dispo .chip{display:inline-flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:18px;padding:6px 12px;margin:0;cursor:pointer;font-weight:500}
.dispo .chip:has(input:checked){border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}
.dispo .chip input{width:auto;margin:0}
[data-dispo-help] p{margin:4px 0}
.ok-ink{color:var(--ok);font-weight:600}
.cx-side{position:sticky;top:150px;max-height:calc(100vh - 230px);overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:0 10px 10px}
.side-tabs{display:flex;position:sticky;top:0;background:var(--panel);z-index:1;border-bottom:1px solid var(--line);margin:0 -10px 8px}
.side-tabs button{all:unset;cursor:pointer;flex:1;text-align:center;padding:9px 3px;font:600 12px var(--sans);color:var(--muted);border-bottom:3px solid transparent}
.side-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.side-tabs .side-x{flex:none;padding:9px 12px;font-size:18px}
.trk{border-bottom:1px solid var(--line);padding:8px 0}
.trk-crit{border-left:3px solid var(--bad);padding-left:8px}
.trk-h{display:flex;flex-wrap:wrap;gap:4px 6px;align-items:baseline}
.trk-h .pill{margin-left:auto}
.trk-now{color:var(--ink);margin-top:2px}
/* the tracker bar: only the step the test has reached is coloured: orange (ordered), amber (in the laboratory), green (result released); the rest are faint */
.trk-bar{list-style:none;margin:8px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px}
.trk-bar li{display:flex;flex-direction:column;gap:2px;min-width:0}
.trk-bar .seg{height:8px;background:#dfe6e5}
.trk-bar li:first-child .seg{border-radius:4px 0 0 4px}
.trk-bar li:last-child .seg{border-radius:0 4px 4px 0}
.trk-bar li.st1.cur .seg{background:#e8833a}
.trk-bar li.st2.cur .seg{background:#e6b422}
.trk-bar li.st3.cur .seg{background:#2e9e5b}
.trk-bar .lbl{font-size:11.5px;line-height:1.25;color:var(--muted)}
.trk-bar li.cur .lbl{color:var(--ink);font-weight:600}
.trk-bar time{font:11.5px var(--mono);color:var(--muted)}
.trk-steps{list-style:none;margin:6px 0 0;padding:0;display:flex;flex-direction:column;gap:2px;font-size:12px}
.trk-steps li{display:flex;gap:8px;align-items:center;color:var(--muted)}
.trk-steps li::before{content:"";flex:none;width:9px;height:9px;border-radius:50%;border:2px solid #b9c7c5;background:var(--panel)}
.trk-steps li.done{color:var(--ink)}
.trk-steps li.done::before{background:var(--accent);border-color:var(--accent)}
.trk-steps time{margin-left:auto;font:12px var(--mono);color:var(--muted)}
details.res{border-bottom:1px solid var(--line);padding:4px 0;margin:0}
details.res>summary{display:flex;justify-content:space-between;gap:8px;align-items:center;font:500 13.5px var(--sans);margin:0}
details.res table{margin-top:4px}
.medrow{border-bottom:1px solid var(--line);padding:6px 0;display:flex;flex-direction:column;gap:2px;align-items:flex-start}
.side-ref{border-top:1px solid var(--line);margin-top:10px;padding-top:8px;display:flex;flex-direction:column;gap:6px}
.cx-bar{position:sticky;bottom:0;z-index:4;background:var(--panel);border:1px solid var(--line);border-radius:8px 8px 0 0;padding:9px 12px;margin-top:12px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;box-shadow:0 -2px 6px rgba(20,38,43,.06)}
.cx-bar #autosave{margin-right:auto}
.cx-pop{width:min(980px,96vw);height:min(90vh,1100px);padding:0;border:1px solid var(--line);border-radius:10px;box-shadow:0 12px 40px rgba(0,0,0,.25);overflow:hidden}
.cx-pop[open]{display:flex;flex-direction:column}
.cx-pop::backdrop{background:rgba(20,38,43,.45)}
.cx-pop-bar{display:flex;gap:8px;align-items:center;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
.cx-pop-bar b{margin-right:auto;font-size:15px}
.cx-pop iframe{flex:1;width:100%;border:0;background:var(--bg)}
.cx-pop-img{flex:1;overflow:auto;background:#2a3436;display:flex;align-items:center;justify-content:center;padding:10px}
.cx-pop-img img{max-width:100%;max-height:100%;object-fit:contain;background:#fff}
body.embed main{padding:12px;max-width:none}
@media (max-width:1100px){
  .cx-body{grid-template-columns:minmax(0,1fr)}
  .cx-side{display:none;position:fixed;top:0;right:0;bottom:0;width:min(380px,92vw);max-height:none;z-index:20;border-radius:0;box-shadow:-6px 0 24px rgba(0,0,0,.18)}
  .cx.side-on .cx-side{display:block}
  .cx.side-off .cx-side{display:none}
}
@media (max-width:760px){
  .cx-head{position:static}
  .cs-b{padding-left:14px}
  .grid2{grid-template-columns:minmax(0,1fr)}
  .cx-bar{gap:6px;padding:6px 8px}
  .cx-bar #autosave{flex-basis:100%;font-size:11.5px}
  .cx-bar button{flex:1 1 0;min-width:0;font-size:12.5px;padding:7px 6px;line-height:1.2;white-space:normal}
}
@media print{.cs:not([open])>.cs-b{display:block}.cx-side,.cx-bar,.cx-tools{display:none}.cx-head{position:static}}

/* Vital sign trends */
.trends{display:flex;flex-wrap:wrap;gap:10px 18px;margin:8px 0}
.trend{display:flex;flex-direction:column;gap:2px}
.trend svg{background:var(--bg);border:1px solid var(--line);border-radius:4px;max-width:100%}

/* results side by side (pop-up from the consultation page) */
table.cmp td.num,table.cmp th.num{text-align:right;white-space:nowrap}
table.cmp td.flag{color:var(--bad);font-weight:600}
.pv{display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center;padding:7px 0;border-top:1px solid var(--line)}
.pv:first-child{border-top:0}
.pv .when{font:13px var(--mono);white-space:nowrap}
.pv .what{flex:1;min-width:180px}
.pv .ico{display:inline-flex;align-items:center;gap:4px;font-size:12.5px;text-decoration:none;border:1px solid var(--line);border-radius:5px;padding:3px 8px;color:var(--accent);background:var(--panel)}
.pv .ico:hover{background:var(--accent-soft)}
.pv .ico svg{flex:none}
/* order windows over the consultation page (Management plan, stage 2) */
dialog.cx-modal{width:min(1040px,96vw);max-height:92vh;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--panel);color:var(--ink);box-shadow:0 12px 40px rgba(20,38,43,.25)}
dialog.cx-modal[open]{display:flex;flex-direction:column}
dialog.cx-modal.cx-modal-sm{width:min(680px,96vw)}
dialog.cx-modal::backdrop{background:rgba(20,38,43,.45)}
.cxm-head{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--panel)}
.cxm-head h2{margin:0;font-size:18px;display:flex;align-items:center;gap:8px}
.cxm-head h2 .acticon{color:var(--accent)}
.cxm-who{font-size:13.5px;color:var(--muted)}
.cxm-x{margin-left:auto}
.cxm-body{padding:14px 16px;overflow:auto;flex:1 1 auto}
.cxm-body>.actpanel{border:0;padding:0;background:none}
.cxm-foot{display:flex;align-items:center;justify-content:flex-end;gap:10px;padding:10px 16px;border-top:1px solid var(--line);background:var(--bg)}
.cxm-tabs{display:flex;border-bottom:1px solid var(--line);margin:-4px 0 12px}
.cxm-tabs button{all:unset;cursor:pointer;padding:9px 14px;font:600 14px var(--sans);color:var(--muted);border-bottom:3px solid transparent}
.cxm-tabs button[aria-selected="true"]{color:var(--ink);border-bottom-color:var(--accent)}
.cxm-tabs button:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media (max-width:700px){dialog.cx-modal,dialog.cx-modal.cx-modal-sm{width:100vw;max-width:100vw;height:100vh;max-height:100vh;border-radius:0;margin:0}}

/* toolbar viewers and the guidelines panel (stage 3) */
.tbsep{width:1px;align-self:stretch;background:var(--line);margin:0 2px}
.cx-tools .n{display:inline-block;min-width:18px;padding:0 5px;border-radius:9px;background:var(--accent-soft);color:var(--ink);font-size:11.5px;font-weight:700;text-align:center}
.cx-tools .n.bad{background:var(--bad);color:#fff}
.cx-side{position:sticky}
.side-grip{position:absolute;left:0;top:0;bottom:0;width:10px;cursor:col-resize;z-index:2}
.side-grip:hover{background:linear-gradient(90deg,transparent 4px,var(--accent) 4px,var(--accent) 6px,transparent 6px)}
.side-h{display:flex;align-items:center;justify-content:space-between;position:sticky;top:0;background:var(--panel);padding:10px 0 8px;border-bottom:1px solid var(--line);margin-bottom:8px;z-index:1}
.side-h .side-x{all:unset;cursor:pointer;font-size:18px;padding:0 6px}
.viewer h3.vh{margin:14px 0 6px;font-size:15px;border-bottom:1px solid var(--line);padding-bottom:4px}
.viewer h3.vh:first-child{margin-top:0}
.pvcard{border:1px solid var(--line);border-radius:8px;padding:10px 12px;margin-bottom:10px}
.pvcard p{margin:6px 0 0}
@media (max-width:1100px){.side-grip{display:none}}
/* the window containers take no place in the page layout (the windows open over the page) */
.cx-modals,.cx-viewers{display:contents}

/* vital signs form: warnings under the field, calculated BMI set apart */
.vmsg{display:block;min-height:0;margin-top:2px}
.vmsg:empty{display:none}
.warnink{color:#8a5a00}
.bmi-out{display:flex;flex-direction:column;gap:2px;justify-content:center;border:1px dashed var(--line);border-radius:6px;padding:6px 10px;background:var(--bg)}
.bmi-out b{font-size:16px}
.bmi-out.has b{color:var(--ink)}
label.unusual{border-left:3px solid #e6b422;padding-left:8px}
.vfl{font-weight:800;margin-right:1px}

/* vital signs trends */
table.vtr td.vwarn{background:#fff6dd;color:#7a5600;font-weight:600}
table.vtr td.vbad{background:#fbe9e7;color:#8e1f13;font-weight:700}
.trchart{border:1px solid var(--line);border-radius:8px;padding:6px;background:var(--panel)}
.trchart circle:focus{outline:2px solid var(--accent)}

/* in-place feedback beside the action */
.msg.toast{margin:6px 0;padding:6px 10px;font-size:14px;border-radius:6px}
.msg.toast.fade{opacity:0;transition:opacity .6s}
.cx-bar .msg.toast{position:absolute;bottom:100%;right:12px;margin-bottom:6px;box-shadow:0 2px 8px rgba(0,0,0,.12)}

/* Results viewer (owner's specification, 10 Oct 2026): counters, filters, date groups, compact cards */
.rb-counters{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:4px}
.rb-ct{display:flex;flex-direction:column;align-items:flex-start;gap:0;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--ink);text-align:left;min-height:0;font-weight:400}
.rb-ct b{font-size:22px;line-height:1.1;font-family:var(--cond)}
.rb-ct span{font-size:13px;color:var(--muted)}
.rb-ct[aria-pressed="true"]{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);background:var(--accent-soft)}
.rb-ct.ct-payment b{color:var(--bad)}
.rb-def{margin:2px 0 8px}
.rb-filters{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;padding:6px 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.rb-filters input[type=search]{flex:1 1 160px;margin:0;min-width:120px}
.rb-filters label{margin:0;display:flex;flex-direction:row;align-items:center;gap:4px;font-size:13px}
.rb-filters input[type=date],.rb-filters select{margin:0;width:auto}
.rb-seg{display:inline-flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.rb-seg button{border:0;border-radius:0;background:var(--panel);color:var(--ink);padding:5px 10px;font-size:14px;font-weight:400;min-height:0}
.rb-seg button+button{border-left:1px solid var(--line)}
.rb-seg button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink)}
[data-rb-cmp][aria-disabled="true"]{opacity:.5;cursor:not-allowed}
.rb-day{margin:10px 0 4px;font-size:14px;color:var(--muted);text-transform:none;border-bottom:1px solid var(--line);padding-bottom:2px}
.rcard{border:1px solid var(--line);border-left:4px solid var(--line);border-radius:6px;padding:6px 10px;margin:4px 0;background:var(--panel)}
.rcard.k-released{border-left-color:var(--ok)}.rcard.k-payment{border-left-color:var(--bad)}.rcard.k-lab,.rcard.k-imaging{border-left-color:#e6b422}
.rcard.crit{border-left-color:var(--bad);background:var(--bad-soft)}
.rc-h{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px}
.rc-tog{flex:1 1 260px;display:flex;justify-content:flex-start;align-items:baseline;flex-wrap:wrap;gap:4px 6px;background:none;border:0;color:var(--ink);padding:2px 0;text-align:left;font-weight:400;min-height:0}
.rc-tog::before{content:"\25B8";color:var(--muted);font-size:12px}
.rc-tog[aria-expanded="true"]::before{content:"\25BE"}
.rc-time{color:var(--muted);font-size:13px;min-width:3em}
.rc-sel{margin:0;display:flex;flex-direction:row;align-items:center;gap:4px;color:var(--ink);font-size:13px}
.rc-sel input{width:auto;margin:0}
.rc-sum{margin:2px 0 0 1.4em;color:var(--ink)}
.rc-crit{margin:4px 0 0 1.4em;color:var(--bad);display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rc-crit form.inl{display:inline;margin:0}
.rc-note{margin:2px 0 0 1.4em;color:var(--warn)}
.rc-b{margin:6px 0 2px 1.4em}
.rc-b tr.crit td{background:var(--bad-soft)}
@media (max-width:760px){.rb-counters{grid-template-columns:repeat(2,minmax(0,1fr))}.rc-sum,.rc-crit,.rc-note,.rc-b{margin-left:0}}
.rb-dates{display:inline-flex;gap:6px;align-items:center}
.atl{list-style:none;margin:4px 0;padding:0 0 0 12px;border-left:2px solid var(--line)}
.atl li{position:relative;padding:3px 0 3px 8px;font-size:14px}
.atl li::before{content:"";position:absolute;left:-18px;top:10px;width:8px;height:8px;border-radius:50%;background:var(--line)}
.atl li.atl-released::before{background:var(--ok)}.atl li.atl-signed::before,.atl li.atl-closed::before{background:var(--accent)}
.atl time{color:var(--muted);font-size:13px;margin-right:4px}
.pv-cur{border-left-color:var(--accent)}
/* Prescription window */
.rx-who{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;padding:6px 0 8px;border-bottom:1px solid var(--line);margin-bottom:6px}
.rx-draft td{vertical-align:top}.rx-draft tr.rx-sig td{border-top:0;padding-top:0;font-size:12.5px}
.rx-acts{white-space:nowrap}.rx-acts form.inl{display:inline}
.rxform{border-top:1px solid var(--line);margin-top:10px;padding-top:4px}
.rx-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:0 10px}
.rx-pair{display:flex;gap:4px}.rx-pair input{flex:1 1 60%}.rx-pair select{flex:1 1 40%}
.rx-err{color:var(--bad);font-size:12.5px}
.rx-err:empty{display:none}
.rx-notes .msg{margin:4px 0}
.rx-calc{margin:2px 0 8px;color:var(--ink);background:var(--accent-soft);border-radius:4px;padding:0 8px}
.rx-calc:empty{display:none}.rx-calc:not(:empty){padding:6px 8px}
[data-rx-search]{margin-bottom:4px}
fieldset.chips{border:1px solid var(--line);border-radius:6px;padding:4px 10px 6px;margin:0 0 10px;display:flex;flex-wrap:wrap;gap:2px 14px}
fieldset.chips legend{padding:0 4px}
fieldset.chips label.chk{margin:2px 0}
.proc-note{background:var(--bg);border-radius:4px;padding:6px 8px;margin:4px 0}
details.inl-d{display:inline-block}details.inl-d[open]{display:block;width:100%}
.obs-sum dl.kv{margin:4px 0}
.sa-results{border:1px solid var(--line);border-radius:6px;margin:-6px 0 10px;max-height:260px;overflow-y:auto;background:var(--panel)}
.sa-hit{display:block;width:100%;text-align:left;background:none;border:0;border-bottom:1px solid var(--line);color:var(--ink);padding:7px 10px;font-weight:400;border-radius:0;min-height:0}
.sa-hit:hover,.sa-hit:focus{background:var(--accent-soft)}.sa-hit:disabled{color:var(--muted)}
.sa-item{border:1px solid var(--line);border-radius:6px;padding:6px 10px;margin:4px 0}
.sa-item .warnbox{margin:4px 0}
.sa-total{background:var(--bg);margin:8px 0}
.spec-card.spec-urgent{border-left:4px solid #e6b422}.spec-card.spec-emergency{border-left:4px solid var(--bad);background:var(--bad-soft)}
.spec-reply{background:var(--ok-soft);border-radius:4px;padding:6px 8px;margin:4px 0}
.cxm-foot:not(:has(> :not([hidden]))){display:none}
/* Patient record (longitudinal) */
.rec-head{position:sticky;top:0;z-index:5;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:8px 12px;margin-bottom:10px;display:flex;flex-wrap:wrap;align-items:center;gap:4px 8px}
.rec-head .sep{color:var(--line)}.rec-acts{margin-left:auto}
.rec-alerts .msg{margin:4px 0}
.rec-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:0 12px}
.rec-wide{grid-column:1/-1}
.rec-item{padding:4px 0;border-bottom:1px solid var(--line)}
.vit-tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:6px}
.vit-tile{border:1px solid var(--line);border-radius:6px;padding:6px 8px;display:flex;flex-direction:column}
.vit-tile span{font-size:12px;color:var(--muted)}.vit-tile b{font-size:20px;font-family:var(--cond)}.vit-tile small{color:var(--muted)}
.vit-tile em{font-style:normal;font-size:12px;font-weight:600}
.vit-tile.warn{border-color:#e6b422;background:var(--warn-soft)}.vit-tile.bad{border-color:var(--bad);background:var(--bad-soft)}
.vit-tile.chk-entry{outline:2px dashed var(--bad);outline-offset:-2px}.vit-tile.chk-entry em{color:var(--bad)}
.vsec details.sub{margin:4px 0}
td.warn{background:var(--warn-soft)}td.bad{background:var(--bad-soft)}
/* the end of the consultation (owner, 11 Oct 2026): always visible, says what is left, then invites completion */
.complete-box{border-width:2px;border-color:var(--warn)}
.complete-box.ready{border-color:var(--accent);background:var(--ok-bg, #e7f3ee)}
.complete-btn{font-size:1.05rem;padding:10px 22px;max-width:100%;white-space:normal}
.complete-btn[disabled]{opacity:.45;cursor:not-allowed}
.vh-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* owner, 12 Oct 2026: the completion checklist opens from the bottom bar */
.bar-pop{position:relative;display:inline-block}.bar-pop>summary{list-style:none;cursor:pointer}.bar-pop>summary::-webkit-details-marker{display:none}
.bar-pop-list{position:absolute;right:0;bottom:calc(100% + 6px);width:min(420px,90vw);background:var(--panel);border:1px solid var(--line);border-radius:8px;box-shadow:0 6px 24px rgba(0,0,0,.18);padding:10px 12px;z-index:20;text-align:left}
.bar-pop-list ol{margin:6px 0 0 18px;padding:0}.bar-pop-list li{margin:4px 0}

/* the laboratory list: a confirmation for a row that moved to another list (owner, 12 Oct 2026) */
/* the page keeps the worked-on row in place itself; the browser's own adjustment would move it a second time */
[data-worklist]{overflow-anchor:none}
.toast.wl-pin{position:absolute;z-index:6;max-width:360px;margin:0;box-shadow:0 4px 16px rgba(0,0,0,.2)}
.toast.wl-float{position:fixed;left:50%;bottom:16px;transform:translateX(-50%);z-index:60;max-width:90vw;box-shadow:0 4px 16px rgba(0,0,0,.2)}
/* laboratory worklist status buttons (owner, 12 Oct 2026) */
[data-chips] button[aria-pressed="true"]{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
[data-chips] [data-n]{opacity:.8;font-variant-numeric:tabular-nums}
/* a table whose columns must not change width when a row is updated in place (owner, 12 Oct 2026) */
table.fixed-cols{table-layout:fixed;width:100%}
table.fixed-cols .pill{white-space:normal}
/* 10M reports: the title shows on paper only (the page heading is hidden when printing) */
.printonly{display:none}
@media print{.printonly{display:block;font-size:1.2em;margin-bottom:4px}}

/* Sign-in: one RESA HMIS page for both entities (owner, 16 Oct 2026) */
.signin{max-width:440px;margin:40px auto;background:var(--panel);border:1px solid var(--line);border-radius:14px;padding:28px 24px;display:grid;gap:14px}
.signin-brand{text-align:center;display:grid;gap:2px}
.signin-brand b{font:600 30px var(--cond);letter-spacing:.06em;color:var(--accent)}
.signin-brand span{font-size:13px;color:var(--muted)}
.signin .lbl{font:600 12px var(--sans);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:-6px}
.entities{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.entity{display:grid;gap:2px;padding:12px;border:1px solid var(--line);border-radius:10px;color:var(--ink);text-decoration:none;font-size:15px}
.entity small{color:var(--muted);font-size:12px}
.entity.on{border:2px solid var(--accent);background:var(--accent-soft);padding:11px}
.entity:hover{border-color:var(--accent)}
.signin form{display:grid;gap:4px}
.signin-go{width:100%;margin-top:10px;padding:12px;font-weight:600}
.signin-foot{text-align:center;margin:0}
@media (max-width:380px){.entities{grid-template-columns:1fr}}

/* Emergency Coordination Centre (owner, 16 Oct 2026): queue left, fleet right, compact for time-critical work */
.ems-board{display:grid;grid-template-columns:minmax(0,3fr) minmax(0,2fr);gap:0 16px}
@media (max-width:900px){.ems-board{grid-template-columns:minmax(0,1fr)}}
.ems-q{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line);color:var(--ink);text-decoration:none}
.ems-q:hover{background:var(--bg)}
.ems-unit{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid var(--line)}
.ems-intake{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:0 12px}
.ems-intake .wide{grid-column:1/-1}
.ems-check td{vertical-align:middle}
.ems-crew{max-width:820px}
.crew-steps{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:10px}
.crew-btn{font-size:17px;padding:14px 18px;min-width:44%}
.net-state.bad{color:var(--bad);font-weight:600}
.ems-map{height:380px;border:1px solid var(--line);border-radius:6px;background:var(--bg)}
.ems-map.small{height:240px}
