/* PREVIEW — "Interpreters today" stoplight list (Cabarrus + Pineville).
   The rail beside each name takes the status colour: green Available, red Busy, grey Check status / Not checked in.
   Gold rail stays everywhere else (View by person, tallies…). Classic = dark default; Maroon/Enterprise = light. */
.lais-st { margin-top: 18px; padding-top: 2px; }
.lais-st-head { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin: 16px 0 8px; }
.lais-st-head h3 { font-family: Outfit, sans-serif; font-size: 14px; font-weight: 600; margin: 0; color: var(--fg); }
.lais-st-note { font-size: 11px; color: var(--muted); text-align: right; }
.lais-st-list { list-style: none; margin: 0; padding: 4px; display: grid; gap: 0; max-height: 452px; overflow-y: auto;
  border: 1px solid var(--line); border-radius: 12px; }
.lais-st-row { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 3px 6px 3px 2px; font-size: 13px; }
.lais-st-row + .lais-st-row { border-top: 1px solid var(--line); }

/* status colour tokens (Classic / dark surface) */
.lais-st-row { --st-rail: #6b7280; --st-ink: #cbd5e1; --st-tint: rgba(148,163,184,.10);
  --st-pill-bg: rgba(148,163,184,.12); --st-pill-ink: #cbd5e1; --st-pill-line: rgba(203,213,225,.3); }
.lais-st-available { --st-rail: #22c55e; --st-ink: #86efac; --st-tint: rgba(34,197,94,.16);
  --st-pill-bg: rgba(34,197,94,.18); --st-pill-ink: #86efac; --st-pill-line: rgba(134,239,172,.5); }
.lais-st-busy { --st-rail: #ef4444; --st-ink: #fca5a5; --st-tint: rgba(239,68,68,.18);
  --st-pill-bg: rgba(239,68,68,.2); --st-pill-ink: #fecaca; --st-pill-line: rgba(252,165,165,.55); }

.lais-st-name { display: inline-flex; align-items: center; gap: 8px; min-height: 30px; min-width: 0; flex: 0 1 auto;
  padding: 3px 10px 3px 8px; border-radius: 10px; border-left: 3px solid var(--st-rail);
  background: linear-gradient(90deg, var(--st-tint), transparent 75%);
  color: var(--st-ink); font-weight: 600; text-decoration: none; }
a.lais-st-name:hover { text-decoration: underline; text-underline-offset: 3px; }
a.lais-st-name:focus-visible { outline: 2px solid #C9A45C; outline-offset: 2px; }
.lais-st-dot { width: 8px; height: 8px; border-radius: 50%; flex: 0 0 auto; background: var(--st-rail); }
.lais-st-available .lais-st-dot, .lais-st-busy .lais-st-dot { box-shadow: 0 0 0 3px var(--st-tint); }
.lais-st-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; min-width: 0; }
.lais-st-none .lais-st-text, .lais-st-stale .lais-st-text { font-weight: 500; }
.lais-st-right { display: inline-flex; align-items: center; gap: 8px; flex: 0 0 auto; }
.lais-st-pill { display: inline-block; padding: 3px 9px; border-radius: 999px; font-size: 11px; font-weight: 700; white-space: nowrap;
  background: var(--st-pill-bg); color: var(--st-pill-ink); border: 1px solid var(--st-pill-line); }
.lais-st-since { font-size: 11px; color: var(--muted); white-space: nowrap; }

/* Maroon + Enterprise (light surfaces): darker inks for contrast */
html[data-theme="maroon"] .lais-st-row, html[data-theme="enterprise"] .lais-st-row {
  --st-rail: #9CA3AF; --st-ink: #4B5563; --st-tint: rgba(156,163,175,.12);
  --st-pill-bg: #F3F4F6; --st-pill-ink: #4B5563; --st-pill-line: #D1D5DB; }
html[data-theme="maroon"] .lais-st-available, html[data-theme="enterprise"] .lais-st-available {
  --st-rail: #16A34A; --st-ink: #166534; --st-tint: rgba(22,163,74,.12);
  --st-pill-bg: #DCFCE7; --st-pill-ink: #14532D; --st-pill-line: #86EFAC; }
html[data-theme="maroon"] .lais-st-busy, html[data-theme="enterprise"] .lais-st-busy {
  --st-rail: #DC2626; --st-ink: #B91C1C; --st-tint: rgba(220,38,38,.10);
  --st-pill-bg: #FEE2E2; --st-pill-ink: #991B1B; --st-pill-line: #FCA5A5; }
html[data-theme="maroon"] .lais-st-since, html[data-theme="maroon"] .lais-st-note { color: #6B4A57; }
html[data-theme="enterprise"] .lais-st-since, html[data-theme="enterprise"] .lais-st-note { color: #4A5F75; }

@media (max-width: 520px) {
  .lais-st-right { flex-direction: column; align-items: flex-end; gap: 2px; }
}

/* Totals → By interpreter: status light beside the (gold-rail) name. Fixed size, no wrap → no layout shift. */
.lais-st-light { display: inline-block; flex: 0 0 auto; width: 9px; height: 9px; border-radius: 50%; margin-left: 2px;
  background: var(--st-rail); box-shadow: 0 0 0 2px var(--st-tint); vertical-align: middle; }
.lais-st-light.lais-st-none, .lais-st-light.lais-st-stale { --st-rail: #9CA3AF; --st-tint: rgba(156,163,175,.18); }

/* Dispatcher strip (Cabarrus main page) + header counts */
.lais-st-head { flex-wrap: wrap; }
.lais-st-counts { flex-basis: 100%; order: 3; font-size: 12px; font-weight: 600; color: var(--muted); }
html[data-theme="maroon"] .lais-st-counts { color: #6B4A57; }
html[data-theme="enterprise"] .lais-st-counts { color: #4A5F75; }
.lais-strip { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 14px; padding: 8px 12px;
  border-radius: 14px; border: 1px solid var(--line); background: var(--card); font-size: 13px; }
.lais-strip:empty, .lais-strip[hidden] { display: none; }
.lais-strip-label { font-family: Outfit, sans-serif; font-weight: 700; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; color: var(--fg); }
.lais-strip-chips { display: inline-flex; flex-wrap: wrap; gap: 6px; flex: 1 1 auto; min-width: 0; }
.lais-strip-empty { color: var(--muted); font-size: 12px; }
.lais-strip-chip, .lais-strip-busy, .lais-strip-stale { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
  font: 700 12px/1.3 Outfit, system-ui, sans-serif; white-space: nowrap;
  background: var(--st-pill-bg); color: var(--st-pill-ink); border: 1px solid var(--st-pill-line); }
.lais-strip-chip::before, .lais-strip-busy::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--st-rail); }
.lais-strip-busy { cursor: pointer; min-height: 28px; }
.lais-strip-busy:disabled { cursor: default; opacity: .7; }
.lais-strip-busy:focus-visible, .lais-strip-link:focus-visible { outline: 2px solid #C9A45C; outline-offset: 2px; }
.lais-strip-link { font-size: 12px; font-weight: 600; color: var(--fg); text-decoration: underline; text-underline-offset: 3px; white-space: nowrap; margin-left: auto; }
.lais-strip-busylist { flex-basis: 100%; display: flex; flex-wrap: wrap; gap: 6px; }
/* chips/buttons need status tokens even outside a list row */
.lais-strip-chip, .lais-strip-busy, .lais-strip-stale { --st-rail: #9CA3AF; --st-pill-bg: rgba(148,163,184,.12); --st-pill-ink: #cbd5e1; --st-pill-line: rgba(203,213,225,.3); }
.lais-strip-chip.lais-st-available { --st-rail: #22c55e; --st-pill-bg: rgba(34,197,94,.18); --st-pill-ink: #86efac; --st-pill-line: rgba(134,239,172,.5); }
.lais-strip-chip.lais-st-busy, .lais-strip-busy.lais-st-busy { --st-rail: #ef4444; --st-pill-bg: rgba(239,68,68,.2); --st-pill-ink: #fecaca; --st-pill-line: rgba(252,165,165,.55); }
html[data-theme="maroon"] .lais-strip-chip, html[data-theme="enterprise"] .lais-strip-chip,
html[data-theme="maroon"] .lais-strip-stale, html[data-theme="enterprise"] .lais-strip-stale { --st-pill-bg: #F3F4F6; --st-pill-ink: #4B5563; --st-pill-line: #D1D5DB; }
html[data-theme="maroon"] .lais-strip-chip.lais-st-available, html[data-theme="enterprise"] .lais-strip-chip.lais-st-available { --st-rail: #16A34A; --st-pill-bg: #DCFCE7; --st-pill-ink: #14532D; --st-pill-line: #86EFAC; }
html[data-theme="maroon"] .lais-strip-chip.lais-st-busy, html[data-theme="enterprise"] .lais-strip-chip.lais-st-busy,
html[data-theme="maroon"] .lais-strip-busy.lais-st-busy, html[data-theme="enterprise"] .lais-strip-busy.lais-st-busy { --st-rail: #DC2626; --st-pill-bg: #FEE2E2; --st-pill-ink: #991B1B; --st-pill-line: #FCA5A5; }
html[data-theme="maroon"] .lais-strip, html[data-theme="enterprise"] .lais-strip { background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.04), 0 6px 18px rgba(0,0,0,.06); }
@media (max-width: 768px) {
  .lais-strip { padding: 8px 10px; gap: 6px; margin-bottom: 10px; }
  .lais-strip-label { flex-basis: 100%; }
}
/* theme link colours (e.g. maroon `body a`) must not override the status ink */
.lais-st-row .lais-st-name .lais-st-text { color: var(--st-ink); }
/* Phones: badge the light on the rail corner instead of inline, so names keep their full width (zero layout shift). */
@media (max-width: 520px) {
  .tally-row a.person-rail:has(.lais-st-light) { position: relative; }
  .tally-row .lais-st-light { position: absolute; top: -4px; left: -5px; margin: 0; width: 10px; height: 10px;
    box-shadow: 0 0 0 2px var(--card, #fff); }
  html[data-theme="maroon"] .tally-row .lais-st-light, html[data-theme="enterprise"] .tally-row .lais-st-light { box-shadow: 0 0 0 2px #fff; }
  /* Plain names (no rail link, e.g. Pineville/Cabarrus/University): anchor the light inside its own row,
     never to the page — otherwise it floats to the top-left corner of the screen. */
  .tally-row .name:has(> .lais-st-light) { position: relative; padding-left: 16px; }
  .tally-row .name > .lais-st-light { top: 50%; left: 2px; transform: translateY(-50%); }
}

/* Off shift (Oct 27 2026): end of day saved. Neutral slate — cooler and more solid than the light grey of
   Check status / Not checked in, with a hollow ring dot so it reads as "done for the day", not "unknown". */
.lais-st-off { --st-rail: #94A3B8; --st-ink: #CBD5E1; --st-tint: rgba(100,116,139,.16);
  --st-pill-bg: rgba(71,85,105,.55); --st-pill-ink: #E2E8F0; --st-pill-line: rgba(148,163,184,.55); }
html[data-theme="maroon"] .lais-st-off, html[data-theme="enterprise"] .lais-st-off {
  --st-rail: #64748B; --st-ink: #475569; --st-tint: rgba(100,116,139,.10);
  --st-pill-bg: #E2E8F0; --st-pill-ink: #334155; --st-pill-line: #94A3B8; }
.lais-st-off .lais-st-text { font-weight: 500; }
.lais-st-off .lais-st-dot, .lais-st-light.lais-st-off, .lais-strip-off::before {
  background: transparent; box-shadow: inset 0 0 0 2px var(--st-rail); }
.lais-strip-off { display: inline-flex; align-items: center; gap: 6px; padding: 3px 10px; border-radius: 999px;
  font: 700 12px/1.3 Outfit, system-ui, sans-serif; white-space: nowrap;
  background: var(--st-pill-bg); color: var(--st-pill-ink); border: 1px solid var(--st-pill-line); }
.lais-strip-off::before { content: ''; width: 7px; height: 7px; border-radius: 50%; }
@media (max-width: 520px) {
  .tally-row .lais-st-light.lais-st-off { box-shadow: inset 0 0 0 2px var(--st-rail), 0 0 0 2px var(--card, #fff); background: var(--card, #fff); }
  html[data-theme="maroon"] .tally-row .lais-st-light.lais-st-off, html[data-theme="enterprise"] .tally-row .lais-st-light.lais-st-off { box-shadow: inset 0 0 0 2px var(--st-rail), 0 0 0 2px #fff; background: #fff; }
}
