:root {
  --ground:#F2F4F3; --paper:#FBFCFB; --ink:#141A19; --ink-mute:#5A6664; --ink-faint:#8A9391;
  --rule:#D3DAD8; --rule-firm:#B4BEBB; --held:#0E6E63; --held-bg:#DDECE9;
  --flag:#8A4B10; --flag-bg:#F6E9DC; --stop:#9B2226; --stop-bg:#F7E4E4;
  --body:"Public Sans",-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,"SF Mono",Menlo,Consolas,monospace;
}
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) {
  --ground:#0E1413; --paper:#161E1D; --ink:#E4EAE8; --ink-mute:#9AA6A3; --ink-faint:#6C7A77;
  --rule:#263230; --rule-firm:#384644; --held:#4FBFAE; --held-bg:#10312D;
  --flag:#D79A5C; --flag-bg:#2E2115; --stop:#E88; --stop-bg:#341A1B;
} }
:root[data-theme="dark"] {
  --ground:#0E1413; --paper:#161E1D; --ink:#E4EAE8; --ink-mute:#9AA6A3; --ink-faint:#6C7A77;
  --rule:#263230; --rule-firm:#384644; --held:#4FBFAE; --held-bg:#10312D;
  --flag:#D79A5C; --flag-bg:#2E2115; --stop:#E88; --stop-bg:#341A1B;
}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--ground);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.5;-webkit-tap-highlight-color:transparent}
:focus-visible{outline:2px solid var(--held);outline-offset:2px;border-radius:4px}
.wrap{max-width:44rem;margin:0 auto;padding:0 1rem calc(2.5rem + env(safe-area-inset-bottom))}
.label{font-family:var(--mono);font-size:.64rem;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-faint)}
h1{font-size:1.2rem;margin:0;letter-spacing:-.01em}
h2{font-size:1.35rem;margin:0;letter-spacing:-.01em;text-wrap:balance}
p{margin:0}
[hidden]{display:none!important}

header{padding:.9rem 0;display:flex;gap:.8rem;align-items:center;border-bottom:1px solid var(--rule)}
header .mode{font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;text-transform:uppercase;color:var(--flag);
  background:var(--flag-bg);border:1px solid var(--flag);border-radius:999px;padding:.28rem .7rem;white-space:nowrap}
header a.other{margin-left:auto;color:var(--ink-mute);font-size:.9rem;min-height:44px;display:inline-flex;align-items:center;text-underline-offset:3px}
header a.other:hover{color:var(--held)}

.emergency{margin-top:1rem;padding:.8rem .95rem;border-radius:10px;border:1.5px solid var(--stop);background:var(--stop-bg);color:var(--stop);font-weight:600;font-size:.95rem}
.note{margin-top:.7rem;font-size:.85rem;color:var(--ink-mute)}

form{margin-top:1.2rem}
.field{margin-top:1.1rem}
.field > label,.field > legend{display:block;font-weight:600;font-size:.95rem;margin-bottom:.35rem;padding:0}
.field .hint{font-size:.8rem;color:var(--ink-mute);margin-top:.25rem}
fieldset{border:0;margin:1.1rem 0 0;padding:0}
input[type=text],select,textarea{font:400 1rem var(--body);width:100%;padding:.75rem .8rem;border:1.5px solid var(--rule-firm);
  border-radius:10px;background:var(--paper);color:var(--ink);min-height:50px}
textarea{min-height:6.5rem;resize:vertical}
.choice{display:flex;align-items:flex-start;gap:.7rem;padding:.7rem .8rem;border:1.5px solid var(--rule-firm);border-radius:10px;
  background:var(--paper);margin-top:.45rem;cursor:pointer;min-height:50px}
.choice input{width:1.25rem;height:1.25rem;margin:.1rem 0 0;accent-color:var(--held);flex:none}
.choice:has(input:checked){border-color:var(--held);background:var(--held-bg)}
.signs .choice:has(input:checked){border-color:var(--stop);background:var(--stop-bg)}
.stays{font-family:var(--mono);font-size:.62rem;letter-spacing:.08em;text-transform:uppercase;color:var(--held);margin-left:.4rem;font-weight:500}

button{font:600 1.02rem var(--body);border-radius:10px;border:1.5px solid var(--rule-firm);background:var(--paper);color:var(--ink);
  cursor:pointer;min-height:52px;padding:.8rem 1.1rem;display:flex;align-items:center;justify-content:center;gap:.6rem;width:100%}
button:disabled{opacity:.45;cursor:not-allowed}
.primary{background:var(--held);border-color:var(--held);color:#fff}
.quiet{border-color:transparent;background:none;color:var(--ink-mute);font-weight:500;min-height:44px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.stack{display:flex;flex-direction:column;gap:.7rem;margin-top:1.3rem}
@media (hover:hover){button:hover:not(:disabled):not(.primary):not(.quiet){border-color:var(--held);color:var(--held)}.primary:hover:not(:disabled){filter:brightness(1.08)}}

pre{margin:.45rem 0 0;white-space:pre-wrap;word-break:break-word;font-family:var(--mono);font-size:.8rem;line-height:1.7;
  background:var(--paper);border:1px solid var(--rule);border-radius:10px;padding:.7rem .8rem}
.tok{color:var(--held);background:var(--held-bg);padding:.05em .3em;border-radius:3px}
.error{margin-top:1rem;padding:.75rem .9rem;border-radius:10px;border:1.5px solid var(--stop);background:var(--stop-bg);color:var(--stop);font-size:.92rem}

.ticket{margin-top:1.4rem;text-align:center;padding:1.6rem 1rem;border:1.5px solid var(--held);border-radius:14px;background:var(--paper)}
.ticket .num{font-size:4.2rem;font-weight:700;line-height:1;color:var(--held);font-variant-numeric:tabular-nums;margin:.4rem 0}

/* Nurse queue */
.explain{margin-top:1rem;font-size:.88rem;color:var(--ink-mute)}
.toolbar{display:flex;gap:.6rem;align-items:center;margin-top:1rem;font-size:.82rem;color:var(--ink-faint)}
.toolbar button{width:auto;min-height:40px;font-size:.85rem;padding:.4rem .8rem;margin-left:auto}
.empty{margin-top:1.4rem;padding:1.4rem;border:1.5px dashed var(--rule-firm);border-radius:12px;text-align:center;color:var(--ink-mute)}
.card{margin-top:.8rem;border:1.5px solid var(--rule-firm);border-radius:12px;background:var(--paper);padding:.9rem 1rem}
.card.first{border-color:var(--stop)}
.card.done{opacity:.7}
.card .top{display:flex;align-items:baseline;gap:.8rem;flex-wrap:wrap}
.card .n{font-size:1.7rem;font-weight:700;font-variant-numeric:tabular-nums}
.card .meta{font-size:.85rem;color:var(--ink-mute)}
.card .wait{margin-left:auto;font-family:var(--mono);font-size:.75rem;color:var(--ink-faint)}
.sugg{margin-top:.6rem;padding:.55rem .7rem;border-radius:8px;font-size:.88rem}
.sugg.first{background:var(--stop-bg);color:var(--stop)}
.sugg.none{background:var(--ground);color:var(--ink-mute)}
.sugg b{display:block}
.sugg ul{margin:.25rem 0 0;padding-left:1.1rem}
.sugg .src{font-size:.72rem;opacity:.85;margin-top:.25rem}
.decide{display:grid;grid-template-columns:repeat(3,1fr);gap:.45rem;margin-top:.7rem}
.decide button{min-height:44px;font-size:.88rem;padding:.4rem}
.decide button[aria-pressed="true"]{background:var(--held);border-color:var(--held);color:#fff}
.decided{margin-top:.6rem;font-size:.85rem;color:var(--held);font-weight:600}
footer{margin-top:2.2rem;padding-top:1rem;border-top:1px solid var(--rule);font-size:.78rem;color:var(--ink-faint)}
footer a{color:inherit}
