@import "https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,500&family=Inter:wght@400;500;600;700&family=Space+Mono:wght@500;700&display=swap";:root{--paper:#f6f1e6;--paper-2:#ece3d0;--ink:#10201d;--ink-2:#17322c;--teal:#1f5c52;--signal:#ff5a1f;--mist:#b9c4be;--canvas:var(--paper);--surface:#fff;--surface-2:#f3eee3;--line:#d8d2c4;--muted:#5a6b64;--brand:var(--teal);--brand-mid:#2a7368;--brand-soft:#e3eeeb;--accent:var(--teal);--accent-soft:#e3eeeb;--warn:var(--signal);--warn-soft:#ffe8df;--warn-line:#ffb899;--danger:#a12626;--danger-soft:#fdecec;--radius:14px;--radius-sm:10px;--nav-h:64px}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body,#root{height:100%}body{background:linear-gradient(180deg, var(--paper) 0%, var(--canvas) 50%, var(--paper-2) 100%);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:Inter,sans-serif}::selection{background:var(--signal);color:var(--ink)}.app{max-width:430px;min-height:100dvh;padding:16px 16px calc(24px + env(safe-area-inset-bottom));margin:0 auto;animation:.22s rise;position:relative}.app.is-loading{pointer-events:none;opacity:.55}@keyframes rise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.clinic-banner{background:var(--brand);color:#fff;border-radius:var(--radius);margin-bottom:14px;padding:14px 15px}.clinic-banner .name{letter-spacing:-.02em;font-size:15px;font-weight:700}.clinic-banner .meta{opacity:.72;margin-top:3px;font-family:Space Mono,monospace;font-size:11px}.topbar{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:18px;display:flex}.topbar h1{letter-spacing:-.03em;margin:0;font-size:24px;font-weight:700;line-height:1.15}.topbar p{color:var(--muted);margin:4px 0 0;font-size:13px;font-weight:500}.live-chip{color:var(--accent);background:var(--accent-soft);border-radius:8px;align-items:center;gap:6px;margin-top:2px;padding:6px 10px;font-size:11px;font-weight:700;display:inline-flex}.live-chip i{background:var(--accent);border-radius:50%;width:6px;height:6px;animation:2s infinite pulse}@keyframes pulse{0%{box-shadow:0 0 #0f8a7a73}70%{box-shadow:0 0 0 6px #0f8a7a00}to{box-shadow:0 0 #0f8a7a00}}.flash-live{color:var(--accent);background:var(--accent-soft);opacity:0;border-radius:10px;align-items:center;gap:7px;margin:0 0 12px;padding:9px 12px;font-size:12px;font-weight:650;transition:all .2s;display:flex;transform:translateY(-4px)}.flash-live.show{opacity:1;transform:translateY(0)}.flash-live .sdot{background:var(--accent);border-radius:50%;width:6px;height:6px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);margin-bottom:12px;overflow:hidden}.panel-body{padding:14px}.btn{border-radius:var(--radius-sm);cursor:pointer;border:none;min-height:46px;padding:13px 14px;font-family:inherit;font-size:14px;font-weight:650;transition:transform 80ms,background .15s}.btn:active{transform:scale(.98)}.btn-ghost{background:var(--surface-2);color:var(--ink);border:1px solid var(--line)}button:focus-visible,input:focus-visible{outline-offset:2px;outline:2px solid #1f5c5266}.btn-main{cursor:pointer;background:var(--brand);color:#fff;touch-action:manipulation;border:none;border-radius:14px;justify-content:space-between;align-items:center;gap:12px;width:100%;min-height:64px;padding:14px 16px;transition:transform .1s,opacity .15s;display:flex}.btn-main .label{letter-spacing:-.02em;font-size:17px;font-weight:700;display:block}.btn-main .sub{opacity:.72;text-transform:uppercase;letter-spacing:.06em;margin-top:3px;font-size:11px;font-weight:600;display:block}.btn-main .arrow{background:#ffffff24;border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;display:flex}.btn-main .arrow svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.btn-main:active{transform:scale(.98)}.btn-main:disabled{opacity:.45;cursor:not-allowed;pointer-events:none}.welcome-hero{text-align:center;padding:22px 16px 8px}.welcome-hero .qricon{background:var(--brand-soft);border:1px solid var(--line);width:72px;height:72px;color:var(--brand);border-radius:18px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.welcome-hero .qricon svg{stroke:currentColor;fill:none;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:34px;height:34px}.welcome-hero h2{letter-spacing:-.02em;margin:0 0 6px;font-size:18px}.welcome-hero p{color:var(--muted);margin:0;font-size:13.5px;line-height:1.45}.field{text-align:left;margin-bottom:12px}.field label{color:var(--muted);margin-bottom:6px;font-size:12px;font-weight:650;display:block}.field input{border:1px solid var(--line);border-radius:var(--radius-sm);width:100%;color:var(--ink);background:var(--surface-2);padding:13px 14px;font-family:inherit;font-size:15px}.field input:focus{border-color:var(--brand-mid);background:var(--surface);outline:none}.doc-pick{flex-direction:column;gap:8px;display:flex}.doc-pick .opt{border:1px solid var(--line);border-radius:var(--radius-sm);cursor:pointer;background:var(--surface-2);text-align:left;padding:12px 13px}.doc-pick .opt.sel{border-color:var(--brand-mid);background:var(--brand-soft)}.doc-pick .opt .n{font-size:14px;font-weight:700}.doc-pick .opt .w{color:var(--muted);margin-top:3px;font-family:Space Mono,monospace;font-size:11px}.ticket{text-align:center;padding:26px 16px 4px}.ticket .eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:11px;font-weight:650}.queue-status-row{grid-template-columns:1fr 1fr;gap:12px;margin:4px 0 14px;display:grid}.queue-status-cell{background:var(--surface-2);border:1px solid var(--line);border-radius:14px;padding:14px 10px 12px}.queue-status-cell.you{background:var(--brand-soft,#e3eeeb);border-color:#1f5c5247}.queue-status-cell .eyebrow{margin-bottom:4px}.ticket .status-num{color:var(--ink);font-family:Space Mono,monospace;font-size:42px;font-weight:600;line-height:1;transition:color .2s}.queue-status-cell.you .status-num{color:var(--brand)}.ticket .status-num.turn{color:var(--warn)}.ticket .bignum{color:var(--brand);margin:10px 0 6px;font-family:Space Mono,monospace;font-size:72px;font-weight:600;line-height:1;transition:color .2s}.ticket .bignum.turn{color:var(--warn)}.ticket .sub{color:var(--muted);margin-bottom:4px;font-size:13.5px}.ticket .doc{margin-top:10px;font-size:15px;font-weight:650}.wait-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);justify-content:space-between;align-items:center;margin:14px 14px 0;padding:13px 14px;display:flex}.wait-card .l{color:var(--muted);font-size:12px;font-weight:550}.wait-card .v{color:var(--brand);font-family:Space Mono,monospace;font-size:18px;font-weight:600}.dots{flex-wrap:wrap;justify-content:center;gap:6px;margin:16px 14px 4px;display:flex}.pdot{background:var(--line);border-radius:50%;width:8px;height:8px}.pdot.done{background:var(--accent)}.pdot.you{background:var(--warn);width:10px;height:10px;box-shadow:0 0 0 3px var(--warn-soft)}.turn-banner{background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:var(--radius-sm);text-align:center;color:var(--warn);margin:14px;padding:12px 14px;font-size:14px;font-weight:700}.done-card{text-align:center;padding:32px 18px}.done-card .check{background:var(--accent-soft);width:56px;height:56px;color:var(--accent);border-radius:14px;justify-content:center;align-items:center;margin:0 auto 14px;display:flex}.done-card .check svg{stroke:currentColor;fill:none;stroke-width:2.2px;stroke-linecap:round;stroke-linejoin:round;width:26px;height:26px}.done-card h2{letter-spacing:-.02em;margin:0 0 6px;font-size:18px}.done-card p{color:var(--muted);margin:0 0 18px;font-size:13.5px}.note{text-align:center;color:var(--muted);padding:12px 14px 0;font-size:12px;line-height:1.4}.error-box{background:var(--warn-soft);border:1px solid var(--warn-line);color:var(--warn);border-radius:var(--radius-sm);padding:14px;font-size:13.5px;line-height:1.4}.status-box{border-radius:var(--radius-sm);text-align:left;border:1px solid var(--line);background:var(--surface-2);margin-bottom:14px;padding:14px}.status-box.unavailable{background:var(--danger-soft);border-color:#b4323240}.status-box.outside_hours{background:var(--warn-soft);border-color:#c482144d}.status-title{margin-bottom:4px;font-size:14px;font-weight:700}.status-reason{color:var(--muted);font-size:13px;line-height:1.4}.doc-pick .opt.blocked{opacity:.7}.doc-pick .opt.blocked .w{color:var(--danger)}.loading-overlay{z-index:80;-webkit-backdrop-filter:blur(4px);background:#f6f1e6d1;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.loading-overlay.show{display:flex}.loading-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;flex-direction:column;align-items:center;gap:12px;padding:22px 28px;display:flex;box-shadow:0 18px 40px -24px #10201d59}.spinner{border:2.5px solid var(--brand-soft);border-top-color:var(--brand);border-radius:50%;width:28px;height:28px;animation:.7s linear infinite spin}.loading-card span{color:var(--muted);font-size:13px;font-weight:650}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=700px){body{background:radial-gradient(700px 340px at 70% -10%,#1f5c521f,#0000 55%),radial-gradient(520px 280px at 10% 0,#ff5a1f14,#0000 55%),#f6f1e6}.app{border:1px solid var(--line);background:linear-gradient(180deg, var(--paper) 0%, var(--canvas) 40%);border-radius:28px;min-height:calc(100dvh - 56px);margin:28px auto;overflow:hidden;box-shadow:0 24px 60px -28px #10201d59}}
