:root{color:#1e1530;background:#f7f2ff;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 15% 0%,rgba(164,88,255,.28),transparent 34rem),linear-gradient(135deg,#fbf8ff,#efe5ff 45%,#f8f5ff)}button,input{font:inherit}.state-shell{width:min(520px,calc(100% - 32px));min-height:100vh;display:grid;place-items:center;margin:0 auto;padding:32px 0}.state-card{width:100%;padding:34px 28px;color:#fff;text-align:center;border-radius:24px;background:linear-gradient(120deg,#4b1d75,#7c3aed);box-shadow:0 24px 80px #46187d47}.state-logo{width:auto;height:104px;display:block;margin:0 auto 18px;filter:drop-shadow(0 10px 22px rgba(33,19,51,.22))}.state-eyebrow{margin:0 0 10px;color:#dec7ff;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.state-card h1{margin-bottom:12px;font-size:clamp(1.8rem,7vw,2.65rem)}.state-copy{max-width:380px;margin:0 auto;color:#efe5ff;line-height:1.65}.loading-dots{display:flex;justify-content:center;gap:8px;margin-top:24px}.loading-dots span{width:10px;height:10px;border-radius:999px;background:#fff;animation:loadingPulse .9s ease-in-out infinite}.loading-dots span:nth-child(2){animation-delay:.12s}.loading-dots span:nth-child(3){animation-delay:.24s}.state-action{min-height:44px;margin-top:24px;padding:0 18px;color:#4b1d75;font-weight:900;border:0;border-radius:999px;background:#fff;cursor:pointer}.state-action:hover,.state-action:focus-visible{background:#f0e5ff;outline:none}@keyframes loadingPulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-4px)}}.app-shell{width:min(920px,calc(100% - 32px));margin:0 auto;padding:32px 0 48px}.app-header{display:flex;justify-content:space-between;gap:18px;align-items:center;padding:22px 24px;color:#fff;border:0;border-radius:20px;background:linear-gradient(120deg,#4b1d75,#7c3aed);box-shadow:0 22px 64px #46187d3d}.brand-block{display:flex;gap:16px;align-items:center;min-width:0}.brand-logo{width:auto;height:clamp(72px,10vw,92px);flex:0 0 auto;object-fit:contain;filter:drop-shadow(0 8px 18px rgba(33,19,51,.2))}.eyebrow{margin:0 0 8px;color:#dec7ff;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.sub-eyebrow{margin:8px 0 0;color:#dec7ff;font-size:.78rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase}h1,h2,p{margin-top:0}h1{margin-bottom:0;font-size:clamp(1.75rem,5vw,2.6rem);line-height:1.05;letter-spacing:0}.search-panel,.results-panel,.qr-detail{margin:22px auto 0}.search-panel,.results-panel{width:min(720px,100%)}label{display:block;margin-bottom:8px;color:#4d3769;font-size:.82rem;font-weight:800}input{width:100%;min-height:54px;padding:0 18px;color:#201330;border:1px solid #d9c5f4;border-radius:14px;background:#fff;outline:none;box-shadow:0 12px 36px #623d8f1f}input:focus{border-color:#7c3aed;box-shadow:0 0 0 4px #7c3aed29}.search-input-wrap{position:relative}.search-input-wrap input{padding-right:52px}.clear-search{position:absolute;top:50%;right:12px;width:30px;height:30px;display:grid;place-items:center;padding:0;color:#6d28d9;font-size:1rem;font-weight:900;line-height:1;border:0;border-radius:999px;background:#f0e5ff;cursor:pointer;transform:translateY(-50%)}.clear-search:hover,.clear-search:focus-visible{color:#fff;background:#7c3aed;outline:none}.status-pill{min-height:38px;display:inline-grid;place-items:center;padding:0 14px;color:#5b21b6;font-size:.88rem;font-weight:800;border-radius:999px;background:#f0e7ff}.app-header .status-pill{color:#3b1768;background:#ffffffd6}.status-pill.ready{color:#24513c;background:#dff8ea}.status-pill.loading{color:#5b3b16;background:#fff1cc}.notice,.empty-state{width:min(720px,100%);margin:16px auto 0;padding:14px 16px;color:#5f437c;border:1px solid #e1cef8;border-radius:14px;background:#ffffffb8}.empty-state{color:#5f437c;border-color:#d9c5f4;background:#f3eaff}code{color:#6934b2;font-weight:800}.section-heading{display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:12px}.section-heading h2{margin:0;color:#241238;font-size:1.15rem}.section-heading span{color:#745b8b;font-size:.9rem;font-weight:800}.student-list{display:grid;gap:12px}.student-row{width:100%;min-height:70px;display:flex;justify-content:space-between;gap:16px;align-items:center;padding:14px 18px;color:#2b1a3e;text-align:left;border:1px solid rgba(127,73,180,.16);border-radius:14px;background:#ffffffdb;cursor:pointer;box-shadow:0 12px 30px #4b2a721a;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.student-row:hover,.student-row:focus-visible{border-color:#8b5cf6;outline:none;box-shadow:0 14px 34px #4b2a721f;transform:translateY(-1px)}.student-row span{display:grid;gap:5px;min-width:0}.student-row strong,.student-row small{overflow-wrap:anywhere}.student-row small{color:#78628a;font-weight:700}.student-row em{flex:0 0 auto;color:#6d28d9;font-style:normal;font-weight:900}.student-card{border:1px solid rgba(127,73,180,.16);border-radius:20px;background:#ffffffdb;box-shadow:0 18px 48px #4b2a721f}.qr-detail{width:min(520px,100%);margin-inline:auto}.selected-card{padding:28px}.qr-box{width:min(100%,340px);aspect-ratio:1;display:grid;place-items:center;padding:22px;margin:0 auto;border:1px solid #ebe0f8;border-radius:18px;background:#fff;box-shadow:inset 0 0 0 8px #fbf8ff}.qr-code{width:min(100%,290px);height:auto;display:block;image-rendering:pixelated}.student-meta{display:grid;gap:0;margin:24px 0 0;overflow:hidden;border:1px solid #eee4fa;border-radius:14px}.student-meta div{display:flex;justify-content:space-between;gap:16px;padding:13px 15px;border-top:1px solid #eee4fa;background:#fff}.student-meta div:first-child{border-top:0}dt{color:#7b6590;font-size:.82rem;font-weight:800}dd{margin:0;color:#2b1a3e;font-weight:800;text-align:right;overflow-wrap:anywhere}@media(max-width:760px){.app-shell{width:min(100% - 24px,920px);padding:18px 0}.app-header{align-items:flex-start;flex-direction:column;padding:20px;border-radius:18px}.status-pill{width:fit-content;align-self:flex-end}.brand-logo{height:72px}.qr-box{width:min(100%,340px);margin:0 auto}}@media(max-width:480px){.app-header,.selected-card{padding:20px}.brand-block{gap:12px}.brand-logo{height:64px}.student-row,.student-meta div{align-items:flex-start;flex-direction:column}dd{text-align:left}.qr-box{padding:18px}}
