/* Easy sign-in: student name picker + teacher QR panel */
.quick-signin .eyebrow{margin:0}
.quick-signin h2{margin:.2rem 0 .6rem}
.quick-lead{font-size:1.15rem;margin:.2rem 0 .8rem}
.quick-names{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.quick-name{min-height:56px;padding:10px 12px;border:1px solid #b39154;border-radius:12px;background:#fffaf0;color:#2b1f14;font:600 1.1rem/1.2 system-ui,sans-serif;cursor:pointer;text-align:center;box-shadow:0 2px 0 #c9b58d}
.quick-name:hover,.quick-name:focus-visible{background:#f7e6b9;border-color:#7a5a2a;outline:none}
.quick-name:active{transform:translateY(1px);box-shadow:none}
.quick-unnamed{font:600 1rem/1.2 ui-monospace,Menlo,Consolas,monospace;letter-spacing:.04em}
.quick-unnamed small{display:block;font:500 .72rem system-ui,sans-serif;letter-spacing:0;opacity:.7}
.quick-small{font-size:.9rem;opacity:.85}
.quick-who{font-size:1.2rem;margin:.2rem 0 .6rem}
#quickPinStep{display:grid;gap:1rem;max-width:420px}
#quickPinStep label{display:grid;gap:.4rem;font-weight:600}
#quickPinStep label small{font-weight:400;opacity:.8}
#quickPin{font-size:1.6rem;letter-spacing:.3em;padding:.6rem .8rem;text-align:center;font-family:ui-monospace,Menlo,Consolas,monospace}
.quick-remember{display:flex!important;grid-template-columns:none;align-items:flex-start;gap:.6rem!important;font-weight:500!important;cursor:pointer}
.quick-remember input{width:22px;height:22px;margin:2px 0 0;flex:0 0 auto;accent-color:#4a3270}
.quick-remember span{display:grid;gap:2px}
.quick-remember small{font-weight:400;font-size:.85rem;opacity:.8}
.quick-error{color:#8a1f11;font-weight:600;margin:0;min-height:1.2em}
.quick-alt{margin:1.2rem 0 0;font-size:.95rem;line-height:2}
.quick-link{background:none!important;border:0!important;box-shadow:none!important;padding:0!important;min-height:0!important;color:#4a3270!important;text-decoration:underline;text-underline-offset:2px;font:inherit;cursor:pointer}

/* Teacher panel */
.easy-signin{margin:1.2rem 0;padding:1rem 1.2rem;border:2px solid #4a3270;border-radius:14px;background:#f6f0ff;color:#2b1f14}
.easy-signin h3{margin:0 0 .3rem;color:#3b2760}
.easy-signin p{margin:.4rem 0}
.easy-row{display:flex;gap:1.2rem;align-items:flex-start;flex-wrap:wrap;margin-top:.6rem}
.join-qr{width:160px;flex:0 0 160px;background:#fff;border-radius:8px;padding:4px;border:1px solid #c9b8e6}
.join-qr svg,.board-qr svg{display:block;width:100%;height:auto}
.easy-side{flex:1 1 260px;min-width:0}
.easy-link a{font:.85rem ui-monospace,Menlo,Consolas,monospace;overflow-wrap:anywhere;color:#3b2760}
.easy-side .actions{display:flex;flex-wrap:wrap;gap:8px;margin:.4rem 0}
.easy-names-status{font-weight:600;color:#3b2760}
.join-board{border:0;border-radius:20px;padding:28px 32px;text-align:center;max-width:min(92vw,720px);background:#fff;color:#1b1430}
.join-board::backdrop{background:#0d1020e6}
.join-board h2{margin:.2rem 0 1rem;font-size:clamp(1.6rem,4vw,2.6rem)}
.board-qr{width:min(70vh,560px,80vw);margin:0 auto 1rem}
.join-board p{font-size:1.2rem}

/* Roster names */
#roster li{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:6px 0}
#roster .roster-id{font-size:.95rem;min-width:6.5em}
#roster .roster-name{flex:1 1 180px;min-width:0;max-width:260px;padding:.5rem .6rem;font:inherit;border:1px solid #b39154;border-radius:8px;background:#fffaf0}
#roster .roster-name.saved{border-color:#3f7d3a;box-shadow:0 0 0 2px #3f7d3a33}
#roster .roster-name.error{border-color:#a3301c;box-shadow:0 0 0 2px #a3301c33}
@media (max-width:600px){.join-qr{width:140px;flex-basis:140px}.quick-names{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media print{.easy-signin,.join-board{display:none!important}}
@media (max-width:740px){.feedback-link{position:static!important;display:block!important;width:max-content;max-width:90vw!important;margin:24px auto 32px!important}}
