:root{--clr-brand: #2563eb;--clr-brand-dark: #1d4ed8;--clr-primary: #2563eb;--clr-primary-dark: #1d4ed8;--clr-student: #10b981;--clr-student-dark: #059669;--clr-teacher: #0284c7;--clr-teacher-dark: #0369a1;--clr-success: #22c55e;--clr-danger: #ef4444;--clr-warning: #f59e0b;--clr-surface: #ffffff;--clr-surface-muted: #f0f4ff;--clr-surface-subtle: #e8eeff;--clr-border: #dde3f0;--clr-border-light: rgba(221,227,240,.6);--clr-text: #0a0f1e;--clr-text-muted: #4b5680;--clr-text-faint: #8892b0;--clr-text-inverse: #ffffff;--sp-1: .25rem;--sp-2: .5rem;--sp-3: .75rem;--sp-4: 1rem;--sp-5: 1.25rem;--sp-6: 1.5rem;--sp-8: 2rem;--sp-10: 2.5rem;--sp-12: 3rem;--sp-14: 3.5rem;--sp-16: 4rem;--sp-20: 5rem;--sp-24: 6rem;--r-sm: .5rem;--r-md: 1rem;--r-lg: 1.25rem;--r-xl: 1.75rem;--r-2xl: 2.5rem;--r-3xl: 3rem;--r-full: 9999px;--shadow-card: 0 24px 64px -12px rgba(37,99,235,.12), 0 4px 16px -4px rgba(37,99,235,.06);--shadow-btn: 0 8px 24px rgba(37,99,235,.25);--shadow-sm: 0 1px 4px rgba(10,15,30,.06);--shadow-md: 0 4px 20px rgba(10,15,30,.1);--shadow-lg: 0 12px 40px rgba(10,15,30,.14);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--font-family: "Montserrat", sans-serif;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-hero: clamp(2.75rem, 7vw, 4.5rem);--clr-mascot: #f59e0b;--clr-mascot-light: #fef3c7;--track-inf: #0d9488;--track-inf-light: #ccfbf1;--track-inf-dark: #115e59;--track-think: #7c3aed;--track-think-light: #ede9fe;--track-think-dark: #5b21b6;--track-ai: #ea580c;--track-ai-light: #ffedd5;--track-ai-dark: #9a3412;--kid-text: 1.125rem;--kid-tap: 3.5rem;--kid-tap-lg: 4.5rem;--student-bg-from: #3730a3;--student-bg-to: #1e40af;--clr-violet: #4f46e5;--clr-violet-dark: #4338ca;--clr-violet-light: #e0e7ff;--clr-amber: #fbbf24;--clr-amber-dark: #f59e0b;--clr-sky: #0284c7;--clr-sky-dark: #0369a1;--clr-sky-light: #dbeafe;--clr-emerald: #10b981;--clr-emerald-dark: #059669;--clr-emerald-light: #d1fae5;--adm-bg: #060b18;--adm-surface: #0f172a;--adm-surface-2: #060b18;--adm-border: #1e2d4a;--adm-text: #f1f5f9;--adm-text-muted: #8892b0;--adm-text-faint: #4b5680;--adm-sky: #60a5fa;--adm-sky-hover: #3b82f6;--adm-emerald: #10b981;--adm-emerald-hover: #059669;--adm-violet: #7c3aed;--adm-violet-hover: #6d28d9;--adm-rose: #f43f5e}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat-cyrillic.woff2) format("woff2");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat-cyrillic-ext.woff2) format("woff2");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Montserrat;font-style:normal;font-weight:400 800;font-display:swap;src:url(/fonts/montserrat-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);color:var(--clr-text);line-height:1.6;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}.hidden{display:none!important}button{font-family:inherit;cursor:pointer;border:none;background:none}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);clip-path:inset(50%);border:0;white-space:nowrap}.skip-link{position:absolute;top:var(--sp-4);left:var(--sp-4);z-index:10000;padding:var(--sp-3) var(--sp-4);background:var(--clr-brand-dark);color:var(--clr-text-inverse);font-weight:600;font-size:var(--font-size-sm);border-radius:var(--r-sm);clip:rect(1px,1px,1px,1px);clip-path:inset(50%);width:1px;height:1px;overflow:hidden;white-space:nowrap;transition:clip-path var(--transition-fast)}.skip-link:focus-visible{clip:auto;clip-path:none;width:auto;height:auto;overflow:visible}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}:focus-visible{outline:3px solid var(--clr-brand);outline-offset:2px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);font-family:var(--font-family);font-weight:700;border:none;cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),border-color var(--transition-base),box-shadow var(--transition-base),transform var(--transition-fast)}.btn:hover:not(:disabled){box-shadow:var(--shadow-btn)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:focus-visible{outline:3px solid rgba(37,99,235,.65);outline-offset:2px}.btn:disabled{cursor:not-allowed;opacity:.65}.modal-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#00000080;align-items:center;justify-content:center;animation:fadeIn var(--transition-slow)}.modal-overlay:not(.hidden){display:flex}.modal-content{animation:slideUp var(--transition-slow)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.index-page{min-height:100vh;background:linear-gradient(160deg,#e8eeff,#f0f4ff,#dbeafe)}.site-header{background:#fff;border-bottom:1px solid var(--clr-border);padding:var(--sp-3) var(--sp-6);box-shadow:0 1px 3px #0000000f;position:sticky;top:0;z-index:100}.site-header__inner{max-width:80rem;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.site-header__logo{font-weight:800;font-size:1.1rem;color:var(--clr-text);text-decoration:none;white-space:nowrap;flex-shrink:0}.site-header__logo:hover{color:var(--clr-primary)}.site-header__nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-1) var(--sp-4);flex:1}.site-header__link{font-size:var(--font-size-sm);font-weight:600;color:var(--clr-text-muted);text-decoration:none;transition:color var(--transition-fast);white-space:nowrap}.site-header__link:hover,.site-header__link--active{color:var(--clr-primary)}.site-header__cta{font-size:var(--font-size-sm);font-weight:700;color:#fff;text-decoration:none;background:var(--clr-primary);padding:6px var(--sp-4);border-radius:var(--r-full);white-space:nowrap;flex-shrink:0;transition:background var(--transition-fast),box-shadow var(--transition-fast);box-shadow:0 2px 8px #3b82f659}.site-header__cta:hover{background:var(--clr-primary-dark);box-shadow:0 4px 12px #3b82f673}.site-header__burger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:4px;flex-shrink:0}.site-header__burger span{display:block;width:22px;height:2px;background:var(--clr-text);border-radius:2px;transition:transform .2s ease,opacity .2s ease}@media(max-width:640px){.site-header{padding:var(--sp-3) var(--sp-4)}.site-header__burger{display:flex}.site-header__cta{display:none}.site-header__nav{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;background:#fff;border-bottom:1px solid var(--clr-border);box-shadow:0 4px 16px #00000014;padding:var(--sp-2) var(--sp-4) var(--sp-3);gap:0}.site-header__link{padding:var(--sp-3) 0;border-bottom:1px solid var(--clr-border);font-size:var(--font-size-base)}.site-header__link:last-child{border-bottom:none}.site-header.is-open .site-header__nav{display:flex}.site-header.is-open .site-header__burger span:nth-child(1){transform:translateY(7px) rotate(45deg)}.site-header.is-open .site-header__burger span:nth-child(2){opacity:0}.site-header.is-open .site-header__burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}}.site-footer{padding:var(--sp-8) var(--sp-4);color:var(--clr-text-muted);font-size:var(--font-size-sm)}.site-footer__inner{max-width:42rem;margin:0 auto}.site-footer__nav{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);margin-bottom:var(--sp-6);text-align:center}@media(min-width:640px){.site-footer__nav{grid-template-columns:repeat(3,1fr);text-align:left}}.footer-col__heading{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--clr-text-muted);margin-bottom:var(--sp-2)}.footer-col__list{list-style:none;display:flex;flex-direction:column;gap:var(--sp-2)}.footer-col__list a{color:var(--clr-text-muted);font-size:var(--font-size-sm);transition:color var(--transition-fast)}.footer-col__list a:hover{color:var(--clr-text)}.footer-col--wide{grid-column:span 2;text-align:center}@media(min-width:640px){.footer-col--wide{grid-column:span 1}}.site-footer__copy{border-top:1px solid var(--clr-border);padding-top:var(--sp-4);text-align:center;font-size:var(--font-size-xs);color:var(--clr-text-faint)}.student-page{background:linear-gradient(135deg,var(--student-bg-from) 0%,var(--student-bg-to) 100%);min-height:100vh}.student-screen{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--sp-5);position:relative}.student-back{position:absolute;top:var(--sp-4);left:var(--sp-4);color:#ffffff80;font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--sp-1);transition:color var(--transition-fast);text-decoration:none}.student-back:hover{color:#ffffffd9}.student-back:focus-visible{outline:3px solid rgba(255,255,255,.6);outline-offset:4px;border-radius:var(--r-sm)}.teacher-auth-page .student-back{color:var(--clr-text-muted)}.teacher-auth-page .student-back:hover{color:var(--clr-text)}.entry-logo{text-align:center;margin-bottom:var(--sp-8)}.entry-logo__icon{font-size:4.5rem;margin-bottom:var(--sp-3);display:block;line-height:1}.entry-logo__title{font-size:var(--font-size-4xl);font-weight:800;color:#fff;letter-spacing:-.02em}.entry-logo__sub{color:#fff9;font-size:var(--font-size-sm);margin-top:var(--sp-2)}.student-card{width:100%;max-width:24rem;background:#fff;border-radius:var(--r-2xl);box-shadow:0 25px 60px -15px #00000059;padding:var(--sp-8) var(--sp-6)}.card-label{text-align:center;color:var(--clr-text-muted);font-weight:600;font-size:var(--font-size-base);margin-bottom:var(--sp-5)}.code-input{width:100%;padding:var(--sp-4);border-radius:var(--r-xl);border:2px solid var(--clr-border);font-family:var(--font-family);font-size:2rem;font-weight:800;letter-spacing:.15em;text-align:center;text-transform:uppercase;color:var(--clr-text);margin-bottom:var(--sp-3);transition:border-color var(--transition-base),box-shadow var(--transition-base)}.code-input::placeholder{font-size:var(--font-size-base);font-weight:400;letter-spacing:.02em;text-transform:none;color:var(--clr-text-faint)}.code-input:focus-visible{outline:none;border-color:var(--clr-violet);box-shadow:0 0 0 4px var(--clr-violet-light)}.code-status{color:#e11d48;font-size:var(--font-size-sm);text-align:center;min-height:1.25rem;margin-bottom:var(--sp-3)}.code-success{color:#059669;font-size:var(--font-size-sm);text-align:center;min-height:1.25rem;margin-bottom:var(--sp-3)}.btn-violet{width:100%;padding:var(--sp-5) var(--sp-4);border-radius:var(--r-xl);background:var(--clr-violet);color:#fff;font-size:var(--font-size-xl);font-weight:800;transition:background-color var(--transition-base)}.btn-violet:hover:not(:disabled){background:var(--clr-violet-dark)}.btn-violet:focus-visible{outline:3px solid rgba(124,58,237,.5);outline-offset:2px}.btn-slate{width:100%;margin-top:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-xl);background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-size:var(--font-size-sm);font-weight:600;transition:background-color var(--transition-fast)}.btn-slate:hover{background:var(--clr-border)}.btn-slate:focus-visible{outline:3px solid rgba(100,116,139,.4);outline-offset:2px}.no-code-btns{display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);width:100%}.btn-practice-toggle{width:100%;max-width:24rem;margin-top:var(--sp-2);padding:var(--sp-4);border-radius:var(--r-xl);background:#ffffff2e;border:1px solid rgba(255,255,255,.28);color:#fff;font-size:var(--font-size-base);font-weight:700;display:flex;align-items:center;justify-content:center;gap:var(--sp-2);transition:background-color var(--transition-fast)}.btn-practice-toggle:hover{background:#ffffff47}.btn-practice-toggle:focus-visible{outline:3px solid rgba(255,255,255,.6);outline-offset:2px}.btn-practice-toggle--demo{background:#fbbf2438;border-color:#fbbf2466}.btn-practice-toggle--demo:hover{background:#fbbf2459}#hub-menu{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);width:100%}.hub-btn{width:100%;max-width:24rem;padding:var(--sp-4) var(--sp-5);border-radius:var(--r-2xl);border:none;color:#fff;display:flex;align-items:center;gap:var(--sp-3);transition:filter var(--transition-fast),transform .1s;cursor:pointer;text-align:left}.hub-btn:hover{filter:brightness(1.08)}.hub-btn:active{transform:scale(.98)}.hub-btn:focus-visible{outline:3px solid rgba(255,255,255,.7);outline-offset:3px}.hub-btn i{font-size:1.5rem;flex-shrink:0}.hub-btn__label{font-size:var(--font-size-lg);font-weight:800;line-height:1.2}.hub-btn__sub{font-size:var(--font-size-xs);opacity:.85;margin-top:2px}.hub-btn__label,.hub-btn__sub{display:block}.hub-btn--primary{background:linear-gradient(135deg,#10b981,#059669)}.hub-btn--demo{background:linear-gradient(135deg,#f59e0b,#d97706)}.hub-olympiad-link{margin-top:var(--sp-1);color:#ffffffd9;font-size:var(--font-size-sm);font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding-bottom:1px;transition:color var(--transition-fast)}.hub-olympiad-link:hover{color:#fff;border-color:#fff}.oe-event-confirm{display:flex;align-items:center;gap:var(--sp-3);background:#f0fdf4;border:1px solid #bbf7d0;border-radius:var(--r-xl);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-4)}.oe-event-confirm__icon{font-size:1.5rem}.oe-event-confirm__title{font-weight:700;color:#166534;font-size:var(--font-size-base)}.oe-event-confirm__meta{font-size:var(--font-size-sm);color:#15803d;margin-top:2px}.oe-rules{background:#fafafa;border:1px solid #e2e8f0;border-radius:var(--r-xl);padding:var(--sp-4);margin-bottom:var(--sp-4)}.oe-rules__heading{font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-3);display:flex;align-items:center;gap:var(--sp-2)}.oe-rules__list{list-style:disc;padding-left:var(--sp-5);display:flex;flex-direction:column;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--clr-text-muted);line-height:1.5}.oe-rules__list li strong{color:var(--clr-text)}.oe-agree{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);border-radius:var(--r-xl);border:2px solid #e2e8f0;background:#fff;cursor:pointer;margin-bottom:var(--sp-4);transition:border-color var(--transition-fast)}.oe-agree:has(.oe-agree__checkbox:checked){border-color:#7c3aed;background:#faf5ff}.oe-agree__checkbox{width:20px;height:20px;accent-color:#7c3aed;flex-shrink:0;margin-top:2px;cursor:pointer}.oe-agree__text{font-size:var(--font-size-sm);font-weight:600;color:var(--clr-text);line-height:1.5}.practice-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-5)}.practice-header__title{font-weight:700;font-size:var(--font-size-base);color:var(--clr-text)}.practice-header__close{color:var(--clr-text-faint);font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--sp-1);transition:color var(--transition-fast);padding:var(--sp-1)}.practice-header__close:hover{color:var(--clr-text-muted)}.selector-grid{display:grid;gap:var(--sp-2);margin-bottom:var(--sp-4)}.selector-grid--grade{grid-template-columns:repeat(4,1fr)}.selector-grid--diff{grid-template-columns:repeat(3,1fr)}.selector-btn{padding:var(--sp-4) var(--sp-2);border-radius:var(--r-lg);background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-family:var(--font-family);font-weight:800;font-size:var(--font-size-xl);transition:background-color var(--transition-fast),color var(--transition-fast);cursor:pointer;border:2px solid transparent}.selector-btn--diff{font-size:var(--font-size-sm);font-weight:700;padding:var(--sp-3) var(--sp-2)}.selector-btn:hover{background:var(--clr-border)}.selector-btn[aria-pressed=true]{background:var(--clr-amber)!important;color:#1e293b!important;border-color:var(--clr-amber-dark)!important}.btn-start{width:100%;padding:var(--sp-4);border-radius:var(--r-xl);background:var(--clr-amber);color:#1e293b;font-size:var(--font-size-base);font-weight:800;transition:background-color var(--transition-base)}.btn-start:hover:not(:disabled){background:var(--clr-amber-dark)}.btn-start:disabled{opacity:.4;cursor:not-allowed}.student-footer{margin-top:auto;padding:var(--sp-6) 0;text-align:center;color:#fff6;font-size:var(--font-size-xs)}.student-footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.student-footer__links a{color:#fff6;transition:color var(--transition-fast)}.student-footer__links a:hover{color:#ffffffb3}.event-info-card{width:100%;max-width:28rem;background:#ffffff21;border-radius:var(--r-xl);padding:var(--sp-4) var(--sp-5);margin-bottom:var(--sp-6);text-align:center}.event-info-card__title{font-weight:800;color:#fff;font-size:var(--font-size-lg)}.event-info-card__meta{color:#ffffffb3;font-size:var(--font-size-sm);margin-top:var(--sp-1)}.actions-prompt{color:#fffc;font-weight:600;text-align:center;font-size:var(--font-size-base);margin-bottom:var(--sp-2)}.action-list{width:100%;max-width:28rem;display:flex;flex-direction:column;gap:var(--sp-4)}.action-card{width:100%;padding:var(--sp-8) var(--sp-6);border-radius:var(--r-2xl);font-family:var(--font-family);font-size:var(--font-size-xl);font-weight:800;display:flex;flex-direction:column;align-items:center;gap:var(--sp-2);box-shadow:0 8px 32px #00000026;cursor:pointer;border:none;transition:transform var(--transition-fast),box-shadow var(--transition-base)}.action-card:hover{transform:translateY(-2px);box-shadow:0 14px 40px #0003}.action-card:active{transform:translateY(0)}.action-card__icon{font-size:2.5rem}.action-card__sub{font-size:var(--font-size-sm);font-weight:600;opacity:.7}.action-card--demo{background:var(--clr-amber);color:#1e293b}.action-card--demo .action-card__sub{color:#44403c}.action-card--olympiad{background:#fff;color:var(--clr-violet)}.action-card--olympiad .action-card__sub{color:#a78bfa;opacity:1}.action-card--olympiad.btn-disabled{opacity:.4;pointer-events:none}.btn-text{margin-top:var(--sp-8);color:#ffffff80;font-size:var(--font-size-sm);font-weight:600;display:flex;align-items:center;gap:var(--sp-2);transition:color var(--transition-fast)}.btn-text:hover{color:#ffffffd9}.quiz-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:none;flex-direction:column;background:var(--clr-surface-muted)}.quiz-overlay.active{display:flex}.quiz-header{background:#fff;border-bottom:1px solid var(--clr-border);padding:var(--sp-3) var(--sp-4);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.quiz-header__left,.quiz-header__right{display:flex;align-items:center;gap:var(--sp-3)}.quiz-badge{font-size:var(--font-size-xs);font-weight:700;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full)}.quiz-progress-text{font-size:var(--font-size-sm);font-weight:700;color:var(--clr-text-muted)}.quiz-timer{display:none;align-items:center;gap:var(--sp-2);background:#ffedd5;color:#c2410c;font-weight:700;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-lg);font-size:var(--font-size-base)}.quiz-timer.visible{display:flex}.quiz-timer.urgent{background:#ffe4e6;color:#be123c}.btn-quiz-quit{background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-size:var(--font-size-sm);font-weight:700;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);transition:background-color var(--transition-fast)}.btn-quiz-quit:hover{background:var(--clr-border)}.quiz-progress-bar-wrap{width:100%;height:.5rem;background:#e2e8f0}.quiz-progress-bar{height:100%;background:var(--clr-violet);transition:width .3s ease}.quiz-body{flex:1;overflow-y:auto;padding:var(--sp-4);display:flex;flex-direction:column;align-items:center;padding-top:var(--sp-4)}.quiz-inner{width:100%;max-width:32rem}.quiz-question-card{background:#fff;border-radius:var(--r-2xl);box-shadow:0 4px 16px #0f172a14;border:1px solid var(--clr-border);padding:var(--sp-5);margin-bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-4)}.quiz-question-text{flex:1;font-size:var(--font-size-xl);font-weight:700;color:var(--clr-text);line-height:1.4}@media(min-width:640px){.quiz-question-text{font-size:var(--font-size-2xl)}}.quiz-image{width:9rem;flex-shrink:0;border-radius:var(--r-xl);object-fit:contain;cursor:zoom-in;border:1px solid var(--clr-border);box-shadow:var(--shadow-sm);transition:opacity var(--transition-fast)}.quiz-image:hover{opacity:.88}@media(min-width:640px){.quiz-image{width:11rem}}.quiz-code{background:#0f172a;color:#6ee7b7;border-radius:var(--r-xl);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);font-size:var(--font-size-sm);font-family:Courier New,Courier,monospace;line-height:1.6;overflow-x:auto;white-space:pre-wrap}.quiz-options{margin-bottom:var(--sp-4)}.quiz-options--grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3)}@media(min-width:640px){.quiz-options--grid{grid-template-columns:1fr 1fr}}.quiz-options--two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-4)}.quiz-options--stack{display:flex;flex-direction:column;gap:var(--sp-3)}.quiz-feedback-wrap{text-align:center;min-height:3rem}.quiz-feedback{font-weight:700;font-size:var(--font-size-lg);margin-bottom:var(--sp-1)}.quiz-feedback--correct{color:#059669}.quiz-feedback--incorrect{color:#e11d48}.quiz-explanation{font-size:var(--font-size-sm);color:var(--clr-text-muted)}.btn-next{background:var(--clr-violet);color:#fff;font-weight:800;font-size:var(--font-size-lg);padding:var(--sp-3) var(--sp-10);border-radius:var(--r-xl);margin-top:var(--sp-2);display:inline-block;transition:background-color var(--transition-base)}.btn-next:hover{background:var(--clr-violet-dark)}.btn-next.hidden{display:none!important}.quiz-option{display:flex;align-items:center;justify-content:space-between;width:100%;text-align:left;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-xl);border:2px solid var(--clr-border);background:#fff;color:var(--clr-text);font-family:var(--font-family);font-weight:600;font-size:var(--font-size-base);cursor:pointer;transition:border-color var(--transition-fast),background-color var(--transition-fast),color var(--transition-fast)}.quiz-option:hover:not(:disabled){border-color:#a78bfa;background:#f5f3ff}.quiz-option:focus-visible{outline:none;box-shadow:0 0 0 3px #7c3aed66}.quiz-option--correct{border-color:#34d399!important;background:#ecfdf5!important;color:#065f46!important}.quiz-option--incorrect{border-color:#f87171!important;background:#fff1f2!important;color:#9f1239!important}.quiz-option--selected{border-color:#7c3aed!important;background:#f5f3ff!important;color:#4c1d95!important}.quiz-check{width:100%;padding:var(--sp-4) var(--sp-5);border-radius:var(--r-xl);background:#7c3aed;color:#fff;font-family:var(--font-family);font-weight:700;font-size:var(--font-size-base);margin-top:var(--sp-2);transition:background-color var(--transition-base);cursor:pointer;border:none}.quiz-check:hover:not(:disabled){background:var(--clr-violet-dark)}.quiz-check:disabled{opacity:.6;cursor:not-allowed}.quiz-overlay,#mission-quiz{--game-blue: #dbeafe;--game-blue-text: #1d4ed8;--game-yellow: #fef3c7;--game-yellow-text: #b45309;--game-green: #dcfce7;--game-green-text: #15803d;--game-pink: #fce7f3;--game-pink-text: #be185d}html.mission-active,body.mission-active{overflow:hidden}body.mission-active #mission-quiz:not(.hidden){position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;display:grid;grid-template-rows:auto auto auto minmax(0,1fr) auto;gap:clamp(var(--sp-3),1.4vw,var(--sp-5));width:100vw;max-width:none;min-height:100dvh;margin:0;padding:clamp(var(--sp-3),2vw,var(--sp-8));overflow:hidden;background:radial-gradient(circle at 12% 10%,rgba(250,204,21,.34),transparent 24rem),radial-gradient(circle at 88% 14%,rgba(45,212,191,.28),transparent 22rem),radial-gradient(circle at 16% 88%,rgba(244,114,182,.2),transparent 24rem),linear-gradient(135deg,#fff7ed,#eff6ff 44%,#f5f3ff)}body.mission-active #mission-quiz .quiz-progress-header,body.mission-active #mission-quiz .quiz-progress-bar-wrap,body.mission-active #mission-quiz .quiz-question-card,body.mission-active #mission-quiz .quiz-code,body.mission-active #mission-quiz .quiz-options,body.mission-active #mission-quiz .quiz-feedback-wrap{width:min(100%,86rem);margin-left:auto;margin-right:auto}body.mission-active #mission-quiz .quiz-progress-header{margin-bottom:0!important}body.mission-active #mission-quiz .quiz-question-card{align-self:stretch;min-height:0;margin-bottom:0}body.mission-active #mission-quiz .quiz-question-text{overflow-wrap:anywhere;text-wrap:balance;font-size:clamp(1.6rem,2.8vw,3.2rem);line-height:1.16}body.mission-active #mission-quiz .quiz-options{align-self:stretch;min-height:0;margin-bottom:0}body.mission-active #mission-quiz .quiz-options--grid,body.mission-active #mission-quiz .quiz-options--two{height:100%;grid-template-columns:repeat(2,minmax(0,1fr));align-content:stretch}body.mission-active #mission-quiz .quiz-option,body.mission-active #mission-quiz .quiz-options--two>button{min-height:0;height:100%}body.mission-active #mission-quiz .quiz-feedback-wrap{min-height:0;max-height:18vh;margin-bottom:0;overflow:auto}.quiz-overlay{background:radial-gradient(circle at 12% 12%,rgba(250,204,21,.34),transparent 24rem),radial-gradient(circle at 88% 18%,rgba(45,212,191,.28),transparent 22rem),linear-gradient(135deg,#fff7ed,#eff6ff 44%,#f5f3ff)}.quiz-overlay .quiz-header{background:#ffffffe0;border-bottom:2px solid rgba(255,255,255,.7);padding:var(--sp-3) clamp(var(--sp-4),4vw,var(--sp-8));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.quiz-overlay .quiz-header__left,.quiz-overlay .quiz-header__right{flex-wrap:wrap}.quiz-overlay .quiz-badge,#mission-quiz .quiz-progress-text{box-shadow:0 8px 20px #0f172a14}.quiz-overlay .quiz-badge{font-size:var(--font-size-sm)}.quiz-overlay .quiz-progress-text,#mission-quiz .quiz-progress-text{font-size:var(--font-size-base);color:#1e293b}.quiz-overlay .quiz-timer,.quiz-overlay .btn-quiz-quit{min-height:2.75rem;border-radius:var(--r-full)}.quiz-overlay .quiz-timer{padding:var(--sp-2) var(--sp-4);border:2px solid #fed7aa;box-shadow:0 10px 24px #ea580c1f}.quiz-overlay .quiz-progress-bar-wrap,#mission-quiz .quiz-progress-bar-wrap{height:.85rem;background:#fffc}.quiz-overlay .quiz-progress-bar,#mission-quiz .quiz-progress-bar{background:linear-gradient(90deg,#22c55e,#06b6d4,#6366f1);border-radius:0 var(--r-full) var(--r-full) 0}.quiz-overlay .quiz-body{padding:clamp(var(--sp-4),3vw,var(--sp-8))}.quiz-overlay .quiz-inner{max-width:min(72rem,100%);min-height:100%;display:grid;grid-template-rows:auto auto 1fr auto;gap:clamp(var(--sp-4),2vw,var(--sp-6))}.quiz-overlay .quiz-question-card,#mission-quiz .quiz-question-card{min-height:clamp(8.5rem,22vh,15rem);margin-bottom:clamp(var(--sp-4),2vw,var(--sp-6));padding:clamp(var(--sp-5),4vw,var(--sp-10));border:3px solid rgba(255,255,255,.86);border-radius:var(--r-3xl);background:linear-gradient(135deg,#fffffffa,#ffffffe6),linear-gradient(135deg,#fef08a,#93c5fd);box-shadow:0 24px 70px #2563eb2e}.quiz-overlay .quiz-question-text,#mission-quiz .quiz-question-text{font-size:clamp(1.55rem,3.2vw,3rem);line-height:1.22;letter-spacing:0}.quiz-overlay .quiz-image{width:clamp(8rem,20vw,16rem);max-height:14rem;background:#fff;border:3px solid #fff}.quiz-overlay .quiz-code,#mission-quiz .quiz-code{margin-bottom:clamp(var(--sp-3),1.5vw,var(--sp-5));border:2px solid rgba(125,211,252,.35);box-shadow:0 16px 36px #0f172a29;font-size:clamp(.95rem,1.4vw,1.2rem)}.quiz-overlay .quiz-options,#mission-quiz .quiz-options{margin-bottom:clamp(var(--sp-4),2vw,var(--sp-6))}.quiz-overlay .quiz-options--grid,.quiz-overlay .quiz-options--two,#mission-quiz .quiz-options--grid,#mission-quiz .quiz-options--two{gap:clamp(var(--sp-3),2vw,var(--sp-5))}@media(min-width:760px){.quiz-overlay .quiz-options--grid,.quiz-overlay .quiz-options--two,#mission-quiz .quiz-options--grid,#mission-quiz .quiz-options--two{grid-template-columns:1fr 1fr}}.quiz-overlay .quiz-options--stack,#mission-quiz .quiz-options--stack{gap:var(--sp-4)}.quiz-overlay .quiz-option,.quiz-overlay .quiz-options--two>button,#mission-quiz .quiz-option,#mission-quiz .quiz-options--two>button{position:relative;min-height:clamp(5.5rem,14vh,8.5rem);padding:clamp(var(--sp-4),2.5vw,var(--sp-6));border:3px solid rgba(255,255,255,.85);border-radius:var(--r-2xl);box-shadow:0 16px 32px #0f172a1a;font-family:var(--font-family);font-size:clamp(1.15rem,2vw,1.65rem);font-weight:800;line-height:1.25;color:#111827;overflow:hidden}.quiz-overlay .quiz-option:nth-child(4n+1),.quiz-overlay .quiz-options--two>button:nth-child(1),#mission-quiz .quiz-option:nth-child(4n+1),#mission-quiz .quiz-options--two>button:nth-child(1){background:var(--game-blue);color:var(--game-blue-text)}.quiz-overlay .quiz-option:nth-child(4n+2),.quiz-overlay .quiz-options--two>button:nth-child(2),#mission-quiz .quiz-option:nth-child(4n+2),#mission-quiz .quiz-options--two>button:nth-child(2){background:var(--game-yellow);color:var(--game-yellow-text)}.quiz-overlay .quiz-option:nth-child(4n+3),#mission-quiz .quiz-option:nth-child(4n+3){background:var(--game-green);color:var(--game-green-text)}.quiz-overlay .quiz-option:nth-child(4n+4),#mission-quiz .quiz-option:nth-child(4n+4){background:var(--game-pink);color:var(--game-pink-text)}.quiz-overlay .quiz-option:before,.quiz-overlay .quiz-options--two>button:before,#mission-quiz .quiz-option:before,#mission-quiz .quiz-options--two>button:before{content:"";position:absolute;inset:auto auto 0 0;width:5.5rem;height:5.5rem;border-radius:0 var(--r-full) 0 0;opacity:.18;background:currentColor}.quiz-overlay .quiz-option:hover:not(:disabled),.quiz-overlay .quiz-options--two>button:hover:not(:disabled),#mission-quiz .quiz-option:hover:not(:disabled),#mission-quiz .quiz-options--two>button:hover:not(:disabled){transform:translateY(-2px);filter:saturate(1.05)}.quiz-overlay .quiz-option--correct,#mission-quiz .quiz-option--correct{border-color:#22c55e!important;background:#dcfce7!important;color:#166534!important;box-shadow:0 18px 40px #22c55e38!important}.quiz-overlay .quiz-option--incorrect,#mission-quiz .quiz-option--incorrect{border-color:#fb7185!important;background:#ffe4e6!important;color:#be123c!important;box-shadow:0 18px 40px #f43f5e2e!important}.quiz-overlay .quiz-option--selected,#mission-quiz .quiz-option--selected{border-color:#6366f1!important;background:#e0e7ff!important;color:#3730a3!important}.quiz-overlay .quiz-options input,.quiz-overlay .quiz-options select,#mission-quiz .quiz-options input,#mission-quiz .quiz-options select{width:100%;min-height:4.75rem;padding:var(--sp-4) var(--sp-5);border:3px solid #c7d2fe;border-radius:var(--r-2xl);background:#fff;color:var(--clr-text);font-family:var(--font-family);font-size:clamp(1.15rem,2vw,1.5rem);font-weight:800;text-align:center;outline:none}.quiz-overlay .quiz-check,.quiz-overlay .btn-next,#mission-quiz .quiz-check,#mission-quiz .btn-next{min-height:4.25rem;border-radius:var(--r-full);font-size:clamp(1.1rem,2vw,1.45rem);box-shadow:0 16px 36px #4f46e53d}.quiz-overlay .quiz-feedback-wrap,#mission-quiz .quiz-feedback-wrap{min-height:7.5rem;padding:var(--sp-4);border-radius:var(--r-2xl);background:#ffffffb8;box-shadow:0 12px 32px #0f172a14}.quiz-overlay .quiz-feedback,#mission-quiz .quiz-feedback{font-size:clamp(1.15rem,2.2vw,1.65rem)}.quiz-overlay .quiz-explanation,#mission-quiz .quiz-explanation{max-width:52rem;margin:var(--sp-2) auto 0;color:#334155;font-size:clamp(1rem,1.6vw,1.2rem);font-weight:600;line-height:1.5}@media(max-width:640px){.quiz-overlay .quiz-header{align-items:flex-start;gap:var(--sp-2)}.quiz-overlay .quiz-header__right{justify-content:space-between;width:100%}.quiz-overlay .quiz-question-card{flex-direction:column;align-items:flex-start}.quiz-overlay .quiz-image{width:100%;max-height:12rem}.quiz-overlay .quiz-options--two,#mission-quiz .quiz-options--two,body.mission-active #mission-quiz .quiz-options--grid{grid-template-columns:1fr}body.mission-active #mission-quiz:not(.hidden){grid-template-rows:auto auto auto minmax(0,1fr) auto;padding:var(--sp-3)}body.mission-active #mission-quiz .quiz-question-card{padding:var(--sp-4)}body.mission-active #mission-quiz .quiz-question-text{font-size:clamp(1.15rem,5.6vw,2.1rem)}body.mission-active #mission-quiz .quiz-option,body.mission-active #mission-quiz .quiz-options--two>button{padding:var(--sp-4);font-size:clamp(1rem,4.6vw,1.45rem)}}.result-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:none;align-items:center;justify-content:center;padding:var(--sp-4);background:#4c1d95d9}.result-overlay.active{display:flex}.result-card{background:#fff;border-radius:var(--r-2xl);box-shadow:0 30px 80px #0000004d;width:100%;max-width:28rem;padding:var(--sp-8);text-align:center}.result-emoji{font-size:3.75rem;margin-bottom:var(--sp-3);display:block}.result-mode-label{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--clr-text-faint);margin-bottom:var(--sp-1)}.result-title{font-size:var(--font-size-2xl);font-weight:800;color:var(--clr-text);margin-bottom:var(--sp-5)}.result-score-label{color:var(--clr-text-muted);font-weight:600;margin-bottom:var(--sp-2)}.result-score-wrap{margin-bottom:var(--sp-2)}.result-score{font-size:var(--font-size-5xl);font-weight:800;color:var(--clr-violet);line-height:1}.result-total{font-size:2.5rem;font-weight:700;color:var(--clr-border)}.result-divider{color:var(--clr-border);font-size:2.5rem}.result-time{font-size:var(--font-size-sm);color:var(--clr-text-faint);margin-bottom:var(--sp-6)}.result-saved{background:#f0fdf4;border:1px solid #bbf7d0;color:#15803d;font-size:var(--font-size-sm);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5)}.result-error{background:#fff1f2;border:1px solid #fecdd3;color:#be123c;font-size:var(--font-size-sm);border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-5)}.quit-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:none;align-items:center;justify-content:center;padding:var(--sp-4);background:#0009}.quit-overlay.active{display:flex}.quit-card{background:#fff;border-radius:var(--r-2xl);box-shadow:0 25px 60px #0000004d;padding:var(--sp-8);max-width:20rem;width:100%;text-align:center}.quit-card__icon{font-size:3rem;margin-bottom:var(--sp-3);display:block}.quit-card__title{font-size:var(--font-size-xl);font-weight:800;color:var(--clr-text);margin-bottom:var(--sp-3)}.quit-card__text{color:var(--clr-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--sp-6)}.quit-card__actions{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3)}.btn-quit-yes{padding:var(--sp-4);border-radius:var(--r-xl);background:#ef4444;color:#fff;font-weight:700;font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.btn-quit-yes:hover{background:#dc2626}.btn-quit-no{padding:var(--sp-4);border-radius:var(--r-xl);background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-weight:700;font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.btn-quit-no:hover{background:var(--clr-border)}.app-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:none;align-items:center;justify-content:center;background:#0009;padding:var(--sp-4)}.app-modal-overlay:not(.hidden){display:flex}.app-modal-card{background:#fff;border-radius:var(--r-2xl);box-shadow:0 25px 60px #00000040;max-width:20rem;width:100%;padding:var(--sp-8) var(--sp-6);text-align:center}.app-modal-msg{color:var(--clr-text);font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--sp-6);line-height:1.6;white-space:pre-line}.app-modal-card .modal-actions{display:flex;flex-direction:column;gap:var(--sp-3)}.btn-modal-ok{background:var(--clr-violet);color:#fff;font-weight:700;font-size:var(--font-size-lg);padding:var(--sp-4) var(--sp-10);border-radius:var(--r-xl);font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-modal-ok:hover{background:var(--clr-violet-dark)}.modal-actions{display:flex;flex-direction:column;gap:var(--sp-3);width:100%}.btn-modal-cancel{background:transparent;color:var(--clr-text-muted, #6b7280);font-weight:600;font-size:var(--font-size-base);padding:var(--sp-3) var(--sp-6);border-radius:var(--r-xl);font-family:var(--font-family);cursor:pointer;border:1px solid var(--clr-border, #e5e7eb);transition:background-color var(--transition-base)}.btn-modal-cancel:hover{background:var(--clr-surface-hover, #f3f4f6)}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;display:none;align-items:center;justify-content:center;background:#000000d9;padding:var(--sp-4);cursor:zoom-out;animation:fadeIn .2s ease}.lightbox:not(.hidden){display:flex}.lightbox__img{max-width:min(90vw,900px);max-height:90vh;border-radius:var(--r-xl);box-shadow:0 30px 80px #00000080;object-fit:contain;-webkit-user-select:none;user-select:none;animation:slideUp .25s ease}.lightbox__close{position:absolute;top:var(--sp-4);right:var(--sp-4);width:2.5rem;height:2.5rem;border-radius:var(--r-full);background:#fff3;color:#fff;font-size:var(--font-size-xl);display:flex;align-items:center;justify-content:center;transition:background-color var(--transition-fast)}.lightbox__close:hover{background:#ffffff59}.quiz-loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:150;display:none;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--student-bg-from) 0%,var(--student-bg-to) 100%);animation:fadeIn .15s ease}.quiz-loading-overlay.active{display:flex}.quiz-loading-card{display:flex;flex-direction:column;align-items:center;gap:var(--sp-5)}.quiz-loading-spinner{width:3rem;height:3rem;border:4px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:var(--r-full);animation:spin .75s linear infinite}.quiz-loading-text{color:#fff;font-size:var(--font-size-lg);font-weight:600;letter-spacing:.01em}.error-boundary{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:none;align-items:center;justify-content:center;padding:var(--sp-4);background:linear-gradient(135deg,var(--student-bg-from) 0%,var(--student-bg-to) 100%)}.error-boundary:not(.hidden){display:flex}.error-boundary__card{width:100%;max-width:20rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:var(--r-2xl);padding:var(--sp-8);text-align:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.error-boundary__icon{font-size:3rem;margin-bottom:var(--sp-4);display:block}.error-boundary__title{color:#fff;font-size:var(--font-size-xl);font-weight:700;margin-bottom:var(--sp-2)}.error-boundary__msg{color:#ffffffb3;font-size:var(--font-size-sm);margin-bottom:var(--sp-6);line-height:1.6}.error-boundary__backup{background:#ffffff1a;border-radius:var(--r-xl);padding:var(--sp-4);margin-bottom:var(--sp-5);text-align:left}.error-boundary__backup-label{color:#fcd34d;font-weight:700;font-size:var(--font-size-sm);margin-bottom:var(--sp-1)}.error-boundary__backup-text{color:#fff;font-size:var(--font-size-sm)}.btn-reload{width:100%;background:#fff;color:var(--clr-violet);font-weight:700;padding:var(--sp-3) var(--sp-6);border-radius:var(--r-xl);font-family:var(--font-family);cursor:pointer;border:none;margin-bottom:var(--sp-3);transition:background-color var(--transition-fast)}.btn-reload:hover{background:#ffffffe6}.btn-boundary-dismiss{color:#ffffff80;font-size:var(--font-size-sm);background:none;border:none;cursor:pointer;font-family:var(--font-family);transition:color var(--transition-fast)}.btn-boundary-dismiss:hover{color:#ffffffd9}.teacher-auth-page{background:linear-gradient(180deg,#f1f5ff,#f8fafc 60%,#f1f5ff);min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:var(--sp-4);padding-top:var(--sp-8)}@media(min-width:640px){.teacher-auth-page{padding-top:var(--sp-12)}}.auth-page-wrap{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;padding:var(--sp-4);padding-top:var(--sp-8)}@media(min-width:640px){.auth-page-wrap{padding-top:var(--sp-12)}}.auth-page-inner{width:100%;max-width:28rem}.auth-card{background:#fffffff7;border-radius:var(--r-2xl);box-shadow:var(--shadow-card);border:1px solid rgba(255,255,255,.7);overflow:hidden;margin-bottom:var(--sp-4)}.auth-card__header{background:var(--clr-sky);color:#fff;padding:var(--sp-6) var(--sp-8)}.auth-card__label,.auth-card__eyebrow{font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.2em;color:#bae6fde6;margin-bottom:var(--sp-2)}.auth-card__title{font-size:var(--font-size-2xl);font-weight:700;margin-bottom:var(--sp-2)}@media(min-width:640px){.auth-card__title{font-size:var(--font-size-3xl)}}.auth-card__sub{font-size:var(--font-size-sm);color:#e0f2fee6}.auth-card__body{padding:var(--sp-6) var(--sp-8)}.form-fields{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}.form-group{display:flex;flex-direction:column}.form-label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--clr-text-muted);margin-bottom:var(--sp-2)}.form-input{width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);border:1px solid var(--clr-border);font-family:var(--font-family);font-size:var(--font-size-base);color:var(--clr-text);background:#fff;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.form-input:focus-visible{outline:none;border-color:var(--clr-sky);box-shadow:0 0 0 3px #0ea5e926}.form-input--sm{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm)}.form-input--count{width:6rem;text-align:center;font-weight:700;font-size:var(--font-size-lg)}.form-privacy-note{font-size:var(--font-size-xs);color:var(--clr-text-faint);margin-bottom:var(--sp-4)}.auth-register__title{font-size:var(--font-size-xl);font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-5)}.form-error{color:#e11d48;font-size:var(--font-size-sm);min-height:1.25rem;margin-bottom:var(--sp-4)}.btn-sky{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--clr-sky);color:#fff;font-weight:700;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-base);cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-sky:hover:not(:disabled){background:var(--clr-sky-dark)}.btn-sky:disabled{opacity:.65;cursor:not-allowed}.btn-emerald{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--clr-emerald);color:#fff;font-weight:700;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-base);cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-emerald:hover:not(:disabled){background:var(--clr-emerald-dark)}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-weight:500;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-sm);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.btn-secondary:hover{background:var(--clr-border)}.btn--full{width:100%}.auth-divider{margin-top:var(--sp-6);padding-top:var(--sp-6);border-top:1px solid var(--clr-border);text-align:center}.auth-divider__text{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-bottom:var(--sp-3)}.auth-switch-hint{margin-top:var(--sp-5);padding-top:var(--sp-5);border-top:1px solid var(--clr-border);text-align:center;font-size:var(--font-size-sm);color:var(--clr-text-muted)}.auth-switch-link{background:none;border:none;padding:0;margin-left:var(--sp-1);color:var(--clr-primary);font-size:inherit;font-weight:600;cursor:pointer;text-decoration:underline;text-underline-offset:2px}.auth-switch-link:hover{color:var(--clr-primary-dark)}.teacher-auth-footer{margin-top:var(--sp-8);padding:var(--sp-6) 0;text-align:center;color:var(--clr-text-faint);font-size:var(--font-size-xs)}.teacher-auth-footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-3);margin-bottom:var(--sp-2)}.teacher-auth-footer__links a{color:var(--clr-text-faint);transition:color var(--transition-fast)}.teacher-auth-footer__links a:hover{color:var(--clr-text-muted)}body.teacher-dashboard-active{display:block!important;padding:0!important;background:var(--clr-surface-muted)!important}.teacher-dashboard{min-height:100vh;background:var(--clr-surface-muted);width:100%}.dashboard-header{background:#fff;border-bottom:1px solid var(--clr-border);padding:var(--sp-4) var(--sp-6);display:flex;align-items:center;justify-content:space-between;box-shadow:var(--shadow-sm)}.dashboard-header__left{display:flex;align-items:center;gap:var(--sp-3)}.dashboard-header__right{display:flex;align-items:center;gap:var(--sp-4)}.dashboard-home-link{color:var(--clr-text-faint);font-size:var(--font-size-base);text-decoration:none;transition:color var(--transition-fast);margin-right:var(--sp-1)}.dashboard-home-link:hover{color:var(--clr-text)}.dashboard-brand{font-weight:700;font-size:var(--font-size-lg);color:var(--clr-text)}.dashboard-role-badge{background:var(--clr-sky-light);color:var(--clr-sky-dark);font-size:var(--font-size-xs);font-weight:600;padding:2px var(--sp-2);border-radius:var(--r-full)}.dashboard-email{color:var(--clr-text-faint);font-size:var(--font-size-sm)}@media(max-width:639px){.dashboard-email{display:none}}.dashboard-tabs{background:#fff;border-bottom:1px solid var(--clr-border);padding:0 var(--sp-6);display:flex;gap:0}.teacher-tab{color:var(--clr-text-faint);font-size:var(--font-size-sm);font-weight:600;padding:var(--sp-4) var(--sp-5);border-bottom:2px solid transparent;background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;font-family:var(--font-family);transition:color var(--transition-fast),border-color var(--transition-fast)}.teacher-tab:hover{color:var(--clr-text-muted)}.teacher-tab:focus-visible{outline:3px solid var(--clr-sky);outline-offset:-2px;border-radius:4px}.teacher-tab.tab-active,.teacher-tab.teacher-tab--active{color:var(--clr-sky-dark);border-bottom-color:var(--clr-sky-dark)}.dashboard-main{padding:var(--sp-4);max-width:72rem;margin:0 auto}@media(min-width:640px){.dashboard-main{padding:var(--sp-6)}}.tab-panel__top{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}@media(min-width:640px){.tab-panel__top{flex-direction:row;align-items:center;justify-content:space-between}}.tab-panel__heading{font-size:var(--font-size-xl);font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-4)}.classes-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);align-items:start}.classes-col{display:flex;flex-direction:column;gap:var(--sp-4)}@media(max-width:900px){.classes-grid{grid-template-columns:1fr}}.class-form-card,.class-card,.empty-state,.result-row{background:var(--clr-surface);border-radius:var(--r-xl);border:1px solid var(--clr-border)}.class-form-card{box-shadow:var(--shadow-sm);padding:var(--sp-5);margin-bottom:var(--sp-5)}.class-form-card__title{font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-4)}.class-form__row{display:flex;flex-direction:column;gap:var(--sp-3)}@media(min-width:640px){.class-form__row{flex-direction:row;align-items:flex-end}}.class-form__field{flex:1}.class-form__actions{display:flex;align-items:flex-end;gap:var(--sp-2)}.classes-list{display:flex;flex-direction:column;gap:var(--sp-4)}.results-list,.teacher-card-list{display:flex;flex-direction:column;gap:var(--sp-3)}.teacher-list-heading{display:flex;justify-content:space-between;align-items:center;margin:var(--sp-5) 0 var(--sp-2)}.teacher-info-card{background:#fff;border:1px solid var(--clr-border);border-radius:var(--r-xl);padding:var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);box-shadow:var(--shadow-sm)}.teacher-info-card__title{color:var(--clr-text);font-weight:700;font-size:var(--font-size-base)}.teacher-info-card__meta{color:var(--clr-text-muted);font-size:var(--font-size-sm);margin-top:var(--sp-1)}.teacher-info-card__badge{color:var(--clr-text-muted);background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-full);padding:.2rem var(--sp-2);font-size:var(--font-size-xs);font-weight:700;white-space:nowrap}.teacher-info-card--clickable{transition:box-shadow .15s}.teacher-info-card--clickable:hover{box-shadow:var(--shadow-md)}.class-detail-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:400;display:flex;justify-content:flex-end;background:#00000059;opacity:0;transition:opacity .2s}.class-detail-overlay--open{opacity:1}.class-detail-panel{max-width:480px;width:100%;background:#fff;height:100%;overflow-y:auto;transform:translate(40px);transition:transform .25s cubic-bezier(.4,0,.2,1);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-4)}.class-detail-overlay--open .class-detail-panel{transform:translate(0)}@media(max-width:639px){.class-detail-panel{max-width:100%;transform:translateY(40px);border-radius:var(--r-2xl) var(--r-2xl) 0 0;height:92%;margin-top:auto}.class-detail-overlay--open .class-detail-panel{transform:translateY(0)}}.class-detail-panel__head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--sp-3)}.class-detail-panel__eyebrow{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:.2rem}.class-detail-panel__title{font-size:1.25rem;font-weight:700;color:var(--clr-text)}.class-detail-panel__hint{background:#f0f9ff;border:1px solid #bae6fd;border-radius:var(--r-lg);padding:var(--sp-3) var(--sp-4);font-size:var(--font-size-sm);color:#0369a1;line-height:1.6}.class-detail-panel__add-form{display:flex;gap:var(--sp-2)}.class-detail-panel__add-form .form-input{flex:1;min-width:0}.students-list{flex:1;overflow:hidden;border:1px solid var(--clr-border);border-radius:var(--r-lg)}.students-list__empty{display:flex;flex-direction:column;align-items:center;gap:var(--sp-3);padding:var(--sp-8) var(--sp-4);color:var(--clr-text-muted);font-size:var(--font-size-sm);text-align:center}.students-list__empty i{font-size:2rem;opacity:.4}.students-list__head{display:grid;grid-template-columns:2rem 1fr auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);background:var(--clr-surface-muted);border-bottom:1px solid var(--clr-border);font-size:var(--font-size-xs);font-weight:600;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.05em;position:sticky;top:0}.students-list__body{max-height:22rem;overflow-y:auto;overscroll-behavior:contain}.student-row{display:grid;grid-template-columns:2rem 1fr auto auto;align-items:center;gap:var(--sp-3);padding:var(--sp-2) var(--sp-3);border-bottom:1px solid var(--clr-border);background:#fff;transition:background .1s}.student-row:last-child{border-bottom:none}.student-row:hover{background:var(--clr-surface-muted)}.student-row__num{font-size:var(--font-size-xs);color:var(--clr-text-faint);text-align:right}.student-row__label{font-size:var(--font-size-sm);font-weight:500;color:var(--clr-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-row__code{font-size:var(--font-size-xs);color:var(--clr-text-muted);font-family:monospace;white-space:nowrap;min-width:5rem;text-align:center}.student-row__actions{display:flex;gap:var(--sp-1);flex-shrink:0;justify-content:flex-end}.student-edit-input{flex:1;font-size:var(--font-size-sm);padding:var(--sp-1) var(--sp-2);border:1px solid var(--clr-border);border-radius:var(--r-sm)}.empty-state{padding:var(--sp-10);text-align:center;color:var(--clr-text-faint)}.empty-state__icon{font-size:2.5rem;margin-bottom:var(--sp-3);display:block}.empty-state__title{font-weight:600}.empty-state__sub{font-size:var(--font-size-sm);margin-top:var(--sp-1)}.class-card{box-shadow:var(--shadow-sm);overflow:hidden}.class-card__header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5);cursor:pointer;-webkit-user-select:none;user-select:none}.class-card__meta{display:flex;align-items:baseline;gap:var(--sp-2)}.class-card__name{font-weight:700;color:var(--clr-text);font-size:var(--font-size-base)}.class-card__grade{font-size:var(--font-size-sm);color:var(--clr-text-faint)}.class-card__right{display:flex;align-items:center;gap:var(--sp-3)}.class-card__count{font-size:var(--font-size-sm);color:var(--clr-text-muted)}.class-card__chevron{color:var(--clr-text-faint);font-size:var(--font-size-sm);transition:transform var(--transition-base)}.class-card__chevron.open{transform:rotate(180deg)}.class-card__body{border-top:1px solid var(--clr-border);padding:var(--sp-5)}.class-card__controls{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-4)}.class-card__generate-row{display:flex;gap:var(--sp-3);align-items:center}.event-select{width:100%;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg);border:1px solid var(--clr-border);font-family:var(--font-family);font-size:var(--font-size-sm);color:var(--clr-text-muted);background:#fff}.event-select:focus-visible{outline:none;border-color:var(--clr-sky);box-shadow:0 0 0 3px #0ea5e926}.codes-count-input{width:6rem;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-lg);border:1px solid var(--clr-border);font-family:var(--font-family);font-size:var(--font-size-lg);font-weight:700;text-align:center}.codes-count-input:focus-visible{outline:none;border-color:var(--clr-sky);box-shadow:0 0 0 3px #0ea5e926}.codes-count-label{font-size:var(--font-size-sm);color:var(--clr-text-muted);align-self:center}.btn-generate{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--clr-emerald);color:#fff;font-size:var(--font-size-sm);font-weight:600;padding:var(--sp-2) var(--sp-5);border-radius:var(--r-lg);font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-generate:hover{background:var(--clr-emerald-dark)}.btn-copy-all{background:var(--clr-surface-subtle);color:var(--clr-text-muted);font-size:var(--font-size-sm);font-weight:500;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.btn-copy-all:hover{background:var(--clr-border)}.generate-status{font-size:var(--font-size-sm);min-height:1.25rem;margin-bottom:var(--sp-3);color:var(--clr-text-faint)}.generate-status--ok{color:#059669}.generate-status--err{color:#e11d48}.generate-status--neutral{color:var(--clr-text-faint)}.generate-status--info{color:#0369a1}.cold-start-banner{position:fixed;bottom:var(--sp-4);left:50%;transform:translate(-50%);background:#1e293b;color:#e2e8f0;padding:var(--sp-3) var(--sp-5);border-radius:999px;font-size:var(--font-size-sm);display:flex;align-items:center;gap:var(--sp-3);z-index:9999;box-shadow:0 4px 24px #00000059;animation:fadeInUp .3s ease}@keyframes fadeInUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.cold-start-banner__spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.event-card--highlight{outline:2px solid var(--clr-emerald);animation:highlightPulse 3s ease forwards}@keyframes highlightPulse{0%,20%{outline-color:var(--clr-emerald)}to{outline-color:transparent}}.btn-event-publish{background:#f59e0b;color:#fff;border:none;border-radius:var(--r-sm);padding:var(--sp-2) var(--sp-4);min-height:2.25rem;font-size:var(--font-size-sm);font-weight:600;cursor:pointer;display:inline-flex;align-items:center;gap:var(--sp-1);transition:background-color var(--transition-fast)}.btn-event-publish:hover{background:#d97706}.btn-event-publish:focus-visible{outline:3px solid rgba(245,158,11,.6);outline-offset:2px}.code-chip--inactive{opacity:.5}.codes-list{display:flex;flex-direction:column;gap:var(--sp-2)}.code-chip{background:var(--clr-surface-muted);border:1px solid var(--clr-border);border-radius:var(--r-lg);padding:var(--sp-2) var(--sp-3)}.code-chip__row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.code-value{font-family:Courier New,Courier,monospace;font-weight:700;color:var(--clr-text);font-size:var(--font-size-sm);letter-spacing:.05em}.code-chip__actions{display:flex;align-items:center;gap:var(--sp-2)}.code-status-badge{font-size:var(--font-size-xs);font-weight:600;padding:2px var(--sp-2);border-radius:var(--r-full)}.code-status-badge--active{background:var(--clr-emerald-light);color:#065f46}.code-status-badge--inactive{background:var(--clr-surface-subtle);color:var(--clr-text-faint)}.code-toggle-btn{font-size:var(--font-size-xs);font-weight:600;padding:2px var(--sp-2);border-radius:var(--r-sm);font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.code-toggle-btn--deactivate{background:#ffe4e6;color:#be123c}.code-toggle-btn--deactivate:hover{background:#fecdd3}.code-toggle-btn--activate{background:var(--clr-emerald-light);color:#065f46}.code-toggle-btn--activate:hover{background:#a7f3d0}.code-name-input{margin-top:var(--sp-2);width:100%;padding:var(--sp-1) var(--sp-2);font-size:var(--font-size-xs);border-radius:var(--r-sm);border:1px solid var(--clr-border);color:var(--clr-text-muted);font-family:var(--font-family)}.code-name-input:focus-visible{outline:none;border-color:var(--clr-sky);box-shadow:0 0 0 2px #0ea5e926}.code-name-input::placeholder{color:var(--clr-text-faint)}.result-row{padding:var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.result-row__code{font-weight:700;color:var(--clr-text)}.result-row__meta{font-size:var(--font-size-sm);color:var(--clr-text-muted)}.result-row__date{font-size:var(--font-size-xs);color:var(--clr-text-faint);margin-top:2px}.result-row__score{font-size:var(--font-size-2xl);font-weight:700;color:var(--clr-sky-dark);white-space:nowrap}.result-row__score span{font-size:var(--font-size-base);color:var(--clr-text-faint)}.result-row__score-wrap{text-align:right}.result-row__total{font-size:var(--font-size-base);color:var(--clr-text-faint)}.result-row__time{font-size:var(--font-size-xs);color:var(--clr-text-faint)}.result-award{display:inline-block;padding:1px 8px;border-radius:999px;font-size:var(--font-size-xs);font-weight:700;background:var(--clr-violet-soft, #f5f3ff);color:var(--clr-violet-dark, #6d28d9)}.result-award--diploma{background:#fef3c7;color:#b45309}.btn-cert-teacher{width:auto;padding:var(--sp-2) var(--sp-3);border-radius:var(--r-md);font-size:var(--font-size-sm);flex-shrink:0;white-space:nowrap}.admin-page{background:linear-gradient(180deg,var(--adm-bg) 0%,var(--adm-surface) 100%);min-height:100vh;color:var(--adm-text);font-family:var(--font-family)}.admin-auth-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.admin-auth-inner{width:100%;max-width:22rem}.admin-auth-eyebrow{display:inline-block;background:var(--adm-surface);color:var(--adm-text-muted);font-size:var(--font-size-xs);font-weight:600;padding:var(--sp-1) var(--sp-3);border-radius:var(--r-full);letter-spacing:.15em;text-transform:uppercase;margin-bottom:var(--sp-4)}.admin-auth-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--adm-text);text-align:center;margin-bottom:var(--sp-8)}.admin-auth-card{background:#ffffff0d;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.1);border-radius:var(--r-2xl);padding:var(--sp-8)}.adm-input{width:100%;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--adm-surface-2);border:1px solid var(--adm-border);color:var(--adm-text);font-family:var(--font-family);font-size:var(--font-size-base);transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.adm-input::placeholder{color:var(--adm-text-faint)}.adm-input:focus-visible{outline:none;border-color:var(--adm-sky);box-shadow:0 0 0 3px #38bdf833}.adm-input--sm{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm)}.adm-input--code{color:#6ee7b7;font-family:Courier New,monospace}.adm-label{display:block;font-size:var(--font-size-xs);font-weight:600;color:var(--adm-text-muted);margin-bottom:var(--sp-1)}.adm-form-error{color:#fb7185;font-size:var(--font-size-sm);min-height:1.25rem;margin-bottom:var(--sp-4)}.btn-adm-sky{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--adm-sky-hover);color:#fff;font-weight:700;padding:var(--sp-3) var(--sp-5);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-base);min-height:2.75rem;cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-adm-sky:hover:not(:disabled){background:#0284c7}.btn-adm-sky:disabled{opacity:.6;cursor:not-allowed}.btn-adm-sky:focus-visible{outline:3px solid rgba(56,189,248,.6);outline-offset:2px}.btn-adm-emerald{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--adm-emerald);color:#fff;font-weight:700;padding:var(--sp-2) var(--sp-5);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-sm);min-height:2.5rem;cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-adm-emerald:hover:not(:disabled){background:var(--adm-emerald-hover)}.btn-adm-emerald:focus-visible{outline:3px solid rgba(16,185,129,.6);outline-offset:2px}.btn-adm-slate{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--adm-surface);color:var(--adm-text-muted);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-sm);min-height:2.5rem;cursor:pointer;border:1px solid var(--adm-border);transition:background-color var(--transition-fast)}.btn-adm-slate:hover:not(:disabled){background:#334155}.btn-adm-slate:disabled{opacity:.5;cursor:not-allowed}.btn-adm-slate:focus-visible{outline:3px solid rgba(148,163,184,.5);outline-offset:2px}.btn-adm-violet{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:var(--adm-violet);color:#fff;font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-sm);min-height:2.5rem;cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-adm-violet:hover{background:var(--adm-violet-hover)}.btn-adm-violet:focus-visible{outline:3px solid rgba(124,58,237,.5);outline-offset:2px}.btn-adm-danger{display:inline-flex;align-items:center;justify-content:center;gap:var(--sp-2);background:#be123c;color:#fff;font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);font-size:var(--font-size-sm);min-height:2.5rem;cursor:pointer;border:none;transition:background-color var(--transition-base)}.btn-adm-danger:hover{background:#9f1239}.btn-adm-danger:focus-visible{outline:3px solid rgba(190,18,60,.5);outline-offset:2px}.admin-panel{min-height:100vh}.admin-header{background:#0f172a;border-bottom:1px solid var(--adm-border);padding:var(--sp-4) var(--sp-6);display:flex;align-items:center;justify-content:space-between}.admin-header__left{display:flex;align-items:center;gap:var(--sp-3)}.admin-header__right{display:flex;align-items:center;gap:var(--sp-4)}.admin-brand{font-weight:700;font-size:var(--font-size-lg);color:var(--adm-text)}.admin-role-badge{background:#0369a1;color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:2px var(--sp-2);border-radius:var(--r-full)}.admin-email-display{color:var(--adm-text-faint);font-size:var(--font-size-sm)}@media(max-width:639px){.admin-email-display{display:none}}.admin-tabs{background:var(--adm-surface);border-bottom:1px solid var(--adm-border);padding:0 var(--sp-6);overflow-x:auto;display:flex}.admin-tab{color:var(--adm-text-muted);font-size:var(--font-size-sm);font-weight:600;padding:var(--sp-4) var(--sp-5);border-bottom:2px solid transparent;border-top:none;border-left:none;border-right:none;background:none;cursor:pointer;white-space:nowrap;font-family:var(--font-family);transition:color var(--transition-fast),border-color var(--transition-fast)}.admin-tab:hover{color:var(--adm-text)}.admin-tab:focus-visible{outline:3px solid var(--adm-sky);outline-offset:-2px;border-radius:4px}.admin-tab.tab-active,.admin-tab.admin-tab--active{color:var(--adm-sky);border-bottom-color:var(--adm-sky)}.admin-main{padding:var(--sp-4);max-width:72rem;margin:0 auto}@media(min-width:640px){.admin-main{padding:var(--sp-6)}}.admin-section-header{display:flex;flex-direction:column;gap:var(--sp-4);margin-bottom:var(--sp-6)}@media(min-width:640px){.admin-section-header{flex-direction:row;align-items:center;justify-content:space-between}}.admin-section-title{font-size:var(--font-size-xl);font-weight:700;color:var(--adm-text)}.admin-section-actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.stats-grid{display:grid;grid-template-columns:1fr;gap:var(--sp-3);margin-bottom:var(--sp-8)}@media(min-width:480px){.stats-grid{grid-template-columns:1fr 1fr;gap:var(--sp-4)}}@media(min-width:1024px){.stats-grid{grid-template-columns:repeat(4,1fr)}}.stat-card{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);padding:var(--sp-5)}.stat-card__label{color:var(--adm-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--sp-1)}.stat-card__value{font-size:1.875rem;font-weight:700;color:var(--adm-text)}.admin-empty-state{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);padding:var(--sp-16) var(--sp-6);display:flex;align-items:center;justify-content:center;text-align:center;color:var(--adm-text-faint)}.admin-empty-state__icon{font-size:2.5rem;display:block;margin-bottom:var(--sp-3)}.admin-empty-state__title{font-weight:600;color:var(--adm-text-muted)}.admin-empty-state__sub{font-size:var(--font-size-sm);margin-top:var(--sp-1)}.admin-form-card{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);padding:var(--sp-6);margin-bottom:var(--sp-6)}.admin-form-card__title{color:var(--adm-text);font-weight:700;margin-bottom:var(--sp-5)}.adm-form-grid{display:grid;gap:var(--sp-4)}@media(min-width:640px){.adm-form-grid{grid-template-columns:1fr 1fr}}@media(min-width:640px){.adm-form-grid--4{grid-template-columns:repeat(4,1fr)}}.adm-col-span-2{grid-column:span 1}@media(min-width:640px){.adm-col-span-2{grid-column:span 2}}.adm-checkbox-row{display:flex;align-items:center;gap:var(--sp-3)}.adm-checkbox-row input[type=checkbox]{width:1rem;height:1rem;cursor:pointer}.adm-checkbox-row label{font-size:var(--font-size-sm);color:var(--adm-text-muted);cursor:pointer}.adm-form-actions{display:flex;gap:var(--sp-3);flex-wrap:wrap}.admin-filter-bar{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);padding:var(--sp-4);margin-bottom:var(--sp-4);display:flex;flex-wrap:wrap;gap:var(--sp-3);align-items:center}.admin-filter-count{font-size:var(--font-size-sm);color:var(--adm-text-faint);margin-left:auto}.admin-list{display:flex;flex-direction:column;gap:var(--sp-3)}.admin-list--sm{gap:var(--sp-2)}.event-card,.question-item,.admin-result-row,.admin-teacher-row{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl)}.event-card{padding:var(--sp-5)}.event-card__inner{display:flex;flex-direction:column;gap:var(--sp-4)}@media(min-width:640px){.event-card__inner{flex-direction:row;align-items:flex-start;justify-content:space-between}}.event-card__info{flex:1}.event-card__head{display:flex;align-items:center;gap:var(--sp-3);flex-wrap:wrap;margin-bottom:var(--sp-2)}.event-card__title{font-weight:700;color:var(--adm-text);font-size:var(--font-size-base)}.event-card__meta{display:grid;gap:var(--sp-2);font-size:var(--font-size-sm);color:var(--adm-text-muted)}@media(min-width:640px){.event-card__meta{grid-template-columns:repeat(3,1fr)}}.event-card__retry{font-size:var(--font-size-xs);color:var(--adm-text-faint);margin-top:var(--sp-2)}.event-card__actions{display:flex;gap:var(--sp-2);flex-wrap:wrap}.event-status-badge{font-size:var(--font-size-xs);font-weight:700;padding:2px var(--sp-2);border-radius:var(--r-full)}.event-status-badge--draft{background:#475569;color:#e2e8f0}.event-status-badge--active{background:var(--adm-emerald);color:#fff}.event-status-badge--archived{background:#334155;color:var(--adm-text-faint)}.btn-event-activate{background:#059669;color:#fff}.btn-event-activate:hover{background:#047857}.btn-event-archive{background:#475569;color:#e2e8f0}.btn-event-archive:hover{background:#334155}.btn-event-draft{background:#334155;color:var(--adm-text-muted)}.btn-event-draft:hover{background:#1e293b}.btn-event-activate,.btn-event-archive,.btn-event-draft{font-size:var(--font-size-xs);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.btn-event-questions{background:var(--adm-violet);color:#fff;font-size:var(--font-size-xs);font-weight:600;padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);cursor:pointer;border:none}.btn-event-questions:hover{filter:brightness(1.08)}.event-question-picker{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);padding:var(--sp-5);margin-bottom:var(--sp-5);box-shadow:var(--shadow-lg)}.event-question-picker__head{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-4)}@media(min-width:640px){.event-question-picker__head{flex-direction:row;justify-content:space-between;align-items:flex-start}}.event-question-picker__label{color:var(--adm-text-faint);font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase}.event-question-picker__title{color:var(--adm-text);font-size:var(--font-size-lg);font-weight:800;margin-top:var(--sp-1)}.event-question-picker__toolbar{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-3)}@media(min-width:640px){.event-question-picker__toolbar{flex-direction:row;align-items:center;justify-content:space-between}}.event-question-picker__status{color:var(--adm-text-muted);font-size:var(--font-size-sm);margin-bottom:var(--sp-3)}.event-question-list{display:grid;gap:var(--sp-2);max-height:28rem;overflow:auto;padding-right:var(--sp-1)}.event-question-row{display:flex;align-items:flex-start;gap:var(--sp-3);padding:var(--sp-3);border:1px solid var(--adm-border);border-radius:var(--r-lg);background:#0f172a57;cursor:pointer}.event-question-row:hover{border-color:#7dd3fc73}.event-question-row input{width:1rem;height:1rem;margin-top:.2rem;flex:0 0 auto}.event-question-row__main{display:grid;gap:.25rem;min-width:0}.event-question-row__title{color:var(--adm-text);font-size:var(--font-size-sm);line-height:1.35}.event-question-row__meta{color:var(--adm-text-faint);font-size:var(--font-size-xs)}.question-item{padding:var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.question-item__left{flex:1;min-width:0}.question-item__text{color:var(--adm-text);font-size:var(--font-size-sm);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.question-item__code{color:#6ee7b7;font-size:var(--font-size-xs);font-family:Courier New,monospace;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-top:2px}.question-item__meta{font-size:var(--font-size-xs);color:var(--adm-text-faint);margin-top:2px}.question-item__actions{display:flex;gap:var(--sp-2);flex-shrink:0}.qi-badge{font-size:var(--font-size-xs);font-weight:700;padding:2px var(--sp-2);border-radius:var(--r-full)}.qi-badge--grade{background:#334155;color:#cbd5e1}.qi-badge--type{background:#1e1b4b;color:#c7d2fe}.qi-badge--easy{background:#064e3b;color:#6ee7b7}.qi-badge--medium{background:#451a03;color:#fcd34d}.qi-badge--hard{background:#4c0519;color:#fda4af}.qi-badge--olympiad{background:#0c4a6e;color:#7dd3fc}.qi-badge--practice{background:#334155;color:#94a3b8}.btn-icon{width:2rem;height:2rem;padding:0;display:inline-flex;align-items:center;justify-content:center;font-size:var(--font-size-sm)}.admin-result-row,.admin-teacher-row{padding:var(--sp-4);display:flex;align-items:center;justify-content:space-between;gap:var(--sp-4)}.admin-row__main{flex:1;min-width:0}.admin-row__title{font-weight:700;color:var(--adm-text)}.admin-row__meta{font-size:var(--font-size-sm);color:var(--adm-text-muted);margin-top:2px}.admin-row__score{font-size:var(--font-size-2xl);font-weight:700;color:var(--adm-sky);white-space:nowrap}.admin-row__score span{font-size:var(--font-size-sm);color:var(--adm-text-faint)}.admin-row__actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--sp-2)}.btn-sm{padding:var(--sp-2) var(--sp-3);font-size:var(--font-size-sm);min-height:2.25rem}.badge--blocked{background:#fee2e2;color:#991b1b;border-radius:4px;padding:1px 6px;font-size:var(--font-size-xs);font-weight:600}.badge--pending{background:#fef9c3;color:#92400e;border-radius:4px;padding:1px 6px;font-size:var(--font-size-xs);font-weight:600}.admin-loading-text{color:var(--adm-text-muted);font-size:var(--font-size-sm);padding:var(--sp-4)}.cert-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;background:#00000080;display:flex;align-items:center;justify-content:center;padding:var(--sp-4)}.cert-modal{background:var(--adm-surface);border-radius:var(--r-xl);padding:var(--sp-8);max-width:480px;width:100%;box-shadow:0 20px 60px #0000004d}.cert-modal__title{font-size:var(--font-size-lg);font-weight:700;color:var(--adm-text);margin-bottom:var(--sp-2)}.cert-modal__hint{font-size:var(--font-size-sm);color:var(--adm-text-muted);margin-bottom:var(--sp-4)}.cert-modal__field label{display:block;font-size:var(--font-size-sm);font-weight:600;color:var(--adm-text);margin-bottom:var(--sp-2)}.cert-modal__input{width:100%;padding:var(--sp-3);border:1px solid var(--adm-border);border-radius:var(--r-md);background:var(--adm-bg);color:var(--adm-text);font-size:var(--font-size-base);margin-bottom:var(--sp-6)}.cert-modal__input:focus-visible{outline:none;border-color:var(--clr-violet);box-shadow:0 0 0 3px #7c3aed40}.cert-modal__actions{display:flex;gap:var(--sp-3)}.admin-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:none;align-items:center;justify-content:center;background:#000000b3;padding:var(--sp-4)}.admin-modal-overlay:not(.hidden){display:flex}.admin-modal-card{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);box-shadow:0 25px 60px #00000080;max-width:24rem;width:100%;padding:var(--sp-6);text-align:center}.admin-modal-msg{color:var(--adm-text);font-size:var(--font-size-base);margin-bottom:var(--sp-5);white-space:pre-line}.admin-modal-card .modal-actions{display:flex;flex-direction:column;gap:var(--sp-3)}.btn-adm-ghost{background:transparent;color:var(--adm-text-muted, #9ca3af);font-weight:600;font-size:var(--font-size-sm);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-lg);font-family:var(--font-family);cursor:pointer;border:1px solid var(--adm-border);transition:background-color var(--transition-base)}.btn-adm-ghost:hover{background:#ffffff0d}.question-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:none;align-items:flex-start;justify-content:center;background:#000000bf;padding:var(--sp-4);overflow-y:auto}.question-modal-overlay:not(.hidden){display:flex}.question-modal-card{background:var(--adm-surface);border:1px solid var(--adm-border);border-radius:var(--r-xl);box-shadow:0 25px 60px #00000080;width:100%;max-width:42rem;margin:var(--sp-6) auto;padding:var(--sp-6)}.question-modal-title{color:var(--adm-text);font-weight:700;font-size:var(--font-size-lg);margin-bottom:var(--sp-5)}.qf-space{display:flex;flex-direction:column;gap:var(--sp-4)}.qf-section{display:flex;flex-direction:column;gap:var(--sp-3)}.preview-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:60;display:none;align-items:center;justify-content:center;background:#000c;padding:var(--sp-4)}.preview-modal-overlay:not(.hidden){display:flex}.preview-modal-card{background:#f8fafc;border-radius:var(--r-2xl);box-shadow:0 25px 60px #00000080;width:100%;max-width:32rem;padding:var(--sp-6);position:relative}.preview-modal-close{position:absolute;top:var(--sp-4);right:var(--sp-4);width:2.25rem;height:2.25rem;display:flex;align-items:center;justify-content:center;border-radius:var(--r-full);background:#e2e8f0;color:#475569;font-size:var(--font-size-lg);cursor:pointer;border:none;transition:background-color var(--transition-fast)}.preview-modal-close:hover{background:#cbd5e1}.preview-modal-label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--clr-violet);margin-bottom:var(--sp-3)}.pv-question-card{background:#fff;border-radius:var(--r-2xl);box-shadow:var(--shadow-sm);border:1px solid #f1f5f9;padding:var(--sp-5);margin-bottom:var(--sp-4);display:flex;align-items:center;gap:var(--sp-4)}.pv-question-text{flex:1;font-size:var(--font-size-xl);font-weight:700;color:#0f172a;line-height:1.35}.pv-image{display:none;width:9rem;flex-shrink:0;border-radius:var(--r-xl);object-fit:contain;border:1px solid #f1f5f9}.pv-image:not(.hidden){display:block}.pv-code{display:none;background:#0f172a;color:#6ee7b7;border-radius:var(--r-xl);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-3);font-size:var(--font-size-sm);font-family:Courier New,monospace;overflow-x:auto;white-space:pre-wrap}.pv-code:not(.hidden){display:block}.pv-options{display:flex;flex-direction:column;gap:var(--sp-3);margin-bottom:var(--sp-4)}.pv-options--grid,.pv-options--two{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);margin-bottom:var(--sp-4)}.pv-explanation-wrap{display:none;background:#f1f5f9;border-radius:var(--r-xl);padding:var(--sp-3) var(--sp-4);font-size:var(--font-size-sm);color:#475569}.pv-explanation-wrap:not(.hidden){display:block}.doc-page{background:var(--clr-surface-muted);color:var(--clr-text);min-height:100vh;display:flex;flex-direction:column}.doc-main{flex:1;width:100%;max-width:56rem;margin:0 auto;padding:2.5rem var(--sp-4)}@media(min-width:640px){.doc-main{padding:3rem var(--sp-6)}}.doc-article{background:#fff;border-radius:var(--r-3xl);box-shadow:var(--shadow-card);border:1px solid var(--clr-border);padding:clamp(1.5rem,5vw,3rem)}.doc-subtitle{font-size:var(--font-size-sm);font-weight:600;color:var(--clr-primary);letter-spacing:.02em;margin-bottom:var(--sp-2)}.doc-h1{font-size:clamp(2rem,5vw,2.75rem);font-weight:800;color:var(--clr-text);letter-spacing:-.02em;line-height:1.1;margin-bottom:var(--sp-3)}.doc-date{font-size:var(--font-size-sm);color:var(--clr-text-faint);margin-bottom:2rem}.doc-content{color:#475569;line-height:1.7;font-size:.9375rem;display:flex;flex-direction:column;gap:2.5rem}.doc-h2{font-size:1.125rem;font-weight:800;color:var(--clr-text);letter-spacing:-.01em;margin-bottom:1rem}.doc-text-block{display:flex;flex-direction:column;gap:.75rem}.doc-list{list-style:disc;padding-left:1.5rem;display:flex;flex-direction:column;gap:.5rem}.doc-list--ordered{list-style:decimal}.doc-highlight{border-radius:var(--r-2xl);border:1px solid;padding:1.25rem}.doc-highlight--amber{background:#fffbeb;border-color:#fde68a;color:#78350f}.doc-highlight--emerald{background:#ecfdf5;border-color:#a7f3d0;color:#064e3b}.doc-highlight--sky{background:#eff6ff;border-color:#bfdbfe;color:#1e3a8a}.doc-highlight--slate{background:var(--clr-surface-muted);border-color:var(--clr-border);color:var(--clr-text-muted)}.doc-highlight__heading{font-weight:600;margin-bottom:.5rem}.doc-link{color:var(--clr-primary);text-decoration:none}.doc-link:hover{text-decoration:underline}.doc-info-box{border-radius:var(--r-2xl);background:var(--clr-surface-muted);border:1px solid var(--clr-border);padding:1.25rem;display:flex;flex-direction:column;gap:.75rem}.doc-grid-2{display:grid;grid-template-columns:1fr;gap:1rem}@media(min-width:640px){.doc-grid-2{grid-template-columns:1fr 1fr}}.doc-btn-row{display:flex;flex-wrap:wrap;gap:.75rem}.doc-btn{display:inline-flex;align-items:center;gap:.5rem;font-weight:700;padding:.75rem 1.25rem;border-radius:var(--r-2xl);text-decoration:none;transition:filter var(--transition-fast)}.doc-btn:hover{filter:brightness(.9)}.doc-btn--sky{background:#0284c7;color:#fff}.doc-btn--emerald{background:#059669;color:#fff}.vitrina{width:100%;max-width:60rem;margin:0 auto;padding:var(--sp-8) var(--sp-4) var(--sp-16);display:flex;flex-direction:column;gap:var(--sp-8)}@media(min-width:640px){.vitrina{padding-top:var(--sp-12);gap:var(--sp-10)}}.vitrina-hero{text-align:center}.mascot{display:inline-block;margin-bottom:var(--sp-2);animation:mascot-bob 3s ease-in-out infinite}@keyframes mascot-bob{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}@media(prefers-reduced-motion:reduce){.mascot{animation:none}}.mascot img{display:block;width:clamp(128px,34vw,176px);height:auto;filter:drop-shadow(0 10px 18px rgba(15,23,42,.14))}.vitrina-title{font-size:clamp(2rem,6vw,3.25rem);font-weight:800;line-height:1.08;letter-spacing:-.02em;color:var(--clr-text)}.vitrina-tagline{font-size:clamp(1rem,2.5vw,1.25rem);color:var(--clr-text-muted);margin-top:var(--sp-3)}.event-banner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--sp-3);background:var(--clr-mascot-light);border:2px solid var(--clr-amber);border-radius:var(--r-xl);padding:var(--sp-4) var(--sp-6)}.event-banner__title{font-weight:700;color:#78350f}.event-banner__cta{font-weight:700;color:#fff;background:var(--clr-amber-dark);padding:var(--sp-2) var(--sp-5);border-radius:var(--r-full);min-height:2.75rem;display:inline-flex;align-items:center}.event-banner__cta:hover{filter:brightness(.94)}.mode-doors{display:grid;gap:var(--sp-4)}@media(min-width:640px){.mode-doors{grid-template-columns:1fr 1fr;gap:var(--sp-6)}}.mode-door{display:flex;flex-direction:column;align-items:center;gap:var(--sp-1);padding:var(--sp-8) var(--sp-6);border-radius:var(--r-2xl);text-align:center;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),box-shadow var(--transition-base)}.mode-door:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.mode-door:active{transform:translateY(-1px)}.mode-door:focus-visible{outline:3px solid var(--clr-brand);outline-offset:3px}.mode-door--home{background:linear-gradient(165deg,#fef3c7,#ffedd5);border:2px solid #fcd34d;color:#7c2d12}.mode-door--school{background:linear-gradient(165deg,#dbeafe,#e0f2fe);border:2px solid #93c5fd;color:var(--clr-primary-dark)}.mode-door__icon{margin-bottom:var(--sp-2)}.mode-door__title{font-size:var(--font-size-2xl);font-weight:800}.mode-door__desc{font-size:var(--kid-text);opacity:.85;margin-bottom:var(--sp-4)}.mode-door__cta{display:inline-flex;align-items:center;justify-content:center;min-height:var(--kid-tap);padding:var(--sp-2) var(--sp-8);border-radius:var(--r-full);font-size:var(--kid-text);font-weight:700;color:#fff;margin-top:auto}.mode-door--home .mode-door__cta{background:var(--clr-amber-dark)}.mode-door--school .mode-door__cta{background:var(--clr-brand)}.mode-door:hover .mode-door__cta{filter:brightness(.94)}.trust-strip{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--sp-2);list-style:none}.trust-chip{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-full);padding:var(--sp-2) var(--sp-4);font-size:var(--font-size-sm);font-weight:600;color:var(--clr-text-muted)}.preview-block__label{text-align:center;font-size:var(--font-size-sm);font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--clr-text-faint);margin-bottom:var(--sp-4)}.preview-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-xl);box-shadow:var(--shadow-card);padding:var(--sp-6);max-width:36rem;margin:0 auto;width:100%}.preview-card__q{font-size:var(--kid-text);font-weight:700;color:var(--clr-text);margin-bottom:var(--sp-4);min-height:2.5rem}.preview-option{display:block;width:100%;min-height:var(--kid-tap);padding:var(--sp-3) var(--sp-4);margin-bottom:var(--sp-2);border:2px solid var(--clr-border);border-radius:var(--r-md);background:var(--clr-surface);font-size:var(--font-size-base);font-weight:600;color:var(--clr-text);text-align:left;transition:border-color var(--transition-fast),background-color var(--transition-fast)}.preview-option:hover:not(:disabled){border-color:var(--clr-brand);background:var(--clr-surface-muted)}.preview-option:focus-visible{outline:3px solid var(--clr-brand);outline-offset:2px}.preview-option:disabled{cursor:default}.preview-option--correct{border-color:var(--clr-success);background:#ecfdf5}.preview-option--incorrect{border-color:var(--clr-danger);background:#fef2f2}.preview-card__feedback{font-weight:700;min-height:1.5rem;margin-top:var(--sp-2)}.preview-card__feedback--correct{color:#047857}.preview-card__feedback--incorrect{color:#b91c1c}.preview-card__actions{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-4)}.btn-cta{display:inline-flex;align-items:center;justify-content:center;min-height:var(--kid-tap);padding:var(--sp-2) var(--sp-6);border-radius:var(--r-full);background:var(--clr-brand);color:#fff;font-size:var(--font-size-base);font-weight:700}.btn-cta:hover{background:var(--clr-brand-dark)}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;min-height:var(--kid-tap);padding:var(--sp-2) var(--sp-6);border-radius:var(--r-full);border:2px solid var(--clr-border);background:var(--clr-surface);color:var(--clr-text);font-size:var(--font-size-base);font-weight:700}.btn-ghost:hover{border-color:var(--clr-brand)}.adult-note{text-align:center;font-size:var(--font-size-sm);color:var(--clr-text-faint)}.adult-note a{color:var(--clr-primary);text-decoration:underline}.app-page{min-height:100vh;display:flex;flex-direction:column;background:linear-gradient(160deg,#e8eeff,#f0f4ff,#dbeafe)}.app-main{flex:1;width:100%;max-width:44rem;margin:0 auto;padding:var(--sp-8) var(--sp-4) var(--sp-16)}.app-title{font-size:clamp(1.75rem,5vw,2.5rem);font-weight:800;letter-spacing:-.02em;line-height:1.1;color:var(--clr-text);text-align:center}.app-subtitle{font-size:var(--kid-text);color:var(--clr-text-muted);text-align:center;margin:var(--sp-2) 0 var(--sp-8)}.app-section-label{font-size:var(--font-size-lg);font-weight:800;color:var(--clr-text);text-align:center;margin:var(--sp-10) 0 var(--sp-4)}.app-error{text-align:center;margin-top:var(--sp-3);min-height:1.5rem}.app-stack{display:flex;flex-direction:column;gap:var(--sp-4)}.app-actions{display:flex;justify-content:center;margin-top:var(--sp-2)}.code-entry{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-2xl);box-shadow:var(--shadow-card);padding:var(--sp-6);display:flex;flex-direction:column;gap:var(--sp-3);max-width:26rem;margin:0 auto}.code-input-lg{width:100%;min-height:var(--kid-tap-lg);padding:var(--sp-3) var(--sp-4);border:3px solid var(--clr-border);border-radius:var(--r-lg);font-family:inherit;font-size:2rem;font-weight:800;letter-spacing:.3em;text-align:center;color:var(--clr-text)}.code-input-lg:focus{outline:none;border-color:var(--clr-brand)}.code-input-lg::placeholder{font-size:1.05rem;font-weight:600;letter-spacing:normal;color:var(--clr-text-faint)}.field-input{width:100%;min-height:var(--kid-tap);padding:var(--sp-3) var(--sp-4);border:2px solid var(--clr-border);border-radius:var(--r-md);font-family:inherit;font-size:var(--font-size-base);color:var(--clr-text)}.field-input:focus{outline:none;border-color:var(--clr-brand)}.avatar-row{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center}.avatar-btn{padding:4px;border:3px solid transparent;border-radius:var(--r-lg);background:var(--clr-surface-2, #f1f5f9);cursor:pointer;line-height:0;transition:border-color .12s ease,transform .12s ease}.avatar-btn img{display:block;width:56px;height:56px;border-radius:var(--r-md)}.avatar-btn:hover{transform:translateY(-2px)}.avatar-btn:focus-visible{outline:3px solid var(--clr-brand);outline-offset:2px}.avatar-btn[aria-pressed=true]{border-color:var(--clr-brand);background:var(--track-inf-light, #e0f2fe)}.kid-action{display:inline-flex;align-items:center;justify-content:center;min-height:var(--kid-tap);padding:var(--sp-3) var(--sp-8);border-radius:var(--r-full);font-size:var(--kid-text);font-weight:700;color:#fff;background:var(--clr-brand);box-shadow:var(--shadow-btn);transition:transform var(--transition-fast),filter var(--transition-fast)}.kid-action:hover{filter:brightness(1.06);transform:translateY(-2px)}.kid-action:active{transform:translateY(0)}.kid-action:focus-visible{outline:3px solid var(--clr-brand);outline-offset:3px}.kid-action:disabled{opacity:.6;transform:none}.grade-picker{display:flex;flex-wrap:wrap;gap:var(--sp-2);justify-content:center;margin-bottom:var(--sp-5)}.grade-chip{min-width:var(--kid-tap);min-height:var(--kid-tap);padding:var(--sp-2) var(--sp-4);border-radius:var(--r-full);border:2px solid var(--clr-border);background:var(--clr-surface);font-size:var(--kid-text);font-weight:700;color:var(--clr-text);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.grade-chip:hover{border-color:var(--clr-brand)}.grade-chip[aria-pressed=true]{border-color:var(--clr-brand);background:#eff6ff}.mission-grid{display:grid;gap:var(--sp-3)}@media(min-width:640px){.mission-grid{grid-template-columns:repeat(3,1fr)}}.mission-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--sp-1);min-height:8rem;padding:var(--sp-5) var(--sp-4);border:2px solid var(--clr-border);border-radius:var(--r-xl);background:var(--clr-surface);box-shadow:var(--shadow-sm);text-align:center;transition:transform var(--transition-fast),box-shadow var(--transition-base)}.mission-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-md)}.mission-card:focus-visible{outline:3px solid var(--clr-brand);outline-offset:3px}.mission-card__icon{font-size:2rem;line-height:1}.mission-card__title{font-size:var(--kid-text);font-weight:800;color:var(--clr-text)}.mission-card__meta{font-size:var(--font-size-sm);color:var(--clr-text-muted)}.mission-card--inf{border-color:var(--track-inf);background:var(--track-inf-light)}.mission-card--inf .mission-card__title{color:var(--track-inf-dark)}.mission-card--inf .mission-card__meta{color:var(--track-inf)}.mission-card--think{border-color:var(--track-think);background:var(--track-think-light)}.mission-card--think .mission-card__title{color:var(--track-think-dark)}.mission-card--think .mission-card__meta{color:var(--track-think)}.mission-card--ai{border-color:var(--track-ai);background:var(--track-ai-light)}.mission-card--ai .mission-card__title{color:var(--track-ai-dark)}.mission-card--ai .mission-card__meta{color:var(--track-ai)}.mission-card--warmup{border-color:var(--clr-amber);background:#fffbeb}.mission-card--warmup .mission-card__title{color:#78350f}.mission-card--training{border-color:#93c5fd;background:#eff6ff}.mission-card--training .mission-card__title{color:var(--clr-primary-dark)}.mission-card--challenge{border-color:#c4b5fd;background:#f5f3ff}.mission-card--challenge .mission-card__title{color:var(--clr-violet-dark)}.info-card{background:var(--clr-surface);border:1px solid var(--clr-border);border-radius:var(--r-xl);padding:var(--sp-5);color:var(--clr-text-muted);line-height:1.6}.info-card__heading{font-weight:800;color:var(--clr-text);margin-bottom:var(--sp-2)}.info-card--center{text-align:center}.info-card a{color:var(--clr-primary);font-weight:700}.info-card a:hover{text-decoration:underline}.finish-card{background:var(--clr-surface);border-radius:var(--r-2xl);box-shadow:var(--shadow-card);padding:var(--sp-8) var(--sp-6);text-align:center}.finish-card__label{font-size:var(--font-size-xl);font-weight:800;color:var(--clr-text)}.finish-card__stars{font-size:2.6rem;letter-spacing:.1em;margin:var(--sp-3) 0}.finish-card__score{font-size:var(--kid-text);color:var(--clr-text)}.finish-card__message{font-size:var(--kid-text);color:var(--clr-text-muted);margin-top:var(--sp-2)}.gate-card{background:#ecfdf5;border:2px solid #a7f3d0;border-radius:var(--r-xl);padding:var(--sp-5);color:#064e3b;line-height:1.6}.gate-card__heading{font-weight:800;margin-bottom:var(--sp-2)}.gate-form{display:flex;flex-direction:column;gap:var(--sp-3);max-width:26rem;margin-top:var(--sp-3)}.gate-consent{display:flex;gap:var(--sp-2);align-items:flex-start;font-size:var(--font-size-sm)}.gate-consent input{margin-top:3px;width:1.1rem;height:1.1rem;flex-shrink:0}.gate-card a{color:#047857;text-decoration:underline}.club-tracks{display:flex;flex-wrap:wrap;gap:var(--sp-3);margin-top:var(--sp-2)}@media(max-width:640px){body.mission-active #mission-quiz .btn-next{display:block;width:100%;min-height:var(--kid-tap-lg);position:sticky;bottom:0}body.mission-active #mission-quiz .quiz-feedback-wrap{max-height:24vh}}
