@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin-ext-variable.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Sans;font-style:italic;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin-ext-italic-variable.woff2) format("woff2");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Nunito Sans;font-style:normal;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin-variable.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}@font-face{font-family:Nunito Sans;font-style:italic;font-weight:200 1000;font-stretch:100%;font-display:swap;src:url(/fonts/nunito-sans-latin-italic-variable.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}@font-face{font-family:Andika;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/andika-latin-400.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}@font-face{font-family:Andika;font-style:normal;font-weight:700;font-display:swap;src:url(/fonts/andika-latin-700.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}@font-face{font-family:Bricolage Grotesque;font-style:normal;font-weight:400 800;font-stretch:100%;font-display:swap;src:url(/fonts/bricolage-grotesque-latin-variable.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}@font-face{font-family:DM Sans;font-style:normal;font-weight:400 700;font-display:swap;src:url(/fonts/dm-sans-latin-variable.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}@font-face{font-family:OpenDyslexic;font-style:normal;font-weight:400;font-display:swap;size-adjust:66%;src:url(/fonts/opendyslexic-latin-400.woff2) format("woff2")}@font-face{font-family:OpenDyslexic;font-style:normal;font-weight:700;font-display:swap;size-adjust:66%;src:url(/fonts/opendyslexic-latin-700.woff2) format("woff2")}.container{background:var(--container-bg);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:2rem;padding:var(--space-sm) var(--space-xl) var(--space-xl);width:min(95vw,75rem);max-width:75rem;position:relative;overflow:hidden;transition:all var(--transition-base)}@keyframes float{0%,to{transform:translate(0) rotate(0)}33%{transform:translate(30px,-30px) rotate(120deg)}66%{transform:translate(-20px,20px) rotate(240deg)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.classroom-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:0}.layout-column{display:flex;flex-direction:column;gap:1.25rem}.ui-icon:before{content:"";display:inline-block;width:1.35em;height:1.35em;vertical-align:-.34em;background:var(--ui-icon) center / contain no-repeat}.ui-icon-user{--ui-icon: url(../icons/person.svg)}.ui-icon-sun{--ui-icon: url(../icons/sun.svg)}.ui-icon-moon{--ui-icon: url(../icons/moon.svg)}.ui-icon-turtle{--ui-icon: url(../icons/turtle.svg)}.ui-icon-rocket{--ui-icon: url(../icons/rocket.svg)}.ui-icon-type{--ui-icon: url(../icons/type.svg)}.ui-icon-zoom-in{--ui-icon: url(../icons/zoom-in.svg)}.ui-icon-contrast{--ui-icon: url(../icons/contrast.svg)}.ui-icon-settings{--ui-icon: url(../icons/cog.svg)}.ui-icon-log-in{--ui-icon: url(../icons/log-in.svg)}.ui-icon-log-out{--ui-icon: url(../icons/log-out.svg)}.ui-icon-chevron-down{--ui-icon: url(../icons/chevron-down.svg)}.ui-icon-chart-column{--ui-icon: url(../icons/chart-column.svg)}.ui-icon-trending-up{--ui-icon: url(../icons/trending-up.svg)}.ui-icon-clipboard-list{--ui-icon: url(../icons/clipboard-list.svg)}.ui-icon-users{--ui-icon: url(../icons/users.svg)}.ui-icon-key{--ui-icon: url(../icons/key.svg)}.ui-icon-pencil{--ui-icon: url(../icons/pencil.svg)}.ui-icon-armchair{--ui-icon: url(../icons/armchair.svg)}.ui-icon-lock{--ui-icon: url(../icons/lock.svg)}.ui-icon-graduation-cap{--ui-icon: url(../icons/graduation-cap.svg)}.ui-icon-target{--ui-icon: url(../icons/target.svg)}.ui-icon-star{--ui-icon: url(../icons/star.svg)}.ui-icon-check{--ui-icon: url(../icons/check.svg)}.ui-icon-sparkles{--ui-icon: url(../icons/sparkles.svg)}.ui-icon-triangle-alert{--ui-icon: url(../icons/triangle-alert.svg)}.ui-icon-x{--ui-icon: url(../icons/x.svg)}.ui-icon-eye{--ui-icon: url(../icons/eye.svg)}.ui-icon-eye-off{--ui-icon: url(../icons/eye-off.svg)}.ui-icon-crown{--ui-icon: url(../icons/crown.svg)}.ui-icon-gold-medal{--ui-icon: url(../icons/gold-medal.svg)}.ui-icon-silver-medal{--ui-icon: url(../icons/silver-medal.svg)}.ui-icon-trophy{--ui-icon: url(../icons/trophy.svg)}.ui-icon-game-controller{--ui-icon: url(../icons/game-controller.svg)}.ui-icon-shield{--ui-icon: url(../icons/shield.svg)}.ui-icon-fire{--ui-icon: url(../icons/fire.svg)}.ui-icon-lightning{--ui-icon: url(../icons/lightning.svg)}.ui-icon-up-arrow{--ui-icon: url(../icons/up-arrow.svg)}.ui-icon-down-arrow{--ui-icon: url(../icons/down-arrow.svg)}.ui-icon-pause{--ui-icon: url(../icons/pause.svg)}.ui-icon-info{--ui-icon: url(../icons/info.svg)}.ui-icon-bin{--ui-icon: url(../icons/bin.svg)}.ui-icon-stopwatch{--ui-icon: url(../icons/stopwatch.svg)}.ui-icon-back-arrow{--ui-icon: url(../icons/back-arrow.svg)}.ui-icon-backspace{--ui-icon: url(../icons/backspace.svg)}.ui-icon-bomb{--ui-icon: url(../icons/bomb.svg)}.ui-icon-gift{--ui-icon: url(../icons/gift.svg)}.ui-icon-swap{--ui-icon: url(../icons/swap.svg)}.ui-icon-reflect{--ui-icon: url(../icons/reflect.svg)}.ui-icon-megaphone{--ui-icon: url(../icons/megaphone.svg)}.ui-icon-splat{--ui-icon: url(../icons/splat.svg)}.ui-icon-double{--ui-icon: url(../icons/double.svg)}.ui-icon-backpack{--ui-icon: url(../icons/backpack.svg)}.ui-icon-calendar{--ui-icon: url(../icons/calendar.svg)}.ui-icon-footprints{--ui-icon: url(../icons/footprints.svg)}.ui-icon-hundred{--ui-icon: url(../icons/hundred.svg)}.ui-icon-red-vs-blue{--ui-icon: url(../icons/red-vs-blue.svg)}.ui-icon-chaos-burst{--ui-icon: url(../icons/chaos-burst.svg)}.ui-icon-memo{--ui-icon: url(../icons/memo.svg)}.ui-icon-mixed-numbers{--ui-icon: url(../icons/mixed-numbers.svg)}.ui-icon-raid-boss{--ui-icon: url(../icons/raid-boss.png)}.ui-icon-home{--ui-icon: url(../icons/home.svg)}.ui-icon-books{--ui-icon: url(../icons/books.svg)}.ui-icon-game-controller:before,.ui-icon-eye:before,.ui-icon-eye-off:before,.ui-icon-sun:before,.ui-icon-moon:before,.ui-icon-key:before,.ui-icon-pencil:before,.ui-icon-graduation-cap:before,.ui-icon-tutorials:before,.ui-icon-armchair:before{background:none;width:auto;height:auto;font-size:1em;line-height:1;vertical-align:-.05em}.ui-icon-game-controller:before{content:"\1f3ae"}.ui-icon-eye:before{content:"\1f441\fe0f"}.ui-icon-eye-off:before{content:"\1f648"}.ui-icon-sun:before{content:"\1f31e"}.ui-icon-moon:before{content:"\1f31b"}.ui-icon-key:before{content:"\1f5dd\fe0f"}.ui-icon-pencil:before{content:"\270f\fe0f"}.ui-icon-graduation-cap:before{content:"\1f4c8"}.ui-icon-tutorials:before{content:"\1f393"}.ui-icon-armchair:before{content:"\1fa91"}.selection-screen,.test-screen,.finish-screen{display:none;opacity:0;transform:translateY(20px);transition:all var(--transition-slow)}.selection-screen.active,.test-screen.active,.finish-screen.active{display:block;opacity:1;transform:translateY(0)}.test-screen.active,.finish-screen.active{display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:90vh}.finish-screen.active{justify-content:flex-start}.selection-subtitle{text-align:center;margin-bottom:var(--space-xs);color:var(--text-color-secondary);font-weight:400}.mtc-header{width:min(95vw,75rem);max-width:75rem;display:flex;align-items:center;justify-content:space-between;padding:var(--space-sm) var(--space-lg);margin-bottom:var(--space-sm);flex-shrink:0}.mtc-logo{font-size:clamp(var(--font-size-xl),4vw + .5rem,var(--font-size-3xl));font-weight:800;font-style:italic;background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin:0;padding-right:.12em;cursor:default;letter-spacing:-.02em}.header-controls{display:flex;align-items:center;gap:var(--space-md)}.mode-badge{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:#28a74533;border:2px solid var(--color-accent-success);border-radius:2rem;font-weight:700;font-size:var(--font-size-sm);color:var(--color-accent-success);transition:all var(--transition-base)}.mode-badge-dot{width:.5rem;height:.5rem;background:var(--color-accent-success);border-radius:50%;animation:pulse-dot 2s ease-in-out infinite}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(.8)}}body.test-mode-active .mode-badge{background:#0793d133;border-color:#0793d1;color:#0793d1}body.test-mode-active .mode-badge-dot{background:#0793d1}.mode-badge-text:after{content:"Practice"}body.test-mode-active .mode-badge-text:after{content:"Test"}body.mtc-mode-active .mode-badge{background:#9c27b033;border-color:#9c27b0;color:#9c27b0}body.mtc-mode-active .mode-badge-dot{background:#9c27b0}body.mtc-mode-active .mode-badge-text:after{content:"MTC"}body.mtc-practice-active .mode-badge{background:#e67e2226;border-color:#e67e22;color:#e67e22}body.mtc-practice-active .mode-badge-dot{background:#e67e22}body.mtc-practice-active .mode-badge-text:after{content:"MTC Practise"}.header-mode-switch{display:none;align-items:center;background-color:#eeeeeef2;padding:.2rem;border-radius:1.5rem;box-shadow:var(--shadow-sm);gap:0}.header-mode-switch .mode-segment{font-size:var(--font-size-xs);font-weight:700;color:#666;padding:.4rem .75rem;cursor:pointer;transition:all var(--transition-base);background:transparent;border:none;border-radius:1.25rem;white-space:nowrap}.header-mode-switch .mode-segment:hover:not(.active){color:#333;background:#0000000d}.header-mode-switch .mode-segment.active{color:#fff;background:linear-gradient(135deg,var(--color-accent-success) 0%,#3ea55f 100%);box-shadow:0 2px 4px #0003}.header-mode-switch .mode-segment.active[data-mode=test]{background:linear-gradient(135deg,#0793d1,#2980b9)}.header-mode-switch .mode-segment.active[data-mode=mtc]{background:linear-gradient(135deg,#9c27b0,#7b1fa2)}.header-class-switch{display:none;align-items:center}.header-class-switch select{font-size:var(--font-size-xs);font-weight:700;padding:.4rem 1.8rem .4rem .65rem;border-radius:1.5rem;border:none;cursor:pointer;white-space:nowrap;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23888'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .6rem center;background-size:10px 6px;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}body:not(.light-mode) .header-class-switch select{background-color:#32323cf2;color:#ddd;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23aaa'/%3E%3C/svg%3E")}body:not(.light-mode) .header-class-switch select:hover{background-color:#3c3c4bf2}body.light-mode .header-class-switch select{background-color:#cbd5e1b3;color:#334155}body.light-mode .header-class-switch select:hover{background-color:#cbd5e1e6}body:not(.light-mode) .header-mode-switch{background-color:#32323cf2}body:not(.light-mode) .header-mode-switch .mode-segment{color:#aaa}body:not(.light-mode) .header-mode-switch .mode-segment:hover:not(.active){color:#ddd;background:#ffffff1a}body:not(.light-mode) .header-mode-switch .mode-segment.active{color:#fff}body.light-mode .header-mode-switch{background-color:#cbd5e1b3}body.light-mode .header-mode-switch .mode-segment{color:#475569}body.light-mode .header-mode-switch .mode-segment:hover:not(.active){color:#1e293b;background:#ffffff80}body.light-mode .header-mode-switch .mode-segment.active{color:#fff}.user-menu{position:relative}.user-menu-btn{display:flex;align-items:center;gap:var(--space-xs);padding:var(--space-xs) var(--space-md);background:var(--seat-bg);border:2px solid var(--border-color);border-radius:2rem;color:var(--text-color-primary);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.user-menu-btn:hover{border-color:var(--color-accent-primary);box-shadow:var(--shadow-md);transform:translateY(-1px)}.user-icon{font-size:1.25rem}.user-name{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.menu-arrow{font-size:.625rem;transition:transform var(--transition-base)}.user-menu.open .menu-arrow{transform:rotate(180deg)}.user-dropdown{position:absolute;top:calc(100% + var(--space-xs));right:0;min-width:180px;background:var(--seat-bg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:2px solid var(--border-color);border-radius:var(--space-md);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-10px);transition:all var(--transition-base);z-index:1000;overflow:hidden}.user-menu.open .user-dropdown{opacity:1;visibility:visible;transform:translateY(0)}.dropdown-item{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:var(--space-sm) var(--space-md);background:transparent;border:none;color:var(--text-color-primary);font-size:var(--font-size-sm);font-weight:600;cursor:pointer;transition:background var(--transition-fast);text-align:left}.dropdown-item:hover{background:#ffffff1a}.dropdown-icon{font-size:1.125rem;width:1.5rem;text-align:center}.dropdown-divider{height:1px;background:var(--border-color);margin:var(--space-xs) 0}#darkModeToggle .icon-moon{display:none}#darkModeToggle .icon-sun,body.light-mode #darkModeToggle .icon-moon{display:inline}body.light-mode #darkModeToggle .icon-sun,#performanceModeToggle .icon-perf-on,#performanceModeToggle .perf-text-on{display:none}#performanceModeToggle .icon-perf-off,#performanceModeToggle .perf-text-off{display:inline}body.reduced-motion #performanceModeToggle .icon-perf-off,body.reduced-motion #performanceModeToggle .perf-text-off{display:none}body.reduced-motion #performanceModeToggle .icon-perf-on,body.reduced-motion #performanceModeToggle .perf-text-on{display:inline}#authBtn .icon-login{display:none}#authBtn .icon-logout,body.logged-out #authBtn .icon-login{display:inline}body.logged-out #authBtn .icon-logout,.admin-only{display:none}body:not(.logged-out):not(.pupil-mode) .header-mode-switch{display:flex}body:not(.logged-out):not(.pupil-mode) .mode-badge{display:none}body.logged-out .header-mode-switch,body.pupil-mode .header-mode-switch{display:none}body.logged-out .mode-badge,body.pupil-mode .mode-badge{display:flex}body:not(.logged-out) .admin-only{display:flex}body:not(.logged-out) .dropdown-divider.admin-only{display:block}body:has(.test-screen.active) .mtc-header,body:has(.finish-screen.active) .mtc-header{display:none}body:has(.class-login-overlay[style*=flex]) .mtc-header{display:none}.btn{background:linear-gradient(135deg,var(--btn-primary-bg),var(--btn-primary-hover));color:#fff;padding:var(--space-md) var(--space-xl);font-size:var(--font-size-base);font-weight:700;letter-spacing:.02em;border:none;border-radius:1.5rem;cursor:pointer;margin:var(--space-xs) var(--space-sm);transition:all .1s ease-out;width:90%;max-width:15.625rem;text-align:center;touch-action:manipulation;-webkit-tap-highlight-color:transparent;box-shadow:0 6px #0003,0 6px 10px #00000040,inset 0 1px #ffffff4d;transform:translateY(0);position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .2s}.btn:hover{transform:translateY(-2px);box-shadow:0 8px #0003,0 12px 16px #0000004d,inset 0 1px #ffffff4d;filter:brightness(1.1)}.btn:hover:after{opacity:1}.btn:active{transform:translateY(4px);box-shadow:0 2px #0003,0 3px 4px #0003,inset 0 1px #ffffff4d}.btn:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:3px}.btn:disabled{background:#bdc3c7;color:#7f8c8d;cursor:not-allowed;transform:none;box-shadow:none}.btn-save{background:linear-gradient(to bottom,#0793d1,#2980b9)}.btn-reset{background:linear-gradient(to bottom,#f39c12,#d35400)}.btn-fix{background:linear-gradient(to bottom,#5fd47f,#37b45f);text-shadow:0 1px 2px rgba(0,0,0,.25);box-shadow:0 6px #2b8f4b,0 8px 18px #37b45f73,inset 0 1px #ffffff59}.btn-fix .btn-fix-label:before{content:"\1f3af";margin-right:.4em;font-size:1.05em;vertical-align:-.04em}.btn-fix:hover:not(:disabled){box-shadow:0 8px #2b8f4b,0 12px 24px #37b45f8c,inset 0 1px #ffffff59}.btn-fix:active:not(:disabled){box-shadow:0 2px #2b8f4b,0 4px 8px #37b45f66,inset 0 1px #ffffff59}.btn-small{padding:6px 12px;font-size:.85rem}.btn-outline,.btn-cancel{background:transparent;border:1px solid var(--border-color);color:var(--text-color-primary);box-shadow:none}.btn-outline:hover:not(:disabled),.btn-cancel:hover:not(:disabled){background:#ffffff1a;box-shadow:none;filter:none;transform:translateY(-1px)}.btn-outline:active:not(:disabled),.btn-cancel:active:not(:disabled){box-shadow:none;transform:translateY(0)}body.light-mode .btn-outline,body.light-mode .btn-cancel{border-color:#94a3b866}body.light-mode .btn-outline:hover:not(:disabled),body.light-mode .btn-cancel:hover:not(:disabled){background:#0000000d}.btn-team-change{background:linear-gradient(135deg,#e74c3c,#e74c3c 50%,#3498db 50%,#3498db);color:#fff;font-weight:600;margin-right:10px;border:2px solid rgba(255,255,255,.3)}.btn-team-change:hover:not(:disabled){filter:brightness(1.1)}.btn-team-change.on-red-team{background:linear-gradient(135deg,#e74c3c,#c0392b);border-color:#c0392b}.btn-team-change.on-blue-team{background:linear-gradient(135deg,#3498db,#2980b9);border-color:#2980b9}.btn-sm{padding:.5rem 1rem;font-size:.85rem}.btn-danger{background:#dc3545}.btn-danger:hover{background:#c82333}.btn-success{background:var(--color-accent-success)}.btn-success:hover{background:#218838}.btn-warning{background:#e6a800;color:#1a1a2e}.btn-warning:hover{background:#cc9600}.btn-icon{background:transparent;border:none;box-shadow:none;color:var(--text-color-primary);padding:.5rem;cursor:pointer;opacity:.8;transition:opacity .15s ease}button.btn-icon{font-size:1.4rem;line-height:1}.btn-icon:hover{opacity:1}*{scrollbar-width:thin;scrollbar-color:var(--scrollbar-thumb) var(--scrollbar-track)}::-webkit-scrollbar{width:var(--scrollbar-width);height:var(--scrollbar-width)}::-webkit-scrollbar-track{background:var(--scrollbar-track);border-radius:var(--scrollbar-radius)}::-webkit-scrollbar-thumb{background:var(--scrollbar-thumb);border-radius:var(--scrollbar-radius);border:2px solid transparent;background-clip:padding-box;transition:background .2s ease}::-webkit-scrollbar-thumb:hover{background:var(--scrollbar-thumb-hover);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:var(--scrollbar-thumb-active);border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-corner{background:transparent}.table-group{position:relative;background:#ffffff08;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:var(--space-lg);box-shadow:var(--glass-shadow);padding:var(--space-lg);transition:all var(--transition-base);min-height:12.5rem;border:var(--glass-border)}body.light-mode .table-group{background:var(--container-bg);border:1px solid rgba(148,163,184,.2);box-shadow:0 4px 16px #0f172a0f}.table-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--space-md);height:100%}.student-seat{height:5.5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--border-color);border-radius:var(--space-md);cursor:pointer;transition:all .3s cubic-bezier(.25,.8,.25,1);background:var(--seat-bg);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);position:relative;-webkit-user-select:none;user-select:none;overflow:hidden;box-shadow:var(--shadow-sm);touch-action:manipulation;-webkit-tap-highlight-color:transparent}.student-seat:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at center,rgba(255,255,255,.1),transparent 70%);opacity:0;transition:opacity .3s ease;pointer-events:none}.student-seat:hover{transform:translateY(-6px) scale(1.03);box-shadow:0 12px 20px #0003;border-color:var(--color-accent-primary);z-index:5}.student-seat:hover:before{opacity:1}.student-seat.my-seat{overflow:visible;z-index:10}body.light-mode .student-seat{background:var(--container-bg);border:2px solid rgba(148,163,184,.3);box-shadow:0 2px 8px #0f172a0a}body.light-mode .student-seat:hover{border-color:#f00842;border-style:solid;box-shadow:0 8px 20px #0f172a1a}body.light-mode .student-seat.completed{background:linear-gradient(135deg,#dcfce7f2,#bbf7d0cc);border:3px solid #22c55e;border-style:solid}body.light-mode .student-seat.absent{background:#eff3f8f2;border-color:#94a3b84d}.student-seat.completed{background:linear-gradient(135deg,var(--seat-completed-bg) 0%,rgba(78,203,113,.2) 100%);border-color:var(--seat-completed-border);border-width:3px;cursor:pointer;overflow:visible}.student-seat.completed:before,.student-seat.is-active:before{background:none;box-shadow:0 0 20px #4ecb7180;border-radius:inherit;transition:none;animation:glowFade 2s ease-in-out infinite}.student-seat.is-active:before{box-shadow:0 0 20px #ffc94799}.student-seat.completed:after{content:"\2713";position:absolute;top:.3125rem;right:.3125rem;color:var(--seat-completed-border);font-size:1.25rem;font-weight:700}@keyframes checkBounce{0%{transform:scale(0) rotate(-180deg)}50%{transform:scale(1.3) rotate(20deg)}to{transform:scale(1) rotate(0)}}.student-seat.is-active,.student-seat.is-active:hover{background:linear-gradient(135deg,#ffc94733,#ffc9470d);transform:none;border-color:var(--color-accent-warning);cursor:default;overflow:visible}.student-seat.is-active .test-level{flex-grow:1}.student-seat.absent{background:linear-gradient(135deg,var(--seat-absent-bg) 0%,rgba(150,150,150,.1) 100%);border-color:var(--seat-absent-border);opacity:.7}.student-seat.absent .student-name,.student-seat.absent .test-level{color:var(--text-color-secondary);text-decoration:line-through}.student-seat[draggable=true]{cursor:grab;opacity:.9}.student-seat.dragging{opacity:.7;transform:scale(.95) rotate(5deg)}.drag-over{border:.125rem dashed var(--btn-primary-bg);transform:scale(1.05)}.student-name{font-size:var(--font-size-base);font-weight:700;text-align:center;color:var(--text-color-primary);pointer-events:none;display:flex;align-items:center;justify-content:center;gap:var(--space-xs);max-width:100%;min-width:0;padding:0 var(--space-xs)}.name-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.crown-indicator{font-size:1.75rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));animation:crownFloat 3s ease-in-out infinite;flex-shrink:0}@keyframes crownFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.test-level{font-size:.75rem;font-weight:lighter;color:var(--text-color-secondary);margin-top:.3125rem;pointer-events:none}@keyframes wave{0%,to{transform:translateY(0)}50%{transform:translateY(-.3125rem)}}.student-seat.is-active .student-name{color:var(--seat-active-text);overflow:hidden;justify-content:flex-start;gap:.15rem;font-size:calc(var(--font-size-base) * .9)}.student-seat.is-active .student-name>:first-child{margin-left:auto}.student-seat.is-active .student-name>:last-child{margin-right:auto}.student-seat.is-active .crown-indicator{font-size:1.25rem;flex-shrink:1}.student-seat.is-active .student-name span:not(.crown-indicator):not(.leaderboard-rank-indicator){display:inline-block;animation:wave 1.2s infinite}.student-status-message{font-size:var(--font-size-xs);font-style:italic;color:var(--seat-active-text);margin-top:var(--space-xs);font-weight:600;animation:fadeInUp .5s var(--animation-bounce)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.empty-seat{height:5.5rem;border:3px dashed var(--border-color);border-radius:var(--space-md);background:#ffffff05;opacity:.5;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:opacity .2s ease}.empty-seat:hover{opacity:.75}.empty-seat-plus{font-size:1.5rem;font-weight:300;color:var(--text-color);opacity:.3;line-height:1;transition:opacity .2s ease;-webkit-user-select:none;user-select:none}.empty-seat:hover .empty-seat-plus{opacity:.55}.skeleton-seat{cursor:default!important;pointer-events:none}.skeleton-seat .skeleton-line{border-radius:4px;background:#ffffff14;animation:skeletonPulse 1.2s ease-in-out infinite}body.light-mode .skeleton-seat .skeleton-line{background:#00000014}.skeleton-seat .skeleton-name{width:70%;height:14px;margin-bottom:8px}.skeleton-seat .skeleton-level{width:40%;height:10px}.skeleton-leaderboard-item{padding:10px 12px;list-style:none}.skeleton-leaderboard-item .skeleton-line{border-radius:4px;background:#ffffff14;animation:skeletonPulse 1.2s ease-in-out infinite}body.light-mode .skeleton-leaderboard-item .skeleton-line{background:#00000014}@keyframes skeletonPulse{0%,to{opacity:.4}50%{opacity:1}}@media(max-width:1366px){.student-seat,.empty-seat{height:4.5rem;border-radius:var(--space-md)}}.student-seat .seat-design{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;border-radius:inherit;overflow:hidden;pointer-events:none;transition:opacity .5s ease}.student-seat .seat-design-fill{position:absolute;top:0;right:0;bottom:0;left:0;transition:opacity .5s ease}.student-seat.designed .student-name,.student-seat.designed .test-level{position:relative;z-index:1}.seat-design .seat-sticker{position:absolute;aspect-ratio:1 / 1;pointer-events:none;overflow:visible}body:not(.reduced-motion):not(.high-contrast):not(.test-mode-active):not(.mtc-mode-active):not(.battle-mode-active):not(.raid-boss-active) .student-seat.designed:not(.completed):not(.absent):not(.is-active) .student-name .name-text,body:not(.reduced-motion):not(.high-contrast):not(.test-mode-active):not(.mtc-mode-active):not(.battle-mode-active):not(.raid-boss-active) .student-seat.designed:not(.completed):not(.absent):not(.is-active) .test-level{color:var(--pill-text);text-shadow:var(--pill-text-shadow, none)}.student-seat.completed .seat-design,.student-seat.absent .seat-design{display:none}.student-seat.is-active .seat-design-fill{opacity:0}.student-seat.is-active .seat-design{opacity:.6}body.reduced-motion .student-seat .seat-design,body.high-contrast .student-seat .seat-design,body.test-mode-active .student-seat .seat-design,body.mtc-mode-active .student-seat .seat-design{display:none}.student-seat.my-seat .seat-you-pin{position:absolute;top:-9px;right:-8px;z-index:12;background:linear-gradient(135deg,#ec4899,#6366f1);color:#fff;font-size:.6rem;font-weight:800;letter-spacing:.02em;line-height:1;padding:3px 8px;border-radius:999px;box-shadow:0 3px 8px #0f172a59;pointer-events:none;white-space:nowrap}.student-seat.my-seat{outline:2px solid rgba(99,102,241,.55);outline-offset:2px}.student-seat.my-seat.you-pin-bounce .seat-you-pin{animation:youPinBounce .8s ease-in-out 0s 4}@keyframes youPinBounce{0%,to{transform:translateY(0)}30%{transform:translateY(-6px)}60%{transform:translateY(-2px)}}body.reduced-motion .student-seat.my-seat.you-pin-bounce .seat-you-pin{animation:none}.student-seat.my-seat.seat-saved-shimmer{animation:seatShimmer .7s ease}@keyframes seatShimmer{0%{transform:scale(1);box-shadow:0 0 #6366f100}35%{transform:scale(1.08);box-shadow:0 0 18px 4px #6366f18c}70%{transform:scale(.99);box-shadow:0 0 10px 2px #6366f140}to{transform:scale(1);box-shadow:0 0 #6366f100}}body.reduced-motion .student-seat.my-seat.seat-saved-shimmer{animation:none}.student-seat.is-champion-gold,.student-seat.is-champion-silver{overflow:visible}.student-seat.is-champion-gold{box-shadow:0 0 0 2px #ffcd3cf2,0 6px 22px #ffbe0073}.student-seat.is-champion-silver{box-shadow:0 0 0 2px #cbd5e1f2,0 6px 20px #94a3b866}.seat-champion-badge{position:absolute;top:-14px;left:-12px;z-index:13;display:flex;align-items:center;justify-content:center;font-size:1.55rem;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 3px rgba(0,0,0,.5));animation:champBadgePulse 1.8s ease-in-out infinite}.seat-champion-badge .ui-icon:before{vertical-align:0}@keyframes champBadgePulse{0%,to{transform:scale(1)}50%{transform:scale(1.15)}}body.reduced-motion .seat-champion-badge{animation:none}.student-seat.is-champion-gold .crown-indicator,.student-seat.is-champion-silver .crown-indicator{display:none}.student-seat.my-seat.is-champion-gold{outline-color:#ffcd3cd9}.student-seat.my-seat.is-champion-silver{outline-color:#cbd5e1d9}body.pupil-mode .dropdown-item.pupil-only{display:flex!important}.design-seat-modal-content{max-width:34rem;max-height:calc(100vh - 2 * var(--space-lg));padding:var(--space-lg);display:flex;flex-direction:column;align-items:center;gap:var(--space-md);overflow:hidden}.design-seat-modal-content h2{margin:0}.design-seat-modal-content>h2,.design-seat-modal-content>.pill-economy,.design-seat-modal-content>.pill-canvas-wrap,.design-seat-modal-content>.pill-design-tabs,.design-seat-modal-content>.pill-editor-actions{flex:0 0 auto}.pill-canvas{position:relative;width:100%;max-width:30rem;aspect-ratio:161 / 88;container-type:inline-size;border:2px solid var(--border-color);border-radius:1.75rem;background:var(--seat-bg);overflow:hidden;box-shadow:var(--shadow-sm, 0 2px 8px rgba(0, 0, 0, .2));touch-action:none}.pill-canvas-wrap{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.pill-move-hint{margin:0;font-size:var(--font-size-xs);font-weight:600;color:var(--text-color-secondary);text-align:center}.pill-locked-box{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.1rem;min-width:0;max-width:72%;padding:.35rem .8rem;border:2px dashed rgba(255,255,255,.65);border-radius:1rem;background:#0000001f;text-align:center;pointer-events:none}.pill-lock-icon{font-size:1rem;line-height:1;opacity:.85}.pill-locked-name{font-family:var(--font-display);font-weight:800;font-size:11.2cqw;line-height:1.1;color:var(--text-color-primary)}.pill-locked-level{font-weight:700;font-size:7.5cqw;color:var(--text-color-secondary)}@supports not (font-size: 1cqw){.pill-locked-name{font-size:clamp(1.1rem,4.5vw,1.6rem)}.pill-locked-level{font-size:clamp(.8rem,3vw,1rem)}}.pill-editor-section{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.pill-editor-label{font-weight:700;font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--text-color-secondary)}.pill-design-panel{height:17.5rem;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;justify-content:flex-start}.pill-colour-tools{width:100%;display:flex;flex-direction:column;justify-content:flex-start}.pill-colour-view{display:flex;flex-direction:column;align-items:center;gap:var(--space-sm)}.pill-colour-view.pill-colour-anim{animation:pillColourIn .18s ease-out}@keyframes pillColourIn{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:none}}.pill-colour-label{margin:0;font-weight:800;font-size:var(--font-size-xs);letter-spacing:.02em;color:var(--text-color-secondary)}.pill-colour-rail{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-sm);width:100%;max-width:100%;padding:8px;box-sizing:border-box}.pill-colour-coins{display:flex;gap:var(--space-sm);justify-content:center}.pill-colour-coin{width:3rem;height:3rem;min-width:3rem;padding:0;border-radius:50%;border:2px solid var(--border-color);background:#ccc;cursor:pointer;position:relative;outline:3px solid transparent;outline-offset:3px;transition:transform .1s ease-out,outline-color .1s ease-out;touch-action:manipulation}.pill-colour-coin:hover{transform:translateY(-2px)}.pill-colour-coin.selected{outline-color:var(--color-accent-info)}.pill-colour-coin:focus-visible{outline-color:var(--color-accent-info)}.pill-colour-coin-none{background:var(--seat-bg)}.pill-colour-coin-none:before{content:"";position:absolute;top:3px;right:3px;bottom:3px;left:3px;border-radius:50%;background:linear-gradient(135deg,transparent calc(50% - 1.5px),var(--text-color-secondary) calc(50% - 1.5px),var(--text-color-secondary) calc(50% + 1.5px),transparent calc(50% + 1.5px));opacity:.7}.pill-colour-coin-wheel{background:conic-gradient(from 0deg,#ff5f6d,#ffc371,#47e08b,#22d3ee,#7c6cff,#ff6ad5,#ff5f6d);border-color:#fff9}.pill-colour-arrow{width:3rem;height:3rem;min-width:3rem;border-radius:50%;border:2px solid var(--border-color);background:var(--seat-bg);color:var(--color-accent-info);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease-out,opacity .1s ease-out;touch-action:manipulation}.pill-colour-arrow:hover:not([disabled]){transform:translateY(-2px)}.pill-colour-arrow[disabled]{opacity:.28;cursor:default}.pill-colour-arrow:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.sticker-tray{display:flex;flex-wrap:wrap;justify-content:center;align-content:flex-start;gap:var(--space-sm);width:100%;min-height:3rem;max-height:min(15rem,42vh);overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-sm);border-radius:1rem;background:var(--seat-bg)}.sticker-chip{width:2.75rem;height:2.75rem;min-width:2.75rem;min-height:2.75rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:none;border-radius:.75rem;background:var(--container-bg);cursor:pointer;touch-action:pan-y;transition:transform .1s ease-out,box-shadow .1s ease-out;box-shadow:0 2px #00000024,inset 0 1px #ffffff40}.sticker-chip:hover{transform:translateY(-2px)}.sticker-chip:active{transform:translateY(1px);box-shadow:inset 0 1px #ffffff40}.sticker-chip svg{width:80%;height:80%;pointer-events:none}.sticker-chip.is-grabbed{transform:scale(1.12);outline:3px solid var(--color-accent-info);outline-offset:2px;box-shadow:0 6px 12px #00000047,inset 0 1px #ffffff40}.pill-tray-ghost{position:fixed;z-index:5000;width:3.25rem;height:3.25rem;margin:0;display:flex;align-items:center;justify-content:center;border-radius:.85rem;background:var(--container-bg);box-shadow:0 10px 20px #0000004d,inset 0 1px #ffffff40;opacity:.95;transform:translate(-50%,-50%) scale(1.08);pointer-events:none}.pill-tray-ghost svg{width:80%;height:80%;pointer-events:none}.sticker-hint{margin:0;min-height:1rem;font-size:var(--font-size-xs);font-weight:700;color:var(--text-color-secondary);text-align:center;opacity:0;transition:opacity .15s ease}.sticker-hint.visible{opacity:1}@keyframes trayShake{0%,to{transform:translate(0)}20%{transform:translate(-5px)}40%{transform:translate(5px)}60%{transform:translate(-4px)}80%{transform:translate(3px)}}.sticker-tray.shake{animation:trayShake .4s ease}.pill-canvas-sticker{position:absolute;aspect-ratio:1 / 1;transform:translate(-50%,-50%);touch-action:none;cursor:grab;z-index:2}.pill-canvas-sticker svg{width:100%;height:100%;display:block;overflow:visible;pointer-events:none}.pill-canvas-sticker.selected{z-index:5;cursor:grabbing}.pill-canvas-sticker.selected:before{content:"";position:absolute;top:-8%;right:-8%;bottom:-8%;left:-8%;border:2px solid var(--color-accent-info, #3b82f6);border-radius:.5rem;pointer-events:none}.pill-sticker-handle{position:absolute;width:2.75rem;height:2.75rem;margin:0;padding:0;border:none;background:transparent;display:none;align-items:center;justify-content:center;cursor:pointer;touch-action:none;z-index:6}.pill-handle-dot{display:flex;align-items:center;justify-content:center;width:1.6rem;height:1.6rem;border-radius:50%;background:#fff;box-shadow:0 1px 4px #0006;font-size:.95rem;line-height:1}.pill-canvas-sticker.selected .pill-sticker-bin{display:flex}.pill-canvas-sticker.bin-left .pill-sticker-bin{left:0;right:auto}.pill-canvas-sticker.bin-right .pill-sticker-bin{right:0;left:auto}.pill-canvas-sticker.bin-top .pill-sticker-bin{top:0;bottom:auto}.pill-canvas-sticker.bin-bottom .pill-sticker-bin{bottom:0;top:auto}.pill-canvas-sticker.bin-left.bin-top .pill-sticker-bin{transform:translate(-50%,-50%)}.pill-canvas-sticker.bin-left.bin-bottom .pill-sticker-bin{transform:translate(-50%,50%)}.pill-canvas-sticker.bin-right.bin-top .pill-sticker-bin{transform:translate(50%,-50%)}.pill-canvas-sticker.bin-right.bin-bottom .pill-sticker-bin{transform:translate(50%,50%)}.pill-sticker-resize{bottom:0;right:0;transform:translate(50%,50%);cursor:nwse-resize}.pill-canvas.unlock-resize .pill-canvas-sticker.selected .pill-sticker-resize{display:flex}.pill-sticker-rotate{top:0;left:50%;transform:translate(-50%,-150%);cursor:grab}.pill-canvas.unlock-rotate .pill-canvas-sticker.selected .pill-sticker-rotate{display:flex}.pill-editor-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-md);width:100%}.pill-btn{flex:1 1 5rem;max-width:9rem;min-height:3.25rem;padding:.75rem 1rem;border:none;border-radius:1.25rem;font-family:inherit;font-size:var(--font-size-base);font-weight:800;color:#fff;cursor:pointer;transition:transform .1s ease-out,filter .1s ease-out;box-shadow:0 5px #00000038,0 6px 10px #00000038,inset 0 1px #ffffff4d;touch-action:manipulation}.pill-btn:hover{transform:translateY(-2px);filter:brightness(1.08)}.pill-btn:active{transform:translateY(3px);box-shadow:0 2px #00000038,inset 0 1px #ffffff4d}.pill-btn-save{background:linear-gradient(to bottom,var(--color-accent-success),#1f9c3d)}.pill-btn-undo{background:linear-gradient(to bottom,var(--color-accent-special),#8b6ef0)}.pill-btn-cancel{background:linear-gradient(to bottom,var(--color-accent-error),#ff5252)}@media(max-width:480px){.design-seat-modal-content{padding:var(--space-md);gap:var(--space-md)}}body.reduced-motion .pill-btn,body.reduced-motion .sticker-chip,body.reduced-motion .sticker-hint{transition:none}body.reduced-motion .pill-btn:hover,body.reduced-motion .pill-btn:active,body.reduced-motion .sticker-chip:hover,body.reduced-motion .sticker-chip:active,body.reduced-motion .sticker-chip.is-grabbed{transform:none}body.reduced-motion .sticker-tray.shake{animation:none}.design-seat-modal-content,.pill-shop-modal-content{--pill-gold: #f6b93b;--pill-gold-deep: #cf850f}.pill-coin{display:inline-block;flex:none;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff3c4 0%,var(--pill-gold) 45%,var(--pill-gold-deep) 100%);border:1px solid var(--pill-gold-deep);box-shadow:inset 0 -1px 2px #78480073,inset 0 1px 1px #fff9}.pill-coin-lg{width:1.4rem;height:1.4rem}.pill-coin-sm{width:.9rem;height:.9rem;vertical-align:-.08rem}.pill-economy{width:100%;display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:var(--space-sm) var(--space-md);margin-top:calc(-1 * var(--space-sm))}.pill-token-chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .85rem .3rem .5rem;border-radius:var(--radius-pill);background:var(--container-bg);border:1px solid var(--border-color);box-shadow:inset 0 1px #ffffff26}.pill-token-count{font-family:var(--font-display, inherit);font-size:var(--font-size-lg);font-weight:800;line-height:1;min-width:.7em;text-align:center;color:var(--text-color-primary)}.pill-next-token{font-size:var(--font-size-xs);font-weight:600;color:var(--text-color-secondary)}.pill-shop{width:100%;display:flex;flex-direction:column;gap:var(--space-sm)}.pill-shop-aisles{display:flex;gap:var(--space-sm)}.pill-shop-aisle{flex:1 1 0;min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;padding:.5rem .75rem;border:2px solid var(--border-color);border-radius:1.1rem;background:var(--seat-bg);color:var(--text-color-secondary);font-family:inherit;font-size:var(--font-size-base);font-weight:800;cursor:pointer;touch-action:manipulation;transition:transform .1s ease-out,background .12s ease-out,color .12s ease-out,border-color .12s ease-out}.pill-shop-aisle:hover{transform:translateY(-1px)}.pill-shop-aisle.is-selected{background:linear-gradient(to bottom,var(--color-accent-info),#00b3d6);border-color:transparent;color:#04222b;box-shadow:0 3px #0000002e}.pill-shop-collections{display:flex;align-items:center;gap:var(--space-xs);flex:0 0 auto;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scroll-snap-type:x proximity;padding:.15rem .15rem .35rem}.pill-shop-collection{flex:0 0 auto;scroll-snap-align:center;min-height:2.2rem;padding:.35rem .85rem;border:1.5px solid var(--border-color);border-radius:var(--radius-pill);background:transparent;color:var(--text-color-secondary);font-family:inherit;font-size:var(--font-size-xs);font-weight:700;white-space:nowrap;cursor:pointer;touch-action:manipulation;transition:transform .1s ease-out,background .12s ease-out,color .12s ease-out,border-color .12s ease-out}.pill-shop-collection:hover{transform:translateY(-1px)}.pill-shop-collection.is-selected{background:#00b3d629;border-color:var(--color-accent-info);color:var(--text-color-primary);font-weight:800}.pill-shop-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(7rem,1fr));align-content:start;gap:var(--space-sm);max-height:17rem;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-sm);border-radius:var(--radius-lg);background:var(--seat-bg)}.pill-shop-grid-powers{grid-template-columns:repeat(auto-fill,minmax(9rem,1fr))}.pill-shop-empty{grid-column:1 / -1;margin:0;padding:var(--space-md);text-align:center;font-size:var(--font-size-xs);color:var(--text-color-secondary)}.pill-shop-card{position:relative;display:flex;flex-direction:column;align-items:center;gap:.4rem;min-height:7rem;padding:.7rem .55rem .6rem;border:2px solid var(--border-color);border-radius:var(--radius-md);background:var(--container-bg);color:var(--text-color-primary);font-family:inherit;text-align:center;cursor:pointer;touch-action:manipulation;box-shadow:0 3px #0000001f,inset 0 1px #ffffff2e;transition:transform .1s ease-out,box-shadow .1s ease-out,opacity .15s ease-out,border-color .15s ease-out}.pill-shop-card-name{font-size:var(--font-size-sm);font-weight:700;line-height:1.2;color:var(--text-color-primary)}.pill-shop-card-foot{display:inline-flex;align-items:center;justify-content:center;gap:.3rem;margin-top:auto;font-size:var(--font-size-xs);font-weight:800;color:var(--text-color-secondary)}.pill-shop-lock,.pill-shop-tick{display:inline-flex;align-items:center}.pill-shop-price{display:inline-flex;align-items:center;gap:.2rem}.pill-shop-card.is-buyable:hover{transform:translateY(-2px);box-shadow:0 5px #00000024,inset 0 1px #fff3}.pill-shop-card.is-buyable:active{transform:translateY(2px);box-shadow:0 1px #00000024,inset 0 1px #fff3}.pill-shop-card.is-buyable .pill-shop-lock,.pill-shop-card.is-buyable .pill-shop-price{color:var(--pill-gold-deep)}.pill-shop-card.is-locked{opacity:.6}.pill-shop-card.is-locked .pill-shop-preview{filter:grayscale(.7)}.pill-shop-card.is-locked:active{transform:none;box-shadow:0 3px #0000001f}.pill-shop-card.is-owned{background:var(--seat-bg);border-color:#28a7458c;box-shadow:inset 0 1px #ffffff1f;cursor:default}.pill-shop-card.is-owned:hover{transform:none}.pill-shop-card.is-owned .pill-shop-card-foot,.pill-shop-card.is-owned .pill-shop-tick{color:var(--color-accent-success)}.pill-shop-card.is-busy{opacity:.5;pointer-events:none}.pill-shop-new{position:absolute;top:-.4rem;right:-.3rem;padding:.08rem .45rem;border-radius:var(--radius-pill);background:linear-gradient(135deg,var(--pill-gold) 0%,var(--pill-gold-deep) 100%);color:#3b2600;font-size:.65rem;font-weight:900;letter-spacing:.03em;box-shadow:0 2px 5px #78480066;pointer-events:none}.pill-shop-just-won{position:absolute;top:-.5rem;right:-.3rem;padding:.1rem .5rem;border-radius:var(--radius-pill);background:linear-gradient(135deg,#ff5f9e,#ffb347);color:#fff;font-size:.62rem;font-weight:900;letter-spacing:.02em;white-space:nowrap;box-shadow:0 2px 8px #ff647880;text-shadow:0 1px 1px rgba(0,0,0,.25);pointer-events:none;animation:justWonPulse 1.4s ease-in-out infinite}@keyframes justWonPulse{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}.pill-shop-card.is-just-won{box-shadow:0 0 0 2px #ffb447e6,0 4px 16px #ff788c66}body.reduced-motion .pill-shop-just-won{animation:none}.pill-shop-preview{display:flex;align-items:center;justify-content:center;gap:.2rem;height:2.4rem}.pill-shop-emoji{width:1.5rem;height:1.5rem;display:inline-flex;align-items:center;justify-content:center;border-radius:.4rem;background:#7f7f7f1f}.pill-shop-emoji svg{width:100%;height:100%}.pill-shop-preview-colours{gap:.25rem}.pill-shop-dot{width:1.05rem;height:1.05rem;border-radius:50%;box-shadow:inset 0 1px 1px #fff6,0 1px 2px #00000040}.pill-shop-preview-ability{font-size:1.6rem}.pill-ability-glyph{color:var(--color-accent-info);font-weight:900;line-height:1}.pill-ability-slot .pill-ability-plus{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;border:2px dashed var(--text-color-secondary);border-radius:.5rem;font-size:1.3rem;font-weight:900;line-height:1;color:var(--text-color-secondary)}.pill-ability-blend{width:2rem;height:2rem;border-radius:50%;background:linear-gradient(135deg,#ec4899,#6366f1);box-shadow:inset 0 1px 2px #fff6,0 1px 3px #0000004d}.pill-ability-wheel{width:2rem;height:2rem;border-radius:50%;background:conic-gradient(#ef4444,#f59e0b,#eab308,#22c55e,#0ea5e9,#6366f1,#a855f7,#ef4444);box-shadow:inset 0 0 0 3px var(--container-bg),0 1px 3px #0000004d}.pill-shop-card-grand{grid-column:1 / -1;flex-direction:row;justify-content:center;gap:var(--space-md);min-height:5rem;box-shadow:0 3px #0000001f,0 8px 20px #7c3aed38,inset 0 1px #ffffff2e}.pill-shop-card-grand .pill-shop-card-name{font-size:var(--font-size-base);font-weight:800}.pill-shop-card-grand .pill-shop-card-foot{margin-top:0}.pill-shop-card-grand .pill-shop-preview{height:auto}.pill-shop-card-grand .pill-ability-wheel{width:3rem;height:3rem}@supports ((-webkit-mask-composite: xor) or (mask-composite: exclude)){.pill-shop-card-grand:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:calc(var(--radius-md) + 3px);padding:3px;background:conic-gradient(from 0deg,#ef4444,#f59e0b,#eab308,#22c55e,#0ea5e9,#6366f1,#a855f7,#ef4444);-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;pointer-events:none}}.pill-shop-nudge{margin:0;font-size:var(--font-size-xs);font-weight:700;text-align:center;color:var(--pill-gold-deep);opacity:0;transition:opacity .15s ease;display:none}.pill-shop-nudge.visible{display:block;min-height:1rem;opacity:1}.pill-shop-aisle:focus-visible,.pill-shop-collection:focus-visible,.pill-shop-card:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}@keyframes pillReveal{0%{transform:scale(.92);opacity:.5}to{transform:scale(1);opacity:1}}.pill-shop-card.is-new{animation:pillReveal .25s ease-out}@keyframes pillWobble{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}.pill-shop-card.wobble{animation:pillWobble .3s ease}.pill-shop-grid-packs{padding-bottom:1.75rem;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 1.5rem),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 1.5rem),transparent 100%)}.pill-shop-grid.is-pack-detail{display:flex;flex-direction:column;overflow:hidden;-webkit-mask-image:none;mask-image:none;padding-bottom:var(--space-sm)}.pill-pack-detail{flex:1 1 auto;min-height:0;display:flex;flex-direction:column;gap:var(--space-sm)}.pill-pack-detail-head{position:relative;flex:0 0 auto;display:flex;align-items:center;justify-content:center;min-height:2.9rem}.pill-pack-back{position:absolute;left:0;top:0;bottom:0;margin-block:auto;width:2.9rem;height:2.9rem;display:inline-flex;align-items:center;justify-content:center;padding:0;border:2px solid var(--border-color);border-radius:50%;background:var(--container-bg);color:var(--color-accent-info);cursor:pointer;touch-action:manipulation;box-shadow:0 3px #00000024,inset 0 1px #fff3;transition:transform .1s ease-out,box-shadow .1s ease-out,border-color .12s ease-out}.pill-pack-back:hover{transform:translateY(-2px)}.pill-pack-back:active{transform:translateY(1px);box-shadow:0 1px #00000024,inset 0 1px #fff3}.pill-pack-back svg{display:block}.pill-pack-detail-title{display:flex;flex-direction:column;align-items:center;text-align:center;min-width:0;max-width:100%;padding:0 3.4rem;line-height:1.15}.pill-pack-detail-name{font-family:var(--font-display, inherit);font-size:var(--font-size-lg);font-weight:800;color:var(--text-color-primary)}.pill-pack-detail-count{font-size:var(--font-size-xs);font-weight:600;color:var(--text-color-secondary)}.pill-pack-detail-scroll{flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:.2rem .2rem 1.25rem;-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - 1.25rem),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - 1.25rem),transparent 100%)}.pill-pack-detail-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(3.5rem,1fr));gap:var(--space-sm)}.pill-pack-sticker{aspect-ratio:1 / 1;display:inline-flex;align-items:center;justify-content:center;padding:.4rem;border-radius:.7rem;background:#7f7f7f1f}.pill-pack-sticker svg{width:100%;height:100%}.pill-pack-detail-action{flex:0 0 auto;display:flex;justify-content:center}.pill-pack-unlock{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;width:100%;min-height:3rem;padding:.6rem 1.2rem;border:none;border-radius:var(--radius-pill);font-family:inherit;font-size:var(--font-size-base);font-weight:800;color:#3b2600;background:linear-gradient(to bottom,var(--pill-gold),var(--pill-gold-deep));cursor:pointer;touch-action:manipulation;box-shadow:0 4px #78480080,0 5px 9px #0003,inset 0 1px #ffffff73;transition:transform .1s ease-out,filter .1s ease-out}.pill-pack-unlock .pill-coin{box-shadow:inset 0 -1px 2px #78480073,0 0 0 1px #3b260066}.pill-pack-unlock.is-buyable:hover{transform:translateY(-2px);filter:brightness(1.05)}.pill-pack-unlock.is-buyable:active{transform:translateY(3px);box-shadow:0 1px #78480080,inset 0 1px #ffffff73}.pill-pack-unlock.is-locked{color:var(--text-color-secondary);background:var(--seat-bg);border:2px solid var(--border-color);box-shadow:none}.pill-pack-unlock.is-busy{opacity:.5;pointer-events:none}.pill-pack-unlock.wobble{animation:pillWobble .3s ease}.pill-pack-owned{display:inline-flex;align-items:center;gap:.4rem;min-height:3rem;padding:.6rem 1.2rem;font-size:var(--font-size-base);font-weight:800;color:var(--color-accent-success)}.pill-pack-owned .pill-shop-tick{display:inline-flex;align-items:center}.pill-pack-back:focus-visible,.pill-pack-unlock:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}@media(max-width:480px){.pill-shop-grid{grid-template-columns:repeat(auto-fill,minmax(6.5rem,1fr))}.pill-shop-grid-powers{grid-template-columns:repeat(auto-fill,minmax(8rem,1fr))}.pill-shop-collection{font-size:var(--font-size-xs);padding:.35rem .7rem}.pill-shop-aisle{font-size:var(--font-size-sm)}.pill-pack-detail-grid{grid-template-columns:repeat(auto-fill,minmax(3rem,1fr))}.pill-pack-detail-name{font-size:var(--font-size-base)}.pill-pack-back{width:2.6rem;height:2.6rem}.pill-pack-detail-title{padding:0 3rem}}body.reduced-motion .pill-shop-aisle,body.reduced-motion .pill-shop-collection,body.reduced-motion .pill-shop-card,body.reduced-motion .pill-pack-back,body.reduced-motion .pill-pack-unlock{transition:none}body.reduced-motion .pill-shop-aisle:hover,body.reduced-motion .pill-shop-collection:hover,body.reduced-motion .pill-shop-card.is-buyable:hover,body.reduced-motion .pill-shop-card.is-buyable:active,body.reduced-motion .pill-pack-back:hover,body.reduced-motion .pill-pack-back:active,body.reduced-motion .pill-pack-unlock.is-buyable:hover,body.reduced-motion .pill-pack-unlock.is-buyable:active{transform:none}body.reduced-motion .pill-shop-card.is-new,body.reduced-motion .pill-shop-card.wobble,body.reduced-motion .pill-pack-unlock.wobble{animation:none}.pill-colour-grad-btn{display:flex;align-items:center;justify-content:center;gap:var(--space-sm);width:100%;max-width:18rem;min-height:2.75rem;padding:.8rem 1rem;border-radius:.95rem;border:2px solid var(--border-color);background:var(--seat-bg);color:var(--text-color-primary);font-family:inherit;font-weight:800;font-size:var(--font-size-sm);cursor:pointer;transition:transform .1s ease-out,border-color .1s ease-out;touch-action:manipulation}.pill-colour-grad-btn:hover{transform:translateY(-2px)}.pill-colour-grad-btn:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.pill-colour-grad-disc{width:1.9rem;height:1.9rem;min-width:1.9rem;border-radius:50%;border:2px solid rgba(255,255,255,.6);background:conic-gradient(from 0deg,#ff5f6d,#ffc371,#47e08b,#22d3ee,#7c6cff,#ff6ad5,#ff5f6d)}.pill-colour-wheelhead{display:flex;align-items:center;gap:var(--space-sm);width:100%;max-width:20rem}.pill-colour-back{width:2.4rem;height:2.4rem;min-width:2.4rem;border-radius:50%;border:2px solid var(--border-color);background:var(--seat-bg);color:var(--color-accent-info);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s ease-out;touch-action:manipulation}.pill-colour-back:hover{transform:translateY(-2px)}.pill-colour-back:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.pill-colour-wheel-title{font-weight:800;font-size:var(--font-size-sm);color:var(--text-color-primary);white-space:nowrap}.pill-colour-grad-toggle{margin-left:auto;display:inline-flex;gap:3px;padding:3px;border-radius:var(--radius-pill, 999px);border:1px solid var(--border-color);background:var(--seat-bg)}.pill-colour-grad-toggle button{font-family:inherit;font-weight:800;font-size:var(--font-size-xs);color:var(--text-color-secondary);background:none;border:none;padding:.4rem .7rem;border-radius:var(--radius-pill, 999px);cursor:pointer;touch-action:manipulation}.pill-colour-grad-toggle button.on{background:var(--color-accent-info);color:#04222b}.pill-colour-grad-toggle button:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.pill-colour-wheel-mid{display:flex;justify-content:center;width:100%}.pill-colour-wheel{width:140px;height:140px;border-radius:50%;position:relative;touch-action:none;cursor:crosshair;background:radial-gradient(circle at center,#fff,#fff0 68%),conic-gradient(from 0deg,red,#ff8000,#ff0,#80ff00,#0f0,#00ff80,#0ff,#0080ff,#00f,#7f00ff,#f0f,#ff0080,red);box-shadow:0 6px 18px #0000004d,inset 0 0 0 1px #00000026}.pill-colour-ring{position:absolute;width:40px;height:40px;border-radius:50%;border:4px solid #fff;transform:translate(-50%,-50%);box-shadow:0 0 0 2px #0006,0 2px 6px #00000073;pointer-events:none}.pill-colour-ring.active{box-shadow:0 0 0 3px var(--color-accent-info),0 3px 8px #00000080}.pill-colour-hint{margin:0;font-size:var(--font-size-xs);color:var(--text-color-secondary);text-align:center}@media(max-width:480px){.pill-colour-coin,.pill-colour-arrow{width:2.75rem;height:2.75rem;min-width:2.75rem}}body.reduced-motion .pill-colour-view.pill-colour-anim{animation:none}body.reduced-motion .pill-colour-coin,body.reduced-motion .pill-colour-arrow,body.reduced-motion .pill-colour-grad-btn,body.reduced-motion .pill-colour-back{transition:none}body.reduced-motion .pill-colour-coin:hover,body.reduced-motion .pill-colour-arrow:hover:not([disabled]),body.reduced-motion .pill-colour-grad-btn:hover,body.reduced-motion .pill-colour-back:hover{transform:none}.pill-design-tabs{width:100%;display:flex;gap:var(--space-sm)}.pill-design-tab{flex:1 1 0;min-height:3.25rem;display:inline-flex;align-items:center;justify-content:center;padding:.5rem 1rem;border:2px solid var(--border-color);border-radius:1.25rem;background:var(--seat-bg);color:var(--text-color-secondary);font-family:inherit;font-size:var(--font-size-base);font-weight:800;cursor:pointer;touch-action:manipulation;transition:transform .1s ease-out,background .12s ease-out,color .12s ease-out,border-color .12s ease-out}.pill-design-tab:hover{transform:translateY(-1px)}.pill-design-tab.is-selected{background:linear-gradient(to bottom,var(--color-accent-info),#00b3d6);border-color:transparent;color:#04222b;box-shadow:0 3px #0000002e}.pill-design-tab:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.pill-design-panels{width:100%;flex:1 1 auto;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;padding:.4rem .6rem}.pill-design-panel{width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-md)}.pill-shop-open-btn{display:inline-flex;align-items:center;gap:.4rem;min-height:2.75rem;padding:.4rem 1.1rem;border:none;border-radius:var(--radius-pill, 999px);font-family:inherit;font-size:var(--font-size-sm);font-weight:800;color:#3b2600;cursor:pointer;background:linear-gradient(to bottom,var(--pill-gold),var(--pill-gold-deep));box-shadow:0 4px #78480080,0 5px 9px #0003,inset 0 1px #ffffff73;transition:transform .1s ease-out,filter .1s ease-out;touch-action:manipulation}.pill-shop-open-btn:hover{transform:translateY(-2px);filter:brightness(1.05)}.pill-shop-open-btn:active{transform:translateY(3px);box-shadow:0 1px #78480080,inset 0 1px #ffffff73}.pill-shop-open-btn:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:3px}.pill-shop-open-btn .pill-coin{box-shadow:inset 0 -1px 2px #78480073,0 0 0 1px #3b260066}#pillShopModal{z-index:1100}.pill-shop-modal-content{max-width:34rem;height:min(88vh,46rem);padding:var(--space-lg);display:flex;flex-direction:column;gap:var(--space-md);overflow:hidden}.pill-shop-window-head{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:var(--space-sm) var(--space-md);padding:0 2.5rem}.pill-shop-modal-content .pill-shop-window-head h2{margin:0}.pill-shop-modal-content .pill-shop{flex:1 1 auto;min-height:0}.pill-shop-modal-content .pill-shop-grid{max-height:none;flex:1 1 auto;min-height:4rem}@media(min-width:760px){.modal-content.design-seat-modal-content{max-width:52rem;display:grid;grid-template-columns:minmax(0,21rem) minmax(0,1fr);grid-template-rows:auto auto auto 1fr auto;grid-template-areas:"head    head" "econ    econ" "canvas  tabs" "canvas  panels" "acts    acts";align-items:start;column-gap:var(--space-lg);row-gap:var(--space-md);overflow:hidden}.design-seat-modal-content>h2{grid-area:head;justify-self:center}.design-seat-modal-content>.pill-economy{grid-area:econ;justify-self:center}.design-seat-modal-content>.pill-canvas-wrap{grid-area:canvas;align-self:start}.design-seat-modal-content>.pill-design-tabs{grid-area:tabs}.design-seat-modal-content>.pill-design-panels{grid-area:panels;align-self:stretch}.design-seat-modal-content>.pill-editor-actions{grid-area:acts;justify-self:center}.modal-content.pill-shop-modal-content{max-width:58rem}.pill-shop-modal-content .pill-shop-grid{grid-template-columns:repeat(auto-fill,minmax(9.5rem,1fr))}.pill-shop-modal-content .pill-shop-grid-powers{grid-template-columns:repeat(auto-fill,minmax(12rem,1fr))}}@media(max-width:480px){.pill-design-tab{font-size:var(--font-size-sm);min-height:3rem}.pill-shop-open-btn{font-size:var(--font-size-xs)}}body.reduced-motion .pill-design-tab,body.reduced-motion .pill-shop-open-btn{transition:none}body.reduced-motion .pill-design-tab:hover,body.reduced-motion .pill-shop-open-btn:hover,body.reduced-motion .pill-shop-open-btn:active{transform:none}.modal-content.rvb-setup-modal{max-width:900px;width:95%;max-height:90vh;overflow-y:auto;display:flex;flex-direction:column;text-align:left;padding:24px 32px}.rvb-setup-modal h2{text-align:center}.rvb-seating-container{background:var(--bg-color);border-radius:8px;padding:10px 15px;margin-bottom:12px}.rvb-seating-container h3{margin:0 0 6px;font-size:14px;color:var(--text-color-secondary);text-align:center}.rvb-mini-seating{display:flex;flex-wrap:wrap;gap:6px;min-height:50px;max-height:150px;overflow-y:auto;padding:8px;background:#0003;border-radius:6px;border:2px dashed var(--border-color)}.rvb-student-chip{background:#2d2d44;padding:5px 10px;border-radius:20px;cursor:grab;display:flex;align-items:center;gap:6px;font-size:13px;transition:transform .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.rvb-student-chip:hover{transform:scale(1.05);box-shadow:0 4px 12px #0000004d}.rvb-student-chip.dragging{opacity:.5;cursor:grabbing}.rvb-student-chip .test-level{background:#4a4a6a;padding:2px 6px;border-radius:10px;font-size:11px}.rvb-touch-clone{position:fixed;pointer-events:none;z-index:10000;opacity:.9;transform:scale(1.1)}.rvb-teams-container{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px}.rvb-team-panel{border-radius:12px;padding:10px 12px;display:flex;flex-direction:column}.rvb-team-panel.red-panel{background:linear-gradient(135deg,#7f1d1d,#450a0a);border:2px solid #dc2626}.rvb-team-panel.blue-panel{background:linear-gradient(135deg,#1e3a8a,#172554);border:2px solid #3b82f6}.rvb-team-panel h3{margin:0 0 6px;text-align:center;font-size:16px;font-weight:700}.rvb-team-list{min-height:80px;max-height:200px;padding:8px;background:#0000004d;border-radius:8px;border:2px dashed rgba(255,255,255,.2);display:flex;flex-wrap:wrap;align-content:flex-start;gap:5px;overflow-y:auto}.rvb-team-list.rvb-drag-over,.rvb-mini-seating.rvb-drag-over{border-color:#fbbf24;background:#fbbf241a}.rvb-team-count{text-align:center;margin-top:6px;font-size:14px;opacity:.8}.rvb-controls{display:flex;flex-direction:column;align-items:center;gap:12px}.rvb-controls-row{display:flex;justify-content:center;align-items:center;gap:10px;flex-wrap:wrap}.rvb-end-time-group{display:flex;align-items:center;gap:8px}.rvb-end-time-group label{font-size:14px;color:var(--text-color-secondary);white-space:nowrap}.rvb-end-time-group input{padding:10px 12px;font-size:14px;border:1px solid var(--border-color);background-color:var(--seat-bg);color:var(--text-color-primary);border-radius:6px}.rvb-btn{padding:12px 20px;border:none;border-radius:8px;font-size:15px;cursor:pointer;transition:transform .15s,box-shadow .15s}.rvb-btn.primary{background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);color:#fff;font-weight:700}.rvb-btn.secondary{background:#374151;color:#fff}.rvb-btn:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 4px 12px #0000004d}.rvb-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}.rvb-duration{display:flex;align-items:center;gap:8px}.rvb-duration input{width:60px;padding:8px;border-radius:6px;border:1px solid var(--border-color);background:var(--bg-color);color:var(--text-color-primary);text-align:center}@property --rvb-red-percent{syntax: "<percentage>"; initial-value: 50%; inherits: false;}body.red-vs-blue-active:not(.game-mode-suspended){background-image:none!important;background-color:transparent!important}.rvb-background-red,.rvb-background-blue{position:fixed;top:0;bottom:0;z-index:-2;will-change:width;transition:width .4s ease-out}.rvb-background-red{left:0;background:#fca5a5;width:var(--rvb-red-percent, 50%)}.rvb-background-blue{right:0;background:#93c5fd;width:calc(100% - var(--rvb-red-percent, 50%))}.rvb-divider-line{position:fixed;top:0;bottom:0;width:6px;background:linear-gradient(to bottom,#fbbf24,#d97706,#fbbf24);box-shadow:0 0 20px #fbbf2499,-2px 0 4px #00000080,2px 0 4px #00000080;z-index:-1;left:calc(var(--rvb-red-percent, 50%) - 3px);will-change:left;transition:left .4s ease-out}.red-vs-blue-active:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:linear-gradient(to right,#fca5a5 0%,#fca5a5 var(--rvb-red-percent, 50%),#93c5fd var(--rvb-red-percent, 50%),#93c5fd 100%);z-index:-3}.rvb-battle-display{background:#000000d9;border-radius:8px;padding:12px 14px;text-align:center;border:2px solid rgba(255,255,255,.2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}#normalTeacherControls{display:flex;flex-direction:column;align-items:center;gap:10px}.rvb-battle-header{display:flex;align-items:center;gap:10px}.rvb-timer{font-size:20px;font-weight:700;color:#fbbf24;padding-right:10px;border-right:2px solid rgba(255,255,255,.2);align-self:stretch;display:flex;align-items:center}.rvb-teams-stack{display:flex;flex-direction:column;gap:4px;align-items:flex-start}.rvb-team-row{display:flex;align-items:center;gap:6px}.rvb-team-row.red .rvb-team-name{color:#f87171;font-weight:700;font-size:12px}.rvb-team-row.blue .rvb-team-name{color:#60a5fa;font-weight:700;font-size:12px}.rvb-team-score{font-size:13px;font-weight:700;color:#fff}.rvb-winning-badge{font-size:9px;font-weight:700;color:#fbbf24;background:#fbbf2433;padding:1px 6px;border-radius:8px;animation:pulse-winning 1s ease-in-out infinite;visibility:hidden;min-height:12px;margin-left:2px}.rvb-winning-badge.visible{visibility:visible}@keyframes pulse-winning{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.05)}}.rvb-team-indicator{position:fixed;top:10px;right:20px;z-index:1000;text-align:center;padding:6px 14px;border-radius:50px;font-size:14px;font-weight:700;animation:team-pulse 2s ease-in-out infinite}.rvb-team-indicator.red{background:linear-gradient(135deg,#dc2626,#991b1b);color:#fff;box-shadow:0 4px 15px #dc262666}.rvb-team-indicator.blue{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff;box-shadow:0 4px 15px #2563eb66}@keyframes team-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}.student-seat.rvb-team-red{border:3px solid #ef4444!important;box-shadow:0 0 8px #ef444466}.student-seat.rvb-team-blue{border:3px solid #3b82f6!important;box-shadow:0 0 8px #3b82f666}.rvb-seat-team{display:inline-block;font-size:10px;font-weight:700;padding:1px 6px;border-radius:8px;margin-left:6px;vertical-align:middle}.rvb-seat-team.red{background:#ef4444;color:#fff}.rvb-seat-team.blue{background:#3b82f6;color:#fff}.rvb-results-modal{text-align:center}.rvb-results-modal .winner-announcement{font-size:28px;font-weight:700;margin-bottom:20px}.rvb-results-modal .winner-announcement.red{color:#f87171;text-shadow:0 0 20px rgba(220,38,38,.5)}.rvb-results-modal .winner-announcement.blue{color:#60a5fa;text-shadow:0 0 20px rgba(59,130,246,.5)}.rvb-final-ppm{font-size:20px;margin-bottom:20px;color:var(--text-color-secondary)}.rvb-winner-leaderboard{max-width:300px;margin:0 auto 20px;text-align:left}.rvb-winner-leaderboard h4{text-align:center;margin-bottom:10px;font-size:14px;text-transform:uppercase;letter-spacing:1px}.rvb-leaderboard-entry{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border-color)}.rvb-leaderboard-entry:last-child{border-bottom:none}.rvb-leaderboard-entry.current-user{background:linear-gradient(90deg,rgba(168,85,247,.15) 0%,transparent 100%);border-radius:.5rem;padding-left:.5rem;font-weight:700;color:#c4b5fd}@media(max-width:600px){.rvb-teams-container{grid-template-columns:1fr}.rvb-battle-display{width:90%;padding:10px 15px}.rvb-battle-header{flex-wrap:wrap;gap:10px}.rvb-timer{width:100%;order:-1}.rvb-setup-modal{max-width:100%}.rvb-end-time-group{width:100%;justify-content:center}.rvb-btn.primary{width:100%}}body.pupil-mode .admin-only,.pupil-only{display:none!important}body.pupil-mode .pupil-only,body.pupil-mode button.pupil-only{display:inline-block!important}body.pupil-mode #statsLevelRecommendation,body.pupil-mode #practiceLevelRecommendation,body.pupil-mode #mtcLevelRecommendation,body.pupil-mode #statsLastActivity,body.pupil-mode #statsTotalActivity{display:none!important}body.pupil-mode #statsMilestones{display:flex!important;flex-wrap:wrap;gap:.5rem;justify-content:center}.stats-milestones .milestone-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600;background:rgba(var(--badge-default-rgb),.15);border:1px solid rgba(var(--badge-default-rgb),.3);color:rgb(var(--badge-default-rgb))}.stats-milestones .milestone-badge.streak{background:rgba(var(--badge-streak-rgb),.15);border-color:rgba(var(--badge-streak-rgb),.3);color:rgb(var(--badge-streak-rgb))}.stats-milestones .milestone-badge.mastery{background:rgba(var(--badge-mastery-rgb),.15);border-color:rgba(var(--badge-mastery-rgb),.3);color:rgb(var(--badge-mastery-rgb))}.stats-milestones .milestone-badge.speed{background:rgba(var(--badge-speed-rgb),.15);border-color:rgba(var(--badge-speed-rgb),.3);color:rgb(var(--badge-speed-rgb))}.stats-milestones .milestone-badge.dedication{background:rgba(var(--badge-dedication-rgb),.15);border-color:rgba(var(--badge-dedication-rgb),.3);color:rgb(var(--badge-dedication-rgb))}.stats-milestones .milestone-badge.growth{background:rgba(var(--badge-growth-rgb),.15);border-color:rgba(var(--badge-growth-rgb),.3);color:rgb(var(--badge-growth-rgb))}.stats-milestones .milestone-badge.challenge{background:rgba(var(--badge-challenge-rgb),.15);border-color:rgba(var(--badge-challenge-rgb),.3);color:rgb(var(--badge-challenge-rgb))}body.pupil-mode .table-stat-time{display:none!important}body.pupil-mode .stats-legend .legend-item{font-size:0}body.pupil-mode .stats-legend .legend-dot{font-size:initial;margin-right:.5rem}body.pupil-mode #adminSmiley{display:none}body.pupil-mode #normalTeacherControls{display:none!important}body.pupil-mode #addMTCPracticeBtn{display:none}body.pupil-mode #teacherControlsContainer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important}body.pupil-mode #pupilControlsBar{display:flex;flex-direction:column;align-items:center;gap:8px}body.pupil-mode.test-mode-active #pupilControlsBar,body.pupil-mode.mtc-mode-active #pupilControlsBar,body.mtc-practice-active #pupilControlsBar{display:none!important}body.pupil-mode .raid-boss-container #pupilControlsBar{position:absolute;top:6px;right:12px;z-index:5}body.pupil-mode .raid-boss-container #tryRealMTCBtn{font-size:13px;padding:6px 16px;min-width:auto}#tryRealMTCBtn{display:block}#pupilCountdownTimer,#pupilGameCountdown{display:none;align-items:center;justify-content:center;gap:8px;font-size:var(--font-size-2xl);font-weight:900;color:#1a1a2e;background:gold;border-radius:1.5rem;padding:var(--space-sm) var(--space-lg);line-height:1.2;text-align:center;cursor:default;pointer-events:none;box-shadow:0 4px 6px #0003;animation:countdown-pulse 2s ease-in-out infinite}#pupilCountdownTimer.active{display:flex}.pgc-icon{display:inline-flex;align-items:center}.pgc-icon .ui-icon:before,.pgc-icon img{width:1.15em;height:1.15em}.pgc-icon img{object-fit:contain;display:block}#pupilGameCountdown{position:fixed;top:10px;left:20px;z-index:1000}#pupilGameCountdown.active{display:flex}body:has(.selection-screen.active) #pupilGameCountdown.active{display:none}#pupilGameCountdown .pgc-icon{font-size:1em}@media(max-width:768px){#pupilGameCountdown{top:8px;left:8px;font-size:var(--font-size-lg);padding:5px 10px}}#tryRealMTCLeaderboardInfo{border:1px solid rgba(255,255,255,.1)}body.pupil-mode #authBtn .icon-login{display:none}body.pupil-mode #authBtn .icon-logout{display:inline}.milestone-badge{display:inline-flex;align-items:center;gap:.4rem;padding:.4rem .75rem;border-radius:1rem;font-size:.85rem;font-weight:600;background:rgba(var(--badge-default-rgb),.15);border:1px solid rgba(255,255,255,.08);color:rgb(var(--badge-default-rgb))}.milestone-badge.streak{background:rgba(var(--badge-streak-rgb),.15);color:rgb(var(--badge-streak-rgb))}.milestone-badge.mastery{background:rgba(var(--badge-mastery-rgb),.15);color:rgb(var(--badge-mastery-rgb))}.milestone-badge.speed{background:rgba(var(--badge-speed-rgb),.15);color:rgb(var(--badge-speed-rgb))}.milestone-badge.dedication{background:rgba(var(--badge-dedication-rgb),.15);color:rgb(var(--badge-dedication-rgb))}.nearly-there-icon{font-size:1.4rem;flex-shrink:0}.nearly-there-message{flex:1}.milestone-badge.growth{background:rgba(var(--badge-growth-rgb),.15);color:rgb(var(--badge-growth-rgb))}.milestone-badge.challenge,.milestone-badge.fun{background:rgba(var(--badge-challenge-rgb),.15);color:rgb(var(--badge-challenge-rgb))}.milestone-badge .milestone-icon{font-size:1rem}.milestone-tooltip{position:fixed;padding:.5rem .75rem;border-radius:.6rem;background:var(--color-primary-dark, #252542);border:1px solid rgba(255,255,255,.15);box-shadow:0 6px 24px #00000080;color:var(--text-color-primary, #f0f0f7);font-size:.78rem;font-weight:500;line-height:1.35;max-width:16rem;text-align:center;pointer-events:none;opacity:0;transform:translateY(4px);transition:opacity .15s ease,transform .15s ease;z-index:99999}.milestone-tooltip.visible{opacity:1;transform:translateY(0)}.milestones-wrapper{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:center}.milestone-badge.badge-hidden{display:none!important}.milestones-toggle{display:flex;align-items:center;gap:.35rem;margin:.5rem auto 0;padding:.3rem .7rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:2rem;color:var(--text-color-secondary);font-size:.78rem;font-weight:500;cursor:pointer;transition:all .2s ease}.milestones-toggle .toggle-plus{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.2rem;padding:0 .3rem;border-radius:.6rem;background:var(--color-accent-special, #a78bfa);color:#fff;font-size:.72rem;font-weight:700}.milestones-toggle:hover{background:#ffffff1a;border-color:#fff3;color:var(--text-color-primary)}.badge-celebration-overlay{position:fixed;top:0;right:0;bottom:0;left:0;display:none;justify-content:center;align-items:center;padding:var(--space-lg, 1.5rem);z-index:1400;background:radial-gradient(ellipse at center,#000c,#000000f2);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);animation:modalFadeIn .25s ease-out;cursor:pointer}.badge-celebration-card{position:relative;width:90%;max-width:24rem;padding:var(--space-2xl, 2.5rem) var(--space-xl, 2rem);border-radius:2rem;text-align:center;cursor:default;background:var(--container-bg, #1e1e38);border:var(--glass-border, 1px solid rgba(255, 255, 255, .12));box-shadow:var(--glass-shadow, 0 20px 60px rgba(0, 0, 0, .5));backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);opacity:1;animation:badgePopIn .5s var(--animation-bounce, cubic-bezier(.68, -.55, .27, 1.55))}.badge-celebration-eyebrow{font-size:.85rem;font-weight:700;color:var(--text-color-secondary, #9a9ab0);margin-bottom:var(--space-md, 1rem)}.badge-celebration-icon{width:7rem;height:7rem;margin:0 auto var(--space-md, 1rem);display:flex;align-items:center;justify-content:center;border-radius:50%;font-size:4.5rem;line-height:1;background:rgba(var(--badge-default-rgb),.16);animation:badgeIconPop .6s ease .12s both}.badge-celebration-name{font-size:1.6rem;font-weight:800;line-height:1.2;color:var(--text-color-primary, #f0f0f7);margin-bottom:var(--space-sm, .5rem)}.badge-celebration-desc{font-size:1rem;line-height:1.4;color:var(--text-color-secondary, #b6b6c6);margin-bottom:var(--space-lg, 1.5rem)}.badge-celebration-btn{min-width:8rem}.badge-celebration-count{margin-top:var(--space-md, 1rem);min-height:1rem;font-size:.8rem;font-weight:600;color:var(--text-color-secondary, #9a9ab0)}.badge-celebration-card.streak .badge-celebration-icon{background:rgba(var(--badge-streak-rgb),.18)}.badge-celebration-card.mastery .badge-celebration-icon{background:rgba(var(--badge-mastery-rgb),.18)}.badge-celebration-card.speed .badge-celebration-icon{background:rgba(var(--badge-speed-rgb),.18)}.badge-celebration-card.dedication .badge-celebration-icon{background:rgba(var(--badge-dedication-rgb),.18)}.badge-celebration-card.growth .badge-celebration-icon{background:rgba(var(--badge-growth-rgb),.18)}.badge-celebration-card.challenge .badge-celebration-icon,.badge-celebration-card.fun .badge-celebration-icon{background:rgba(var(--badge-challenge-rgb),.18)}@keyframes badgePopIn{0%{transform:scale(.8) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}@keyframes badgeIconPop{0%{transform:scale(0)}60%{transform:scale(1.25)}to{transform:scale(1)}}.test-content-wrapper,.finish-content-wrapper{--u: min(2.5vw, 1.2vh);--u: min(2.5vw, 1.3svh);--m-enter: 2.8;--m-clear: 4;--m-feedback: 10;--m-correction: 6;--m-break-p: 3;--m-next-btn: 3.5;--quiz-content-w: calc(var(--u) * 32);--quiz-special-w: calc(var(--u) * 32);width:100%;max-width:60rem;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;padding:calc(var(--u) * 2);padding-top:calc(var(--u) * 8);min-height:90vh;min-height:90dvh;gap:calc(var(--u) * 2.5);box-sizing:border-box}.question-display{text-align:center;font-size:calc(var(--u) * 7);font-weight:800;color:var(--text-color-primary);min-height:calc(var(--u) * 8);width:fit-content;min-width:var(--quiz-content-w);max-width:90%;display:flex;align-items:center;justify-content:center;transition:filter var(--transition-slow),transform var(--transition-slow),opacity var(--transition-slow);position:relative;text-shadow:2px 2px 4px rgba(0,0,0,.1);letter-spacing:.02em;line-height:1.2;padding:calc(var(--u) * 1.5);background:var(--container-bg);border:1px solid var(--border-color);border-radius:var(--space-lg);box-shadow:0 10px 26px -12px #00000073,inset 0 1px #ffffff0f;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.question-display.blurred{filter:blur(20px);transform:scale(1.1);opacity:.5}.q-anchor{display:inline-block;white-space:nowrap}.ghost-spacer{visibility:hidden;margin-right:.4em}.ghost-answer{margin-left:.4em;color:var(--text-color-secondary);opacity:0;transition:opacity .25s ease-in;pointer-events:none}.ghost-answer.show{opacity:.45}.answer-display{text-align:center;font-size:calc(var(--u) * 5);font-weight:700;height:calc(var(--u) * 8);border:3px solid var(--border-color);border-radius:calc(var(--u) * 1.5);padding:calc(var(--u) * 1.5);background:var(--seat-bg);display:flex;align-items:center;justify-content:center;width:var(--quiz-content-w);position:relative;overflow:hidden;box-shadow:inset 0 2px 4px #0000001a;transition:all var(--transition-base)}.answer-display:focus-within{border-color:var(--color-accent-primary);box-shadow:0 0 0 4px #00d9ff33,inset 0 2px 4px #0000001a}.timer-bar-fill{position:absolute;top:0;left:0;height:100%;width:100%;transform-origin:left center;background:linear-gradient(90deg,var(--color-accent-success) 0%,var(--color-accent-warning) 50%,var(--color-accent-error) 100%);z-index:1;opacity:.8;pointer-events:none;border-radius:inherit}body.reduced-motion .timer-bar-fill{background:var(--color-accent-warning);opacity:.6}.keypad{position:relative;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:calc(var(--u) * 1.2);width:var(--quiz-content-w);transition:all var(--transition-base)}.keypad.has-special-keys{grid-template-columns:repeat(3,minmax(0,1fr)) calc(var(--u) * 6);width:var(--quiz-special-w)}.keypad.blurred{filter:blur(8px);pointer-events:none;opacity:.5}.key{background:linear-gradient(to bottom,var(--keypad-bg),var(--keypad-hover-bg));color:var(--text-color-primary);border:none;border-radius:calc(var(--u) * 2);font-size:calc(var(--u) * 3.5);font-weight:700;padding:0;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 6px #0003,0 6px 10px #00000026,inset 0 1px #fff3;transform:translateY(0);position:relative;overflow:hidden;min-height:calc(var(--u) * 7);-webkit-user-select:none;user-select:none}.key:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(rgba(255,255,255,.1),transparent);opacity:0;transition:opacity .1s}.key:hover{transform:translateY(-2px);box-shadow:0 8px #0003,0 12px 16px #0003,inset 0 1px #fff3;filter:brightness(1.1)}.key:hover:before{opacity:1}.key:active{background:#282850e6}.key.enter{background:linear-gradient(to bottom,var(--btn-primary-bg),var(--btn-primary-hover));color:#fff;font-weight:800;font-size:calc(var(--u) * var(--m-enter))}.key.enter:active{background:var(--btn-primary-bg)}.key.clear{background:linear-gradient(to bottom,var(--btn-cancel-bg),#c0392b);color:#fff;font-size:calc(var(--u) * var(--m-clear))}.key.clear:active{background:var(--btn-cancel-bg)}#keypad .key{touch-action:manipulation;-webkit-tap-highlight-color:transparent}#keypad .key.pressed{transform:translateY(2px) scale(.96);box-shadow:0 2px #0003,0 2px 4px #0000001a;filter:brightness(.9)}body.reduced-motion #keypad .key.pressed{transform:none;box-shadow:none;filter:brightness(.85)}.special-key{grid-column:4;font-size:var(--font-size-lg);animation:slideIn .3s var(--animation-bounce)}#keypad-decimal{grid-row:1}#keypad-slash{grid-row:2}#keypad-negative{grid-row:3}.keypad.has-special-keys .key[data-key="1"]{grid-area:1 / 1}.keypad.has-special-keys .key[data-key="2"]{grid-area:1 / 2}.keypad.has-special-keys .key[data-key="3"]{grid-area:1 / 3}.keypad.has-special-keys .key[data-key="4"]{grid-area:2 / 1}.keypad.has-special-keys .key[data-key="5"]{grid-area:2 / 2}.keypad.has-special-keys .key[data-key="6"]{grid-area:2 / 3}.keypad.has-special-keys .key[data-key="7"]{grid-area:3 / 1}.keypad.has-special-keys .key[data-key="8"]{grid-area:3 / 2}.keypad.has-special-keys .key[data-key="9"]{grid-area:3 / 3}.keypad.has-special-keys .key.clear{grid-area:4 / 1}.keypad.has-special-keys .key[data-key="0"]{grid-area:4 / 2}.keypad.has-special-keys .key.enter{grid-area:4 / 3}.progress{position:absolute;top:calc(var(--u) * 2);left:0;right:0;margin:0 auto;width:var(--quiz-content-w)}.progress-label{text-align:center;line-height:1.2;margin:0 0 calc(var(--u) * .8);color:var(--text-color-secondary);font-size:calc(var(--u) * 2.6);font-weight:600}.progress-track{height:calc(var(--u) * 1.5);border-radius:999px;background:var(--border-color);overflow:hidden;box-shadow:inset 0 1px 2px #0003}.progress-fill{display:block;height:100%;width:0;min-width:calc(var(--u) * 1.6);border-radius:999px;background:linear-gradient(90deg,var(--brand-gradient-start),var(--brand-gradient-end));transition:width var(--transition-base)}@media(max-width:1024px){.keypad.has-special-keys{position:relative;grid-template-columns:repeat(3,minmax(0,1fr));width:var(--quiz-special-w);overflow:visible}.keypad.has-special-keys .special-key{position:absolute;left:calc(100% + (var(--u) * 1.2));width:calc(var(--u) * 6);height:calc(var(--u) * 7)}.keypad.has-special-keys #keypad-decimal{grid-area:auto;top:0}.keypad.has-special-keys #keypad-slash{grid-area:auto;top:25%}.keypad.has-special-keys #keypad-negative{grid-area:auto;top:51.5%}.key:active{transform:scale(.95)}}@media(min-width:1025px){.test-content-wrapper,.finish-content-wrapper{--u: 1.35vh;--u: 1.45svh;padding-top:calc(var(--u) * 8);gap:calc(var(--u) * 1.5);justify-content:flex-start}.question-display{font-size:min(calc(var(--u) * 7),9.5rem)}}@media(max-width:1024px)and (orientation:landscape){.test-content-wrapper,.finish-content-wrapper{--u: 1.25vh;--u: 1.35svh;max-width:100%}}@media(max-width:1024px)and (orientation:portrait){.test-content-wrapper,.finish-content-wrapper{max-width:100%;--m-enter: 2.2;--m-clear: 3.5;--m-feedback: 7;--m-correction: 4;--m-break-p: 2.5;--m-next-btn: 3;--quiz-content-w: calc(var(--u) * 34);--quiz-special-w: calc(var(--u) * 28)}}.test-screen.in-break{display:flex;flex-direction:column;justify-content:center;align-items:center}.test-screen.in-break #questionDisplay,.test-screen.in-break #answerDisplay,.test-screen.in-break #keypad{visibility:hidden!important;transition:none!important}.test-screen.in-break #questionDisplay,.test-screen.in-break #answerDisplay{display:flex!important}.test-screen.in-break #keypad{display:grid!important}.test-screen.in-break #breakMessage{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;text-align:center;position:absolute;top:0;left:0;right:0;bottom:0;margin:auto;padding:0 calc(var(--u) * 2);box-sizing:border-box}.test-screen.in-break #feedbackMessage{position:static;transform:none;width:100%;font-size:calc(var(--u) * var(--m-feedback));font-weight:800;text-align:center;line-height:1.2;animation:bounceIn .5s var(--animation-bounce)}.test-screen.in-break #feedbackMessage.correct{color:var(--color-positive-feedback)}.test-screen.in-break #feedbackMessage.incorrect .feedback-title{color:var(--color-negative-feedback)}.test-screen.in-break #feedbackMessage.incorrect .feedback-correction{color:var(--text-color-primary);font-size:calc(var(--u) * var(--m-correction));margin-top:calc(var(--u) * 1)}.test-screen.in-break #feedbackMessage.incorrect .feedback-correction .correct-answer{color:var(--color-positive-feedback);font-weight:800}.test-screen.in-break #breakMessage p{font-size:calc(var(--u) * var(--m-break-p));color:var(--text-color-secondary);font-weight:400;text-align:center}.test-screen.in-break #nextQuestionBtn{box-sizing:border-box;font-size:calc(var(--u) * var(--m-next-btn));height:auto;min-height:0;width:auto;padding:calc(var(--u) * 2) calc(var(--u) * 4);white-space:nowrap;max-width:none;position:absolute;left:50%;bottom:calc(var(--u) * 4);transform:translate(-50%)}.finish-content-wrapper .results-display{font-size:calc(var(--u) * 4)}.finish-content-wrapper .final-score{font-size:calc(var(--u) * 8)}.practice-review{width:100%;max-width:42rem;margin:0 auto calc(var(--u) * 2);box-sizing:border-box}.practice-review-heading{text-align:center;font-size:calc(var(--u) * 3.4);font-weight:700;color:var(--text-color-secondary);margin-bottom:calc(var(--u) * 1.5)}.practice-review-list{--review-fade: calc(var(--u) * 4.5);list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(15rem,1fr));align-content:start;gap:calc(var(--u) * 1);max-height:40vh;overflow-y:auto}.practice-review-list.has-more-below{-webkit-mask-image:linear-gradient(to bottom,#000 calc(100% - var(--review-fade)),transparent 100%);mask-image:linear-gradient(to bottom,#000 calc(100% - var(--review-fade)),transparent 100%)}.practice-review-list.has-more-above{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--review-fade));mask-image:linear-gradient(to bottom,transparent 0,#000 var(--review-fade))}.practice-review-list.has-more-above.has-more-below{-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 var(--review-fade),#000 calc(100% - var(--review-fade)),transparent 100%);mask-image:linear-gradient(to bottom,transparent 0,#000 var(--review-fade),#000 calc(100% - var(--review-fade)),transparent 100%)}.practice-review-item{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:calc(var(--u) * 1.5);padding:calc(var(--u) * 1.2) calc(var(--u) * 2);background:var(--seat-bg);border:1px solid var(--border-color);border-radius:var(--space-md)}.practice-review-fact{font-size:calc(var(--u) * 3.6);font-weight:800;color:var(--text-color-primary);white-space:nowrap}.practice-review-fact .correct-answer{color:var(--color-positive-feedback)}.practice-review-yours{font-size:calc(var(--u) * 2.4);font-weight:600;color:var(--text-color-secondary)}.practice-review-yours.skipped{font-style:italic}.practice-review-num{display:inline-block;padding:0 calc(var(--u) * 1.1);border-radius:calc(var(--u) * .9);font-size:1.1em;font-weight:800;background:#f5b0202e;border:1px solid rgba(245,176,32,.5);color:#ffca4d}body.light-mode .practice-review-num{background:#d9770624;border-color:#d9770666;color:#b45309}.practice-review-allright{text-align:center;font-size:calc(var(--u) * 4.2);font-weight:800;color:var(--color-positive-feedback)}.finish-screen.has-review .finish-content-wrapper{min-height:0;max-height:calc(100svh - 4rem);justify-content:flex-start;padding-top:calc(var(--u) * 2.5);padding-bottom:calc(var(--u) * 2.5);gap:calc(var(--u) * 1.2)}.finish-screen.has-review #finishTitle{font-size:min(calc(var(--u) * 5.5),6.5vw)!important;margin:0!important}.finish-screen.has-review #finishMessage{font-size:min(calc(var(--u) * 3.6),4.5vw)!important;margin:calc(var(--u) * .5) 0!important}.finish-message-comparison{display:block;width:fit-content;max-width:min(90vw,30rem);margin:calc(var(--u) * .9) auto 0;padding:calc(var(--u) * .7) calc(var(--u) * 1.8);border-radius:999px;font-size:min(calc(var(--u) * 2.4),1.5rem);font-weight:700;line-height:1.2;text-align:center}.finish-message-comparison:before{margin-right:.45em;font-weight:800}.finish-message-comparison.up{color:#38d66b;background:#38d66b29}.finish-message-comparison.up:before{content:"\25b2";font-size:.8em}.finish-message-comparison.same{color:#7aa2ff;background:#7aa2ff29}.finish-message-comparison.same:before{content:"="}.finish-message-comparison.again{color:#ffca4d;background:#f5b0202e}.finish-message-comparison.again:before{content:"\21bb"}.finish-message-comparison.full{color:#ffd54a;background:#ffd54a2e}.finish-message-comparison.full:before{content:"\2b50"}body.light-mode .finish-message-comparison.up{color:#1a9e4b}body.light-mode .finish-message-comparison.same{color:#3b5bdb}body.light-mode .finish-message-comparison.again{color:#b45309}body.light-mode .finish-message-comparison.full{color:#b7791f}.finish-screen.has-review .practice-review{flex:0 1 auto;min-height:0;display:flex!important;flex-direction:column;margin-bottom:0}.finish-screen.has-review .practice-review-list{flex:0 1 auto;min-height:0;max-height:none}.finish-screen.has-review .practice-review-list.is-scrollable{flex-grow:1}.finish-screen.has-review .practice-review-heading{font-size:calc(var(--u) * 2.8);margin-bottom:calc(var(--u) * .8)}.finish-screen.has-review .practice-review-list{gap:calc(var(--u) * .6)}.finish-screen.has-review .practice-review-item{padding:calc(var(--u) * .8) calc(var(--u) * 1.6)}.finish-screen.has-review .practice-review-fact{font-size:calc(var(--u) * 3)}.finish-screen.has-review .practice-review-yours{font-size:calc(var(--u) * 2)}.finish-screen.has-review #practiceModeButtons{flex:0 0 auto;display:flex!important;flex-wrap:wrap;justify-content:center;align-items:center;gap:calc(var(--u) * 1);width:100%}.finish-screen.has-review #practiceModeButtons .btn{width:auto;min-width:12rem;margin:0}.finish-screen.has-review #practiceFixBtn{flex:0 0 auto;width:100%;max-width:42rem;box-sizing:border-box;margin:calc(var(--u) * .4) auto calc(var(--u) * 1);padding:calc(var(--u) * 1.5) calc(var(--u) * 3);font-size:calc(var(--u) * 2.7);white-space:nowrap}.class-login-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg-color);background:var(--bg-gradient);display:flex;align-items:center;justify-content:center;z-index:10000;padding:var(--space-md);overflow-y:auto}.class-login-card{background:var(--container-bg);border:var(--glass-border);box-shadow:var(--glass-shadow);border-radius:20px;padding:clamp(1rem,4vh,3rem) var(--space-2xl);max-width:90vw;width:700px;min-height:min(80vh,750px);max-height:calc(100vh - 2 * var(--space-md));margin:auto;text-align:center;display:flex;flex-direction:column;justify-content:center}.class-login-card h1{color:var(--text-color-primary);font-size:clamp(1.75rem,6vh,3rem);margin-bottom:clamp(.5rem,1.5vh,1rem);font-weight:800}.class-login-card p{color:var(--text-color-secondary);font-size:var(--font-size-lg);margin-bottom:clamp(.75rem,3vh,2rem)}.class-login-card form{width:100%;max-width:450px;margin:0 auto}.class-login-card input{width:100%;padding:clamp(.6rem,2.2vh,2rem) var(--space-xl);font-size:clamp(1.1rem,3vh,1.75rem);text-align:center;border:2px solid var(--border-color);background-color:var(--seat-bg);color:var(--text-color-primary);border-radius:14px;margin-bottom:clamp(.5rem,1.5vh,1rem);transition:border-color var(--transition-base);box-sizing:border-box}.class-login-card input:focus{outline:none;border-color:var(--btn-primary-bg)}.class-login-card input::placeholder{color:var(--text-color-secondary);opacity:.7}.class-login-card .btn{width:100%;padding:clamp(.6rem,2vh,1.25rem);font-size:var(--font-size-lg);border-radius:14px;margin-bottom:clamp(.5rem,1.5vh,1rem);margin-top:clamp(.5rem,1.5vh,1rem)}.login-error{color:var(--color-accent-error);font-size:var(--font-size-sm);margin-top:var(--space-sm);display:none}.login-footer{margin-top:clamp(.75rem,2.5vh,2rem);padding-top:clamp(.6rem,2vh,1.25rem);border-top:1px solid var(--border-color)}.login-footer a{color:var(--text-color-secondary);text-decoration:none;font-size:var(--font-size-xs);transition:color var(--transition-base)}.login-footer a:hover{color:var(--btn-primary-bg)}.login-footer .separator{color:var(--border-color);margin:0 var(--space-sm)}@media(max-width:600px){.class-login-card{min-height:85vh;width:95vw;padding:var(--space-xl) var(--space-lg)}.class-login-card h1{font-size:var(--font-size-xl)}.class-login-card input,.class-login-card .btn{font-size:var(--font-size-base)}}.landing-card h1{font-size:4rem;margin-bottom:var(--space-sm)}.landing-card>p{margin-bottom:var(--space-2xl);font-size:var(--font-size-lg)}.login-choice-buttons{display:flex;gap:var(--space-xl);margin-bottom:var(--space-2xl)}.login-choice-btn{flex:1;display:flex;flex-direction:column;align-items:center;padding:var(--space-2xl) var(--space-xl);border-radius:20px;transition:transform var(--transition-base),box-shadow var(--transition-base);min-height:180px;justify-content:center}.login-choice-btn:hover{transform:translateY(-6px);box-shadow:0 12px 32px #00000059}.login-choice-btn .choice-icon{font-size:4rem;margin-bottom:var(--space-md)}.login-choice-btn .choice-text{font-size:var(--font-size-lg);font-weight:700}.teacher-btn{background:linear-gradient(135deg,#667eea,#764ba2)}.teacher-btn:hover{background:linear-gradient(135deg,#5a6fd6,#6a4190)}.pupil-btn{background:linear-gradient(135deg,#f093fb,#f5576c)}.pupil-btn:hover{background:linear-gradient(135deg,#e080e8,#e04555)}@media(max-width:600px){.landing-card h1{font-size:var(--font-size-2xl)}.landing-card>p{font-size:var(--font-size-base);margin-bottom:var(--space-xl)}.login-choice-buttons{flex-direction:column;gap:var(--space-md)}.login-choice-btn{padding:var(--space-lg) var(--space-md);min-height:120px}.login-choice-btn .choice-icon{font-size:3rem}.login-choice-btn .choice-text{font-size:var(--font-size-base)}}.class-login-overlay{overflow:hidden}.class-login-overlay:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at 20% 80%,rgba(120,80,200,.15) 0%,transparent 50%),radial-gradient(ellipse at 80% 20%,rgba(255,100,150,.12) 0%,transparent 50%),radial-gradient(ellipse at 50% 50%,rgba(0,180,255,.08) 0%,transparent 60%);animation:cosmicPulse 8s ease-in-out infinite;pointer-events:none}@keyframes cosmicPulse{0%,to{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.05)}}.login-particles{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none;z-index:1}.login-particle{position:absolute;width:4px;height:4px;background:radial-gradient(circle,#ffffffe6,#fff0 70%);border-radius:50%;animation:floatParticle 15s linear infinite,twinkle 2s ease-in-out infinite}@keyframes floatParticle{0%{transform:translateY(100vh) translate(0) scale(.01)}to{transform:translateY(-100px) translate(0) scale(1)}}@keyframes floatParticleL2{0%{transform:translateY(100vh) translate(0) scale(.01)}to{transform:translateY(-100px) translate(-60px) scale(1)}}@keyframes floatParticleL1{0%{transform:translateY(100vh) translate(0) scale(.01)}to{transform:translateY(-100px) translate(-25px) scale(1)}}@keyframes floatParticleR1{0%{transform:translateY(100vh) translate(0) scale(.01)}to{transform:translateY(-100px) translate(25px) scale(1)}}@keyframes floatParticleR2{0%{transform:translateY(100vh) translate(0) scale(.01)}to{transform:translateY(-100px) translate(60px) scale(1)}}.login-particle.drift-l2{animation-name:floatParticleL2,twinkle}.login-particle.drift-l1{animation-name:floatParticleL1,twinkle}.login-particle.drift-r1{animation-name:floatParticleR1,twinkle}.login-particle.drift-r2{animation-name:floatParticleR2,twinkle}@keyframes twinkle{0%,to{opacity:.3}50%{opacity:1}}.login-math-symbols{position:absolute;top:0;left:0;right:0;bottom:0;overflow:hidden;pointer-events:none;z-index:0}.math-symbol{position:absolute;font-size:2rem;opacity:.08;color:var(--text-color-primary);animation:floatMath 20s linear infinite;animation-fill-mode:backwards;font-weight:800}@keyframes floatMath{0%{transform:translateY(100vh) rotate(0);opacity:0}10%{opacity:.08}90%{opacity:.08}to{transform:translateY(-100px) rotate(360deg);opacity:0}}.class-login-card{position:relative;z-index:10;animation:cardEntrance .6s cubic-bezier(.34,1.56,.64,1) forwards;transform-origin:center center}@keyframes cardEntrance{0%{opacity:0;transform:scale(.9) translateY(30px);filter:blur(10px)}to{opacity:1;transform:scale(1) translateY(0);filter:blur(0)}}.class-login-card:before,.class-login-card:after{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(135deg,#667eea66,#f008424d,#764ba266,#f5576c4d,#667eea66);background-size:300% 300%;border-radius:22px;z-index:-1;filter:blur(8px)}.class-login-card:before{background-position:0% 50%;opacity:.7;animation:borderGlowA 6s ease-in-out infinite}.class-login-card:after{background-position:100% 50%;opacity:0;animation:borderGlowB 6s ease-in-out infinite}@keyframes borderGlowA{0%,to{opacity:.7}50%{opacity:0}}@keyframes borderGlowB{0%,to{opacity:0}50%{opacity:.7}}.class-login-card h1{animation:slideInDown .5s ease-out .1s backwards}.class-login-card>p{animation:slideInDown .5s ease-out .2s backwards}.class-login-card input:nth-of-type(1){animation:slideInUp .5s ease-out .3s backwards}.class-login-card input:nth-of-type(2){animation:slideInUp .5s ease-out .4s backwards}.class-login-card .btn:not(.login-choice-btn){animation:scaleIn .4s cubic-bezier(.34,1.56,.64,1) .5s backwards}.login-choice-buttons{animation:slideInUp .5s ease-out .3s backwards}.login-footer{animation:fadeIn .5s ease-out .6s backwards}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.8)}to{opacity:1;transform:scale(1)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.class-login-card input{position:relative;transition:border-color .3s ease,box-shadow .3s ease,transform .2s ease,background-color .3s ease}.class-login-card input:hover:not(:focus):not(:disabled){border-color:#667eea80;transform:translateY(-1px)}.class-login-card input:focus{border-color:var(--color-accent-info);box-shadow:0 0 0 4px #00d9ff26,0 4px 12px #00d9ff33;transform:translateY(-2px);outline:none}.form-field{position:relative;width:100%;margin-bottom:var(--space-md)}.form-field input{padding-right:48px;margin-bottom:0}.form-field-icon{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:1.25rem;opacity:0;transition:opacity .3s ease,transform .3s ease;pointer-events:none}.form-field.valid .form-field-icon.valid-icon{opacity:1;animation:checkBounce .4s cubic-bezier(.34,1.56,.64,1)}.form-field.invalid .form-field-icon.invalid-icon{opacity:1;animation:shake .4s ease}.form-field.valid input{border-color:var(--color-accent-success);background-color:#28a7450d}.form-field.invalid input{border-color:var(--color-accent-error);background-color:#ff6b6b0d}@keyframes checkBounce{0%{transform:translateY(-50%) scale(0)}50%{transform:translateY(-50%) scale(1.3)}to{transform:translateY(-50%) scale(1)}}@keyframes shake{0%,to{transform:translateY(-50%) translate(0)}20%,60%{transform:translateY(-50%) translate(-4px)}40%,80%{transform:translateY(-50%) translate(4px)}}.login-error{background:linear-gradient(135deg,#ff6b6b26,#ff6b6b14);border:1px solid rgba(255,107,107,.3);border-radius:12px;padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);display:flex;align-items:center;gap:var(--space-sm);animation:slideInError .4s cubic-bezier(.34,1.56,.64,1)}.login-error:before{content:"!";display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:var(--color-accent-error);color:#fff;border-radius:50%;font-weight:800;font-size:.875rem;flex-shrink:0}.login-error:empty{display:none}.login-forgot{text-align:right;margin-top:calc(var(--space-xs) * -1);margin-bottom:var(--space-sm)}.login-forgot a{font-size:var(--font-size-sm);color:var(--text-color-secondary);text-decoration:none}.login-forgot a:hover,.login-forgot a:focus{color:var(--text-color-primary, #fff);text-decoration:underline}.login-info{color:var(--color-accent-success);background:linear-gradient(135deg,#4cd97b26,#4cd97b14);border:1px solid rgba(76,217,123,.3);border-radius:12px;padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);font-size:var(--font-size-sm);animation:slideInError .4s cubic-bezier(.34,1.56,.64,1)}.login-info:empty{display:none}@keyframes slideInError{0%{opacity:0;transform:translateY(-10px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.field-hint{font-size:var(--font-size-xs);color:var(--text-color-secondary);margin-top:var(--space-xs);opacity:0;max-height:0;overflow:hidden;transition:opacity .3s ease,max-height .3s ease;text-align:left;padding-left:var(--space-sm)}.form-field.focused .field-hint,.form-field.invalid .field-hint{opacity:1;max-height:40px}.form-field.invalid .field-hint{color:var(--color-accent-error)}.form-field.valid .field-hint{color:var(--color-accent-success)}.class-login-card .btn{position:relative;overflow:hidden;transition:transform .2s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,filter .2s ease}.class-login-card .btn:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.4) 0%,transparent 70%);transform:translate(-50%,-50%);transition:width .5s ease,height .5s ease;pointer-events:none}.class-login-card .btn:hover:before{width:300px;height:300px}.class-login-card .btn:active{transform:translateY(4px) scale(.98)}.class-login-card .btn.loading{pointer-events:none;position:relative;color:transparent}.class-login-card .btn.loading:after{content:"";position:absolute;top:50%;left:50%;width:24px;height:24px;margin:-12px 0 0 -12px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:buttonSpinner .8s linear infinite}@keyframes buttonSpinner{to{transform:rotate(360deg)}}.login-choice-btn{position:relative;overflow:hidden;border:2px solid transparent;transition:transform .3s cubic-bezier(.34,1.56,.64,1),box-shadow .3s ease,border-color .3s ease}.login-choice-btn:before{content:"";position:absolute;top:-50%;left:-50%;width:200%;height:200%;background:linear-gradient(45deg,transparent 40%,rgba(255,255,255,.1) 50%,transparent 60%);transform:rotate(45deg) translate(-100%);transition:transform .6s ease}.login-choice-btn:hover:before{transform:rotate(45deg) translate(100%)}.login-choice-btn:focus-visible{outline:none;border-color:#fff;box-shadow:0 0 0 4px #ffffff4d,0 8px 24px #0000004d}.login-choice-btn .choice-icon{transition:transform .3s cubic-bezier(.34,1.56,.64,1)}.login-choice-btn:hover .choice-icon{transform:scale(1.15) rotate(-5deg)}.login-choice-btn:active .choice-icon{transform:scale(.95)}.login-success-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000c;display:flex;align-items:center;justify-content:center;z-index:10001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease}.login-success-overlay.active{opacity:1;visibility:visible}.login-success-content{text-align:center;animation:successPop .35s cubic-bezier(.34,1.56,.64,1)}.login-success-icon{font-size:5rem;margin-bottom:var(--space-md);animation:successBounce .3s ease .15s}.login-success-text{font-size:var(--font-size-xl);font-weight:800;color:#fff}@keyframes successPop{0%{opacity:0;transform:scale(.5)}to{opacity:1;transform:scale(1)}}@keyframes successBounce{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}.pin-entry-card{text-align:center}.pin-entry-card h1{margin-bottom:var(--space-sm)}.pin-entry-card p{margin-bottom:var(--space-lg);color:var(--text-color-secondary)}.pin-class-info{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-xl);padding:var(--space-md) var(--space-lg);background:linear-gradient(135deg,#4f46e533,#9333ea33);border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.1)}.pin-class-name{font-size:var(--font-size-lg);font-weight:700;color:var(--text-color-primary)}.pin-change-class{font-size:var(--font-size-sm);color:var(--btn-primary-bg);text-decoration:none;padding:var(--space-xs) var(--space-sm);border-radius:var(--radius-sm);transition:background-color .2s ease,color .2s ease}.pin-change-class:hover{background-color:#4f46e54d;color:#fff}.pin-input-container{position:relative;width:100%;max-width:280px;margin:0 auto var(--space-sm)}.pin-input{width:100%;padding:var(--space-lg) var(--space-md);font-size:2.5rem;font-weight:800;letter-spacing:1.2rem;text-align:center;background:var(--seat-bg);border:2px solid var(--border-color);border-radius:var(--radius-lg);color:var(--text-color-primary);caret-color:var(--btn-primary-bg);transition:border-color .2s ease,box-shadow .2s ease}.pin-input:focus{outline:none;border-color:var(--btn-primary-bg);box-shadow:0 0 0 4px #4f46e533}.pin-input::placeholder{letter-spacing:.8rem;color:var(--text-color-secondary);opacity:.5}.pin-dots{display:flex;justify-content:center;gap:var(--space-md);margin-top:var(--space-md);pointer-events:none}.pin-dot{width:16px;height:16px;border-radius:50%;background-color:var(--border-color);transition:background-color .15s ease,transform .2s cubic-bezier(.34,1.56,.64,1)}.pin-dot.filled{background-color:var(--btn-primary-bg);transform:scale(1.2)}.pin-submit-btn{margin-top:var(--space-lg);min-width:120px;font-size:var(--font-size-xl);padding:var(--space-md) var(--space-xl)}.pin-submit-btn .btn-text{display:inline}.pin-submit-btn .btn-loading{display:none;align-items:center;justify-content:center}.pin-submit-btn.loading .btn-text{display:none}.pin-submit-btn.loading .btn-loading{display:inline-flex}.loading-spinner{width:24px;height:24px;border:3px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:buttonSpinner .8s linear infinite}#pupilPinError{margin-top:var(--space-md)}@media(max-width:480px){.pin-input-container{max-width:240px}.pin-input{font-size:2rem;letter-spacing:1rem;padding:var(--space-md)}.pin-dots{gap:var(--space-sm)}.pin-dot{width:14px;height:14px}.pin-class-info{flex-direction:column;gap:var(--space-sm)}.pin-submit-btn{font-size:var(--font-size-lg)}}.pin-entry-card{animation:slideInUp .4s ease-out}@keyframes pinShake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-10px)}80%{transform:translate(10px)}}.pin-input.error{animation:pinShake .4s ease;border-color:var(--color-accent-error)}.class-login-card input:focus-visible{outline:3px solid var(--color-accent-info);outline-offset:2px}.class-login-card .btn:focus-visible{outline:3px solid white;outline-offset:3px;transform:translateY(-2px)}.login-footer a:focus-visible{outline:2px solid var(--btn-primary-bg);outline-offset:4px;border-radius:4px}@media(prefers-contrast:high){.class-login-card{border:3px solid white;background:var(--bg-color)}.class-login-card input{border-width:3px}.login-choice-btn{border:3px solid white}.login-error{border-width:2px;background:#f003}}@media(prefers-reduced-motion:reduce){.class-login-overlay:before,.login-particle,.math-symbol,.class-login-card,.class-login-card:before,.class-login-card h1,.class-login-card>p,.class-login-card input,.class-login-card .btn,.login-choice-buttons,.login-footer,.form-field-icon,.login-error,.login-success-content,.login-success-icon{animation:none!important;transition:opacity .2s ease,background-color .2s ease,border-color .2s ease!important}.login-choice-btn:hover,.class-login-card .btn:hover{transform:none}.class-login-card{opacity:1;transform:none;filter:none}}.password-toggle{position:absolute;right:16px;top:0;bottom:0;background:none;border:none;cursor:pointer;padding:0;color:var(--text-color-secondary);font-size:1.4rem;opacity:.7;transition:opacity .2s ease,color .2s ease;z-index:1;display:flex;align-items:center;justify-content:center;width:44px}.password-toggle span{display:flex;align-items:center;justify-content:center;line-height:1}.password-toggle:hover{opacity:1;color:var(--text-color-primary)}.password-toggle:focus-visible{outline:2px solid var(--color-accent-info);outline-offset:2px;border-radius:4px}.form-field.has-toggle input{padding-right:70px;padding-left:70px}.form-field.has-toggle .form-field-icon{right:60px}.form-field label{position:absolute;left:var(--space-md);top:50%;transform:translateY(-50%);color:var(--text-color-secondary);font-size:var(--font-size-lg);pointer-events:none;transition:top .2s ease,font-size .2s ease,color .2s ease,transform .2s ease;background:transparent;padding:0 var(--space-xs)}.form-field input:focus~label,.form-field input:not(:placeholder-shown)~label{top:0;font-size:var(--font-size-xs);color:var(--color-accent-info);transform:translateY(-50%);background:var(--container-bg)}.landing-card h1{font-style:italic;background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}@keyframes titleShimmer{0%,to{background-position:0% 50%}50%{background-position:100% 50%}}.landing-card>p{letter-spacing:.05em;text-transform:uppercase;font-size:var(--font-size-sm);font-weight:600}.landing-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:0}.landing-footer a{display:inline-flex;align-items:center;gap:var(--space-xs)}.landing-footer a[href="about.html"]:before{content:"\2139\fe0f";font-size:.9em}.landing-footer a[href="privacy.html"]:before{content:"\1f512";font-size:.9em}.landing-footer a[href="terms.html"]:before{content:"\1f4dc";font-size:.9em}.connection-status{position:fixed;top:var(--space-sm);right:var(--space-sm);padding:var(--space-xs) var(--space-md);border-radius:2rem;font-size:var(--font-size-sm);font-weight:700;z-index:1001;display:flex;align-items:center;gap:var(--space-xs);transition:all var(--transition-base);opacity:0;visibility:hidden}@keyframes connectionPulse{0%,to{opacity:.8}50%{opacity:1}}.connection-status.online{background-color:#4caf50;color:#fff}.connection-status.offline,.connection-status.reconnecting{opacity:1;visibility:visible}.connection-status.offline{background-color:#f44336;color:#fff}.connection-status.reconnecting{background-color:#f39c12;color:#fff}.modal{position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(ellipse at center,#000c,#000000f2);display:flex;justify-content:center;align-items:flex-start;z-index:1000;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:var(--space-lg) 0}#removeStudentModal,#editStudentModal{z-index:1002}#noticeModal,#confirmModal,#autoNoticeModal,#passwordModal,#numberInputModal,#choiceModal{z-index:1300}#exportDataModal{z-index:1050}@keyframes modalFadeIn{0%{opacity:0}to{opacity:1}}#battleModal .btn,#raidBossModal .btn,#mtcPracticeModal .btn,#chaosModal .btn{max-width:20rem;white-space:nowrap}#tryRealMTCLeaderboardInfo:empty{display:none}.modal-content{background:var(--container-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);padding:var(--space-2xl);border-radius:2rem;box-shadow:var(--glass-shadow);text-align:center;max-width:28rem;width:90%;position:relative;border:var(--glass-border);animation:modalSlideIn .3s var(--animation-bounce);overflow:visible;margin-top:auto;margin-bottom:auto;flex-shrink:0}.modal-content:before{content:"";position:absolute;top:0;right:0;width:100%;height:100%;background:radial-gradient(circle at top right,var(--color-accent-primary) 0%,transparent 70%);opacity:.05;pointer-events:none;border-radius:inherit}@keyframes modalSlideIn{0%{transform:translateY(-50px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.modal h2{margin-bottom:var(--space-lg);color:var(--text-color-primary);font-size:var(--font-size-xl);font-weight:800}.modal p{margin-bottom:var(--space-md);color:var(--text-color-secondary);font-size:var(--font-size-base);line-height:1.6}.modal input,.modal select{width:80%;padding:var(--space-md);margin-bottom:var(--space-lg);font-size:var(--font-size-base);text-align:center;border:3px solid var(--border-color);background:var(--seat-bg);color:var(--text-color-primary);border-radius:1rem;transition:all var(--transition-base);font-family:inherit;font-weight:600}.modal select:not(.form-select){appearance:none;-webkit-appearance:none;padding-right:2.2rem;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23b8b8d0'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .9rem center;background-size:10px 6px}.modal select:not(.form-select) option{background:#1a1a2e;color:#fff}body.light-mode .modal select:not(.form-select){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23475569'/%3E%3C/svg%3E")}body.light-mode .modal select:not(.form-select) option{background:#fff;color:#1e293b}.close-modal-btn{position:absolute;top:.625rem;right:.9375rem;cursor:pointer;font-size:1.5rem;color:var(--text-color-secondary);width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--seat-bg);transition:all var(--transition-base)}.close-modal-btn:hover{color:var(--text-color-primary);background:var(--border-color);transform:rotate(90deg)}.modal-absent-btn{position:absolute;top:.9375rem;right:.9375rem;width:2.1875rem;height:2.1875rem;background-color:#ccc;color:#333;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:1.125rem;cursor:pointer;transition:transform .2s,background-color .2s}.modal-absent-btn:hover{transform:scale(1.1);background-color:#bbb}.export-modal-content{max-width:32rem;text-align:left}.export-modal-content h2{text-align:center;display:flex;align-items:center;justify-content:center;gap:.5rem}.export-summary{display:grid;grid-template-columns:repeat(3,1fr);align-items:start;gap:var(--space-md);padding:var(--space-lg);background:var(--seat-bg);border-radius:1rem;margin-bottom:var(--space-lg)}.export-summary-item{display:flex;flex-direction:column;align-items:center;gap:.25rem;min-width:0;text-align:center}.export-summary-label{font-size:var(--font-size-xs);color:var(--text-color-secondary);font-weight:600}.export-summary-value{font-size:var(--font-size-lg);font-weight:800;color:var(--text-color-primary);line-height:1.2}#exportTimePeriod{font-size:var(--font-size-md);font-weight:700}.export-progress-section{padding:var(--space-lg);background:var(--seat-bg);border-radius:1rem;margin-bottom:var(--space-lg)}.export-progress-bar{height:8px;background:var(--border-color);border-radius:4px;overflow:hidden;margin-bottom:var(--space-sm)}.export-progress-fill{height:100%;width:0%;background:linear-gradient(90deg,var(--color-accent-primary),var(--color-accent-success));border-radius:4px;transition:width .3s ease-out}.export-progress-text{font-size:var(--font-size-xs);color:var(--text-color-secondary);text-align:center;margin:0}.export-actions{display:flex;justify-content:center;gap:var(--space-md)}.export-actions .btn{display:flex;align-items:center;gap:.5rem}.export-actions .btn-icon{font-size:1rem}@media(max-width:480px){.export-summary{flex-direction:column;gap:var(--space-sm)}.export-summary-item{flex-direction:row;justify-content:space-between;width:100%}}#gameModeModal .modal-content{max-width:520px}#gameModeModal h2{font-family:var(--font-display)}#gameModeModal .gm-sub{color:var(--text-color-secondary);margin-bottom:20px}.gm-list{display:flex;flex-direction:column;gap:14px}.gm-card{position:relative;overflow:hidden;display:flex;align-items:center;gap:16px;width:100%;min-height:104px;padding:14px 18px 14px 14px;border-radius:var(--radius-lg);border:1px solid rgba(255,255,255,.1);text-align:left;cursor:pointer;color:#fff;font-family:Andika,Nunito Sans,sans-serif;transition:transform .18s ease,box-shadow .22s ease,border-color .22s ease}.gm-card:focus-visible{outline:3px solid #fff;outline-offset:3px}.gm-card:hover{transform:translateY(-3px)}.gm-atmos{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;display:block}.gm-emblem{position:relative;z-index:3;flex:0 0 84px;height:84px;display:flex;align-items:center;justify-content:center}.gm-emblem img{width:76px;height:76px;object-fit:contain;filter:drop-shadow(0 4px 10px rgba(0,0,0,.5))}.gm-text{position:relative;z-index:3;flex:1 1 auto;min-width:0;display:block}.gm-title{display:block;font-family:var(--font-display);font-weight:700;font-size:1.34rem;line-height:1.1;margin:0 0 4px;letter-spacing:-.01em;text-shadow:0 2px 6px rgba(0,0,0,.55)}.gm-desc{display:block;font-size:.82rem;line-height:1.3;margin:0;color:#ffffffdb;text-shadow:0 1px 3px rgba(0,0,0,.5)}.gm-chevron{position:relative;z-index:3;display:block;flex:0 0 auto;align-self:center;font-size:1.3rem;line-height:1;color:#ffffff8c;transition:transform .18s ease,color .18s ease}.gm-card:hover .gm-chevron{transform:translate(4px);color:#fff}.gm-card--battle{background:radial-gradient(circle at 18% 80%,rgba(255,215,0,.16) 0%,transparent 55%),radial-gradient(circle at 82% 20%,rgba(255,165,0,.12) 0%,transparent 55%),linear-gradient(135deg,#231a06,#1a1305);border-color:#ffd70059}.gm-card--battle:hover{box-shadow:0 14px 34px #ffbe0047;border-color:#ffd700b3}.gm-card--battle .gm-title{color:#ffd54a}.gm-card--battle .gm-atmos{background-image:radial-gradient(2px 2px at 12% 30%,rgba(255,215,0,.9) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 30% 70%,rgba(255,255,255,.9) 50%,transparent 50%),radial-gradient(2px 2px at 55% 25%,rgba(255,215,0,.8) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 72% 62%,rgba(255,255,255,.8) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 88% 40%,rgba(255,215,0,.85) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 45% 85%,rgba(255,255,255,.7) 50%,transparent 50%);opacity:.55;animation:gmTwinkle 4s ease-in-out infinite}.gm-card--battle:hover .gm-atmos{opacity:1;animation-duration:1.6s}@keyframes gmTwinkle{0%,to{opacity:.35}50%{opacity:.8}}.gm-crown-disc{width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 35%,#ffe68a,#e9a400 70%,#b87400);box-shadow:0 6px 16px #b474008c,inset 0 2px 4px #fff9}.gm-crown-disc img{width:44px;height:44px;filter:none}.gm-card--raid{background:linear-gradient(135deg,#2c3e50,#1a1a1a);border-color:#e74c3c66;overflow:visible}.gm-card--raid:hover{box-shadow:0 14px 34px #e74c3c47;border-color:#e74c3cbf}.gm-card--raid .gm-title{color:#ff6b5e}.gm-card--raid .gm-atmos{overflow:hidden;border-radius:var(--radius-lg)}.gm-card--raid .gm-atmos:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-image:radial-gradient(2px 2px at 20% 92%,rgba(255,100,0,.6) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 40% 96%,rgba(255,140,0,.5) 50%,transparent 50%),radial-gradient(2px 2px at 62% 90%,rgba(255,80,0,.55) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 80% 94%,rgba(255,120,0,.5) 50%,transparent 50%);animation:gmEmber 5s linear infinite}.gm-card--raid:hover .gm-atmos:before{animation-duration:2.4s}@keyframes gmEmber{0%{transform:translateY(0);opacity:.7}to{transform:translateY(-42px);opacity:0}}.gm-card--raid .gm-emblem{overflow:visible}.gm-raid-monster{position:relative;width:96px;height:96px;margin-top:-10px}.gm-raid-monster img{width:96px;height:96px;filter:drop-shadow(0 8px 14px rgba(0,0,0,.6))}.gm-card--mtc{background:linear-gradient(135deg,#141428,#0f0f1a);border-color:#00d9ff59}.gm-card--mtc:hover{box-shadow:0 14px 30px #00d9ff33;border-color:#00d9ffb3}.gm-card--mtc .gm-title{color:#5fe6ff}.gm-card--mtc .gm-desc{color:#ffffffb8}.gm-target{position:relative;width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;border:2px solid rgba(0,217,255,.5);background:radial-gradient(circle,rgba(0,217,255,.12) 0%,transparent 70%)}.gm-target:before{content:"";width:38px;height:38px;border-radius:50%;border:2px solid rgba(0,217,255,.7);box-shadow:inset 0 0 0 8px #00d9ff24}.gm-target:after{content:"";position:absolute;width:8px;height:8px;border-radius:50%;background:#5fe6ff;box-shadow:0 0 10px #5fe6ff}.gm-card--rvb{padding:0;border-color:#fbbf2466}.gm-card--rvb:hover{box-shadow:0 14px 34px #0006;border-color:#fbbf24bf}.gm-rvb-inner{position:relative;z-index:3;display:flex;align-items:center;gap:16px;width:100%;min-height:104px;padding:14px 18px 14px 14px}.gm-rvb-red{position:absolute;top:0;right:50%;bottom:0;left:0;display:block;background:linear-gradient(135deg,#7f1d1d,#450a0a)}.gm-rvb-blue{position:absolute;top:0;right:0;bottom:0;left:50%;display:block;background:linear-gradient(135deg,#1e3a8a,#172554)}.gm-rvb-seam{position:absolute;top:0;bottom:0;left:calc(50% - 2px);width:4px;z-index:2;display:block;background:linear-gradient(to bottom,#fbbf24,#d97706,#fbbf24)}.gm-rvb-seam:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;box-shadow:0 0 22px #fbbf24f2;animation:glowBreathe 3s ease-in-out infinite}.gm-card--rvb:hover .gm-rvb-seam:before{animation-duration:1.2s}.gm-vs-badge{width:64px;height:64px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);font-weight:800;font-size:1.4rem;color:#3a2500;background:radial-gradient(circle at 50% 35%,#ffe08a,#fbbf24 60%,#d97706);box-shadow:0 6px 16px #00000080,inset 0 2px 4px #fff9;border:2px solid rgba(255,255,255,.35)}.gm-rvb-title .gm-r{color:#fca5a5}.gm-rvb-title .gm-b{color:#93c5fd}.gm-card--chaos{background:linear-gradient(135deg,#2a0a3a,#3a0f1a 55%,#2a0a1a);border-color:#9b59b673}.gm-card--chaos:hover{box-shadow:0 14px 34px #9b59b652;border-color:#9b59b6cc}.gm-card--chaos .gm-title{color:#ff7ac0}.gm-card--chaos .gm-atmos{background-image:radial-gradient(6px 6px at 22% 30%,rgba(255,215,0,.55) 0%,transparent 60%),radial-gradient(5px 5px at 40% 72%,rgba(68,221,102,.5) 0%,transparent 60%),radial-gradient(6px 6px at 60% 28%,rgba(255,68,68,.5) 0%,transparent 60%),radial-gradient(5px 5px at 74% 66%,rgba(52,152,219,.5) 0%,transparent 60%),radial-gradient(6px 6px at 88% 40%,rgba(155,89,182,.55) 0%,transparent 60%),radial-gradient(5px 5px at 12% 60%,rgba(255,159,28,.5) 0%,transparent 60%);filter:blur(.4px);opacity:.7;animation:gmTwinkle 3.5s ease-in-out infinite}.gm-card--chaos:hover .gm-atmos{opacity:1;animation-duration:1.3s}.gm-chaos-burst{width:70px;height:70px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:2rem;background:conic-gradient(#9b59b6,#f39c12,#e74c3c,#3498db,#9b59b6);box-shadow:0 0 22px #9b59b68c}.gm-chaos-burst span{filter:drop-shadow(0 2px 4px rgba(0,0,0,.5))}.gm-chaos-burst img{width:46px;height:46px;filter:drop-shadow(0 2px 4px rgba(0,0,0,.45))}@media(prefers-reduced-motion:reduce){.gm-atmos,.gm-card--raid .gm-atmos:before,.gm-rvb-seam{animation:none!important}.gm-card,.gm-chevron{transition:none}}body.reduced-motion .gm-atmos,body.reduced-motion .gm-card--raid .gm-atmos:before,body.reduced-motion .gm-rvb-seam{animation:none!important}body.reduced-motion .gm-card,body.reduced-motion .gm-chevron{transition:none}.celebration-confetti{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;overflow:hidden;z-index:1500}.celebration-confetti .confetti-piece{position:absolute;top:-12vh;font-family:var(--font-display);font-weight:800;font-size:1.5rem;line-height:1;opacity:0;will-change:transform,opacity;transform:translateY(-12vh);animation:confettiFall var(--dur, 2.4s) linear var(--delay, 0s) forwards}@keyframes confettiFall{0%{transform:translateY(-12vh) rotate(0);opacity:0}8%{opacity:1}85%{opacity:1}to{transform:translate(var(--drift, 0px),112vh) rotate(720deg);opacity:0}}.confetti-piece.c1{color:var(--leaderboard-gold, #ffd700)}.confetti-piece.c2{color:var(--color-achievement, #ffc947)}.confetti-piece.c3{color:var(--color-accent-primary, #f00842)}.confetti-piece.c4{color:var(--color-accent-info, #00d9ff)}.confetti-piece.c5{color:var(--color-accent-special, #a78bfa)}.perfect-toast{position:fixed;left:50%;top:42%;z-index:1500;padding:.6rem 1.5rem;border-radius:var(--radius-pill, 999px);font-family:var(--font-display);font-weight:800;font-size:1.7rem;color:#3a2500;background:linear-gradient(135deg,var(--leaderboard-gold, #ffd700),var(--color-achievement, #ffc947));box-shadow:0 0 26px #ffc94799;pointer-events:none;opacity:0;transform:translate(-50%,-50%) scale(.6);animation:perfectToast 1.7s ease forwards}@keyframes perfectToast{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}18%{opacity:1;transform:translate(-50%,-50%) scale(1.08)}30%{transform:translate(-50%,-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-50%) scale(1)}to{opacity:0;transform:translate(-50%,-58%) scale(1)}}.badge-celebration-card .badge-celebration-icon{animation:badgeIconPop .6s ease .12s both,celebrateHalo 2.4s ease-in-out .7s infinite}@keyframes celebrateHalo{0%,to{box-shadow:0 0 16px 2px #ffdc9624}50%{box-shadow:0 0 30px 7px #ffdc964d}}.badge-celebration-art{width:100%;height:100%;object-fit:contain}@media(prefers-reduced-motion:reduce){.celebration-confetti{display:none}.badge-celebration-card .badge-celebration-icon{animation:badgeIconPop .6s ease .12s both}.perfect-toast{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}}body.reduced-motion .celebration-confetti{display:none}body.reduced-motion .badge-celebration-card .badge-celebration-icon{animation:badgeIconPop .6s ease .12s both}body.reduced-motion .perfect-toast{animation:none;opacity:1;transform:translate(-50%,-50%) scale(1)}.stats-modal{max-width:700px;max-height:calc(100vh - 40px);min-height:min(600px,calc(100vh - 40px));overflow:hidden;text-align:left;padding-top:var(--space-lg);padding-bottom:var(--space-md);display:flex;flex-direction:column}.stats-modal>h2,.stats-modal>.stats-activity-row,.stats-modal>.close-modal-btn{flex-shrink:0}.stats-modal>.close-modal-btn{z-index:10}.stats-modal>h2{padding-right:2.5rem}.stats-modal:before{display:none}#tableStudentsModal{z-index:1100}#studentStatsModal{z-index:1150}#tableDrilldownModal{z-index:1200}.stats-modal #closeStatsBtn{display:block;margin:10px auto 0}.stats-section{margin-bottom:12px;background:var(--seat-bg);border-radius:12px;padding:12px 16px;flex-shrink:0}.stats-section h3{margin:0 0 8px;font-size:1rem;color:var(--text-color-primary);font-weight:700;border-bottom:none;padding-bottom:0;letter-spacing:-.01em}#viewStatsBtn{background:linear-gradient(135deg,#9b59b6,#8e44ad);margin-bottom:10px;display:block;margin-left:auto;margin-right:auto}#viewStatsBtn:hover{background:linear-gradient(135deg,#a66bbe,#9b59b6)}#pupilViewStatsBtn{background:linear-gradient(135deg,#9b59b6,#8e44ad);margin-bottom:10px;display:block;margin-left:auto;margin-right:auto}#pupilViewStatsBtn:hover{background:linear-gradient(135deg,#a66bbe,#9b59b6)}.stats-tabs{display:flex;gap:0;margin-bottom:12px;flex-shrink:0;background:var(--seat-bg);border-radius:10px;padding:4px}.stats-tab{flex:1;padding:8px 16px;border:none;background:transparent;color:var(--text-color-secondary);font-size:.95rem;font-weight:600;cursor:pointer;border-radius:8px;transition:all .2s ease}.stats-tab:hover:not(.active){background:var(--border-color);color:var(--text-color-primary)}.stats-tab.active{color:#fff}.stats-tab.active[data-tab=practice],.stats-tab.active[data-tab=school-practice]{background:linear-gradient(135deg,var(--color-accent-success) 0%,#3ea55f 100%);box-shadow:0 2px 8px #4caf504d}.stats-tab.active[data-tab=test],.stats-tab.active[data-tab=school-test]{background:linear-gradient(135deg,#0793d1,#2980b9);box-shadow:0 2px 8px #0793d14d}.stats-tab.active[data-tab=mtc],.stats-tab.active[data-tab=school-mtc]{background:linear-gradient(135deg,#9c27b0,#7b1fa2);box-shadow:0 2px 8px #9c27b04d}.stats-tab-content{display:none}.stats-tab-content.active{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;padding-top:4px}.stats-tab-content.active .stats-section:last-child{margin-bottom:0}.stats-modal .table-stat-label{font-size:.9rem;margin-bottom:3px}.stats-modal .table-stat-percent{font-size:1.05rem}.stats-modal .table-stat-time{font-size:.75rem;margin-top:2px;padding:1px 5px}.stats-activity-row{display:flex;justify-content:center;align-items:center;gap:16px;flex-wrap:wrap;padding:8px 12px;margin-bottom:12px;font-size:.85rem;background:var(--bg-color);border-radius:8px}.stats-last-activity{display:flex;align-items:center}.stats-total-activity{display:flex;align-items:center;gap:12px}.total-activity-item{display:flex;align-items:center}.total-activity-label{color:var(--text-color-secondary)}.total-activity-value{font-weight:600;margin-left:4px;color:var(--text-color)}.last-activity-label{color:var(--text-color-secondary)}.last-activity-value{font-weight:600;margin-left:4px}.last-activity-value.recent{color:#2ecc71}.last-activity-value.moderate{color:#f39c12}.last-activity-value.old{color:#e74c3c}.last-activity-value.never{color:var(--text-color-secondary)}.stats-pin-section{display:flex;justify-content:center;margin-bottom:12px}.stats-pin-row{display:flex;align-items:center;gap:12px;background:linear-gradient(135deg,#6c5ce726,#5b4cdb40);border:1px solid rgba(108,92,231,.4);padding:10px 16px;border-radius:8px}.stats-pin-label{color:var(--text-color-secondary);font-size:.9rem}.stats-pin-value{font-family:Courier New,monospace;font-size:1.3rem;font-weight:700;color:var(--text-color);letter-spacing:3px;background:var(--bg-color);padding:4px 12px;border-radius:6px;min-width:70px;text-align:center}.stats-pin-regenerate-btn{font-size:.8rem!important;padding:6px 12px!important;background:linear-gradient(135deg,#6c5ce7,#5b4cdb)!important}.stats-pin-regenerate-btn:hover{background:linear-gradient(135deg,#5b4cdb,#4a3bc9)!important}.stats-level-recommendation{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px;padding:12px 16px;margin-bottom:12px;border-radius:8px;font-size:.9rem}.stats-level-recommendation.recommend-up{background:#2ecc711f;border:1px solid rgba(46,204,113,.28)}.stats-level-recommendation.recommend-down{background:#e74c3c1f;border:1px solid rgba(231,76,60,.28)}.stats-level-recommendation.recommend-stay-high{background:#f1c40f1f;border:1px solid rgba(241,196,15,.28)}.stats-level-recommendation.recommend-stay{background:#3498db1f;border:1px solid rgba(52,152,219,.28)}.stats-nearly-there{display:flex;align-items:center;gap:.75rem;padding:10px 14px;margin-bottom:12px;border-radius:8px;background:#3498db1a;border:1px solid rgba(52,152,219,.25);font-size:.9rem;line-height:1.4}.recommend-stay-high .recommendation-icon,.recommend-stay .recommendation-icon{color:#f39c12}.recommendation-icon{font-size:1.2rem;font-weight:700}.recommend-up .recommendation-icon{color:#2ecc71}.recommend-down .recommendation-icon{color:#e74c3c}.recommendation-text{font-weight:600;color:var(--text-color-primary)}.recommendation-reason{flex:0 0 100%;width:100%;text-align:center;font-size:.8rem;color:var(--text-color-secondary)}.recommendation-apply-btn{width:100%;margin-top:8px;padding:8px 16px;border:none;border-radius:6px;font-size:.85rem;font-weight:600;cursor:pointer;transition:all .2s ease}.recommend-up .recommendation-apply-btn{background:#2ecc71;color:#fff}.recommend-up .recommendation-apply-btn:hover{background:#27ae60;transform:translateY(-1px);box-shadow:0 2px 8px #2ecc7166}.recommend-down .recommendation-apply-btn{background:#e74c3c;color:#fff}.recommend-down .recommendation-apply-btn:hover{background:#c0392b;transform:translateY(-1px);box-shadow:0 2px 8px #e74c3c66}.recommendation-apply-btn:active{transform:translateY(0)}.recent-tests{display:flex;flex-direction:column;gap:5px}.recent-test-item{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:var(--bg-color);border-radius:8px;font-size:.85rem;user-select:none;-webkit-user-select:none;transition:background .2s ease;cursor:pointer}.recent-test-item:active{background:#e74c3c26}.recent-test-date{color:var(--text-color-secondary);font-size:.85rem;min-width:100px}.recent-test-score{font-weight:600;color:var(--text-color-primary);min-width:60px;text-align:center}.inactivity-flag{color:#f0ad4e;font-size:.85em;cursor:help}.recent-test-bar{flex:1;height:8px;background:var(--border-color);border-radius:4px;margin:0 12px;overflow:hidden}.recent-test-bar-fill{height:100%;border-radius:4px;transition:width .3s ease}.recent-test-bar-fill.excellent{background:linear-gradient(90deg,#2ecc71,#27ae60)}.recent-test-bar-fill.good{background:linear-gradient(90deg,#f1c40f,#f39c12)}.recent-test-bar-fill.needs-work{background:linear-gradient(90deg,#e74c3c,#c0392b)}.no-data{color:var(--text-color-secondary);font-style:italic;text-align:center;padding:10px}.table-stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}.table-stat-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 3px;border-radius:8px;background:var(--bg-color);transition:transform .2s ease,box-shadow .2s ease}.table-stat-cell:hover{transform:translateY(-2px);box-shadow:0 4px 12px #00000026}.table-stat-label{font-size:.75rem;font-weight:600;color:var(--text-color-secondary);margin-bottom:4px}.table-stat-percent{font-size:.85rem;font-weight:700}.table-stat-cell.strong{background:#2ecc7124;border:1px solid rgba(46,204,113,.28)}.table-stat-cell.strong .table-stat-percent{color:#2ecc71}.table-stat-cell.ok{background:#f1c40f24;border:1px solid rgba(241,196,15,.28)}.table-stat-cell.ok .table-stat-percent{color:#f39c12}.table-stat-cell.struggling{background:#e74c3c24;border:1px solid rgba(231,76,60,.28)}.table-stat-cell.struggling .table-stat-percent{color:#e74c3c}.table-stat-cell.no-data{background:var(--bg-color);border:2px dashed var(--border-color);opacity:.6}.table-stat-cell.no-data .table-stat-percent{color:var(--text-color-secondary)}.table-stat-time{font-size:.65rem;font-weight:500;margin-top:2px;padding:1px 4px;border-radius:3px}.table-stat-time.time-fast{color:#2ecc71;background:#2ecc7126}.table-stat-time.time-ok{color:#f39c12;background:#f39c1226}.table-stat-time.time-slow{color:#e74c3c;background:#e74c3c26}.stats-legend{display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:6px 10px;font-size:.7rem;color:var(--text-color-secondary);margin-top:6px}.legend-item{display:flex;align-items:center;gap:5px}.legend-dot{width:12px;height:12px;border-radius:3px}.legend-dot.strong{background:#2ecc71}.legend-dot.ok{background:#f1c40f}.legend-dot.struggling{background:#e74c3c}.legend-dot.no-data{background:var(--border-color);border:1px dashed var(--text-color-secondary)}.legend-help-link{color:#5dade2;cursor:pointer;font-size:.75rem;font-weight:600;transition:all .2s ease;margin-left:4px;text-decoration:none}.legend-help-link:hover{color:#7ec8e3;text-decoration:underline}body.light-mode .legend-help-link{color:#2980b9}body.light-mode .legend-help-link:hover{color:#1a5276}#statsHelpModal{z-index:2000}.stats-help-modal{max-width:calc(100vw - 2rem);width:calc(100vw - 2rem);text-align:left;max-height:90vh;overflow-y:auto}.stats-help-modal:before{display:none}.stats-help-modal h2{margin-bottom:20px;font-size:1.3rem}.stats-help-section{margin-bottom:20px;padding-bottom:15px;border-bottom:1px solid var(--border-color)}.stats-help-section:last-of-type{border-bottom:none;margin-bottom:10px}.stats-help-columns{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stats-help-columns .stats-help-section{margin-bottom:0;border-bottom:none;padding:12px;background:#ffffff08;border-radius:10px;border:1px solid var(--border-color)}body.light-mode .stats-help-columns .stats-help-section{background:#00000005}@media(max-width:768px){.stats-help-columns{grid-template-columns:1fr}}.stats-help-section h3{font-size:1rem;margin-bottom:10px;color:var(--text-color-primary)}.stats-help-section p{font-size:.9rem;color:var(--text-color-secondary);margin-bottom:10px;line-height:1.5}.stats-help-colors{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:15px 0}.stats-help-color-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:#ffffff08;border-radius:8px}.stats-help-color-item .legend-dot{width:16px;height:16px;flex-shrink:0}.stats-help-color-item div{display:flex;flex-direction:column}.stats-help-color-item strong{font-size:.85rem;color:var(--text-color-primary)}.stats-help-color-item span{font-size:.75rem;color:var(--text-color-secondary)}.stats-help-list{list-style:none;padding:0;margin:10px 0}.stats-help-list li{font-size:.85rem;color:var(--text-color-secondary);padding:5px 0 5px 20px;position:relative}.stats-help-list li:before{content:"\2022";position:absolute;left:5px;color:var(--primary-color)}.text-strong{color:#2ecc71;font-weight:600}.text-ok{color:#f1c40f;font-weight:600}.text-struggling{color:#e74c3c;font-weight:600}body.pupil-mode .legend-help-link{display:none}.mtc-overview-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:10px}.mtc-overview-stats .overview-stat{background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;padding:15px 10px;text-align:center}.mtc-overview-stats .overview-value{font-size:1.5rem;font-weight:700;color:var(--text-color-primary);margin-bottom:4px}.mtc-overview-stats .overview-label{font-size:.75rem;color:var(--text-color-secondary)}.mtc-overview-stats .overview-value.trend-up{color:#2ecc71}.mtc-overview-stats .overview-value.trend-down{color:#e74c3c}.mtc-overview-stats .overview-value.trend-neutral{color:#f39c12}.recent-mtc-item{display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;padding:12px;background:#ffffff08;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s ease}.recent-mtc-item:hover{background:#ffffff0f;border-color:#ffffff26}.recent-mtc-date{font-size:.85rem;color:var(--text-color-secondary);white-space:nowrap}.recent-mtc-score-section{display:flex;flex-direction:column;gap:4px}.recent-mtc-score{font-size:1.1rem;font-weight:600}.recent-mtc-score.pass{color:#2ecc71}.recent-mtc-score.close{color:#f39c12}.recent-mtc-score.fail{color:#e74c3c}.recent-mtc-bar{height:6px;background:#ffffff1a;border-radius:3px;overflow:hidden;position:relative}.recent-mtc-bar-fill{height:100%;border-radius:3px;transition:width .3s ease}.recent-mtc-bar-fill.pass{background:linear-gradient(90deg,#2ecc71,#27ae60)}.recent-mtc-bar-fill.close{background:linear-gradient(90deg,#f1c40f,#f39c12)}.recent-mtc-bar-fill.fail{background:linear-gradient(90deg,#e74c3c,#c0392b)}.recent-mtc-bar-threshold{position:absolute;left:80%;top:0;bottom:0;width:2px;background:#fff6}.recent-mtc-struggled{font-size:.8rem;color:#e74c3c;text-align:right;max-width:150px}@media(max-width:600px){.mtc-overview-stats{grid-template-columns:repeat(2,1fr)}.recent-mtc-item{grid-template-columns:1fr;gap:8px}.recent-mtc-struggled{text-align:left;max-width:none}}.table-stat-cell.clickable{cursor:pointer}.table-stat-cell.clickable:hover{transform:translateY(-3px);box-shadow:0 6px 16px #0003}.table-stat-cell.clickable:after{content:"\203a";position:absolute;top:4px;right:6px;font-size:.7rem;opacity:.4;transition:opacity .2s}.table-stat-cell{position:relative}.table-stat-cell.clickable:hover:after{opacity:.8}.drilldown-modal{max-width:700px}.drilldown-subtitle{color:var(--text-color-secondary);font-size:.9rem;margin:-10px 0 15px;text-align:center}.drilldown-summary{display:flex;justify-content:space-around;gap:10px;margin-bottom:20px;padding:12px;background:var(--bg-color);border-radius:10px}.drilldown-summary-item{text-align:center}.drilldown-summary-value{font-size:1.4rem;font-weight:700;color:var(--text-color-primary);display:block}.drilldown-summary-value.strong{color:#2ecc71}.drilldown-summary-value.ok{color:#f39c12}.drilldown-summary-value.struggling{color:#e74c3c}.drilldown-summary-value.time-fast{color:#2ecc71}.drilldown-summary-value.time-ok{color:#f39c12}.drilldown-summary-value.time-slow{color:#e74c3c}.drilldown-summary-label{font-size:.75rem;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.5px}.drilldown-grid-container{margin-bottom:15px}.drilldown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.drilldown-cell{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 8px;border-radius:8px;background:var(--bg-color);min-height:85px;box-sizing:border-box}.drilldown-cell.strong{background:linear-gradient(135deg,#2ecc7133,#27ae604d);border:2px solid #2ecc71}.drilldown-cell.ok{background:linear-gradient(135deg,#f1c40f33,#f39c124d);border:2px solid #f1c40f}.drilldown-cell.struggling{background:linear-gradient(135deg,#e74c3c33,#c0392b4d);border:2px solid #e74c3c}.drilldown-cell.no-data{background:var(--bg-color);border:2px dashed var(--border-color);opacity:.6}.drilldown-cell-label{font-size:.85rem;font-weight:600;color:var(--text-color-primary);margin-bottom:4px}.drilldown-cell-percent{font-size:1rem;font-weight:700}.drilldown-cell.strong .drilldown-cell-percent{color:#2ecc71}.drilldown-cell.ok .drilldown-cell-percent{color:#f39c12}.drilldown-cell.struggling .drilldown-cell-percent{color:#e74c3c}.drilldown-cell.no-data .drilldown-cell-percent{color:var(--text-color-secondary)}.drilldown-cell-attempts{font-size:.7rem;color:var(--text-color-secondary);margin-top:2px}.drilldown-cell-time{font-size:.65rem;font-weight:500;margin-top:3px;padding:1px 5px;border-radius:3px}.drilldown-cell-time.time-fast{color:#2ecc71;background:#2ecc7126}.drilldown-cell-time.time-ok{color:#f39c12;background:#f39c1226}.drilldown-cell-time.time-slow{color:#e74c3c;background:#e74c3c26}.drilldown-legend{margin-top:10px;margin-bottom:15px}@media(max-width:500px){.drilldown-grid{grid-template-columns:repeat(3,1fr);gap:8px}.drilldown-cell{min-height:75px;padding:10px 6px}}.stats-summary{display:flex;flex-direction:column;gap:10px}.summary-row{display:flex;justify-content:space-between;align-items:center;padding:8px 0;border-bottom:1px solid var(--border-color)}.summary-row:last-child{border-bottom:none}.summary-label{color:var(--text-color-secondary);font-size:.9rem}.summary-value{font-weight:600;color:var(--text-color-primary);font-size:.95rem}.summary-value.strong-text{color:#2ecc71}.summary-value.struggling-text{color:#e74c3c}.class-overview{display:flex;justify-content:space-around;gap:15px}.overview-stat{text-align:center;padding:15px;background:var(--bg-color);border-radius:10px;flex:1}.overview-value{font-size:1.8rem;font-weight:700;color:var(--text-color-primary);margin-bottom:5px}.overview-label{font-size:.8rem;color:var(--text-color-secondary)}.overview-value-compact{font-size:1rem;line-height:1.4}.practice-struggles-list{display:flex;flex-direction:column;gap:2px;text-align:center}.practice-struggle-item{font-size:.95rem;font-weight:600}.practice-struggle-item .struggle-table{color:var(--text-color-primary)}.practice-struggle-item .struggle-percent{font-weight:400;color:var(--text-color-secondary);font-size:.85rem}.practice-recommendation{font-size:1rem;color:var(--text-color-primary);text-align:center;line-height:1.5;padding:2px}.practice-recommendation .rec-label{font-size:.8rem;color:var(--text-color-secondary);margin-bottom:4px}.practice-recommendation .rec-table{font-weight:700;font-size:1.4rem;color:#9b59b6}.practice-recommendation .rec-stats{font-weight:500;font-size:.85rem;color:var(--text-color-secondary)}.practice-overview-section .class-overview{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.practice-overview-section .overview-stat{position:relative;padding:16px;border-radius:16px;background:linear-gradient(135deg,#ffffff0f,#ffffff05);border:1px solid rgba(255,255,255,.1);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;overflow:hidden;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:8px}.practice-overview-section .overview-stat:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000040;border-color:#fff3}.practice-overview-section .overview-stat:nth-child(1) .overview-value{color:#0793d1;font-size:1.8rem;font-weight:700}.practice-overview-section .overview-stat:nth-child(2) .overview-value{color:#2ecc71;font-size:1.8rem;font-weight:700}.practice-overview-section .overview-stat:nth-child(3) .overview-value{color:var(--text-color-primary);font-size:.9rem;font-weight:500}.practice-overview-section .overview-stat:nth-child(4) .overview-value{color:#f39c12;font-size:1.8rem;font-weight:700}.practice-overview-section .overview-label{font-size:.95rem;font-weight:600;color:#fffc}.practice-overview-section .overview-sublabel{font-size:.7rem;font-weight:400;color:#ffffff80;text-transform:lowercase;margin-top:2px}body.light-mode .practice-overview-section .overview-stat{background:linear-gradient(135deg,#00000008,#00000003);border-color:#0000001a}body.light-mode .practice-overview-section .overview-label{color:#0009}@media(max-width:768px){.practice-overview-section .class-overview{grid-template-columns:1fr 1fr;gap:12px}}@media(max-width:480px){.practice-overview-section .class-overview{grid-template-columns:1fr;gap:12px}}.practice-level-spread{display:flex;flex-direction:column;gap:3px;text-align:center}.practice-level-band{font-size:.85rem;display:flex;justify-content:center;align-items:center;gap:6px}.practice-level-band .level-range{color:var(--text-color-secondary);font-weight:400;min-width:50px;text-align:right}.practice-level-band .level-count{font-weight:700;color:var(--text-color-primary);min-width:30px;text-align:left}.stats-journey-start{text-align:center;padding:var(--space-lg) var(--space-md);margin-bottom:var(--space-md);background:var(--seat-bg);border:1px solid var(--border-color);border-radius:16px}.stats-journey-start .journey-title{font-size:1.35rem;font-weight:800;color:var(--text-color-primary);margin-bottom:var(--space-md)}.stats-journey-start .journey-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:var(--space-md)}.stats-journey-start .journey-step{padding:6px 14px;border-radius:999px;font-size:.95rem;font-weight:700}.stats-journey-start .journey-step.done{color:#38d66b;background:#38d66b29}.stats-journey-start .journey-step.next{color:var(--text-color-secondary);background:#7aa2ff24}.stats-journey-start .journey-cta{font-size:1.05rem;font-weight:700;color:var(--text-color-primary)}body.light-mode .stats-journey-start .journey-step.done{color:#1a9e4b}.speed-summary-stats{display:flex;gap:20px;margin-top:2px;padding:10px 12px;background:#2ecc7126;border-left:3px solid #2ecc71;border-radius:0 6px 6px 0;font-size:.9rem;font-weight:500;align-items:center;justify-content:center}.speed-summary-stats:empty{display:none}.speed-stat-item{display:flex;align-items:center;gap:6px}.speed-stat-value{font-weight:700}.speed-stat-value.fast{color:#2ecc71}.speed-stat-value.ok{color:#f39c12}.speed-stat-value.slow{color:#e74c3c}.speed-stat-label{font-weight:600;color:var(--text-color-primary)}.speed-bars{display:flex;flex-direction:column;gap:8px}.speed-item{display:flex;align-items:center;gap:10px;width:100%}.speed-table{min-width:35px;font-weight:600;color:var(--text-color-primary)}.speed-bar-container{flex:1;height:12px;background:var(--border-color);border-radius:6px;overflow:hidden}.speed-bar{height:100%;border-radius:6px;transition:width .3s ease}.speed-bar.fast{background:linear-gradient(90deg,#2ecc71,#27ae60)}.speed-bar.ok{background:linear-gradient(90deg,#f1c40f,#f39c12)}.speed-bar.slow{background:linear-gradient(90deg,#e74c3c,#c0392b)}.speed-time{min-width:45px;text-align:right;font-weight:600;font-size:.85rem;color:var(--text-color-secondary)}.speed-summary{margin-top:12px;padding:10px 12px;background:#0793d11a;border-left:3px solid #0793d1;border-radius:0 6px 6px 0;font-size:.85rem}.speed-item.clickable{cursor:pointer;border-radius:6px;padding:4px 8px;margin:-4px -8px;transition:background-color .2s ease,transform .15s ease}.speed-item.clickable:hover{background:#ffffff14;transform:translate(4px)}.speed-item.clickable:active{transform:translate(2px)}.school-comparison-row-3col{display:flex;gap:12px}.school-comparison-row-3col>.stats-section{flex:1;min-width:200px}.school-comparison-row-2col{display:flex;gap:12px}.school-comparison-row-2col>.stats-section{flex:1;min-width:250px}.mtc-students-progress-row{align-items:stretch}.mtc-students-progress-row>.stats-section{display:flex;flex-direction:column}.mtc-students-progress-row>.stats-section:first-child{flex:1;min-width:200px}.mtc-students-progress-row>.mtc-progress-section{flex:2;min-width:400px}@media(max-width:900px){.school-comparison-row-3col{flex-wrap:wrap}.school-comparison-row-3col>.stats-section{flex:1 1 100%;min-width:100%}}@media(max-width:700px){.school-comparison-row-2col{flex-wrap:wrap}.school-comparison-row-2col>.stats-section{flex:1 1 100%;min-width:100%}}.table-students-modal{max-width:95vw;width:95vw;height:90vh;max-height:90vh;display:flex;flex-direction:column}.table-students-modal:before{display:none}.table-students-subtitle{margin:-8px 0 20px;font-size:.9rem;opacity:.7}.table-students-tiers{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:16px;flex:1;overflow-y:auto;padding-right:4px}@media(max-width:700px){.table-students-modal{width:98vw;max-width:98vw;height:95vh;max-height:95vh}.table-students-tiers{grid-template-columns:1fr}}.tier-section{border-radius:10px;padding:12px;background:#ffffff08}.tier-section.tier-strong{border-left:4px solid #2ecc71}.tier-section.tier-ok{border-left:4px solid #f1c40f}.tier-section.tier-struggling{border-left:4px solid #e74c3c}.tier-section.tier-nodata{border-left:4px solid rgba(255,255,255,.2)}.tier-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:10px}.tier-label{font-weight:600;font-size:.9rem;color:var(--text-color-primary)}.tier-count{background:#ffffff1a;padding:4px 12px;border-radius:12px;font-size:.75rem;font-weight:600;white-space:nowrap}.tier-students{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:6px}.tier-student-card{display:flex;flex-direction:column;align-items:center;padding:8px 6px;background:#ffffff0d;border-radius:8px;cursor:pointer;transition:background-color .2s ease,transform .15s ease}.tier-student-card:hover{background:#ffffff1f;transform:translateY(-2px)}.tier-student-name{font-size:.8rem;font-weight:500;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.tier-student-score{font-size:.75rem;opacity:.7;margin-top:2px}.tier-empty{font-size:.85rem;opacity:.5;text-align:center;padding:8px;margin:0}.tier-strong .tier-student-card{border-bottom:2px solid rgba(46,204,113,.3)}.tier-ok .tier-student-card{border-bottom:2px solid rgba(241,196,15,.3)}.tier-struggling .tier-student-card{border-bottom:2px solid rgba(231,76,60,.3)}.tier-nodata .tier-student-card{border-bottom:2px solid rgba(255,255,255,.1)}body.light-mode .table-students-modal{background:var(--container-bg)}body.light-mode .table-students-modal h2{color:#1e293b}body.light-mode .table-students-subtitle{color:#64748b}body.light-mode .table-students-summary{background:#0000000a;border:1px solid rgba(0,0,0,.08)}body.light-mode .tier-section{background:#00000008}body.light-mode .tier-section.tier-strong{background:linear-gradient(135deg,#2ecc7114,#2ecc7105)}body.light-mode .tier-section.tier-ok{background:linear-gradient(135deg,#f1c40f1a,#f1c40f08)}body.light-mode .tier-section.tier-struggling{background:linear-gradient(135deg,#e74c3c14,#e74c3c05)}body.light-mode .tier-section.tier-nodata{background:#00000005;border-left-color:#00000026}body.light-mode .tier-label{color:#1e293b}body.light-mode .tier-count{background:#00000014;color:#475569}body.light-mode .tier-section.tier-strong .tier-count{background:#2ecc7133;color:#1e8449}body.light-mode .tier-section.tier-ok .tier-count{background:#f1c40f40;color:#9a7b0a}body.light-mode .tier-section.tier-struggling .tier-count{background:#e74c3c26;color:#c0392b}body.light-mode .tier-student-card{background:#fffc;border:1px solid rgba(0,0,0,.08)}body.light-mode .tier-student-card:hover{background:#fff;box-shadow:0 2px 8px #0000001a}body.light-mode .tier-student-name{color:#1e293b}body.light-mode .tier-student-score{color:#64748b;opacity:1}body.light-mode .tier-strong .tier-student-card{border-bottom:2px solid rgba(46,204,113,.5)}body.light-mode .tier-ok .tier-student-card{border-bottom:2px solid rgba(241,196,15,.6)}body.light-mode .tier-struggling .tier-student-card{border-bottom:2px solid rgba(231,76,60,.5)}body.light-mode .tier-nodata .tier-student-card{border-bottom:2px solid rgba(0,0,0,.1)}body.light-mode .tier-empty{color:#94a3b8}.raid-boss-container{display:none;position:absolute;top:0;left:0;right:0;bottom:0;z-index:20;padding:var(--space-sm);box-sizing:border-box;overflow:visible}.raid-boss-container.active{display:flex;flex-direction:column;align-items:center;justify-content:center}.raid-boss-card{background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:15px;padding:var(--space-sm) var(--space-md);box-shadow:0 8px 32px #0000004d;border:3px solid #e74c3c;width:100%;max-width:100%;max-height:100%;display:flex;flex-direction:row;align-items:center;gap:var(--space-md)}.raid-boss-left{display:flex;flex-direction:column;align-items:center;flex-shrink:0}.raid-boss-right{display:flex;flex-direction:column;align-items:center;justify-content:center;flex:1;min-width:0}.raid-boss-countdown{font-size:18px;font-weight:900;color:#fff;margin-bottom:4px;background:linear-gradient(135deg,#ffc107,#e53935);padding:6px 12px;border-radius:8px;animation:pulse 1s ease-in-out infinite;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.raid-boss-monster{font-size:64px;margin:0;filter:drop-shadow(0 0 15px rgba(231,76,60,.5));transition:all .3s ease;line-height:1;display:flex;align-items:center;justify-content:center;flex-shrink:1}.raid-boss-monster .boss-video{display:block;width:180px;height:180px;max-width:100%;max-height:100%;object-fit:contain;border-radius:10px;margin:0 auto}.raid-boss-title{color:#e74c3c;font-size:18px;margin:0 0 4px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.raid-boss-health-container{width:100%;margin:8px 0}.raid-boss-health-bg{background-color:#1a1a1a;border-radius:8px;height:28px;width:100%;overflow:hidden;position:relative;box-shadow:inset 0 2px 6px #00000080}.raid-boss-health-bar{height:100%;background:linear-gradient(90deg,#e74c3c,#c0392b);transition:width .5s ease;border-radius:8px}.raid-boss-health-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:14px;z-index:1;text-shadow:1px 1px 3px rgba(0,0,0,.8)}.raid-boss-defeated-banner{display:none;background-color:#4caf50;color:#fff;padding:10px 15px;border-radius:10px;font-size:18px;font-weight:700;margin-bottom:var(--space-sm);animation:pulse 1s infinite}.raid-boss-defeated-banner.show{display:block}.raid-boss-dismiss-btn{display:none;margin-top:var(--space-sm)}.raid-boss-dismiss-btn.show{display:block}.raid-boss-mini{display:none;position:fixed;top:10px;right:20px;z-index:1000;background:linear-gradient(135deg,#2c3e50,#34495e);border-radius:50px;padding:6px 14px;border:2px solid #e74c3c;box-shadow:0 4px 20px #0006;align-items:center;gap:8px}.raid-boss-mini.active{display:flex}.raid-boss-mini-icon{width:36px;height:36px;object-fit:contain;border-radius:6px}.raid-boss-mini-health-wrapper{position:relative;width:150px;height:20px;background-color:#1a1a1a;border-radius:10px;overflow:hidden}.raid-boss-mini-health-bar{height:100%;background:linear-gradient(90deg,#e74c3c,#c0392b);transition:width .5s ease;border-radius:10px}.raid-boss-mini-health-text{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);color:#fff;font-weight:700;font-size:11px;text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap}.raid-boss-mini-timer{color:#f39c12;font-weight:700;font-size:16px;text-shadow:1px 1px 2px rgba(0,0,0,.8);white-space:nowrap;min-width:50px;text-align:center}.raid-boss-damage-popup{display:none;position:absolute;top:-10px;left:10px;font-size:24px;font-weight:700;color:#f44;text-shadow:2px 2px 4px rgba(0,0,0,.8);pointer-events:none;z-index:100}.raid-boss-damage-popup.show{display:block;animation:damagePopupFloat .8s ease-out forwards}@keyframes damagePopupFloat{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-20px) scale(1.5)}}body.raid-boss-active:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;background-image:radial-gradient(2px 2px at 10% 90%,rgba(255,100,0,.5) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 25% 85%,rgba(255,69,0,.4) 50%,transparent 50%),radial-gradient(2px 2px at 40% 95%,rgba(255,140,0,.5) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 55% 88%,rgba(255,80,0,.4) 50%,transparent 50%),radial-gradient(2px 2px at 70% 92%,rgba(255,120,0,.45) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 85% 87%,rgba(255,60,0,.5) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 20% 80%,rgba(255,69,0,.4) 50%,transparent 50%),radial-gradient(2px 2px at 50% 85%,rgba(255,100,0,.35) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 75% 82%,rgba(255,140,0,.4) 50%,transparent 50%),radial-gradient(3px 3px at 35% 75%,rgba(255,80,0,.35) 40%,transparent 70%),radial-gradient(3.5px 3.5px at 65% 78%,rgba(255,100,0,.3) 40%,transparent 70%);height:calc(100% + 720px);background-size:100px 240px,140px 240px,110px 240px,130px 240px,120px 240px,105px 240px,180px 360px,200px 360px,190px 360px,280px 360px,300px 360px;animation:emberRise 6s linear infinite}@keyframes emberRise{0%{transform:translateY(0)}to{transform:translateY(-720px)}}body.raid-boss-active:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 50% 100%,rgba(139,0,0,.15) 0%,transparent 50%);pointer-events:none;z-index:1;animation:raidBossGlow 4s ease-in-out infinite}@keyframes raidBossGlow{0%,to{opacity:.5}50%{opacity:.8}}body.battle-mode-active:before{content:"";position:fixed;top:0;left:0;right:0;bottom:0;background:radial-gradient(circle at 20% 80%,rgba(255,215,0,.1) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,215,0,.1) 0%,transparent 50%),radial-gradient(circle at 40% 50%,rgba(255,165,0,.05) 0%,transparent 50%);pointer-events:none;z-index:1;animation:battleGlow 4s ease-in-out infinite}@keyframes battleGlow{0%,to{opacity:.5}50%{opacity:1}}@keyframes battleRotate{0%{transform:translate(-50%,-50%) rotate(0)}to{transform:translate(-50%,-50%) rotate(360deg)}}body.battle-mode-active:after{content:"";position:fixed;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:2;background-image:radial-gradient(2px 2px at 12% 15%,rgba(255,215,0,.8) 50%,transparent 50%),radial-gradient(1px 1px at 89% 23%,rgba(255,255,255,.9) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 34% 78%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(2px 2px at 67% 34%,rgba(255,255,255,.8) 50%,transparent 50%),radial-gradient(1px 1px at 23% 89%,rgba(255,215,0,.9) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 78% 67%,rgba(255,255,255,.6) 50%,transparent 50%),radial-gradient(2px 2px at 45% 12%,rgba(255,215,0,.8) 50%,transparent 50%),radial-gradient(1px 1px at 91% 78%,rgba(255,255,255,.9) 50%,transparent 50%),radial-gradient(1.5px 1.5px at 17% 45%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(2px 2px at 56% 91%,rgba(255,255,255,.8) 50%,transparent 50%),radial-gradient(3px 3px at 28% 67%,rgba(255,215,0,.6) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 73% 12%,rgba(255,255,255,.7) 50%,transparent 50%),radial-gradient(3px 3px at 45% 89%,rgba(255,215,0,.8) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 12% 34%,rgba(255,255,255,.6) 50%,transparent 50%),radial-gradient(3px 3px at 89% 56%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(2.5px 2.5px at 34% 23%,rgba(255,255,255,.8) 50%,transparent 50%),radial-gradient(4px 4px at 78% 45%,rgba(255,215,0,.5) 50%,transparent 50%),radial-gradient(3.5px 3.5px at 23% 78%,rgba(255,255,255,.6) 50%,transparent 50%),radial-gradient(4px 4px at 67% 23%,rgba(255,215,0,.7) 50%,transparent 50%),radial-gradient(3.5px 3.5px at 45% 67%,rgba(255,255,255,.5) 50%,transparent 50%);width:calc(100% + 720px);height:calc(100% + 720px);background-size:120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,120px 120px,240px 240px,240px 240px,240px 240px,240px 240px,240px 240px,240px 240px,360px 360px,360px 360px,360px 360px,360px 360px;animation:sparkleDrift 20s linear infinite,sparkleSheen 5s ease-in-out infinite}@keyframes sparkleDrift{0%{transform:translate(0)}to{transform:translate(-720px,-720px)}}@keyframes sparkleSheen{0%,to{opacity:1}50%{opacity:.75}}.battle-results-content{max-width:40rem;width:95%;padding:var(--space-2xl);display:flex;flex-direction:column}.battle-results-content h2{font-size:var(--font-size-2xl);background:linear-gradient(135deg,var(--leaderboard-gold) 0%,var(--color-accent-warning) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:var(--space-xl);animation:battleTitleShine 3s ease-in-out infinite}@keyframes battleTitleShine{0%,to{opacity:.8}50%{opacity:1}}.game-results-banner{display:flex;align-items:center;justify-content:center;gap:var(--space-md);margin-bottom:var(--space-md)}.game-results-banner .gm-emblem{flex:0 0 auto}.game-results-banner-text{text-align:left}.game-results-banner-title{display:block;font-family:var(--font-display);font-weight:800;font-size:var(--font-size-2xl);line-height:1.05;background:linear-gradient(135deg,var(--leaderboard-gold) 0%,var(--color-accent-warning) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;animation:battleTitleShine 3s ease-in-out infinite}.game-results-banner-sub{display:block;font-weight:800;font-size:var(--font-size-lg);color:var(--text-color-secondary)}.game-results-prize{margin:0 auto var(--space-lg);padding:.7rem 1.1rem;max-width:92%;border-radius:.9rem;background:#ffd7001f;border:1px solid rgba(255,215,0,.4);color:var(--text-color-primary);font-weight:700;font-size:var(--font-size-base);text-align:center;line-height:1.45}.battle-winners{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);margin-bottom:var(--space-2xl)}.winner-section{background:var(--seat-bg);border-radius:var(--space-lg);padding:var(--space-xl);text-align:center;position:relative;overflow:hidden;border:3px solid;transition:transform var(--transition-base)}.winner-section:hover{transform:scale(1.05)}.winner-section.gold-winner{border-color:var(--leaderboard-gold);background:linear-gradient(135deg,rgba(255,215,0,.1) 0%,var(--seat-bg) 100%)}.winner-section.silver-winner{border-color:var(--leaderboard-silver);background:linear-gradient(135deg,rgba(192,192,192,.1) 0%,var(--seat-bg) 100%)}.winner-icon{font-size:4rem;margin-bottom:var(--space-md);filter:drop-shadow(0 4px 8px rgba(0,0,0,.3));animation:winnerFloat 3s ease-in-out infinite}@keyframes winnerFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.winner-title{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-secondary);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:.05em}.winner-name{font-size:var(--font-size-xl);font-weight:800;color:var(--text-color-primary);margin-bottom:var(--space-sm)}.winner-score{font-size:var(--font-size-lg);font-weight:700;padding:var(--space-xs) var(--space-md);border-radius:1rem;display:inline-block}.gold-winner .winner-score{background:linear-gradient(135deg,var(--leaderboard-gold) 0%,var(--color-accent-warning) 100%);color:#1a1a2e}.silver-winner .winner-score{background:linear-gradient(135deg,var(--leaderboard-silver) 0%,#a8a8a8 100%);color:#1a1a2e}@media(max-width:1024px){.raid-boss-card{padding:var(--space-xs) var(--space-sm);gap:var(--space-sm)}.raid-boss-countdown{font-size:14px;padding:4px 8px;margin-bottom:2px}.raid-boss-monster .boss-video{width:100px;height:100px}.raid-boss-title{font-size:14px;margin:0 0 2px}.raid-boss-health-bg{height:20px}.raid-boss-health-text{font-size:11px}.raid-boss-health-container{margin:4px 0}.raid-boss-defeated-banner{font-size:14px;padding:6px 10px;margin-bottom:var(--space-xs)}.raid-boss-dismiss-btn button{font-size:14px!important;padding:8px 16px!important}}@media(max-width:1024px){.raid-boss-card{padding:var(--space-xs) var(--space-sm);gap:var(--space-sm)}.raid-boss-countdown{font-size:16px;padding:5px 10px}.raid-boss-monster .boss-video{width:120px;height:120px}.raid-boss-title{font-size:16px}}body.particles-disabled.battle-mode-active:before,body.particles-disabled.battle-mode-active:after,body.particles-disabled.raid-boss-active:before,body.particles-disabled.raid-boss-active:after,body.bulk-edit-mode.battle-mode-active:before,body.bulk-edit-mode.battle-mode-active:after,body.bulk-edit-mode.raid-boss-active:before,body.bulk-edit-mode.raid-boss-active:after,body.seating-edit-mode.battle-mode-active:before,body.seating-edit-mode.battle-mode-active:after,body.seating-edit-mode.raid-boss-active:before,body.seating-edit-mode.raid-boss-active:after{display:none}#chaosModal .modal-content{max-width:34rem}#chaosModal .chaos-section-label{display:block;margin-bottom:10px;font-weight:800;font-size:13px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-color-secondary, #999)}.chaos-perk-toggles{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px}.chaos-perk-toggle-item{position:relative;display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:10px;background:var(--seat-bg, rgba(255,255,255,.04));border:1.5px solid transparent;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s}.chaos-perk-toggle-item:has(.chaos-perk-toggle:checked){border-color:var(--perk-card-color, rgba(255,255,255,.2));background:var(--perk-card-bg, rgba(255,255,255,.06))}.chaos-perk-toggle-item:has(.chaos-perk-toggle:not(:checked)){opacity:.45}.chaos-perk-toggle-item[data-perk=scoreBoost]{--perk-card-color: #FFD700;--perk-card-bg: rgba(255,215,0,.08);--perk-card-glow: rgba(255,215,0,.12)}.chaos-perk-toggle-item[data-perk=pointSteal]{--perk-card-color: #FF4444;--perk-card-bg: rgba(255,68,68,.08);--perk-card-glow: rgba(255,68,68,.12)}.chaos-perk-toggle-item[data-perk=wipeout]{--perk-card-color: #FF0000;--perk-card-bg: rgba(255,0,0,.08);--perk-card-glow: rgba(255,0,0,.12)}.chaos-perk-toggle-item[data-perk=gift]{--perk-card-color: #44DD66;--perk-card-bg: rgba(68,221,102,.08);--perk-card-glow: rgba(68,221,102,.12)}.chaos-perk-toggle-item[data-perk=splat]{--perk-card-color: #9B59B6;--perk-card-bg: rgba(155,89,182,.08);--perk-card-glow: rgba(155,89,182,.12)}.chaos-perk-toggle-item[data-perk=shield]{--perk-card-color: #3498DB;--perk-card-bg: rgba(52,152,219,.08);--perk-card-glow: rgba(52,152,219,.12)}.chaos-perk-toggle-item[data-perk=doublePoints]{--perk-card-color: #FF9F1C;--perk-card-bg: rgba(255,159,28,.08);--perk-card-glow: rgba(255,159,28,.12)}.chaos-perk-toggle-item[data-perk=swap]{--perk-card-color: #1ABC9C;--perk-card-bg: rgba(26,188,156,.08);--perk-card-glow: rgba(26,188,156,.12)}.chaos-perk-toggle-item[data-perk=reflect]{--perk-card-color: #A569BD;--perk-card-bg: rgba(165,105,189,.08);--perk-card-glow: rgba(165,105,189,.12)}.chaos-perk-toggle-item[data-perk=choosePlayer]{--perk-card-color: #E84393;--perk-card-bg: rgba(232,67,147,.08);--perk-card-glow: rgba(232,67,147,.12)}.chaos-perk-toggle-item label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:13px;font-weight:700;flex:1;pointer-events:none}.chaos-perk-toggle-item .perk-toggle-icon{font-size:16px}#chaosModal .chaos-perk-toggle{width:32px;height:16px;padding:0;margin:0 0 0 auto;appearance:none;-webkit-appearance:none;background:#ffffff26;border-radius:8px;position:relative;cursor:pointer;outline:none;transition:background .25s;flex-shrink:0;border:none}#chaosModal .chaos-perk-toggle:checked{background:var(--perk-card-color, #4CAF50)}#chaosModal .chaos-perk-toggle:before{content:"";position:absolute;top:2px;left:2px;width:12px;height:12px;border-radius:50%;background:#fff;transition:transform .25s cubic-bezier(.34,1.56,.64,1);box-shadow:0 1px 2px #0000004d}#chaosModal .chaos-perk-toggle:checked:before{transform:translate(16px)}.chaos-frequency-wrapper{display:flex;align-items:center;gap:12px;margin-bottom:8px;padding:8px 0;font-size:13px;font-weight:600;color:var(--text-color-secondary, #999)}.chaos-frequency-wrapper input[type=range]{flex:1;height:6px;border-radius:3px;accent-color:#E74C3C;cursor:pointer}#chaosFrequencyLabel{font-weight:800;font-size:15px;color:var(--text-color-primary, #fff);min-width:70px}.chaos-perk-bubble{position:fixed;width:88px;height:88px;border-radius:50%;display:none;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:100;cursor:pointer;background:radial-gradient(circle at 35% 30%,var(--perk-color, #FFD700) 0%,rgba(0,0,0,.5) 100%);border:2px solid rgba(255,255,255,.25);box-shadow:inset 0 -4px 12px #0000004d;animation:perkFloat 1.8s ease-in-out infinite;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none}.chaos-perk-bubble:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;box-shadow:0 0 25px var(--perk-color, #FFD700),0 0 70px color-mix(in srgb,var(--perk-color, #FFD700) 50%,transparent);animation:glowBreathe 2s ease-in-out infinite;pointer-events:none}.chaos-perk-bubble.active{display:flex;animation:perkAppear .35s cubic-bezier(.34,1.56,.64,1),perkFloat 1.8s ease-in-out .35s infinite}.chaos-perk-bubble .perk-icon{font-size:28px;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.4))}.chaos-perk-bubble .perk-name{font-size:9px;font-weight:800;color:#fff;text-shadow:0 1px 4px rgba(0,0,0,.7);text-transform:uppercase;letter-spacing:.5px;margin-top:2px}.chaos-perk-bubble .perk-tap{font-size:10px;font-weight:900;color:#fff;text-transform:uppercase;letter-spacing:2px;text-shadow:0 0 8px rgba(255,255,255,.6);animation:tapPulse .5s ease-in-out infinite alternate}@keyframes perkAppear{0%{transform:scale(0) rotate(-180deg);opacity:0}to{transform:scale(1) rotate(0);opacity:1}}@keyframes perkFloat{0%,to{transform:translateY(0) rotate(0)}25%{transform:translateY(-8px) rotate(2deg)}50%{transform:translateY(-14px) rotate(0)}75%{transform:translateY(-8px) rotate(-2deg)}}@keyframes tapPulse{0%{opacity:.6;transform:scale(.95)}to{opacity:1;transform:scale(1.05)}}#chaosNotificationContainer{position:fixed;top:50px;left:50%;transform:translate(-50%);z-index:110;display:flex;flex-direction:column;align-items:center;gap:0;pointer-events:none;width:100%;max-width:60rem}.chaos-notification{padding:28px 32px;width:100%;box-sizing:border-box;border-radius:16px;font-size:24px;font-weight:800;background:#0a0a14f2;color:#fff;text-align:center;border-bottom:2px solid rgba(255,255,255,.08);box-shadow:0 8px 32px #00000080;animation:notifSlam .3s cubic-bezier(.34,1.56,.64,1),notifFadeOut .5s ease-in 2.5s forwards;pointer-events:auto;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);text-shadow:0 2px 8px rgba(0,0,0,.5);letter-spacing:.3px}@keyframes notifSlam{0%{opacity:0;transform:translateY(-40px) scale(1.15)}70%{transform:translateY(4px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes notifFadeOut{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-15px) scale(.95)}}#chaosBuffIndicators{display:none;position:fixed;right:20px;top:170px;z-index:999;flex-direction:column;align-items:flex-end;gap:6px;pointer-events:none}.chaos-buff-badge{display:flex;align-items:center;gap:6px;padding:6px 14px;border-radius:12px;background:linear-gradient(135deg,#1a1a2e,#16213e);border:2px solid var(--badge-color, #3498DB);font-size:12px;font-weight:800;color:var(--badge-text, #7EC8F0);text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px 20px var(--badge-shadow, rgba(52, 152, 219, .3));white-space:nowrap;animation:buffBadgePop .3s cubic-bezier(.34,1.56,.64,1)}.chaos-buff-badge .buff-icon{font-size:14px}.chaos-buff-badge.shield{--badge-color: #3498DB;--badge-text: #7EC8F0;--badge-shadow: rgba(52, 152, 219, .35)}.chaos-buff-badge.reflect{--badge-color: #A569BD;--badge-text: #D6B3E8;--badge-shadow: rgba(165, 105, 189, .35)}.chaos-buff-badge.double{--badge-color: #FF9F1C;--badge-text: #FFD79A;--badge-shadow: rgba(255, 159, 28, .4)}.chaos-buff-badge.choose{--badge-color: #E84393;--badge-text: #F7A8CD;--badge-shadow: rgba(232, 67, 147, .4)}@keyframes buffBadgePop{0%{opacity:0;transform:translate(20px) scale(.85)}to{opacity:1;transform:translate(0) scale(1)}}.test-screen.active.chaos-shielded:before{content:"";position:fixed;top:4px;right:4px;bottom:4px;left:4px;z-index:85;pointer-events:none;border-radius:12px;border:3px solid rgba(52,152,219,.7);box-shadow:0 0 30px #3498db4d,inset 0 0 30px #3498db1a;animation:glowBreathe 2s ease-in-out infinite}.test-screen.active.chaos-reflecting:before{content:"";position:fixed;top:4px;right:4px;bottom:4px;left:4px;z-index:85;pointer-events:none;border-radius:12px;border:3px solid rgba(165,105,189,.75);box-shadow:0 0 30px #a569bd59,inset 0 0 30px #a569bd1f;animation:glowBreathe 2s ease-in-out infinite}.test-screen.active.chaos-double:after{content:"";position:fixed;top:4px;right:4px;bottom:4px;left:4px;z-index:84;pointer-events:none;border-radius:12px;border:3px solid rgba(255,159,28,.85);box-shadow:0 0 36px #ff9f1c73,inset 0 0 30px #ff9f1c24;animation:glowBreathe 1.4s ease-in-out infinite}#chaosSplatOverlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:90;pointer-events:none;opacity:0;transition:opacity .3s ease-out}#chaosSplatOverlay.active{opacity:1;animation:splatShake .3s ease-out;background:#00000040;backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px)}.chaos-splat-blob{position:absolute;pointer-events:none;animation:splatImpact .35s cubic-bezier(.34,1.56,.64,1),splatDriftSE var(--drift-duration, 4s) ease-in-out var(--drift-delay, 0s) infinite alternate}.chaos-splat-blob:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:var(--blob-bg, rgba(120, 40, 160, .85));border-radius:inherit;box-shadow:0 8px 30px #00000073;animation:splatPulseMid var(--pulse-duration, 2.5s) ease-in-out var(--pulse-delay, 0s) infinite}.chaos-splat-blob.drift-nw{animation-name:splatImpact,splatDriftNW}.chaos-splat-blob.drift-ne{animation-name:splatImpact,splatDriftNE}.chaos-splat-blob.drift-sw{animation-name:splatImpact,splatDriftSW}.chaos-splat-blob.drift-w{animation-name:splatImpact,splatDriftW}.chaos-splat-blob.drift-e{animation-name:splatImpact,splatDriftE}.chaos-splat-blob.drift-n{animation-name:splatImpact,splatDriftN}.chaos-splat-blob.drift-s{animation-name:splatImpact,splatDriftS}.chaos-splat-blob.pulse-soft:before{animation-name:splatPulseSoft}.chaos-splat-blob.pulse-strong:before{animation-name:splatPulseStrong}@keyframes splatImpact{0%{transform:translate(-50%,-50%) scale(0);opacity:0}60%{transform:translate(-50%,-50%) scale(1.15);opacity:1}to{transform:translate(-50%,-50%) scale(1);opacity:1}}@keyframes splatDriftNW{0%{translate:0 0}to{translate:-30px -22px}}@keyframes splatDriftNE{0%{translate:0 0}to{translate:30px -22px}}@keyframes splatDriftSW{0%{translate:0 0}to{translate:-28px 20px}}@keyframes splatDriftSE{0%{translate:0 0}to{translate:30px 22px}}@keyframes splatDriftW{0%{translate:0 0}to{translate:-40px 6px}}@keyframes splatDriftE{0%{translate:0 0}to{translate:40px -6px}}@keyframes splatDriftN{0%{translate:0 0}to{translate:8px -30px}}@keyframes splatDriftS{0%{translate:0 0}to{translate:-8px 28px}}@keyframes splatPulseSoft{0%,to{opacity:1}50%{opacity:.3}}@keyframes splatPulseMid{0%,to{opacity:1}50%{opacity:.45}}@keyframes splatPulseStrong{0%,to{opacity:1}50%{opacity:.6}}@keyframes splatShake{0%{transform:translate(0)}20%{transform:translate(-4px,2px)}40%{transform:translate(3px,-3px)}60%{transform:translate(-2px,1px)}80%{transform:translate(1px,-1px)}to{transform:translate(0)}}#chaosResultsModal .modal-content{max-width:30rem;overflow:hidden}.chaos-results-winner{text-align:center;margin-bottom:24px;padding:20px 0 16px;position:relative}.chaos-results-winner:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:200px;height:200px;background:radial-gradient(circle,rgba(255,215,0,.12) 0%,transparent 70%);pointer-events:none}.chaos-results-crown{font-size:56px;line-height:1;filter:drop-shadow(0 4px 12px rgba(255,215,0,.3));animation:trophyBounce .6s cubic-bezier(.34,1.56,.64,1)}@keyframes trophyBounce{0%{transform:scale(0) rotate(-20deg)}to{transform:scale(1) rotate(0)}}.chaos-results-winner-name{font-size:26px;font-weight:800;margin:12px 0 4px}.chaos-results-winner-score{font-size:18px;font-weight:600;color:var(--text-color-secondary, #999)}.chaos-results-podium{margin-bottom:16px}.chaos-results-podium-entry,.chaos-results-lb-entry{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.06);font-size:15px;transition:background .15s}.chaos-results-podium-entry:last-child,.chaos-results-lb-entry:last-child{border-bottom:none}.chaos-results-medal{font-size:24px;filter:drop-shadow(0 1px 3px rgba(0,0,0,.3))}.chaos-results-rank{font-weight:800;min-width:28px;color:var(--text-color-secondary, #666);font-size:13px}.chaos-results-name{flex:1;font-weight:700}.chaos-results-score{font-weight:800;font-size:17px;font-variant-numeric:tabular-nums}.chaos-results-leaderboard{max-height:180px;overflow-y:auto;border-top:1px solid rgba(255,255,255,.06);margin-top:4px}.chaos-results-shoutouts{margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}.chaos-shoutout-title{font-size:13px;font-weight:800;text-transform:uppercase;letter-spacing:1px;color:var(--text-color-secondary, #999);margin-bottom:10px;text-align:center}.chaos-shoutout{display:flex;align-items:center;gap:10px;padding:8px 12px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.05)}.chaos-shoutout:last-child{border-bottom:none}.chaos-shoutout-label{flex:1;font-weight:700;color:var(--text-color-secondary, #bbb)}.chaos-shoutout-name{font-weight:800;color:var(--text-color-primary, #fff)}.chaos-shoutout-value{font-weight:800;font-variant-numeric:tabular-nums;min-width:28px;text-align:right;color:#4cd964}.chaos-mode-active .progress{font-weight:800;font-variant-numeric:tabular-nums;letter-spacing:.5px}#chaosHomeBtn{position:fixed;top:12px;left:12px;z-index:95;padding:7px 16px;font-size:14px;font-weight:700;letter-spacing:.5px;border-radius:18px;background:#ffffff1a;border:1.5px solid rgba(255,255,255,.2);color:#fff9;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}#chaosHomeBtn:hover,#chaosHomeBtn:active{background:#ff3c3c33;border-color:#ff505080;color:#fff;box-shadow:0 0 15px #ff3c3c26}#chaosDynamicIsland{position:fixed;top:8px;left:50%;transform:translate(-50%);z-index:98;display:flex;align-items:center;gap:14px;padding:10px 24px;border-radius:28px;background:#0a0a14e6;border:2px solid rgba(255,255,255,.15);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);font-weight:700;color:#fff;transition:background .3s ease,border-color .3s ease;max-width:88%;overflow:hidden;box-shadow:0 4px 24px #0006}.chaos-island-timer{display:none;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums;color:#fff;white-space:nowrap;flex-shrink:0}.chaos-island-feed{font-size:16px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0;opacity:0;transition:opacity .3s}.chaos-island-feed.visible{opacity:1}.chaos-island-correct{font-size:16px;font-weight:800;color:#4cd964;white-space:nowrap;flex-shrink:0;margin-left:auto;font-variant-numeric:tabular-nums;text-shadow:0 0 10px rgba(76,217,100,.4)}.chaos-island-timer:after{content:"\b7";margin-left:14px;font-size:20px;color:#ffffff4d}#chaosBackgroundSplats{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;overflow:hidden}body.chaos-mode-active #chaosBackgroundSplats{display:block}body.chaos-mode-active #main-content{animation:chaosEdgeGlow 3s steps(30) infinite alternate}@keyframes chaosEdgeGlow{0%{box-shadow:0 0 20px #9b59b640,0 0 50px #9b59b61a,inset 0 0 30px #9b59b60f}50%{box-shadow:0 0 20px #ff444440,0 0 50px #ff44441a,inset 0 0 30px #ff44440f}to{box-shadow:0 0 20px #3498db40,0 0 50px #3498db1a,inset 0 0 30px #3498db0f}}body.chaos-mode-active.chaos-in-test #chaosBackgroundSplats{display:none}.chaos-bg-splat{position:absolute;pointer-events:none;opacity:0;animation:bgSplatLife var(--splat-duration, 8s) ease-in-out forwards;animation-delay:var(--splat-delay, 0s)}@keyframes bgSplatLife{0%{opacity:0;transform:translate(-50%,-50%) scale(.6)}15%{opacity:1;transform:translate(-50%,-50%) scale(1)}85%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}to{opacity:0;transform:translate(-50%,-50%) scale(1.1)}}#chaosChooseModal .modal-content{max-width:26rem;text-align:center}#chaosChooseModal h2{margin-bottom:6px}#chaosChooseSubtitle{font-size:14px;font-weight:600;color:var(--text-color-secondary, #aaa);margin-bottom:14px}.chaos-choose-list{display:flex;flex-direction:column;gap:8px;max-height:50vh;overflow-y:auto;margin:12px 0 16px;padding:2px}.chaos-choose-row{display:flex;align-items:center;gap:12px;width:100%;padding:12px 16px;border-radius:12px;background:var(--seat-bg, rgba(255, 255, 255, .05));border:2px solid var(--accent, #888);color:var(--text-color-primary, #fff);font-size:16px;font-weight:700;cursor:pointer;text-align:left;appearance:none;-webkit-appearance:none;-webkit-tap-highlight-color:transparent;transition:transform .12s ease,box-shadow .12s ease,background .12s ease}.chaos-choose-row:hover,.chaos-choose-row:active{transform:translateY(-2px) scale(1.02);background:color-mix(in srgb,var(--accent, #888) 18%,transparent);box-shadow:0 6px 20px color-mix(in srgb,var(--accent, #888) 35%,transparent)}.chaos-choose-rank{flex-shrink:0;min-width:26px;height:26px;display:flex;align-items:center;justify-content:center;border-radius:50%;background:var(--accent, #888);color:#fff;font-size:13px;font-weight:800}.chaos-choose-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chaos-choose-score{flex-shrink:0;font-size:18px;font-weight:800;font-variant-numeric:tabular-nums}.raid-boss-results-content{max-width:32rem;width:95%;padding:var(--space-2xl);text-align:center}.raid-boss-results-content h2{font-size:var(--font-size-2xl);margin-bottom:var(--space-xl)}.raid-boss-outcome{margin-bottom:var(--space-2xl)}.raid-boss-outcome .outcome-icon{font-size:5rem;margin-bottom:var(--space-md);animation:winnerFloat 3s ease-in-out infinite}.raid-boss-outcome .outcome-text{font-size:var(--font-size-2xl);font-weight:800;margin-bottom:var(--space-sm)}.raid-boss-outcome .outcome-subtitle{font-size:var(--font-size-md);color:var(--text-color-secondary)}.raid-boss-results-content.victory .outcome-text{background:linear-gradient(135deg,#4ade80,#22c55e);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.raid-boss-results-content.victory{border:3px solid #22c55e;box-shadow:0 0 30px #22c55e4d}.raid-boss-results-content.timeout .outcome-text{background:linear-gradient(135deg,#f87171,#ef4444);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.raid-boss-results-content.timeout{border:3px solid #ef4444;box-shadow:0 0 30px #ef44444d}.raid-boss-stats{display:flex;justify-content:center;gap:var(--space-xl);margin-bottom:var(--space-2xl);flex-wrap:wrap}.raid-boss-stats .stat-item{background:var(--seat-bg);border-radius:var(--space-md);padding:var(--space-lg);min-width:8rem}.raid-boss-stats .stat-label{font-size:var(--font-size-sm);color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-xs)}.raid-boss-stats .stat-value{font-size:var(--font-size-xl);font-weight:700;color:var(--text-color-primary)}#closeRaidBossResultsBtn{width:100%;max-width:16rem;margin:0 auto;display:block;background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%)}@keyframes pulse{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.05);opacity:.8}}@keyframes bossDamage{0%,to{filter:drop-shadow(0 0 20px rgba(231,76,60,.5))}50%{filter:drop-shadow(0 0 40px rgba(255,0,0,1)) brightness(1.5);transform:scale(.95)}}@keyframes bossDefeated{0%{transform:rotate(0) scale(1);opacity:1}25%{transform:rotate(-15deg) scale(.95)}50%{transform:rotate(15deg) scale(.9)}75%{transform:rotate(-10deg) scale(.85)}to{transform:rotate(0) scale(.8);opacity:.5;filter:grayscale(100%)}}.boss-damage-flash{animation:bossDamage .3s ease-out}.boss-defeated-anim{animation:bossDefeated 1s ease-out forwards}#leaderboardAndControlsWrapper{display:flex;gap:var(--space-lg);align-items:flex-start;justify-content:center}#leaderboardContainer h3{font-size:var(--font-size-lg);font-weight:800;margin-bottom:var(--space-sm);color:var(--color-accent-primary);text-shadow:2px 2px 4px rgba(0,0,0,.2)}.leaderboard-lists-wrapper{height:10rem;overflow-y:auto;overflow-x:hidden;position:relative;padding-right:var(--space-xs)}#leaderboardContainer{padding-right:.625rem}.leaderboard-view{list-style:none;padding:0;margin:0}.leaderboard-view li{display:flex;align-items:center;padding:.02rem var(--space-sm);margin-bottom:.25rem;border-radius:var(--radius-md);background:var(--seat-bg);border:2px solid var(--border-color);transition:all var(--transition-base);position:relative;overflow:hidden}.leaderboard-view li:before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:transparent;transition:width var(--transition-base)}.leaderboard-view li:hover{transform:translate(4px);box-shadow:var(--shadow-md)}.leaderboard-view li:hover:before{width:8px}.leaderboard-view li.rank-1 .leaderboard-rank,.leaderboard-view li.rank-2 .leaderboard-rank,.leaderboard-view li.rank-3 .leaderboard-rank{box-shadow:inset 0 2px 3px #ffffff8c,inset 0 -2px 3px #00000047,0 1px 2px #0000004d;text-shadow:none}.leaderboard-view li.rank-1 .leaderboard-rank{background:radial-gradient(circle at 50% 32%,#fff2a8,var(--leaderboard-gold));color:#2a2300}.leaderboard-view li.rank-2 .leaderboard-rank{background:radial-gradient(circle at 50% 32%,#ffffff,var(--leaderboard-silver));color:#33333f}.leaderboard-view li.rank-3 .leaderboard-rank{background:radial-gradient(circle at 50% 32%,#edb98a,var(--leaderboard-bronze));color:#3a1f06}.leaderboard-view li.current-user .leaderboard-name{font-weight:800}.you-badge{display:inline-block;font-size:.65rem;font-weight:800;background:#a855f7;color:#fff;padding:.1rem .42rem;border-radius:var(--radius-pill);margin-left:.4rem;vertical-align:middle}.leaderboard-rank{width:2.1rem;height:2.1rem;flex:none;display:flex;align-items:center;justify-content:center;border-radius:50%;font-weight:800;font-size:var(--font-size-base);color:var(--text-color-secondary)}.leaderboard-name{flex-grow:1;padding:0 var(--space-md);font-size:var(--font-size-base);font-weight:600}.leaderboard-score{font-weight:800;font-size:var(--font-size-base);background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);color:#fff;padding:var(--space-xs) var(--space-sm);border-radius:1rem;min-width:2.5rem;text-align:center;box-shadow:var(--shadow-sm)}.rank-color-1{color:var(--leaderboard-gold)}.rank-color-2{color:var(--leaderboard-blue)}.rank-color-3{color:var(--leaderboard-green)}.rank-color-other{color:var(--text-color-secondary)}@media(max-width:1366px){#leaderboardContainer{flex:0 1 auto;display:flex;flex-direction:column;padding:0;height:100%;margin-left:1rem}#leaderboardContainer h3{font-size:var(--font-size-base);margin-bottom:var(--space-xs);margin-left:1rem;flex-shrink:0}.leaderboard-lists-wrapper{height:auto;flex:1;min-width:17vb;overflow-y:auto;overflow-x:hidden;padding-right:.25rem;max-height:8.75rem}.leaderboard-view{display:flex;flex-direction:column;gap:.25rem}.leaderboard-view li{padding:var(--space-xs) var(--space-sm);margin-bottom:0;height:2.75rem;display:flex;align-items:center;flex-shrink:0}.leaderboard-rank{font-size:.8rem;width:1.7rem;height:1.7rem;font-weight:800}.leaderboard-name,.liveLeaderboardTitle,.goldLeaderboardTitle,.silverLeaderboardTitle{font-size:.875rem;padding:0 var(--space-sm);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-score{font-size:.875rem;padding:.125rem var(--space-sm);min-width:2.5rem;font-weight:800}}body.battle-mode-active .leaderboard-view li.rank-1{position:relative;overflow:visible;box-shadow:0 0 25px #ffd700bf;animation:championGlow 3s ease-in-out infinite}body.battle-mode-active .leaderboard-view li.rank-1:before{background:linear-gradient(45deg,gold,#ffed4e,gold,#ffed4e);background-size:400% 400%;animation:championShimmer 2s ease-in-out infinite;box-shadow:0 0 20px #ffd70099}body.battle-mode-active .leaderboard-view li.rank-1:after{content:"\2728";position:absolute;top:-10px;right:-10px;font-size:1.5rem;animation:championFloat 2s ease-in-out infinite;filter:drop-shadow(0 0 8px rgba(255,215,0,.8));z-index:10}body.battle-mode-active .leaderboard-view li.rank-1 .leaderboard-name{animation:championPulse 2s ease-in-out infinite;text-shadow:0 0 8px rgba(255,215,0,.8),0 0 16px rgba(255,215,0,.4)}body.battle-mode-active .leaderboard-view li.rank-2{position:relative;overflow:visible;box-shadow:0 0 20px #c0c0c0b3;animation:silverGlow 3.5s ease-in-out infinite}body.battle-mode-active .leaderboard-view li.rank-2:before{background:var(--leaderboard-blue);box-shadow:0 0 15px #60a5fa99}body.battle-mode-active .leaderboard-view li.rank-2:after{content:"\2b50";position:absolute;top:-8px;right:-8px;font-size:1.3rem;animation:silverFloat 2.5s ease-in-out infinite;filter:drop-shadow(0 0 6px rgba(192,192,192,.8));z-index:10}body.battle-mode-active .leaderboard-view li.rank-2 .leaderboard-name{animation:silverPulse 2.5s ease-in-out infinite;text-shadow:0 0 6px rgba(192,192,192,.8),0 0 12px rgba(192,192,192,.4)}@keyframes championGlow{0%,to{transform:scale(1)}50%{transform:scale(1.02)}}@keyframes championShimmer{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}@keyframes championFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-8px) rotate(15deg)}}@keyframes championPulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.05);filter:brightness(1.2)}}@keyframes silverGlow{0%,to{transform:scale(1)}50%{transform:scale(1.015)}}@keyframes silverFloat{0%,to{transform:translateY(0) rotate(0)}50%{transform:translateY(-6px) rotate(-10deg)}}@keyframes silverPulse{0%,to{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.03);filter:brightness(1.15)}}.final-leaderboard-section{background:var(--seat-bg);border-radius:var(--space-lg);padding:var(--space-xl);margin-bottom:var(--space-xl);flex:1;display:flex;flex-direction:column;min-height:0}.final-leaderboard-section h3{font-size:var(--font-size-lg);margin-bottom:var(--space-md);color:var(--color-accent-primary)}.final-leaderboard-wrapper{flex:1;overflow-y:auto;overflow-x:hidden;padding-right:var(--space-xs);min-height:0}#closeBattleResultsBtn{width:100%;max-width:20rem;margin:0 auto;display:block;background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);flex-shrink:0}@media(max-width:768px){.battle-winners{grid-template-columns:1fr;gap:var(--space-md)}.winner-icon{font-size:3rem}.winner-name{font-size:var(--font-size-lg)}.final-leaderboard-wrapper{max-height:15rem}}.crown-mini-leaderboard{display:none;position:fixed;top:10px;right:20px;z-index:1000;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:12px;padding:8px 12px;border:2px solid #f1c40f;box-shadow:0 4px 20px #f1c40f4d;min-width:140px;max-width:180px}body.battle-mode-active .crown-mini-leaderboard.active,body.chaos-mode-active .crown-mini-leaderboard.active{display:block}.crown-mini-header{display:flex;align-items:center;justify-content:center;gap:6px;padding-bottom:6px;border-bottom:1px solid rgba(241,196,15,.3);margin-bottom:6px}.crown-mini-icon{font-size:14px}.crown-mini-title{font-size:11px;font-weight:700;color:#f1c40f;text-transform:uppercase;letter-spacing:.5px}.crown-mini-list{list-style:none;padding:0;margin:0}.crown-mini-list li{display:flex;align-items:center;gap:6px;padding:4px 6px;margin-bottom:3px;border-radius:6px;font-size:11px;font-weight:600;color:#fffc;background:#ffffff0d;transition:all .3s ease}.crown-mini-list li:last-child{margin-bottom:0}.crown-mini-list li.current-player{background:linear-gradient(135deg,#6366f140,#a855f726);border:1.5px solid #a855f7;color:#fff;box-shadow:0 0 8px #a855f74d}.crown-mini-list .you-badge.mini{font-size:.5rem;padding:.1rem .3rem;margin-left:.3rem}.crown-mini-list li.rank-1{background:linear-gradient(135deg,#ffd70066,#ffa5004d);color:#fff}.crown-mini-list li.rank-2{background:linear-gradient(135deg,#c0c0c04d,#80808033);color:#fff}.crown-mini-list li.rank-3{background:linear-gradient(135deg,#cd7f324d,#8b451333);color:#fff}.crown-mini-rank{min-width:18px;text-align:center;font-weight:700;color:#fff9}.crown-mini-list li.rank-1 .crown-mini-rank,.crown-mini-list li.rank-2 .crown-mini-rank,.crown-mini-list li.rank-3 .crown-mini-rank{color:#fff}.crown-mini-name{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crown-mini-score{font-weight:700;color:#f1c40f}.crown-mini-separator{text-align:center;color:#ffffff4d;font-size:10px;padding:2px 0;margin:2px 0}@media(max-width:768px){.crown-mini-leaderboard{top:8px;right:8px;padding:6px 8px;min-width:120px;max-width:150px}.crown-mini-list li{font-size:10px;padding:3px 5px}.crown-mini-title{font-size:10px}}.crown-mini-rank-badge{display:none}@media(max-width:1366px){.crown-mini-leaderboard{cursor:pointer;transition:all .3s ease}.crown-mini-leaderboard:not(.crown-expanded) .crown-mini-header,.crown-mini-leaderboard:not(.crown-expanded) .crown-mini-list{display:none}.crown-mini-leaderboard:not(.crown-expanded) .crown-mini-rank-badge{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:700;color:#f1c40f;white-space:nowrap}.crown-mini-leaderboard:not(.crown-expanded){min-width:auto;max-width:none;padding:6px 12px;border-radius:20px}.crown-mini-leaderboard.crown-expanded .crown-mini-rank-badge{display:none}.crown-mini-leaderboard.crown-expanded .crown-mini-header{display:flex}.crown-mini-leaderboard.crown-expanded .crown-mini-list{display:block}}@media(prefers-reduced-motion:reduce){:root{--transition-fast: 0s;--transition-base: 0s;--transition-slow: 0s;--animation-bounce: linear}body *,body *:before,body *:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:0s!important;scroll-behavior:auto!important}}body.reduced-motion{--transition-fast: 0s !important;--transition-base: 0s !important;--transition-slow: 0s !important;--animation-bounce: linear !important}body.reduced-motion,body.reduced-motion *{animation:none!important;animation-duration:.001ms!important;animation-iteration-count:1!important;transition:none!important;transition-duration:0s!important;transition-delay:0s!important;will-change:auto!important}body.reduced-motion .seat:hover,body.reduced-motion .student-seat:hover,body.reduced-motion .student-card:hover,body.reduced-motion .game-mode-btn:hover,body.reduced-motion .btn:hover,body.reduced-motion .dropdown-item:hover,body.reduced-motion .close-btn:hover,body.reduced-motion .login-choice-btn:hover,body.reduced-motion .leaderboard-item:hover,body.reduced-motion .player-card:hover,body.reduced-motion .winner-card:hover{transform:none!important;box-shadow:none!important}body.reduced-motion .student-seat:hover{border-color:var(--seat-border)!important;z-index:auto!important}body.reduced-motion .crown-indicator,body.reduced-motion .silver-crown,body.reduced-motion .bronze-crown,body.reduced-motion .particle,body.reduced-motion .login-particle,body.reduced-motion .math-symbol{animation:none!important;opacity:0!important;display:none!important}body.reduced-motion #particlesContainer{display:none!important}body.reduced-motion .seat.completed:after,body.reduced-motion .seat.active:after,body.reduced-motion .silver-glow{animation:none!important;box-shadow:none!important}body.reduced-motion .letter,body.reduced-motion .wave-text span{animation:none!important;transform:none!important}body.reduced-motion .modal,body.reduced-motion .modal-content,body.reduced-motion .raid-boss-modal{animation:none!important;transform:none!important;opacity:1!important}body.reduced-motion .btn:focus,body.reduced-motion .btn:active,body.reduced-motion button:focus,body.reduced-motion button:active{transform:none!important;outline:2px solid var(--primary-color)!important;outline-offset:2px!important}body.reduced-motion .loading-dots,body.reduced-motion .loading-dots span,body.reduced-motion .loading-spinner,body.reduced-motion .pulse-indicator{animation:none!important}body.reduced-motion .dragging,body.reduced-motion .drag-over,body.reduced-motion [draggable=true]:hover,body.reduced-motion .leaderboard-item,body.reduced-motion .leaderboard-rank,body.reduced-motion .leaderboard-score{animation:none!important;transform:none!important}body.reduced-motion:before,body.reduced-motion:after,body.reduced-motion .container:before,body.reduced-motion .container:after{animation:none!important}body.reduced-motion .card,body.reduced-motion .student-card,body.reduced-motion .player-card{animation:none!important;opacity:1!important;transform:none!important}body.reduced-motion .connection-status:before,body.reduced-motion .pulse-dot{animation:none!important}body.reduced-motion .success-icon,body.reduced-motion .celebration,body.reduced-motion .success-burst{animation:none!important;display:none!important}body.reduced-motion .damage-popup{animation:none!important;opacity:1!important}body.reduced-motion .boss-damage,body.reduced-motion .boss-defeated{animation:none!important}body.reduced-motion input:focus,body.reduced-motion select:focus,body.reduced-motion textarea:focus{transform:none!important;box-shadow:0 0 0 2px var(--primary-color)!important}body.reduced-motion .shimmer,body.reduced-motion .shine,body.reduced-motion [class*=shimmer],body.reduced-motion [class*=shine]{animation:none!important;background-image:none!important}body.reduced-motion .seat.completed{background:var(--success-color)!important;border-color:var(--success-color)!important}body.reduced-motion .seat.active{background:var(--primary-color)!important;border-color:var(--primary-color)!important}body.reduced-motion .dropdown,body.reduced-motion .user-dropdown{animation:none!important;transform:none!important}body.reduced-motion .header,body.reduced-motion .dropdown,body.reduced-motion .user-dropdown,body.reduced-motion .modal-content,body.reduced-motion .raid-boss-modal,body.reduced-motion .tooltip,body.reduced-motion .popover,body.reduced-motion [class*=glass],body.reduced-motion [class*=blur]{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}body.reduced-motion .user-dropdown{background:var(--bg-color)!important}body.reduced-motion .seat:hover,body.reduced-motion .student-seat:hover,body.reduced-motion .btn:hover,body.reduced-motion .game-mode-btn:hover,body.reduced-motion img,body.reduced-motion .avatar,body.reduced-motion .profile-picture,body.reduced-motion [class*=filter]{filter:none!important;-webkit-filter:none!important}body.reduced-motion .card:hover,body.reduced-motion .seat:hover,body.reduced-motion .student-seat:hover,body.reduced-motion .btn:hover,body.reduced-motion .student-card:hover,body.reduced-motion .player-card:hover,body.reduced-motion .game-mode-btn:hover,body.reduced-motion .dropdown-item:hover,body.reduced-motion .leaderboard-item:hover{box-shadow:var(--shadow-sm)!important}body.reduced-motion [class*=gradient],body.reduced-motion [class*=animated-bg]{background-size:100% 100%!important;background-position:center!important}body.reduced-motion *:hover{cursor:pointer}body.reduced-motion [class*=glow],body.reduced-motion [class*=neon],body.reduced-motion .winner-name{text-shadow:none!important}body.reduced-motion ::-webkit-scrollbar-thumb{transition:none}body.reduced-motion input,body.reduced-motion select,body.reduced-motion textarea,body.reduced-motion button,body.reduced-motion .btn:active,body.reduced-motion button:active,body.reduced-motion .seat:active,body.reduced-motion .student-seat:active,body.reduced-motion .game-mode-btn:active{transform:none!important}body.reduced-motion *:before,body.reduced-motion *:after{animation:none!important;transition:none!important}body.reduced-motion .decorative,body.reduced-motion .sparkle,body.reduced-motion .star,body.reduced-motion .twinkle,body.reduced-motion [class*=floating],body.reduced-motion [class*=bouncing],body.reduced-motion [class*=pulsing]{display:none!important}body.reduced-motion .password-toggle:hover,body.reduced-motion .close-btn:hover,body.reduced-motion .icon-btn:hover,body.reduced-motion [class*=toggle]:hover{opacity:1!important}body.reduced-motion .progress-bar,body.reduced-motion .health-bar,body.reduced-motion .xp-bar,body.reduced-motion [class*=progress]{transition:none!important}body.reduced-motion .seat.active,body.reduced-motion .seat.completed,body.reduced-motion input:focus,body.reduced-motion button:focus{border-color:var(--primary-color)!important}body.reduced-motion .fade,body.reduced-motion .fade-in,body.reduced-motion .fade-out,body.reduced-motion [class*=fade]{opacity:1!important;visibility:visible!important}body.reduced-motion *{letter-spacing:normal!important}@keyframes glowFade{0%,to{opacity:0}50%{opacity:1}}@keyframes glowBreathe{0%,to{opacity:.5}50%{opacity:1}}@keyframes successCelebration{0%{transform:scale(0) rotate(0);opacity:0}50%{transform:scale(1.2) rotate(180deg);opacity:1}to{transform:scale(1) rotate(360deg);opacity:1}}@keyframes loadingDots{0%,20%{color:#ffffff4d;transform:scale(1)}40%{color:#fff;transform:scale(1.2)}60%,to{color:#ffffff4d;transform:scale(1)}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.skip-link{position:absolute;top:-100%;left:50%;transform:translate(-50%);background:var(--btn-primary-bg);color:#fff;padding:var(--space-md) var(--space-lg);border-radius:0 0 12px 12px;font-weight:700;text-decoration:none;z-index:10002;transition:top .3s ease}.skip-link:focus{top:0;outline:3px solid white;outline-offset:2px}@media(prefers-contrast:high){:root{--text-color-primary: #ffffff;--text-color-secondary: #e0e0e0;--bg-color: #000000;--container-bg: #1a1a1a;--border-color: #ffffff}.btn,.key,.student-seat{border-width:4px}}.live-region{position:absolute;left:-10000px;width:1px;height:1px;overflow:hidden}body.dyslexia-font,body.dyslexia-font input,body.dyslexia-font button,body.dyslexia-font select,body.dyslexia-font textarea,body.dyslexia-font .mtc-logo,body.dyslexia-font .school-dashboard-title,body.dyslexia-font .stats-section h3,body.dyslexia-font .score-band-pupil-name,body.dyslexia-font .overview-value,body.dyslexia-font .pupil-score-value,body.dyslexia-font .finish-content-wrapper .final-score,body.dyslexia-font .badge-celebration-name,body.dyslexia-font .badge-celebration-count{font-family:OpenDyslexic,Andika,Nunito Sans,sans-serif!important}body.large-text{--font-size-xs: 1rem;--font-size-sm: 1.125rem;--font-size-base: 1.3125rem;--font-size-lg: 1.75rem;--font-size-xl: 2.25rem;--font-size-2xl: 2.875rem;--font-size-3xl: 3.5rem}body.high-contrast{--text-color-primary: #ffffff !important;--text-color-secondary: #ffffff !important;--bg-color: #000000 !important;--bg-gradient: none !important;--container-bg: #000000 !important;--seat-bg: #000000 !important;--seat-completed-bg: #000000 !important;--seat-absent-bg: #000000 !important;--keypad-bg: #000000 !important;--keypad-hover-bg: #333333 !important;--border-color: #ffffff !important;--glass-border: 2px solid #ffffff !important;--btn-primary-bg: #000000 !important;--btn-primary-hover: #333333 !important;--btn-cancel-bg: #000000 !important;--btn-cancel-hover: #333333 !important;--seat-active-text: #ffff00 !important;background-color:#000!important;background-image:none!important}body.high-contrast .btn,body.high-contrast button,body.high-contrast .key,body.high-contrast .keypad-btn,body.high-contrast .student-seat,body.high-contrast .seat,body.high-contrast .game-mode-btn,body.high-contrast .dropdown-item{background:#000!important;color:#fff!important;border:3px solid #ffffff!important}body.high-contrast .seat.completed,body.high-contrast .student-seat.completed{border-color:#0f0!important}body.high-contrast .seat.active,body.high-contrast .student-seat.active{border-color:#ff0!important}body.high-contrast .header,body.high-contrast .user-dropdown,body.high-contrast .modal-content,body.high-contrast .container{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#000!important}body.high-contrast *{text-shadow:none!important}body.high-contrast *:before,body.high-contrast *:after{background-image:none!important}body.high-contrast .mtc-logo,body.high-contrast .landing-card h1,body.high-contrast .class-login-card h1{background:none!important;-webkit-text-fill-color:#ffffff!important;color:#fff!important}.reading-help-modal-content{max-width:32rem}.reading-help-intro{margin-bottom:var(--space-lg);color:var(--text-color-secondary);text-align:center;font-size:var(--font-size-sm)}.reading-help-list{display:flex;flex-direction:column;gap:var(--space-sm)}.reading-help-row{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-md);border:2px solid var(--border-color);border-radius:var(--space-md);background:var(--seat-bg);cursor:pointer;transition:border-color var(--transition-fast),background var(--transition-fast)}.reading-help-row:hover{border-color:var(--btn-primary-bg)}.reading-help-icon{flex:0 0 auto;font-size:1.5rem;width:2rem;text-align:center;color:var(--text-color-primary)}.reading-help-copy{display:flex;flex-direction:column;gap:.15rem;flex:1 1 auto;min-width:0}.reading-help-name{font-weight:700;font-size:var(--font-size-base);color:var(--text-color-primary)}.reading-help-desc{font-size:var(--font-size-xs);color:var(--text-color-secondary);line-height:1.4}.rh-switch{position:relative;flex:0 0 auto;display:inline-block;width:3.25rem;height:1.875rem}.rh-switch input{position:absolute;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.rh-slider{position:absolute;top:0;right:0;bottom:0;left:0;background:#b8b8c8;border-radius:1.875rem;transition:background var(--transition-base);box-shadow:inset 0 2px 4px #0003;pointer-events:none}.rh-slider:before{content:"";position:absolute;height:1.375rem;width:1.375rem;left:.25rem;bottom:.25rem;background:#fff;border-radius:50%;box-shadow:0 2px 4px #0000004d;transition:transform var(--transition-base)}.rh-switch input:checked+.rh-slider{background:linear-gradient(135deg,#2ecc71,#27ae60)}.rh-switch input:checked+.rh-slider:before{transform:translate(1.375rem)}.rh-switch input:focus-visible+.rh-slider{outline:3px solid var(--btn-primary-bg);outline-offset:2px}.reading-help-preview{margin-top:var(--space-lg);padding:var(--space-md);border:2px dashed var(--border-color);border-radius:var(--space-md);text-align:center}.reading-help-preview-label{display:block;font-size:var(--font-size-xs);font-weight:700;letter-spacing:.03em;color:var(--text-color-secondary);margin-bottom:var(--space-xs)}.reading-help-preview-text{font-size:var(--font-size-lg);font-weight:600;color:var(--text-color-primary);margin:0}.reading-help-modal-content .admin-cancel-btn{margin:var(--space-xl) auto 0;background:transparent;color:var(--text-color-secondary);padding:var(--space-sm) var(--space-xl);font-size:var(--font-size-base);font-weight:700;border:2px solid var(--border-color);border-radius:2rem;cursor:pointer;display:block;transition:all var(--transition-base)}.reading-help-modal-content .admin-cancel-btn:hover{background:var(--seat-bg);border-color:var(--text-color-secondary);transform:translateY(-2px)}@media print{body{background:#fff;color:#000}.container{box-shadow:none;border:1px solid #000}#darkModeToggle,#authBtn,.connection-status,.btn,.keypad,.modal{display:none!important}.student-seat{border:2px solid #000;box-shadow:none}.leaderboard-view li{border:1px solid #000;box-shadow:none}}.end-game-btn{display:none;align-items:center;padding:var(--space-xs) var(--space-md);background:linear-gradient(135deg,#dc2626,#b91c1c);border:none;border-radius:2rem;color:#fff;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all var(--transition-base);box-shadow:0 2px 8px #dc262666;white-space:nowrap}.end-game-btn:hover{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #dc262680;transform:translateY(-1px)}.end-game-btn:active{transform:translateY(0);box-shadow:0 2px 6px #dc262666}.end-game-btn.mtc-timer-display{background:linear-gradient(135deg,#7c3aed,#4f46e5);box-shadow:0 2px 8px #7c3aed4d;cursor:pointer}.end-game-btn.mtc-timer-display:hover{background:linear-gradient(135deg,#8b5cf6,#6366f1);box-shadow:0 4px 12px #7c3aed73;transform:translateY(-1px)}.add-mtc-practice-btn{display:none;align-items:center;padding:var(--space-xs) var(--space-md);background:linear-gradient(135deg,#7c3aed,#4f46e5);border:none;border-radius:2rem;color:#fff;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;white-space:nowrap;transition:all .2s ease;box-shadow:0 2px 8px #7c3aed4d}.mtc-btn-short{display:none}@media(max-width:768px){.mtc-btn-full{display:none}.mtc-btn-short{display:inline}}.add-mtc-practice-btn:hover{background:linear-gradient(135deg,#8b5cf6,#6366f1);box-shadow:0 4px 12px #7c3aed80;transform:translateY(-1px)}.add-mtc-practice-btn:active{transform:translateY(0);box-shadow:0 2px 6px #7c3aed66}.add-mtc-practice-btn.mtc-active{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 2px 8px #dc26264d}.add-mtc-practice-btn.mtc-active:hover{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 4px 12px #dc262680}.adjust-timer-content{max-width:26rem}.adjust-timer-line{margin:.25rem 0;font-size:var(--font-size-base);color:var(--text-color-secondary)}.adjust-timer-line strong{color:var(--text-color-primary);font-weight:800;font-variant-numeric:tabular-nums}.adjust-timer-new strong{color:#34d399}.adjust-timer-quick{display:grid;grid-template-columns:repeat(5,1fr);gap:.5rem;margin:1rem 0}.adjust-timer-btn{width:auto;max-width:none;margin:0;padding:var(--space-sm) .25rem;font-size:var(--font-size-base);border-radius:1rem}.adjust-timer-minus{background:linear-gradient(to bottom,#ef4444,#dc2626)}.adjust-timer-plus{background:linear-gradient(to bottom,#22c55e,#16a34a)}.adjust-timer-exact{margin:1rem 0 .5rem}.adjust-timer-exact label{display:block;margin-bottom:.4rem;font-size:var(--font-size-sm);color:var(--text-color-secondary)}.adjust-timer-actions{margin-top:1.25rem}body:not(.pupil-mode) #raidBossCountdown,body:not(.pupil-mode) #rvbTimer{cursor:pointer}
