:root{--bg:#f5f7fb;--card:#fff;--text:#14213d;--muted:#65718a;--border:#dfe5ee;--accent:#2447d5;--accent2:#e9eeff;--ok:#137a50;--okbg:#e9f8f1;--bad:#b42318;--badbg:#fff0ee;--danger:#9f1d16}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:16px/1.45 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}.shell{width:min(960px,calc(100% - 28px));margin:0 auto;padding:28px 0 48px}.narrow{width:min(700px,calc(100% - 28px))}.hero{padding:20px 0 24px}.hero h1,.control-top h1{font-size:clamp(28px,5vw,44px);line-height:1.05;margin:7px 0}.hero p{font-size:18px;margin:0;color:var(--muted)}.eyebrow{text-transform:uppercase;letter-spacing:.09em;font-size:12px;font-weight:800;color:var(--accent)}.card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:24px;margin-bottom:18px}.card h2{margin-top:0}.muted{color:var(--muted)}label{display:flex;flex-direction:column;gap:7px;font-weight:650}input{width:100%;min-height:48px;border:1px solid #c7d0dd;border-radius:11px;padding:11px 13px;font:inherit;background:#fff;color:var(--text)}input:focus{outline:3px solid rgba(36,71,213,.15);border-color:var(--accent)}.form-row{display:grid;grid-template-columns:1fr auto;gap:12px;align-items:end}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.stack{display:grid;gap:14px}.btn{min-height:46px;border:0;border-radius:11px;padding:11px 18px;font:inherit;font-weight:750;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.btn:disabled{cursor:not-allowed;opacity:.72}.primary{background:var(--accent);color:#fff}.secondary{background:var(--accent2);color:#1736ad}.danger{background:#fdebea;color:var(--danger)}.wide{width:100%;margin-top:18px}.hidden{display:none!important}.alert{padding:12px 14px;border-radius:10px;margin:10px 0 16px;background:#eef3f9}.alert.success{color:var(--ok);background:var(--okbg)}.alert.error{color:var(--bad);background:var(--badbg)}.summary-box{border:1px solid var(--border);border-radius:12px;padding:16px;margin:18px 0;display:flex;flex-direction:column;gap:3px}.student-tags{display:flex;gap:7px;flex-wrap:wrap;margin-top:10px}.student-tags span{font-size:13px;background:#f0f3f8;border-radius:999px;padding:6px 9px}fieldset{border:0;padding:0;margin:22px 0}legend{font-weight:800;margin-bottom:10px}.radio{display:flex;flex-direction:row;align-items:center;gap:9px;font-weight:550;margin:8px 0}.radio input{width:18px;min-height:auto}.section-head,.control-top,.result-head{display:flex;justify-content:space-between;gap:18px;align-items:center}.section-head h3{margin-bottom:0}.section-head p{margin-top:4px}.guest-row{border-top:1px solid var(--border);padding:18px 0}.guest-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.text-btn{border:0;background:transparent;color:var(--bad);cursor:pointer;font:inherit;font-weight:700}.center{text-align:center}.clean-list{list-style:none;padding:0;margin:10px 0 22px}.clean-list li{display:flex;flex-direction:column;border-bottom:1px solid var(--border);padding:9px 0}.clean-list span{color:var(--muted);font-size:14px}.confirmation{text-align:center}.confirmation .clean-list{text-align:left}.success-mark{width:54px;height:54px;border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;background:var(--okbg);color:var(--ok);font-size:30px;font-weight:900}.qr{min-height:240px;display:flex;justify-content:center;align-items:center;margin:18px auto}.qr img,.qr canvas{max-width:100%;height:auto}.access-code{font-size:18px;margin-bottom:22px}.control-shell{width:min(1100px,calc(100% - 24px))}.control-top{padding:14px 0 20px}.top-links,.button-row{display:flex;gap:10px;flex-wrap:wrap}.scan-input{font-size:20px}.reader{max-width:520px;margin:16px auto 0;overflow:hidden;border-radius:12px}.result-head .count{font-size:28px}.people-list{display:grid;gap:10px;margin-top:18px}.person{display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--border);border-radius:13px;padding:13px}.person>div{display:flex;flex-direction:column;min-width:0}.person span,.person small{color:var(--muted);overflow-wrap:anywhere}.person.entered{background:var(--okbg);border-color:#bce8d4}.success-btn{background:var(--ok);color:#fff}.stats{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.stat{background:#fff;border:1px solid var(--border);border-radius:16px;padding:18px}.stat span{display:block;color:var(--muted);font-size:13px}.stat strong{display:block;font-size:30px;margin-top:5px}@media(max-width:720px){.form-row,.grid-2{grid-template-columns:1fr}.form-row .btn{width:100%}.section-head,.control-top,.result-head{align-items:flex-start;flex-direction:column}.top-links{width:100%}.top-links .btn{flex:1}.person{align-items:stretch;flex-direction:column}.person .btn{width:100%}.stats{grid-template-columns:1fr 1fr}.card{padding:18px}}@media print{body{background:#fff}.btn,.center{display:none}.card{border:0;padding:0}.shell{width:100%;padding:0}.hero{text-align:center}}
.person-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.extra-created{text-align:center}.small-qr{min-height:210px}.stats-wide{grid-template-columns:repeat(6,1fr)}.summary-note{margin-top:16px}@media(max-width:900px){.stats-wide{grid-template-columns:repeat(3,1fr)}}@media(max-width:720px){.person-actions{width:100%}.person-actions .btn{width:100%}.stats-wide{grid-template-columns:1fr 1fr}}
