/* Student entry and sync tools inherit the classroom's quiet paper and blue palette. */
.student-login-page,.student-gate,.student-bar{font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;font-size:16px;color:#293e50;line-height:1.65;font-synthesis:none;--student-blue:#245fa5;--student-muted:#5d6d77;--student-line:#d9ddd9}
.student-login-page{margin:0;background:#faf7f0;-webkit-text-size-adjust:100%;text-size-adjust:100%}
.student-login-page *, .student-gate *, .student-bar *{box-sizing:border-box}
.student-login-page [hidden],.student-bar [hidden]{display:none!important}
.student-login-page ::selection,.student-bar ::selection{background:#d8e7f5;color:#293e50}
.student-login-page :focus-visible,.student-bar :focus-visible,.student-gate :focus-visible{outline:3px solid #245fa5;outline-offset:4px}
.student-login-page button,.student-bar button,.student-gate button{font:inherit;touch-action:manipulation;cursor:pointer}
.student-login-page button:disabled,.student-bar button:disabled{cursor:wait;opacity:.6}
.student-brand{max-width:1080px;margin:auto;padding:24px;font-size:20px;font-weight:700;line-height:1.4}
.student-brand small{display:block;font-size:12px;font-weight:500;letter-spacing:.07em;color:#5d6d77;margin-top:3px}
.student-login-main{max-width:570px;margin:28px auto 64px;padding:0 24px}
.student-login-main h1,.student-gate h1{font-size:32px;line-height:1.35;margin:0 0 12px;letter-spacing:-.02em;text-wrap:balance}
.student-intro{font-size:17px;color:#5d6d77;margin:0 0 28px;line-height:1.8}
.student-tabs{display:flex;gap:8px;margin:0 0 28px;border-bottom:1px solid #d9ddd9}
.student-tabs button{border:0;border-bottom:3px solid transparent;color:#5d6d77;background:transparent;min-height:52px;padding:10px 14px;font-weight:600}
.student-tabs button[aria-pressed=true]{border-bottom-color:#245fa5;color:#174b88}
.student-field{margin-bottom:22px}
.student-field label{display:block;font-weight:650;margin-bottom:8px}
.student-field input{width:100%;min-height:54px;border:1px solid #8598aa;border-radius:10px;background:white;color:#293e50;padding:12px 14px;font:inherit;font-size:18px;caret-color:#245fa5;min-width:0}
.student-field input::placeholder{color:#5d6d77;opacity:1}
.student-input-row{display:flex;gap:8px;align-items:stretch}
.student-input-row .student-button{flex-shrink:0;padding-inline:14px}
.student-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;padding:10px 18px;border:1px solid #8598aa;border-radius:10px;background:#fff;color:#245fa5;font-weight:600;text-decoration:none;line-height:1.5}
.student-button:hover{background:#edf4fc;border-color:#245fa5}
.student-primary{background:#245fa5;color:#fff;border-color:#245fa5}
.student-primary:hover{background:#174b88;color:#fff}
.student-hint{font-size:14px;line-height:1.75;color:#5d6d77;margin:8px 0 0;overflow-wrap:anywhere}
.student-roll{background:#edf4fc;border-color:#b0c5dc;font-size:16px}
.student-roll svg{flex-shrink:0}
.student-suggestions{display:grid;gap:8px;margin-top:12px}
.student-suggestion{min-height:52px;padding:12px 14px;color:#293e50;background:white;border:1px solid #8598aa;border-radius:10px;font-size:16px;text-align:left;overflow-wrap:anywhere;line-height:1.6;font-variant-numeric:tabular-nums}
.student-suggestion:hover{background:#edf4fc}
.student-suggestion[aria-pressed=true]{background:#edf4fc;border:2px solid #245fa5;padding:11px 13px;color:#174b88}
.student-submit{width:100%;margin-top:28px;min-height:54px;font-size:18px}
.student-save-note{margin-top:14px}
.student-error{color:#9b3024;background:#fff0e9;border:1px solid #e9c9bb;padding:12px 14px;border-radius:10px;line-height:1.75;margin:20px 0 0}
.student-saved-code{display:block;background:#fff;border:1px solid #8598aa;border-radius:12px;padding:20px;margin:20px 0;font-size:24px;font-weight:650;line-height:1.7;overflow-wrap:anywhere;user-select:all}
.student-success-actions{display:flex;gap:12px;flex-wrap:wrap}
.student-success-actions .student-primary{flex:1}
.student-checking body > :not(.student-gate){visibility:hidden!important}
.student-gate{position:fixed;inset:0;z-index:10000;background:#faf7f0;padding:clamp(36px,12vh,100px) 24px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:auto}
.student-gate p{max-width:480px;color:#5d6d77}
.student-gate .student-button{margin-top:16px}
.student-bar{max-width:1032px;margin:0 auto 12px;padding:8px 24px;border-bottom:1px solid #d9ddd9;display:flex;align-items:center;justify-content:flex-end;gap:8px 16px;flex-wrap:wrap}
.student-name{margin-right:auto;overflow-wrap:anywhere;min-width:0}
.student-bar [data-student-sync]{font-size:13px;color:#5d6d77}
.student-bar>.student-button{padding:8px 12px;font-size:14px;min-height:48px;background:transparent;border-color:transparent;white-space:nowrap}
.student-bar>.student-button:hover{background:#edf4fc}
.student-conflict{flex-basis:100%;background:#fff8e9;border:1px solid #d8c7a5;border-radius:10px;padding:16px;font-size:15px;line-height:1.75}
.student-conflict p{margin:0 0 12px}
.student-conflict>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px}
.student-conflict strong{margin-right:auto}
.student-conflict>.student-button{margin:4px 8px 4px 0}
.student-bar [data-student-logout-error]{color:#9b3024;flex-basis:100%;margin:0}
@media(max-width:600px){.student-brand{padding:20px 20px 12px}.student-login-main{margin-top:24px;padding:0 20px}.student-login-main h1{font-size:28px}.student-intro{font-size:16px}.student-tabs button{padding-inline:10px}.student-bar{padding:8px 16px;gap:6px 10px}.student-bar [data-student-sync]{font-size:12px}.student-saved-code{font-size:21px}.student-success-actions{flex-direction:column}.student-success-actions .student-button{width:100%}}
@media(hover:none) and (pointer:coarse){.student-button,.student-suggestion{min-height:52px}}
@media(prefers-reduced-motion:reduce){.student-login-page *,.student-bar *{scroll-behavior:auto;transition:none}}
