:root{--color-primary: #6C5CE7;--color-primary-tint: #EDE9FE;--color-primary-dark: #4C3DBF;--color-student: #34D399;--color-student-tint: #D1FAE5;--color-student-dark: #059669;--bg-teacher: #F3F0FF;--bg-student: #F0F9F6;--bg-sidebar: #FFFFFF;--bg-header: #FFFFFF;--bg-card: #FFFFFF;--color-flashcard: #60A5FA;--color-flashcard-tint: #DBEAFE;--color-quiz: #FB7185;--color-quiz-tint: #FEE2E2;--color-game: #A78BFA;--color-game-tint: #EDE9FE;--color-points: #FBBF24;--color-points-tint: #FEF3C7;--color-active: #34D399;--color-active-tint: #D1FAE5;--color-active-text: #059669;--color-review: #FBBF24;--color-review-tint: #FEF3C7;--color-review-text: #D97706;--color-processing: #60A5FA;--color-processing-tint: #DBEAFE;--color-processing-text: #2563EB;--color-text-primary: #1A1A2E;--color-text-secondary: #6B7280;--color-text-muted: #9CA3AF;--color-border: rgba(0, 0, 0, .08);--color-border-strong: rgba(0, 0, 0, .15);--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-card: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--shadow-card-hover: 0 4px 12px rgba(0,0,0,.08), 0 2px 4px rgba(0,0,0,.04);--sidebar-width: 220px;--header-height: 56px}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}.cgrid-container{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#f5f7fa;padding:20px}.cgrid-grid{display:grid;gap:1px;background:#e2e8f0;padding:8px;border-radius:8px;box-shadow:0 2px 8px #00000014}.cgrid-cell{background:#f8fafc;position:relative;cursor:pointer;-webkit-user-select:none;user-select:none;display:flex;align-items:center;justify-content:center;transition:background .1s ease}.cgrid-cell--active{background:var(--color-primary-tint, #e0f2fe)}.cgrid-cell--active-across:after,.cgrid-cell--active-down:after{content:"";position:absolute;background:var(--color-primary, #0ea5e9);pointer-events:none}.cgrid-cell--active-across:after{left:0;right:0;top:0;height:3px}.cgrid-cell--active-down:after{top:0;bottom:0;right:0;width:3px}.cgrid-cell--solved{background:var(--color-game-tint, #dcfce7)}.cgrid-cell--revealed{box-shadow:inset 3px 0 #f59e0b;background:#fffbeb}.cgrid-cell--empty{background:#e2e8f0;cursor:default;pointer-events:none}.cgrid-num{position:absolute;top:2px;left:3px;font-size:9px;font-family:DM Mono,monospace;color:var(--color-text-secondary, #64748b);line-height:1;pointer-events:none}.cgrid-letter{font-size:clamp(10px,1.6vw,16px);font-family:DM Mono,monospace;line-height:1;color:var(--color-text-primary, #1e293b);font-weight:500;text-transform:uppercase;pointer-events:none}.cgrid-cell--solved .cgrid-letter{color:var(--color-game, #16a34a)}.cp-panel{width:100%;display:flex;flex-direction:column;gap:4px;padding:16px 0 20px;background:transparent;font-family:DM Sans,sans-serif;color:var(--color-text-primary, #1a1a2e)}.cp-section{padding:0 14px}.cp-section-heading{display:flex;align-items:center;gap:6px;margin:0 0 6px;padding-bottom:8px;border-bottom:1px solid var(--color-border, rgba(0,0,0,.08));font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:1.5px;color:var(--color-text-secondary, #64748b)}.cp-direction{color:var(--color-primary, #6C5CE7);font-size:.85rem}.cp-clue{display:flex;gap:8px;align-items:flex-start;padding:5px 8px;margin-bottom:2px;border-radius:5px;border-left:3px solid transparent;cursor:pointer;transition:background .1s,border-color .1s}.cp-clue:hover{background:#0000000a}.cp-clue--active{background:var(--color-primary-tint);border-left-color:var(--color-primary);color:var(--color-text-primary)}.cp-clue--solved{text-decoration:line-through;color:var(--color-text-secondary, #64748b);opacity:.6;cursor:default;pointer-events:none}.cp-clue-num{flex-shrink:0;min-width:20px;font-size:.68rem;font-weight:500;color:var(--color-primary, #6C5CE7);padding-top:1px}.cp-clue-text{font-size:.74rem;line-height:1.45;color:var(--color-text-secondary, #64748b)}.cp-clue--active .cp-clue-text{color:var(--color-text-primary, #1a1a2e)}.page-container.cgp-game-page{padding:0;height:calc(100vh - var(--header-height));overflow:hidden;align-items:stretch}.cgp-game-container{display:flex;flex-direction:column;height:100%;max-width:100%;padding:24px;box-sizing:border-box}.cgp-content{flex:1;min-height:0;overflow:hidden;display:flex;flex-direction:column}.cgp-game-area{display:flex;gap:16px;flex:1;min-height:0;overflow:hidden}.cgp-grid-col{flex:1;min-height:0;min-width:0;border-radius:var(--radius-lg);overflow:hidden;background:var(--bg-card, #fff);box-shadow:var(--shadow-card)}.cgp-clues-col{width:280px;flex-shrink:0;overflow-y:auto;border-radius:var(--radius-lg);background:var(--bg-card, #fff);box-shadow:var(--shadow-card)}.cgp-clues-col::-webkit-scrollbar{width:3px}.cgp-clues-col::-webkit-scrollbar-track{background:transparent}.cgp-clues-col::-webkit-scrollbar-thumb{background:#0000001a;border-radius:2px}.cgp-header-right{display:flex;align-items:center;gap:12px}.cgp-score-label{font-size:.75rem;color:var(--color-text-secondary);font-weight:500}.cgp-score-value{display:inline-block;font-size:1.1rem;font-weight:600;color:var(--color-text-primary);animation:cgp-score-pop .3s ease}@keyframes cgp-score-pop{0%{transform:scale(1)}40%{transform:scale(1.35)}to{transform:scale(1)}}.cgp-reveal-btn{display:flex;align-items:center;gap:6px;padding:8px 16px;background:linear-gradient(135deg,#f59e0b,#f97316);border:1px solid #ea580c;border-radius:var(--radius-md);color:#fff;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .12s;white-space:nowrap;box-shadow:0 2px 4px #f9731633}.cgp-reveal-btn:hover{background:linear-gradient(135deg,#f97316,#ea580c);box-shadow:0 4px 8px #f973164d;transform:translateY(-1px)}.cgp-reveal-btn:active{transform:scale(.97)}.cgp-reveal-icon{font-size:.9rem;line-height:1}.cgp-reveal-label{letter-spacing:.2px}.cgp-error{display:flex;align-items:center;justify-content:center;width:100%;height:100%;color:#e05c5c}.cgp-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;animation:cgp-fade .3s ease}@keyframes cgp-fade{0%{opacity:0}to{opacity:1}}.cgp-win{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 56px;background:var(--bg-card, #fff);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 32px 80px #00000026;animation:cgp-rise .35s ease}@keyframes cgp-rise{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.cgp-win-icon{font-size:3rem;line-height:1}.cgp-win-title{margin:0;font-size:2rem;font-weight:600;color:var(--color-text-primary)}.cgp-win-sub{margin:0;font-size:.88rem;color:var(--color-text-secondary)}.cgp-win-score{display:flex;flex-direction:column;align-items:center;gap:2px;margin:4px 0}.cgp-win-score-label{font-size:.6rem;text-transform:uppercase;letter-spacing:2px;color:var(--color-text-secondary)}.cgp-win-score-value{font-size:2.5rem;font-weight:600;color:var(--color-primary);line-height:1}.cgp-win-btn{width:100%;padding:12px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;transition:background .12s,transform .08s;margin-top:4px}.cgp-win-btn:hover{background:var(--color-primary-dark)}.cgp-win-btn:active{transform:scale(.97)}.cgp-win-btn-secondary{width:100%;padding:10px;background:transparent;color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:.85rem;font-weight:500;cursor:pointer;transition:background .12s,color .12s}.cgp-win-btn-secondary:hover{background:#f3f4f6;color:var(--color-text-primary)}.mm-shell{width:100%;max-width:1040px}.mm-setup-content{display:flex;flex-direction:column;align-items:center;gap:14px;padding-top:8px}.mm-subtitle{margin:0;color:var(--color-text-secondary)}.mm-difficulty-picker{display:flex;flex-wrap:wrap;gap:10px;justify-content:center}.mm-difficulty-btn{padding:8px 20px;border-radius:50px;cursor:pointer;font-weight:700;font-size:13px;letter-spacing:.5px;border:2px solid var(--color-border, #e2e8f0);background:transparent;color:var(--color-text-secondary, #64748b);transition:all .15s}.mm-difficulty-btn.active{border-color:var(--color-primary, #6366f1);color:var(--color-primary, #6366f1);background:var(--color-primary-tint, #eef2ff)}.mm-available-count{margin:0;font-weight:600;color:var(--color-text-primary)}.mm-error-text{margin:0;color:#b91c1c;font-size:.9rem;text-align:center}.mm-play-header{display:grid;grid-template-columns:1fr auto 1fr;gap:12px;align-items:center}.mm-play-title{margin:0;text-align:center}.mm-stats{justify-self:end;display:flex;gap:14px;color:var(--color-text-secondary);font-size:.9rem;font-weight:600}.mm-grid-content{display:flex;justify-content:center}.mm-grid{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;align-items:flex-start;max-width:720px;margin:0 auto;padding:24px 0}.mm-card{width:160px;height:100px;perspective:600px;cursor:pointer;flex-shrink:0;position:relative;border:none;background:transparent;padding:0}.mm-card[aria-disabled=true]{cursor:default}.mm-card-inner{width:100%;height:100%;position:relative;transform-style:preserve-3d;transition:transform .3s ease}.mm-card-inner.is-flipped{transform:rotateY(180deg)}.mm-card-back,.mm-card-front{position:absolute;inset:0;border-radius:12px;backface-visibility:hidden;display:flex;align-items:center;justify-content:center;padding:10px;box-sizing:border-box;text-align:center}.mm-card-back{background:var(--color-surface, #fff);border:2px solid var(--color-border, #e2e8f0);font-size:2rem;color:var(--color-border, #e2e8f0)}.mm-card-front{transform:rotateY(180deg);flex-direction:column;gap:4px;text-align:center}.mm-card-front.is-term{background:#eff6ff;border:2px solid #3b82f6;color:#1d4ed8}.mm-card-front.is-def{background:#f5f3ff;border:2px solid #7c3aed;color:#5b21b6}.mm-card-badge{font-size:9px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:.7}.mm-card-label{margin:0;font-size:12px;font-weight:600;line-height:1.3}.mm-card--matched .mm-card-front{background:#f0fdf4!important;border-color:#16a34a!important;color:#15803d!important}@keyframes mm-shake{0%,to{transform:translate(0) rotateY(180deg)}20%{transform:translate(-6px) rotateY(180deg)}40%{transform:translate(6px) rotateY(180deg)}60%{transform:translate(-4px) rotateY(180deg)}80%{transform:translate(4px) rotateY(180deg)}}.mm-card--wrong .mm-card-inner{animation:mm-shake .4s ease}.mm-win-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100}.mm-win-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:42px 44px;background:var(--bg-card, #fff);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:0 32px 80px #00000026;min-width:320px}.mm-win-card h2{margin:0;font-size:2rem;color:var(--color-text-primary)}.mm-win-stars{margin:0;font-size:1.8rem}.mm-win-moves{margin:0;color:var(--color-text-secondary);font-weight:600}.mm-win-points{margin:0;font-weight:700;color:#15803d}@media(max-width:900px){.mm-play-header{grid-template-columns:1fr;justify-items:center}.mm-stats{justify-self:center}.mm-card{width:min(42vw,160px)}.mm-win-card{width:min(92vw,360px);min-width:0;padding:30px 22px}}:root{--standoff-red: #c0392b;--standoff-red-glow: rgba(192, 57, 43, .35);--standoff-blue: #2980b9;--standoff-blue-glow: rgba(41, 128, 185, .35);--standoff-gold: #f39c12;--standoff-dark: #1a1a2e;--standoff-arena-bg: #0f0f1a;--standoff-surface: #16213e;--standoff-border: #2a2a4a}.standoff-page{min-height:100%;color:var(--color-text-primary);display:flex;flex-direction:column;align-items:center;padding:16px;gap:16px;position:relative;background-image:url(/knights/background_1.png);background-size:cover;background-position:center top;background-repeat:no-repeat;background-attachment:fixed;image-rendering:pixelated}.standoff-page:before{content:"";position:fixed;inset:0;background:#00000073;z-index:0}.standoff-page>*{position:relative;z-index:1}.standoff-title{font-size:2rem;font-weight:800;letter-spacing:.05em;color:var(--standoff-gold);text-align:center;margin:0 0 4px}.standoff-subtitle{font-size:.95rem;color:var(--color-text-secondary);text-align:center;margin:0 0 20px}.standoff-game-list{display:flex;flex-direction:column;gap:8px;width:100%;max-width:480px;margin-bottom:16px}.standoff-game-item{padding:12px 16px;background:var(--standoff-surface);border:1px solid var(--standoff-border);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;font-weight:500;color:var(--color-text-primary);transition:border-color .15s,background .15s}.standoff-game-item:hover{border-color:var(--standoff-gold);background:#1e1e38}.standoff-game-item.selected{border-color:var(--standoff-gold);background:#2a2218;color:var(--standoff-gold)}.standoff-lobby-actions{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:480px}.standoff-loading{display:flex;flex-direction:column;align-items:center;gap:6px}.standoff-spinner{width:26px;height:26px;border-radius:50%;border:3px solid rgba(243,156,18,.25);border-top-color:var(--standoff-gold);animation:standoff-spin .8s linear infinite}@keyframes standoff-spin{to{transform:rotate(360deg)}}.standoff-lobby-buttons{display:flex;gap:12px}.standoff-join-form{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}.standoff-code-input{padding:10px 16px;background:var(--standoff-surface);border:1px solid var(--standoff-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-size:1.1rem;letter-spacing:.15em;text-align:center;width:180px}.standoff-code-input:focus{outline:none;border-color:var(--standoff-blue)}.standoff-error{font-size:.85rem;color:var(--standoff-red);margin:0}.standoff-btn{padding:10px 24px;border-radius:var(--radius-md);font-size:.9rem;font-weight:600;cursor:pointer;border:none;transition:opacity .15s,transform .1s;letter-spacing:.03em}.standoff-btn:hover{opacity:.88;transform:translateY(-1px)}.standoff-btn:active{transform:translateY(0)}.standoff-btn:disabled{opacity:.4;cursor:not-allowed;transform:none}.standoff-btn.primary{background:var(--standoff-gold);color:#1a1209}.standoff-btn.secondary{background:var(--standoff-blue);color:#fff}.standoff-btn.ghost{background:transparent;color:var(--color-text-secondary);border:1px solid var(--standoff-border)}.standoff-btn.ghost:hover{border-color:var(--standoff-gold);color:var(--standoff-gold)}.standoff-waiting{display:flex;flex-direction:column;align-items:center;gap:24px;margin-top:40px}.standoff-room-code{background:var(--standoff-surface);border:2px solid var(--standoff-gold);border-radius:var(--radius-lg);padding:24px 40px;text-align:center;animation:pulse-glow 2s ease-in-out infinite}.standoff-room-code-label{font-size:.75rem;letter-spacing:.15em;color:var(--color-text-secondary);margin:0 0 6px;text-transform:uppercase}.standoff-room-code-value{font-size:2.8rem;font-weight:900;letter-spacing:.2em;color:var(--standoff-gold);margin:0 0 6px;font-family:monospace}.standoff-room-code-hint{font-size:.85rem;color:var(--color-text-secondary);margin:0}@keyframes pulse-glow{0%,to{box-shadow:0 0 12px var(--standoff-gold)}50%{box-shadow:0 0 28px var(--standoff-gold),0 0 6px var(--standoff-gold)}}.standoff-arena{display:flex;align-items:stretch;gap:0;width:100%;max-width:700px;background:#0a0814b8;border:1px solid rgba(80,60,120,.5);border-radius:var(--radius-lg);overflow:hidden;min-height:320px}.standoff-arena-side{flex:1;display:flex;flex-direction:column;align-items:center;padding:16px 12px;gap:10px;transition:box-shadow .3s}.standoff-arena-side.red{background:linear-gradient(135deg,rgba(192,57,43,.08) 0%,transparent 60%);border-right:1px solid var(--standoff-border)}.standoff-arena-side.blue{background:linear-gradient(225deg,rgba(41,128,185,.08) 0%,transparent 60%)}.standoff-player-label{font-size:.7rem;font-weight:700;letter-spacing:.1em;color:var(--color-text-secondary);text-transform:uppercase;display:flex;align-items:center;gap:6px}.standoff-player-badge{font-size:.6rem;padding:2px 7px;border-radius:99px;font-weight:700}.standoff-player-badge.red{background:#c0392b33;color:#e57373;border:1px solid var(--standoff-red)}.standoff-player-badge.blue{background:#2980b933;color:#64b5f6;border:1px solid var(--standoff-blue)}.standoff-knight-container{width:160px;height:180px;display:flex;align-items:flex-end;justify-content:center}.standoff-vs{display:flex;align-items:center;justify-content:center;font-size:1.4rem;color:var(--standoff-gold);padding:0 4px;opacity:.6;align-self:center}.standoff-status-bar{display:flex;flex-direction:column;align-items:center;gap:4px}.standoff-charges{display:flex;gap:3px}.standoff-charge-pip{font-size:.85rem;transition:opacity .2s}.standoff-charge-pip.empty{opacity:.2}.standoff-charge-pip.filled{opacity:1}.standoff-defense-rate{font-size:.75rem;font-weight:600;padding:2px 8px;border-radius:99px}.standoff-defense-rate.high{background:#1d9e7526;color:#4caf50}.standoff-defense-rate.mid{background:#f39c1226;color:var(--standoff-gold)}.standoff-defense-rate.low{background:#c0392b26;color:#ef5350}.standoff-last-move{font-size:.7rem;color:var(--color-text-secondary);text-transform:capitalize}.standoff-move-selector{width:100%;max-width:700px;background:#161228d9;border:1px solid var(--standoff-border);border-radius:var(--radius-lg);padding:16px;color:#f6f8ff}.standoff-move-prompt{font-size:.8rem;letter-spacing:.08em;text-transform:uppercase;color:#cbd2ff;text-align:center;margin:0 0 12px}.standoff-move-buttons{display:flex;gap:10px;justify-content:center}.standoff-move-btn{flex:1;max-width:160px;display:flex;flex-direction:column;align-items:center;gap:4px;padding:14px 10px;border-radius:var(--radius-md);border:2px solid transparent;cursor:pointer;background:var(--standoff-arena-bg);transition:border-color .15s,background .15s,transform .1s;font-family:inherit}.standoff-move-btn:hover:not(:disabled){transform:translateY(-2px)}.standoff-move-btn:active:not(:disabled){transform:translateY(0)}.standoff-move-btn.disabled,.standoff-move-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.standoff-move-btn.attack{border-color:var(--standoff-red)}.standoff-move-btn.attack:hover:not(:disabled){background:#c0392b1f}.standoff-move-btn.defend{border-color:var(--standoff-blue)}.standoff-move-btn.defend:hover:not(:disabled){background:#2980b91f}.standoff-move-btn.charge{border-color:var(--standoff-gold)}.standoff-move-btn.charge:hover:not(:disabled){background:#f39c121f}.standoff-move-btn.selected{opacity:.6}.standoff-move-icon{font-size:1.4rem}.standoff-move-name{font-size:.85rem;font-weight:700;color:#fff}.standoff-move-desc{font-size:.7rem;color:#dce2ff;text-align:center}.standoff-waiting-msg{text-align:center;color:#d4dcff;font-size:.9rem;margin:0;padding:12px 0}.standoff-question-overlay{position:fixed;inset:0;background:#05040ceb;display:flex;align-items:center;justify-content:center;z-index:200;padding:16px}.standoff-question-card{background:var(--standoff-surface);border:1px solid var(--standoff-border);border-radius:var(--radius-lg);padding:28px 24px;max-width:520px;width:100%;display:flex;flex-direction:column;gap:16px;color:#f6f8ff}.standoff-question-move-label{font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--standoff-gold);margin:0;font-weight:700}.standoff-question-text{font-size:1.05rem;font-weight:600;color:#f8faff;margin:0;line-height:1.5}.standoff-answer-options{display:flex;flex-direction:column;gap:8px}.standoff-answer-option{display:flex;align-items:center;gap:12px;padding:11px 14px;background:var(--standoff-arena-bg);border:1px solid var(--standoff-border);border-radius:var(--radius-md);cursor:pointer;font-size:.9rem;color:#fff;text-align:left;font-family:inherit;transition:border-color .15s,background .15s}.standoff-answer-option:hover:not(:disabled){border-color:var(--standoff-gold);background:#f39c1212}.standoff-answer-option.selected{border-color:var(--standoff-gold);background:#f39c121f}.standoff-answer-option:disabled{cursor:default}.standoff-answer-key{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;border-radius:6px;background:var(--standoff-surface);border:1px solid var(--standoff-border);font-size:.75rem;font-weight:700;flex-shrink:0}.standoff-result-banner{width:100%;max-width:700px;padding:16px 20px;border-radius:var(--radius-lg);text-align:center;font-size:1.05rem;font-weight:700;animation:screen-flash .3s ease}.standoff-result-banner.hit{background:#c0392b33;border:1px solid var(--standoff-red);color:#ef9a9a}.standoff-result-banner.no-damage{background:#2980b91f;border:1px solid var(--standoff-border);color:var(--color-text-secondary)}@keyframes screen-flash{0%{opacity:0;transform:scale(.96)}50%{opacity:1;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}.standoff-game-over-overlay{position:fixed;inset:0;background:#05040cf0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;z-index:300}.standoff-winner-text{font-size:3rem;font-weight:900;color:var(--standoff-gold);letter-spacing:.05em;text-shadow:0 0 30px rgba(243,156,18,.5);margin:0}.standoff-defeat-text{font-size:3rem;font-weight:900;color:var(--standoff-red);letter-spacing:.05em;text-shadow:0 0 30px rgba(192,57,43,.5);margin:0}.standoff-points-msg{font-size:1.2rem;font-weight:700;color:var(--standoff-gold);margin:0}.standoff-game-over-buttons{display:flex;gap:12px}.standoff-log{width:100%;max-width:700px;background:#161228d9;border:1px solid var(--standoff-border);border-radius:var(--radius-lg);padding:12px 16px;max-height:160px;overflow-y:auto;color:#f6f8ff}.standoff-log-title{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 8px;font-weight:700}.standoff-log-empty{font-size:.8rem;color:#ccd4ff;margin:0;font-style:italic}.standoff-log-entry{font-size:.8rem;color:#f4f7ff;margin:0 0 4px;padding-bottom:4px;border-bottom:1px solid var(--standoff-border);line-height:1.4}.standoff-log-entry:last-child{border-bottom:none;margin-bottom:0}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input[type=text],input[type=email],input[type=password],input[type=number],input[type=search],input[type=date],input[type=time],input[type=datetime-local],input[type=url],input[type=tel],input[type=file],textarea,select{border-radius:var(--radius-md)!important;border:1px solid var(--color-border-strong)!important;padding:10px 12px!important;font-family:inherit!important;font-size:14px!important;color:var(--color-text-primary)!important;background-color:#fff!important;transition:border-color .15s,box-shadow .15s!important}input[type=text]:focus,input[type=email]:focus,input[type=password]:focus,input[type=number]:focus,input[type=search]:focus,input[type=date]:focus,input[type=time]:focus,input[type=datetime-local]:focus,input[type=url]:focus,input[type=tel]:focus,input[type=file]:focus,textarea:focus,select:focus{outline:none!important;border-color:var(--color-primary)!important;box-shadow:0 0 0 3px #6c5ce71a!important}textarea{resize:vertical;min-height:80px}input[type=text]:disabled,input[type=email]:disabled,input[type=password]:disabled,input[type=number]:disabled,input[type=search]:disabled,input[type=date]:disabled,input[type=time]:disabled,input[type=datetime-local]:disabled,input[type=url]:disabled,input[type=tel]:disabled,input[type=file]:disabled,textarea:disabled,select:disabled{background-color:#f5f5f5!important;cursor:not-allowed!important;opacity:.6!important}button,input[type=button],input[type=submit],input[type=reset],a.button{border-radius:var(--radius-md);font-family:inherit}button:disabled,input[type=button]:disabled,input[type=submit]:disabled,input[type=reset]:disabled{opacity:.5;cursor:not-allowed}button:not([class]),input[type=submit]:not([class]){background:var(--color-primary);color:#fff}button:not([class]):hover:not(:disabled),input[type=submit]:not([class]):hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 4px 12px #6c5ce74d}.App{min-height:auto}.page-container{min-height:auto;display:flex;justify-content:center;align-items:flex-start;padding:20px}.page-container--auth{align-items:center}.login-container{background:#fff;padding:40px;border-radius:var(--radius-lg);box-shadow:var(--shadow-card);width:100%;max-width:400px}.login-container h2{text-align:center;color:var(--color-text-primary);margin-bottom:24px;font-size:22px;font-weight:500}.login-form{display:flex;flex-direction:column;gap:20px}.login-form label{display:flex;flex-direction:column;gap:8px;font-weight:500;color:var(--color-text-primary)}.login-form input,.login-form select{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:14px;font-family:inherit;color:var(--color-text-primary);background:#fff;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.login-form input:focus,.login-form select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71a}.login-form input:disabled,.login-form select:disabled{background-color:#f5f5f5;cursor:not-allowed}.error{background-color:#fee;color:#c33;padding:12px;border-radius:8px;text-align:center;font-size:14px;border:1px solid #fcc}.alert-success{background:#e8f8ee;color:#1f7a3d;border:1px solid #99d4b0;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:500}.alert-error{background-color:#fee;color:#c33;padding:12px;border-radius:8px;text-align:center;font-size:14px;border:1px solid #fcc}.form-input{padding:10px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:14px;font-family:inherit;color:var(--color-text-primary);background:#fff;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.form-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71a}.form-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.signup-prompt{text-align:center;margin-top:20px;font-size:14px;color:var(--color-text-secondary)}.signup-link{background:none;border:none;color:var(--color-primary);cursor:pointer;font-weight:500;padding:0;text-decoration:none;transition:color .15s;font-size:14px}.signup-link:hover{color:var(--color-primary-dark);text-decoration:underline}.signup-link:disabled{opacity:.6;cursor:not-allowed;text-decoration:none}.info-text{margin-top:20px;padding:12px;background-color:#e3f2fd;border-radius:8px;text-align:center;font-size:13px;color:#1976d2}.dashboard-container{width:100%;max-width:1200px}.dashboard-header{color:var(--color-text-primary);padding:0 0 20px;display:flex;justify-content:space-between;align-items:center}.dashboard-header h1{font-size:22px;font-weight:500}.dashboard-header-actions{display:flex;align-items:center;gap:12px}.settings-button{padding:8px 16px;background:var(--color-primary-tint);color:var(--color-primary);border:1px solid var(--color-border);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s;display:inline-flex;align-items:center;justify-content:center}.settings-button:hover{background:#ddd6fe}.btn-primary{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s;display:inline-flex;align-items:center;justify-content:center}.btn-primary:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 4px 12px #6c5ce74d}.btn-primary:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.btn-neutral{padding:8px 16px;background:#f3f4f6;color:var(--color-text-secondary);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center}.btn-neutral:hover:not(:disabled){background:#e5e7eb;border-color:#9ca3af}.btn-neutral:disabled{opacity:.45;cursor:not-allowed}.btn-success{padding:8px 16px;background:#34a853;color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s;display:inline-flex;align-items:center;justify-content:center}.btn-success:hover:not(:disabled){opacity:.9}.btn-success:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.btn-danger{padding:8px 16px;background:#fff5f5;color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;display:inline-flex;align-items:center;justify-content:center}.btn-danger:hover:not(:disabled){background:var(--color-danger);color:#fff}.btn-danger:disabled{opacity:.5;cursor:not-allowed}.dashboard-content{padding:0}.welcome-card{background:var(--color-primary-tint);padding:20px 24px;border-radius:var(--radius-lg);margin-bottom:24px}.welcome-card h2{color:var(--color-text-primary);margin-bottom:6px;font-size:18px;font-weight:500}.role-badge{display:inline-block;background:var(--color-primary);color:#fff;padding:8px 16px;border-radius:var(--radius-full);font-size:12px;font-weight:500}.role-badge.teacher{background:var(--color-primary-dark)}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:20px}.dashboard-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;transition:box-shadow .15s,border-color .15s}.dashboard-card:hover{box-shadow:var(--shadow-card);border-color:var(--color-primary)}.dashboard-card h3{color:var(--color-text-primary);font-size:16px;font-weight:500;margin-bottom:10px}.dashboard-card p{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin-bottom:16px}.tab-navigation{display:flex;gap:10px;border-bottom:1px solid var(--color-border);margin-bottom:24px}.tab-button{padding:10px 16px;background:none;border:none;border-bottom:3px solid transparent;border-radius:var(--radius-md);font-size:13px;font-weight:400;color:var(--color-text-secondary);cursor:pointer;transition:color .15s,border-color .15s,background .15s;white-space:nowrap}.tab-button:hover{color:var(--color-primary);background:#6c5ce70d}.tab-button.active{color:var(--color-primary);border-bottom-color:var(--color-primary);font-weight:500}.tab-content{margin-top:20px}.tab-panel{animation:fadeIn .3s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.tab-panel h3{color:var(--color-text-primary);font-size:18px;font-weight:500;margin-bottom:16px}.empty-state{text-align:center;padding:48px 20px;background:#f9fafb;border-radius:var(--radius-lg)}.empty-state p{color:var(--color-text-secondary);font-size:14px;margin-bottom:16px}.primary-button{padding:8px 16px;background:var(--color-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,box-shadow .15s;display:inline-flex;align-items:center;justify-content:center}.primary-button:hover:not(:disabled){background:var(--color-primary-dark);box-shadow:0 4px 12px #6c5ce74d}.primary-button:disabled{opacity:.5;cursor:not-allowed;box-shadow:none}.classes-list,.materials-list,.review-section{background:#f9f9f9;padding:30px;border-radius:12px}.classes-list p,.materials-list p,.review-section p{color:#666;font-size:16px;line-height:1.6}.class-selection h3{color:#333;font-size:24px;margin-bottom:30px}.classes-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px}.class-card{background:var(--bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;transition:box-shadow .15s,border-color .15s}.class-card:hover{box-shadow:var(--shadow-card-hover);border-color:var(--color-primary)}.class-card h4{color:var(--color-text-primary);font-size:15px;font-weight:500;margin-bottom:8px}.class-card p{color:var(--color-text-secondary);font-size:13px;margin-bottom:16px}.class-card .created-date{font-size:12px;color:var(--color-text-muted);margin-top:12px;padding-top:12px;border-top:1px solid var(--color-border)}.classes-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.class-learning-view{width:100%}.class-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:1px solid var(--color-border)}.class-header h3{color:var(--color-text-primary);font-size:18px;font-weight:500;margin-bottom:4px}.class-header p{color:var(--color-text-secondary);font-size:14px}.class-header-actions{display:flex;align-items:center;gap:12px}.points-badge-compact{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;background:var(--color-points-tint);color:var(--color-text-primary);border:1px solid var(--color-border);border-radius:var(--radius-sm);box-sizing:border-box}.points-badge-compact-text{font-size:14px;font-weight:500;line-height:1;white-space:nowrap}.large-feature-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;gap:20px;margin-top:30px}.large-feature-button{padding:32px 20px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;min-height:160px;width:100%;height:100%}.large-feature-button:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--color-primary)}.large-feature-icon{font-size:48px}.large-feature-text{font-size:15px;font-weight:500;color:var(--color-text-primary);text-align:center}.student-stats-actions{display:flex;align-items:center;gap:12px;margin-bottom:20px}.student-stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.student-stats-card{background:var(--bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:16px;text-align:left;min-height:120px;display:flex;flex-direction:column;gap:8px}.student-stats-label{margin:0;font-size:13px;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.student-stats-value{margin:0;font-size:22px;line-height:1.1;font-weight:500;color:var(--color-text-primary)}.student-stats-help{margin:auto 0 0;font-size:13px;color:var(--color-text-muted)}.stats-tab-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px}.stats-tab-header h3{margin:0}.participation-table-wrap{overflow-x:auto;border:1px solid var(--color-border);border-radius:var(--radius-lg)}.participation-table{width:100%;border-collapse:collapse;font-size:14px}.participation-table th{background:var(--color-surface-subtle);padding:10px 14px;text-align:left;font-size:11px;font-weight:500;color:var(--color-text-secondary);border-bottom:1px solid var(--color-border)}.participation-table td{border-bottom:1px solid var(--color-border);padding:10px 14px;color:var(--color-text-primary);vertical-align:middle}.participation-table tbody tr:last-child td{border-bottom:none}.participation-table tbody tr:hover td{background:var(--color-surface-subtle)}.participation-name{display:block;font-weight:500;color:var(--color-text-primary)}.participation-id{display:block;font-size:12px;color:var(--color-text-muted);margin-top:2px}.participation-empty-hint{border-top:1px solid var(--color-border);font-size:13px;color:var(--color-text-secondary);text-align:center;margin:0}.student-class-goal-tracker{margin-top:24px;padding:24px;background:var(--color-primary-tint);border:1px solid var(--color-border);border-radius:var(--radius-lg)}.student-class-goal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.student-class-goal-title-group{display:flex;align-items:center;gap:16px}.student-class-goal-actions{margin-left:auto;display:flex;align-items:center;gap:10px}.student-class-goal-input{width:110px;height:40px;padding:8px 12px;border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:14px;font-weight:400;color:var(--color-text-primary);background:#fff;transition:border-color .15s,box-shadow .15s}.student-class-goal-input:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #6c5ce71a}@media(max-width:700px){.student-class-goal-header{flex-direction:column;align-items:stretch}.student-class-goal-actions{margin-left:0;width:100%}.student-class-goal-input{flex:1;width:auto}}.student-class-goal-coin{font-size:56px;line-height:1}.student-class-goal-header h4{color:var(--color-text-primary);font-size:18px;font-weight:500;margin-bottom:4px}.student-class-goal-header p{color:var(--color-text-secondary);font-size:14px}.student-class-goal-progress-text{color:var(--color-text-secondary);font-size:14px;font-weight:500;margin-bottom:10px}.student-class-goal-progress-bar{height:16px}.class-points-page{display:flex;flex-direction:column;gap:24px}.class-points-stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.class-points-stat-card{background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px}.class-points-stat-card h4{color:var(--color-text-secondary);font-size:12px;font-weight:500;margin-bottom:6px}.class-points-stat-card p{color:var(--color-text-primary);font-size:22px;font-weight:500}.class-points-sections-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.class-points-panel{background:var(--bg-card);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.class-points-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px;gap:10px}.class-points-panel-header h3{color:var(--color-text-primary);font-size:18px;font-weight:500}.class-points-activity-list,.class-points-shop-list{display:flex;flex-direction:column;gap:12px}.class-points-activity-item,.class-points-shop-item{border:1px solid var(--color-border);border-radius:var(--radius-md);padding:12px;display:flex;justify-content:space-between;gap:12px;align-items:flex-start}.class-points-activity-item h4,.class-points-shop-item h4{color:var(--color-text-primary);margin-bottom:4px;font-size:14px;font-weight:500}.class-points-activity-item p,.class-points-shop-item p{color:var(--color-text-secondary);font-size:13px}.class-points-activity-item small{color:var(--color-text-muted);font-size:12px}.class-points-delta{font-size:16px;font-weight:500;white-space:nowrap}.class-points-delta.positive{color:var(--color-active-text)}.class-points-delta.negative{color:#ef4444}.class-points-shop-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;min-width:150px}.class-points-shop-actions span{font-weight:500;color:var(--color-text-primary)}.class-points-shop-actions .select-class-button{width:100%}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:15px}.feature-button{padding:16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow .15s,border-color .15s;display:flex;flex-direction:column;align-items:center;gap:8px}.feature-button:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--color-primary)}.feature-icon{font-size:28px}.feature-button span:last-child{font-size:13px;font-weight:500;color:var(--color-text-primary);text-align:center}.feature-placeholder{background:var(--color-surface-subtle);padding:60px 30px;border-radius:var(--radius-md);text-align:center}.feature-placeholder p{color:var(--color-text-secondary);font-size:14px}.modal-overlay{position:fixed;inset:0;background:#00000080;display:flex;justify-content:center;align-items:center;z-index:1000}.modal-content{background:var(--bg-card);border-radius:var(--radius-lg);width:90%;max-width:460px;box-shadow:0 8px 32px #0000001f;overflow:hidden;display:flex;flex-direction:column;font-family:inherit}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:20px 24px;border-bottom:1px solid var(--color-border)}.modal-header h2{color:var(--color-text-primary);font-size:18px;font-weight:500;margin:0}.modal-close-button{background:none;border:none;font-size:28px;color:var(--color-text-muted);cursor:pointer;padding:4px 8px;border-radius:var(--radius-sm);line-height:1;transition:color .2s,background .2s}.modal-close-button:hover{color:var(--color-text-primary);background:#0000000d}.modal-body{padding:20px 24px}.modal-footer{display:flex;gap:12px;padding:16px 24px;border-top:1px solid var(--color-border);justify-content:flex-end}.class-form{display:flex;flex-direction:column;gap:20px}.class-form label{display:flex;flex-direction:column;gap:8px;font-weight:500;color:var(--color-text-primary)}.class-overview-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;margin-bottom:30px}.class-goal-section{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:20px;margin-bottom:20px;display:flex;flex-direction:column;gap:16px}.class-goal-header-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.class-goal-status-text{margin:0;font-size:14px;color:var(--color-text-secondary)}.class-goal-form{display:flex;gap:12px;align-items:end}.class-goal-form label{display:flex;flex-direction:column;gap:8px;font-weight:500;color:#555;flex:1}.class-goal-progress{display:flex;flex-direction:column;gap:8px}.overview-action-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:28px 20px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:box-shadow .15s,border-color .15s;font-family:inherit}.overview-action-card:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--color-primary)}.overview-action-icon{font-size:28px;color:var(--color-primary)}.overview-action-label{font-size:14px;font-weight:500;color:var(--color-text-primary)}.class-info-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;background:var(--color-surface-subtle);padding:20px;border-radius:var(--radius-md)}.info-item{display:flex;flex-direction:column;gap:4px}.info-item.full-width{grid-column:1 / -1}@media(max-width:768px){.class-goal-header-row{flex-direction:column;align-items:flex-start}}.info-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.info-value{font-size:14px;font-weight:500;color:var(--color-text-primary)}.class-code-modal-content{text-align:center}.class-code-modal-content p{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin-bottom:16px}.class-code-display{background:var(--color-surface-subtle);border:1px dashed var(--color-primary);border-radius:var(--radius-md);padding:20px;margin-bottom:16px}.class-code-display code{font-size:20px;font-weight:600;color:var(--color-text-primary);letter-spacing:1px;font-family:Segoe UI,sans-serif}.hint{font-size:13px!important;color:#999!important;margin-bottom:0!important}.students-modal-content .empty-state{padding:30px 20px}.modal-students-list{display:flex;flex-direction:column;gap:0}.modal-student-item{display:flex;justify-content:space-between;align-items:center;padding:12px 0;border-bottom:1px solid var(--color-border)}.modal-student-item:last-child{border-bottom:none}.student-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.student-enrolled{font-size:13px;color:var(--color-text-muted)}.students-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.student-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px;transition:border-color .15s}.student-card:hover{border-color:var(--color-primary)}.student-card h4{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.student-card p{font-size:13px;color:var(--color-text-secondary);margin-bottom:4px}.settings-section-card{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:18px;margin-bottom:16px}.settings-section-card h4{margin:0 0 8px;color:var(--color-text-primary);font-size:15px;font-weight:600}.settings-section-text{margin:0 0 14px;color:var(--color-text-secondary);font-size:13px;line-height:1.5}.settings-code-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}.settings-code-label{font-size:12px;color:var(--color-text-muted)}.settings-code-value{font-size:18px;letter-spacing:.12em;font-weight:600;color:var(--color-primary);background:var(--color-primary-tint);padding:4px 10px;border-radius:var(--radius-sm)}.settings-actions-row{display:flex;gap:10px;flex-wrap:wrap}.settings-student-list{display:flex;flex-direction:column;gap:10px}.settings-student-row{border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px;display:flex;align-items:center;justify-content:space-between;gap:10px}.settings-student-name{margin:0 0 4px;color:var(--color-text-primary);font-size:14px;font-weight:500}.settings-student-meta{margin:0;color:var(--color-text-muted);font-size:12px}.settings-danger-zone{border-color:#f5c2c7;background:#fff8f8}.settings-delete-input{width:100%;max-width:300px;margin-bottom:10px;padding:8px 10px;font-size:13px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm)}.stats-placeholder{text-align:center;padding:60px 20px;background:var(--color-surface-subtle);border-radius:var(--radius-md)}.stats-placeholder p{color:var(--color-text-secondary);font-size:14px;line-height:1.8}.class-card-button{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;cursor:pointer;display:flex;align-items:flex-start;justify-content:space-between;gap:16px;width:100%;font-family:inherit;transition:box-shadow .15s,border-color .15s}.class-card-button:hover{box-shadow:0 4px 12px #0000001a;border-color:var(--color-primary)}.class-card-content{flex:1;text-align:left}.class-card-button h4{color:var(--color-text-primary);font-size:16px;font-weight:500;margin-bottom:8px}.class-card-button p{color:var(--color-text-secondary);font-size:13px;margin-bottom:4px}.class-card-button .created-date{font-size:12px;color:var(--color-text-muted);margin-top:10px;padding-top:10px;border-top:1px solid var(--color-border)}.class-delete-button{background:none;border:none;font-size:20px;cursor:pointer;padding:6px 10px;border-radius:var(--radius-sm);transition:opacity .2s,transform .2s,background .2s;flex-shrink:0}.class-delete-button:hover{opacity:.7;transform:scale(1.1);background:#0000000d}.class-delete-button:active{transform:scale(.95)}.delete-confirmation-content{text-align:center;padding:20px 0}.delete-confirmation-content p{color:var(--color-text-secondary);font-size:14px;line-height:1.6;margin-bottom:12px}.delete-confirmation-content strong{color:var(--color-text-primary)}.warning-text{color:var(--color-danger)!important;font-size:13px!important;background:#ffebee;padding:12px;border-radius:var(--radius-sm);border-left:3px solid var(--color-danger);text-align:left;margin-top:16px!important}.account-settings-content{display:flex;flex-direction:column;gap:16px}.account-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:20px}.account-settings-actions{display:flex;justify-content:flex-end}.delete-confirm-label{display:flex;flex-direction:column;gap:8px;color:var(--color-text-secondary);font-weight:500;margin-top:16px;text-align:left}@media(max-width:768px){.large-feature-grid{grid-template-columns:repeat(2,1fr)}.large-feature-button{padding:30px;min-height:150px}.large-feature-icon{font-size:40px}.large-feature-text{font-size:16px}.student-stats-actions{flex-direction:column;align-items:stretch}.tab-navigation{overflow-x:auto;-webkit-overflow-scrolling:touch}.tab-button{padding:10px 16px;font-size:14px}.class-header{flex-direction:column;gap:15px;align-items:flex-start}.class-header-actions{width:100%;justify-content:space-between}.class-points-stats-grid{grid-template-columns:1fr 1fr}.class-points-sections-grid{grid-template-columns:1fr}.class-points-shop-actions{min-width:130px}.dashboard-header-actions{width:100%;justify-content:flex-end}.account-info-grid{grid-template-columns:1fr}.back-button{width:100%}.feature-grid{grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:12px}}@media(max-width:768px){.dashboard-header{flex-direction:column;gap:20px;text-align:center}.dashboard-header h1{font-size:24px}.dashboard-content{padding:20px}.dashboard-grid{grid-template-columns:1fr}.login-container{padding:30px 20px}}.material-upload{display:flex;flex-direction:column;gap:20px}.upload-error{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fee;color:#c33;padding:12px 16px;border-radius:8px;border:1px solid #fcc;font-size:14px}.error-dismiss{background:none;border:none;color:#c33;font-size:22px;cursor:pointer;padding:4px 8px;line-height:1;flex-shrink:0;border-radius:var(--radius-sm);transition:background .15s}.error-dismiss:hover{opacity:.7;background:#0000000d}.upload-dropzone{border:1px dashed var(--color-border-strong);border-radius:var(--radius-md);padding:40px 24px;text-align:center;cursor:pointer;background:var(--color-surface-subtle);transition:border-color .15s,background .15s;-webkit-user-select:none;user-select:none}.upload-dropzone:hover,.upload-dropzone.drag-over{border-color:var(--color-primary);background:#f5f3ff}.dropzone-icon{font-size:48px;margin-bottom:12px}.dropzone-title{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.dropzone-hint{font-size:13px;color:var(--color-text-muted)}.file-list{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:10px}.file-count{font-size:13px;font-weight:500;color:var(--color-primary);margin-bottom:4px}.file-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:10px 14px}.file-icon{font-size:20px;flex-shrink:0}.file-info{flex:1;display:flex;flex-direction:column;gap:2px;min-width:0}.file-name{font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-size{font-size:12px;color:var(--color-text-muted)}.file-remove{background:none;border:1px solid var(--color-border);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:18px;color:var(--color-text-muted);cursor:pointer;flex-shrink:0;line-height:1;padding:0;transition:color .15s,border-color .15s}.file-remove:hover{color:var(--color-danger);border-color:var(--color-danger)}.upload-btn{width:100%}.primary-button:disabled{opacity:.5;cursor:not-allowed;transform:none;box-shadow:none}.upload-progress-container{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:20px;display:flex;flex-direction:column;gap:16px}.upload-status-msg{font-size:14px;font-weight:500;color:var(--color-text-primary);text-align:center}.progress-item{display:flex;flex-direction:column;gap:6px}.progress-header{display:flex;justify-content:space-between;align-items:center}.progress-filename{font-size:13px;font-weight:500;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1}.progress-pct{font-size:13px;font-weight:500;color:var(--color-primary);margin-left:12px}.progress-bar-track{height:6px;background:var(--color-border);border-radius:4px;overflow:hidden}.progress-bar-fill{height:100%;background:var(--color-primary);border-radius:4px;transition:width .3s ease}.upload-success-container{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.upload-success-icon{font-size:48px}.upload-success-msg{font-size:16px;font-weight:500;color:var(--color-text-primary)}.upload-success-sub{font-size:14px;color:var(--color-text-secondary);max-width:420px;line-height:1.6}.upload-actions{display:flex;gap:12px;margin-top:8px;flex-wrap:wrap;justify-content:center}.upload-processing-container{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:48px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:16px}.processing-spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.processing-title{font-size:16px;font-weight:500;color:var(--color-text-primary)}.processing-sub{font-size:14px;color:var(--color-text-secondary);max-width:400px;line-height:1.6}.upload-complete-container{background:#f0fff4;border:1px solid #c3e6cb;border-radius:var(--radius-md);padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.complete-icon{font-size:40px}.complete-title{font-size:16px;font-weight:500;color:#1a7a3b}.complete-sub{font-size:14px;color:#4a7c59;max-width:420px;line-height:1.6}.processing-options-container{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:24px;display:flex;flex-direction:column;gap:16px}.processing-options-title{font-size:16px;font-weight:500;color:var(--color-text-primary);margin:0}.processing-options-sub{font-size:14px;color:var(--color-text-secondary);margin:0;line-height:1.5}.processing-options-form{display:flex;flex-direction:column;gap:16px}.processing-options-form label{display:flex;flex-direction:column;gap:6px;font-weight:500;color:var(--color-text-secondary);font-size:14px}.options-row,.class-form .options-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.class-form .options-row input{padding:10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;transition:border-color .15s;font-family:inherit}.class-form .options-row input:focus{outline:none;border-color:var(--color-primary)}.class-selector-section label{display:flex;flex-direction:column;gap:8px;font-weight:500;color:var(--color-text-secondary);font-size:14px}.class-selector-hint{font-size:13px;color:var(--color-text-muted);margin-top:4px}.materials-split-layout{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:start}.materials-split-panel{min-width:0}.unprocessed-materials-section{background:#fff9e6;border:1px solid #f5d766;border-radius:var(--radius-md);padding:20px;margin:0}.unprocessed-materials-section h4{font-size:15px;font-weight:500;color:#856404;margin-bottom:8px}.unprocessed-hint{font-size:14px;color:#856404;line-height:1.5;margin-bottom:16px}.materials-actions{display:flex;gap:12px;margin-bottom:20px;flex-wrap:wrap}.unprocessed-process-action{margin-top:16px}.processing-disclaimer{margin-top:10px;margin-bottom:0;font-size:13px;color:#856404}.unprocessed-materials-section .processing-options-container{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;margin-top:12px;gap:20px}.unprocessed-materials-section .processing-options-title{color:#333;margin-bottom:0}.unprocessed-materials-section .processing-options-sub{color:#666}.unprocessed-materials-section .processing-options-container label{display:flex;flex-direction:column;gap:8px;color:var(--color-text-secondary);font-size:14px;font-weight:500}.unprocessed-materials-list{display:flex;flex-direction:column;gap:10px}.material-item{display:flex;align-items:center;gap:12px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 16px;transition:border-color .15s,background-color .15s}.material-item:hover{border-color:var(--color-primary);background:var(--color-surface-subtle)}.material-item.selected{border-color:var(--color-primary);background:#f5f3ff}.material-item input[type=checkbox]{width:18px;height:18px;cursor:pointer;flex-shrink:0}.material-info{flex:1;display:flex;flex-direction:column;gap:4px;min-width:0}.material-title{font-size:14px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-meta{font-size:12px;color:var(--color-text-muted)}.material-status{font-size:13px;color:#856404;background:#fff3cd;padding:4px 12px;border-radius:12px;white-space:nowrap;flex-shrink:0}.material-delete-btn{background:none;border:1px solid var(--color-border);border-radius:50%;width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:16px;cursor:pointer;flex-shrink:0;transition:all .15s;padding:0}.material-delete-btn:hover{background:#fee;border-color:var(--color-danger)}.upload-section{margin-top:0;background:var(--color-surface-subtle);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px}.upload-section h4{font-size:15px;font-weight:500;color:var(--color-text-primary);margin-bottom:16px}.secondary-button{padding:8px 16px;background:#fff;color:var(--color-primary);border:1px solid var(--color-border-strong);border-radius:var(--radius-md);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s;display:inline-flex;align-items:center;justify-content:center}.secondary-button:hover{background:var(--color-primary-tint);border-color:var(--color-primary)}.secondary-button:active{background:#ddd6fe}.secondary-button:disabled{opacity:.5;cursor:not-allowed}@media(max-width:1100px){.materials-split-layout{grid-template-columns:1fr}}.review-panel{display:flex;flex-direction:column;gap:20px}.review-list-heading{font-size:11px;font-weight:500;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px}.review-materials-list{display:flex;flex-direction:column;gap:12px}.review-material-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px;cursor:pointer;width:100%;font-family:inherit;text-align:left;transition:border-color .15s,box-shadow .15s}.review-material-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card)}.review-material-info h4{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:4px}.review-material-info p{font-size:13px;color:var(--color-text-muted)}.review-pending-badge{font-size:13px;font-weight:500;color:var(--color-primary);white-space:nowrap;flex-shrink:0}.review-approved-badge{font-size:13px;font-weight:500;color:#34a853;white-space:nowrap;flex-shrink:0}.review-earned-badge{font-size:13px;font-weight:500;color:var(--color-text-muted);white-space:nowrap;flex-shrink:0}.class-assignment-list{display:flex;flex-direction:column;gap:10px}.class-assignment-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 16px;cursor:pointer;transition:border-color .15s;-webkit-user-select:none;user-select:none}.class-assignment-item:hover{border-color:var(--color-primary)}.class-assignment-item.assigned{border-color:#34a853;background:#f0faf3}.class-assignment-item input[type=checkbox]{width:18px;height:18px;accent-color:#34a853;flex-shrink:0;cursor:pointer}.class-assignment-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.class-assignment-name{font-size:14px;font-weight:500;color:var(--color-text-primary)}.class-assignment-grade{font-size:13px;color:var(--color-text-muted)}.class-assigned-badge{font-size:12px;font-weight:500;color:#34a853;background:#e6f4ea;border-radius:var(--radius-sm);padding:4px 10px;flex-shrink:0}.review-material-header{display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}.review-header-left{display:flex;align-items:center;gap:16px;min-width:0}.review-material-title{font-size:16px;font-weight:500;color:var(--color-text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.approve-button{padding:8px 20px;background:#34a853;color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:opacity .15s;white-space:nowrap;flex-shrink:0}.approve-button:hover:not(:disabled){opacity:.9}.approve-button:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.review-delete-btn{padding:8px 16px;background:#fff5f5;color:#b42318;border:1px solid #f2b8bd;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,color .15s;white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center}.review-delete-btn:hover:not(:disabled){background:#feecee;border-color:#e58b93;color:#912018}.review-delete-btn:disabled{opacity:.6;cursor:not-allowed}.review-header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}.review-delete-confirm{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.review-delete-confirm-text{font-size:14px;font-weight:500;color:#b42318}.review-delete-confirm-btn{padding:8px 16px;background:#dc2626;color:#fff;border:1px solid #dc2626;border-radius:var(--radius-sm);font-size:13px;font-weight:500;cursor:pointer;transition:background .15s,border-color .15s,opacity .15s;white-space:nowrap}.review-delete-confirm-btn:hover:not(:disabled){background:#b91c1c;border-color:#b91c1c}.review-delete-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.review-bottom-actions{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.review-sub-tabs{margin-bottom:0}.review-content{display:flex;flex-direction:column;gap:16px}.review-content-hint{font-size:13px;color:#888;font-style:italic}.review-loading{display:flex;flex-direction:column;align-items:center;gap:16px;padding:48px 24px;background:var(--color-surface-subtle);border-radius:var(--radius-md)}.review-loading p{font-size:14px;color:var(--color-text-secondary)}.review-inline-saved{display:block;width:fit-content;margin:8px auto 0;text-align:center;font-size:12px;font-weight:700;color:#1a7a3b;animation:reviewSavedFadeIn .2s ease-out}@keyframes reviewSavedFadeIn{0%{opacity:0;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}.flashcard-review-list{display:flex;flex-direction:column;gap:12px}.flashcard-review-item{display:flex;align-items:flex-start;gap:14px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:16px}.review-item-number{min-width:24px;height:24px;background:var(--color-primary);color:#fff;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;margin-top:2px}.card-fields{flex:1;display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.card-field{display:flex;flex-direction:column;gap:6px}.card-field-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted)}.card-field-input{padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;resize:vertical;line-height:1.5;transition:border-color .15s;color:var(--color-text-primary)}.card-field-input:focus{outline:none;border-color:var(--color-primary)}.quiz-title-display{font-size:14px;font-weight:500;color:var(--color-text-secondary);font-style:italic;padding:10px 14px;background:var(--color-surface-subtle);border-radius:var(--radius-sm);border-left:3px solid var(--color-primary)}.quiz-review-list{display:flex;flex-direction:column;gap:16px}.quiz-question-review{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:16px;display:flex;flex-direction:column;gap:12px}.question-text-edit-row{display:flex;align-items:flex-start;gap:8px}.question-text{font-size:14px;color:var(--color-text-primary);line-height:1.5}.question-text-input{flex:1;min-width:0;padding:8px 10px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;line-height:1.5;resize:vertical;color:var(--color-text-primary);transition:border-color .15s}.question-text-input:focus{outline:none;border-color:var(--color-primary)}.question-number{font-weight:600;color:var(--color-primary);margin-right:4px}.question-options{display:flex;flex-direction:column;gap:8px}.option-row{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .15s,background .15s}.option-row:hover{border-color:var(--color-primary);background:#f5f3ff}.option-row.correct{border-color:#34a853;background:#f0fff4}.option-correct-control{display:flex;align-items:center;gap:8px;margin-top:8px}.option-correct-control input[type=radio]{accent-color:#34a853;flex-shrink:0}.option-text-input{flex:1;min-width:0;padding:6px 8px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);font-size:14px;font-family:inherit;line-height:1.4;color:var(--color-text-primary);resize:vertical;transition:border-color .15s}.option-text-input:focus{outline:none;border-color:var(--color-primary)}.option-label{display:flex;align-items:flex-start;gap:10px;padding:8px 12px;border:1px solid var(--color-border);border-radius:var(--radius-sm);cursor:pointer;transition:border-color .15s,background .15s;font-size:14px;color:var(--color-text-primary);line-height:1.4}.option-label:hover{border-color:var(--color-primary);background:#f5f3ff}.option-label.correct{border-color:#34a853;background:#f0fff4}.option-label input[type=radio]{margin-top:2px;accent-color:#34a853;flex-shrink:0}.option-letter{font-weight:600;color:var(--color-primary);min-width:20px;flex-shrink:0}.option-label.correct .option-letter{color:#34a853}.option-text{flex:1}.game-review-list{display:flex;flex-direction:column;gap:10px}.game-pair-item{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);padding:12px 14px}.pair-term,.pair-def{flex:1;min-width:0}.pair-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:.5px;color:var(--color-text-muted);display:block;margin-bottom:4px}.pair-text{font-size:14px;color:var(--color-text-primary);line-height:1.4;margin:0}.pair-divider{font-size:16px;color:var(--color-border-strong);flex-shrink:0}.review-bottom-approve{margin-top:8px;padding:20px;background:#f0fff4;border:1px solid #c3e6cb;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.review-bottom-hint{font-size:14px;color:#4a7c59;flex:1;line-height:1.5}@media(max-width:768px){.card-fields{grid-template-columns:1fr}.review-material-header,.review-bottom-approve{flex-direction:column;align-items:flex-start}.approve-button{width:100%}}.student-material-list{display:flex;flex-direction:column;gap:12px;margin-top:8px}.student-card-progress{font-size:14px;font-weight:600;color:#888;text-align:center}.student-progress-bar{width:100%;height:6px;background:var(--color-border);border-radius:99px;overflow:hidden}.student-progress-fill{height:100%;background:var(--color-primary);border-radius:99px;transition:width .3s ease}.student-card-nav{display:flex;justify-content:center;gap:16px;margin-top:8px}.student-nav-btn.primary{background:var(--color-primary);color:#fff;border-color:transparent}.student-nav-btn.primary:hover:not(:disabled){background:var(--color-primary-dark);color:#fff}.student-flashcard-view{display:flex;flex-direction:column;gap:20px;align-items:center}.student-flip-card{width:100%;max-width:640px;height:260px;perspective:1000px;cursor:pointer;-webkit-user-select:none;user-select:none}.student-flip-inner{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform .45s ease}.student-flip-card.flipped .student-flip-inner{transform:rotateY(180deg)}.student-flip-front,.student-flip-back{position:absolute;inset:0;backface-visibility:hidden;-webkit-backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;border-radius:16px;padding:32px;text-align:center;box-shadow:0 4px 24px #0000001a}.student-flip-front{background:#fff;border:1px solid var(--color-border)}.student-flip-back{background:var(--color-primary);color:#fff;transform:rotateY(180deg)}.student-flip-side-label{font-size:11px;font-weight:500;text-transform:uppercase;letter-spacing:1px;opacity:.5}.student-flip-text{font-size:20px;font-weight:500;line-height:1.5}.student-flip-hint{font-size:12px;color:#bbb;margin-top:4px}.student-complete-banner{background:#f0faf3;border:1px solid #c3e6cb;border-radius:var(--radius-sm);padding:12px 20px;font-size:14px;font-weight:500;color:#2d7a3a;display:flex;align-items:center;gap:12px;flex-wrap:wrap;justify-content:center}.student-question-card{background:#fff;border:1px solid var(--color-border);padding:24px 28px;display:flex;flex-direction:column;box-shadow:var(--shadow-card)}.student-question-text{font-size:16px;color:var(--color-text-primary);line-height:1.5}.student-options-list{display:flex;flex-direction:column;gap:10px}.student-option-btn{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:14px;cursor:pointer;text-align:left;transition:border-color .15s,background .15s;font-family:inherit;color:var(--color-text-primary);width:100%}.student-option-btn:hover:not(.selected){border-color:var(--color-primary);background:#f5f3ff}.student-option-btn.selected{border-color:var(--color-primary);background:#f5f3ff;color:var(--color-text-primary)}.student-option-letter{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:50%;background:var(--color-surface-subtle);font-weight:500;font-size:13px;flex-shrink:0;color:var(--color-text-secondary)}.student-option-btn.selected .student-option-letter{background:var(--color-primary);color:#fff}.student-option-text{flex:1;line-height:1.4}.student-unanswered-hint{text-align:center;font-size:13px;color:#e67e22;font-weight:500;margin-top:-8px}.student-quiz-results{display:flex;flex-direction:column;align-items:center;gap:24px}.student-score-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:140px;height:140px;border-radius:50%;border:4px solid #34a853;background:#f0faf3}.student-score-circle.fail{border-color:var(--color-danger);background:#fff5f5}.student-score-pct{font-size:32px;font-weight:700;color:#2d7a3a;line-height:1}.student-score-circle.fail .student-score-pct{color:#c62828}.student-score-label{font-size:12px;font-weight:500;color:var(--color-text-secondary);margin-top:4px}.student-result-msg{font-size:16px;font-weight:500;color:var(--color-text-primary)}.student-results-review{width:100%;display:flex;flex-direction:column;gap:16px}.student-result-item{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:16px 20px;display:flex;flex-direction:column;gap:10px}.student-result-item.correct{border-color:#34a853}.student-result-item.incorrect{border-color:var(--color-danger)}.student-result-q{font-size:14px;color:var(--color-text-primary);line-height:1.5}.student-result-options{display:flex;flex-direction:column;gap:6px}.student-result-option{display:flex;align-items:center;gap:10px;padding:8px 14px;border-radius:8px;font-size:14px;color:#555;background:#fafafa}.student-result-option.correct-answer{background:#e6f4ea;color:#2d7a3a;font-weight:600}.student-result-option.wrong-answer{background:#fdecea;color:#c62828;font-weight:600}.student-correct-tick{margin-left:auto;color:#34a853;font-weight:700}.student-wrong-cross{margin-left:auto;color:#e53935;font-weight:700}.student-results-actions{display:flex;gap:16px;flex-wrap:wrap;justify-content:center}.points-settings-section,.points-students-section{margin-bottom:24px}.points-settings-section h3,.points-students-section h3{font-size:16px;font-weight:500;color:var(--color-text-primary);margin-bottom:6px}.points-settings-desc{font-size:14px;color:var(--color-text-secondary);margin-bottom:16px}.points-settings-form{background:var(--color-surface-subtle);border-radius:var(--radius-md);padding:20px}.points-settings-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:16px}.points-settings-grid label{display:flex;flex-direction:column;gap:6px;font-weight:500;color:var(--color-text-secondary);font-size:14px}.points-class-selector label{font-weight:500;color:var(--color-text-primary);white-space:nowrap}.points-students-list{overflow-x:auto}.points-table{width:100%;border-collapse:collapse;font-size:14px}.points-table th{text-align:left;padding:10px 14px;background:var(--color-surface-subtle);color:var(--color-text-secondary);font-weight:500;font-size:11px;border-bottom:1px solid var(--color-border);white-space:nowrap}.points-table td{padding:10px 14px;border-bottom:1px solid var(--color-border);vertical-align:middle}.points-student-row:hover td{background:#fafbff}.points-cell{text-align:right;font-variant-numeric:tabular-nums;color:#333}.points-balance{font-weight:600;color:var(--color-primary);font-size:14px}.student-code{color:var(--color-text-muted);font-size:12px}.points-adjust-btn,.points-adjust-cancel{padding:6px 14px;font-size:13px;background:#fff5f5;color:var(--color-danger);border:1px solid var(--color-danger);border-radius:var(--radius-sm);font-weight:500;cursor:pointer;transition:background .15s,color .15s}.points-adjust-cancel:hover:not(:disabled){background:var(--color-danger);color:#fff}.points-adjust-cancel:disabled{opacity:.5;cursor:not-allowed;background:var(--color-surface-subtle);border-bottom:1px solid var(--color-border)}.points-adjust-form{display:flex;flex-direction:column;gap:10px;padding:12px 4px}.points-adjust-mode{display:flex;gap:20px;font-size:14px}.points-adjust-mode label{display:flex;align-items:center;gap:6px;cursor:pointer;color:#333;font-weight:500}.points-adjust-input-row{display:flex;align-items:center;gap:10px}.points-amount-input{width:120px}.points-adjust-error{font-size:13px;padding:8px 12px;text-align:left}.empty-state-text{color:#666;font-size:15px;padding:24px 0}.points-class-split{display:grid;grid-template-columns:1fr;gap:24px;align-items:start}.points-split-panel{background:#fff;border:1px solid var(--color-border);border-radius:var(--radius-md);padding:20px;overflow:hidden}.points-split-panel-title{font-size:15px;font-weight:500;color:var(--color-text-primary);margin:0 0 16px;padding-bottom:10px;border-bottom:1px solid var(--color-border)}.store-reward-form{background:var(--color-surface-subtle);border-radius:var(--radius-sm);padding:16px;margin-bottom:20px}.store-reward-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.store-field-full{grid-column:1 / -1}.store-field-label{display:flex;flex-direction:column;gap:5px;font-size:13px;font-weight:500;color:var(--color-text-secondary)}.store-required{color:#e05}.store-quantity-row{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:2px}.store-qty-radio{display:flex;align-items:center;gap:5px;font-size:13px;font-weight:500;color:#444;cursor:pointer}.store-qty-input{width:80px}.store-rewards-list{display:flex;flex-direction:column;gap:10px}.store-reward-card{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:#fff;transition:opacity .2s}.store-reward-inactive{opacity:.55;background:#f7f7f7}.store-reward-info{flex:1;min-width:0}.store-reward-name{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-reward-desc{font-size:12px;color:var(--color-text-secondary);margin-bottom:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.store-reward-meta{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.store-reward-cost{font-size:13px;font-weight:500;color:var(--color-primary);background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:2px 8px}.store-reward-qty{font-size:12px;color:#777}.store-reward-badge-inactive{font-size:11px;font-weight:600;color:#999;background:#ececec;border-radius:5px;padding:2px 7px;text-transform:uppercase;letter-spacing:.04em}.store-reward-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.store-reward-toggle,.store-reward-delete{padding:5px 12px;font-size:12px}.danger-button{padding:8px 20px;border-radius:var(--radius-sm);border:1px solid var(--color-danger);background:#fff5f5;color:var(--color-danger);font-weight:500;font-size:13px;cursor:pointer;transition:background .15s,color .15s}.danger-button:hover:not(:disabled){background:var(--color-danger);color:#fff}.danger-button:disabled{opacity:.5;cursor:not-allowed}.redemptions-section{margin-top:28px;padding-top:24px;border-top:1px solid var(--color-border)}.redemptions-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--color-primary);color:#fff;font-size:12px;font-weight:500;border-radius:999px;min-width:20px;height:20px;padding:0 6px;margin-left:10px;vertical-align:middle}.redemptions-list{display:flex;flex-direction:column;gap:10px}.redemption-card{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px 16px;border:1.5px solid #e0e0e0;border-radius:10px;background:#fffdf5}.redemption-info{flex:1;min-width:0}.redemption-student{font-size:14px;font-weight:500;color:var(--color-text-primary);margin-bottom:2px}.redemption-reward{font-size:14px;font-weight:500;color:var(--color-primary);margin-bottom:2px}.redemption-desc{font-size:12px;color:var(--color-text-secondary);margin-bottom:6px}.redemption-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.redemption-time{font-size:12px;color:#888}.redemption-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.redemption-accept-btn,.redemption-refund-btn{padding:6px 14px;font-size:13px;min-width:80px}.purchases-list{display:flex;flex-direction:column;gap:12px}.purchase-item{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:12px 14px;border:1px solid #e6e6e6;border-radius:10px;background:#fff}.purchase-item-info{flex:1;min-width:0}.purchase-item-name{font-size:15px;font-weight:600;color:#333;margin-bottom:2px}.purchase-item-desc{font-size:13px;color:#666;margin-bottom:6px}.purchase-item-meta{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.purchase-item-cost{font-size:13px;font-weight:500;color:var(--color-primary);background:var(--color-primary-tint);border-radius:var(--radius-sm);padding:2px 8px}.purchase-item-date{font-size:12px;color:#888}.purchase-item-actions{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex-shrink:0}.purchase-use-btn{padding:7px 18px;font-size:13px}.purchase-status-badge{font-size:12px;font-weight:600;border-radius:6px;padding:4px 10px;white-space:nowrap}.purchase-status-used{background:#e8f8ee;color:#1f7a3d}.purchase-status-pending{background:#fff4e0;color:#b06000}.purchase-status-refunded{background:#f0f0f0;color:#666}@media(max-width:700px){.points-class-split{grid-template-columns:1fr}}.points-class-selector{flex-direction:column;align-items:flex-start}.points-class-selector select{width:100%;min-width:0}@media(min-width:769px){[style*="width: '100%', maxWidth: 'none', padding: '0 20px'"]{max-width:100%}}@media(max-width:768px){[style*="padding: '36px 24px'"]{padding:28px 20px!important}[style*="fontSize: 40"]{font-size:32px!important}[style*="gridTemplateColumns: 'repeat(auto-fit, minmax(220px, 1fr))"]{grid-template-columns:repeat(auto-fill,minmax(160px,1fr))!important}}
