:root{--ink:#0f2e33;--ink-2:#17404a;--sand:#f6f2ea;--sand-2:#ece5d8;--paper:#fffdf8;--line:#e2dacb;--teal:#1f6f6a;--ochre:#c8691c;--ochre-text:#a8540f;--muted:#5e6a6c;--red:#b3261e;--green:#2e7d32;color:#1a2b2e;background:var(--sand);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}*{box-sizing:border-box}body{background:var(--sand);margin:0}a{color:var(--teal)}h1{color:var(--ink);align-items:center;gap:10px;margin:0 0 6px;font-size:26px;display:flex}h2{color:var(--ink);margin:0 0 14px;font-size:20px}h3{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:22px 0 8px;font-size:15px}main{max-width:1100px;margin:0 auto;padding:20px 16px 60px}main.narrow{max-width:640px}.muted{color:var(--muted)}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.between{justify-content:space-between}.card{background:var(--paper);border:1px solid var(--line);border-radius:14px;margin-top:16px;padding:22px}.cols{grid-template-columns:1fr 1fr;gap:16px;display:grid}@media (max-width:820px){.cols{grid-template-columns:1fr}}.grid{gap:14px;display:grid}.grid.two{grid-template-columns:1fr 1fr}.grid .span{grid-column:1/-1}@media (max-width:520px){.grid.two{grid-template-columns:1fr}}label{color:var(--ink);gap:6px;font-size:14px;font-weight:600;display:grid}input,select,textarea{font:inherit;color:#1a2b2e;background:#fff;border:1px solid #cfc5b2;border-radius:10px;min-height:48px;padding:12px;font-size:16px;font-weight:400}input:focus,select:focus,textarea:focus{border-color:var(--teal);outline:3px solid #1f6f6a55}button,.button{font:inherit;border:1px solid var(--teal);min-height:48px;color:var(--teal);cursor:pointer;background:#fff;border-radius:10px;justify-content:center;align-items:center;padding:12px 18px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex}button.primary,.button.primary{background:var(--teal);color:#fff}button.small{min-height:38px;padding:6px 12px;font-size:14px}button.ghost{border-color:#0000}.bar{background:var(--ink);color:var(--sand);z-index:5;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:10px 16px;display:flex;position:sticky;top:0}.brand{color:var(--sand);align-items:center;gap:10px;text-decoration:none;display:flex}.brand small{color:#c9dad8;font-size:13px;display:block}.logo{color:var(--ink);background:#f0a050;border-radius:8px;padding:6px 8px;font-weight:800}.status{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.chip{background:var(--ink-2);color:#c9dad8;border-radius:999px;padding:5px 10px;font-size:13px}.chip.warn{color:var(--ink);background:#f0a050}.chip.ok{color:var(--green);background:#e3f1ea}.card .chip{background:var(--sand-2);color:var(--ink)}.net{border-radius:999px;padding:5px 10px;font-size:13px;font-weight:700}.net.on{color:#fff;background:#2e7d32}.net.off{color:var(--ink);background:#f0a050}.toggle{min-height:36px;color:var(--sand);background:0 0;border-color:#8fb0ad;padding:6px 12px;font-size:14px}.banner{padding:12px 16px;font-weight:600}.banner.ok{color:#1b5e20;background:#e3f1ea}.banner.error{color:var(--red);background:#fce8e6}.banner.warn{color:#7a3e00;background:#fff3e0;border-radius:10px}.search{width:100%;margin:14px 0}.list{gap:8px;display:grid}.item{background:var(--paper);border:1px solid var(--line);color:inherit;border-radius:12px;justify-content:space-between;align-items:center;padding:14px 16px;text-decoration:none;display:flex}.item small,.entry small{color:var(--muted);margin-top:3px;display:block}.empty{text-align:center;padding:30px}.dot{border-radius:50%;flex:none;width:12px;height:12px;display:inline-block}.dot.synced{background:var(--green)}.dot.pending{background:#f0a050;box-shadow:0 0 0 3px #f0a05044}.back{margin-bottom:4px;font-weight:600;text-decoration:none;display:inline-block}.patient{justify-content:space-between;gap:16px;display:flex}.upid{letter-spacing:.08em;color:var(--ochre-text);margin:2px 0 6px;font-family:ui-monospace,Menlo,monospace;font-size:20px;font-weight:700}.qr{background:var(--sand-2);color:var(--muted);border-radius:10px;align-self:start;padding:10px;font-family:ui-monospace,monospace;font-size:12px}.entry{border-top:1px solid var(--line);padding:12px 0}.entry p{margin:6px 0 0}.scan{border:2px dashed var(--teal);background:#eaf3f2;border-radius:12px;gap:10px;margin-top:12px;padding:14px;display:grid}.scan-id{min-height:56px;font-size:17px}.scan-result{border-radius:10px;padding:12px 14px;font-size:14px}.scan-result p{margin:4px 0 0}.scan-result.ok{color:#1b5e20;background:#e3f1ea}.scan-result.check{color:#7a3e00;background:#fff3e0}.scan-result .dup{color:#b3261e;font-weight:700}.idscan{z-index:50;background:#0f2e33d9;justify-content:center;align-items:center;padding:12px;display:flex;position:fixed;inset:0}.idscan-panel{background:var(--paper);border-radius:16px;gap:10px;width:min(720px,100%);max-height:100%;padding:14px;display:grid;overflow:auto}.idscan-head{justify-content:space-between;align-items:center;font-size:18px;display:flex}.idscan-view{aspect-ratio:4/3;background:#000;border-radius:12px;position:relative;overflow:hidden}.idscan-view video{object-fit:cover;width:100%;height:100%;display:block}.idscan-frame{aspect-ratio:85.6/54;border:3px solid #f0a050;border-radius:12px;position:absolute;top:50%;left:6%;right:6%;transform:translateY(-50%);box-shadow:0 0 0 999px #00000059}.idscan-mrz{border-top:2px dashed #f0a050cc;height:45%;position:absolute;bottom:0;left:0;right:0}.idscan-hint{color:#fff;text-align:center;background:#0000008c;margin:0;padding:8px 10px;font-size:13px;position:absolute;bottom:0;left:0;right:0}.idscan-status{min-height:22px;color:var(--ink);margin:0;font-weight:600}.idscan-alt{gap:10px;display:grid}.idscan-alt .button{cursor:pointer}
