:root{--brand: #4f2d91;--brand-2: #7043c1;--brand-soft: #f1ebfb;--navy: #1f3a5f;--bg: #f6f4fb;--card: #ffffff;--ink: #1d1b26;--muted: #565365;--line: #e2ddef;--ok: #1f7a45;--ok-soft: #e3f4ea;--info: #22599f;--info-soft: #e7effb;--attention: #8a5300;--attention-soft: #fff1d1;--urgent: #a8321b;--urgent-soft: #fde6e0;--critical: #b42318;--sensitive: #4e2f86;--sensitive-soft: #ece4f8;--radius: 14px;--shadow: 0 1px 2px rgba(31, 58, 95, .08), 0 4px 14px rgba(31, 58, 95, .06);--focus: 0 0 0 3px #ffffff, 0 0 0 5px #7043c1;font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--ink);background:var(--bg);line-height:1.45;-webkit-text-size-adjust:100%}*{box-sizing:border-box}html{scroll-padding-top:96px}body{margin:0;background:var(--bg);min-height:100vh}h1,h2,h3,h4{line-height:1.2;margin:0 0 .5rem;color:var(--navy)}h1{font-size:1.6rem}h2{font-size:1.25rem}h3{font-size:1.05rem}p{margin:0 0 .75rem}a{color:var(--brand)}:focus-visible{outline:none;box-shadow:var(--focus);border-radius:6px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.demo-bar{background:var(--navy);color:#fff;font-size:.8rem;padding:6px 16px;text-align:center}.topbar{position:sticky;top:0;z-index:20;background:var(--brand);color:#fff;display:flex;align-items:center;gap:12px;padding:10px 16px;flex-wrap:wrap}.topbar a{color:#fff;text-decoration:none}.brand{display:flex;align-items:center;gap:8px;font-weight:700;font-size:1.05rem}.brand svg{width:28px;height:28px}.topbar .spacer{flex:1}.chip{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:3px 10px;font-size:.8rem;font-weight:600;background:#ffffff29;color:#fff;white-space:nowrap}.chip.light{background:var(--brand-soft);color:var(--brand)}.chip.ok{background:var(--ok-soft);color:var(--ok)}.chip.warn{background:var(--attention-soft);color:var(--attention)}.chip.bad{background:var(--urgent-soft);color:var(--urgent)}.chip.grey{background:#eceaf2;color:var(--muted)}.dot{width:8px;height:8px;border-radius:50%;background:currentColor;display:inline-block}main{max-width:1180px;margin:0 auto;padding:16px}main.narrow{max-width:560px}.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}.page-head .spacer{flex:1}.muted{color:var(--muted)}.small{font-size:.85rem}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stack>*+*{margin-top:12px}.grid{display:grid;gap:12px}.grid.two{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.grid.four{grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);padding:16px}.card.flat{box-shadow:none}.card h2,.card h3{margin-top:0}.demo-note{border:1px dashed #b9a7dc;background:#faf7ff;color:var(--sensitive);border-radius:10px;padding:10px 12px;font-size:.85rem}button,.btn{font:inherit;font-weight:600;border-radius:10px;border:1px solid transparent;min-height:44px;padding:8px 16px;cursor:pointer;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;gap:6px;text-decoration:none}button:hover,.btn:hover{background:var(--brand-2)}button:disabled{opacity:.5;cursor:not-allowed}button.secondary,.btn.secondary{background:#fff;color:var(--brand);border-color:#cbbfe6}button.secondary:hover,.btn.secondary:hover{background:var(--brand-soft)}button.danger{background:var(--critical)}button.danger:hover{background:#8f1c13}button.ok{background:var(--ok)}button.ghost{background:transparent;color:var(--brand);padding:6px 10px;min-height:36px}button.ghost:hover{background:var(--brand-soft)}button.small,.btn.small{min-height:36px;padding:4px 12px;font-size:.9rem}button.block,.btn.block{width:100%}label{font-weight:600;font-size:.9rem;display:block;margin-bottom:4px}input[type=text],input[type=tel],input[type=date],select,textarea{font:inherit;width:100%;padding:10px 12px;border:1px solid #c9c3da;border-radius:10px;background:#fff;min-height:44px}textarea{min-height:80px}.field{margin-bottom:12px}.hint{font-size:.8rem;color:var(--muted);font-weight:400;margin-top:2px}fieldset{border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin:0 0 12px}legend{font-weight:700;font-size:.9rem;padding:0 4px}.check{display:flex;align-items:center;gap:10px;font-weight:500;padding:8px 0;min-height:44px}.check input{width:22px;height:22px;accent-color:var(--brand)}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--line);margin-bottom:14px;overflow-x:auto}.tabs button{background:transparent;color:var(--muted);border-radius:10px 10px 0 0;border-bottom:3px solid transparent;margin-bottom:-2px;white-space:nowrap}.tabs button[aria-selected=true]{color:var(--brand);border-bottom-color:var(--brand);background:#fff}.tabs .count{background:var(--urgent);color:#fff;border-radius:999px;padding:0 7px;font-size:.75rem}.toast-region{position:fixed;left:50%;transform:translate(-50%);bottom:16px;z-index:60;width:min(560px,calc(100% - 32px))}.toast{background:var(--navy);color:#fff;border-radius:12px;padding:12px 16px;box-shadow:0 8px 24px #0003;margin-top:8px}.toast.error{background:var(--critical)}.person{display:flex;align-items:center;gap:12px}.person .name{font-weight:700}.avatar{flex:none;border-radius:50%;background:#efeaf8}.child-card{display:flex;gap:12px;align-items:flex-start}.child-card .body{flex:1;min-width:0}.tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tag{font-size:.75rem;font-weight:700;border-radius:6px;padding:2px 8px;background:#eceaf2;color:var(--muted)}.tag.allergy{background:var(--urgent-soft);color:var(--urgent)}.tag.group{color:#fff}.tag.code{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;background:var(--navy);color:#fff;letter-spacing:.1em}.alert{border-radius:12px;padding:12px 14px;border-left:6px solid;background:#fff;border-top:1px solid var(--line);border-right:1px solid var(--line);border-bottom:1px solid var(--line)}.alert+.alert{margin-top:10px}.alert .title{font-weight:700;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}.alert .sev{font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:800;border-radius:4px;padding:1px 6px}.alert.info{border-left-color:var(--info)}.alert.info .sev{background:var(--info-soft);color:var(--info)}.alert.attention{border-left-color:#d08a00}.alert.attention .sev{background:var(--attention-soft);color:var(--attention)}.alert.urgent{border-left-color:var(--urgent);background:#fffaf8}.alert.urgent .sev{background:var(--urgent-soft);color:var(--urgent)}.alert.critical{border-left-color:var(--critical);background:#fff4f2}.alert.critical .sev{background:var(--critical);color:#fff}.alert.sensitive{border-left-color:var(--sensitive);background:#fbf8ff}.alert.sensitive .sev{background:var(--sensitive);color:#fff}.alert .meta{font-size:.8rem;color:var(--muted);margin-top:4px}.alert .actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px}.held{font-size:.75rem;font-weight:700;color:var(--attention);background:var(--attention-soft);border-radius:6px;padding:1px 6px}.banner-critical{background:var(--critical);color:#fff;padding:12px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap}.banner-critical h2{color:#fff;margin:0;font-size:1.1rem}.timeline{list-style:none;padding:0;margin:0}.timeline li{display:grid;grid-template-columns:72px 1fr;gap:8px;padding:6px 0;border-bottom:1px dashed var(--line);font-size:.92rem}.timeline time{color:var(--muted);font-variant-numeric:tabular-nums}.tile{border-radius:var(--radius);background:#fff;border:1px solid var(--line);padding:14px;box-shadow:var(--shadow)}.tile .big{font-size:1.8rem;font-weight:800;color:var(--navy)}.meter{height:8px;border-radius:999px;background:#ece8f5;overflow:hidden;margin-top:8px}.meter>span{display:block;height:100%;border-radius:999px}.pass{background:linear-gradient(160deg,var(--brand) 0%,#2c2a6b 100%);color:#fff;border-radius:20px;padding:18px;box-shadow:0 10px 28px #4f2d9159}.pass h2,.pass h3{color:#fff}.pass .qr{background:#fff;border-radius:12px;padding:10px;width:210px;max-width:100%;margin:12px auto}.pass .qr img{display:block;width:100%;height:auto}.pass .codes{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.pass .codes span{background:#ffffff2e;border-radius:8px;padding:4px 10px;font-weight:700;letter-spacing:.08em}.label{width:300px;border:2px solid #222;border-radius:10px;padding:10px 12px;background:#fff;display:grid;grid-template-columns:1fr 88px;gap:8px;color:#111}.label .lname{font-size:1.4rem;font-weight:800}.label .lcode{font-family:ui-monospace,Consolas,monospace;font-size:1.3rem;font-weight:800;letter-spacing:.12em}.label .qr img{width:88px!important;height:88px!important}@media print{.no-print,.demo-bar,.topbar,.toast-region{display:none!important}body,main{background:#fff}.label{break-inside:avoid;margin-bottom:8px}}.beeper-wrap{display:flex;flex-direction:column;align-items:center;gap:16px;padding:12px 0}.beeper{width:280px;border-radius:64px;padding:24px 22px 28px;background:radial-gradient(circle at 30% 20%,#ffe58a,#f5b700 55%,#d99a00);box-shadow:inset 0 -8px #0000001f,0 14px 30px #00000040;position:relative}.beeper.buzz{animation:buzz .12s linear 0s 8}@keyframes buzz{0%{transform:translate(-3px) rotate(-1deg)}50%{transform:translate(3px) rotate(1deg)}to{transform:translate(-3px)}}@media(prefers-reduced-motion:reduce){.beeper.buzz{animation:none;outline:4px solid #fff}}.beeper .led{position:absolute;top:14px;right:46px;width:12px;height:12px;border-radius:50%;background:#3fa66b;box-shadow:0 0 8px #3fa66b}.beeper .led.off{background:#b42318;box-shadow:0 0 8px #b42318}.beeper .screen{background:#12201a;color:#b8f5c8;border-radius:22px;min-height:132px;padding:14px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:6px;font-weight:700;font-size:1.1rem;border:4px solid #6b5100}.beeper .screen svg{width:48px;height:48px}.beeper .screen .sub{font-size:.75rem;opacity:.8;font-weight:600}.beeper .buttons{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:18px}.beeper .buttons button{border-radius:50%;aspect-ratio:1;min-height:0;padding:0;flex-direction:column;font-size:.7rem;line-height:1.1;box-shadow:inset 0 -5px #0003,0 3px 6px #0003;border:3px solid rgba(0,0,0,.15)}.beeper .buttons button svg{width:26px;height:26px}.beeper .buttons .b-ok{background:#2f8f57}.beeper .buttons .b-pickup{background:#2f63b8}.beeper .buttons .b-help{background:#c0392b}.beeper .buttons button:active{transform:translateY(2px);box-shadow:inset 0 -2px #0003}.beeper .brandline{text-align:center;margin-top:12px;font-size:.7rem;font-weight:800;letter-spacing:.2em;color:#6b4a00}.battery{font-size:.8rem;color:var(--muted)}.stage{display:grid;gap:12px;grid-template-columns:380px 300px 1fr;grid-template-rows:auto auto}.stage .frame{background:#1d1b26;border-radius:26px;padding:8px;box-shadow:var(--shadow);display:flex;flex-direction:column}.stage .frame h2{color:#fff;font-size:.85rem;margin:4px 10px 8px}.stage iframe{border:0;border-radius:18px;background:var(--bg);width:100%;flex:1;min-height:720px}.stage .wide{grid-column:1 / -1}.stage .wide iframe{min-height:640px}@media(max-width:1100px){.stage{grid-template-columns:1fr}}.hero{background:linear-gradient(135deg,var(--brand) 0%,var(--navy) 100%);color:#fff;border-radius:22px;padding:28px 24px}.hero h1{color:#fff;font-size:2rem}.hero p{font-size:1.05rem;max-width:640px}.role-card{display:flex;flex-direction:column;gap:8px}.role-card h3{display:flex;align-items:center;gap:8px}.list{list-style:none;padding:0;margin:0}.list li{padding:8px 0;border-bottom:1px solid var(--line)}.list li:last-child{border-bottom:0}.split{display:grid;grid-template-columns:1fr 1fr;gap:12px}@media(max-width:640px){.split{grid-template-columns:1fr}main{padding:12px}h1{font-size:1.35rem}}.compare{display:grid;grid-template-columns:1fr 1fr;gap:12px;text-align:center}.compare .person{flex-direction:column}.scanner video{width:100%;border-radius:12px;background:#000;max-height:320px;object-fit:cover}.empty{text-align:center;color:var(--muted);padding:18px}details>summary{cursor:pointer;font-weight:700;min-height:32px}table.simple{width:100%;border-collapse:collapse;font-size:.88rem}table.simple th,table.simple td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line);vertical-align:top}table.simple th{color:var(--muted);font-weight:700}
