.classroom-wrap{max-width:760px;margin:0 auto;padding:64px 24px 96px}.classroom-hero{margin-bottom:48px}.classroom-eyebrow{font-family:var(--font-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-vermillion);margin-bottom:14px}.classroom-title{font-family:var(--font-display);font-size:clamp(2rem,5vw,2.8rem);font-weight:600;color:var(--text-primary);line-height:1.15;margin:0 0 12px;letter-spacing:-.01em}.classroom-hero-sub{font-size:1rem;color:var(--text-secondary);margin:0;max-width:500px;line-height:1.6}.classroom-section{margin-bottom:40px}.classroom-section-title{font-family:var(--font-ui);font-size:.72rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border)}.classroom-list{gap:12px}.classroom-card,.classroom-list{display:flex;flex-direction:column}.classroom-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:20px 24px;gap:14px}.classroom-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.classroom-card-name{font-family:var(--font-display);font-size:1.15rem;font-weight:500;color:var(--text-primary);margin:0;line-height:1.3}.classroom-role-badge{flex-shrink:0;font-family:var(--font-ui);font-size:.62rem;letter-spacing:.09em;text-transform:uppercase;padding:3px 9px;border-radius:100px;border:1px solid}.classroom-role-badge--teacher{color:var(--accent-vermillion);border-color:rgba(192,57,43,.35);background:rgba(192,57,43,.08)}.classroom-role-badge--student{color:var(--accent-gold);border-color:rgba(196,147,10,.35);background:rgba(196,147,10,.08)}.classroom-card-meta{display:flex;align-items:center;gap:16px;flex-wrap:wrap}.classroom-meta-item{font-family:var(--font-ui);font-size:.75rem;color:var(--text-muted);letter-spacing:.03em}.classroom-meta-item strong{color:var(--text-secondary);font-weight:500}.classroom-invite-block{display:flex;align-items:center;gap:10px;background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px}.classroom-invite-label{font-family:var(--font-ui);font-size:.65rem;letter-spacing:.09em;text-transform:uppercase;color:var(--text-muted);flex-shrink:0}.classroom-invite-code{font-family:var(--font-ui);font-size:.88rem;font-weight:500;color:var(--text-primary);letter-spacing:.06em;flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classroom-invite-copy{flex-shrink:0;font-family:var(--font-ui);font-size:.68rem;letter-spacing:.05em;color:var(--accent-vermillion);background:none;border:1px solid rgba(192,57,43,.3);border-radius:var(--radius-sm);padding:5px 10px;cursor:pointer;transition:background .15s}.classroom-invite-copy:hover{background:rgba(192,57,43,.1)}.classroom-card-actions{display:flex;gap:10px;flex-wrap:wrap}.classroom-btn-primary{font-family:var(--font-ui);font-size:.75rem;letter-spacing:.04em;color:var(--text-primary);background:var(--accent-vermillion);border:none;border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;text-decoration:none;display:inline-block;transition:opacity .15s}.classroom-btn-primary:hover{opacity:.85}.classroom-btn-secondary{font-family:var(--font-ui);font-size:.75rem;letter-spacing:.04em;color:var(--text-secondary);background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:9px 18px;cursor:pointer;transition:border-color .15s,color .15s}.classroom-btn-secondary:hover{border-color:var(--border-mid);color:var(--text-primary)}.classroom-form{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;gap:16px}.classroom-field,.classroom-form{display:flex;flex-direction:column}.classroom-field{gap:6px}.classroom-label{font-family:var(--font-ui);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.classroom-input{font-family:var(--font-ui);font-size:.88rem;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;outline:none;transition:border-color .15s;letter-spacing:.02em}.classroom-input::placeholder{color:var(--text-muted)}.classroom-input:focus{border-color:var(--accent-vermillion)}.classroom-form-footer{display:flex;align-items:center;gap:14px;flex-wrap:wrap}.classroom-msg{font-family:var(--font-ui);font-size:.75rem;letter-spacing:.02em;padding:8px 14px;border-radius:var(--radius-sm);border:1px solid}.classroom-msg--success{color:#74C69D;border-color:rgba(116,198,157,.3);background:rgba(116,198,157,.07)}.classroom-msg--error{color:#E07070;border-color:rgba(224,112,112,.3);background:rgba(224,112,112,.07)}.classroom-loading{display:inline-block;width:14px;height:14px;border:2px solid rgba(240,237,232,.2);border-top:2px solid var(--text-primary);border-radius:50%;animation:classroomSpin .6s linear infinite;vertical-align:middle}@keyframes classroomSpin{to{transform:rotate(1turn)}}.classroom-signin-prompt{text-align:center;padding:80px 24px;display:flex;flex-direction:column;align-items:center;gap:16px}.classroom-signin-kanji{font-family:var(--font-display);font-size:3.5rem;color:var(--text-muted);opacity:.3;line-height:1}.classroom-signin-prompt h2{font-family:var(--font-display);font-size:1.3rem;font-weight:600;color:var(--text-primary);margin:0}.classroom-signin-prompt p{font-size:.9rem;color:var(--text-secondary);margin:0;max-width:340px;line-height:1.6}.classroom-signin-link{font-family:var(--font-ui);font-size:.78rem;letter-spacing:.05em;color:var(--text-primary);background:var(--accent-vermillion);text-decoration:none;padding:11px 24px;border-radius:var(--radius-sm);transition:opacity .15s;margin-top:4px}.classroom-signin-link:hover{opacity:.88}.classroom-empty-state{text-align:center;padding:32px 24px;border:1px dashed var(--border);border-radius:var(--radius-md);color:var(--text-muted);font-family:var(--font-ui);font-size:.8rem;letter-spacing:.03em}@media (max-width:600px){.classroom-card{padding:16px}.classroom-form{padding:18px 16px}.classroom-card-header{flex-direction:column;gap:8px}.classroom-invite-block{flex-wrap:wrap;gap:8px}}.classroom-back-link{display:inline-block;margin-top:12px;font-family:var(--font-ui);font-size:.78rem;color:var(--text-muted);text-decoration:none;letter-spacing:.02em;transition:color .15s}.classroom-back-link:hover{color:var(--text-primary)}.classroom-students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));grid-gap:14px;gap:14px}.classroom-student-card{background:var(--bg-secondary);border:1px solid var(--border);border-radius:10px;padding:16px 18px;transition:border-color .15s}.classroom-student-card:hover{border-color:var(--border-hi)}.classroom-student-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px;gap:10px}.classroom-student-name{font-family:var(--font-ui);font-size:.85rem;color:var(--text-primary);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.classroom-student-jlpt{font-family:var(--font-ui);font-size:.65rem;letter-spacing:.08em;padding:2px 8px;border-radius:10px;background:rgba(192,57,43,.12);color:var(--accent-vermillion);border:1px solid rgba(192,57,43,.25);flex-shrink:0}.classroom-student-stats{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:8px;gap:8px}.classroom-student-stat{display:flex;flex-direction:column;align-items:center;gap:3px}.classroom-student-stat-value{font-family:var(--font-ui);font-size:1rem;font-weight:600;color:var(--text-primary);line-height:1}.classroom-student-stat-label{font-family:var(--font-ui);font-size:.6rem;letter-spacing:.04em;color:var(--text-muted);text-align:center;line-height:1.3}@media (max-width:480px){.classroom-students-grid{grid-template-columns:1fr}.classroom-student-stats{grid-template-columns:repeat(2,1fr);gap:10px}}