/* RapidLoop Diagnostics — AU THEME (DIAG_REGION=au only; linked after app.css by
   resources/views/themes/au/head.blade.php). An Australian private pathology /
   imaging provider's staff system: clinical, calm, data-dense but uncluttered.
   Light theme only. One accent (clinical teal); status colours carry meaning only.
   Every colour below the token block is a var() — no raw hex past this point.
   The "Crafted by RapidLoop AI" chip (.rl-credit) carries its own inline styling
   and is deliberately never targeted here. */

:root{
  /* ---- Colour primitives ---- */
  --au-canvas:#F5F7FA;          /* page */
  --au-surface:#FFFFFF;         /* cards, sidebar, topbar */
  --au-surface-2:#F9FAFC;       /* table header, inset panels */
  --au-surface-3:#EEF1F5;       /* neutral chip, pressed secondary */
  --au-row-hover:#F2F6F9;
  --au-ink:#0B1F33;             /* primary text (16.7:1 on white) */
  --au-ink-2:#3D4F63;           /* secondary text (8.4:1) */
  --au-ink-3:#5B6B7D;           /* muted, 14px+ / labels (5.5:1) */
  --au-ink-4:#7C8B9A;           /* disabled only (non-text decoration) */
  --au-line:rgba(11,31,51,.12);
  --au-line-strong:rgba(11,31,51,.22);
  --au-line-soft:rgba(11,31,51,.07);
  --au-line-control:#7C8B9A;    /* input / select / textarea borders (3.5:1 on white, WCAG 1.4.11) */
  --au-accent:#0E7C86;          /* clinical teal: actions, active nav, links, focus (4.95:1) */
  --au-accent-hover:#0B6670;
  --au-accent-active:#09545C;
  --au-accent-strong:#0B6670;   /* teal text on a teal tint (5.9:1) */
  --au-accent-tint:#E7F3F4;
  --au-accent-tint-2:#CFE6E8;
  --au-on-accent:#FFFFFF;
  --au-success:#1E7F4F;  --au-success-ink:#176640;  --au-success-tint:#EAF5EE;
  --au-warning:#A15C07;  --au-warning-ink:#8A4E06;  --au-warning-tint:#FDF3E6;
  --au-critical:#B42318; --au-critical-ink:#B42318; --au-critical-tint:#FDECEA;
  --au-info:#1D5FA8;     --au-info-ink:#1D5FA8;     --au-info-tint:#EAF1FB;
  --au-band-1:#0B1F33;          /* navy → teal header band */
  --au-band-2:#0D3D52;
  --au-band-3:#0E5F6A;
  --au-on-band:#FFFFFF;
  --au-on-band-2:#D7E3EE;
  --au-on-band-fill:rgba(255,255,255,.12);  /* translucent white on the band: tile fill, */
  --au-on-band-ring:rgba(255,255,255,.22);  /* tile ring, */
  --au-on-band-line:rgba(255,255,255,.4);   /* outlined button border, */
  --au-on-band-hover:rgba(255,255,255,.1);  /* outlined button hover */
  --au-toast:#0B1F33;

  /* ---- Type (IBM Plex; scale 1.2 from a 14px base) ---- */
  --au-font:'IBM Plex Sans',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  --au-mono:'IBM Plex Mono',ui-monospace,'SF Mono',Menlo,Consolas,monospace;
  --au-fs-1:12px; --au-fs-2:14px; --au-fs-3:17px; --au-fs-4:20px; --au-fs-5:24px; --au-fs-6:29px;
  --au-lh:1.5; --au-lh-tight:1.25;

  /* ---- Radius (controls / cards / sheets) ---- */
  --au-r-1:4px; --au-r-2:8px; --au-r-3:12px;

  /* ---- Spacing (4px base) ---- */
  --au-s-1:4px; --au-s-2:8px; --au-s-3:12px; --au-s-4:16px; --au-s-5:20px; --au-s-6:24px; --au-s-8:32px; --au-s-10:40px; --au-s-12:48px;

  /* ---- Depth: subtle layered shadows on light surfaces (the one strategy) ---- */
  --au-shadow-1:0 1px 2px rgba(11,31,51,.05),0 1px 3px rgba(11,31,51,.04);
  --au-shadow-2:0 1px 2px rgba(11,31,51,.06),0 4px 12px rgba(11,31,51,.06);
  --au-shadow-3:0 2px 6px rgba(11,31,51,.08),0 16px 40px rgba(11,31,51,.14);

  /* ---- Controls ---- */
  --au-control-h:44px; --au-control-h-sm:36px; --au-target:44px;
  --au-focus:0 0 0 2px var(--au-surface),0 0 0 4px var(--au-accent);
  --au-ease:cubic-bezier(.2,.7,.3,1); --au-dur:160ms;
  --au-sidebar-w:248px; --au-topbar-h:56px;

  /* ---- Base app.css variables, re-pointed at the AU tokens ---- */
  --ink:var(--au-ink); --muted:var(--au-ink-3); --faint:var(--au-ink-4);
  --line:var(--au-line); --line-strong:var(--au-line-strong);
  --bg:var(--au-canvas); --card:var(--au-surface); --hover:var(--au-row-hover);
  --brand:var(--au-accent); --brand-d:var(--au-accent-hover); --brand-bg:var(--au-accent-tint);
  --navy:var(--au-band-1); --navy-2:var(--au-band-2);
  --ok:var(--au-success); --ok-bg:var(--au-success-tint);
  --warn:var(--au-warning); --warn-bg:var(--au-warning-tint);
  --err:var(--au-critical); --err-bg:var(--au-critical-tint);
  --crit:var(--au-critical); --crit-bg:var(--au-critical-tint);
  --radius:var(--au-r-2);
  --sans:var(--au-font); --mono:var(--au-mono);
}

/* ================= Base ================= */
html{-webkit-text-size-adjust:100%;color-scheme:light}
body{font-family:var(--au-font);font-size:var(--au-fs-2);line-height:var(--au-lh);color:var(--au-ink);background:var(--au-canvas);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.005em;line-height:var(--au-lh-tight);color:var(--au-ink)}
h2{font-size:var(--au-fs-4)}
a:not(.rl-credit){color:var(--au-accent);text-decoration-thickness:1px;text-underline-offset:3px}
a:not(.rl-credit):hover{color:var(--au-accent-hover)}
:focus-visible{outline:2px solid var(--au-accent);outline-offset:2px;border-radius:var(--au-r-1)}
.muted{color:var(--au-ink-3)}
.mono,code,kbd{font-family:var(--au-mono);font-size:.93em;letter-spacing:0}
table,.num,.right{font-variant-numeric:tabular-nums}
::selection{background:var(--au-accent-tint-2)}

/* ================= App shell ================= */
.app{grid-template-columns:var(--au-sidebar-w) minmax(0,1fr)}
.side{background:var(--au-surface);color:var(--au-ink-2);border-right:1px solid var(--au-line)}
.side-brand{padding:var(--au-s-4);border-bottom:1px solid var(--au-line);gap:var(--au-s-3);min-height:72px}
.side-brand::before{content:"";flex:none;width:36px;height:36px;border-radius:var(--au-r-2);
  background:var(--au-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 8h8M15.5 8v13.5a2.5 2.5 0 0 0 5 0V8'/%3E%3Cpath d='M15.5 16h5'/%3E%3Cpath d='M9 27h18'/%3E%3C/svg%3E") center/36px 36px no-repeat}
.side-brand .ct{color:var(--au-ink);font-size:var(--au-fs-2);font-weight:600;line-height:1.3}
.side-brand .ct small{color:var(--au-ink-3);font-size:var(--au-fs-1);font-weight:500;margin-top:2px;letter-spacing:.01em}
.side nav{padding:var(--au-s-2) var(--au-s-2) var(--au-s-4)}
.side nav a{min-height:var(--au-target);padding:0 var(--au-s-3);margin:1px 0;border-radius:var(--au-r-1);color:var(--au-ink-2);font-size:var(--au-fs-2);font-weight:500;
  text-decoration:none;transition:background-color var(--au-dur) var(--au-ease),color var(--au-dur) var(--au-ease)}
.side nav a:hover{background:var(--au-canvas);color:var(--au-ink)}
.side nav a:active{background:var(--au-surface-3)}
.side nav a.active{background:var(--au-accent-tint);color:var(--au-accent-strong);font-weight:600;box-shadow:inset 3px 0 0 var(--au-accent)}
.side nav a:focus-visible{outline-offset:-2px}
.side nav .grp{padding:var(--au-s-4) var(--au-s-3) var(--au-s-1);font-size:var(--au-fs-1);font-weight:600;letter-spacing:.06em;color:var(--au-ink-3)}
.side-foot{padding:var(--au-s-4);border-top:1px solid var(--au-line)}

.topbar{min-height:var(--au-topbar-h);padding:0 var(--au-s-6);border-bottom:1px solid var(--au-line);background:var(--au-surface);gap:var(--au-s-4)}
.topbar > strong{font-size:var(--au-fs-3);font-weight:600;letter-spacing:-.005em}
.topbar .who{font-size:var(--au-fs-2);color:var(--au-ink-2);gap:var(--au-s-3)}
.topbar .who .role{background:var(--au-surface-3);color:var(--au-ink-2);border-radius:var(--au-r-1);padding:2px var(--au-s-2);font-size:var(--au-fs-1);font-weight:600;letter-spacing:.01em}
.content{padding:var(--au-s-6);max-width:1240px}

.banner-draft{background:var(--au-warning-tint);color:var(--au-warning-ink);border:0;border-bottom:1px solid var(--au-line);
  font-size:var(--au-fs-1);font-weight:500;padding:var(--au-s-2) var(--au-s-6);text-align:left;display:flex;align-items:center;gap:var(--au-s-2)}
.banner-draft[role=note]::before{content:"";flex:none;width:16px;height:16px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15 14H1z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.8' r='.95'/%3E%3C/svg%3E") center/16px no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.5 15 14H1z' fill='none' stroke='black' stroke-width='1.6' stroke-linejoin='round'/%3E%3Cpath d='M8 6v3.6' stroke='black' stroke-width='1.6' stroke-linecap='round'/%3E%3Ccircle cx='8' cy='11.8' r='.95'/%3E%3C/svg%3E") center/16px no-repeat}

/* ================= Page header ================= */
.page-h{margin-bottom:var(--au-s-5);gap:var(--au-s-3);flex-wrap:wrap;align-items:center}
.page-h h1{font-size:var(--au-fs-5);font-weight:600;letter-spacing:-.01em}
.page-h .sub{color:var(--au-ink-3);font-size:var(--au-fs-2)}

/* ================= Cards ================= */
.card{background:var(--au-surface);border:1px solid var(--au-line);border-radius:var(--au-r-2);box-shadow:var(--au-shadow-1)}
.card .card-h{padding:var(--au-s-3) var(--au-s-4);border-bottom:1px solid var(--au-line);min-height:52px;gap:var(--au-s-3)}
.card .card-h h3{font-size:var(--au-fs-2);font-weight:600;letter-spacing:.005em}
.card .card-b{padding:var(--au-s-4)}
a.card{transition:box-shadow var(--au-dur) var(--au-ease),transform var(--au-dur) var(--au-ease)}
a.card:hover{box-shadow:var(--au-shadow-2);transform:translateY(-1px)}
a.card:active{transform:none;box-shadow:var(--au-shadow-1)}

/* ================= Buttons ================= */
.btn{min-height:var(--au-control-h);padding:0 var(--au-s-4);border-radius:var(--au-r-1);border:1px solid var(--au-line-strong);background:var(--au-surface);
  color:var(--au-ink);font-family:var(--au-font);font-size:var(--au-fs-2);font-weight:600;line-height:1.2;gap:var(--au-s-2);justify-content:center;
  box-shadow:0 1px 0 var(--au-line-soft);transition:background-color var(--au-dur) var(--au-ease),border-color var(--au-dur) var(--au-ease),color var(--au-dur) var(--au-ease)}
.btn:hover{background:var(--au-canvas);border-color:var(--au-ink-4)}
.btn:active{background:var(--au-surface-3)}
.btn:focus-visible{outline:none;box-shadow:var(--au-focus)}
.btn-primary,.btn.btn-primary{background:var(--au-accent);border-color:var(--au-accent);color:var(--au-on-accent)}
.btn-primary:hover,.btn.btn-primary:hover{background:var(--au-accent-hover);border-color:var(--au-accent-hover);color:var(--au-on-accent)}
.btn-primary:active,.btn.btn-primary:active{background:var(--au-accent-active);border-color:var(--au-accent-active)}
a.btn:not(.rl-credit){text-decoration:none;color:var(--au-ink)}
a.btn.btn-primary{color:var(--au-on-accent)}
a.btn:hover{color:var(--au-ink)} a.btn.btn-primary:hover{color:var(--au-on-accent)}
.btn-sm{min-height:var(--au-control-h-sm);padding:0 var(--au-s-3);font-size:var(--au-fs-2);position:relative}
.btn-sm::after{content:"";position:absolute;inset:-4px 0}   /* 44px hit area on a 36px button */
.btn[disabled],.btn.is-disabled,.btn[disabled]:hover{opacity:1;background:var(--au-surface-3);border-color:var(--au-line);color:var(--au-ink-4);box-shadow:none;cursor:not-allowed}
summary.btn{list-style:none} summary.btn::-webkit-details-marker{display:none}

/* ================= Forms ================= */
label.f{margin-bottom:var(--au-s-4)}
label.f > span{font-size:var(--au-fs-1);font-weight:600;color:var(--au-ink-2);margin-bottom:6px;letter-spacing:.01em}
input[type=text],input[type=email],input[type=password],input[type=number],input[type=tel],input[type=date],input[type=search],select,textarea{
  min-height:var(--au-control-h);padding:0 var(--au-s-3);border:1px solid var(--au-line-control);border-radius:var(--au-r-1);background:var(--au-surface);
  color:var(--au-ink);font-family:var(--au-font);font-size:var(--au-fs-2);transition:border-color var(--au-dur) var(--au-ease),box-shadow var(--au-dur) var(--au-ease)}
textarea{padding:var(--au-s-2) var(--au-s-3);line-height:var(--au-lh)}
input[type=number],input[type=date]{font-variant-numeric:tabular-nums}
input::placeholder,textarea::placeholder{color:var(--au-ink-3);opacity:1}
input:hover,select:hover,textarea:hover{border-color:var(--au-ink-3)}
input:focus,select:focus,textarea:focus{border-color:var(--au-accent);box-shadow:0 0 0 1px var(--au-accent);outline:none}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none} /* the 2px ring is border + 1px shadow above */
input:disabled,select:disabled,textarea:disabled{background:var(--au-surface-3);color:var(--au-ink-3);cursor:not-allowed}
input[type=checkbox],input[type=radio]{accent-color:var(--au-accent);width:18px!important;height:18px;margin:0;flex:none}
label.row:has(> input[type=checkbox]){min-height:var(--au-target);cursor:pointer}

/* ================= Tables ================= */
.tbl-wrap{border:1px solid var(--au-line);border-radius:var(--au-r-2);background:var(--au-surface);box-shadow:var(--au-shadow-1)}
.card .tbl-wrap{box-shadow:none;border-radius:0 0 var(--au-r-2) var(--au-r-2)}
table.tbl{font-size:var(--au-fs-2);font-variant-numeric:tabular-nums}
table.tbl th{background:var(--au-surface-2);color:var(--au-ink-2);font-size:var(--au-fs-1);font-weight:600;letter-spacing:.02em;
  padding:var(--au-s-2) var(--au-s-3);height:40px;border-bottom:1px solid var(--au-line-strong);position:sticky;top:0;z-index:1}
table.tbl td{padding:10px var(--au-s-3);border-bottom:1px solid var(--au-line-soft);color:var(--au-ink)}
table.tbl td.muted{color:var(--au-ink-3)}
table.tbl tbody tr{transition:background-color var(--au-dur) var(--au-ease)}
table.tbl tbody tr:hover{background:var(--au-row-hover)}
table.tbl tfoot td{border-bottom:0;border-top:1px solid var(--au-line);background:var(--au-surface-2)}
table.tbl .num,table.tbl th.num{text-align:right}
table.tbl td.mono{white-space:nowrap} table.tbl td.mono a{font-family:var(--au-mono)}
@media (min-width:821px){
  /* Sticky table headers: let the page (not the wrapper) scroll, and pin under the topbar. */
  .content > .tbl-wrap{overflow:visible}
  .content > .tbl-wrap table.tbl th{top:var(--au-topbar-h)}
  .content > .tbl-wrap table.tbl thead tr:first-child th:first-child{border-top-left-radius:var(--au-r-2)}
  .content > .tbl-wrap table.tbl thead tr:first-child th:last-child{border-top-right-radius:var(--au-r-2)}
}

/* ================= Status chips (text + shape, never colour alone) ================= */
.pill{gap:6px;height:24px;padding:0 var(--au-s-2);border-radius:var(--au-r-1);font-size:var(--au-fs-1);font-weight:600;letter-spacing:.01em;
  white-space:nowrap;line-height:1;border:1px solid transparent;font-variant-numeric:tabular-nums}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}
.pill.ok{background:var(--au-success-tint);color:var(--au-success-ink)}
.pill.warn{background:var(--au-warning-tint);color:var(--au-warning-ink)}
.pill.err{background:var(--au-critical-tint);color:var(--au-critical-ink)}
.pill.crit{background:var(--au-critical);color:var(--au-on-accent)}
.pill.crit::before{content:"!";width:auto;height:auto;background:none;font-weight:700}
.pill.mut{background:var(--au-surface-3);color:var(--au-ink-2)}
.pill.mut::before{background:transparent;box-shadow:inset 0 0 0 1.5px currentColor}

/* Specimen lifecycle chips (AU dashboard + any themed view) */
.au-stage{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 var(--au-s-2);border-radius:var(--au-r-1);
  font-size:var(--au-fs-1);font-weight:600;white-space:nowrap;line-height:1;border:1px solid transparent}
.au-stage::before{content:"";width:7px;height:7px;border-radius:50%;flex:none}
.au-stage--registered{background:var(--au-surface-3);color:var(--au-ink-2)}
.au-stage--registered::before{box-shadow:inset 0 0 0 1.5px currentColor}
.au-stage--collected{background:var(--au-info-tint);color:var(--au-info-ink)}
.au-stage--collected::before{box-shadow:inset 0 0 0 1.5px currentColor}
.au-stage--in_lab{background:var(--au-info-tint);color:var(--au-info-ink)}
.au-stage--in_lab::before{background:currentColor}
.au-stage--awaiting{background:var(--au-warning-tint);color:var(--au-warning-ink)}
.au-stage--awaiting::before{background:currentColor;border-radius:1px;transform:rotate(45deg);width:6px;height:6px}
.au-stage--reported{background:var(--au-success-tint);color:var(--au-success-ink)}
.au-stage--reported::before{content:"✓";width:auto;height:auto;font-size:11px;line-height:1}
.au-stage--critical{background:var(--au-critical);color:var(--au-on-accent)}
.au-stage--critical::before{content:"!";width:auto;height:auto;font-weight:700}
.au-stage--void{background:var(--au-surface-3);color:var(--au-ink-3);text-decoration:line-through}

/* ================= Flash / notices ================= */
.flash{border:1px solid var(--au-line);border-left:3px solid currentColor;border-radius:var(--au-r-2);padding:var(--au-s-3) var(--au-s-4);
  font-size:var(--au-fs-2);font-weight:500;background:var(--au-surface)}
.flash.ok{background:var(--au-success-tint);color:var(--au-success-ink);border-color:var(--au-success-tint);border-left-color:var(--au-success)}
.flash.warn{background:var(--au-warning-tint);color:var(--au-warning-ink);border-color:var(--au-warning-tint);border-left-color:var(--au-warning)}
.flash.err{background:var(--au-critical-tint);color:var(--au-critical-ink);border-color:var(--au-critical-tint);border-left-color:var(--au-critical)}
#rlwhy{background:var(--au-toast);color:var(--au-on-band);border:0;border-radius:var(--au-r-2);box-shadow:var(--au-shadow-3);font-size:var(--au-fs-2)}
#rlwhy .x{color:var(--au-on-band-2);width:var(--au-target);height:var(--au-target);top:2px;right:2px}

/* Pagination (Laravel's default markup, unstyled without Tailwind) */
nav[role=navigation] svg{width:18px;height:18px}
nav[role=navigation] > div:first-child{display:none}
nav[role=navigation] p{color:var(--au-ink-3);font-size:var(--au-fs-1);margin:var(--au-s-2) 0}
nav[role=navigation] a,nav[role=navigation] span[aria-current] span,nav[role=navigation] span[aria-disabled] span{
  display:inline-flex;align-items:center;justify-content:center;min-width:var(--au-target);min-height:var(--au-target);padding:0 var(--au-s-2);
  border:1px solid var(--au-line);background:var(--au-surface);color:var(--au-ink-2);text-decoration:none;font-variant-numeric:tabular-nums;margin-right:-1px}
nav[role=navigation] span[aria-current] span{background:var(--au-accent);border-color:var(--au-accent);color:var(--au-on-accent);font-weight:600}
nav[role=navigation] span[aria-disabled] span{color:var(--au-ink-4)}
nav[role=navigation] a:hover{background:var(--au-canvas)}

/* Charts drawn with the base blue get the accent */
svg polyline[stroke]{stroke:var(--au-accent)}

/* ================= Auth (login, 2FA, errors, verify) ================= */
.auth{background:linear-gradient(160deg,var(--au-band-1) 0%,var(--au-band-2) 55%,var(--au-band-3) 100%) top/100% 260px no-repeat,var(--au-canvas);
  place-items:start center;padding:var(--au-s-12) var(--au-s-4)}
.auth-card{max-width:420px;border:1px solid var(--au-line);border-radius:var(--au-r-3);box-shadow:var(--au-shadow-3);background:var(--au-surface)}
.auth-head{padding:var(--au-s-8) var(--au-s-8) var(--au-s-2);text-align:left}
.auth-head h1{font-size:var(--au-fs-4);font-weight:600;margin-bottom:var(--au-s-1)}
.auth-head p{color:var(--au-ink-3);font-size:var(--au-fs-2)}
.auth-body{padding:var(--au-s-4) var(--au-s-8) var(--au-s-6)}
.auth-foot{padding:var(--au-s-4) var(--au-s-8) var(--au-s-5);border-top:1px solid var(--au-line);background:var(--au-surface);border-radius:0 0 var(--au-r-3) var(--au-r-3)}

/* AU login: header band carrying the centre name; the card overlaps its lower edge */
.au-band{background:linear-gradient(160deg,var(--au-band-1) 0%,var(--au-band-2) 55%,var(--au-band-3) 100%);color:var(--au-on-band);
  padding:var(--au-s-12) var(--au-s-4) 136px;text-align:center}
.au-band__mark{display:inline-block;width:48px;height:48px;border-radius:var(--au-r-3);margin-bottom:var(--au-s-3);
  background:var(--au-on-band-fill) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' fill='none' stroke='white' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 8h8M15.5 8v13.5a2.5 2.5 0 0 0 5 0V8'/%3E%3Cpath d='M15.5 16h5'/%3E%3Cpath d='M9 27h18'/%3E%3C/svg%3E") center/40px no-repeat;
  box-shadow:inset 0 0 0 1px var(--au-on-band-ring)}
.au-band__name{font-size:var(--au-fs-5);font-weight:600;letter-spacing:-.01em;margin:0;color:var(--au-on-band)}
.au-band__sub{margin:var(--au-s-1) 0 0;color:var(--au-on-band-2);font-size:var(--au-fs-2)}
.au-band + .auth{background:none;min-height:0;margin-top:-104px;padding-top:0}
.au-login-meta{margin:var(--au-s-3) 0 0;color:var(--au-ink-3);font-size:var(--au-fs-1);text-align:center}
.au-team{background:var(--au-surface-2);border-top:1px solid var(--au-line);padding:var(--au-s-5) var(--au-s-8) var(--au-s-6)}
.au-team h2{font-size:var(--au-fs-2);font-weight:600;margin:0}
.au-team p{margin:2px 0 var(--au-s-3);color:var(--au-ink-3);font-size:var(--au-fs-1)}
.au-team .btn{width:100%}

/* ================= Patient & doctor portals ================= */
.ptop{background:linear-gradient(160deg,var(--au-band-1) 0%,var(--au-band-2) 60%,var(--au-band-3) 100%);color:var(--au-on-band);padding:var(--au-s-4) 0;margin-bottom:var(--au-s-6)}
.ptop .ct{font-size:var(--au-fs-3);font-weight:600}
.ptop .ct small{color:var(--au-on-band-2);font-size:var(--au-fs-1);font-weight:500;letter-spacing:.02em}
.ptop .btn{color:var(--au-on-band)!important;border-color:var(--au-on-band-line)!important;background:transparent!important}
.ptop .btn:hover{background:var(--au-on-band-hover)!important}
.ptop a:not(.rl-credit){color:var(--au-on-band-2)!important}
.pwrap{max-width:820px}

/* ================= New order: test picker ================= */
.card .pick{min-height:var(--au-target);padding:0 var(--au-s-2);border-radius:var(--au-r-1);font-size:var(--au-fs-2);gap:var(--au-s-3);
  transition:background-color var(--au-dur) var(--au-ease)}
.card .pick:hover{background:var(--au-row-hover)}
.card .pick:has(input:checked){background:var(--au-accent-tint)}
.card .pick:has(input:checked) span:first-of-type{color:var(--au-accent-strong);font-weight:500}
.card .pick .num{color:var(--au-ink-2);font-variant-numeric:tabular-nums;font-weight:500}
.card .grp-label{font-size:var(--au-fs-1)!important;letter-spacing:.06em;color:var(--au-ink-3);padding:0 var(--au-s-2)}
#total{font-size:var(--au-fs-5);font-variant-numeric:tabular-nums;letter-spacing:-.01em}
#selected .row{font-size:var(--au-fs-2)} #selected .num{font-variant-numeric:tabular-nums}

/* ================= Phones & tablets ================= */
@media (max-width:820px){
  .app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto 1fr} /* header keeps its height on a short page */
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;border-right:0;border-bottom:1px solid var(--au-line);box-shadow:var(--au-shadow-1)}
  .side-brand{flex:1 1 auto;min-width:0;border-bottom:0;padding:var(--au-s-3) var(--au-s-4);min-height:0}
  .side-brand::before{width:32px;height:32px;background-size:32px 32px}
  .side-foot{border-top:0;padding:var(--au-s-2) var(--au-s-4)}
  .side nav{order:3;flex:1 0 100%;display:flex;flex-wrap:nowrap;overflow-x:auto;gap:var(--au-s-1);padding:0 var(--au-s-3) var(--au-s-2);
    scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .side nav::-webkit-scrollbar{display:none}
  .side nav .grp{display:none}
  .side nav a{flex:none;white-space:nowrap;margin:0;padding:0 var(--au-s-3)}
  .side nav a.active{box-shadow:inset 0 -2px 0 var(--au-accent)}
  .topbar{position:static;padding:var(--au-s-2) var(--au-s-4);flex-wrap:wrap;gap:var(--au-s-2)}
  .topbar .who > span:first-child{display:none}
  .banner-draft{padding:var(--au-s-2) var(--au-s-4)}
  .content{padding:var(--au-s-4)}
  .page-h h1{font-size:var(--au-fs-4)}
  /* Fixed-width side columns (bill summary, payment panel) go full width on phones */
  .content .row > [style*="width:3"]{width:100%!important;position:static!important}
  .auth-head,.auth-body,.au-team{padding-left:var(--au-s-5);padding-right:var(--au-s-5)}
  .auth-foot{padding-left:var(--au-s-5);padding-right:var(--au-s-5)}

  /* Lists under 820px: the key columns and the row action stay on screen; low-priority
     columns step aside (widths measured on the seeded AU data, 8px cell padding)
     instead of the action scrolling off the right edge. */
  table.tbl th,table.tbl td{padding-left:var(--au-s-2);padding-right:var(--au-s-2)}
  /* Dashboard recent orders (Time · Order · Patient · Tests · Status · Amount): Tests first. */
  table.au-recent :is(th,td):nth-child(4){display:none}
}
/* Patients (MRN · Name · Age/Sex · Phone · Registered · action): all six need ~676px. */
@media (max-width:680px){
  table.tbl:has(.cphone,a[href*="/orders/new?patient="]) :is(th,td):nth-child(4){display:none}  /* Phone (masked anyway) */
}
@media (max-width:600px){
  table.au-recent :is(th,td):nth-child(1){display:none}  /* Time: the order number still links to it */
  table.au-recent .au-stage{white-space:normal;height:auto;min-height:24px;padding-top:2px;padding-bottom:2px;line-height:1.2}
}
@media (max-width:560px){
  /* Registered, then the MRN (it still shows on the patient's orders and reports): Name · Age/Sex · New Order stay. */
  table.tbl:has(.cphone,a[href*="/orders/new?patient="]) :is(th,td):is(:nth-child(1),:nth-child(5)){display:none}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{transition-duration:0s!important;animation-duration:0s!important}
  a.card:hover{transform:none}
}

@media print{
  body{background:var(--au-surface)}
  .card,.tbl-wrap,.side{box-shadow:none}
}

/* ================= AU dashboard ================= */
.au-small{font-size:var(--au-fs-1)}
.au-eyebrow{margin:0 0 var(--au-s-1);font-size:var(--au-fs-1);font-weight:600;letter-spacing:.04em;color:var(--au-ink-3);font-variant-numeric:tabular-nums}
.au-dash{display:grid;gap:var(--au-s-5)}
.au-dash__head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--au-s-4);flex-wrap:wrap}
.au-dash__head h1{font-size:var(--au-fs-6);font-weight:600;letter-spacing:-.015em}
.au-dash__sub{margin:var(--au-s-1) 0 0;color:var(--au-ink-2)}
.au-dash__actions{display:flex;gap:var(--au-s-2);flex-wrap:wrap}
.au-link{margin-left:auto;font-size:var(--au-fs-2);font-weight:500;min-height:var(--au-target);display:inline-flex;align-items:center}

.au-pipeline .card-h{justify-content:space-between}
.au-pipeline__steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.au-step{position:relative;border-right:1px solid var(--au-line-soft)}
.au-step:last-child{border-right:0}
.au-step:not(:last-child):not(.au-step--reported)::after{content:"";position:absolute;right:-6px;top:28px;width:10px;height:10px;z-index:1;
  border-top:1px solid var(--au-line-strong);border-right:1px solid var(--au-line-strong);background:var(--au-surface);transform:rotate(45deg)}
.au-step__in{display:flex;flex-direction:column;align-items:flex-start;gap:var(--au-s-2);padding:var(--au-s-4);height:100%;color:inherit;text-decoration:none;
  transition:background-color var(--au-dur) var(--au-ease)}
a.au-step__in:not(.rl-credit){color:inherit;text-decoration:none}
a.au-step__in:hover{background:var(--au-row-hover)}
a.au-step__in:focus-visible{outline-offset:-2px}
.au-step__n{font-size:var(--au-fs-6);font-weight:600;line-height:1;letter-spacing:-.02em;color:var(--au-ink);font-variant-numeric:tabular-nums}
.au-step__hint{font-size:var(--au-fs-1);color:var(--au-ink-3);line-height:1.35}
.au-step--critical{background:var(--au-surface-2)}
.au-step--critical.is-alert{background:var(--au-critical-tint)}
.au-step--critical.is-alert .au-step__n{color:var(--au-critical)}
.au-pipeline{overflow:hidden}

.au-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:var(--au-s-3)}
.au-kpi{background:var(--au-surface);border:1px solid var(--au-line);border-radius:var(--au-r-2);box-shadow:var(--au-shadow-1);
  padding:var(--au-s-3) var(--au-s-4);display:grid;gap:2px;align-content:start;position:relative}
.au-kpi__label{font-size:var(--au-fs-1);font-weight:600;color:var(--au-ink-3);letter-spacing:.01em}
.au-kpi__value{font-size:var(--au-fs-5);font-weight:600;letter-spacing:-.01em;font-variant-numeric:tabular-nums;color:var(--au-ink);white-space:nowrap}

.au-dash__grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--au-s-5);align-items:start}
.au-dash__grid--even{grid-template-columns:repeat(2,minmax(0,1fr))}
.au-dash__side{display:grid;gap:var(--au-s-5)}
.au-card-figure{margin-left:auto;font-size:var(--au-fs-3);font-weight:600;font-variant-numeric:tabular-nums}
.au-when strong{display:block;font-weight:600;font-variant-numeric:tabular-nums;white-space:nowrap}
.au-when span,.au-cell-sub{display:block;font-size:var(--au-fs-1);color:var(--au-ink-3);font-variant-numeric:tabular-nums}
.au-cell-main{display:block;font-weight:500}
.au-tests{max-width:220px}

/* 7-day bars: one series, single hue; today in the accent, earlier days in its tint */
.au-bars{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:var(--au-s-2);height:150px;align-items:end;
  border-bottom:1px solid var(--au-line-strong);padding-top:var(--au-s-5)}
.au-bar{position:relative;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center}
.au-bar__fill{width:100%;max-width:28px;border-radius:var(--au-r-1) var(--au-r-1) 0 0;background:var(--au-accent-tint-2);transition:background-color var(--au-dur) var(--au-ease)}
.au-bar.is-today .au-bar__fill{background:var(--au-accent)}
.au-bar__day{position:absolute;bottom:-22px;font-size:var(--au-fs-1);color:var(--au-ink-3)}
.au-bar.is-today .au-bar__day{color:var(--au-ink);font-weight:600}
.au-bar:hover .au-bar__fill{background:var(--au-accent-hover)}
.au-bar:hover::after{content:attr(data-value);position:absolute;bottom:calc(100% + 2px);left:50%;transform:translateX(-50%);white-space:nowrap;
  background:var(--au-toast);color:var(--au-on-band);font-size:var(--au-fs-1);font-weight:500;padding:2px var(--au-s-2);border-radius:var(--au-r-1);
  font-variant-numeric:tabular-nums;pointer-events:none;z-index:2}
.au-bars + *{margin-top:var(--au-s-6)}
.au-bars{margin-bottom:22px}

.au-dl{margin:0;padding:var(--au-s-1) var(--au-s-4) var(--au-s-2)}
.au-dl > div{display:flex;justify-content:space-between;align-items:center;gap:var(--au-s-3);min-height:40px;border-bottom:1px solid var(--au-line-soft)}
.au-dl > div:last-child{border-bottom:0}
.au-dl dt{color:var(--au-ink-2)}
.au-dl dd{margin:0;font-weight:600;font-variant-numeric:tabular-nums}

@media (max-width:1100px){
  .au-dash__grid{grid-template-columns:minmax(0,1fr)}
  .au-dash__side{grid-template-columns:repeat(2,minmax(0,1fr))}
  .au-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .au-pipeline__steps{grid-template-columns:repeat(3,minmax(0,1fr))}
  .au-step{border-bottom:1px solid var(--au-line-soft)}
  .au-step:nth-child(3n){border-right:0}
  .au-step::after{display:none}
}
@media (max-width:820px){
  .au-dash__head h1{font-size:var(--au-fs-5)}
  .au-dash__actions{width:100%}
  .au-dash__actions .btn{flex:1}
  .au-dash__side,.au-dash__grid--even{grid-template-columns:minmax(0,1fr)}
  .au-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
  .au-kpi:last-child:nth-child(odd){grid-column:1/-1}
  .au-pipeline__steps{grid-template-columns:repeat(2,minmax(0,1fr))}
  .au-step:nth-child(3n){border-right:1px solid var(--au-line-soft)}
  .au-step:nth-child(2n){border-right:0}
  .au-step__n{font-size:var(--au-fs-5)}
}

/* ================= Row actions & small controls ================= */
/* A column of solid accent buttons would swamp a list: row actions are outlined. */
table.tbl .btn.btn-sm.btn-primary{background:var(--au-surface);color:var(--au-accent-strong);border-color:var(--au-line-strong)}
table.tbl .btn.btn-sm.btn-primary:hover{background:var(--au-accent-tint);border-color:var(--au-accent);color:var(--au-accent-strong)}
table.tbl .btn.btn-sm.btn-primary:active{background:var(--au-accent-tint-2)}
/* Phone reveal: an icon button with a 44px target instead of the emoji glyph */
.cphone{display:inline-flex;align-items:center;gap:2px;font-variant-numeric:tabular-nums}
.cphone .cphone-reveal{font-size:0!important;width:32px;height:32px;padding:0!important;position:relative;border-radius:var(--au-r-1)!important;
  display:inline-grid;place-items:center;color:var(--au-ink-3)!important}
.cphone .cphone-reveal::before{content:"";width:18px;height:18px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/18px no-repeat;
          mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") center/18px no-repeat}
.cphone .cphone-reveal::after{content:"";position:absolute;inset:-6px}
.cphone .cphone-reveal:hover{background:var(--au-canvas)!important;color:var(--au-accent)!important}
.cphone .cphone-reveal:focus-visible{outline:2px solid var(--au-accent);outline-offset:0}
#itemCount::before,.btn .pill::before{display:none}
