:root{font-family:Inter,system-ui,sans-serif;color:#1f2937;background:radial-gradient(circle at top,#eef9ff,#f8fafc 60%,#eef4f3)}*{box-sizing:border-box}body{margin:0}button,input,select{font:inherit}.shell{min-height:100vh;padding:24px 16px 56px}.container{margin:0 auto;max-width:980px}.card{background:#fffffff5;border-radius:24px;border:1px solid rgba(148,163,184,.2);box-shadow:0 18px 50px #0f172a14;padding:22px}.stack{display:grid;gap:16px}.eyebrow{color:#0f766e;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.hero h1{margin:6px 0 12px;font-size:clamp(2rem,5vw,3rem)}.hero p,.muted{color:#475569}.notice{padding:12px 14px;border-radius:14px;font-size:14px}.notice.info{background:#ecfeff;color:#155e75}.notice.error{background:#fef2f2;color:#991b1b}.notice.warning{background:#fffbeb;color:#92400e}.row{display:flex;flex-wrap:wrap;gap:12px}.student-tabs{display:flex;flex-wrap:wrap;gap:10px}.pill{border:none;border-radius:999px;padding:10px 14px;background:#e2e8f0;color:#0f172a;cursor:pointer}.pill.active{background:#0f766e;color:#fff}.button{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border:none;border-radius:999px;background:#0284c7;color:#fff;text-decoration:none;cursor:pointer}.timeline{display:grid;gap:12px}.event{padding:16px;border-radius:18px;background:#f8fafc;border:1px solid rgba(148,163,184,.2)}.event strong{display:block;margin-bottom:6px}.event-grid{display:grid;gap:16px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.kiosk-shell{background:radial-gradient(circle at top left,rgba(14,165,233,.18),transparent 30%),radial-gradient(circle at top right,rgba(45,212,191,.16),transparent 26%),radial-gradient(circle at bottom,rgba(15,118,110,.08),transparent 30%)}.kiosk-login{max-width:640px}.kiosk-auth-card{min-height:100%}.kiosk-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}.button.kiosk-primary{background:linear-gradient(135deg,#0ea5e9,#0284c7)}.button.kiosk-secondary{background:linear-gradient(135deg,#14b8a6,#0f766e)}.button.kiosk-ghost{background:#e2e8f0;color:#0f172a}.camera-frame{border-radius:24px;overflow:hidden;background:#0f172a;border:1px solid rgba(148,163,184,.2);min-height:360px}.camera-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}.button.camera-toggle{width:100%;min-height:38px;padding:0 10px;font-size:clamp(10px,3vw,14px);white-space:nowrap;min-width:0}.button.camera-toggle.active{background:linear-gradient(135deg,#0f766e,#0ea5e9);color:#fff;box-shadow:0 10px 24px #0ea5e92e}.camera-video,.capture-image{display:block;width:100%;height:auto}.camera-video{min-height:360px;object-fit:cover}.capture-image{border-radius:18px;border:1px solid rgba(148,163,184,.16)}.kiosk-student-list{display:grid;gap:10px;max-height:320px;overflow:auto;padding-right:4px}.kiosk-student{border:1px solid rgba(148,163,184,.2);border-radius:18px;background:#f8fafc;padding:14px 16px;display:grid;gap:4px;text-align:left;cursor:pointer;position:relative}.kiosk-student.selected{border-color:#0284c7;background:linear-gradient(135deg,#0ea5e924,#14b8a61f);box-shadow:0 10px 28px #0ea5e924;transform:translateY(-1px)}.kiosk-student.best-match{border-color:#0ea5e947;background:linear-gradient(135deg,#0ea5e91f,#14b8a614)}.kiosk-student.runner-up{border-style:dashed;border-color:#f59e0b61;background:linear-gradient(135deg,#f59e0b14,#fbbf240a)}.suggested-match{border-radius:24px;border:1px solid rgba(14,165,233,.18);background:linear-gradient(135deg,#0ea5e924,#14b8a61a),#f8fdff;padding:20px;display:grid;gap:10px}.suggested-match.ambiguous{border-color:#f59e0b59;background:linear-gradient(135deg,#f59e0b24,#fbbf2414),#fffdf6}.suggested-match-eyebrow{color:#0369a1;font-size:12px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}.suggested-match-name{color:#082f49;font-size:clamp(2rem,4vw,3rem);font-weight:900;line-height:1.02;letter-spacing:-.04em}.suggested-match-meta{display:flex;flex-wrap:wrap;gap:10px;color:#0f172a;font-weight:700}.suggested-match-meta span{padding:7px 10px;border-radius:999px;background:#ffffffbf;border:1px solid rgba(14,165,233,.12)}.suggested-match-note{color:#075985;font-size:14px;line-height:1.5}.kiosk-selected-badge{justify-self:start;padding:4px 10px;border-radius:999px;background:#0ea5e9;color:#fff;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
