@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}@supports (-moz-appearance: none){*{scrollbar-width:auto;scrollbar-color:var(--brand-gradient-start, #90233a) var(--scrollbar-track, rgba(128, 128, 128, .14))}}::-webkit-scrollbar{width:var(--scrollbar-width, 16px);height:var(--scrollbar-width, 16px)}::-webkit-scrollbar-track{background:var(--scrollbar-track, rgba(128, 128, 128, .14));border-radius:var(--scrollbar-radius, 100px)}::-webkit-scrollbar-thumb{background:linear-gradient(180deg,var(--brand-gradient-start, #90233a) 0%,var(--brand-gradient-end, #7569ff) 100%);border-radius:var(--scrollbar-radius, 100px);border:4px solid transparent;background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:linear-gradient(180deg,#a82a46,#8a7dff);background-clip:padding-box}::-webkit-scrollbar-thumb:active{background:linear-gradient(180deg,#b02f4c,#9b8fff);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,minmax(0,1fr));gap:var(--space-md);height:100%}.student-seat,.empty-seat{min-width:0}.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 .student-name{width:max-content;max-width:none;flex-shrink:0;white-space:nowrap;transform-origin:center}.student-seat .student-name .name-text{overflow:visible;flex-shrink:0}.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}.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}#pupilLoginOverlay .class-login-card h1{margin-top:auto}#pupilLoginOverlay .class-login-card form{margin-bottom:auto}#pupilLoginOverlay .class-login-card.password-only h1{margin-bottom:clamp(1rem,3.5vh,2.25rem)}#pupilLoginOverlay .class-login-card.password-only p{margin-bottom:clamp(1.5rem,5vh,3rem)}#pupilLoginOverlay .class-login-card.password-only .btn{margin-top:clamp(1.5rem,5vh,3rem)}.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,cardGlow 6s ease-in-out infinite;transform-origin:center center}@keyframes cardEntrance{0%{opacity:0;transform:scale(.9) translateY(30px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes cardGlow{0%,to{box-shadow:0 12px 40px #00000059,0 0 26px #667eea73,0 0 60px #764ba24d}50%{box-shadow:0 12px 40px #00000059,0 0 26px #f5576c73,0 0 60px #f0084247}}.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{display:block;font-size:var(--font-size-xs);color:var(--text-color-secondary);margin-top:0;opacity:0;max-height:0;overflow:hidden;transition:opacity .3s ease,max-height .3s ease,margin-top .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;margin-top:var(--space-xs)}.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}:root.is-keyboard-open .class-login-overlay{top:var(--vv-top, 0);height:var(--vvh, 100%);bottom:auto;align-items:flex-start;overflow-y:auto}:root.is-keyboard-open .class-login-card{min-height:0;justify-content:flex-start;margin:0 auto}@media(max-height:620px){.class-login-card{min-height:0;justify-content:flex-start}}.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}#retryConnection{position:fixed;right:12px;top:52px;z-index:1001;padding:8px 12px;border-radius:8px;border:1px solid currentColor;background:#fff;color:#222;cursor:pointer}.connection-status{max-width:calc(100vw - 24px);font-size:12px}.connection-status.saved{opacity:1;visibility:visible;background:#26773e;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:hidden;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;max-height:calc(100vh - 2rem);max-height:calc(100dvh - 2rem);overflow-y:auto;overscroll-behavior:contain;margin-top:auto;margin-bottom:auto;flex-shrink:0}html.modal-open,body.modal-open{overflow:hidden}.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%}}.move-up-modal{text-align:left;max-width:34rem}.move-up-modal .move-up-head{text-align:left}.move-up-eyebrow{font-size:.68rem;letter-spacing:.09em;text-transform:uppercase;font-weight:700;opacity:.5;margin:0 0 12px}.move-up-head{font-size:1.3rem;font-weight:800;line-height:1.6;margin:0 0 6px}.move-up-name-pill{display:inline-block;background:#ffffff14;border:1px solid rgba(255,255,255,.16);border-radius:10px;padding:1px 12px;font-weight:800}.move-up-year-chip{display:inline-block;background:#22c55e;color:#08240f;border-radius:10px;padding:1px 12px;font-weight:800}.move-up-leaver-chip{display:inline-block;background:#f59e0b29;color:#f59e0b;border:1px solid rgba(245,158,11,.4);border-radius:10px;padding:1px 12px;font-weight:800}.move-up-question{font-size:.95rem;opacity:.75;margin:8px 0 14px}.move-up-modal .move-up-input{width:100%;padding:12px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.2);background:#ffffff0f;color:inherit;font-size:1.05rem;font-weight:600;text-align:left;margin:0 0 18px;box-sizing:border-box}.move-up-modal .move-up-input:focus{outline:2px solid #22c55e;outline-offset:1px;border-color:transparent}.move-up-actions{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap}.move-up-actions-right{display:flex;gap:10px}.move-up-actions .btn{width:auto;min-width:5rem;margin:0}.move-up-staff-chips{display:flex;flex-wrap:wrap;gap:8px;max-height:168px;overflow-y:auto;margin:0 0 14px}.move-up-staff-chip{padding:9px 14px;border-radius:12px;border:1px solid rgba(255,255,255,.18);background:#ffffff0f;color:inherit;font-family:inherit;font-size:.95rem;font-weight:800;text-align:left;cursor:pointer;transition:background .15s ease,border-color .15s ease}.move-up-staff-chip:hover{background:#ffffff1f}.move-up-staff-chip.is-on{background:#22c55e;border-color:#22c55e;color:#08240f}.move-up-staff-chip:focus-visible{outline:2px solid #22c55e;outline-offset:2px}.move-up-staff-chip.is-unassigned.is-on{background:#f59e0b29;border-color:#f59e0b73;color:#f59e0b}.move-up-staff-none{font-size:.85rem;opacity:.6;margin:0 0 14px}.move-up-summary-staff{display:block;font-size:.8rem;opacity:.6;margin-top:2px}.move-up-summary-staff.is-empty{color:#f59e0b;opacity:.85}.move-up-summary-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.95rem;padding:9px 0;border-bottom:1px solid rgba(255,255,255,.08)}.move-up-card-highlight{outline:3px solid #22c55e;outline-offset:3px;border-radius:16px;box-shadow:0 0 24px #22c55e59}:root.is-keyboard-open .modal{top:var(--vv-top, 0);height:var(--vvh, 100%);bottom:auto}:root.is-keyboard-open .modal-content{margin-top:0;margin-bottom:auto}@media(hover:none){.modal-content,.modal{backdrop-filter:none;-webkit-backdrop-filter:none}}@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}}:root{--color-base-dark: #1a1a2e;--color-base-light: #f5f3f0;--color-primary-dark: #252542;--color-primary-light: #fdfcfa;--color-accent-primary: #f00842;--color-accent-success: #28a745;--color-accent-warning: #ffc947;--color-accent-error: #ff6b6b;--color-accent-special: #a78bfa;--color-accent-info: #00d9ff;--brand-gradient-start: #90233a;--brand-gradient-end: #7569ff;--color-positive-feedback: #4ecb71;--color-negative-feedback: #ff6b6b;--color-neutral-action: #4ecb71;--color-informational: var(--color-accent-info);--color-achievement: #ffc947;--band-below-10: #e74c3c;--band-10-15: #e67e22;--band-16-19: #d4ac0d;--band-20-24: #27ae60;--band-full-marks: #0793d1;--band-insufficient: #555555;--badge-default-rgb: 46, 204, 113;--badge-streak-rgb: 243, 156, 18;--badge-mastery-rgb: 7, 147, 209;--badge-speed-rgb: 155, 89, 182;--badge-dedication-rgb: 231, 76, 140;--badge-growth-rgb: 26, 188, 156;--badge-challenge-rgb: 241, 196, 15;--bg-color: #0f0f1a;--bg-gradient: radial-gradient(circle at 50% 50%, #1a1a2e 0%, #0f0f1a 100%);--container-bg: rgba(42, 42, 78, .4);--glass-border: 1px solid rgba(255, 255, 255, .1);--glass-shadow: 0 8px 32px 0 rgba(0, 0, 0, .37);--text-color-primary: #f0f0f7;--text-color-secondary: #b8b8d0;--border-color: rgba(74, 74, 110, .5);--seat-bg: rgba(53, 53, 98, .6);--seat-completed-bg: rgba(42, 87, 73, .8);--seat-completed-border: var(--color-positive-feedback);--seat-absent-bg: rgba(61, 61, 92, .6);--seat-absent-border: #5a5a7a;--keypad-bg: rgba(63, 63, 106, .7);--keypad-hover-bg: rgba(79, 79, 122, .8);--btn-primary-bg: var(--brand-gradient-start);--btn-primary-hover: var(--brand-gradient-end);--btn-cancel-bg: var(--color-accent-error);--btn-cancel-hover: #ff5252;--seat-active-text: var(--color-accent-warning);--leaderboard-gold: #ffd700;--leaderboard-silver: #c0c0c0;--leaderboard-bronze: #cd7f32;--leaderboard-blue: #60a5fa;--leaderboard-green: var(--color-positive-feedback);--font-display: "Bricolage Grotesque", "Andika", "Nunito Sans", sans-serif;--font-size-xs: .875rem;--font-size-sm: 1rem;--font-size-base: 1.125rem;--font-size-lg: 1.5rem;--font-size-xl: 2rem;--font-size-2xl: 2.5rem;--font-size-3xl: 3rem;--space-xs: .5rem;--space-sm: .75rem;--space-md: 1rem;--space-lg: 1.25rem;--space-xl: 2rem;--space-2xl: 3rem;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-xl: 24px;--radius-pill: 999px;--transition-fast: .15s ease-out;--transition-base: .25s ease-out;--transition-slow: .35s ease-out;--animation-bounce: cubic-bezier(.68, -.55, .265, 1.55);--shadow-sm: 0 2px 4px rgba(0, 0, 0, .1);--shadow-md: 0 4px 8px rgba(0, 0, 0, .15);--shadow-lg: 0 8px 16px rgba(0, 0, 0, .2);--shadow-glow: 0 0 20px rgba(0, 217, 255, .3);--scrollbar-width: 16px;--scrollbar-radius: 100px;--scrollbar-track: rgba(255, 255, 255, .06);--scrollbar-thumb: rgba(255, 255, 255, .15);--scrollbar-thumb-hover: rgba(255, 255, 255, .3);--scrollbar-thumb-active: rgba(255, 255, 255, .4)}body.light-mode{--bg-color: #e2e8ed;--bg-gradient: radial-gradient(ellipse at top, #eff3f8 0%, #e9eef3 50%, #e2e8ed 100%);--container-bg: #eff3f8;--glass-border: 1px solid rgba(148, 163, 184, .2);--glass-shadow: 0 4px 24px rgba(15, 23, 42, .08), 0 1px 3px rgba(15, 23, 42, .06);--text-color-primary: #1e293b;--text-color-secondary: #475569;--border-color: rgba(148, 163, 184, .3);--seat-bg: #eff3f8;--seat-completed-bg: rgba(220, 252, 231, .95);--seat-completed-border: #22c55e;--seat-absent-bg: rgba(239, 243, 248, .95);--seat-absent-border: #94a3b8;--keypad-bg: rgba(239, 243, 248, .95);--keypad-hover-bg: rgba(226, 232, 240, .95);--btn-primary-bg: #f00842;--btn-primary-hover: #0ea5e9;--btn-cancel-bg: #ef4444;--btn-cancel-hover: #dc2626;--seat-active-text: #ea580c;--shadow-sm: 0 1px 2px rgba(15, 23, 42, .05);--shadow-md: 0 4px 12px rgba(15, 23, 42, .08);--shadow-lg: 0 8px 24px rgba(15, 23, 42, .12);--shadow-glow: 0 0 24px rgba(14, 165, 233, .2);--scrollbar-track: rgba(15, 23, 42, .05);--scrollbar-thumb: rgba(0, 0, 0, .15);--scrollbar-thumb-hover: rgba(0, 0, 0, .3);--scrollbar-thumb-active: rgba(0, 0, 0, .4)}body.battle-mode-active:not(.game-mode-suspended),body.light-mode.battle-mode-active:not(.game-mode-suspended){--bg-color: #fff8dc;--bg-gradient: radial-gradient(circle at 50% 50%, #fff8dc 0%, #ffe4b5 100%);--container-bg: rgba(255, 254, 245, .8);--seat-bg: rgba(255, 249, 230, .8);--text-color-primary: #2d2d3a;--text-color-secondary: #5a5a6e;--border-color: #ffe4b5;--keypad-bg: rgba(255, 239, 213, .8);--keypad-hover-bg: rgba(255, 228, 181, .9);--btn-primary-bg: #ffa500;--btn-primary-hover: #ff8c00;--shadow-glow: 0 0 30px rgba(255, 215, 0, .5);--seat-active-text: #6a1b9a}body.raid-boss-active:not(.game-mode-suspended),body.light-mode.raid-boss-active:not(.game-mode-suspended){--bg-color: #0d0d0d;--bg-gradient: radial-gradient(circle at 50% 50%, #1a1a1a 0%, #0d0d0d 100%);--container-bg: rgba(30, 30, 30, .95);--seat-bg: rgba(40, 40, 40, .9);--text-color-primary: #e8e8e8;--text-color-secondary: #a0a0a0;--border-color: #333;--keypad-bg: rgba(45, 45, 45, .95);--keypad-hover-bg: rgba(60, 60, 60, .95);--btn-primary-bg: #8b0000;--btn-primary-hover: #6b0000;--shadow-glow: 0 0 20px rgba(139, 0, 0, .3)}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{font-family:Andika,Nunito Sans,sans-serif;font-weight:700;font-size:var(--font-size-base);line-height:1.6;background-color:var(--bg-color);background-image:var(--bg-gradient);background-attachment:fixed;color:var(--text-color-primary);transition:background-color var(--transition-slow),background-image var(--transition-slow),color var(--transition-slow);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;min-height:100vh;min-height:100dvh;padding:1rem .5rem .5rem;padding-top:max(1rem,env(safe-area-inset-top));padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right));padding-bottom:env(safe-area-inset-bottom);margin:0;touch-action:manipulation;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-atmosphere{position:fixed;top:0;right:0;bottom:0;left:0;z-index:-1;pointer-events:none;display:none}body:has(.selection-screen.active) .app-atmosphere{display:block}body:has(#schoolAdminModal[style*=flex]) .app-atmosphere{display:none}body:has(.class-login-overlay[style*=flex]) .app-atmosphere{display:none}.app-atmosphere .math-symbol{filter:blur(3px)}body:has(.modal[style*=flex]) .app-atmosphere .login-particle,body:has(.modal[style*=flex]) .app-atmosphere .math-symbol{animation-play-state:paused}.time-period-dropdown,.score-band-time-period-dropdown{appearance:none;-webkit-appearance:none;font-family:inherit;font-size:.85rem;font-weight:600;color:var(--text-color-primary);background-color:var(--seat-bg);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 .6rem center;background-size:10px 6px;border:1px solid var(--border-color);border-radius:var(--radius-sm);padding:.35rem 1.8rem .35rem .7rem;cursor:pointer;transition:border-color var(--transition-base),box-shadow var(--transition-base)}.time-period-dropdown:hover,.score-band-time-period-dropdown:hover{border-color:var(--text-color-secondary)}.time-period-dropdown:focus,.score-band-time-period-dropdown:focus{outline:none;border-color:var(--color-accent-info);box-shadow:0 0 0 3px #00d9ff26}.time-period-dropdown option,.score-band-time-period-dropdown option{background:#1a1a2e;color:#fff}body.light-mode .time-period-dropdown,body.light-mode .score-band-time-period-dropdown{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 .time-period-dropdown option,body.light-mode .score-band-time-period-dropdown option{background:#fff;color:#1e293b}h1,h2,h3{text-align:center;color:var(--text-color-primary);line-height:1.3}h1{font-weight:700;margin-bottom:var(--space-xl)}h2{font-size:var(--font-size-lg);font-weight:600;margin-bottom:var(--space-lg)}h3{font-size:var(--font-size-base);font-weight:600;margin-bottom:var(--space-md)}.mtc-logo,.school-dashboard-title,.stats-section h3,.score-band-pupil-name,.overview-value,.pupil-score-value,.finish-content-wrapper .final-score,.badge-celebration-name,.badge-celebration-count{font-family:var(--font-display)}p{color:var(--text-color-secondary);font-size:var(--font-size-base)}.test-screen.in-break .break-message{text-align:center;animation:fadeIn .5s ease-out}#practiceModeButtons .btn{padding:var(--space-xl) var(--space-2xl);font-size:var(--font-size-2xl);max-width:22rem;border-radius:3rem;height:auto}@media(max-width:1366px){:root{--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.5rem;--font-size-2xl: 1.875rem;--font-size-3xl: 2.25rem;--space-xs: .375rem;--space-sm: .625rem;--space-md: .875rem;--space-lg: 1.125rem;--space-xl: 1.5rem;--space-2xl: 2.25rem}body{padding:.25rem}.container{min-height:96vh;min-height:96dvh;padding:var(--space-lg);border-radius:1.5rem}.classroom-layout,.layout-column{gap:var(--space-md)}.student-seat,.empty-seat{height:4.5rem;border-radius:var(--space-md)}.leaderboard-lists-wrapper{height:7rem}.mtc-header{padding:var(--space-xs) var(--space-md)}.mtc-logo{font-size:var(--font-size-xl)}.user-name{max-width:80px}.leaderboard-lists-wrapper{height:8.5rem}}@media(max-width:1024px){:root{--font-size-xs: .8125rem;--font-size-sm: .9375rem;--font-size-base: 1.0625rem;--font-size-lg: 1.375rem;--font-size-xl: 1.75rem;--font-size-2xl: 2.125rem;--font-size-3xl: 2.5rem;--space-xs: .4375rem;--space-sm: .6875rem;--space-md: .9375rem;--space-lg: 1.25rem;--space-xl: 1.75rem;--space-2xl: 2.5rem}.container{padding:var(--space-lg);width:95vw;min-height:95vh;min-height:95dvh}.selection-screen.active{min-height:85vh;display:flex;flex-direction:column;justify-content:space-between}.classroom-layout{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-lg);flex:1;align-content:stretch}.layout-column{display:flex;flex-direction:column;justify-content:space-between;gap:var(--space-lg)}.table-group{padding:var(--space-md);flex:1;display:flex;flex-direction:column}.table-grid{flex:1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-sm);align-content:stretch;grid-auto-rows:1fr}.student-seat,.empty-seat{height:100%;min-height:4rem;max-height:5.5rem;overflow:hidden}.student-name{font-size:.875rem}.crown-indicator{font-size:1.25rem;flex-shrink:0}.test-level{font-size:.625rem;margin-top:.125rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.student-seat.completed:after{font-size:1rem;top:.25rem;right:.25rem}#authBtn,#darkModeToggle{width:2.5rem;height:2.5rem}#leaderboardAndControlsWrapper{width:100%;gap:var(--space-xs);align-items:stretch;display:flex;flex-direction:row;justify-content:center}#teacherControlsContainer{transform:scale(.85);transform-origin:center;flex-shrink:0}.mode-switch{padding:.25rem;border-radius:1rem}.switch{width:3rem;height:1.75rem}.slider:before{height:1.25rem;width:1.25rem;left:.25rem;bottom:.25rem}input:checked+.slider:before{transform:translate(1.25rem)}.mode-label{font-size:.75rem;padding:0 var(--space-sm)}}@media(max-width:428px){:root{--font-size-xs: .8125rem;--font-size-sm: .9375rem;--font-size-base: 1rem;--font-size-lg: 1.25rem;--font-size-xl: 1.625rem;--font-size-2xl: 2rem;--font-size-3xl: 2.5rem;--space-xs: .375rem;--space-sm: .625rem;--space-md: .875rem;--space-lg: 1.125rem;--space-xl: 1.5rem;--space-2xl: 2rem}body{padding:.5rem}.container{padding:var(--space-md);width:100%;max-width:100%}.classroom-layout{display:flex;flex-direction:column;gap:var(--space-lg)}.layout-column{width:100%}.table-group{padding:var(--space-md)}.table-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-sm)}.student-seat,.empty-seat{height:4.5rem}.mtc-header{padding:var(--space-xs) var(--space-sm);margin-bottom:var(--space-xs);flex-wrap:wrap;gap:var(--space-xs)}.mtc-logo{font-size:var(--font-size-lg);white-space:nowrap}.header-controls{flex-wrap:wrap;gap:var(--space-xs)}.end-game-btn,.add-mtc-practice-btn{font-size:.7rem;padding:.25rem .6rem}.header-mode-switch{padding:.125rem}.header-mode-switch .mode-segment{font-size:.65rem;padding:.3rem .5rem}.header-class-switch select{font-size:.65rem;padding:.3rem 1.4rem .3rem .5rem}.mode-badge{font-size:.75rem;padding:var(--space-xs) var(--space-sm)}.user-menu-btn{padding:var(--space-sm) var(--space-md);font-size:.75rem;min-height:44px;min-width:44px;justify-content:center}.user-name{display:none}#leaderboardAndControlsWrapper{flex-direction:column;gap:var(--space-lg)}#teacherControlsContainer{width:100%}.leaderboard-lists-wrapper{height:8rem}.modal-content{width:95%;padding:var(--space-lg)}.admin-buttons-grid{grid-template-columns:1fr;gap:var(--space-md)}.admin-btn{width:100%;max-width:12rem;margin:0 auto}.btn{width:100%;max-width:100%;margin:var(--space-xs) 0}}@media(max-width:375px){:root{--font-size-base: .9375rem;--font-size-lg: 1.125rem}.student-seat,.empty-seat{height:4rem}}html{scroll-behavior:smooth}.btn,.key,.student-seat,.admin-btn{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}*{text-rendering:optimizeLegibility;-webkit-font-feature-settings:"kern" 1;font-feature-settings:"kern" 1}button,.btn,.key,.student-seat:not(.is-active),.admin-btn,input[type=checkbox],select,a{cursor:pointer}.loading{position:relative;pointer-events:none;opacity:.6}.loading:after{content:"...";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:2rem;font-weight:700;letter-spacing:.5em;animation:loadingDots 1.4s infinite}#teacherControlsContainer{display:flex;flex-direction:column;align-items:center;gap:.9375rem}.mode-switch{display:flex;align-items:center;background-color:#eee;padding:.3125rem;border-radius:1.25rem}.mode-label{font-size:var(--font-size-sm);font-weight:700;color:#555;padding:0 var(--space-md);cursor:pointer;transition:color var(--transition-base)}.switch{position:relative;display:inline-block;width:3.75rem;height:2.125rem}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:#ccc;transition:all var(--transition-base);border-radius:2.125rem;box-shadow:inset 0 2px 4px #00000026}.slider:before{position:absolute;content:"";height:1.625rem;width:1.625rem;left:.25rem;bottom:.25rem;background:#fff;transition:all var(--transition-base);border-radius:50%;box-shadow:0 2px 4px #0000004d}input:checked+.slider{background:linear-gradient(135deg,#2ecc71,#27ae60)}input:checked+.slider:before{transform:translate(1.625rem)}.switch.switch-small{width:2.5rem;height:1.4rem}.switch.switch-small .slider{border-radius:1.4rem}.switch.switch-small .slider:before{height:1rem;width:1rem;left:.2rem;bottom:.2rem}.switch.switch-small input:checked+.slider:before{transform:translate(1.1rem)}.switch-onoff .slider{background:#888}.switch-onoff input:checked+.slider{background:linear-gradient(135deg,#27ae60,#1e8449)}.mode-display{font-weight:700;margin-bottom:var(--space-xl);font-size:var(--font-size-base);padding:var(--space-sm) var(--space-lg);background:#ffffff1a;border-radius:2rem;display:inline-block}#teacherControlsContainer .btn{margin-bottom:var(--space-sm);display:none;width:100%;max-width:12rem}#selectGameModeBtn.countdown-active{display:flex;align-items:center;justify-content:center;gap:8px;font-size:var(--font-size-2xl);font-weight:900;color:#1a1a2e;background:gold!important;animation:countdown-pulse 2s ease-in-out infinite;padding:var(--space-sm);line-height:1.2}#selectGameModeBtn.countdown-active .ui-icon:before,#selectGameModeBtn.countdown-active img{width:1.15em;height:1.15em}#selectGameModeBtn.countdown-active img{object-fit:contain}@keyframes countdown-pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}#testModeButtons,#practiceModeButtons{text-align:center;margin-top:1.25rem}.practice-mode-active #resetLeaderboardBtn,.practice-mode-active #selectGameModeBtn{display:block}body.logged-out #selectGameModeBtn,body.logged-out #addMTCPracticeBtn{display:none!important}.test-mode-active #teacherControlsContainer,.practice-mode-active #teacherControlsContainer,.mtc-mode-active #teacherControlsContainer{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:auto;grid-template-areas:"header-area header-area" "download-area reset-area";gap:.9375rem;align-items:center;justify-items:center}.test-mode-active #controlsHeaderGroup,.practice-mode-active #controlsHeaderGroup,.mtc-mode-active #controlsHeaderGroup{grid-area:header-area;margin-bottom:0}.test-mode-active #teacherControlsContainer .btn,.practice-mode-active #teacherControlsContainer .btn,.mtc-mode-active #teacherControlsContainer .btn{width:100%;margin:0}.test-mode-active #downloadBtn{grid-area:download-area}.test-mode-active #resetBtn{grid-area:reset-area}.practice-mode-active #resetLeaderboardBtn{grid-area:download-area}.practice-mode-active #selectGameModeBtn{grid-area:reset-area}.mtc-mode-active #mtcDownloadBtn{grid-area:download-area}.mtc-mode-active #mtcResetBtn{grid-area:reset-area}.test-mode-active #editLevelsBtn,.mtc-mode-active #editLevelsBtn{display:none!important}.test-mode-active #downloadBtn,.test-mode-active #resetBtn,.mtc-mode-active #mtcDownloadBtn,.mtc-mode-active #mtcResetBtn{display:block}body.logged-out #resetLeaderboardBtn,body.logged-out #selectGameModeBtn,body.logged-out #editLevelsBtn,body.logged-out #downloadBtn,body.logged-out #resetBtn,body.logged-out #mtcDownloadBtn,body.logged-out #mtcResetBtn,body.logged-out.practice-mode #controlsHeaderGroup h2{display:none!important}body.logged-out.test-mode-active #teacherControlsContainer>*:not(#controlsHeaderGroup){display:none!important}body.logged-out.test-mode-active #controlsHeaderGroup h2{display:none!important}body.logged-out.test-mode-active #controlsHeaderGroup{display:flex!important;justify-content:center}body.logged-out.test-mode-active .mode-switch{display:flex!important}body.logged-out.mtc-mode-active #teacherControlsContainer>*:not(#controlsHeaderGroup){display:none!important}body.logged-out.mtc-mode-active #controlsHeaderGroup h2{display:none!important}body.logged-out.mtc-mode-active #controlsHeaderGroup{display:flex!important;justify-content:center}body.logged-out.mtc-mode-active .mode-switch{display:flex!important}body.logged-out.practice-mode #teacherControlsContainer{display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:center!important;gap:.9375rem!important}body.logged-out.practice-mode.battle-mode-active #teacherControlsContainer{justify-content:flex-start!important;padding-top:15%!important}body.logged-out.practice-mode #teacherControlsContainer .mode-switch,body.logged-out.practice-mode #teacherControlsContainer #selectGameModeBtn{align-self:center!important}body.logged-out.battle-mode-active #selectGameModeBtn.countdown-active{display:block!important;background-color:#ffc107!important;color:#e53935!important;cursor:default!important;pointer-events:none!important}body.logged-out.practice-mode #leaderboardContainer{display:block!important}body.logged-out.test-mode-active #leaderboardContainer{display:none!important}body.logged-out.test-mode-active #leaderboardAndControlsWrapper{flex-direction:column!important;align-items:center!important;gap:1rem!important}body.logged-out.test-mode-active #teacherControlsContainer{display:none!important}#adminOptionsModal .modal-content{max-width:34rem;width:90%;padding:var(--space-2xl)}.admin-buttons-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--space-lg);justify-items:center;align-items:center}.admin-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);padding:var(--space-lg);border:none;border-radius:var(--space-lg);cursor:pointer;font-size:var(--font-size-sm);font-weight:800;color:#fff;width:8rem;height:6.5rem;transition:all var(--transition-base);text-align:center;position:relative;overflow:hidden;box-shadow:0 4px 6px #0003,inset 0 -2px #0003}.admin-btn:before{content:"";position:absolute;top:50%;left:50%;width:100%;height:100%;background:#fff3;transform:translate(-50%,-50%) scale(0);border-radius:50%;transition:transform var(--transition-slow)}.admin-btn:hover{transform:translateY(-4px) scale(1.05);box-shadow:0 8px 16px #0000004d,inset 0 -2px #0003}.admin-btn:hover:before{transform:translate(-50%,-50%) scale(2)}.admin-btn-icon{font-size:2rem;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.2))}.admin-btn-text{font-size:var(--font-size-xs);line-height:1.2;text-shadow:1px 1px 2px rgba(0,0,0,.3)}.admin-btn.add-student{background:linear-gradient(135deg,#28a745,#218838)}.admin-btn.remove-student{background:linear-gradient(135deg,#dc3545,#c82333)}.admin-btn.edit-seating{background:linear-gradient(135deg,#00b894,#00997b)}.admin-btn.edit-levels{background:linear-gradient(135deg,#ffc107,#e0a800);color:#212529}.admin-btn.change-display-name{background:linear-gradient(135deg,#17a2b8,#138496)}.admin-btn.manage-pupils{background:linear-gradient(135deg,#0984e3,#0056b3)}.admin-btn.change-login{background:linear-gradient(135deg,#e17055,#d35400)}.admin-btn.student-login-cards{background:linear-gradient(135deg,#e84393,#c2185b)}.admin-btn.seat-pills{background:linear-gradient(135deg,#a855f7,#7c3aed)}.admin-group{margin-bottom:var(--space-lg)}.admin-group-label{font-size:var(--font-size-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--text-color-secondary);margin-bottom:var(--space-sm);padding-left:.25rem}#managePupilsModal{z-index:1002}.manage-pupils-modal{max-width:38rem;width:94%;max-height:90vh;padding:var(--space-lg) var(--space-xl) var(--space-xl);text-align:left;display:flex;flex-direction:column;overflow:hidden}.manage-pupils-header{display:flex;flex-direction:column;align-items:center;margin-bottom:var(--space-md);flex-shrink:0}.manage-pupils-header h2{margin-bottom:.25rem}.manage-pupils-count{font-size:var(--font-size-xs);color:var(--text-color-secondary);background:var(--seat-bg);padding:.2rem .6rem;border-radius:1rem;font-weight:700}.manage-pupils-list{flex:0 1 auto;min-height:0;overflow-y:auto;margin-bottom:var(--space-md);display:flex;flex-direction:column;gap:2px;scrollbar-width:thin;scrollbar-color:var(--border-color) transparent}.manage-pupils-list::-webkit-scrollbar{width:4px}.manage-pupils-list::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.mp-edit-link{background:none;border:none;cursor:pointer;font-size:1.1rem;padding:0 .25rem;margin-left:.3rem;opacity:.35;transition:opacity var(--transition-base);vertical-align:middle}.mp-edit-link:hover{opacity:.75}.mp-row{display:flex;align-items:center;gap:.6rem;padding:.4rem .6rem .4rem .4rem;border-radius:var(--radius-md);background:var(--seat-bg);border:1px solid transparent;transition:background var(--transition-base),border-color var(--transition-base)}.mp-avatar{flex-shrink:0;width:2rem;height:2rem;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;font-size:.85rem;line-height:1;color:hsl(var(--mp-hue, 220) 65% 82%);background:hsl(var(--mp-hue, 220) 40% 28%)}body.light-mode .mp-avatar{color:hsl(var(--mp-hue, 220) 55% 32%);background:hsl(var(--mp-hue, 220) 70% 90%)}.mp-row-highlight{animation:mpHighlight 1.2s ease-out}@keyframes mpHighlight{0%{background:#2196f359}to{background:var(--seat-bg)}}.mp-row:hover{background:var(--keypad-bg);border-color:var(--border-color)}.mp-empty{text-align:center;color:var(--text-color-secondary);padding:var(--space-xl) 0;font-size:var(--font-size-sm)}.mp-identity{display:flex;align-items:center;gap:.15rem;min-width:0;flex:0 1 auto;margin-right:auto}.mp-row-name{flex:0 1 auto;font-weight:700;font-size:var(--font-size-sm);color:var(--text-color-primary);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.mp-row-name:hover{text-decoration:underline;text-underline-offset:2px}.mp-row:hover .mp-rename{opacity:.85}.mp-row.is-renaming .mp-identity{flex:1 1 auto}.mp-row.is-renaming .mp-row-groups,.mp-row.is-renaming .mp-row-level,.mp-row.is-renaming .mp-row-pin,.mp-row.is-renaming .mp-row-actions{display:none}.mp-row-pin{display:inline-flex;align-items:center;gap:.3rem;font-family:inherit;font-size:.7rem;font-weight:700;color:var(--text-color-secondary);background:#ffffff14;border:1px solid transparent;padding:.15rem .5rem;border-radius:.5rem;white-space:nowrap;flex-shrink:0;cursor:pointer;transition:all var(--transition-base)}body.light-mode .mp-row-pin{background:#0000000f}.mp-row-pin:hover{background:#ffffff26;color:var(--text-color-primary)}body.light-mode .mp-row-pin:hover{background:#0000001a}.mp-row-pin .ui-icon{font-size:.82em;opacity:.8}.mp-pin-value{letter-spacing:.12em;font-variant-numeric:tabular-nums;min-width:2.4rem;text-align:center}.mp-row-pin[data-revealed=true]{color:var(--text-color-primary);background:#2196f329}.mp-row-level{position:relative;display:inline-flex;align-items:center;justify-content:center;font-size:.7rem;font-weight:700;color:var(--text-color-secondary);background:#ffffff14;padding:.15rem .5rem;border-radius:.5rem;white-space:nowrap;flex-shrink:0;min-width:3.6rem;text-align:center}body.light-mode .mp-row-level{background:#0000000f}.mp-row-level{cursor:pointer;transition:all var(--transition-base)}.mp-row-level:hover,.mp-row-level:focus-within{background:#ffffff26;color:var(--text-color-primary)}body.light-mode .mp-row-level:hover,body.light-mode .mp-row-level:focus-within{background:#0000001a}.mp-row-level:after{content:"";display:inline-block;margin-left:.35rem;vertical-align:middle;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid currentColor;opacity:.55}.mp-row .mp-level-select{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer;font:inherit}.mp-row-groups{display:flex;gap:4px;flex-shrink:0}.mp-group-chip{font-family:inherit;font-size:.68rem;font-weight:800;letter-spacing:.02em;line-height:1;min-height:30px;min-width:2.4rem;text-align:center;padding:0 .5rem;border:1px solid var(--border-color);border-radius:var(--radius-sm);background:transparent;color:var(--text-color-secondary);opacity:.5;cursor:pointer;white-space:nowrap;transition:background var(--transition-base),color var(--transition-base),opacity var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.mp-group-chip:hover{opacity:1;background:#ffffff0f;transform:translateY(-1px)}body.light-mode .mp-group-chip:hover{background:#0000000d}.mp-group-chip.is-on{opacity:1;border-color:transparent;color:#1a1a2e}.mp-group-chip.mp-group-pp.is-on{background:var(--color-accent-special)}.mp-group-chip.mp-group-send.is-on{background:var(--color-accent-info)}.mp-group-chip.mp-group-eal.is-on{background:var(--color-accent-warning)}.mp-row-actions{display:flex;gap:4px;flex-shrink:0}.mp-action-btn{background:none;border:none;cursor:pointer;padding:.3rem;border-radius:.4rem;font-size:.85rem;line-height:1;transition:all var(--transition-base);opacity:.5;color:var(--text-color-primary)}.mp-action-btn:hover{opacity:1;background:#ffffff1a}body.light-mode .mp-action-btn:hover{background:#0000000f}.mp-action-btn.mp-remove:hover{color:#ff6b6b;background:#ff6b6b1f}.mp-row .mp-row-rename-input{flex:1 1 auto;width:auto;min-width:0;margin:0;font-size:var(--font-size-sm);font-weight:700;font-family:inherit;text-align:left;padding:.3rem .55rem;border:2px solid var(--color-accent-info);border-radius:.5rem;background:var(--seat-bg);color:var(--text-color-primary);outline:none}.mp-rename-actions{display:flex;gap:4px;flex-shrink:0}.mp-rename-save,.mp-rename-cancel{background:none;border:none;cursor:pointer;padding:.3rem;border-radius:.4rem;font-size:.85rem;line-height:1;transition:all var(--transition-base)}.mp-rename-save{color:var(--color-accent-success)}.mp-rename-save:hover{background:#28a74526}.mp-rename-cancel{color:var(--color-accent-error)}.mp-rename-cancel:hover{background:#ff6b6b26}.mp-row.confirming-remove{background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3)}.mp-confirm-remove-msg{font-size:var(--font-size-xs);color:#ff6b6b;font-weight:700;flex:1}.mp-confirm-remove-yes{background:#dc3545;color:#fff;border:none;cursor:pointer;padding:.25rem .6rem;border-radius:.4rem;font-size:var(--font-size-xs);font-weight:700;font-family:inherit;transition:all var(--transition-base)}.mp-confirm-remove-yes:hover{background:#c82333}.mp-confirm-remove-no{background:none;color:var(--text-color-secondary);border:1px solid var(--border-color);cursor:pointer;padding:.25rem .6rem;border-radius:.4rem;font-size:var(--font-size-xs);font-weight:700;font-family:inherit;transition:all var(--transition-base)}.mp-confirm-remove-no:hover{background:var(--keypad-bg)}.manage-pupils-add-section{margin-top:var(--space-md);margin-bottom:0;padding-top:var(--space-md);border-top:1px solid var(--border-color);flex-shrink:0;display:flex;flex-direction:column;gap:var(--space-sm)}.manage-pupils-add-btn{width:100%;padding:.6rem;border:2px dashed var(--border-color);border-radius:.75rem;background:none;color:var(--text-color-secondary);font-size:var(--font-size-sm);font-weight:700;font-family:inherit;cursor:pointer;transition:all var(--transition-base)}.manage-pupils-add-btn:hover{border-color:var(--color-accent-success);color:var(--color-accent-success);background:#28a7450f}.manage-pupils-add-form{padding:var(--space-lg) var(--space-md);background:var(--keypad-bg);border:1px solid rgba(0,217,255,.35);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);display:flex;flex-direction:column;align-items:stretch;gap:var(--space-md)}.mp-addform-title{font-family:var(--font-display),inherit;font-size:var(--font-size-base);font-weight:800;color:var(--text-color-primary);margin-bottom:.15rem}.mp-subform-modal{max-width:30rem;max-height:none;overflow:visible}.mp-subform-modal .manage-pupils-add-form{background:none;border:none;box-shadow:none;padding:0;gap:var(--space-lg)}.mp-field{display:flex;flex-direction:column;gap:.35rem}.mp-field-label{font-size:.72rem;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--text-color-secondary)}.mp-field-optional{text-transform:none;letter-spacing:0;font-weight:600;font-size:.7rem;opacity:.6}.mp-addform-groups{display:flex;gap:.5rem}.manage-pupils-add-form .manage-pupils-input,.manage-pupils-add-form .manage-pupils-select{width:100%;padding:.6rem .8rem;font-size:var(--font-size-sm);font-weight:600;font-family:inherit;border:2px solid var(--border-color);border-radius:var(--radius-sm);background:var(--keypad-bg);color:var(--text-color-primary);text-align:left;box-sizing:border-box;margin:0}.manage-pupils-add-form .manage-pupils-input:focus,.manage-pupils-add-form .manage-pupils-select:focus{outline:none;border-color:var(--color-accent-info);box-shadow:0 0 0 3px #00d9ff2e}.manage-pupils-add-actions{display:flex;gap:var(--space-sm);width:100%;margin-top:.25rem}.manage-pupils-confirm-add{flex:1;padding:var(--space-sm) var(--space-md);border:none;border-radius:2rem;background:var(--color-accent-success);color:#fff;font-size:var(--font-size-sm);font-weight:700;font-family:inherit;cursor:pointer;transition:all var(--transition-base)}.manage-pupils-confirm-add:hover{filter:brightness(1.1);transform:translateY(-2px)}.manage-pupils-confirm-add:disabled{opacity:.5;cursor:not-allowed;transform:none}.manage-pupils-cancel-add{padding:var(--space-sm) var(--space-md);border:2px solid var(--border-color);border-radius:2rem;background:transparent;color:var(--text-color-secondary);font-size:var(--font-size-sm);font-weight:700;font-family:inherit;cursor:pointer;transition:all var(--transition-base);order:-1}.manage-pupils-cancel-add:hover{background:var(--seat-bg);border-color:var(--text-color-secondary);transform:translateY(-2px)}.manage-pupils-privacy-note{font-size:.7rem;color:var(--text-color-secondary);opacity:.7;text-align:center;margin-bottom:0}.manage-pupils-status{flex-shrink:0;min-height:1.5rem;text-align:center;font-size:var(--font-size-xs);font-weight:700;margin:var(--space-sm) 0 0;transition:all var(--transition-base)}.manage-pupils-status:empty{min-height:0;margin:0}.manage-pupils-status.success{color:var(--color-accent-success)}.manage-pupils-status.error{color:var(--color-accent-error)}.manage-pupils-modal .admin-cancel-btn{margin-top:var(--space-sm);flex-shrink:0}.login-attempts-notice{display:flex;align-items:flex-start;gap:var(--space-md);margin:calc(var(--space-lg) * -1) 0 var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--seat-bg);border:1px solid var(--border-color);border-left:3px solid var(--color-accent-warning, #ffc947);border-radius:var(--space-md);text-align:left}.login-attempts-notice-icon{flex-shrink:0;margin-top:2px;color:var(--color-accent-warning, #ffc947)}.login-attempts-notice-text{display:flex;flex-direction:column;gap:3px}.login-attempts-notice-headline{font-weight:700;font-size:var(--font-size-sm);color:var(--text-color-primary)}.login-attempts-notice-advice{font-size:var(--font-size-xs);color:var(--text-color-secondary)}.auto-reset-setting{margin-bottom:var(--space-lg);padding:var(--space-md) var(--space-lg);background:var(--seat-bg);border:1px solid var(--border-color);border-radius:var(--space-md)}.auto-reset-label{display:flex;align-items:center;justify-content:space-between;cursor:pointer;gap:var(--space-md)}.auto-reset-info{display:flex;flex-direction:column;gap:2px}.auto-reset-title{font-weight:700;font-size:var(--font-size-sm);color:var(--text-color-primary)}.auto-reset-desc{font-size:var(--font-size-xs);color:var(--text-color-secondary)}.auto-reset-switch{position:relative;width:48px;height:26px;flex-shrink:0}.auto-reset-switch input{opacity:0;width:0;height:0}.auto-reset-slider{position:absolute;top:0;right:0;bottom:0;left:0;background-color:#ccc;border-radius:26px;transition:background-color var(--transition-base);cursor:pointer}.auto-reset-slider:before{content:"";position:absolute;height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:transform var(--transition-base);box-shadow:0 1px 3px #0000004d}.auto-reset-switch input:checked+.auto-reset-slider{background-color:#28a745}.auto-reset-switch input:checked+.auto-reset-slider:before{transform:translate(22px)}.admin-cancel-btn{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;transition:all var(--transition-base);display:block;margin:var(--space-lg) auto 0;box-shadow:none}.admin-cancel-btn:hover{background:var(--seat-bg);border-color:var(--text-color-secondary);transform:translateY(-2px)}.seating-edit-mode .student-seat.edit-mode{cursor:grab;position:relative;border:3px dashed var(--color-accent-primary);transform:scale(1.02);transition:transform var(--transition-base),box-shadow var(--transition-base);animation:wiggle .3s ease-in-out infinite}.seating-edit-mode .student-seat.edit-mode:hover{transform:scale(1.08);box-shadow:0 8px 16px #0000004d}.seating-edit-mode .drag-over{background:#00d9ff33!important;border-color:var(--color-accent-primary)!important;transform:scale(1.15);box-shadow:0 0 20px #00d9ff80;animation:none}@keyframes wiggle{0%{transform:rotate(-.5deg)}50%{transform:rotate(.5deg)}to{transform:rotate(-.5deg)}}@keyframes slideInRight{0%{transform:translate(100px);opacity:0}to{transform:translate(0);opacity:1}}.edit-controls-content h3{margin:0 0 var(--space-xs) 0;color:var(--color-accent-primary);font-size:var(--font-size-base);text-align:center}.edit-controls-content p{margin:0 0 var(--space-md) 0;color:var(--text-color-secondary);font-size:var(--font-size-sm);text-align:center}.level-legend-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-xs);max-height:300px;overflow-y:auto;padding:var(--space-xs)}.level-legend-item{font-size:.7rem;color:var(--text-color-secondary);padding:2px 4px;background:var(--container-bg);border-radius:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.level-legend-item strong{color:var(--color-accent-primary);margin-right:2px}.modal-content.level-reference-modal{max-width:95vw;width:95vw;max-height:90vh;overflow-y:auto}@media(min-width:900px){.modal-content.level-reference-modal{max-width:90vw;width:90vw}}@media(min-width:1200px){.level-legend-modal-grid{grid-template-columns:repeat(6,1fr)}}.level-reference-modal:before{display:none}.level-reference-modal h2{margin-bottom:var(--space-lg);color:var(--color-accent-primary)}.level-legend-modal-grid{grid-template-columns:repeat(2,1fr);gap:var(--space-sm);max-height:none;overflow-y:visible;padding:var(--space-md);margin-bottom:var(--space-lg)}.level-legend-modal-grid .level-legend-item{font-size:var(--font-size-sm);padding:var(--space-xs) var(--space-sm);text-align:left;white-space:normal;overflow:visible;text-overflow:clip}.level-legend-tier-header{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);background:var(--color-accent-primary);color:#fff;border-radius:var(--radius-sm);font-weight:600;font-size:var(--font-size-sm)}.level-legend-tier-header:first-child{margin-top:0}.level-legend-tier-header .tier-timing{font-weight:400;font-size:.75rem;opacity:.85}@media(min-width:600px){.level-legend-modal-grid{grid-template-columns:repeat(3,1fr)}}@media(min-width:900px){.level-legend-modal-grid{grid-template-columns:repeat(4,1fr)}}.edit-buttons{display:flex;justify-content:center;gap:var(--space-sm)}.edit-buttons button{padding:var(--space-sm) var(--space-md);border:none;border-radius:1rem;font-size:var(--font-size-sm);font-weight:700;cursor:pointer;transition:all var(--transition-base);box-shadow:0 2px 4px #0003}.btn-primary{background:linear-gradient(135deg,var(--brand-gradient-start) 0%,var(--brand-gradient-end) 100%);color:#fff}.btn-primary:hover{transform:translateY(-2px);box-shadow:0 4px 8px #0000004d}.seating-edit-mode .empty-seat{border:2px dashed #ccc;background-color:#ffffff0d;min-height:60px;display:flex;align-items:center;justify-content:center;font-size:12px;color:#888;transition:all .2s ease}.seating-edit-mode .empty-seat .empty-seat-plus{display:none}.seating-edit-mode .empty-seat:after{content:"Drop here";opacity:.6}.seating-edit-mode .empty-seat.drag-over{background-color:#007bff1a;border-color:var(--btn-primary-bg)}.seating-edit-mode .empty-seat.drag-over:after{content:"Release to place";color:var(--btn-primary-bg);font-weight:700;opacity:1}.bulk-edit-mode .student-seat{position:relative;transition:all var(--transition-base)}.bulk-edit-mode .student-seat:before{content:"";position:absolute;top:-2px;left:-2px;right:-2px;bottom:-2px;background:linear-gradient(45deg,var(--btn-primary-bg),var(--btn-primary-hover));border-radius:inherit;z-index:-1;opacity:.3;animation:subtlePulse 2s ease-in-out infinite}@keyframes subtlePulse{0%,to{opacity:.3}50%{opacity:.6}}.test-level-controls{position:absolute;top:50%;left:6px;right:6px;transform:translateY(-50%);display:flex;justify-content:space-between;align-items:center;pointer-events:none;z-index:10}.test-level-btn{width:32px;height:32px;border-radius:50%;border:none;font-size:var(--font-size-base);font-weight:900;cursor:pointer;transition:all var(--transition-fast);display:flex;align-items:center;justify-content:center;pointer-events:auto;box-shadow:0 2px 6px #0000004d;line-height:1;text-align:center;padding:0;margin:0}.test-level-btn:hover{transform:scale(1.2);box-shadow:0 4px 12px #0006}.test-level-btn:active{transform:scale(1.1)}.test-level-btn.minus-btn{background:linear-gradient(135deg,#dc3545,#c82333);color:#fff}.test-level-btn.plus-btn{background:linear-gradient(135deg,#28a745,#218838);color:#fff}.bulk-edit-mode .student-seat.is-active{justify-content:center}.bulk-edit-mode .student-seat.is-active .test-level{flex-grow:0}.bulk-edit-mode .leaderboard-rank-indicator,.bulk-edit-mode .crown-indicator{display:none!important}@keyframes levelChange{0%{transform:scale(1)}50%{transform:scale(1.08);box-shadow:0 0 20px var(--color-accent-primary)}to{transform:scale(1)}}.bulk-edit-teacher-controls{display:none;flex-direction:column;align-items:center;gap:var(--space-sm);text-align:center;grid-column:1 / -1;padding:0}.bulk-edit-instruction{margin:0;color:var(--text-color-secondary);font-size:var(--font-size-sm);line-height:1.4}.bulk-edit-instruction strong{color:var(--color-accent-success);font-size:1.1em}.bulk-edit-auto-section{display:flex;flex-direction:column;align-items:center;gap:.25rem;padding:.35rem .6rem;border-radius:var(--radius-md);width:100%;background:#ffffff0a;border:1px solid rgba(255,255,255,.06)}.bulk-edit-auto-heading{margin:0;font-size:var(--font-size-xs);font-weight:600;color:var(--text-color-tertiary, rgba(255,255,255,.45));text-transform:uppercase;letter-spacing:.05em}.auto-level-toggles{display:flex;flex-direction:column;gap:.4rem;align-items:stretch;width:100%}.auto-level-toggle{display:flex;align-items:center;justify-content:space-between;gap:.5rem;cursor:pointer;padding:.2rem 0}.auto-level-label{font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-secondary);white-space:nowrap}.bulk-edit-buttons{display:flex;gap:var(--space-sm);align-items:stretch;width:100%}.bulk-edit-buttons .btn{display:flex!important;align-items:center;justify-content:center;flex:1;padding:.4rem .5rem;font-size:var(--font-size-xs);min-width:auto;max-width:none;width:auto;margin:0}@keyframes autoLevelUp{0%{box-shadow:0 0 #2ecc71b3}50%{box-shadow:0 0 15px 5px #2ecc7180}to{box-shadow:0 0 #2ecc7100}}@keyframes autoLevelDown{0%{box-shadow:0 0 #f39c12b3}50%{box-shadow:0 0 15px 5px #f39c1280}to{box-shadow:0 0 #f39c1200}}.auto-level-flash-up{animation:autoLevelUp 1s ease-out}.auto-level-flash-down{animation:autoLevelDown 1s ease-out}.bulk-edit-mode #teacherControlsContainer,.seating-edit-mode #teacherControlsContainer{display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:center!important;gap:0!important}.bulk-edit-mode #normalTeacherControls,.seating-edit-mode #normalTeacherControls,.bulk-edit-mode #rvbBattleDisplay,.bulk-edit-mode #raidBossMiniDisplay,.bulk-edit-mode #crownMiniLeaderboard,.seating-edit-mode #rvbBattleDisplay,.seating-edit-mode #raidBossMiniDisplay,.seating-edit-mode #crownMiniLeaderboard{display:none!important}.pill-shop-gift-head{margin:0;font-weight:800;font-size:var(--font-size-base);color:var(--text-color-primary)}#pillShopModal.gift-mode .pill-token-chip{display:none}#pillShopModal.gift-mode .pill-shop-gift-head{display:block}#pillShopModal.gift-mode .pill-shop-card.is-owned{cursor:pointer}#pillShopModal.gift-mode .pill-shop-card.is-owned:hover{transform:translateY(-2px)}#seatPillsRecipientModal{z-index:1200}.seat-pills-recipient-content{max-width:30rem;width:90%;padding:var(--space-xl);text-align:left;display:flex;flex-direction:column;gap:var(--space-md);max-height:min(86vh,44rem)}.seat-pills-recipient-title{margin:0;text-align:center}.seat-pills-recipient-subtitle{margin:0;text-align:center;color:var(--text-color-secondary);font-size:var(--font-size-sm)}.seat-pills-recipient-all{display:flex;align-items:center;gap:var(--space-sm);font-weight:800;color:var(--text-color-primary);padding:var(--space-sm) var(--space-md);border:1px solid var(--border-color);border-radius:var(--radius-md);background:var(--container-bg);cursor:pointer}.seat-pills-recipient-list{flex:1 1 auto;min-height:4rem;max-height:22rem;overflow-y:auto;display:flex;flex-direction:column;gap:.25rem;padding-right:.25rem}.seat-pills-recipient-row{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem var(--space-sm);border-radius:var(--radius-sm);cursor:pointer;transition:background var(--transition-fast)}.seat-pills-recipient-row:hover{background:#7f7f7f24}.seat-pills-recipient-name{color:var(--text-color-primary);font-weight:700}#seatPillsRecipientModal input[type=checkbox]{width:1.2rem;height:1.2rem;min-width:auto;flex:0 0 auto;margin:0;padding:0;border:0;background:none;border-radius:0;accent-color:var(--btn-primary-bg);cursor:pointer}.seat-pills-recipient-actions{display:flex;justify-content:center;gap:var(--space-md);flex-wrap:wrap}.seat-pills-recipient-confirm:disabled{opacity:.5;cursor:not-allowed}#seatPillsAdminModal{z-index:1002}.seat-pills-admin-content{--sp-purple: #8b5cf6;--sp-purple-deep: #7c3aed;--sp-gold: #f6b93b;--sp-gold-deep: #b8770a;max-width:40rem;width:92%;text-align:left;padding:0;overflow:hidden;display:flex;flex-direction:column;max-height:min(90vh,52rem)}.sp-admin-header{display:flex;align-items:center;gap:var(--space-md);padding:var(--space-lg) var(--space-xl);background:linear-gradient(135deg,var(--sp-purple-deep) 0%,var(--sp-purple) 55%,#a855f7 100%);color:#fff}.sp-admin-badge{flex:0 0 auto;width:3.1rem;height:3.1rem;font-size:1.35rem;border-radius:50%;background:#fffffff2;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #4c1d9559}.sp-admin-badge:before{vertical-align:0}.sp-admin-heading{min-width:0}.seat-pills-admin-content .sp-admin-header h2{margin:0;text-align:left;color:#fff;font-size:var(--font-size-xl);line-height:1.05}.seat-pills-admin-content .sp-admin-header .seat-pills-admin-intro{margin:.3rem 0 0;text-align:left;color:#ffffffe0;font-size:var(--font-size-xs);line-height:1.3}#seatPillsAdminModal .close-modal-btn{background:#ffffff2e;color:#fff;z-index:2}#seatPillsAdminModal .close-modal-btn:hover{background:#ffffff52;color:#fff}.sp-admin-body{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg) var(--space-xl) var(--space-xl);min-height:0}.sp-action-bar{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:flex-start}.sp-action-btn{display:inline-flex;align-items:center;gap:.4rem;font-family:inherit;font-size:var(--font-size-sm);font-weight:800;padding:.6rem 1.1rem;border:none;border-radius:999px;cursor:pointer;color:var(--text-color-primary);background:#7f7f7f29;transition:background var(--transition-base),color var(--transition-base),filter var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-action-btn:hover{transform:translateY(-1px)}.sp-action-icon{font-size:1.05em;line-height:1}.sp-reward-class{background:linear-gradient(135deg,#ffd873 0%,var(--sp-gold) 100%);color:#4a3305;box-shadow:0 3px 10px #b8770a4d}.sp-reward-class:hover{filter:brightness(1.05)}.sp-pause-btn.is-paused{background:var(--color-accent-warning);color:#1a1a2e}.sp-roster-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.1em;color:var(--text-color-secondary);padding-left:.15rem;margin-top:.1rem}.sp-roster{display:flex;flex-direction:column;gap:.4rem;max-height:46vh;overflow-y:auto;padding-right:.25rem}.sp-row{display:flex;align-items:center;gap:var(--space-sm);padding:.5rem .6rem .5rem .85rem;border-radius:var(--radius-md);background:#8b5cf612;box-shadow:inset 0 0 0 1px #8b5cf624;transition:background var(--transition-base),box-shadow var(--transition-base)}.sp-row:hover{background:#8b5cf621;box-shadow:inset 0 0 0 1px #8b5cf647}.sp-row-name{flex:1;font-weight:700;font-size:var(--font-size-sm);color:var(--text-color-primary);min-width:6rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sp-tokens{display:flex;align-items:center;gap:.35rem;flex-shrink:0}.sp-token-btn{width:1.85rem;height:1.85rem;border:none;border-radius:50%;background:#8b5cf629;color:var(--text-color-primary);font-size:1.2rem;font-weight:800;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background var(--transition-base),color var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-token-btn:hover{background:var(--sp-purple);color:#fff;transform:translateY(-1px)}.sp-token-balance{display:inline-flex;align-items:center;gap:.32rem;min-width:2.7rem;justify-content:center;padding:.22rem .6rem;border-radius:999px;background:linear-gradient(135deg,#ffe390 0%,var(--sp-gold) 100%);color:#5a3d02;font-weight:800;font-size:var(--font-size-sm);font-variant-numeric:tabular-nums;box-shadow:inset 0 0 0 1px #b8770a73}.sp-token-balance:before{content:"";width:.85rem;height:.85rem;flex:0 0 auto;border-radius:50%;background:radial-gradient(circle at 34% 30%,#fff6d0 0%,var(--sp-gold) 62%,var(--sp-gold-deep) 100%);box-shadow:inset 0 0 0 1.5px #a069088c}.sp-give-prize-btn{flex-shrink:0;font-family:inherit;font-size:.78rem;font-weight:800;padding:.42rem .8rem;border:none;border-radius:999px;cursor:pointer;background:var(--sp-purple);color:#fff;transition:filter var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-give-prize-btn:hover{filter:brightness(1.08);transform:translateY(-1px)}.sp-can-design{display:flex;align-items:center;gap:.4rem;flex-shrink:0;font-size:.72rem;font-weight:700;color:var(--text-color-secondary);cursor:pointer;white-space:nowrap}#seatPillsAdminModal .sp-can-design-input{appearance:none;-webkit-appearance:none;position:relative;width:2.2rem;height:1.25rem;min-width:auto;margin:0;padding:0;border:0;border-radius:999px;background:#7f7f7f57;cursor:pointer;flex:0 0 auto;transition:background var(--transition-base)}#seatPillsAdminModal .sp-can-design-input:after{content:"";position:absolute;top:2px;left:2px;width:1.05rem;height:1.05rem;border-radius:50%;background:#fff;transition:transform var(--transition-base)}#seatPillsAdminModal .sp-can-design-input:checked{background:var(--sp-purple)}#seatPillsAdminModal .sp-can-design-input:checked:after{transform:translate(.9rem)}.sp-reset-btn{background:none;border:none;cursor:pointer;padding:.3rem .5rem;border-radius:.4rem;font-family:inherit;font-size:.72rem;font-weight:700;color:var(--text-color-secondary);opacity:.75;transition:all var(--transition-base);flex-shrink:0}.sp-reset-btn:hover{opacity:1;color:#ff6b6b;background:#ff6b6b1f}.sp-prize{display:flex;flex-direction:column;gap:var(--space-md);text-align:left}.sp-prize-add{align-self:flex-start;display:inline-flex;align-items:center;gap:.35rem;font-family:inherit;font-size:var(--font-size-sm);font-weight:800;padding:.5rem .9rem;border:1px dashed var(--border-color);border-radius:999px;cursor:pointer;color:var(--text-color-primary);background:#7f7f7f1a;transition:background var(--transition-base),border-color var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-prize-add:hover{background:#7f7f7f2e;transform:translateY(-1px)}.sp-prize-add[hidden]{display:none}.sp-prize-add-plus{font-size:1.05rem;line-height:1;font-weight:900}.sp-prize-places{display:flex;flex-direction:column;gap:.5rem}.sp-prize-row{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem;padding:.6rem .75rem;border-radius:.75rem;background:#7f7f7f1a}.sp-prize-lead{flex:0 0 auto;font-weight:800;font-size:var(--font-size-base);color:var(--text-color-primary)}.sp-prize-pick{display:flex;align-items:center;flex-wrap:nowrap;gap:.5rem}.sp-prize-token-select{flex:0 0 auto;max-width:11rem;font-family:inherit;font-size:var(--font-size-sm);font-weight:800;padding:.4rem .7rem;border:1px solid var(--border-color);border-radius:.65rem;background:#7f7f7f24;color:var(--text-color-primary);cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base);-webkit-tap-highlight-color:transparent}.sp-prize-token-select:hover{background:#7f7f7f38}.sp-prize-token-select:focus-visible{outline:2px solid var(--btn-primary-bg);outline-offset:1px}.sp-prize-andor{flex:0 0 auto;font-size:var(--font-size-sm);font-weight:700;color:var(--text-color-secondary)}.sp-prize-item-btn{flex:0 0 auto;font-family:inherit;font-size:var(--font-size-sm);font-weight:800;padding:.4rem .9rem;border:1px dashed var(--border-color);border-radius:999px;cursor:pointer;color:var(--text-color-primary);background:#7f7f7f1a;transition:background var(--transition-base),border-color var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-prize-item-btn:hover{background:#7f7f7f33;transform:translateY(-1px)}.sp-prize-item-chosen{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .35rem .3rem .75rem;border-radius:999px;background:var(--btn-primary-bg);color:#fff;max-width:100%}.sp-prize-item-name{font-size:var(--font-size-sm);font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sp-prize-item-change{flex:0 0 auto;font-family:inherit;font-size:.72rem;font-weight:800;padding:.2rem .55rem;border:none;border-radius:999px;cursor:pointer;color:#fff;background:#ffffff3d;transition:background var(--transition-base);-webkit-tap-highlight-color:transparent}.sp-prize-item-change:hover{background:#ffffff61}.sp-prize-item-remove{flex:0 0 auto;width:1.35rem;height:1.35rem;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;font-size:1.05rem;line-height:1;color:#fff;background:#ffffff3d;transition:background var(--transition-base);-webkit-tap-highlight-color:transparent}.sp-prize-item-remove:hover{background:#fff6}.sp-set-prizes-btn{display:flex;align-items:center;gap:var(--space-sm);width:100%;padding:.7rem 1rem;border:1px dashed var(--border-color);border-radius:.75rem;background:#7f7f7f1a;color:var(--text-color-primary);font-family:inherit;font-size:var(--font-size-base);font-weight:800;text-align:left;cursor:pointer;transition:background var(--transition-base),border-color var(--transition-base);-webkit-tap-highlight-color:transparent}.sp-set-prizes-btn:hover{background:#7f7f7f2e}.sp-set-prizes-btn.is-set{border-style:solid;border-color:var(--btn-primary-bg);background:#7f7f7f24}.sp-set-prizes-btn.is-set .sp-set-prizes-summary{color:var(--text-color-primary);font-weight:700}.sp-set-prizes-label{flex:0 0 auto}.sp-set-prizes-summary{flex:1 1 auto;min-width:0;text-align:right;font-size:var(--font-size-sm);font-weight:600;color:var(--text-color-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}#setPrizesModal{z-index:1050}.sp-prize-modal{max-width:46rem;width:94%;max-height:92vh;padding:0;display:flex;flex-direction:column;overflow:hidden;text-align:left}.sp-prize-modal:before{display:none}.sp-prize-x{position:absolute;top:.6rem;right:.6rem;z-index:5;width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;font-size:1.5rem;line-height:1;color:#fff;background:#00000059;transition:background var(--transition-base),transform .12s ease;-webkit-tap-highlight-color:transparent}.sp-prize-x:hover{background:#0000008c;transform:scale(1.05)}.sp-prize-x:focus-visible{outline:2px solid #fff;outline-offset:2px}.sp-prize-banner{flex:0 0 auto;cursor:default;border-radius:0;border-top:none;border-left:none;border-right:none;min-height:0;padding:1rem 3rem 1rem 1.1rem}.sp-prize-banner:hover{transform:none;box-shadow:none}.sp-prize-banner .gm-emblem{flex-basis:66px;height:66px}.sp-prize-banner .gm-crown-disc,.sp-prize-banner .gm-chaos-burst{width:58px;height:58px}.sp-prize-banner .gm-crown-disc img{width:36px;height:36px}.sp-prize-banner .gm-chaos-burst{font-size:1.6rem}.sp-prize-banner .gm-vs-badge{width:54px;height:54px;font-size:1.2rem}.sp-prize-banner .gm-raid-monster{width:78px;height:78px;margin-top:0}.sp-prize-banner .gm-raid-monster img{width:78px;height:78px}.sp-prize-banner .gm-rvb-inner{min-height:0;padding:1rem 3rem 1rem 1.1rem}.sp-prize-banner .gm-title{display:flex;align-items:center;flex-wrap:wrap;gap:.45rem;margin:0 0 .1rem;font-size:1.2rem}.sp-prize-tag{display:inline-block;padding:.18rem .6rem;border-radius:999px;font-family:Andika,Nunito Sans,sans-serif;font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:#1a1a1a;background:#fff;box-shadow:0 2px 7px #00000052;text-shadow:none}.sp-prize-instruction{display:block;margin:.1rem 0 0;font-size:.8rem;line-height:1.3;font-weight:600;color:#ffffffe6;text-shadow:0 1px 3px rgba(0,0,0,.5)}.sp-prize-body{flex:1 1 auto;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:var(--space-lg) var(--space-xl);box-sizing:border-box}.sp-prize-modal.is-placings .sp-prize-body{height:28rem;max-height:82vh}.sp-prize-footer{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);padding:var(--space-md) var(--space-xl);border-top:1px solid var(--border-color)}.sp-prize-footer .btn{width:auto;max-width:none;margin:0}.mtc-pred-stacked-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.mtc-pred-stacked-label{font-size:.85rem;font-weight:600;opacity:.8;min-width:90px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtc-pred-stacked-bar{flex:1;display:flex;height:40px;border-radius:6px;overflow:hidden;background:#00000026}.mtc-pred-stacked-seg{display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fffffff2;transition:filter .15s ease;min-width:0;overflow:hidden;position:relative}.mtc-pred-stacked-seg span{white-space:nowrap;font-size:.7rem;line-height:1;padding:0 2px}.mtc-pred-stacked-seg:hover{filter:brightness(1.25)}.mtc-bar-tooltip{position:fixed;z-index:10000;background:#000000e6;color:#fff;padding:6px 12px;border-radius:6px;font-size:.82rem;font-weight:600;pointer-events:none;white-space:nowrap;opacity:0;transition:opacity .1s ease;box-shadow:0 2px 8px #0000004d}.mtc-bar-tooltip.visible{opacity:1}.mtc-seg-popover{position:fixed;z-index:10001;background:var(--card-bg, #1e1e2e);border:1px solid rgba(255,255,255,.15);border-radius:10px;box-shadow:0 8px 30px #00000080;width:300px;max-height:320px;display:none;flex-direction:column;overflow:hidden}.mtc-seg-popover.open{display:flex}.mtc-seg-popover-header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.08);font-size:.85rem;font-weight:700;gap:8px}.mtc-seg-popover-header .mtc-seg-pop-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.mtc-seg-popover-header .mtc-seg-pop-close{cursor:pointer;opacity:.5;font-size:1.1rem;line-height:1;padding:0 2px}.mtc-seg-popover-header .mtc-seg-pop-close:hover{opacity:1}.mtc-seg-popover-body{overflow-y:auto;padding:6px 0}.mtc-seg-popover-row{display:flex;align-items:center;padding:5px 14px;font-size:.85rem;gap:8px}.mtc-seg-popover-row{cursor:pointer}.mtc-seg-popover-row:hover{background:#ffffff14}.mtc-seg-popover-row span:first-child{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtc-seg-popover-row .pop-class{font-size:.75rem;opacity:.5;white-space:nowrap}.mtc-seg-popover-row .pop-score{font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap}.mtc-pred-stacked-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.mtc-pred-legend-item{display:flex;align-items:center;gap:5px;font-size:.8rem;opacity:.7}.mtc-pred-legend-swatch{width:10px;height:10px;border-radius:3px;flex-shrink:0}.mtc-compare-toggle{display:inline-flex;background:#ffffff0f;border-radius:8px;padding:3px;gap:2px;margin-bottom:4px}.mtc-compare-btn{padding:6px 14px;border:none;border-radius:6px;background:transparent;color:#ffffff80;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.mtc-compare-btn:hover{color:#ffffffbf;background:#ffffff0a}.mtc-compare-btn.active{background:#ffffff1a;color:#fffffff2}.mtc-compare-term-group{padding:10px 0 6px;border-top:1px solid rgba(255,255,255,.06)}.mtc-compare-term-group:first-of-type{border-top:none;padding-top:0}.mtc-compare-term-heading{font-size:.82rem;font-weight:700;margin-bottom:8px;color:#ffffff80}.mtc-sankey text{font-family:inherit}.mtc-sankey-flow{transition:opacity .2s ease;cursor:default}.mtc-sankey-flow:hover{opacity:.55!important}.mtc-stacked-cols text{font-family:inherit}.mtc-stacked-cols rect{transition:opacity .15s ease}.mtc-stacked-cols rect:hover{opacity:1!important}.mtc-hbar-chart{display:flex;flex-direction:column;gap:3px}.mtc-hbar-row{display:flex;align-items:center;gap:8px;font-size:.8rem}.mtc-hbar-label{min-width:28px;font-weight:600;font-size:.75rem;opacity:.7;text-align:right;font-variant-numeric:tabular-nums}.mtc-hbar-track{flex:1;height:14px;background:#0000001a;border-radius:3px;overflow:hidden}.mtc-hbar-bar{height:100%;border-radius:3px;transition:width .4s ease}.mtc-hbar-bar.positive{background:#27ae60;opacity:.7}.mtc-hbar-bar.negative{background:#e74c3c;opacity:.7}.mtc-hbar-val{min-width:36px;font-size:.7rem;font-weight:700;font-variant-numeric:tabular-nums;text-align:right}.mtc-hbar-val.positive{color:#2ecc71}.mtc-hbar-val.negative{color:#e74c3c}.col-change-bar{padding:4px 6px!important}.mtc-databar{display:flex;align-items:center;gap:4px;height:18px}.mtc-databar.positive{flex-direction:row}.mtc-databar.negative{flex-direction:row-reverse}.mtc-databar-fill{height:100%;border-radius:2px;min-width:2px;transition:width .3s ease}.mtc-databar.positive .mtc-databar-fill{background:#2ecc7180}.mtc-databar.negative .mtc-databar-fill{background:#e74c3c80}.mtc-databar-val{font-size:.75rem;font-weight:700;font-variant-numeric:tabular-nums;white-space:nowrap;flex-shrink:0}.mtc-databar.positive .mtc-databar-val{color:#2ecc71}.mtc-databar.negative .mtc-databar-val{color:#e74c3c}.mtc-status-pill{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.65rem;font-weight:600;white-space:nowrap;letter-spacing:.01em}.mtc-status-pill.pill-fm{background:#0793d133;color:#5dade2}.mtc-status-pill.pill-on-track{background:#27ae6033;color:#2ecc71}.mtc-status-pill.pill-borderline{background:#d4ac0d33;color:#f1c40f}.mtc-status-pill.pill-below{background:#e67e2233;color:#e67e22}.mtc-status-pill.pill-at-risk{background:#e74c3c33;color:#e74c3c}.mtc-status-pill.pill-unknown{background:#ffffff0d;opacity:.4}.mtc-status-pill.pill-new-pupil{background:#8e44ad33;color:#bb8fce}.mtc-pupils-table .weak-tint{background:#e74c3c0f}.mtc-pupils-table .weak-tint-strong{background:#e74c3c24}.mtc-pupils-table .num-cell{font-variant-numeric:tabular-nums}.mtc-insufficient-label{font-size:.65rem;opacity:.45;font-style:italic;white-space:nowrap}.mtc-pred-comparison{display:flex;gap:20px;margin-bottom:16px}.mtc-pred-period{flex:1;background:#00000026;border-radius:8px;padding:12px}.mtc-pred-period-title{font-size:.8rem;opacity:.65;margin-bottom:10px;text-align:center;font-weight:600}.mtc-pred-band-row{display:flex;align-items:center;justify-content:space-between;padding:4px 0;font-size:.8rem;border-bottom:1px solid rgba(255,255,255,.04)}.mtc-pred-band-row:last-child{border-bottom:none}.mtc-pred-band-label{display:flex;align-items:center;gap:6px;min-width:80px}.mtc-pred-band-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.mtc-pred-band-count{font-weight:600;font-variant-numeric:tabular-nums}.mtc-pred-band-pct{opacity:.6;font-size:.75rem;margin-left:4px}.mtc-bands-tab-content{display:flex;flex-direction:column;gap:8px;padding-right:4px}.mtc-band-movement-section{background:#0000001a;border-radius:8px;padding:12px;overflow-y:auto;flex:1}.mtc-band-movement-title{font-size:.8rem;font-weight:600;margin-bottom:8px;opacity:.8}.mtc-band-movement-row{display:flex;align-items:flex-start;gap:8px;padding:4px 0;font-size:.8rem;border-bottom:1px solid rgba(255,255,255,.04)}.mtc-band-movement-row:last-child{border-bottom:none}.mtc-band-movement-arrow{flex-shrink:0;font-weight:600;white-space:nowrap;font-size:.75rem}.mtc-band-movement-names{opacity:.8;line-height:1.4}.mtc-pupils-table-wrap{overflow:auto;flex:1;max-height:520px}.mtc-pupils-table{width:100%;border-collapse:collapse;font-size:.8rem}.mtc-pupils-table thead th{position:-webkit-sticky;position:sticky;top:0;background:#0f0f1a;padding:8px 10px;text-align:left;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;color:#ffffffb3;font-weight:600;cursor:pointer;-webkit-user-select:none;user-select:none;white-space:nowrap;border-bottom:1px solid rgba(255,255,255,.1);z-index:1}.mtc-pupils-table thead th:hover{color:#fff}.mtc-pupils-table thead th.sorted{color:#667eea}.mtc-pupils-table thead th .sort-arrow{font-size:.6rem;margin-left:3px}.mtc-pupils-table tbody tr{cursor:pointer;transition:background .15s ease;border-bottom:1px solid rgba(255,255,255,.03)}.mtc-pupils-table tbody tr:hover{background:#ffffff0d}.mtc-pupils-table tbody tr.row-improver{background:#2ecc710d}.mtc-pupils-table tbody tr.row-improver:hover{background:#2ecc711a}.mtc-pupils-table tbody tr.row-decliner{background:#e74c3c0d}.mtc-pupils-table tbody tr.row-decliner:hover{background:#e74c3c1a}.mtc-pupils-table td{padding:7px 10px;font-variant-numeric:tabular-nums}.mtc-pupils-table td.col-change{font-weight:700}.mtc-pupils-table td.col-change.positive{color:#2ecc71}.mtc-pupils-table td.col-change.negative{color:#e74c3c}.mtc-pupils-table .pred-badge{display:inline-block;padding:1px 6px;border-radius:3px;font-size:.7rem;font-weight:600;white-space:nowrap}.mtc-pupils-table .pred-badge.pred-full-marks{background:#0793d133;color:#5dade2}.mtc-pupils-table .pred-badge.pred-score-20-24{background:#27ae6033;color:#2ecc71}.mtc-pupils-table .pred-badge.pred-score-16-19{background:#d4ac0d33;color:#f1c40f}.mtc-pupils-table .pred-badge.pred-score-10-15{background:#e67e2233;color:#e67e22}.mtc-pupils-table .pred-badge.pred-below-10{background:#e74c3c33;color:#e74c3c}.mtc-pupils-table .pred-badge.pred-insufficient{background:#ffffff0d;opacity:.5}.mtc-pupils-table .pred-change-arrow{font-size:.65rem;margin:0 2px;opacity:.5}.mtc-pupils-table .weak-tables{font-size:.7rem;opacity:.6;max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.mtc-tables-heatmap-wrap{overflow:auto;flex:1}.mtc-tables-heatmap{width:100%;border-collapse:collapse;font-size:.75rem}.mtc-tables-heatmap th{padding:6px 8px;text-align:center;font-size:.65rem;text-transform:uppercase;letter-spacing:.3px;opacity:.7;font-weight:600;position:-webkit-sticky;position:sticky;top:0;background:#0f0f1af2;z-index:1;white-space:nowrap}.mtc-tables-heatmap th:first-child{text-align:left;position:-webkit-sticky;position:sticky;left:0;z-index:2}.mtc-tables-heatmap td{padding:5px 8px;text-align:center;font-variant-numeric:tabular-nums;border-bottom:1px solid rgba(255,255,255,.03);position:relative}.mtc-tables-heatmap td:first-child{font-weight:600;text-align:left;position:-webkit-sticky;position:sticky;left:0;background:#0f0f1af2;z-index:1}.mtc-heatmap-cell{border-radius:4px;padding:4px 6px;font-weight:600;line-height:1.2}.mtc-heatmap-cell .hm-accuracy{font-size:.75rem}.mtc-heatmap-cell .hm-speed{font-size:.6rem;opacity:.6;display:block}.mtc-heatmap-cell.hm-strong{background:#27ae6040;color:#2ecc71}.mtc-heatmap-cell.hm-ok{background:#f39c1233;color:#f1c40f}.mtc-heatmap-cell.hm-weak{background:#e74c3c33;color:#e74c3c}.mtc-heatmap-cell.hm-nodata{opacity:.3}.mtc-tables-summary{margin-top:10px;font-size:.8rem;display:flex;gap:16px;flex-wrap:wrap}.mtc-tables-summary-item{display:flex;align-items:center;gap:4px}.mtc-tables-summary-item.improved{color:#2ecc71}.mtc-tables-summary-item.declined{color:#e74c3c}.mtc-progress-content{display:flex;flex-direction:column;align-items:stretch;gap:4px;width:100%}.mtc-progress-layout{display:flex;flex-direction:column;gap:4px;width:100%}.mtc-progress-tabs{display:flex;justify-content:center;gap:0;border-bottom:2px solid rgba(255,255,255,.08)}.mtc-progress-panels{width:100%;min-width:0}.mtc-progress-tab{padding:8px 18px;border:none;background:transparent;color:var(--text-color-primary);font-size:.82rem;font-weight:500;font-family:inherit;border-radius:0;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:all .15s ease;opacity:.5}.mtc-progress-tab:hover{opacity:.8;border-bottom-color:#fff3}.mtc-progress-tab.active{opacity:1;border-bottom-color:#a5b4fc;color:#a5b4fc}.mtc-progress-panel{display:none;width:100%;box-sizing:border-box;overflow-y:auto;max-height:520px}.mtc-progress-panel.active{display:flex;flex-direction:column;width:100%}.mtc-overview-layout{display:flex;gap:20px;width:100%;flex:1}.mtc-overview-stats{flex:0 0 280px;min-width:280px;max-width:280px;display:flex;flex-direction:column}.mtc-progress-metrics-inline{display:flex;flex-direction:column;gap:6px}.mtc-metric-row{display:flex;align-items:center;gap:8px;font-size:.9rem}.mtc-metric-row .mtc-metric-label{min-width:75px;width:75px;flex-shrink:0;font-weight:500;text-align:left}.mtc-metric-row .mtc-metric-values{font-weight:600}.mtc-metric-row .mtc-metric-delta{font-weight:600;font-size:.85rem}.mtc-overview-table-accuracy{flex:1 1 auto;min-width:0;background:#00000026;border-radius:10px;padding:15px;overflow:hidden}.mtc-overview-table-accuracy h4{margin:0 0 12px;font-size:.95rem;font-weight:600}.mtc-bands-section-fullwidth{width:100%;box-sizing:border-box;flex:1;display:flex;flex-direction:column}.mtc-pupils-layout{display:flex;gap:20px;width:100%;flex:1}.mtc-pupils-all-section{flex:1 1 50%;min-width:0}.mtc-pupils-all-header{display:flex;justify-content:flex-start;align-items:center;gap:12px;margin-bottom:10px}.mtc-pupils-all-header h5{margin:0;font-size:.9rem;font-weight:700;letter-spacing:-.01em;color:var(--text-color-primary)}.mtc-pupils-all-section .school-inline-students-grid{max-height:250px}.mtc-pupils-all-section .school-inline-student-card.improver{border-color:#2ecc7166;background:#2ecc711a}.mtc-pupils-all-section .school-inline-student-card.decliner{border-color:#e74c3c66;background:#e74c3c1a}.mtc-pupils-all-section .school-inline-student-card .student-change{font-size:.7rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.mtc-pupils-all-section .school-inline-student-card .student-change.positive{color:#2ecc71}.mtc-pupils-all-section .school-inline-student-card .student-change.negative{color:#e74c3c}.mtc-new-pupil-badge{display:inline-block;padding:1px 6px;border-radius:8px;font-size:.6rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em;background:#8e44ad40;color:#bb8fce;vertical-align:middle;margin-left:4px}.mtc-pupils-all-section .school-inline-student-card.new-pupil{border-color:#8e44ad66;background:#8e44ad1a}.student-change.new-label{color:#bb8fce;font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.03em}.mtc-new-pupils-notice{padding:8px 14px;margin-bottom:10px;border-radius:6px;background:#8e44ad1f;border:1px solid rgba(142,68,173,.3);color:#bb8fce;font-size:.8rem;font-weight:500}.mtc-pupils-movers-section{flex:1 1 50%;min-width:0;display:flex;gap:12px}.mtc-movers-column{flex:1;min-width:0}.mtc-movers-column h5{margin:0 0 10px;font-size:.9rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.mtc-movers-grid{max-height:220px}.mtc-movers-grid .school-inline-student-card.improver{border-color:#2ecc7166;background:#2ecc711a}.mtc-movers-grid .school-inline-student-card.decliner{border-color:#e74c3c66;background:#e74c3c1a}.mtc-movers-grid .school-inline-student-card .student-change{font-size:.7rem;font-weight:700;margin-top:2px;font-variant-numeric:tabular-nums}.mtc-movers-grid .school-inline-student-card .student-change.positive{color:#2ecc71}.mtc-movers-grid .school-inline-student-card .student-change.negative{color:#e74c3c}@media(max-width:768px){.mtc-progress-tabs{overflow-x:auto}.mtc-progress-tab{flex:0 0 auto;font-size:.8rem;padding:8px 14px}.mtc-pred-comparison{flex-direction:column}}.mtc-progress-summary{background:#00000026;border-radius:10px;padding:15px;font-size:.9rem;line-height:1.5}.mtc-progress-summary:empty{display:none}.mtc-bands-explainer{font-size:.85rem;opacity:.7;text-align:center;margin:0 0 15px}.mtc-progress-comparison{text-align:center}.mtc-period-label{font-size:.9rem;opacity:.8;margin-bottom:12px;font-weight:500}.mtc-progress-metrics{display:flex;justify-content:center;gap:30px;flex-wrap:wrap}.mtc-metric{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:100px}.mtc-metric-label{font-size:.8rem;opacity:.75}.mtc-metric-values{font-size:1rem;font-weight:600}.mtc-metric-delta{font-size:.85rem;font-weight:600;min-height:1.2em}.mtc-metric-delta.positive{color:#27ae60}.mtc-metric-delta.negative{color:#e74c3c}.mtc-progress-test-count{font-size:.7rem;opacity:.6;margin-top:10px;word-wrap:break-word;overflow-wrap:break-word;line-height:1.3;display:block;max-width:100%}.mtc-progress-movers{display:flex;gap:20px}.mtc-movers-column{flex:1;background:#00000026;border-radius:10px;padding:12px;min-width:0}.mtc-movers-column h5{margin:0 0 10px;font-size:.9rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:6px}.mtc-movers-column.mtc-improvers h5{color:#27ae60}.mtc-movers-column.mtc-decliners h5{color:#e67e22}.mtc-movers-list{display:flex;flex-direction:column;gap:6px}.mtc-mover-item{display:flex;justify-content:space-between;align-items:center;padding:8px 10px;background:#ffffff0d;border-radius:6px;cursor:pointer;transition:background .2s ease}.mtc-mover-item:hover{background:#ffffff1a}.mtc-mover-info{display:flex;flex-direction:column;gap:2px;min-width:0;overflow:hidden}.mtc-mover-name{font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtc-mover-class{font-size:.7rem;opacity:.6}.mtc-mover-change{font-weight:700;font-size:.9rem;flex-shrink:0;margin-left:10px}.mtc-mover-change.positive{color:#27ae60}.mtc-mover-change.negative{color:#e74c3c}.mtc-progress-no-data{text-align:center;padding:20px;opacity:.7;font-size:.9rem}.mtc-progress-explainer{font-size:.85rem;opacity:.7;margin:-5px 0 15px;line-height:1.4}.mtc-term-selector{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:nowrap}.mtc-term-label{font-size:.75rem;font-weight:500;opacity:.7;flex-shrink:0}.mtc-term-selector .mtc-term-dropdown{padding:5px 10px;border-radius:5px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:inherit;font-family:inherit;font-size:.75rem;cursor:pointer;width:auto;max-width:180px;flex:0 0 auto}.mtc-term-selector .mtc-term-dropdown:hover{border-color:#ffffff4d;background:#ffffff26}.mtc-term-selector .mtc-term-dropdown:focus{outline:none;border-color:#667eea80;box-shadow:0 0 0 2px #667eea33}.mtc-progress-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}.mtc-progress-chip-group{display:flex;align-items:center;gap:6px}.mtc-progress-chip-label{font-size:.75rem;font-weight:600;opacity:.5;white-space:nowrap}.mtc-progress-divider{width:1px;height:20px;background:#ffffff1f;flex-shrink:0}body.light-mode .mtc-progress-divider{background:#0000001f}.mtc-progress-view-modes{display:inline-flex;background:#0003;border-radius:10px;padding:3px;gap:3px}.mtc-progress-view-btn{padding:4px 12px;border:none;background:transparent;color:var(--text-color-primary);font-size:.75rem;font-weight:600;font-family:inherit;border-radius:8px;cursor:pointer;transition:all .2s ease;opacity:.6;white-space:nowrap}.mtc-progress-view-btn:hover:not(:disabled){opacity:.9;background:#ffffff14}.mtc-progress-view-btn.active{background:#667eea66;opacity:1}.mtc-progress-view-btn:disabled{opacity:.25;cursor:not-allowed}.mtc-progress-controls{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:0;min-height:0}.mtc-progress-controls-label{font-size:.8rem;font-weight:600;opacity:.7}.mtc-progress-select{padding:5px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:inherit;font-family:inherit;font-size:.8rem;cursor:pointer;width:auto;max-width:220px}.mtc-progress-select:hover{border-color:#ffffff4d;background:#ffffff26}.mtc-progress-select:focus{outline:none;border-color:#667eea80;box-shadow:0 0 0 2px #667eea33}.mtc-progress-select option{background:#1a1a2e;color:#fff}.mtc-progress-term-picks{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.mtc-progress-term-pick{display:inline-flex;align-items:center;padding:4px 12px;font-size:.75rem;font-weight:500;font-family:inherit;line-height:normal;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffff80;cursor:pointer;transition:all .2s ease;white-space:nowrap}.mtc-progress-term-pick:hover{background:#ffffff1a;border-color:#fff3;color:#fffc}.mtc-progress-term-pick.selected{background:#2dd4bf26;border-color:#2dd4bf80;color:#5eead4}.mtc-progress-term-pick.selected:hover{background:#2dd4bf38;border-color:#2dd4bfa6}.mtc-progress-class-picks{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.mtc-progress-class-pick{display:inline-flex;align-items:center;gap:0;padding:4px 12px;font-size:.75rem;font-weight:500;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffff80;cursor:pointer;transition:all .2s ease;white-space:nowrap}.mtc-progress-class-pick:hover{background:#ffffff1a;border-color:#fff3;color:#fffc}.mtc-progress-class-pick.selected{background:#2dd4bf26;border-color:#2dd4bf80;color:#5eead4}.mtc-progress-class-pick.selected:hover{background:#2dd4bf38;border-color:#2dd4bfa6}.mtc-progress-class-cb{display:none}.mtc-progress-no-data-term{flex:1;display:flex;align-items:center;font-size:.78rem;color:#ffffff59;font-style:italic;padding:4px 12px}body.light-mode .mtc-progress-view-modes{background:#0000000f}body.light-mode .mtc-progress-view-btn:hover:not(:disabled){background:#0000000f}body.light-mode .mtc-progress-view-btn.active{background:#4f46e526;color:#4338ca}body.light-mode .mtc-progress-select{border-color:#94a3b84d;background:#0000000a}body.light-mode .mtc-progress-select:hover{border-color:#94a3b880;background:#00000012}body.light-mode .mtc-progress-select:focus{border-color:#4f46e580;box-shadow:0 0 0 2px #4f46e526}body.light-mode .mtc-progress-select option{background:#fff;color:#1e293b}body.light-mode .mtc-progress-term-pick{border-color:#94a3b840;background:#00000008;color:#0006}body.light-mode .mtc-progress-term-pick:hover{background:#0000000f;border-color:#94a3b866;color:#000000b3}body.light-mode .mtc-progress-term-pick.selected{background:#0d94881a;border-color:#0d948866;color:#0d9488}body.light-mode .mtc-progress-term-pick.selected:hover{background:#0d948826;border-color:#0d94888c}body.light-mode .mtc-progress-class-pick{border-color:#94a3b840;background:#00000008;color:#0006}body.light-mode .mtc-progress-class-pick:hover{background:#0000000f;border-color:#94a3b866;color:#000000b3}body.light-mode .mtc-progress-class-pick.selected{background:#0d94881a;border-color:#0d948866;color:#0d9488}body.light-mode .mtc-progress-class-pick.selected:hover{background:#0d948826;border-color:#0d94888c}body.light-mode .mtc-progress-no-data-term{color:#0000004d}.mtc-progress-yg-picks{display:flex;flex-wrap:wrap;gap:6px}.mtc-progress-yg-pick{display:inline-flex;align-items:center;padding:4px 12px;font-size:.75rem;font-weight:500;font-family:inherit;line-height:normal;border-radius:14px;border:1px solid rgba(255,255,255,.12);background:#ffffff0f;color:#ffffff80;cursor:pointer;transition:all .2s ease;white-space:nowrap}.mtc-progress-yg-pick:hover{background:#ffffff14;border-color:#fff3;color:#fffc}.mtc-progress-yg-pick.selected[data-year-group="1"]{background:#f0629226;border-color:#f0629280;color:#f06292}.mtc-progress-yg-pick.selected[data-year-group="2"]{background:#4db6ac26;border-color:#4db6ac80;color:#4db6ac}.mtc-progress-yg-pick.selected[data-year-group="3"]{background:#ffb74d26;border-color:#ffb74d80;color:#ffb74d}.mtc-progress-yg-pick.selected[data-year-group="4"]{background:#7986cb26;border-color:#7986cb80;color:#7986cb}.mtc-progress-yg-pick.selected[data-year-group="5"]{background:#aed58126;border-color:#aed58180;color:#aed581}.mtc-progress-yg-pick.selected[data-year-group="6"]{background:#ce93d826;border-color:#ce93d880;color:#ce93d8}.mtc-progress-yg-pick.selected[data-year-group="1"]:hover{background:#f0629238;border-color:#f06292a6}.mtc-progress-yg-pick.selected[data-year-group="2"]:hover{background:#4db6ac38;border-color:#4db6aca6}.mtc-progress-yg-pick.selected[data-year-group="3"]:hover{background:#ffb74d38;border-color:#ffb74da6}.mtc-progress-yg-pick.selected[data-year-group="4"]:hover{background:#7986cb38;border-color:#7986cba6}.mtc-progress-yg-pick.selected[data-year-group="5"]:hover{background:#aed58138;border-color:#aed581a6}.mtc-progress-yg-pick.selected[data-year-group="6"]:hover{background:#ce93d838;border-color:#ce93d8a6}body.light-mode .mtc-progress-yg-pick{border-color:#94a3b840;background:#00000008;color:#0006}body.light-mode .mtc-progress-yg-pick:hover{background:#0000000f;border-color:#94a3b866;color:#000000b3}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="1"]{background:#f062921f;border-color:#f0629266;color:#c2185b}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="2"]{background:#4db6ac1f;border-color:#4db6ac66;color:#00796b}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="3"]{background:#ffb74d1f;border-color:#ffb74d66;color:#e65100}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="4"]{background:#7986cb1f;border-color:#7986cb66;color:#283593}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="5"]{background:#aed5811f;border-color:#aed58166;color:#33691e}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="6"]{background:#ce93d81f;border-color:#ce93d866;color:#6a1b9a}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="1"]:hover{background:#f062922e;border-color:#f062928c}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="2"]:hover{background:#4db6ac2e;border-color:#4db6ac8c}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="3"]:hover{background:#ffb74d2e;border-color:#ffb74d8c}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="4"]:hover{background:#7986cb2e;border-color:#7986cb8c}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="5"]:hover{background:#aed5812e;border-color:#aed5818c}body.light-mode .mtc-progress-yg-pick.selected[data-year-group="6"]:hover{background:#ce93d82e;border-color:#ce93d88c}body.light-mode .mtc-progress-tabs{border-bottom-color:#0000001a}body.light-mode .mtc-progress-tab:hover{border-bottom-color:#0003}body.light-mode .mtc-progress-tab.active{border-bottom-color:#4338ca;color:#4338ca}#scoreBandTimePeriod,#practiceTablesTimePeriod,#testTablesTimePeriod,#mtcTablesTimePeriod,#mtcReadinessTimePeriod{padding:5px 10px;border-radius:5px;border:1px solid rgba(255,255,255,.2);background:#ffffff1a;color:inherit;transform:translateY(9px);font-family:inherit;font-size:.75rem;cursor:pointer;width:auto;max-width:180px}#scoreBandTimePeriod:hover,#practiceTablesTimePeriod:hover,#testTablesTimePeriod:hover,#mtcTablesTimePeriod:hover,#mtcReadinessTimePeriod:hover{border-color:#ffffff4d;background:#ffffff26}#scoreBandTimePeriod:focus,#practiceTablesTimePeriod:focus,#testTablesTimePeriod:focus,#mtcTablesTimePeriod:focus,#mtcReadinessTimePeriod:focus{outline:none;border-color:#667eea80;box-shadow:0 0 0 2px #667eea33}#scoreBandTimePeriod option,#practiceTablesTimePeriod option,#testTablesTimePeriod option,#mtcTablesTimePeriod option,#mtcReadinessTimePeriod option{background:#1a1a2e;color:#fff}.mtc-term-arrow{font-size:.85rem;opacity:.5;flex-shrink:0}.mtc-info-icon{width:18px;height:18px;min-width:18px;min-height:18px;display:inline-flex;align-items:center;justify-content:center;background:#0793d126;border:1px solid rgba(7,147,209,.3);border-radius:50%;color:#5dade2;font-size:.65rem;font-weight:700;cursor:help;transition:all .2s ease;vertical-align:middle;position:relative;flex-shrink:0}.mtc-info-icon:hover{background:#0793d140;border-color:#0793d180;transform:scale(1.1)}body.light-mode .mtc-info-icon{background:#0793d11a;border-color:#0793d140;color:#2980b9}body.light-mode .mtc-info-icon:hover{background:#0793d133;border-color:#0793d166}.mtc-metric-values,.mtc-metric-delta,.badge,.score-band-list,.mtc-mover-scores,.mtc-progress-test-count,.overview-value,.overview-stat-value,[id*=Count],[id*=Avg],[id*=Score],[id*=Marks],[id*=Delta]{font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"lnum" 1;letter-spacing:.01em}.mtc-metric-values{font-weight:700;font-variant-numeric:tabular-nums lining-nums}.mtc-metric-delta{font-variant-numeric:tabular-nums lining-nums;min-width:3.5em;text-align:right}.school-dashboard-modal h3{font-size:1.1rem;font-weight:800;letter-spacing:-.01em;color:var(--text-color-primary);margin-bottom:12px;display:flex;align-items:center;gap:10px}.school-dashboard-modal .stats-section.secondary>div:first-child>h3{position:relative;padding-bottom:10px}.school-dashboard-modal .stats-section.secondary>div:first-child>h3:after{content:"";position:absolute;bottom:0;left:0;width:2.5em;height:3px;background:linear-gradient(90deg,var(--color-accent-special) 0%,transparent 100%);border-radius:2px}.school-dashboard-modal h4,.mtc-overview-table-accuracy h4{font-size:.85rem;font-weight:700;color:var(--text-color-secondary);margin-bottom:10px;opacity:.9}.school-dashboard-modal h5,.mtc-pupils-all-header h5,.mtc-movers-column h5{font-size:.9rem;font-weight:700;color:var(--text-color-primary);margin:0 0 8px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mtc-improvers-section h5{color:#27ae60}.mtc-decliners-section h5{color:#e67e22}.stats-section.secondary h3:has(+[id*=Below10]),.stats-section.secondary>div:first-child:has(+[id*=Below10]) h3{color:#e74c3c}.stats-section.secondary h3:has(+[id*="10to15"]),.stats-section.secondary>div:first-child:has(+[id*="10to15"]) h3{color:#e67e22}.stats-section.secondary h3:has(+[id*="16to19"]),.stats-section.secondary>div:first-child:has(+[id*="16to19"]) h3{color:#d4ac0d}.stats-section.secondary h3:has(+[id*="20to24"]),.stats-section.secondary>div:first-child:has(+[id*="20to24"]) h3{color:#27ae60}.stats-section.secondary h3:has(+[id*=FullMarks]),.stats-section.secondary>div:first-child:has(+[id*=FullMarks]) h3{color:#0793d1}.school-dashboard-modal h3>span[style*=font-size],.mtc-progress-header h3>span[style*=font-size]{filter:drop-shadow(0 2px 3px rgba(0,0,0,.15))}.mtc-progress-explainer,.mtc-bands-explainer{font-size:.85rem;color:var(--text-color-secondary);line-height:1.5;margin-bottom:16px;max-width:60ch}.mtc-term-label,.prediction-universal-label,.overview-label{font-size:.78rem;font-weight:700;color:var(--text-color-secondary);opacity:.8}.mtc-metric-row .mtc-metric-label{font-size:.875rem;font-weight:600;display:inline-flex;align-items:center;gap:4px}.mtc-metric-row .mtc-metric-label .mtc-info-icon{width:16px;height:16px;min-width:16px;min-height:16px;font-size:.6rem;margin-left:4px}.mtc-mover-scores{font-size:.75rem;font-weight:600;opacity:.8;display:block;margin-top:2px;font-variant-numeric:tabular-nums}.mtc-mover-tests{opacity:.6;font-size:.9em}.mtc-progress-header-controls{display:flex;align-items:center;gap:15px}.mtc-compare-toggle{display:flex;align-items:center;gap:6px;font-size:.85rem;cursor:pointer;opacity:.8}.mtc-compare-toggle:hover{opacity:1}.mtc-compare-toggle input[type=checkbox]{width:16px;height:16px;cursor:pointer}.mtc-progress-metrics-compact{display:flex;flex-direction:column;gap:10px;margin-bottom:20px}.mtc-metric-row{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#00000026;border-radius:8px}.mtc-metric-row .mtc-metric-label{flex:1;font-size:.9rem;opacity:.9;text-transform:none;letter-spacing:0}.mtc-metric-row .mtc-metric-values{font-size:1rem;font-weight:600;min-width:80px;text-align:right}.mtc-metric-row .mtc-metric-delta{font-size:.9rem;font-weight:700;min-width:50px;text-align:right}.mtc-table-accuracy-section{background:#00000026;border-radius:10px;padding:15px}.mtc-table-accuracy-section h5{margin:0 0 12px;font-size:.9rem;font-weight:600;opacity:.9}.mtc-table-accuracy-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(80px,1fr));gap:8px}.mtc-table-acc-item{display:flex;flex-direction:column;gap:4px;padding:8px;background:#ffffff0d;border-radius:6px}.mtc-table-acc-label{font-size:.8rem;font-weight:600;opacity:.8}.mtc-table-acc-bar{height:8px;background:#ffffff1a;border-radius:4px;overflow:hidden;position:relative}.mtc-table-acc-fill{height:100%;border-radius:4px;transition:width .3s ease}.mtc-table-acc-fill.increase{background:linear-gradient(90deg,#27ae60,#2ecc71)}.mtc-table-acc-fill.decrease{background:linear-gradient(90deg,#e74c3c,#c0392b)}.mtc-table-acc-fill.neutral{background:linear-gradient(90deg,#7f8c8d,#95a5a6)}.mtc-table-acc-delta{font-size:.75rem;font-weight:700;text-align:center}.mtc-table-acc-delta.positive{color:#27ae60}.mtc-table-acc-delta.negative{color:#e74c3c}.mtc-table-acc-delta.neutral{color:#7f8c8d}.mtc-bands-chart-comparison{display:flex;flex-direction:column;gap:12px}.mtc-bands-comparison-row{display:flex;align-items:center;gap:10px}.mtc-bands-comparison-label{min-width:80px;font-size:.85rem;font-weight:500;opacity:.9}.mtc-bands-comparison-bars{flex:1;display:flex;gap:4px;align-items:center;height:28px}.mtc-bands-bar{height:100%;border-radius:4px;min-width:4px;transition:width .3s ease}.mtc-bands-bar.increase{background:linear-gradient(180deg,#2ecc71,#27ae60)}.mtc-bands-bar.decrease{background:linear-gradient(180deg,#e74c3c,#c0392b)}.mtc-bands-legend-inline{display:flex;justify-content:center;gap:20px;margin-top:15px;padding-top:10px;border-top:1px solid rgba(255,255,255,.1)}.mtc-legend-item{display:flex;align-items:center;gap:6px;font-size:.8rem;opacity:.8}.mtc-legend-bar{width:20px;height:12px;border-radius:3px}.mtc-legend-bar.increase{background:linear-gradient(180deg,#2ecc71,#27ae60)}.mtc-legend-bar.decrease{background:linear-gradient(180deg,#e74c3c,#c0392b)}.mtc-pupil-cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:10px;margin-bottom:20px}.mtc-pupil-card{padding:12px;background:#27ae6040;border:2px solid rgba(39,174,96,.5);border-radius:10px;text-align:center;cursor:pointer;transition:all .2s ease}.mtc-pupil-card:hover{background:#27ae6059;border-color:#27ae60b3;transform:translateY(-2px)}.mtc-pupil-card-name{font-size:.9rem;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtc-pupil-card-score{font-size:.75rem;font-weight:600;opacity:.8;margin-top:4px;font-variant-numeric:tabular-nums}.mtc-movers-bars-section{margin-bottom:15px}.mtc-movers-bars-section h5{margin:0 0 10px;font-size:.9rem;font-weight:700;letter-spacing:-.01em;display:flex;align-items:center;gap:6px}.mtc-movers-bars-section.mtc-improvers-section h5{color:#27ae60}.mtc-movers-bars-section.mtc-attention-section h5{color:#e67e22}.mtc-movers-bars{display:flex;flex-direction:column;gap:6px}.mtc-mover-bar-item{display:flex;align-items:center;gap:10px;padding:6px 10px;background:#00000026;border-radius:6px;cursor:pointer;transition:background .2s ease}.mtc-mover-bar-item:hover{background:#00000040}.mtc-mover-bar-name{min-width:80px;font-size:.85rem;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtc-mover-bar-container{flex:1;height:16px;background:#ffffff1a;border-radius:8px;overflow:hidden}.mtc-mover-bar-fill{height:100%;border-radius:8px;transition:width .3s ease}.mtc-mover-bar-fill.positive{background:linear-gradient(90deg,#27ae60,#2ecc71)}.mtc-mover-bar-fill.negative{background:linear-gradient(90deg,#e74c3c,#c0392b)}.mtc-mover-bar-value{font-size:.8rem;font-weight:700;min-width:40px;text-align:right}.mtc-mover-bar-value.positive{color:#27ae60}.mtc-mover-bar-value.negative{color:#e74c3c}@media(max-width:500px){.mtc-table-accuracy-grid{grid-template-columns:repeat(3,1fr)}.mtc-pupil-cards-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:600px){.mtc-progress-metrics{gap:15px}.mtc-metric{min-width:80px}.mtc-progress-movers{flex-direction:column}.mtc-progress-view-modes{flex-wrap:wrap}.mtc-progress-view-btn{padding:5px 10px;font-size:.75rem}.mtc-progress-select{font-size:.75rem;max-width:180px}}.mtc-metric-success .mtc-metric-label{color:#27ae60}.mtc-metric-pass .mtc-metric-label{color:#f1c40f}.mtc-metric-nearly .mtc-metric-label{color:#f39c12}.mtc-metric-concern .mtc-metric-label{color:#e74c3c}.mtc-metric-urgent .mtc-metric-label{color:#c0392b}.mtc-metric-delta.positive-inverted{color:#e74c3c}.mtc-metric-delta.negative-inverted{color:#27ae60}.mtc-metric-delta.neutral{color:#f39c12}.mtc-trend-sparkline-section{display:flex;align-items:center;justify-content:center;gap:12px;padding:12px 16px;background:#00000026;border-radius:10px}.mtc-trend-sparkline-label{font-size:.85rem;font-weight:500;opacity:.8;white-space:nowrap}.mtc-trend-sparkline{flex:1;max-width:400px;min-width:200px;height:50px}.mtc-trend-sparkline svg{width:100%;height:100%}.mtc-sparkline-line{fill:none;stroke:#fff9;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}.mtc-sparkline-point{cursor:pointer;transition:transform .2s ease}.mtc-sparkline-point:hover{transform:scale(1.5);transform-origin:center}.mtc-sparkline-point.on-track{fill:#27ae60}.mtc-sparkline-point.nearly-there{fill:#f39c12}.mtc-sparkline-point.at-risk{fill:#e74c3c}.mtc-sparkline-ref-line{stroke-dasharray:3,3;stroke-width:1}.mtc-sparkline-ref-line.ref-20{stroke:#27ae6066}.mtc-sparkline-ref-line.ref-15{stroke:#f39c1266}.mtc-sparkline-tooltip{position:absolute;background:#000000d9;color:#fff;padding:6px 10px;border-radius:6px;font-size:.75rem;pointer-events:none;z-index:1000;white-space:nowrap;transform:translate(-50%,-100%);margin-top:-8px}.mtc-bands-section{background:#00000026;border-radius:10px;padding:16px}.mtc-bands-title{margin:0 0 12px;font-size:.9rem;font-weight:600;text-align:center}.mtc-bands-chart{display:flex;flex-direction:column;gap:0;width:100%}.mtc-band-row{display:flex;align-items:center;gap:12px;margin-bottom:4px}.mtc-band-label{font-size:.85rem;font-weight:600;opacity:.8;min-width:90px;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mtc-band-bar-container{flex:1;height:40px;background:#00000026;border-radius:6px;overflow:hidden;display:flex}.mtc-band-segment{height:100%;display:flex;align-items:center;justify-content:center;font-size:.8rem;font-weight:700;color:#fffffff2;min-width:0;overflow:hidden;transition:filter .15s ease}.mtc-band-segment span{white-space:nowrap}.mtc-band-segment:hover{filter:brightness(1.25)}.mtc-band-segment.at-risk{background:#e74c3c}.mtc-band-segment.nearly-there{background:#f39c12}.mtc-band-segment.on-track{background:#27ae60}.mtc-band-segment.below-10{background:#e74c3c}.mtc-band-segment.band-10-15{background:#e67e22}.mtc-band-segment.band-16-19{background:#d4ac0d}.mtc-band-segment.band-20-24{background:#27ae60;color:#fff}.mtc-band-segment.full-marks{background:#0793d1}.mtc-band-count{width:50px;font-size:.7rem;opacity:.6;text-align:left;flex-shrink:0}.mtc-bands-legend{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:8px}.mtc-bands-legend-item{display:flex;align-items:center;gap:5px;font-size:.8rem;opacity:.7}.mtc-legend-swatch{width:10px;height:10px;border-radius:3px}.mtc-bands-legend-item.at-risk .mtc-legend-swatch{background:#e74c3c}.mtc-bands-legend-item.nearly-there .mtc-legend-swatch{background:#f39c12}.mtc-bands-legend-item.on-track .mtc-legend-swatch{background:#27ae60}.mtc-bands-legend-5{gap:15px}.mtc-bands-legend-item.below-10 .mtc-legend-swatch{background:#e74c3c}.mtc-bands-legend-item.band-10-15 .mtc-legend-swatch{background:#e67e22}.mtc-bands-legend-item.band-16-19 .mtc-legend-swatch{background:#d4ac0d}.mtc-bands-legend-item.band-20-24 .mtc-legend-swatch{background:#27ae60}.mtc-bands-legend-item.full-marks .mtc-legend-swatch{background:#0793d1}.mtc-progress-movers-section{display:flex;flex-direction:column;gap:12px}.mtc-movers-header{display:flex;justify-content:center}.mtc-movers-view-toggle{display:flex;background:#0003;border-radius:8px;padding:4px}.mtc-view-btn{padding:8px 16px;border:none;background:transparent;color:inherit;font-family:inherit;font-size:.85rem;font-weight:500;border-radius:6px;cursor:pointer;transition:all .2s ease;opacity:.7}.mtc-view-btn:hover{opacity:1;background:#ffffff1a}.mtc-view-btn.active{background:#667eea66;opacity:1}.mtc-all-pupils{background:#00000026;border-radius:10px;padding:12px}.mtc-all-pupils-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;flex-wrap:wrap;gap:8px}.mtc-all-pupils-count{font-size:.85rem;opacity:.7}.mtc-all-pupils-table-wrapper{max-height:400px;overflow-y:auto;overscroll-behavior:contain}.mtc-all-pupils-table{width:100%;border-collapse:collapse}.mtc-all-pupils-table th,.mtc-all-pupils-table td{padding:8px 10px;text-align:left;font-size:.8rem;border-bottom:1px solid rgba(255,255,255,.1)}.mtc-all-pupils-table th{font-weight:600;opacity:.7;text-transform:uppercase;font-size:.7rem;letter-spacing:.5px;position:-webkit-sticky;position:sticky;top:0;background:#1e1e32f2;z-index:1}.mtc-all-pupils-table tr{cursor:pointer;transition:background .2s ease}.mtc-all-pupils-table tbody tr:hover{background:#ffffff0d}.mtc-pupil-change{font-weight:600}.mtc-pupil-change.positive{color:#27ae60}.mtc-pupil-change.negative{color:#e74c3c}.mtc-pupil-change.neutral{opacity:.6}.mtc-status-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.3px}.mtc-status-badge.rapid-improver{background:#27ae604d;color:#27ae60}.mtc-status-badge.improving{background:#27ae6033;color:#2ecc71}.mtc-status-badge.consistent-high{background:#667eea4d;color:#667eea}.mtc-status-badge.plateau{background:#f39c124d;color:#f39c12}.mtc-status-badge.declining{background:#e74c3c33;color:#e67e73}.mtc-status-badge.regressing{background:#c0392b4d;color:#c0392b}.mtc-status-badge.consistent-low{background:#c0392b33;color:#e74c3c}.mtc-readiness-section{position:relative;background:linear-gradient(135deg,#667eea26,#764ba226);border:1px solid rgba(102,126,234,.3)}.mtc-readiness-predictions{margin-top:20px;padding-top:16px;border-top:1px solid rgba(255,255,255,.1)}.mtc-readiness-predictions h3{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.1)}.mtc-readiness-predictions .prediction-universal-label{text-align:left;margin-bottom:10px}.prediction-overview-horizontal{display:flex;gap:16px;justify-content:stretch}.prediction-overview-horizontal .prediction-card{flex:1 1 0;min-width:0;max-width:none;padding:18px 14px 16px;border-radius:12px;background:#ffffff0a;border:2px solid rgba(255,255,255,.08);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:all .2s ease,transform .15s ease;position:relative}.prediction-overview-horizontal .prediction-card:hover{border-color:#ffffff26;transform:translateY(-2px)}.prediction-overview-horizontal .prediction-card.active{border-color:currentColor;transform:translateY(-2px)}.prediction-overview-horizontal .prediction-card.below-10{background:#e74c3c1a}.prediction-overview-horizontal .prediction-card.score-10-15{background:#e67e221a}.prediction-overview-horizontal .prediction-card.score-16-19{background:#d4ac0d1a}.prediction-overview-horizontal .prediction-card.score-20-24{background:#27ae601a}.prediction-overview-horizontal .prediction-card.full-marks{background:#0793d11a}.prediction-overview-horizontal .prediction-card.insufficient{background:#95a5a60f;opacity:.7}.prediction-overview-horizontal .prediction-card-label{margin-bottom:0;order:1}.prediction-overview-horizontal .prediction-card-label .label-band{font-size:1.1rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}.prediction-overview-horizontal .prediction-card-count{font-size:.85rem;font-weight:500;line-height:1;order:2;letter-spacing:0;opacity:.8}.prediction-overview-horizontal .prediction-card-count .count-label{font-size:.85rem;font-weight:500;opacity:.8;margin-top:0;margin-left:2px;letter-spacing:0;display:inline}.prediction-overview-horizontal .prediction-card-pct{font-size:.75rem;font-weight:500;opacity:.45;margin-top:0;order:3}.prediction-details-inline{margin-top:16px;padding:0 16px;background:#0003;border-radius:8px;max-height:0;overflow:hidden;opacity:0;transition:max-height .3s ease,opacity .25s ease,padding .3s ease}.prediction-details-inline.active{max-height:350px;overflow-y:auto;opacity:1;padding:16px}body.light-mode .prediction-details-inline{background:var(--container-bg)}body.light-mode .prediction-details-item{background:#00000008;border:1px solid rgba(0,0,0,.1)}body.light-mode .prediction-details-item:hover{background:#0000000f;border-color:#00000026}@media(max-width:900px){.prediction-overview-horizontal{gap:12px;flex-wrap:wrap}.prediction-overview-horizontal .prediction-card{flex:1 1 calc(33.333% - 12px);min-width:95px;padding:14px 10px 12px}.prediction-overview-horizontal .prediction-card-label .label-band{font-size:1rem}.prediction-overview-horizontal .prediction-card-count{font-size:.8rem}}@media(max-width:580px){.prediction-overview-horizontal{gap:10px}.prediction-overview-horizontal .prediction-card{flex:1 1 calc(50% - 10px);min-width:85px;padding:12px 8px 10px}.prediction-overview-horizontal .prediction-card-label .label-band{font-size:.9rem}.prediction-overview-horizontal .prediction-card-count,.prediction-overview-horizontal .prediction-card-count .count-label{font-size:.75rem}}body.light-mode .prediction-overview-horizontal .prediction-card{background:var(--container-bg);border:2px solid rgba(148,163,184,.15);box-shadow:0 2px 8px #0f172a0d}body.light-mode .prediction-overview-horizontal .prediction-card:hover{border-color:#94a3b840;box-shadow:0 4px 12px #0f172a14}body.light-mode .prediction-overview-horizontal .prediction-card.below-10{background:#ef44441f}body.light-mode .prediction-overview-horizontal .prediction-card.score-10-15{background:#f973161f}body.light-mode .prediction-overview-horizontal .prediction-card.score-16-19{background:#eab3081f}body.light-mode .prediction-overview-horizontal .prediction-card.score-20-24{background:#22c55e1f}body.light-mode .prediction-overview-horizontal .prediction-card.full-marks{background:#0ea5e91f}body.light-mode .prediction-overview-horizontal .prediction-card.insufficient{background:#94a3b81a;opacity:.8}.prediction-universal-label{text-align:center;font-size:.75rem;opacity:.6;margin-bottom:8px;letter-spacing:.3px}.prediction-overview-vertical{display:grid!important;grid-template-columns:repeat(2,1fr)!important;grid-auto-rows:1fr;gap:8px;flex:1}.prediction-overview-vertical .prediction-card{max-width:none;min-width:0;flex:none;height:100%;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:10px 6px}.prediction-section-compact{position:relative;overflow:hidden}.prediction-section-compact .prediction-details{position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;padding:15px;z-index:10;opacity:0;transform:scale(.95);pointer-events:none;transition:opacity .25s ease,transform .25s ease;overflow-y:auto;background:#1a1a2e;background:linear-gradient(135deg,#1a1a2e,#16213e,#1a1a2e)}.prediction-section-compact .prediction-details.active{opacity:1;transform:scale(1);pointer-events:auto;display:block!important}.prediction-details-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px;padding-bottom:8px;border-bottom:1px solid rgba(255,255,255,.15)}.prediction-details-title{font-weight:600;font-size:.9rem}.prediction-details-back{background:linear-gradient(135deg,#667eea4d,#764ba24d);border:1px solid rgba(102,126,234,.4);color:inherit;padding:6px 12px;border-radius:8px;cursor:pointer;font-size:.75rem;font-weight:500;transition:all .2s;display:flex;align-items:center;gap:4px}.prediction-details-back:hover{background:linear-gradient(135deg,#667eea80,#764ba280);transform:translate(-2px)}.prediction-details-notice{padding:10px;background:#80808026;border-radius:8px;margin-bottom:10px;font-size:.8rem}.prediction-details-header-row{display:flex;justify-content:space-between;padding:0 10px 8px;font-size:.7rem;opacity:.6;text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:8px}.prediction-details-header-row .scores-direction{text-transform:none;opacity:.8}.prediction-details-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px}.prediction-details-item{display:flex;flex-direction:column;min-width:0;padding:10px 12px;background:#ffffff14;border-radius:8px;font-size:.8rem;gap:8px;border:1px solid rgba(255,255,255,.05)}.prediction-details-item:hover{background:#ffffff1f;border-color:#ffffff1a}.prediction-details-item .student-info{display:flex;flex-direction:column;align-items:stretch;gap:8px;min-width:0}.prediction-details-item .student-name{display:block;padding:0;font-weight:600;font-size:.85rem;text-align:left;overflow-wrap:anywhere}.prediction-details-item .student-meta{display:flex;align-items:center;flex-wrap:wrap;gap:4px;min-height:20px}.prediction-details-item .student-meta .pg-badge{margin-left:0}.prediction-details-item .student-class{font-size:.7rem;opacity:.6;text-align:left;overflow-wrap:anywhere;margin-right:4px}.prediction-details-item .student-scores{display:flex;flex-direction:column;align-items:flex-start;margin-top:auto;gap:8px}.prediction-details-item .scores-list{display:flex;gap:4px;flex-wrap:nowrap;min-height:24px}.prediction-details-item .scores-list .score-badge{box-sizing:border-box;flex-shrink:0;font-size:.7rem;padding:3px 6px;border-radius:4px;font-weight:600;min-width:22px;text-align:center}.prediction-details-item .student-avg{opacity:.7;font-size:.75rem;white-space:nowrap;font-weight:600}@media(max-width:600px){.prediction-details-list{grid-template-columns:1fr}}@media(max-width:900px){.school-predictions-progress-row{flex-direction:column}.school-predictions-progress-row .prediction-section-compact{max-width:none}.school-predictions-progress-row .mtc-progress-section{min-width:0}.prediction-overview-vertical{grid-template-columns:repeat(3,1fr)!important}}@media(max-width:500px){.prediction-overview-vertical{grid-template-columns:repeat(2,1fr)!important}}.prediction-overview{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.prediction-card{flex:1;min-width:100px;max-width:150px;background:#ffffff0d;border-radius:12px;padding:12px 8px;text-align:center;cursor:pointer;transition:all .2s ease;border:2px solid transparent;opacity:.6}.prediction-card.has-data{opacity:1}.prediction-card:hover{transform:translateY(-2px);background:#ffffff1a}.prediction-card.active{border-color:currentColor;transform:translateY(-2px);box-shadow:0 4px 15px #0003}.prediction-card-emoji{font-size:1.8rem;margin-bottom:4px}.prediction-card-label{margin-bottom:2px;min-height:1.2em}.prediction-card-label .label-band{font-weight:600;text-transform:uppercase;font-size:.7rem;line-height:1.2}.prediction-card.full-marks .label-band{color:#0793d1}.prediction-card.score-20-24 .label-band{color:#2ecc71}.prediction-card.score-16-19 .label-band{color:#d4ac0d}.prediction-card.score-10-15 .label-band{color:#e67e22}.prediction-card.below-10 .label-band{color:#e74c3c}.prediction-card.insufficient .label-band{color:#95a5a6}.prediction-card-count{font-size:1.4rem;font-weight:700;line-height:1.1}.prediction-card-count .count-label{font-size:.9rem;font-weight:600;opacity:.7;text-transform:lowercase;display:inline;margin-left:2px}.prediction-card-pct{font-size:.65rem;opacity:.6;margin-top:2px}.prediction-card.full-marks{color:#0793d1}.prediction-card.full-marks.active,.prediction-card.full-marks:hover{background:#0793d126}.prediction-card.score-20-24{color:#27ae60}.prediction-card.score-20-24.active,.prediction-card.score-20-24:hover{background:#27ae6026}.prediction-card.score-16-19{color:#d4ac0d}.prediction-card.score-16-19.active,.prediction-card.score-16-19:hover{background:#d4ac0d26}.prediction-card.score-10-15{color:#e67e22}.prediction-card.score-10-15.active,.prediction-card.score-10-15:hover{background:#e67e2226}.prediction-card.below-10{color:#e74c3c}.prediction-card.below-10.active,.prediction-card.below-10:hover{background:#e74c3c26}.prediction-card.insufficient{color:#95a5a6}.prediction-card.insufficient.active,.prediction-card.insufficient:hover{background:#95a5a626}.prediction-details{margin-top:16px;background:#0003;border-radius:10px;overflow:hidden;animation:slideDown .2s ease}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.prediction-detail-header{display:flex;justify-content:space-between;align-items:center;padding:12px 16px;background:#0003;border-bottom:1px solid rgba(255,255,255,.1)}.prediction-detail-title{font-weight:600;font-size:.95rem}.prediction-detail-close{font-size:1.5rem;cursor:pointer;opacity:.6;transition:opacity .2s;line-height:1}.prediction-detail-close:hover{opacity:1}.prediction-detail-table{max-height:350px;overflow-y:auto;overscroll-behavior:contain}.prediction-detail-row{display:grid;grid-template-columns:2fr 1fr 3fr;gap:12px;padding:10px 16px;align-items:center;border-bottom:1px solid rgba(255,255,255,.05);transition:background .15s}.prediction-detail-row.header{background:#00000026;font-size:.7rem;text-transform:uppercase;letter-spacing:.5px;opacity:.8;font-weight:600;position:-webkit-sticky;position:sticky;top:0;z-index:1}.prediction-detail-row.header .scores-direction{text-transform:none;font-weight:400;opacity:.7;font-size:.9em}.prediction-detail-row:not(.header):hover{background:#ffffff0d}.prediction-detail-row .col-name{font-weight:500}.prediction-detail-row .col-class{opacity:.7;font-size:.85em}.prediction-detail-row .col-scores{display:flex;align-items:center;gap:2px;flex-wrap:wrap}.score-badge{font-weight:600;font-size:.9em}.score-separator{opacity:.4;margin-right:4px}.score-badge.band-full-marks{color:#0793d1}.score-badge.band-20-24{color:#27ae60}.score-badge.band-16-19{color:#d4ac0d}.score-badge.band-10-15{color:#e67e22}.score-badge.band-below-10{color:#e74c3c}.prediction-detail-row .col-trend{font-size:1.2em;text-align:center}.prediction-detail-row .col-trend.up{color:#27ae60}.prediction-detail-row .col-trend.down{color:#e74c3c}.prediction-detail-row .col-trend.stable{color:#f1c40f}.prediction-detail-row .col-tests{text-align:center;opacity:.7}@media(max-width:768px){.prediction-overview{gap:8px}.prediction-card{min-width:60px;max-width:none;flex:1 1 18%;padding:10px 4px}.prediction-card-emoji{font-size:1.4rem}.prediction-card-label{font-size:.55rem}.prediction-card-count{font-size:1.3rem}.prediction-card-pct{font-size:.65rem}.prediction-detail-row{grid-template-columns:1.5fr 1fr 1fr 1fr .6fr .6fr;padding:8px 12px;font-size:.85rem}.prediction-detail-row .col-class{font-size:.75em}}@media(max-width:480px){.prediction-card{flex:1 1 30%;min-width:55px}.prediction-detail-row{grid-template-columns:1fr .8fr .8fr .8fr;gap:4px;padding:8px}.prediction-detail-row .col-consistency,.prediction-detail-row .col-tests{display:none}}@media(max-width:600px){.mtc-progress-tabs{padding:3px;gap:2px}.mtc-progress-tab{padding:8px 12px;font-size:.8rem}.mtc-progress-metrics{gap:15px}.mtc-metric{min-width:80px}.mtc-metric-label{font-size:.65rem}.mtc-metric-values{font-size:.85rem}.mtc-progress-summary{font-size:.8rem;padding:12px}.mtc-trend-sparkline-section{flex-direction:column;text-align:center}.mtc-trend-sparkline{max-width:100%;min-width:unset}.mtc-band-label{width:70px;font-size:.65rem}.mtc-bands-legend{gap:10px}.mtc-bands-legend-item{font-size:.65rem}.mtc-bands-legend-5{flex-wrap:wrap;justify-content:center;gap:8px}.mtc-all-pupils-table th,.mtc-all-pupils-table td{padding:6px 8px;font-size:.75rem}.mtc-all-pupils-controls{flex-direction:column;align-items:stretch}.mtc-view-btn{padding:6px 12px;font-size:.8rem}}.login-cards-modal{max-width:850px!important;width:95%;padding:var(--space-xl)!important;max-height:92vh;display:flex;flex-direction:column}.login-cards-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-lg);padding-right:3rem}.login-cards-header h2{margin:0!important;font-size:1.4rem;font-weight:700}.change-login-btn{background:transparent;color:var(--text-color-secondary);border:1.5px solid var(--border-color);border-radius:2rem;padding:.4rem 1rem;font-size:var(--font-size-xs);font-weight:600;cursor:pointer;transition:all var(--transition-base);white-space:nowrap;margin-left:auto}.change-login-btn:hover{border-color:var(--text-color-secondary);background:var(--seat-bg);transform:translateY(-1px)}.toolbar-label{font-size:var(--font-size-xs);font-weight:600;color:var(--text-color-secondary);white-space:nowrap}.selection-pill{display:flex;align-items:center;gap:6px;padding:8px 14px;background:#4ecb7126;border:1px solid rgba(78,203,113,.3);border-radius:20px;font-size:.85rem;white-space:nowrap;transition:all var(--transition-fast)}.selection-pill .pill-count{font-weight:700;color:var(--color-positive-feedback);min-width:1.5em;text-align:center}.selection-pill .pill-label{color:var(--text-color-secondary)}.selection-pill.none-selected{background:#ff6b6b1a;border-color:#ff6b6b40}.selection-pill.none-selected .pill-count{color:var(--color-accent-error)}.login-cards-toolbar{display:flex;align-items:center;gap:8px;margin-bottom:var(--space-md)}.toolbar-btn{display:flex;align-items:center;gap:6px;padding:8px 14px;font-size:.8rem;font-weight:600;color:var(--text-color-secondary);background:#ffffff0d;border:1px solid var(--border-color);border-radius:6px;cursor:pointer;transition:all var(--transition-fast)}.toolbar-btn:hover{background:#ffffff1a;color:var(--text-color-primary);border-color:#fff3}.toolbar-btn svg{opacity:.7}.toolbar-btn:hover svg{opacity:1}.class-link-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-md);margin-bottom:var(--space-md);padding:10px 14px;background:#6366f114;border:1px solid var(--border-color);border-radius:8px}.class-link-text{display:flex;flex-direction:column;gap:2px;min-width:0}.class-link-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.03em;color:var(--text-color-secondary)}.class-link-url{font-size:.9rem;font-weight:600;color:var(--text-color-primary);text-decoration:none;word-break:break-all}.class-link-url:hover{text-decoration:underline}.class-link-copy{flex-shrink:0;padding:8px 16px;font-size:.8rem;font-weight:600;color:#fff;background:var(--color-accent-primary, #6366f1);border:none;border-radius:6px;cursor:pointer;transition:all var(--transition-fast)}.class-link-copy:hover{filter:brightness(1.08)}.class-link-copy.copied{background:var(--color-accent-success, #22c55e)}.student-list-container{flex:1;min-height:150px;max-height:400px;overflow-y:auto;background:#00000026;border:1px solid var(--border-color);border-radius:12px;margin-bottom:var(--space-lg);padding:var(--space-md)}.student-card-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.student-card-tile{position:relative;display:flex;flex-direction:column;padding:12px;background:#ffffff08;border:2px solid transparent;border-radius:10px;cursor:pointer;transition:all var(--transition-fast);-webkit-user-select:none;user-select:none}.student-card-tile:hover{background:#ffffff0f;border-color:#ffffff1a}.student-card-tile.selected{background:#4ecb711a;border-color:#4ecb7166}.student-card-tile.selected:hover{background:#4ecb7126;border-color:#4ecb7180}.student-card-tile input[type=checkbox]{position:absolute;opacity:0;width:0;height:0}.student-card-tile .tile-check{position:absolute;top:8px;right:8px;width:20px;height:20px;border:2px solid var(--border-color);border-radius:50%;background:#0003;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast)}.student-card-tile .tile-check svg{width:12px;height:12px;opacity:0;color:#fff;transition:opacity var(--transition-fast)}.student-card-tile.selected .tile-check{background:var(--color-positive-feedback);border-color:var(--color-positive-feedback)}.student-card-tile.selected .tile-check svg{opacity:1}.student-card-tile .tile-name{font-size:.9rem;font-weight:600;color:var(--text-color-primary);margin-bottom:6px;padding-right:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.3}.student-card-tile .tile-pin{font-size:.8rem;font-weight:600;color:var(--text-color-secondary);font-family:SF Mono,Monaco,Inconsolata,Roboto Mono,monospace;letter-spacing:1px}.student-card-tile .tile-pin:before{content:"PIN ";font-family:inherit;font-weight:500;opacity:.6;letter-spacing:0}.student-list-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-2xl);color:var(--text-color-secondary);text-align:center;min-height:200px}.student-list-empty svg{opacity:.3;margin-bottom:var(--space-md)}.student-list-empty span{font-size:.95rem}.login-cards-actions{display:flex;gap:10px}.action-btn{display:flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:.9rem;font-weight:600;border:none;border-radius:10px;cursor:pointer;transition:all var(--transition-fast);flex:1;min-width:0}.action-btn:disabled{opacity:.4;cursor:not-allowed}.action-btn svg{flex-shrink:0}.action-primary{background:linear-gradient(135deg,#0984e3,#0770c7);color:#fff;box-shadow:0 2px 8px #0984e34d}.action-primary:hover:not(:disabled){background:linear-gradient(135deg,#0770c7,#065ba8);box-shadow:0 4px 12px #0984e366;transform:translateY(-1px)}.action-warning{background:linear-gradient(135deg,#e17055,#d35400);color:#fff;box-shadow:0 2px 8px #e170554d}.action-warning:hover:not(:disabled){background:linear-gradient(135deg,#d35400,#c44500);box-shadow:0 4px 12px #e1705566;transform:translateY(-1px)}.action-ghost{background:#ffffff14;color:var(--text-color-secondary);border:1px solid var(--border-color);flex:0 0 auto;min-width:80px}.action-ghost:hover{background:#ffffff1f;color:var(--text-color-primary)}@media(max-width:600px){.login-cards-modal{max-width:95%!important;padding:var(--space-lg)!important}.student-card-grid{grid-template-columns:repeat(2,1fr)}.student-list-container{max-height:350px}}@media(max-width:420px){.login-cards-modal{padding:var(--space-md)!important;max-height:90vh}.login-cards-header{flex-direction:column;align-items:flex-start;gap:var(--space-sm)}.login-cards-header h2{font-size:1.2rem}.student-card-grid{grid-template-columns:1fr;gap:6px}.student-list-container{max-height:300px;padding:var(--space-sm)}.student-card-tile{flex-direction:row;align-items:center;gap:12px;padding:10px 12px}.student-card-tile .tile-name{flex:1;margin-bottom:0;padding-right:0}.student-card-tile .tile-pin{order:2}.student-card-tile .tile-check{position:relative;top:auto;right:auto;order:-1}.action-btn{padding:10px 14px;font-size:.85rem}.action-btn svg{width:16px;height:16px}.login-cards-actions{flex-wrap:wrap}.action-ghost{flex:1;min-width:100%;order:3}}body.light-mode .login-cards-modal{background:#fffffffa}body.light-mode .student-list-container{background:#00000005;border-color:#00000014}body.light-mode .student-card-tile{background:#00000005}body.light-mode .student-card-tile:hover{background:#0000000a;border-color:#0000001a}body.light-mode .student-card-tile.selected{background:#4ecb7114;border-color:#4ecb7159}body.light-mode .student-card-tile .tile-check{background:#fff;border-color:#d0d0d0}body.light-mode .toolbar-btn{background:#00000008;border-color:#0000001a}body.light-mode .toolbar-btn:hover{background:#0000000f}body.light-mode .action-ghost{background:#0000000a;border-color:#0000001a}.teachers-overview-section,.classes-overview-section{margin-bottom:20px}.teachers-overview-header,.classes-overview-header{display:flex;align-items:center;gap:12px;margin-bottom:12px;height:38px}.teachers-overview-header h3,.classes-overview-header h3{margin:0;display:flex;align-items:center;gap:8px}.section-icon{font-size:1.2em}.teachers-content-row{display:flex;gap:20px;align-items:stretch}.teachers-list-section{flex:1;min-width:0}.invite-teacher-section{width:380px;min-width:380px;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch}.invite-teacher-section.stats-section{display:flex;flex-direction:column;align-items:stretch}.teachers-list-header,.classes-list-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:15px}.teachers-list-header h3,.classes-list-header h3{margin:0;font-size:1rem;font-weight:600}.teachers-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px;max-height:450px;overflow-y:auto;padding:4px}.teacher-card{display:flex;align-items:center;gap:12px;padding:14px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:all .2s ease;position:relative}.teacher-card:hover{background:#ffffff14;border-color:#ffffff26;transform:translateY(-1px)}.teacher-card.pending{border-color:#ffc94759;background:linear-gradient(135deg,#ffc94714,#ffc94708)}.teacher-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:12px;background:linear-gradient(135deg,#a78bfa40,#a78bfa26);border:1px solid rgba(167,139,250,.3);flex-shrink:0}.teacher-avatar svg{width:22px;height:22px;stroke:var(--color-accent-special)}.teacher-card.pending .teacher-avatar{background:linear-gradient(135deg,#ffc94740,#ffc94726);border-color:#ffc9474d}.teacher-card.pending .teacher-avatar svg{stroke:var(--color-accent-warning)}.teacher-info{flex:1;min-width:0;padding-right:30px}.teacher-name-row{position:relative;display:flex;align-items:center;margin-bottom:2px;padding-right:24px}.teacher-name{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.btn-edit-name{position:absolute;right:0;top:50%;transform:translateY(-50%);background:none;border:none;padding:4px;cursor:pointer;opacity:0;transition:opacity .2s ease;border-radius:4px;display:flex;align-items:center;justify-content:center}.btn-edit-name svg{width:14px;height:14px;stroke:var(--color-accent-special)}.btn-edit-name:hover{background:#8b5cf633}.teacher-card:hover .btn-edit-name,.class-card:hover .btn-edit-name{opacity:1}.teacher-email{font-size:.8rem;color:var(--text-color-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px;text-align:left}.teacher-badges{display:flex;flex-wrap:nowrap;gap:6px;justify-content:flex-start}.teacher-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 8px;border-radius:6px;font-size:.7rem;font-weight:600}.teacher-badge.class-badge{background:#00d9ff26;border:1px solid rgba(0,217,255,.25);color:var(--color-accent-info)}.teacher-badge.year-badge{background:#a78bfa26;border:1px solid rgba(167,139,250,.25);color:var(--color-accent-special)}.teacher-badge.year-badge[data-year-group="1"]{background:#f0629233;border-color:#f0629259;color:#f06292}.teacher-badge.year-badge[data-year-group="2"]{background:#4db6ac33;border-color:#4db6ac59;color:#4db6ac}.teacher-badge.year-badge[data-year-group="3"]{background:#ffb74d33;border-color:#ffb74d59;color:#ffb74d}.teacher-badge.year-badge[data-year-group="4"]{background:#7986cb33;border-color:#7986cb59;color:#7986cb}.teacher-badge.year-badge[data-year-group="5"]{background:#aed58133;border-color:#aed58159;color:#aed581}.teacher-badge.year-badge[data-year-group="6"]{background:#ce93d833;border-color:#ce93d859;color:#ce93d8}.teacher-badge.pending-badge{background:#ffc94733;border:1px solid rgba(255,201,71,.35);color:#ffc947}.teacher-badge.no-class{background:#95a5a626;border:1px solid rgba(149,165,166,.25);color:#95a5a6}.teacher-actions{flex-shrink:0}.btn-cancel-invite{display:inline-flex;align-items:center;justify-content:center;padding:6px 12px;font-size:.8rem;font-weight:600;color:var(--color-accent-error);background:#ff6b6b1a;border:1px solid rgba(255,107,107,.25);border-radius:8px;cursor:pointer;transition:all .2s}.btn-cancel-invite:hover{background:#ff6b6b33;border-color:#ff6b6b66}.btn-delete-card{position:absolute;top:8px;right:8px;display:flex;align-items:center;justify-content:center;width:28px;height:28px;padding:0;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.2);border-radius:6px;cursor:pointer;transition:all .2s;opacity:0;z-index:10}.teacher-card:hover .btn-delete-card,.class-card:hover .btn-delete-card{opacity:1}.btn-delete-card svg{width:14px;height:14px;stroke:var(--color-accent-error)}.btn-delete-card:hover{background:#ff6b6b40;border-color:#ff6b6b66;transform:scale(1.05)}.teachers-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;text-align:center}.teachers-empty-icon{font-size:3rem;margin-bottom:15px;opacity:.5}.teachers-empty-state h4{margin:0 0 8px;font-size:1rem;font-weight:600}.teachers-empty-state p{margin:0;font-size:.85rem;color:var(--text-color-secondary);max-width:300px}.pending-invites-section{margin-top:22px;padding-top:22px;border-top:1px dashed rgba(255,201,71,.28)}.pending-invites-header{margin-bottom:14px}.pending-invites-eyebrow{display:inline-block;font-size:.66rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#ffc947;opacity:.85;margin-bottom:6px}.pending-invites-title{margin:0;font-size:1rem;font-weight:600;display:flex;align-items:center;gap:8px}.pending-count-chip{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#ffc94733;border:1px solid rgba(255,201,71,.4);color:#ffc947;font-size:.72rem;font-weight:700;line-height:1}.pending-invites-sub{margin:6px 0 0;font-size:.82rem;color:var(--text-color-secondary);max-width:640px}.pending-invites-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(320px,100%),1fr));gap:12px;padding:4px}.pending-invite-card{display:flex;align-items:center;gap:12px;padding:14px;border-radius:12px;border:1px dashed rgba(255,201,71,.4);background:linear-gradient(135deg,#ffc94714,#ffc94708);transition:border-color .2s ease,background .2s ease,transform .2s ease}.pending-invite-card:hover{transform:translateY(-1px);border-color:#ffc94799}.pending-invite-card.expired{border-color:#ff6b6b66;background:linear-gradient(135deg,#ff6b6b14,#ff6b6b08)}.pending-invite-avatar{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex-shrink:0;border-radius:12px;background:linear-gradient(135deg,#ffc94740,#ffc94726);border:1px solid rgba(255,201,71,.3)}.pending-invite-avatar svg{width:20px;height:20px;stroke:#ffc947}.pending-invite-card.expired .pending-invite-avatar{background:linear-gradient(135deg,#ff6b6b38,#ff6b6b1f);border-color:#ff6b6b4d}.pending-invite-card.expired .pending-invite-avatar svg{stroke:var(--color-accent-error)}.pending-invite-info{flex:1;min-width:0}.pending-invite-name{font-weight:600;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left}.pending-invite-email{font-size:.78rem;color:var(--text-color-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;margin-top:1px}.pending-invite-status{display:flex;align-items:center;gap:7px;margin-top:6px;font-size:.76rem;font-weight:600;text-align:left}.pending-invite-status.not-signed-up{color:#ffc947}.pending-invite-status.awaiting{color:var(--color-accent-info)}.pending-invite-status.expired{color:var(--color-accent-error)}.pending-status-dot{position:relative;width:8px;height:8px;flex-shrink:0;border-radius:50%;background:currentColor}.pending-status-dot:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:currentColor;animation:pendingPulse 2s ease-out infinite}@keyframes pendingPulse{0%{transform:scale(1);opacity:.55}70%{transform:scale(2.6);opacity:0}to{transform:scale(2.6);opacity:0}}.pending-invite-meta{margin-top:5px;font-size:.72rem;color:var(--text-color-secondary);opacity:.85;text-align:left}.pending-invite-actions{display:flex;flex-direction:column;gap:6px;flex-shrink:0}.btn-resend-invite{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 12px;font-size:.78rem;font-weight:600;color:#ffc947;background:#ffc9471f;border:1px solid rgba(255,201,71,.3);border-radius:8px;cursor:pointer;transition:all .2s}.btn-resend-invite svg{width:13px;height:13px}.btn-resend-invite:hover{background:#ffc94738;border-color:#ffc94780}.btn-resend-invite:disabled{opacity:.6;cursor:default}.pending-invite-actions .btn-cancel-invite{width:100%}@media(prefers-reduced-motion:reduce){.pending-status-dot:after{animation:none}.pending-invite-card:hover{transform:none}}body.light-mode .pending-invites-section{border-top-color:#b482144d}body.light-mode .pending-invites-eyebrow{color:#92620a;opacity:1}body.light-mode .pending-count-chip{background:#b482141f;border-color:#b482144d;color:#92620a}body.light-mode .pending-invite-card{background:linear-gradient(135deg,#ffc94724,#ffc9470f);border-color:#b4821459}body.light-mode .pending-invite-card:hover{border-color:#b482148c}body.light-mode .pending-invite-avatar{background:linear-gradient(135deg,#b482142e,#b482141a);border-color:#b482144d}body.light-mode .pending-invite-avatar svg{stroke:#92620a}body.light-mode .pending-invite-status.not-signed-up{color:#92620a}body.light-mode .pending-invite-status.awaiting{color:#0e7490}body.light-mode .pending-invite-status.expired{color:#b3261e}body.light-mode .pending-invite-card.expired .pending-invite-avatar svg{stroke:#b3261e}body.light-mode .btn-resend-invite{color:#92620a;background:#b482141a;border-color:#b482144d}body.light-mode .btn-resend-invite:hover{background:#b482142e;border-color:#b4821480}body.light-mode .pending-invite-card.expired{background:linear-gradient(135deg,#dc354514,#dc354508);border-color:#dc354566}.invite-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px;width:100%;box-sizing:border-box}.invite-card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#28a74533,#28a7451a);border:1px solid rgba(40,167,69,.25);margin:0 auto 16px}.invite-card-icon svg{width:28px;height:28px;stroke:var(--color-accent-success)}.invite-card h4{margin:0 0 8px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-color-secondary);width:100%;text-align:center}.invite-card-description{margin:0 0 20px;font-size:.95rem;color:var(--text-color-primary);line-height:1.5;width:100%;text-align:center}.invite-form{width:100%;display:flex;flex-direction:column;gap:12px;align-items:center}.invite-input-wrapper{position:relative;width:100%;max-width:350px}.invite-input-icon{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:18px;height:18px;stroke:var(--text-color-secondary);pointer-events:none;opacity:.7;display:flex;align-items:center;justify-content:center}.invite-email-input{width:100%;padding:14px 14px 14px 44px;font-size:.95rem;font-family:inherit;color:var(--text-color-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:10px;outline:none;transition:all .2s;box-sizing:border-box}.invite-email-input:focus{border-color:#28a74580;background:#ffffff14;box-shadow:0 0 0 3px #28a74526}.invite-email-input::placeholder{color:var(--text-color-secondary);opacity:.7}.btn-invite{display:inline-flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:14px 24px;font-size:.95rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-accent-success) 0%,#1e8449 100%);border:none;border-radius:10px;cursor:pointer;transition:all .2s}.btn-invite:hover{transform:translateY(-1px);box-shadow:0 4px 12px #28a74559}.btn-invite:active{transform:translateY(0)}.btn-invite:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-invite svg{width:18px;height:18px}.invite-card-note{margin:20px 0 0;font-size:.8rem;color:var(--text-color-secondary);opacity:.7;text-align:center;width:100%;line-height:1.4}.classes-filter-group{display:inline-flex;gap:4px;padding:4px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:10px}.classes-filter-btn{padding:6px 14px;font-size:.8rem;font-weight:600;font-family:inherit;color:var(--text-color-secondary);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all .2s}.classes-filter-btn:hover{color:var(--text-color-primary);background:#ffffff0f}.classes-filter-btn.active{color:var(--text-color-primary);background:#ffffff1a;box-shadow:0 2px 4px #0000001a}.classes-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;max-height:none;overflow-y:visible;padding:4px}.classes-grid.needs-scroll{max-height:calc(var(--class-card-row-height, 195px) * 2 + 8px);overflow-y:auto}.class-card{display:flex;flex-direction:column;padding:8px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:8px;transition:all .2s ease;cursor:pointer;position:relative}.class-card:hover{background:#ffffff14;border-color:#ffffff26;transform:translateY(-2px)}.class-card.unassigned{border-color:#ffc94740;background:linear-gradient(135deg,rgba(255,201,71,.05) 0%,transparent 100%)}.class-card[data-year-group="1"]{background:#f0629217}.class-card[data-year-group="2"]{background:#4db6ac17}.class-card[data-year-group="3"]{background:#ffb74d17}.class-card[data-year-group="4"]{background:#7986cb17}.class-card[data-year-group="5"]{background:#aed58117}.class-card[data-year-group="6"]{background:#ce93d817}.class-card[data-year-group="1"]:hover{background:#f0629229}.class-card[data-year-group="2"]:hover{background:#4db6ac29}.class-card[data-year-group="3"]:hover{background:#ffb74d29}.class-card[data-year-group="4"]:hover{background:#7986cb29}.class-card[data-year-group="5"]:hover{background:#aed58129}.class-card[data-year-group="6"]:hover{background:#ce93d829}.class-card-header{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:6px;width:100%;padding-top:16px}.class-card-info{display:flex;align-items:flex-start;justify-content:center;gap:10px;width:100%;min-width:0;min-height:22px;padding-right:30px}.class-card-name-row{display:flex;align-items:center;justify-content:center;gap:8px;width:100%}.class-card-name{font-weight:700;font-size:.9rem;text-align:center;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.class-card-name-row .btn-edit-name{position:static;transform:none}.class-card-teachers-grid{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;width:100%;text-align:left}.class-card-teacher-item{display:flex;align-items:center;gap:5px;min-width:0}.class-card-teachers-grid .class-card-teacher-item:only-child{grid-column:1 / -1;justify-content:center}.class-card-teacher-item svg{width:14px;height:14px;opacity:.6;flex-shrink:0}.class-card-teacher-item span{font-size:.78rem;font-weight:600;color:var(--text-color-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.class-card-teacher{display:flex;align-items:flex-start;gap:8px;min-width:0;text-align:left}.class-card-teacher>svg{width:16px;height:16px;opacity:.7;flex-shrink:0;margin-top:2px}.class-card-teacher-item.no-teacher span{color:var(--color-accent-warning)}.class-card-teacher-item.no-teacher svg{opacity:.4}.class-year-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 8px;border-radius:6px;font-size:.7rem;font-weight:700;flex-shrink:0;z-index:0}.class-year-badge.assigned{background:linear-gradient(135deg,#a78bfa33,#a78bfa1a);border:1px solid rgba(167,139,250,.35);color:var(--color-accent-special)}.class-year-badge.unassigned{background:#95a5a626;border:1px solid rgba(149,165,166,.25);color:#95a5a6;font-size:.65rem;font-weight:500}.class-card-stats{display:flex;justify-content:center;align-items:center;margin-bottom:6px;padding:6px 8px;background:#00000026;border-radius:6px;width:100%;box-sizing:border-box;position:relative}.class-card-stats .class-card-name{margin:0}.class-card-stats .class-card-name-row{position:static}.class-card-stats .class-card-name-row .btn-edit-name{position:absolute;right:12px;top:50%;transform:translateY(-50%)}.class-stat{display:flex;flex-direction:column;gap:2px}.class-stat-value{font-size:1.1rem;font-weight:700;color:var(--text-color-primary)}.class-stat-label{font-size:.7rem;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.05em}.class-card-footer{display:flex;flex-direction:column;gap:4px;padding-top:6px;border-top:1px solid rgba(255,255,255,.06)}.year-group-selector-wrapper{display:flex;flex-direction:column;align-items:center;gap:4px}.year-group-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color-secondary);opacity:.8;text-align:center}.year-group-selector{display:flex;gap:4px;justify-content:center}.year-btn{display:inline-flex;align-items:center;justify-content:center;width:24px;height:24px;font-size:.7rem;font-weight:600;font-family:inherit;color:var(--text-color-secondary);background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:6px;cursor:pointer;transition:all .15s}.year-btn:hover{color:var(--text-color-primary);background:#ffffff1a;border-color:#fff3}.year-btn.active{color:#fff}.year-btn.active[data-year="1"]{background:#f06292;border-color:#f06292}.year-btn.active[data-year="2"]{background:#4db6ac;border-color:#4db6ac}.year-btn.active[data-year="3"]{background:#ffb74d;border-color:#ffb74d;color:#4a3000}.year-btn.active[data-year="4"]{background:#7986cb;border-color:#7986cb}.year-btn.active[data-year="5"]{background:#aed581;border-color:#aed581;color:#2a4a00}.year-btn.active[data-year="6"]{background:#ce93d8;border-color:#ce93d8}.btn-assign-teacher{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 12px;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--color-accent-warning);background:#ffc9471a;border:1px solid rgba(255,201,71,.3);border-radius:6px;cursor:pointer;transition:all .2s;width:100%}.btn-assign-teacher:hover{background:#ffc94733;border-color:#ffc94780}.btn-assign-teacher.has-teacher{color:var(--color-accent-info);background:#00d9ff1a;border-color:#00d9ff40}.btn-assign-teacher.has-teacher:hover{background:#00d9ff33;border-color:#00d9ff66}.btn-assign-teacher svg{width:14px;height:14px}.btn-edit-class-login{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 12px;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--color-accent-info);background:#00d9ff1a;border:1px solid rgba(0,217,255,.25);border-radius:6px;cursor:pointer;transition:all .2s;width:100%}.btn-edit-class-login:hover{background:#00d9ff33;border-color:#00d9ff66}.btn-edit-class-login svg{width:14px;height:14px}.btn-view-class{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 12px;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--color-accent-info);background:#00d9ff1a;border:1px solid rgba(0,217,255,.25);border-radius:6px;cursor:pointer;transition:all .2s;width:100%;margin-top:8px}.btn-view-class:hover{background:#00d9ff33;border-color:#00d9ff66}.btn-view-class svg{width:14px;height:14px}.btn-reset-password{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:6px 12px;font-size:.75rem;font-weight:600;font-family:inherit;color:var(--color-accent-info);background:#00d9ff1a;border:1px solid rgba(0,217,255,.25);border-radius:6px;cursor:pointer;transition:all .2s;margin-top:8px}.btn-reset-password:hover{background:#00d9ff33;border-color:#00d9ff66}.btn-reset-password:disabled{opacity:.5;cursor:not-allowed}.btn-reset-password svg{width:14px;height:14px;flex-shrink:0}.admin-view-banner{display:none!important;align-items:center;background:linear-gradient(135deg,#1e1b4b,#312e81,#4c1d95);color:#fff;font-family:Nunito Sans,sans-serif;border-radius:12px;overflow:hidden;position:relative}.admin-view-banner:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(90deg,transparent 0%,rgba(139,92,246,.15) 25%,rgba(139,92,246,.25) 50%,rgba(139,92,246,.15) 75%,transparent 100%);animation:adminBannerShimmer 3s ease-in-out infinite}@keyframes adminBannerShimmer{0%,to{transform:translate(-100%)}50%{transform:translate(100%)}}.admin-view-banner.active{display:flex!important}.admin-view-banner-inner{display:flex;align-items:center;gap:10px;padding:6px 14px;position:relative;z-index:1}.admin-view-indicator{position:relative;display:flex;align-items:center;justify-content:center;width:24px;height:24px;background:#8b5cf64d;border-radius:50%;flex-shrink:0}.admin-view-indicator svg{width:12px;height:12px;color:#c4b5fd;position:relative;z-index:1}.admin-view-pulse{position:absolute;top:0;right:0;bottom:0;left:0;border-radius:50%;background:#8b5cf666;animation:adminPulse 2s ease-in-out infinite}@keyframes adminPulse{0%,to{transform:scale(1);opacity:.6}50%{transform:scale(1.3);opacity:0}}.admin-view-content{display:flex;align-items:center;gap:8px}.admin-view-label{font-size:.7rem;font-weight:600;color:#ffffffb3;text-transform:uppercase;letter-spacing:.05em}.admin-view-class-name{padding:3px 10px;background:linear-gradient(135deg,#8b5cf666,#a78bfa4d);border:1px solid rgba(167,139,250,.4);border-radius:20px;font-weight:700;font-size:.8rem;color:#fff;box-shadow:0 2px 8px #8b5cf633}.btn-exit-admin-view{display:inline-flex;align-items:center;justify-content:center;gap:4px;padding:4px 10px;font-size:.7rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,#ef4444e6,#dc2626e6);border:1px solid rgba(248,113,113,.3);border-radius:6px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #ef444440}.btn-exit-admin-view svg{width:12px;height:12px;flex-shrink:0}.btn-exit-admin-view:hover{background:linear-gradient(135deg,#f87171,#ef4444);transform:translateY(-1px);box-shadow:0 4px 12px #ef444459}.btn-exit-admin-view:active{transform:translateY(0)}@media(max-width:600px){.mtc-header{flex-wrap:wrap}.admin-view-banner.active{order:10;width:100%;border-radius:8px}}.classes-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:50px 20px;text-align:center}.classes-empty-icon{font-size:3.5rem;margin-bottom:16px;opacity:.4}.classes-empty-state h4{margin:0 0 8px;font-size:1.1rem;font-weight:600}.classes-empty-state p{margin:0;font-size:.9rem;color:var(--text-color-secondary);max-width:350px}.classes-content-row{display:flex;gap:20px;align-items:stretch}.classes-content-row .classes-list-section{flex:1;min-width:0}.create-class-section{width:380px;min-width:380px;flex-shrink:0;display:flex;flex-direction:column;align-items:stretch}.create-class-card{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px 20px;width:100%;box-sizing:border-box}.create-class-card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:16px;background:linear-gradient(135deg,#00d9ff33,#00d9ff1a);border:1px solid rgba(0,217,255,.25);margin:0 auto 16px}.create-class-card-icon svg{width:28px;height:28px;stroke:var(--color-accent-info)}.create-class-card h4{margin:0 0 8px;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--text-color-secondary);width:100%;text-align:center}.create-class-description{margin:0 0 20px;font-size:.95rem;color:var(--text-color-primary);line-height:1.5;width:100%;text-align:center}.create-class-form{width:100%;display:flex;flex-direction:column;gap:14px}.create-class-input-group{display:flex;flex-direction:column;gap:4px;text-align:center;align-items:center}.create-class-input-group label{font-size:.8rem;font-weight:600;color:var(--text-color-secondary);text-align:center}.create-class-input{width:100%;padding:10px 12px;font-size:.9rem;font-family:inherit;color:var(--text-color-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:8px;outline:none;transition:all .2s;box-sizing:border-box;text-align:center}.create-class-input:focus{border-color:#00d9ff80;background:#ffffff14;box-shadow:0 0 0 3px #00d9ff26}.create-class-input::placeholder{color:var(--text-color-secondary);opacity:.6}.input-hint{font-size:.7rem;color:var(--text-color-secondary);opacity:.7}.create-class-select{width:100%;padding:10px 12px;font-size:.9rem;font-family:inherit;color:var(--text-color-primary);background:#ffffff0f;border:1px solid rgba(255,255,255,.15);border-radius:8px;outline:none;cursor:pointer;transition:all .2s;box-sizing:border-box}.create-class-select:focus{border-color:#00d9ff80;background:#ffffff14}.create-class-select option{background:var(--bg-color);color:var(--text-color-primary)}.btn-create-class{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;font-size:.9rem;font-weight:600;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--color-accent-info) 0%,#0077b3 100%);border:none;border-radius:10px;cursor:pointer;transition:all .2s;margin-top:4px}.btn-create-class:hover{transform:translateY(-1px);box-shadow:0 4px 12px #00d9ff59}.btn-create-class:active{transform:translateY(0)}.btn-create-class:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}.btn-create-class svg{width:18px;height:18px}.create-class-note{margin:16px 0 0;font-size:.75rem;color:var(--text-color-secondary);opacity:.7}.class-teacher-select{padding:6px 10px;font-size:.8rem;font-family:inherit;color:var(--text-color-primary);background:#ffffff14;border:1px solid rgba(255,201,71,.4);border-radius:6px;cursor:pointer;max-width:140px}.class-teacher-select:focus{border-color:#ffc94799;outline:none}.class-card.no-teacher{border-color:#ffc9474d;background:linear-gradient(135deg,rgba(255,201,71,.06) 0%,transparent 100%)}.class-card.no-teacher .class-card-teacher{color:var(--color-accent-warning)}body.light-mode .teacher-card{background:#00000005;border-color:#00000014}body.light-mode .teacher-card:hover{background:#0000000a;border-color:#0000001f}body.light-mode .teacher-card.pending{background:linear-gradient(135deg,#ffc9471f,#ffc9470d);border-color:#ffc94766}body.light-mode .teacher-avatar{background:linear-gradient(135deg,#a78bfa33,#a78bfa1a);border-color:#a78bfa59}body.light-mode .invite-email-input{background:#00000008;border-color:#0000001f;color:var(--text-color-primary)}body.light-mode .invite-email-input:focus{background:#fff;border-color:#28a74580}body.light-mode .classes-filter-group{background:#00000008;border-color:#00000014}body.light-mode .classes-filter-btn:hover{background:#0000000d}body.light-mode .classes-filter-btn.active{background:#fff;box-shadow:0 2px 4px #00000014}body.light-mode .class-card{background:#00000005;border-color:#00000014}body.light-mode .class-card:hover{background:#0000000a;border-color:#0000001f}body.light-mode .class-card-stats{background:#00000008}body.light-mode .year-btn{background:#00000008;border-color:#0000001a}body.light-mode .year-btn:hover{background:#0000000f}body.light-mode .create-class-input,body.light-mode .create-class-select{background:#00000008;border-color:#0000001f}body.light-mode .create-class-input:focus,body.light-mode .create-class-select:focus{background:#fff;border-color:#0793d180}body.light-mode .class-teacher-select{background:#00000008;border-color:#ffc94780}body.light-mode .class-card.no-teacher{background:linear-gradient(135deg,rgba(255,201,71,.1) 0%,transparent 100%);border-color:#ffc94766}body.light-mode .class-card[data-year-group="1"]{background:#f062921a}body.light-mode .class-card[data-year-group="2"]{background:#4db6ac1a}body.light-mode .class-card[data-year-group="3"]{background:#ffb74d1a}body.light-mode .class-card[data-year-group="4"]{background:#7986cb1a}body.light-mode .class-card[data-year-group="5"]{background:#aed5811a}body.light-mode .class-card[data-year-group="6"]{background:#ce93d81a}body.light-mode .class-card[data-year-group="1"]:hover{background:#f0629229}body.light-mode .class-card[data-year-group="2"]:hover{background:#4db6ac29}body.light-mode .class-card[data-year-group="3"]:hover{background:#ffb74d29}body.light-mode .class-card[data-year-group="4"]:hover{background:#7986cb29}body.light-mode .class-card[data-year-group="5"]:hover{background:#aed58129}body.light-mode .class-card[data-year-group="6"]:hover{background:#ce93d829}body.light-mode .btn-assign-teacher{color:#92620a;background:#b482141a;border-color:#b482144d}body.light-mode .btn-assign-teacher:hover{background:#b482142e;border-color:#b4821473}body.light-mode .btn-assign-teacher.has-teacher,body.light-mode .btn-edit-class-login,body.light-mode .btn-view-class,body.light-mode .btn-reset-password{color:#1e6b87;background:#1e6b8712;border-color:#1e6b8738}body.light-mode .btn-assign-teacher.has-teacher:hover,body.light-mode .btn-edit-class-login:hover,body.light-mode .btn-view-class:hover,body.light-mode .btn-reset-password:hover{background:#1e6b8724;border-color:#1e6b8766}body.light-mode .pupil-recent-results{background:var(--container-bg);border:1px solid rgba(148,163,184,.2)}body.light-mode .recent-result-score-badge.score-good{background:#b4821426;color:#92620a}body.light-mode .recent-result-score-badge.score-excellent{color:#16a34a}body.light-mode .pupil-leaderboard-item.current-user{border-color:#0793d1;background:#0793d114;box-shadow:0 0 12px #0793d126}body.light-mode .pupil-leaderboard-rank{background:#0000000f}body.light-mode .teacher-badge.class-badge{background:#0793d11a;border-color:#0793d140;color:#0e7490}body.light-mode .teacher-badge.pending-badge{background:#b482141f;border-color:#b482144d;color:#92620a}body.light-mode .struggling-pupil-card{background:#00000005;border-color:#94a3b833}body.light-mode .struggling-pupil-card:hover{background:#0000000a}body.light-mode .struggling-score.critical{background:#dc26261f;color:#dc2626}body.light-mode .struggling-score.warning{background:#d977061f;color:#b45309}body.light-mode .struggling-score.caution{background:#b482141f;color:#92620a}body.light-mode .disengaged-pupil-card{background:#00000005;border-color:#94a3b833}body.light-mode .disengaged-pupil-card:hover{background:#0000000a}body.light-mode .disengaged-days{background:#64748b26;color:#475569}body.light-mode .disengaged-days.long-gap{background:#dc26261f;color:#dc2626}body.light-mode .quick-win-pupil-card{background:#00000005;border-color:#0793d133}body.light-mode .quick-win-pupil-card:hover{background:#0000000a}body.light-mode .quick-win-score{background:#0793d11f;color:#0e7490}body.light-mode .year-btn.active{color:#fff;background:linear-gradient(135deg,#7c3aed,#6d28d9);border-color:#7c3aed}body.light-mode .rank-color-1{color:#b8860b}body.light-mode .rank-color-2{color:#2563eb}body.light-mode .rank-color-3{color:#16a34a}body.light-mode .leaderboard-view li.rank-1{border-color:#b8860b;background:linear-gradient(90deg,rgba(184,134,11,.08) 0%,transparent 100%)}body.light-mode .leaderboard-view li.rank-1:before{background:#b8860b}body.light-mode .leaderboard-view li.rank-2{border-color:#2563eb;background:linear-gradient(90deg,rgba(37,99,235,.06) 0%,transparent 100%)}body.light-mode .leaderboard-view li.rank-2:before{background:#2563eb}body.light-mode .leaderboard-rank{color:#1e293b;text-shadow:none}@media(max-width:900px){.teachers-content-row,.classes-content-row{flex-direction:column}.invite-teacher-section,.create-class-section{width:100%;min-width:unset}.teachers-grid{grid-template-columns:1fr}}@media(max-width:600px){.teachers-list-header,.classes-list-header{flex-direction:column;align-items:flex-start;gap:12px}.class-card-footer{flex-direction:column;align-items:stretch;gap:6px}.year-group-selector,.btn-view-class{justify-content:center}}#choiceOptions{display:flex;flex-direction:column;gap:var(--space-sm);align-items:center}.choice-option-btn{display:flex;flex-direction:column;align-items:center;text-align:center;padding:var(--space-md) var(--space-xl);width:90%;max-width:15.625rem}.choice-option-btn .choice-label{font-weight:700;font-size:var(--font-size-base)}.choice-option-btn .choice-description{font-size:.8em;opacity:.85;margin-top:.25em}.assign-teacher-item{display:flex;align-items:center;gap:12px;padding:12px 15px;margin-bottom:8px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:10px;cursor:pointer;transition:all .2s ease}.assign-teacher-item:hover{background:#6366f126;border-color:#6366f166;transform:translateY(-1px)}.assign-teacher-item:active{transform:translateY(0)}.assign-teacher-item.current-teacher{background:#6366f11a;border-color:#6366f14d}.assign-teacher-item.current-teacher:after{content:"Current";font-size:.75rem;padding:3px 8px;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:12px;margin-left:auto}.assign-teacher-item.assigned-teacher{background:#10b98114;border-color:#10b98140;cursor:default}.assign-teacher-item.assigned-teacher:hover{background:#10b9811f;border-color:#10b98159;transform:none}.assigned-badge{display:inline-block;font-size:.7rem;font-weight:600;padding:2px 7px;background:linear-gradient(135deg,#10b981,#059669);color:#fff;border-radius:10px;margin-left:6px;vertical-align:middle}.btn-remove-teacher-from-class{background:none;border:1px solid rgba(239,68,68,.3);border-radius:8px;color:#ef4444;cursor:pointer;padding:6px;margin-left:auto;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.btn-remove-teacher-from-class:hover{background:#ef444426;border-color:#ef444480}.teacher-other-classes{display:inline;font-size:.75rem;color:#a78bfacc;font-style:italic}.assign-teacher-avatar{width:40px;height:40px;border-radius:50%;background:linear-gradient(135deg,#8b5cf633,#8b5cf61a);border:1px solid rgba(139,92,246,.3);display:flex;align-items:center;justify-content:center;flex-shrink:0}.assign-teacher-avatar svg{width:22px;height:22px;stroke:var(--color-accent-special)}.assign-teacher-info{flex:1;min-width:0}.assign-teacher-name{font-weight:600;font-size:.95rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-teacher-email{font-size:.8rem;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.assign-teacher-divider{display:flex;align-items:center;gap:10px;margin:15px 0;opacity:.5;font-size:.85rem}.assign-teacher-divider:before,.assign-teacher-divider:after{content:"";flex:1;height:1px;background:currentColor}.assign-teacher-remove{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 15px;background:#ff6b6b1a;border:1px solid rgba(255,107,107,.3);border-radius:10px;cursor:pointer;transition:all .2s ease;color:#ff6b6b}.assign-teacher-remove:hover{background:#ff6b6b33;border-color:#ff6b6b80}.assign-teacher-empty{text-align:center;padding:30px 20px;opacity:.7}.assign-teacher-empty svg{width:48px;height:48px;margin-bottom:10px;opacity:.5}body.no-class-mode .container{background:none;border:none;box-shadow:none;backdrop-filter:none;-webkit-backdrop-filter:none}body.no-class-mode .container:before,body.no-class-mode .container:after{display:none}.no-class-welcome{grid-column:1 / -1;display:flex;align-items:center;justify-content:center;min-height:70vh;padding:var(--space-xl)}.no-class-card{position:relative;max-width:640px;width:100%;text-align:center;padding:64px 56px 56px;background:var(--container-bg);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:var(--glass-border);border-radius:24px;box-shadow:var(--glass-shadow),0 0 80px #a78bfa0f;overflow:hidden;animation:noClassFadeUp .6s ease-out both}.no-class-card:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--color-accent-primary),var(--color-accent-special),var(--color-accent-info))}.no-class-icon{display:inline-flex;align-items:center;justify-content:center;width:88px;height:88px;margin-bottom:28px;border-radius:50%;background:linear-gradient(135deg,#a78bfa26,#00d9ff1a);border:1px solid rgba(167,139,250,.2);animation:noClassPulse 3s ease-in-out infinite}.no-class-icon svg{width:38px;height:38px;stroke:var(--color-accent-special);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.no-class-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--text-color-primary);margin-bottom:16px;letter-spacing:-.02em}.no-class-subtitle{font-size:var(--font-size-sm);color:var(--text-color-secondary);margin-bottom:10px;line-height:1.6}.no-class-hint{font-size:var(--font-size-xs);color:var(--text-color-secondary);opacity:.7;margin-bottom:40px;line-height:1.6}.no-class-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.no-class-btn{display:inline-flex;align-items:center;gap:8px;padding:12px 24px;border:none;border-radius:10px;font-size:var(--font-size-sm);font-weight:600;font-family:inherit;cursor:pointer;transition:all var(--transition-base)}.no-class-btn svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0}.no-class-btn-primary{background:linear-gradient(135deg,var(--color-accent-special),#8b6fdf);color:#fff;box-shadow:0 4px 16px #a78bfa4d}.no-class-btn-primary:hover{transform:translateY(-1px);box-shadow:0 6px 24px #a78bfa66}.no-class-btn-secondary{background:#ffffff0f;color:var(--text-color-secondary);border:1px solid var(--border-color)}.no-class-btn-secondary:hover{background:#ffffff1a;color:var(--text-color-primary)}.no-class-waiting{display:flex;align-items:center;justify-content:center;gap:6px;margin-top:24px;font-size:var(--font-size-xs);color:var(--text-color-secondary);opacity:.6}.no-class-waiting-dot{width:4px;height:4px;border-radius:50%;background:var(--color-accent-info);animation:noClassDotPulse 1.4s ease-in-out infinite}.no-class-waiting-dot:nth-child(2){animation-delay:.2s}.no-class-waiting-dot:nth-child(3){animation-delay:.4s}body.light-mode .no-class-icon{background:linear-gradient(135deg,#a78bfa1a,#00d9ff12)}body.light-mode .no-class-btn-primary{box-shadow:0 4px 16px #a78bfa33}body.light-mode .no-class-btn-secondary{background:#0000000a}body.light-mode .no-class-btn-secondary:hover{background:#00000012}@keyframes noClassFadeUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes noClassPulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes noClassDotPulse{0%,80%,to{opacity:.3;transform:scale(.8)}40%{opacity:1;transform:scale(1.2)}}.school-empty-state{text-align:center;padding:36px 20px 32px;background:var(--seat-bg);border-radius:12px;margin-top:20px}.school-empty-state .empty-state-illustration{width:100px;margin:0 auto 16px}.school-empty-state .empty-state-illustration svg{width:100%;height:auto}.school-empty-state .es-bar{transform-origin:bottom center;animation:esBarGrow .8s cubic-bezier(.34,1.56,.64,1) both}.school-empty-state .es-bar-1{animation-delay:.1s}.school-empty-state .es-bar-2{animation-delay:.25s}.school-empty-state .es-bar-3{animation-delay:.4s}.school-empty-state .es-bar-4{animation-delay:.55s}@keyframes esBarGrow{0%{transform:scaleY(0);opacity:0}to{transform:scaleY(1);opacity:1}}.school-empty-state h3{margin:0 0 8px;font-size:1.1rem;color:var(--text-color-primary);border-bottom:none;padding-bottom:0}.school-empty-state p{margin:0 auto 18px;font-size:.85rem;color:var(--text-color-secondary);max-width:380px;line-height:1.5}.school-empty-state .empty-state-action{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;background:linear-gradient(135deg,#0793d133,#0793d11a);border:1px solid rgba(7,147,209,.3);border-radius:8px;color:#5dade2;font-size:.8rem;font-weight:600;cursor:pointer;transition:all .2s ease}.school-empty-state .empty-state-action:hover{background:linear-gradient(135deg,#0793d14d,#0793d126);border-color:#0793d180;transform:translateY(-1px)}.stats-section.primary{background:linear-gradient(135deg,#0793d11a,#2980b926);border:1px solid rgba(7,147,209,.3)}.stats-section.primary h3{color:var(--text-color-primary);font-size:1.1rem}.stats-section.secondary{padding:12px 16px;margin-bottom:15px}.stats-section.secondary h3{font-size:1.1rem;margin-bottom:10px}.score-bands-header{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:12px}.score-bands-header h3{margin:0}.stats-section.secondary>div:first-child{display:flex!important;justify-content:space-between;align-items:baseline;flex-wrap:nowrap;gap:8px}.stats-section.secondary>div:first-child h3{margin-bottom:0!important;flex-shrink:0}.stats-section.secondary>div:first-child .badge{flex-shrink:0;white-space:nowrap;font-size:.85rem!important;font-weight:700!important;padding:5px 12px!important;text-shadow:0 1px 2px rgba(0,0,0,.3)}#schoolPracticeDisengagedPupils{max-height:200px;overflow-y:auto}.school-class-students-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;padding:10px;background:#ffffff05;border-radius:8px;max-height:400px;overflow-y:auto}.school-class-student-card{height:5rem;display:flex;flex-direction:column;align-items:center;justify-content:center;border:2px solid var(--border-color, rgba(255, 255, 255, .1));border-radius:var(--space-md, 10px);cursor:pointer;transition:all .2s ease;background:var(--seat-bg, linear-gradient(135deg, rgba(37, 37, 66, .8) 0%, rgba(37, 37, 66, .6) 100%));position:relative;-webkit-user-select:none;user-select:none;padding:8px}.school-class-student-card:hover{transform:translateY(-4px);box-shadow:0 8px 16px #0000004d;border-color:var(--color-accent-primary, #f00842)}.school-class-student-card .student-card-name{font-weight:600;font-size:.95rem;text-align:center;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.school-class-student-card .student-card-level{font-size:.75rem;opacity:.7}.school-class-view-tab{padding:8px 16px;background:transparent;border:1px solid rgba(255,255,255,.2);border-radius:6px;color:inherit;cursor:pointer;font-size:.9rem;transition:all .2s ease}.school-class-view-tab:hover{background:#ffffff1a}.school-class-view-tab.active{background:var(--color-accent-primary, #f00842);border-color:var(--color-accent-primary, #f00842)}.class-selector-view-btn{padding:4px 10px;font-size:.75rem;background:#ffffff1a;border:1px solid rgba(255,255,255,.2);border-radius:4px;color:inherit;cursor:pointer;transition:all .2s ease;white-space:nowrap}.class-selector-view-btn:hover{background:var(--color-accent-primary, #f00842);border-color:var(--color-accent-primary, #f00842)}@media(max-width:600px){.school-class-students-grid{grid-template-columns:repeat(auto-fill,minmax(100px,1fr));gap:8px}.school-class-student-card{height:4rem;padding:6px}.school-class-student-card .student-card-name{font-size:.85rem}}#schoolMTCProgress{margin-top:20px}.mtc-progress-section{background:linear-gradient(135deg,#667eea1a,#764ba21a);border:1px solid rgba(102,126,234,.2);padding:10px 14px}.mtc-progress-header{display:flex;align-items:center;margin-bottom:0}.mtc-progress-header h3{margin:0}.table-difficulty-ranking,.table-speed-ranking{padding:10px 0}.difficulty-bars{display:flex;flex-direction:column;gap:8px}.difficulty-item{display:flex;align-items:center;gap:10px;width:100%}.difficulty-table{min-width:35px;font-weight:600;color:var(--text-color-primary)}.difficulty-bar-container{flex:1;height:12px;background:var(--border-color);border-radius:6px;overflow:hidden}.difficulty-bar{height:100%;border-radius:6px;transition:width .3s ease}.difficulty-bar.strong{background:linear-gradient(90deg,#2ecc71,#27ae60)}.difficulty-bar.ok{background:linear-gradient(90deg,#f1c40f,#f39c12)}.difficulty-bar.struggling{background:linear-gradient(90deg,#e74c3c,#c0392b)}.difficulty-percent{min-width:40px;text-align:right;font-weight:600;font-size:.85rem;color:var(--text-color-secondary)}.difficulty-change{min-width:35px;text-align:right;font-size:.75rem;font-weight:600}.difficulty-change.positive{color:#2ecc71}.difficulty-change.negative{color:#e74c3c}.difficulty-rank{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:#e74c3c;color:#fff;font-size:.7rem;font-weight:700}.difficulty-summary{margin-top:12px;padding:10px 12px;background:#e74c3c26;border-left:3px solid #e74c3c;border-radius:0 6px 6px 0;font-size:.9rem;font-weight:500;color:var(--text-color-primary)}.difficulty-summary strong{font-weight:700;color:#e74c3c}.table-progress-summary{display:flex;align-items:center;gap:6px;margin-bottom:12px;font-size:.8rem;font-weight:600}.progress-summary-improved{color:#2ecc71}.progress-summary-stable{color:#95a5a6}.progress-summary-declined{color:#e74c3c}.progress-summary-sep{color:var(--text-color-secondary);opacity:.5}.difficulty-journey{min-width:85px;font-size:.8rem;color:var(--text-color-secondary)}.difficulty-item.clickable{cursor:pointer;border-radius:6px;padding:4px 8px;margin:-4px -8px;transition:background-color .2s ease,transform .15s ease}.difficulty-item.clickable:hover{background:#ffffff14;transform:translate(4px)}.difficulty-item.clickable:active{transform:translate(2px)}.class-level-recommendations{padding:10px 0}.recommendations-list{display:flex;flex-direction:column;gap:8px}.recommendation-item{display:flex;flex-wrap:wrap;align-items:center;gap:8px;padding:10px 12px;border-radius:8px;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.recommendation-item:hover{transform:translate(4px);box-shadow:0 2px 8px #0000001a}.recommendation-item.recommend-up{background:linear-gradient(135deg,#2ecc711a,#27ae6026);border-left:3px solid #2ecc71}.recommendation-item.recommend-down{background:linear-gradient(135deg,#e74c3c1a,#c0392b26);border-left:3px solid #e74c3c}.rec-icon{font-size:1.1rem;font-weight:700}.recommend-up .rec-icon{color:#2ecc71}.recommend-down .rec-icon{color:#e74c3c}.rec-name{font-weight:600;color:var(--text-color-primary);flex:1}.rec-action{font-size:.85rem;font-weight:500;color:var(--text-color-primary)}.rec-reason{width:100%;font-size:.75rem;color:var(--text-color-secondary);margin-left:24px}.class-students-list{max-height:350px;overflow-y:auto}.student-stats-header{display:grid;grid-template-columns:2fr .7fr .7fr 1.2fr 1.2fr;gap:10px;padding:10px 12px;background:var(--bg-color);border-radius:8px 8px 0 0;font-weight:600;font-size:.8rem;color:var(--text-color-secondary);text-transform:uppercase;letter-spacing:.5px;position:-webkit-sticky;position:sticky;top:0}.student-stats-row{display:grid;grid-template-columns:2fr .7fr .7fr 1.2fr 1.2fr;gap:10px;padding:12px;border-bottom:1px solid var(--border-color);font-size:.9rem;cursor:pointer;transition:background .2s ease}.student-stats-row:hover{filter:brightness(1.1)}.student-stats-row:last-child{border-bottom:none}.student-stats-row.strong{background:linear-gradient(90deg,#2ecc7126,#2ecc710d);border-left:4px solid #2ecc71}.student-stats-row.ok{background:linear-gradient(90deg,#f1c40f26,#f1c40f0d);border-left:4px solid #f1c40f}.student-stats-row.struggling{background:linear-gradient(90deg,#e74c3c26,#e74c3c0d);border-left:4px solid #e74c3c}.student-stats-row.no-data{background:transparent;border-left:4px solid var(--border-color);opacity:.7}.col-name{font-weight:600}.col-tests,.col-avg{text-align:center}.col-strong{color:#2ecc71;font-size:.85rem}.col-struggling{color:#e74c3c;font-size:.85rem}.school-student-header,.school-student-row{grid-template-columns:1.2fr 1.5fr .6fr .6fr 1fr 1fr}.col-class{font-size:.8rem;opacity:.8;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:600px){.table-stats-grid{grid-template-columns:repeat(6,1fr)}.class-overview{flex-direction:column}.student-stats-header,.student-stats-row{grid-template-columns:1.5fr .5fr .5fr 1fr 1fr;font-size:.8rem;padding:8px}.school-student-header,.school-student-row{grid-template-columns:.8fr 1.2fr .5fr .5fr .8fr .8fr;font-size:.75rem}.stats-modal{max-width:95%}}.export-period-select{position:relative;margin-bottom:12px}.export-period-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;background:#ffffff0d;border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:.85rem;font-weight:500;text-align:left;cursor:pointer;transition:background .15s,border-color .15s}.export-period-trigger:hover{background:#ffffff14;border-color:#ffffff40}.export-period-trigger-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.export-period-caret{flex-shrink:0;font-size:.7rem;opacity:.7;transition:transform .15s}.export-period-trigger[aria-expanded=true] .export-period-caret{transform:rotate(180deg)}.export-period-checklist{position:absolute;top:calc(100% + 4px);right:0;z-index:50;width:232px;max-width:82vw;display:flex;flex-direction:column;gap:4px;padding:8px;max-height:360px;overflow-y:auto;background:#1b2348;border:1px solid rgba(255,255,255,.16);border-radius:10px;box-shadow:0 12px 32px #00000073}.export-period-checklist[hidden]{display:none}.export-period-hint{font-size:.72rem;opacity:.6;padding:2px 4px 4px}.export-period-option{display:flex;align-items:center;gap:10px;padding:8px 10px;border:1px solid rgba(255,255,255,.08);border-radius:8px;font-size:.84rem;line-height:1.15;cursor:pointer;-webkit-user-select:none;user-select:none;transition:background .15s,border-color .15s}.export-period-option:hover{background:#ffffff0d;border-color:#ffffff29}.export-period-option input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;margin:0}.export-period-check{flex-shrink:0;width:18px;height:18px;border:1.5px solid rgba(255,255,255,.3);border-radius:5px;display:flex;align-items:center;justify-content:center;transition:background .15s,border-color .15s}.export-period-check svg{width:11px;height:11px;opacity:0;transform:scale(.6);transition:opacity .12s,transform .12s}.export-period-label{flex:1;min-width:0;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.export-period-badge{flex-shrink:0;font-size:.6rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:#bfe6f7;background:#0793d138;padding:2px 6px;border-radius:999px;white-space:nowrap}.export-period-option.selected{background:#0793d129;border-color:#0793d18c}.export-period-option.selected .export-period-check{background:#0793d1;border-color:#0793d1}.export-period-option.selected .export-period-check svg{opacity:1;transform:scale(1)}.export-period-option:focus-within{outline:2px solid #0793d1;outline-offset:2px}.pg-badge{display:inline-block;font-size:.6rem;font-weight:800;color:#1a1a2e;padding:.1rem .4rem;border-radius:var(--radius-pill);margin-left:5px;letter-spacing:.02em;vertical-align:1px}.pg-pp{background:var(--color-accent-special)}.pg-send{background:var(--color-accent-info)}.pg-eal{background:var(--color-accent-warning)}.mtc-group-filter{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-bottom:var(--space-md)}.mtc-group-filter-label{font-size:.7rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--text-color-secondary);margin-right:4px}.mtc-group-filter .pg-filter-btn{font-size:.75rem;padding:.35rem .85rem}.mtc-group-filter-inline{margin-left:auto;margin-bottom:0}.mtc-group-filter-inline .pg-filter-btn{font-size:.7rem;padding:.28rem .7rem}.pg-filter-btn{font-family:inherit;font-size:.7rem;font-weight:800;color:var(--text-color-secondary);background:var(--seat-bg);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-pill);padding:.25rem .65rem;cursor:pointer;transition:background .15s ease,color .15s ease}body.light-mode .pg-filter-btn{border-color:#0000001f}.pg-filter-btn.active{color:#1a1a2e;background:var(--text-color-primary);border-color:transparent}.pg-filter-btn.pg-filter-pp.active{background:var(--color-accent-special)}.pg-filter-btn.pg-filter-send.active{background:var(--color-accent-info)}.pg-filter-btn.pg-filter-eal.active{background:var(--color-accent-warning)}.class-card.leaver-card{opacity:.6;filter:grayscale(.35);transition:opacity .15s ease,filter .15s ease}.class-card.leaver-card:hover,.class-card.leaver-card:focus-within{opacity:.95;filter:none}.leaver-left-note{display:block;font-size:.78rem;color:var(--text-color-secondary);margin-top:4px}.term-dates-sub{font-size:.85rem;color:var(--text-color-secondary);margin:0 0 16px}.term-dates-toolbar{display:flex;align-items:center;gap:12px;margin-bottom:14px}.term-dates-toolbar .term-dates-year-select{width:auto;margin:0;padding:8px 12px;border-radius:10px;border:1px solid var(--border-color);background:var(--seat-bg);color:inherit;font-size:.95rem;font-weight:700;text-align:left}.term-dates-badge{font-size:.72rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:3px 10px;border-radius:999px;background:#ffffff14;color:var(--text-color-secondary)}.term-dates-badge.own{background:#22c55e26;color:#22c55e}.term-dates-rows{display:flex;flex-wrap:wrap;gap:18px 0}.term-dates-season{flex:1 1 27rem;min-width:27rem;display:flex;flex-direction:column;align-items:center;gap:12px}.term-dates-season:not(:last-child){border-right:1px solid var(--border-color)}.term-dates-row{display:grid;grid-template-columns:4.5rem 9.5rem 1.25rem 9.5rem;align-items:center;gap:8px}.term-dates-label{font-weight:700;font-size:.9rem;line-height:1}.term-dates-row input[type=date]{width:100%;margin:0;padding:8px 10px;border-radius:10px;border:1px solid var(--border-color);background:#ffffff0d;color:inherit;font-size:.9rem;font-family:inherit;text-align:center;color-scheme:dark;box-sizing:border-box}.term-dates-to{font-size:.8rem;color:var(--text-color-secondary);text-align:center}.term-dates-error{color:#f87171;font-size:.9rem;margin:10px 0 0}@media(max-width:600px){.term-dates-season{flex-basis:100%;min-width:0;border-right:none}.term-dates-row{grid-template-columns:1fr auto 1fr;row-gap:4px;width:100%}.term-dates-label{grid-column:1 / -1;text-align:center}.term-dates-row input[type=date]{min-width:0}.stats-section.secondary.mtc-targets-section .settings-panel-head,.stats-section.secondary.term-dates-section .settings-panel-head{display:grid!important;grid-template-columns:auto 1fr;align-items:start}.mtc-targets-section .settings-panel-icon,.term-dates-section .settings-panel-icon{grid-column:1;grid-row:1}.mtc-targets-section .settings-panel-heading,.term-dates-section .settings-panel-heading{grid-column:2;grid-row:1}.mtc-targets-section .btn-set-targets,.term-dates-section #moveUpYearRow{grid-column:1 / -1;width:100%}.mtc-targets-section .btn-set-targets,.term-dates-section #moveUpYearRow .btn-move-up-year{width:100%;justify-content:center}}.term-dates-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:16px}.settings-panel-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:16px;flex-wrap:wrap}.settings-panel-icon{flex:none;width:44px;height:44px;border-radius:13px;display:grid;place-items:center;font-size:1.15rem;background:#0793d124;border:1px solid rgba(7,147,209,.24)}.settings-panel-icon.is-calendar{background:#22c55e21;border-color:#22c55e3d}.settings-panel-icon .ui-icon{display:block;line-height:0}.settings-panel-heading{flex:1 1 auto;min-width:0;text-align:left}.settings-panel-eyebrow{display:block;font-size:.7rem;letter-spacing:.11em;text-transform:uppercase;font-weight:700;color:var(--text-color-secondary);opacity:.75;margin-bottom:3px}.settings-panel-titlerow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.settings-panel-titlerow h3{margin:0!important}.settings-panel-sub{margin:6px 0 0;font-size:.85rem;color:var(--text-color-secondary);opacity:.8;line-height:1.4;text-align:left}.settings-status-chip{display:inline-block;font-size:.68rem;text-transform:uppercase;letter-spacing:.06em;font-weight:700;padding:4px 11px;border-radius:999px;white-space:nowrap;background:#ffffff14;color:var(--text-color-secondary)}body.light-mode .settings-status-chip{background:#94a3b82e}.settings-status-chip.own{background:#22c55e26;color:#22c55e}#moveUpYearRow{flex:none}.btn-move-up-year{display:inline-flex;align-items:center;gap:7px;padding:8px 14px;font-family:inherit;font-size:.82rem;font-weight:700;color:var(--text-color-primary);background:linear-gradient(135deg,#0793d129,#2980b924);border:1px solid rgba(7,147,209,.38);border-radius:10px;cursor:pointer;white-space:nowrap;transition:filter .15s ease,transform .1s ease,box-shadow .15s ease}.btn-move-up-year:hover{filter:brightness(1.08);box-shadow:0 6px 16px -8px #0793d199}.btn-move-up-year:active{transform:translateY(1px)}.btn-move-up-year .ui-icon{font-size:.95rem;flex:none}#undoMoveUpRow{flex:none}.btn-move-up-year.is-undo{background:#ffffff0f;border-color:#ffffff38}.btn-move-up-year.is-undo:hover{box-shadow:0 6px 16px -8px #0009}
