@import url(https://fonts.googleapis.com/css2?family=Inter:opsz,wght@14..32,300;14..32,400;14..32,500;14..32,600;14..32,700&display=swap);.person-print-controls{align-items:center;display:flex;gap:8px;justify-content:center;margin:8px 0 14px}.person-print-controls button,.person-print-controls select{background:#fff;background:var(--card-bg,#fff);border:1px solid #74cc9d;border-radius:8px;color:#0f172a;color:var(--text-primary,#0f172a);font:inherit;padding:7px 12px}.person-print-controls button{background:#006838;color:#fff;cursor:pointer}.person-print-document{display:none}.mobile-person-timetable{touch-action:pan-y pinch-zoom}@media print{@page person-timetable{size:A4 landscape;margin:10mm}body.person-timetable-printing>:not(.person-print-document){display:none!important}body.person-timetable-printing>.person-print-document{zoom:1;background:#fff;color:#000;display:block!important;font:9pt/1.15 Arial,sans-serif;margin:0;padding:0;page:person-timetable;width:100%}.person-print-document h1{font-size:14pt;margin:0 0 2mm}.person-print-document .person-print-title{font-size:11pt;margin:0 0 3mm}.person-print-document table{border-collapse:collapse;table-layout:fixed;width:100%}.person-print-document td,.person-print-document th{border:1px solid #888;overflow-wrap:anywhere;padding:1.5mm 2mm;vertical-align:top}.person-print-document th{background:#eef4f0;text-align:left}.person-print-document th:first-child{overflow-wrap:normal;white-space:nowrap;width:32mm;word-break:normal}.person-print-document th div{font-size:8pt;font-weight:400;margin-top:.5mm}.person-print-document thead{display:table-header-group}.person-print-document tr{break-inside:avoid;page-break-inside:avoid}.person-print-lesson+.person-print-lesson{border-top:1px solid #ccc;margin-top:1mm;padding-top:1mm}.person-print-lesson div{margin-top:.5mm}.person-print-green-theme td,.person-print-green-theme th{print-color-adjust:exact;-webkit-print-color-adjust:exact}.person-print-green-theme thead th{background:#006838;border-color:#238158;color:#fff}.person-print-green-theme tbody th{background:#dcefe3;color:#064e3b}.person-print-green-theme .person-print-rest-row td,.person-print-green-theme .person-print-rest-row th{background:#bce3cb;color:#064e3b}}.news-banner{align-items:center;background:#e8f5ee;border:1px solid #b7dcc7;border-radius:10px;box-sizing:border-box;color:#0f172a;display:flex;font-size:15px;font-weight:700;gap:12px;line-height:1.35;margin:8px 0;min-height:40px;padding:6px 12px}body.dark-mode .news-banner{background:#12281d;border-color:#2f6b4a;color:#e6f4ec}.news-banner__label{background:#0b6b45;border-radius:999px;color:#fff;flex:none;font-size:12px;font-weight:800;letter-spacing:.04em;padding:2px 10px;text-transform:uppercase}.news-banner__stage{flex:1 1 auto;min-height:1.35em;min-width:0;overflow:hidden;position:relative}.news-banner__message{animation:news-banner-fade .5s ease}.news-banner__track{animation:news-banner-scroll linear infinite;display:inline-block;padding-left:100%;white-space:nowrap}.news-banner__stack>div+div{margin-top:4px}.news-banner__pause{background:#0000;border:1px solid #0b6b45;border-radius:8px;color:inherit;cursor:pointer;flex:none;font-size:12px;min-height:32px;min-width:32px}.news-banner__sr{clip:rect(0 0 0 0);border:0;height:1px;list-style:none;margin:-1px;overflow:hidden;padding:0;position:absolute;white-space:nowrap;width:1px}.news-banner--preview{margin:0}@keyframes news-banner-fade{0%{opacity:0}to{opacity:1}}@keyframes news-banner-scroll{0%{transform:translateX(0)}to{transform:translateX(-100%)}}@media (prefers-reduced-motion:reduce){.news-banner__message,.news-banner__track{animation:none}}@media print{.news-banner{display:none}}.pupil-theme-menu{display:inline-flex;position:relative}.pupil-theme-menu__button{position:relative}.pupil-theme-menu__badge{display:inline-flex;pointer-events:none}.pupil-theme-menu__badge .pupil-swatch__dot{border-radius:50%;box-shadow:0 0 0 1.5px #fff;box-shadow:0 0 0 1.5px var(--tb-bg,#fff);height:10px;width:10px}.pupil-theme-panel{animation:pt-panel-in .14s ease-out;background:#fff;background:var(--tb-bg,#fff);border:1px solid #dfe5ec;border:1px solid var(--tb-border,#dfe5ec);border-radius:14px;box-shadow:0 22px 44px -14px #0f172a59;color:#334155;color:var(--tb-text,#334155);font-size:14px;max-width:calc(100vw - 24px);padding:10px;position:absolute;right:0;text-align:left;top:calc(100% + 8px);width:240px;z-index:60}@keyframes pt-panel-in{0%{opacity:0;transform:translateY(-4px) scale(.98)}}.pupil-theme-panel__title{color:#526277;color:var(--tb-muted,#526277);font-size:.72rem;font-weight:800;letter-spacing:.06em;padding:2px 8px 8px;text-transform:uppercase}.pupil-theme-panel__locked{background:#f59e0b24;border-radius:10px;font-size:.8rem;font-weight:600;line-height:1.35;margin:0 2px 8px;padding:8px 10px}.pupil-theme-panel__list{grid-gap:2px;display:grid;gap:2px}.pupil-theme-option{align-items:center;border-radius:10px;cursor:pointer;display:flex;font-weight:600;gap:10px;min-height:40px;padding:0 10px;position:relative}.pupil-theme-option:hover{background:#0f172a0f}.pupil-theme-option.is-on{background:#006b351a}.pupil-theme-option input{cursor:inherit;height:100%;inset:0;margin:0;opacity:0;position:absolute;width:100%}.pupil-theme-option input:focus-visible+.pupil-swatch__dot{outline:3px solid #1d4ed8;outline:3px solid var(--pt-accent,#1d4ed8);outline-offset:3px}.pupil-theme-option:has(input:focus-visible){box-shadow:inset 0 0 0 2px #1d4ed8;box-shadow:inset 0 0 0 2px var(--pt-accent,#1d4ed8)}.pupil-theme-option .pupil-swatch__dot{border-radius:50%;box-shadow:inset 0 0 0 1px #0f172a2e;flex:0 0 auto;height:22px;width:22px}.pupil-theme-option__name{flex:1 1}.pupil-theme-option__tick{color:#006b35;color:var(--pt-accent,#006b35);font-weight:800;width:1em}.pupil-theme-panel__list.is-locked .pupil-theme-option{cursor:not-allowed}.pupil-theme-panel__list.is-locked .pupil-theme-option:not(.is-on){opacity:.45}.pupil-theme-panel__list.is-locked .pupil-theme-option:hover{background:#0000}.pupil-swatch--none .pupil-swatch__dot{background:linear-gradient(135deg,#fff 0 48%,#006b35 52%)}.pupil-swatch--halloween .pupil-swatch__dot{background:linear-gradient(135deg,#ff8a1f,#7c3aed)}.pupil-swatch--christmas .pupil-swatch__dot{background:linear-gradient(135deg,#dc2626 0 42%,#facc15 42% 58%,#15803d 58%)}.pupil-swatch--easter .pupil-swatch__dot{background:linear-gradient(135deg,#86efac,#fde047 50%,#7dd3fc)}.pupil-swatch--neon .pupil-swatch__dot{background:linear-gradient(135deg,#22d3ee,#8b5cf6)}.pupil-swatch--gamer .pupil-swatch__dot{background:conic-gradient(#ff0040,#ffb000,#39ff14,#00e5ff,#7c3aed,#ff0040)}.pupil-swatch--cinema .pupil-swatch__dot{background:linear-gradient(135deg,#f5b83d,#b91c1c 65%,#1a0b0c)}.pupil-swatch--autumn .pupil-swatch__dot{background:linear-gradient(135deg,#fcd34d,#ea580c 50%,#4d7c0f)}.pupil-swatch--winter .pupil-swatch__dot{background:linear-gradient(135deg,#f0f9ff,#7dd3fc 45%,#312e81)}.pupil-swatch--summer .pupil-swatch__dot{background:linear-gradient(135deg,#fde047,#fb923c 45%,#0ea5e9)}@media print{.pupil-theme-menu{display:none!important}}.pupil-themed{--pt-mark-filter:none;--pt-shine:#ffffff14;--pt-shadow:#000000bf;--pt-line:#ffffff21}.pupil-theme-halloween{--pt-bg:#0c0612;--pt-page:linear-gradient(180deg,#150a24,#0b0611);--pt-page-text:#faf5ff;--pt-surface:#1f1230;--pt-glass:#1e112ebd;--pt-glass-strong:#1a0f28db;--pt-alt:#ffffff0f;--pt-now-bg:#1f1130;--pt-today-tint:#ff8a1f1a;--pt-text:#faf5ff;--pt-muted:#d9c9ef;--pt-accent:#ff8a1f;--pt-accent-2:#c084fc;--pt-accent-text:#1a0d05;--pt-a1:#ff7a1857;--pt-a2:#7c3aed5c;--pt-a3:#be185d3d;--pt-icon:#ffb066;--pt-icon-glow:#ff8a1f8c;--pt-title:linear-gradient(90deg,#ffb066,#fff 48%,#d8b4fe);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #ff8a1f80)}.pupil-theme-christmas{--pt-bg:#04110c;--pt-page:linear-gradient(180deg,#0a2219,#040c09);--pt-page-text:#fffaf0;--pt-surface:#0f2a1f;--pt-glass:#0c241abd;--pt-glass-strong:#0a1e16db;--pt-alt:#ffffff0f;--pt-now-bg:#0d2a1e;--pt-today-tint:#facc1514;--pt-text:#fffaf0;--pt-muted:#d0e4d7;--pt-accent:#dc2626;--pt-accent-2:#facc15;--pt-accent-text:#fff;--pt-a1:#dc26264d;--pt-a2:#10b9814d;--pt-a3:#facc1529;--pt-icon:#fde68a;--pt-icon-glow:#fde68a80;--pt-title:linear-gradient(90deg,#fde68a,#fff 48%,#fca5a5);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #fde68a73)}.pupil-theme-easter{--pt-bg:#f1faf4;--pt-page:linear-gradient(160deg,#eefbf2,#fffbe9 55%,#eaf6ff);--pt-page-text:#15332a;--pt-surface:#fff;--pt-glass:#ffffffa8;--pt-glass-strong:#ffffffdb;--pt-alt:#0f766e12;--pt-now-bg:#fff;--pt-today-tint:#0f766e12;--pt-text:#15332a;--pt-muted:#3b5849;--pt-accent:#0f766e;--pt-accent-2:#2563eb;--pt-accent-text:#fff;--pt-a1:#86efac8c;--pt-a2:#fde04773;--pt-a3:#7dd3fc80;--pt-icon:#0f766e;--pt-icon-glow:#ffffffe6;--pt-title:linear-gradient(90deg,#0f766e,#0369a1 55%,#4338ca);--pt-shine:#ffffffe6;--pt-shadow:#0f503c47;--pt-line:#0f503c24}.pupil-theme-neon{--pt-bg:#05060f;--pt-page:linear-gradient(180deg,#0b0c22,#05050d);--pt-page-text:#eef2ff;--pt-surface:#121633;--pt-glass:#101330bd;--pt-glass-strong:#0d0f28db;--pt-alt:#ffffff0f;--pt-now-bg:#10132f;--pt-today-tint:#22d3ee1a;--pt-text:#eef2ff;--pt-muted:#bcc6ef;--pt-accent:#22d3ee;--pt-accent-2:#a78bfa;--pt-accent-text:#03121a;--pt-a1:#22d3ee4d;--pt-a2:#8b5cf657;--pt-a3:#3b82f642;--pt-icon:#67e8f9;--pt-icon-glow:#22d3ee99;--pt-title:linear-gradient(90deg,#67e8f9,#fff 48%,#c4b5fd);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #22d3ee99)}.pupil-theme-gamer{--pt-bg:#040706;--pt-page:linear-gradient(180deg,#07110c,#030504);--pt-page-text:#f0fdf4;--pt-surface:#0d1612;--pt-glass:#0c1611c2;--pt-glass-strong:#0a120ee0;--pt-alt:#ffffff0d;--pt-now-bg:#0b1510;--pt-today-tint:#4ade8014;--pt-text:#f0fdf4;--pt-muted:#b7cabe;--pt-accent:#4ade80;--pt-accent-2:#22d3ee;--pt-accent-text:#052e16;--pt-a1:#22c55e47;--pt-a2:#06b6d438;--pt-a3:#a855f73d;--pt-icon:#86efac;--pt-icon-glow:#4ade8099;--pt-title:linear-gradient(90deg,#86efac,#fff 48%,#67e8f9);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #4ade8099)}.pupil-theme-cinema{--pt-bg:#0b0607;--pt-page:linear-gradient(180deg,#170a0d,#070405);--pt-page-text:#fff7ed;--pt-surface:#1f1114;--pt-glass:#1f0f12c2;--pt-glass-strong:#1a0d0fe0;--pt-alt:#ffffff0d;--pt-now-bg:#1d0f11;--pt-today-tint:#f5b83d14;--pt-text:#fff7ed;--pt-muted:#e3d0ca;--pt-accent:#f5b83d;--pt-accent-2:#ef4444;--pt-accent-text:#1c0f02;--pt-a1:#dc262647;--pt-a2:#f59e0b33;--pt-a3:#7f1d1d66;--pt-icon:#fcd34d;--pt-icon-glow:#fcd34d80;--pt-title:linear-gradient(90deg,#fde68a,#fff 48%,#fca5a5);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #fcd34d80)}.pupil-theme-autumn{--pt-bg:#faf1e2;--pt-page:linear-gradient(170deg,#fdf7ec,#f8ebd5 55%,#f2e2cb);--pt-page-text:#3b2413;--pt-surface:#fffaf2;--pt-glass:#fffaf2a8;--pt-glass-strong:#fffbf5e0;--pt-alt:#9a34120f;--pt-now-bg:#fffaf3;--pt-today-tint:#c2410c12;--pt-text:#3b2413;--pt-muted:#6b4a33;--pt-accent:#c2410c;--pt-accent-2:#4d7c0f;--pt-accent-text:#fff;--pt-a1:#fb923c57;--pt-a2:#eab3084d;--pt-a3:#84cc1633;--pt-icon:#b45309;--pt-icon-glow:#ffffffe6;--pt-title:linear-gradient(90deg,#9a3412,#c2410c 45%,#4d7c0f);--pt-shine:#ffffffe6;--pt-shadow:#78350f40;--pt-line:#78350f26}.pupil-theme-winter{--pt-bg:#050b16;--pt-page:linear-gradient(180deg,#0a1628,#04080f);--pt-page-text:#f0f9ff;--pt-surface:#0f1d33;--pt-glass:#0e1c32bd;--pt-glass-strong:#0b172adb;--pt-alt:#ffffff0f;--pt-now-bg:#0e1c31;--pt-today-tint:#7dd3fc17;--pt-text:#f0f9ff;--pt-muted:#c3d5ea;--pt-accent:#7dd3fc;--pt-accent-2:#a5b4fc;--pt-accent-text:#04121f;--pt-a1:#38bdf83d;--pt-a2:#6366f147;--pt-a3:#2dd4bf29;--pt-icon:#bae6fd;--pt-icon-glow:#7dd3fc8c;--pt-title:linear-gradient(90deg,#bae6fd,#fff 48%,#c7d2fe);--pt-mark-filter:brightness(0) invert(1) drop-shadow(0 0 8px #7dd3fc8c)}.pupil-theme-summer{--pt-bg:#e6f6ff;--pt-page:linear-gradient(180deg,#d4efff,#f1faff 45%,#fff3d6);--pt-page-text:#0b2a3c;--pt-surface:#fff;--pt-glass:#ffffff9e;--pt-glass-strong:#ffffffdb;--pt-alt:#0e749012;--pt-now-bg:#fff;--pt-today-tint:#0e749012;--pt-text:#0b2a3c;--pt-muted:#33566b;--pt-accent:#0e7490;--pt-accent-2:#f97316;--pt-accent-text:#fff;--pt-a1:#fde04780;--pt-a2:#38bdf866;--pt-a3:#fb923c52;--pt-icon:#0e7490;--pt-icon-glow:#ffffffe6;--pt-title:linear-gradient(90deg,#0369a1,#0e7490 45%,#c2410c);--pt-shine:#ffffffe6;--pt-shadow:#08466e42;--pt-line:#08466e24}body:has(.pupil-themed){background:var(--pt-bg)!important}.pupil-themed{--tb-active:var(--pt-accent);--tb-active-text:var(--pt-accent-text);background:var(--pt-page)!important;color:var(--pt-page-text);min-height:100vh}.pupil-themed .app-shell-content-frame{position:relative;z-index:1}.pupil-themed .app-shell-content-frame>div,.pupil-themed main p[role=status]{color:var(--pt-page-text)}.pupil-themed .app-shell-content-frame span[class*=signed],.pupil-themed .role-toggle-bar{color:var(--pt-page-text)!important}.pupil-themed .role-toggle-btn *{color:var(--pt-text)!important}.pupil-themed .top-role-control-line{background:var(--pt-line)!important}.pupil-themed .hero-banner,.pupil-themed .mobile-person-day-tabs,.pupil-themed .news-banner,.pupil-themed .now-next-card{-webkit-backdrop-filter:blur(16px) saturate(160%);backdrop-filter:blur(16px) saturate(160%);background:var(--pt-glass)!important;border:1px solid var(--pt-line)!important;box-shadow:inset 0 1px 0 var(--pt-shine),0 18px 40px -20px var(--pt-shadow)!important}.pupil-themed .hero-banner{background:linear-gradient(90deg,var(--pt-accent),var(--pt-accent-2)) top /100% 3px no-repeat,var(--pt-glass)!important}.pupil-themed .hero-banner:after,.pupil-themed .hero-banner:before{display:none!important}.pupil-themed .hero-banner>span{background:#0000!important;box-shadow:none!important}.pupil-themed .hero-title-copy p,.pupil-themed .hero-title-kicker{color:var(--pt-muted)!important}.pupil-themed .banner-values-mark{filter:none;filter:var(--pt-mark-filter,none)}.pupil-themed .pupil-timetable-title{width:-webkit-fit-content;width:fit-content}.pupil-themed .hero-title-copy h1,.pupil-themed .pupil-timetable-title{-webkit-text-fill-color:#0000!important;background:var(--pt-title)!important;-webkit-background-clip:text!important;background-clip:text!important;color:#0000!important;text-shadow:none!important}.pupil-theme-gamer .hero-banner{animation:pt-rgb 8s linear infinite;background:linear-gradient(var(--pt-now-bg),var(--pt-now-bg)) padding-box,linear-gradient(90deg,#ff0040,#ffb000,#39ff14,#00e5ff,#7c3aed,#f0a,#ff0040) border-box!important;background-repeat:no-repeat,repeat!important;background-size:100% 100%,300% 100%!important;border:2px solid #0000!important;box-shadow:0 0 24px -6px #39ff1459,0 18px 40px -20px var(--pt-shadow)!important}@keyframes pt-rgb{0%{background-position:0 0,0 0}to{background-position:0 0,150% 0}}.pupil-themed .app-shell-content-frame>button,.pupil-themed .compact-theme-button,.pupil-themed .compact-user-logout-button,.pupil-themed .compact-user-topbar button,.pupil-themed .live-date-time-badge,.pupil-themed .print-select,.pupil-themed .role-toggle-bar button,.pupil-themed .role-toggle-btn,.pupil-themed select{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:var(--pt-glass)!important;border-color:var(--pt-line)!important;color:var(--pt-text)!important}.pupil-themed .live-date-time-badge *{color:var(--pt-text)!important}.pupil-themed .student-view-container label{color:var(--pt-page-text)!important}.pupil-themed .student-view-container button:not(.mobile-person-day-tab){background:var(--pt-accent)!important;border-color:var(--pt-accent)!important;color:var(--pt-accent-text)!important}.pupil-themed .pupil-theme-panel{-webkit-backdrop-filter:blur(18px) saturate(160%);backdrop-filter:blur(18px) saturate(160%);background:var(--pt-glass-strong);border-color:var(--pt-line);box-shadow:inset 0 1px 0 var(--pt-shine),0 22px 44px -14px var(--pt-shadow);color:var(--pt-text)}.pupil-themed .pupil-theme-panel__title{color:var(--pt-muted)}.pupil-themed .pupil-theme-option:hover{background:var(--pt-alt)}.pupil-themed .pupil-theme-option.is-on{background:var(--pt-today-tint);box-shadow:inset 0 0 0 1px var(--pt-line)}.pupil-themed .pupil-theme-menu__badge .pupil-swatch__dot{box-shadow:0 0 0 1.5px var(--pt-now-bg)}.pupil-theme-christmas .pupil-theme-option__tick{color:#fca5a5}.pupil-theme-autumn .pupil-theme-option__tick{color:#9a3412}.pupil-themed .news-banner{color:var(--pt-text)}.pupil-themed .news-banner__label{background:var(--pt-accent);color:var(--pt-accent-text)}.pupil-themed .news-banner__pause{background:#0000;border-color:var(--pt-line);color:var(--pt-text)}@property --pt-angle{syntax:"<angle>";initial-value:0deg;inherits:false}.pupil-themed .now-next-card__title{color:var(--pt-text)!important}.pupil-themed .now-next-card__label,.pupil-themed .now-next-card__meta{color:var(--pt-muted)!important}.pupil-themed .now-next-card--now .now-next-card__label{color:var(--pt-accent)!important}.pupil-theme-christmas .now-next-card--now .now-next-card__label{color:#fca5a5!important}.pupil-themed .mobile-person-period-card.is-now,.pupil-themed .now-next-card--now{animation:pt-ring 6s linear infinite;background:linear-gradient(var(--pt-now-bg),var(--pt-now-bg)) padding-box,conic-gradient(from var(--pt-angle),var(--pt-accent),var(--pt-accent-2),var(--pt-accent),var(--pt-accent-2),var(--pt-accent)) border-box!important;border:2px solid #0000!important;box-shadow:0 0 28px -8px var(--pt-accent),0 18px 40px -20px var(--pt-shadow)!important}@keyframes pt-ring{to{--pt-angle:360deg}}.pupil-themed .student-timetable{border-color:var(--pt-line)!important}.pupil-themed .student-timetable td,.pupil-themed .student-timetable th{border-color:var(--pt-line)!important;color:var(--pt-text)!important}.pupil-themed .student-timetable th{background:var(--pt-glass)!important}.pupil-themed .student-timetable td{background:var(--pt-glass-strong)!important}.pupil-themed .student-timetable th.is-today{background:var(--pt-accent)!important;color:var(--pt-accent-text)!important}.pupil-themed .student-timetable td.is-today{background:linear-gradient(var(--pt-today-tint),var(--pt-today-tint)),var(--pt-glass-strong)!important;box-shadow:inset 2px 0 0 var(--pt-accent),inset -2px 0 0 var(--pt-accent)!important}.pupil-themed .empty-lesson,.pupil-themed .lesson-detail,.pupil-themed .time-slot-small{color:var(--pt-muted)!important}.pupil-themed .mobile-person-day-tab{background:#0000!important;color:var(--pt-text)!important}.pupil-themed .mobile-person-day-tab.is-active{background:var(--pt-accent)!important;box-shadow:0 6px 18px -6px var(--pt-accent)!important;color:var(--pt-accent-text)!important}.pupil-themed .mobile-person-day-heading,.pupil-themed .mobile-person-day-heading *{color:var(--pt-page-text)!important}.pupil-themed .mobile-person-period-card{background:var(--pt-glass-strong)!important;border:1px solid var(--pt-line)!important;box-shadow:inset 0 1px 0 var(--pt-shine),0 14px 32px -20px var(--pt-shadow)!important}.pupil-themed .mobile-person-period-meta{background:var(--pt-alt)!important;color:var(--pt-text)!important}.pupil-themed .mobile-person-period-meta *{color:var(--pt-text)!important}.pupil-themed .mobile-person-now-tag{background:var(--pt-accent)!important;color:var(--pt-accent-text)!important}.pupil-themed .mobile-person-fixed-content,.pupil-themed .mobile-person-subject{color:var(--pt-text)!important}.pupil-themed .mobile-person-detail,.pupil-themed .mobile-person-detail-label,.pupil-themed .mobile-person-empty{color:var(--pt-muted)!important}.pupil-fx{inset:0;overflow:hidden;pointer-events:none;position:fixed;z-index:0}.pupil-fx:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='a'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23a)'/%3E%3C/svg%3E");content:"";inset:0;mix-blend-mode:overlay;opacity:.07;position:absolute}.pupil-fx__aurora>i{border-radius:50%;height:75vmax;position:absolute;width:75vmax;will-change:transform}.pupil-fx__aurora>i:first-child{animation:pt-drift 38s ease-in-out infinite alternate;background:radial-gradient(closest-side,var(--pt-a1),#0000);left:-22vmax;top:-32vmax}.pupil-fx__aurora>i:nth-child(2){animation:pt-drift 46s ease-in-out -12s infinite alternate-reverse;background:radial-gradient(closest-side,var(--pt-a2),#0000);right:-26vmax;top:-30vmax}.pupil-fx__aurora>i:nth-child(3){animation:pt-drift 54s ease-in-out -20s infinite alternate;background:radial-gradient(closest-side,var(--pt-a3),#0000);bottom:-40vmax;left:15%}@keyframes pt-drift{0%{transform:translate(0) scale(1)}50%{transform:translate(9vw,7vh) scale(1.12)}to{transform:translate(-6vw,12vh) scale(.95)}}.pupil-fx__scene{inset:0;position:absolute}.pupil-fx__scene:after,.pupil-fx__scene:before{content:"";position:absolute}.pupil-fx--halloween .pupil-fx__scene:before{aspect-ratio:1;background:radial-gradient(circle at 38% 36%,#fff6e3 0,#f7dcb0 55%,#e9b97a 100%);border-radius:50%;box-shadow:0 0 60px 18px #ffba6e38,0 0 160px 60px #ff8a1f1a;opacity:.4;right:7vw;top:9vh;width:min(20vw,170px)}.pupil-fx--halloween .pupil-fx__scene:after{animation:pt-fog 26s ease-in-out infinite alternate;background:radial-gradient(ellipse 40% 60% at 25% 100%,#d8c4ff29,#0000 70%),radial-gradient(ellipse 45% 55% at 75% 100%,#d8c4ff1f,#0000 70%);bottom:-4vh;height:38vh;left:-20%;right:-20%}@keyframes pt-fog{0%{transform:translateX(-6vw)}to{transform:translateX(6vw)}}.pupil-fx--christmas .pupil-fx__scene:after,.pupil-fx--christmas .pupil-fx__scene:before{animation:pt-lights 2.6s ease-in-out infinite alternate;height:36px;left:0;right:0;top:0}.pupil-fx--christmas .pupil-fx__scene:before{background:radial-gradient(circle at 20px 20px,#ff6b6b 0 4px,#ff6b6b59 5px,#0000 12px) 0 0 /160px 36px repeat-x,radial-gradient(circle at 100px 24px,#4ade80 0 4px,#4ade8059 5px,#0000 12px) 0 0 /160px 36px repeat-x}.pupil-fx--christmas .pupil-fx__scene:after{animation-delay:-1.3s;background:radial-gradient(circle at 60px 26px,#fde047 0 4px,#fde04759 5px,#0000 12px) 0 0 /160px 36px repeat-x,radial-gradient(circle at 140px 18px,#60a5fa 0 4px,#60a5fa59 5px,#0000 12px) 0 0 /160px 36px repeat-x}@keyframes pt-lights{0%{opacity:.35}to{opacity:1}}.pupil-fx--easter .pupil-fx__scene:before{animation:pt-spin 140s linear infinite;background:repeating-conic-gradient(from 0deg,#ffe2784d 0 7deg,#0000 7deg 20deg);height:120vmax;left:-60vmax;-webkit-mask-image:radial-gradient(closest-side,#000 15%,#0000 100%);mask-image:radial-gradient(closest-side,#000 15%,#0000 100%);top:-60vmax;width:120vmax}.pupil-fx--easter .pupil-fx__scene:after{background:radial-gradient(ellipse 45% 70% at 20% 100%,#4ade8047,#0000 70%),radial-gradient(ellipse 50% 60% at 80% 100%,#86efac52,#0000 70%);bottom:0;height:30vh;left:-10%;right:-10%}@keyframes pt-spin{to{transform:rotate(1turn)}}.pupil-fx--neon .pupil-fx__scene:before{animation:pt-grid 5s linear infinite;background-image:linear-gradient(#22d3ee80 1px,#0000 0),linear-gradient(90deg,#a78bfa73 1px,#0000 0);background-size:64px 64px;bottom:0;height:46vh;left:-50%;-webkit-mask-image:linear-gradient(0deg,#000 5%,#0000 85%);mask-image:linear-gradient(0deg,#000 5%,#0000 85%);right:-50%;transform:perspective(320px) rotateX(62deg);transform-origin:50% 100%}.pupil-fx--neon .pupil-fx__scene:after{background:linear-gradient(90deg,#0000,#a78bfa 25%,#22d3ee 75%,#0000);bottom:30vh;box-shadow:0 0 24px 6px #8b5cf659;height:2px;left:0;opacity:.8;right:0}@keyframes pt-grid{0%{background-position:0 0}to{background-position:0 64px}}.pupil-fx--gamer .pupil-fx__scene:before{background-image:radial-gradient(#86efac33 1px,#0000 1.6px);background-size:22px 22px;inset:0;-webkit-mask-image:radial-gradient(ellipse at 50% 35%,#000 10%,#0000 75%);mask-image:radial-gradient(ellipse at 50% 35%,#000 10%,#0000 75%)}.pupil-fx--gamer .pupil-fx__scene:after{animation:pt-scan 9s linear infinite;background:linear-gradient(180deg,#0000,#4ade8017,#0000);height:30vh;left:0;right:0;top:-30vh}@keyframes pt-scan{to{transform:translateY(160vh)}}.pupil-fx--cinema .pupil-fx__scene{box-shadow:inset 0 0 22vmax #0000008c}.pupil-fx--cinema .pupil-fx__scene:after,.pupil-fx--cinema .pupil-fx__scene:before{animation:pt-beam 16s ease-in-out infinite alternate;background:conic-gradient(from -13deg at 50% 100%,#ffe8aa26 0deg,#ffe8aa08 26deg,#0000 26deg 1turn);bottom:-5vh;height:120vh;transform-origin:50% 100%;width:70vmax}.pupil-fx--cinema .pupil-fx__scene:before{left:calc(15% - 35vmax)}.pupil-fx--cinema .pupil-fx__scene:after{animation-direction:alternate-reverse;right:calc(15% - 35vmax)}@keyframes pt-beam{0%{transform:rotate(-20deg)}to{transform:rotate(20deg)}}.pupil-fx__scene>i{display:none;position:absolute}.pupil-fx--autumn .pupil-fx__scene:before{aspect-ratio:1;background:radial-gradient(circle,#fff1c7 0,#fcd34d 60%,#f59e0b 100%);border-radius:50%;bottom:14vh;box-shadow:0 0 60px 24px #fcd34d59,0 0 160px 70px #fb923c26;opacity:.75;right:12vw;width:min(16vw,130px)}.pupil-fx--autumn .pupil-fx__scene:after{background:radial-gradient(ellipse 34% 100% at 18% 100%,#d977063d 60%,#0000 61%),radial-gradient(ellipse 40% 90% at 62% 100%,#eab30838 60%,#0000 61%),radial-gradient(ellipse 30% 80% at 96% 100%,#d9770633 60%,#0000 61%);bottom:0;height:26vh;left:-5%;right:-5%}.pupil-fx--autumn .pupil-fx__scene>i{bottom:0;display:block;left:-5%;right:-5%}.pupil-fx--autumn .pupil-fx__scene>i:first-child{background:radial-gradient(ellipse 42% 100% at 35% 100%,#c2410c38 60%,#0000 61%),radial-gradient(ellipse 36% 85% at 88% 100%,#c2410c2e 60%,#0000 61%);height:19vh}.pupil-fx--autumn .pupil-fx__scene>i:nth-child(2){background:radial-gradient(ellipse 48% 100% at 12% 100%,#4d7c0f3d 60%,#0000 61%),radial-gradient(ellipse 44% 90% at 70% 100%,#65a30d33 60%,#0000 61%);height:12vh}.pupil-fx--winter .pupil-fx__scene:after,.pupil-fx--winter .pupil-fx__scene:before{filter:blur(26px);height:48vh;left:-20%;-webkit-mask-image:linear-gradient(180deg,#000 35%,#0000);mask-image:linear-gradient(180deg,#000 35%,#0000);top:-6vh;transform-origin:50% 0;width:140%}.pupil-fx--winter .pupil-fx__scene:before{animation:pt-aurora 18s ease-in-out infinite alternate;background:linear-gradient(100deg,#0000 12%,#34d3993d 30%,#2dd4bf29 42%,#0000 58%)}.pupil-fx--winter .pupil-fx__scene:after{animation:pt-aurora 24s ease-in-out -8s infinite alternate-reverse;background:linear-gradient(80deg,#0000 40%,#818cf842 58%,#38bdf82e 70%,#0000 85%)}@keyframes pt-aurora{0%{transform:translateX(-5vw) skewX(-12deg) scaleY(.9)}to{transform:translateX(5vw) skewX(12deg) scaleY(1.2)}}.pupil-fx--winter .pupil-fx__scene>i{bottom:0;display:block;left:0;right:0}.pupil-fx--winter .pupil-fx__scene>i:first-child{background:linear-gradient(180deg,#e2e8f038 0,#1e293be6 24%,#0b1322);-webkit-clip-path:polygon(0 100%,0 55%,12% 30%,22% 50%,35% 12%,48% 45%,58% 28%,70% 52%,82% 18%,92% 42%,100% 30%,100% 100%);clip-path:polygon(0 100%,0 55%,12% 30%,22% 50%,35% 12%,48% 45%,58% 28%,70% 52%,82% 18%,92% 42%,100% 30%,100% 100%);height:30vh;opacity:.75}.pupil-fx--winter .pupil-fx__scene>i:nth-child(2){background:linear-gradient(180deg,#e2e8f033 0,#111c2e 26%,#070d18);-webkit-clip-path:polygon(0 100%,0 40%,10% 62%,24% 18%,38% 58%,52% 30%,66% 64%,78% 24%,90% 56%,100% 36%,100% 100%);clip-path:polygon(0 100%,0 40%,10% 62%,24% 18%,38% 58%,52% 30%,66% 64%,78% 24%,90% 56%,100% 36%,100% 100%);height:19vh}.pupil-fx--summer .pupil-fx__scene:before{aspect-ratio:1;background:radial-gradient(circle,#fff7c2 0,#fde047 55%,#fbbf24 100%);border-radius:50%;box-shadow:0 0 60px 20px #fde04773,0 0 170px 80px #fbbf242e;opacity:.85;right:6vw;top:6vh;width:min(18vw,150px)}.pupil-fx--summer .pupil-fx__scene>i{display:block;left:0;width:calc(100% + 240px);will-change:transform}.pupil-fx--summer .pupil-fx__scene>i:first-child{animation:pt-waves 7s linear infinite;background:radial-gradient(circle at 50% 0,#0000 38px,#0ea5e933 39px) 0 0 /120px 60px repeat-x,linear-gradient(#0ea5e933,#0ea5e933) 0 60px /100% 100% no-repeat;bottom:0;height:17vh}.pupil-fx--summer .pupil-fx__scene>i:nth-child(2){animation:pt-waves 11s linear infinite reverse;background:radial-gradient(circle at 50% 0,#0000 38px,#06b6d42e 39px) 60px 0 /120px 60px repeat-x,linear-gradient(#06b6d42e,#06b6d42e) 0 60px /100% 100% no-repeat;bottom:-3vh;height:12vh}@keyframes pt-waves{0%{transform:translateX(0)}to{transform:translateX(-120px)}}.pupil-fx__particles{inset:0;position:absolute}.pupil-fx__particles>i{border-radius:50%;height:var(--s);left:var(--x);position:absolute;top:var(--y);width:var(--s);will-change:transform,opacity}.pupil-fx__particles--embers>i{animation:pt-p-rise var(--t) linear var(--d) infinite;background:#ffb066;box-shadow:0 0 8px 2px #ff8a1f99;top:104%}.pupil-fx__particles--snow>i{animation:pt-p-fall var(--t) linear var(--d) infinite;background:#fff;opacity:.85;top:-4%}.pupil-fx__particles--snow>i:nth-child(3n){filter:blur(1.5px);height:calc(var(--s)*2.2);opacity:.6;width:calc(var(--s)*2.2)}.pupil-fx__particles--petals>i{animation:pt-p-rise calc(var(--t)*1.4) linear var(--d) infinite;background:#86efac;border-radius:70% 0 70% 0;height:calc(var(--s)*2.4);opacity:.8;top:104%;width:calc(var(--s)*2.4)}.pupil-fx__particles--petals>i:nth-child(4n+1){background:#fde047}.pupil-fx__particles--petals>i:nth-child(4n+2){background:#7dd3fc}.pupil-fx__particles--petals>i:nth-child(4n+3){background:#fdba74}.pupil-fx__particles--stars>i{animation:pt-p-twinkle calc(var(--t)/4) ease-in-out var(--d) infinite;background:#e0f2fe;box-shadow:0 0 6px 1px #67e8f9cc;height:calc(var(--s)*.6);width:calc(var(--s)*.6)}.pupil-fx__particles--pixels>i{animation:pt-p-rise var(--t) linear var(--d) infinite;background:#4ade80;border-radius:1px;box-shadow:0 0 6px #4ade80b3;height:calc(var(--s) + 2px);top:104%;width:calc(var(--s) + 2px)}.pupil-fx__particles--pixels>i:nth-child(3n+1){background:#22d3ee;box-shadow:0 0 6px #22d3eeb3}.pupil-fx__particles--pixels>i:nth-child(3n+2){background:#c084fc;box-shadow:0 0 6px #c084fcb3}.pupil-fx__particles--dust>i{animation:pt-p-drift calc(var(--t)*.8) ease-in-out var(--d) infinite alternate;background:#fde68a;box-shadow:0 0 6px #fde68acc;height:calc(var(--s)*.7);width:calc(var(--s)*.7)}.pupil-fx__particles--leaves>i{animation:pt-p-leaf var(--t) linear var(--d) infinite;background:#d97706;border-radius:0 80% 0 80%;height:calc(var(--s)*2.6);left:calc(var(--x) + 20vw);opacity:.9;top:-6%;width:calc(var(--s)*4)}.pupil-fx__particles--leaves>i:nth-child(4n+1){background:#c2410c}.pupil-fx__particles--leaves>i:nth-child(4n+2){background:#eab308}.pupil-fx__particles--leaves>i:nth-child(4n+3){background:#4d7c0f}.pupil-fx__particles--bubbles>i{animation:pt-p-rise calc(var(--t)*1.3) linear var(--d) infinite;background:#ffffff73;border:1.5px solid #0e749066;height:calc(var(--s)*2.6);top:104%;width:calc(var(--s)*2.6)}@keyframes pt-p-leaf{0%{transform:translate(0) rotate(0deg)}25%{transform:translate(-8vw,28vh) rotate(140deg)}50%{transform:translate(-14vw,56vh) rotate(250deg)}75%{transform:translate(-24vw,84vh) rotate(380deg)}to{transform:translate(-32vw,112vh) rotate(480deg)}}@keyframes pt-p-rise{0%{opacity:0;transform:translate(0) rotate(0deg)}10%{opacity:.9}50%{transform:translate(24px,-58vh) rotate(180deg)}85%{opacity:.6}to{opacity:0;transform:translate(-12px,-114vh) rotate(1turn)}}@keyframes pt-p-fall{0%{transform:translate(0)}50%{transform:translate(26px,55vh)}to{transform:translate(-12px,112vh)}}@keyframes pt-p-twinkle{0%,to{opacity:.2;transform:scale(.6)}50%{opacity:1;transform:scale(1.5)}}@keyframes pt-p-drift{0%{opacity:.15;transform:translate(0)}50%{opacity:.9}to{opacity:.2;transform:translate(40px,-60px)}}.pupil-fx__icon{color:var(--pt-icon);filter:drop-shadow(0 0 6px var(--pt-icon-glow));height:40px;left:var(--x);opacity:.34;position:absolute;top:var(--y);width:40px;will-change:transform}.pupil-fx__icon[data-depth="0"]{filter:blur(1px) drop-shadow(0 0 4px var(--pt-icon-glow));height:26px;opacity:.22;width:26px}.pupil-fx__icon[data-depth="2"]{height:60px;opacity:.44;width:60px}.pupil-fx__icon svg{display:block;height:100%;width:100%}.pupil-fx--fly .pupil-fx__icon{animation:pt-i-fly calc(var(--t)*1.1) linear var(--d) infinite;left:-12%}.pupil-fx--fly .pupil-fx__icon svg{animation:pt-i-bob 3.2s ease-in-out infinite alternate}.pupil-fx__icon[data-icon=bat] svg{animation:pt-flap .45s ease-in-out infinite alternate}.pupil-fx--fall .pupil-fx__icon{animation:pt-i-fall var(--t) linear var(--d) infinite;top:-12%}.pupil-fx--fall .pupil-fx__icon svg{animation:pt-spin 14s linear infinite}.pupil-fx--rise .pupil-fx__icon{animation:pt-i-rise calc(var(--t)*1.2) linear var(--d) infinite;top:106%}.pupil-fx--rise .pupil-fx__icon svg{animation:pt-i-bob 3.6s ease-in-out infinite alternate}.pupil-fx--float .pupil-fx__icon{animation:pt-i-float calc(var(--t)/3) ease-in-out var(--d) infinite alternate}@keyframes pt-i-fly{0%{transform:translate(0)}25%{transform:translate(30vw,-5vh)}50%{transform:translate(60vw,4vh)}75%{transform:translate(90vw,-4vh)}to{transform:translate(125vw,2vh)}}@keyframes pt-i-fall{0%{transform:translate(0)}50%{transform:translate(30px,58vh)}to{transform:translate(-10px,118vh)}}@keyframes pt-i-rise{0%{transform:translate(0)}50%{transform:translate(-26px,-60vh)}to{transform:translate(12px,-122vh)}}@keyframes pt-i-float{0%{transform:translate(0) rotate(-6deg)}to{transform:translate(10px,-22px) rotate(6deg)}}@keyframes pt-i-bob{0%{transform:rotate(-10deg)}to{transform:rotate(10deg)}}@keyframes pt-flap{0%{transform:scaleY(1)}to{transform:scaleY(.62)}}@media (max-width:900px){.pupil-fx__icon:nth-of-type(n+7),.pupil-fx__particles>i:nth-child(n+15){display:none}.pupil-fx__icon{opacity:.26}.pupil-fx__icon[data-depth="2"]{height:48px;opacity:.32;width:48px}.pupil-fx--neon .pupil-fx__scene:before{animation:none}}@media (prefers-reduced-motion:reduce){.pupil-fx *,.pupil-fx :after,.pupil-fx :before,.pupil-themed .hero-banner,.pupil-themed .mobile-person-period-card.is-now,.pupil-themed .now-next-card--now{animation:none!important}.pupil-fx__particles{display:none}.pupil-fx__icon{left:var(--x)!important;top:var(--y)!important}}@media print{.pupil-themed.pupil-themed{--pt-page:#fff;--pt-bg:#fff;--pt-page-text:#000;--pt-surface:#fff;--pt-glass:#fff;--pt-glass-strong:#fff;--pt-now-bg:#fff;--pt-alt:#eef2f6;--pt-today-tint:#0000;--pt-text:#000;--pt-muted:#334155;--pt-accent:#0b6b45;--pt-accent-2:#0b6b45;--pt-accent-text:#fff;--pt-line:#94a3b8;--pt-shine:#0000;--pt-shadow:#0000;--pt-mark-filter:none}.pupil-fx{display:none!important}.pupil-themed .hero-title-copy h1,.pupil-themed .pupil-timetable-title{-webkit-text-fill-color:#000!important;background:none!important}.pupil-themed *{animation:none!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important}}:root{--bg-body:#f8fafc;--text-primary:#0f172a;--card-bg:#fff;--border-light:#e2e8f0;--border-strong:#cbd5e1;--header-bg:#f1f5f9;--subheader-bg:#e2e8f0;--cell-hover:#eff6ff;--admin-bg:#fef2f2;--admin-border:#fca5a5;--pill-bg:#fff;--pill-border:#fca5a5;--vault-bg:#f1f5f9;--vault-border:#cbd5e1;--modal-bg:#fff;--shadow:0 1px 3px #0000001a;--fixed-slot-bg:#fef9e3;--fixed-slot-text:#0f172a}body.dark-mode{--bg-body:#0f172a;--text-primary:#e2e8f0;--card-bg:#1e293b;--border-light:#475569;--border-strong:#64748b;--header-bg:#0f172a;--subheader-bg:#1e293b;--cell-hover:#334155;--admin-bg:#2d1a1a;--admin-border:#7f1d1d;--pill-bg:#0f172a;--pill-border:#7f1d1d;--vault-bg:#0f172a;--vault-border:#475569;--modal-bg:#1e293b;--shadow:0 1px 3px #0000004d;--fixed-slot-bg:#3e2a1f;--fixed-slot-text:#fef9e3}*{box-sizing:border-box;margin:0;padding:0}body{color:#0f172a;color:var(--text-primary);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;transition:background .2s,color .2s}.system-loading-screen-backdrop,body{background:#f8fafc;background:var(--bg-body)}.system-loading-screen-backdrop{align-items:center;display:flex;height:100vh;justify-content:center;left:0;position:fixed;top:0;width:100vw;z-index:var(--z-loading-overlay)}.loading-card{background:#fff;background:var(--card-bg);border-radius:8px;box-shadow:0 1px 3px #0000001a;box-shadow:var(--shadow);color:#0f172a;color:var(--text-primary);padding:30px;text-align:center}.loading-card h2{font-size:18px;margin-top:0}.loading-card p{color:#526277;font-size:13px;line-height:1.5}.seed-action-btn-primary{background:#2563eb;border:none;border-radius:6px;color:#fff;cursor:pointer;font-size:14px;font-weight:700;margin-top:15px;padding:10px 20px;transition:background .1s}.seed-action-btn-primary:hover{background:#1d4ed8}@media print{.app-version-stamp{display:none!important}}:where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #1d4ed8;outline-offset:2px}.title{color:var(--text-primary);font-size:1.8rem;font-weight:700;margin-bottom:15px;text-align:center}.view-mode-switcher{margin:20px 0;text-align:center}.view-mode-switcher button{background:var(--card-bg);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);cursor:pointer;font-size:14px;margin:0 10px;padding:8px 16px;transition:all .1s}.view-mode-switcher button.active-view{background:#059669;border-color:#059669;color:#fff}.system-role-toggle-bar{display:flex;gap:6px;position:absolute;right:20px;top:20px;z-index:var(--z-header-nav)}.role-toggle-btn{background:#ffffffe6;box-sizing:border-box;font-size:.78rem;gap:5px;height:30px;line-height:1;min-height:30px;padding:0 11px}.role-toggle-btn:hover{background:var(--header-bg)}.modal-overlay-gate{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#00000080;display:flex;height:100%;inset:0;isolation:isolate;justify-content:center;position:fixed;width:100%;z-index:var(--z-modal-overlay)}.login-modal-card{background:var(--modal-bg);border-radius:1.5rem;box-shadow:0 25px 50px -12px #00000040;max-width:400px;padding:2rem;position:relative;width:100%;z-index:var(--z-modal-card)}.login-modal-card h3{color:var(--text-primary);font-size:1.5rem;font-weight:700;margin-bottom:1.5rem;text-align:center}.login-modal-card form{display:flex;flex-direction:column;gap:1rem}.login-modal-card input{background:var(--card-bg);border:1px solid var(--border-light);border-radius:.75rem;color:var(--text-primary);font-size:.875rem;padding:.75rem 1rem;transition:border .2s,box-shadow .2s;width:100%}.modal-action-buttons{display:flex;gap:.75rem;margin-top:.5rem}.login-submit-btn{background:#3b82f6;border:none;border-radius:.75rem;color:#fff;cursor:pointer;flex:1 1;font-weight:600;padding:.75rem;transition:background .2s}.login-submit-btn:hover{background:#2563eb}.login-cancel-btn{background:var(--header-bg);border:1px solid var(--border-light);border-radius:.75rem;color:var(--text-primary);cursor:pointer;flex:1 1;font-weight:600;padding:.75rem;transition:background .2s}.login-cancel-btn:hover{background:var(--border-light)}.error-text-display{color:#dc2626;font-size:.75rem;margin-top:-.5rem}.modal-overlay-gate~.dashboard-control-bar{z-index:auto}.role-toggle-btn.active-user-role{background:#059669;border-color:#059669;box-shadow:0 2px 4px #05966933;color:#fff}.role-toggle-btn.active-admin-role{background:#dc2626;border-color:#dc2626;color:#fff}.role-toggle-btn.logout-accent{background:var(--card-bg);color:#475569}.login-modal-card input:focus{border-color:#3b82f6;box-shadow:0 0 0 3px #3b82f633;outline:none}.hero-banner *{box-sizing:border-box}.hero-calendar-card>svg{display:block}.banner-values-mark{display:block;opacity:1;pointer-events:none;visibility:visible}.top-role-control-line{background:linear-gradient(90deg,#065f462e,#065f468f,#065f462e);height:2px;margin-bottom:12px;width:100%}.top-role-control-shell .system-role-toggle-bar{align-items:center;border:0;display:flex;gap:12px;margin:0;padding:0}.role-toggle-btn{align-items:center;background:#ffffffe0;border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;color:#475569;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.84rem;font-weight:800;gap:6px;height:34px;justify-content:center;letter-spacing:-.01em;min-height:34px;padding:0 13px;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease,background .16s ease}.role-toggle-btn:hover{box-shadow:0 10px 22px #0f172a17,inset 0 1px 0 #ffffffe6;transform:translateY(-1px)}.role-toggle-btn.active-admin-role,.role-toggle-btn.active-user-role{background:linear-gradient(135deg,#2563eb,#1d4ed8);border-color:#2563ebd1;box-shadow:0 10px 22px #2563eb3d,inset 0 1px 0 #ffffff38;color:#fff}.role-toggle-btn.logout-accent{color:#334155}.role-toggle-btn.logout-accent:hover{border-color:#065f4647;color:#065f46}.role-btn-icon{align-items:center;display:inline-flex;font-size:.92em;justify-content:center;line-height:1}.theme-toggle-shell{align-items:center;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#ffffffbd;border:1px solid #cbd5e1d1;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;box-sizing:border-box;display:inline-flex;gap:0;height:34px;padding:0}.theme-toggle-option{align-items:center;background:#0000;border:0;border-radius:999px;color:#526277;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.84rem;font-weight:850;gap:6px;height:32px;justify-content:center;letter-spacing:-.01em;min-height:32px;padding:0 13px;transition:background .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease}.theme-toggle-option:hover{transform:translateY(-1px)}.theme-toggle-option.active-light{background:#fffffff5;box-shadow:0 7px 16px #0f172a14,inset 0 1px 0 #ffffffeb;color:#065f46}.theme-toggle-option.active-dark{background:linear-gradient(135deg,#0f172a,#334155);box-shadow:0 7px 16px #0f172a2e,inset 0 1px 0 #ffffff1f;color:#fff}.theme-toggle-icon{align-items:center;border-radius:999px;display:inline-flex;font-size:1rem;height:22px;justify-content:center;line-height:1;width:22px}.theme-toggle-option.active-light .sun-icon{color:#064e3b;text-shadow:0 0 0 #064e3b,0 0 10px #f59e0b47}.theme-toggle-option .moon-icon{color:#526277}.theme-toggle-option.active-dark .moon-icon{color:#dbeafe}body.dark-mode .role-toggle-btn,body.dark-mode .theme-toggle-shell{background:#0f172ac7;border-color:#94a3b847}body.dark-mode .role-toggle-btn{color:#cbd5e1}body.dark-mode .role-toggle-btn.active-admin-role,body.dark-mode .role-toggle-btn.active-user-role{background:linear-gradient(135deg,#2563eb,#1d4ed8);color:#fff}body.dark-mode .theme-toggle-option.active-light{background:#ffffffeb;color:#065f46}@media (max-width:780px){.top-role-control-shell{margin-left:calc(50% - 50vw + 8px);margin-right:calc(50% - 50vw + 8px);width:calc(100vw - 16px)}.top-role-control-shell .system-role-toggle-bar{flex-wrap:wrap;justify-content:center}.role-toggle-btn,.theme-toggle-option{font-size:.82rem;min-height:34px;padding:0 13px}}.role-toggle-btn,.theme-toggle-option,.theme-toggle-shell{font-family:inherit}.role-toggle-btn,.theme-toggle-option{appearance:none;-webkit-appearance:none}.top-role-control-shell .top-role-control-line{margin-bottom:0;margin-top:24px}.theme-toggle-row{display:block;margin:0 0 16px;padding-left:0;width:100%}.live-date-time-badge{left:24px;left:calc(var(--app-shell-edge-gap, 20px) + 4px);position:absolute;top:20px;z-index:var(--z-header-nav)}.top-role-control-shell{margin:8px calc(50% - 50vw + 12px) 14px;max-width:none;width:calc(100vw - 24px)}.top-role-control-shell .system-role-toggle-bar{flex-wrap:nowrap;justify-content:flex-end;width:100%}@media (max-width:780px){.live-date-time-badge{font-size:.72rem;gap:5px;left:auto;margin:0 auto 6px;max-width:calc(100vw - 18px);min-height:26px;padding:0 10px;position:relative;top:auto;width:-webkit-fit-content;width:fit-content}.top-role-control-shell{margin:0 0 8px;width:100%}.top-role-control-shell .system-role-toggle-bar{flex-wrap:nowrap;gap:5px;justify-content:center;position:relative;right:auto;top:auto;width:100%}.top-role-control-shell .top-role-control-line{margin-top:8px}.role-toggle-btn{flex:0 1 auto;font-size:.72rem;gap:4px;height:28px;min-height:28px;padding:0 9px}.role-toggle-btn svg{height:12px;width:12px}.hero-banner{border-radius:14px;margin-bottom:10px;min-height:84px}.hero-banner-content{gap:10px;padding:10px 104px 10px 16px}.hero-calendar-card{border-radius:12px;height:48px;width:48px}.hero-title-kicker{font-size:.78rem;margin-bottom:3px}.hero-title-copy h1{font-size:clamp(1.36rem,6.4vw,2rem)}.hero-title-copy p{font-size:.78rem}.banner-values-mark{bottom:10px;right:12px;width:82px}.theme-toggle-row{margin-bottom:8px}}@media (max-width:420px){.top-role-control-shell .system-role-toggle-bar{gap:4px}.role-toggle-btn{font-size:.68rem;padding:0 7px}.role-toggle-btn span{max-width:72px;overflow:hidden;text-overflow:ellipsis}.hero-banner{min-height:72px}.hero-banner-content{padding:9px 84px 9px 12px}.hero-calendar-card{height:42px;width:42px}.hero-title-copy p{display:none}.banner-values-mark{width:68px}}@media (max-width:900px) and (orientation:landscape){.live-date-time-badge{display:none}.top-role-control-shell{margin-bottom:6px}.top-role-control-shell .top-role-control-line{display:none}.hero-banner{border-radius:12px;margin-bottom:7px;min-height:58px}.hero-banner-content{padding:7px 88px 7px 12px}.hero-calendar-card{border-radius:10px;height:38px;width:38px}.hero-title-copy p,.hero-title-kicker{display:none}.hero-title-copy h1{font-size:1.38rem}.banner-values-mark{bottom:7px;right:10px;width:66px}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--user .hero-banner{margin-bottom:7px;min-height:68px}.app-shell--user .hero-banner-content{gap:8px;padding:8px 74px 8px 12px}.app-shell--user .hero-calendar-card{height:38px;width:38px}.app-shell--user .hero-title-copy p,.app-shell--user .hero-title-kicker{display:none}.app-shell--user .hero-title-copy h1{font-size:clamp(1.12rem,5.7vw,1.55rem);line-height:1}.app-shell--user .banner-values-mark{bottom:7px;right:10px;width:58px}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.app-shell--user .hero-banner{display:none}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--compact-user .top-role-control-shell{margin:0 0 8px;width:100%}.app-shell--compact-user .system-role-toggle-bar{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(3,minmax(0,1fr));justify-content:stretch;position:relative;right:auto;top:auto;width:100%}.app-shell--compact-user .role-toggle-btn{font-size:.78rem;height:34px;min-height:34px;min-width:0;padding:0 8px;width:100%}.app-shell--compact-user .role-toggle-btn span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.app-shell--compact-user .top-role-control-line{display:none}}@media (max-width:420px){.app-shell--compact-user .role-toggle-btn{font-size:.72rem;padding:0 6px}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--compact-user .compact-user-topbar{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin:0 0 8px;width:100%}.app-shell--compact-user .compact-user-topbar .live-date-time-badge{font-size:.78rem;justify-self:start;left:auto;margin:0;max-width:100%;min-height:34px;padding:0 12px;position:relative;top:auto;width:-webkit-fit-content;width:fit-content}.app-shell--compact-user .compact-user-logout-button{align-items:center;background:#ffffffe6;border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;color:#475569;cursor:pointer;display:inline-flex;font:inherit;font-size:.78rem;font-weight:850;gap:6px;height:34px;justify-content:center;justify-self:end;min-height:34px;padding:0 12px}}@media (max-width:420px){.app-shell--compact-user .compact-user-topbar{gap:6px}.app-shell--compact-user .compact-user-logout-button,.app-shell--compact-user .compact-user-topbar .live-date-time-badge{font-size:.72rem;height:32px;min-height:32px;padding:0 10px}}@media (max-width:350px){.app-shell--compact-user .compact-user-topbar .live-date-time-badge span:nth-child(2){max-width:90px;overflow:hidden;text-overflow:ellipsis}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--compact-user .compact-user-topbar{grid-gap:8px;align-items:center;display:grid;gap:8px;grid-template-columns:minmax(0,1fr) auto;margin:0 0 8px;width:100%}.app-shell--compact-user .compact-user-topbar .live-date-time-badge{display:inline-flex;font-size:.78rem;left:auto;margin:0;max-width:100%;min-height:34px;padding:0 12px;position:relative;top:auto;width:-webkit-fit-content;width:fit-content}.app-shell--compact-user .compact-user-logout-button{align-items:center;background:#fffffff0;border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;color:#475569;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.78rem;font-weight:850;gap:6px;height:34px;justify-content:center;min-height:34px;min-width:94px;padding:0 12px}.app-shell--compact-user .hero-banner,.app-shell--compact-user .system-role-toggle-bar,.app-shell--compact-user .top-role-control-shell{display:none}}@media (max-width:430px){.app-shell--compact-user .compact-user-topbar{gap:6px}.app-shell--compact-user .compact-user-topbar .live-date-time-badge{font-size:.72rem;min-height:32px;padding:0 9px}.app-shell--compact-user .compact-user-logout-button{font-size:.72rem;height:32px;min-height:32px;min-width:82px;padding:0 9px}}.compact-user-topbar{align-items:center;display:flex;gap:12px;justify-content:space-between;margin:0 0 12px;padding:0 4px;position:relative;width:100%}.compact-user-topbar .live-date-time-badge{flex-shrink:0;left:auto;position:relative;top:auto;z-index:auto}.compact-user-logout-button{align-items:center;background:#ffffffe6;background:var(--card-bg,#ffffffe6);border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;color:#475569;cursor:pointer;display:inline-flex;flex-shrink:0;font-family:inherit;font-size:.82rem;font-weight:850;gap:6px;height:36px;justify-content:center;min-height:36px;padding:0 18px;transition:background .12s ease,box-shadow .12s ease}.compact-user-logout-button:hover{background:#fff;background:var(--card-bg,#fff);box-shadow:0 10px 22px #0f172a1a,inset 0 1px 0 #ffffffe0}@media (max-width:760px){.app-shell--user:not(.app-shell--compact-user) .top-role-control-shell{margin:0 0 10px;width:100%}.app-shell--user:not(.app-shell--compact-user) .top-role-control-shell .system-role-toggle-bar{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:3px;scrollbar-width:thin}.app-shell--user:not(.app-shell--compact-user) .role-toggle-btn{flex:0 0 auto}}@media (min-width:781px) and (max-width:1024px){.app-shell:not(.app-shell--compact-user) .live-date-time-badge{left:auto;margin:8px auto 6px;position:relative;top:auto;width:-webkit-fit-content;width:fit-content}.app-shell:not(.app-shell--compact-user) .top-role-control-shell{margin:0 0 8px;width:100%}.app-shell:not(.app-shell--compact-user) .top-role-control-shell .system-role-toggle-bar{flex-wrap:wrap;gap:8px;justify-content:center;position:relative;right:auto;top:auto;width:100%}.app-shell:not(.app-shell--compact-user) .top-role-control-shell .top-role-control-line{margin-top:8px}}.dashboard-control-bar{display:flex;gap:15px;isolation:isolate;justify-content:center;margin-bottom:25px;position:relative;z-index:var(--z-admin-control-bar)}.dropdown-container{position:relative;z-index:var(--z-admin-dropdown-local)}.dropdown-button{align-items:center;background:var(--card-bg);border:1px solid var(--border-light);border-radius:6px;box-shadow:var(--shadow);color:var(--text-primary);cursor:pointer;display:flex;font-size:14px;font-weight:600;gap:10px;padding:10px 16px;transition:all .15s ease}.dropdown-button:hover{background:var(--header-bg);border-color:var(--border-strong)}.dropdown-badge{background:#059669;border-radius:10px;color:#fff;font-size:11px;font-weight:700;padding:2px 7px}.dropdown-arrow{color:#526277;font-size:10px}.dropdown-menu{grid-gap:20px;background:var(--card-bg);border:1px solid var(--border-light);border-radius:8px;box-shadow:0 10px 25px -5px #0000001a;display:grid;gap:20px;left:50%;padding:16px;position:absolute;top:110%;transform:translateX(-50%);width:auto;z-index:var(--z-admin-panel)}.dropdown-section{display:flex;flex-direction:column;gap:6px}.dropdown-section-header-checkbox{border-bottom:1px solid var(--border-light);color:var(--text-primary);font-size:11px;font-weight:700;margin-bottom:4px;padding-bottom:6px;text-transform:uppercase;-webkit-user-select:none;user-select:none}.dropdown-item,.dropdown-section-header-checkbox{align-items:center;cursor:pointer;display:flex;gap:8px}.dropdown-item{border-radius:4px;padding:4px;transition:background .15s}.dropdown-item:hover{background:var(--header-bg)}.dropdown-item input{cursor:pointer}.dropdown-item-text{color:var(--text-primary);font-size:13px}.lessons-panel-scroll{width:520px}.lessons-grid-split-override{grid-column:1/-1}.lessons-checkbox-matrix{grid-gap:4px 15px;display:grid;gap:4px 15px;grid-template-columns:repeat(2,1fr)}.timetable-master-container{-ms-overflow-style:none;-webkit-overflow-scrolling:touch;background:var(--card-bg);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow);box-sizing:border-box;margin:40px auto 20px;max-width:100%;overflow-x:hidden;overflow-y:visible;scrollbar-width:none;width:100%}.tt-grid-sheet{--tt-day-col:78px;--tt-group-col:190px;--tt-subject-col:118px;--tt-teacher-col:104px;--tt-support-col:104px;--tt-students-col:235px;--tt-room-col:104px;--tt-header-row:74px;--tt-subheader-row:26px;--tt-row-min:56px;--tt-period-width:calc(var(--tt-subject-col) + var(--tt-teacher-col) + var(--tt-support-col) + var(--tt-students-col) + var(--tt-room-col));--tt-sheet-width:calc(var(--tt-day-col) + var(--tt-group-col) + var(--tt-period-width)*5);align-items:stretch;background:var(--card-bg);display:grid;grid-auto-rows:minmax(var(--tt-row-min),auto);grid-template-columns:var(--tt-day-col) var(--tt-group-col) var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(
      --tt-students-col
    ) var(--tt-room-col) var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(
      --tt-students-col
    ) var(--tt-room-col) var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(
      --tt-students-col
    ) var(--tt-room-col) var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(
      --tt-students-col
    ) var(--tt-room-col) var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(
      --tt-students-col
    ) var(--tt-room-col);grid-template-rows:var(--tt-header-row) var(--tt-subheader-row);margin-left:0;margin-right:0;max-width:var(--tt-sheet-width);width:var(--tt-sheet-width)}.tt-corner-cell,.tt-day-label,.tt-group-header,.tt-group-label,.tt-period-body-cell,.tt-period-header,.tt-sub-header{border-bottom:1px solid var(--border-strong);border-right:1px solid var(--border-strong);box-sizing:border-box}.tt-corner-cell,.tt-day-label,.tt-group-header,.tt-group-label,.tt-period-header,.tt-sub-header{background:var(--header-bg);color:var(--text-primary)}.tt-corner-cell,.tt-group-header{align-self:stretch}.tt-group-header,.tt-period-header{align-items:center;display:flex;font-weight:800;justify-content:center;text-align:center}.tt-period-header{flex-direction:column;padding:6px 4px}.tt-period-header .period-title-text{font-size:16px;font-size:var(--tt-period-title-font,16px);font-weight:800;line-height:1.2;margin:0;padding:0 0 5px}.tt-period-header .period-time-text{font-size:10px;font-size:var(--tt-period-time-font,10px);font-weight:500;line-height:1.2;margin:0;padding:0}.tt-sub-header{background:var(--subheader-bg);color:var(--text-primary);font-size:10px;font-size:var(--tt-subheader-font,10px);min-height:0}.tt-day-label,.tt-sub-header{align-items:center;align-self:stretch;display:flex;font-weight:800;justify-content:center}.tt-day-label{font-size:13px;font-size:var(--tt-day-label-font,13px);min-width:0;overflow:hidden;padding:6px;padding:calc(6px*var(--tt-scale, 1));text-align:center;text-overflow:ellipsis;white-space:nowrap}.tt-group-label{align-items:center;align-self:stretch;border-left:none;border-top:none;display:flex;font-size:12px;font-size:var(--tt-group-label-font,12px);font-weight:700;gap:8px;gap:calc(8px*var(--tt-scale, 1));justify-content:flex-start;letter-spacing:0;line-height:1.18;min-height:var(--tt-row-min);overflow-wrap:anywhere;padding:6px 9px;padding:calc(6px*var(--tt-scale, 1)) calc(9px*var(--tt-scale, 1));text-align:left;white-space:normal;word-break:normal}.clickable-group-row-label{cursor:pointer;touch-action:none;-webkit-user-select:none;user-select:none}.clickable-group-row-label:hover{background:#a7f3d05c;box-shadow:inset 0 0 0 1px #6ee7b7}.tt-period-body-cell{align-self:stretch;background:var(--card-bg);min-height:var(--tt-row-min);overflow:visible}.tt-period-body-cell .timetable-content-cell{background:#0000;border:none;box-shadow:none;height:100%;min-height:var(--tt-row-min);width:100%}.tt-period-body-cell .cell-interior-grid-lines{align-items:stretch;display:grid;grid-template-columns:var(--tt-subject-col) var(--tt-teacher-col) var(--tt-support-col) var(--tt-students-col) var(--tt-room-col);height:100%;min-height:var(--tt-row-min);width:var(--tt-period-width)}.tt-period-body-cell .sub-cell{align-items:center;align-self:stretch;border-right:1px solid var(--border-light);box-sizing:border-box;color:var(--text-primary);display:flex;flex-direction:column;font-size:11px;font-size:var(--tt-cell-font,11px);font-weight:500;height:auto;justify-content:center;min-height:var(--tt-row-min);overflow:visible;overflow-wrap:anywhere;padding:4px;padding:var(--tt-cell-padding,4px);position:relative;text-align:center;word-break:normal}.tt-period-body-cell .sub-cell:last-child{border-right:none}.sub-cell.subject-cell{background:#0000;color:var(--text-primary);font-weight:800}.tt-period-body-cell .sub-cell[data-sub-cell=students],.tt-sub-header-students,.tt-sub-header[data-sub-cell=students]{border-right:1px solid var(--border-light)}.tt-period-body-cell .sub-cell[data-sub-cell=room],.tt-sub-header-room,.tt-sub-header[data-sub-cell=room]{border-left:none}.staff-badge-container,.student-badge-container{align-content:center;align-items:center;box-sizing:border-box;display:flex;flex-direction:row;flex-wrap:wrap;gap:3px;justify-content:center;line-height:1;max-width:100%;min-width:0;overflow:visible;padding:2px;width:100%}.student-badge-container{padding-right:3px}.staff-badge,.student-badge{flex:0 0 auto;font-size:9px;font-weight:700;white-space:nowrap}.staff-badge{box-shadow:0 1px 2px #0000000d}.staff-badge,.student-badge{border-radius:4px;display:inline-block;font-size:9px;font-weight:700;padding:2px 4px}.student-badge{background:#e2e8f0;border:1px solid var(--border-light);color:#334155}.clickable-admin-cell{cursor:pointer;transition:background-color .1s ease,box-shadow .1s ease}.cell-group-label,.sub-cell.group-cell{display:none}.clickable-admin-cell:hover{background:#0000;box-shadow:none}.clickable-admin-cell .sub-cell:hover{background-color:#a7f3d04d;box-shadow:inset 0 0 0 1px #6ee7b7}.timetable-content-cell.selected-cell,.timetable-content-cell.selected-cell .sub-cell{background-color:initial;box-shadow:none}.timetable-content-cell.selected-cell .sub-cell.subject-cell{background-color:initial;color:var(--text-primary)}.timetable-content-cell.selected-cell .sub-cell.selected-sub-cell{background-color:#10b98138;box-shadow:inset 0 0 0 2px #10b981}.timetable-content-cell.selected-cell .sub-cell.subject-cell.selected-sub-cell{background-color:#10b98138;color:var(--text-primary)}.timetable-content-cell.selected-cell .sub-cell.group-cell,.timetable-content-cell.selected-cell .sub-cell.group-cell.selected-sub-cell{display:none}.draggable-sub-cell{position:relative;touch-action:none}.draggable-source-pill:active,.draggable-sub-cell:active{cursor:grabbing}.sub-cell-drag-over{background-color:#22c55e2e;box-shadow:inset 0 0 0 2px #22c55e;outline:3px dashed #059669;outline-offset:-3px}.cell-value-with-delete{align-items:center;display:inline-flex;gap:4px;justify-content:center;max-width:100%}.cell-badge-with-delete{align-items:center;display:inline-flex;gap:3px;padding-right:3px}.cell-value-delete-btn{align-items:center;background:#0f172ab8;border:none;border-radius:999px;color:#fff;cursor:pointer;display:inline-flex;font-size:11px;font-weight:800;height:14px;justify-content:center;line-height:14px;min-width:14px;opacity:.75;padding:0;width:14px}.cell-value-delete-btn:hover{background:#dc2626;opacity:1;transform:scale(1.08)}.group-row-drag-handle{color:#526277;flex:0 0 auto;font-weight:900;letter-spacing:-2px;-webkit-user-select:none;user-select:none}.group-row-dragging{background:#d1fae5;box-shadow:0 8px 18px #0f172a2e}.group-row-reorder-over{background:#22c55e2e;box-shadow:inset 0 0 0 2px #22c55e}.selected-group-row-label{background:#10b98129;box-shadow:inset 0 0 0 2px #10b981}.group-row-name-text{flex:1 1 auto;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.group-row-hide-button{background:var(--card-bg);border:1px solid var(--border-light);border-radius:999px;color:var(--text-primary);cursor:pointer;flex:0 0 auto;font-size:11px;line-height:1.2;opacity:.6;padding:1px 5px;transition:opacity .12s ease,background .12s ease,transform .12s ease}.tt-group-label:hover .group-row-hide-button{opacity:1}.group-row-hide-button:hover{background:#fee2e2;transform:scale(1.05)}.selected-group-row-period-cell{background:#10b9811a}.selected-group-row-period-cell .timetable-content-cell,.timetable-content-cell.selected-group-row-cell{background:#0000;box-shadow:none}.selected-group-row-period-cell .sub-cell,.timetable-content-cell.selected-group-row-cell .sub-cell,.timetable-content-cell.selected-group-row-cell .sub-cell.selected-sub-cell{background-color:initial;box-shadow:none}.timetable-content-cell.selected-cell:not(.selected-group-row-cell) .sub-cell.selected-sub-cell{background-color:#10b98138;box-shadow:inset 0 0 0 2px #10b981}.tt-period-body-cell .sub-cell.subject-cell{font-weight:500}.tt-group-header,.tt-period-header .period-title-text,.tt-sub-header{font-weight:800}.tt-period-body-cell .sub-cell[data-sub-cell=room]{font-weight:500}.tt-period-body-cell .sub-cell[data-sub-cell=students]{border-right:0;padding-right:8px}.tt-period-body-cell .sub-cell[data-sub-cell=room]{border-left:1px solid var(--border-light)}.tt-sub-header-students,.tt-sub-header[data-sub-cell=students]{border-right:0}.tt-sub-header-room,.tt-sub-header[data-sub-cell=room]{border-left:1px solid var(--border-strong)}.real-students-room-divider,.tt-period-body-cell .sub-cell[data-sub-cell=room]:before,.tt-period-body-cell .sub-cell[data-sub-cell=students]:after,.tt-sub-header-room:before,.tt-sub-header-students:after,.tt-sub-header[data-sub-cell=room]:before,.tt-sub-header[data-sub-cell=students]:after{content:none;display:none}.timetable-scroll-shell{--tt-day-col:78px;--tt-group-col:190px;--tt-subject-col:118px;--tt-teacher-col:104px;--tt-support-col:104px;--tt-students-col:235px;--tt-room-col:104px;--tt-period-width:calc(var(--tt-subject-col) + var(--tt-teacher-col) + var(--tt-support-col) + var(--tt-students-col) + var(--tt-room-col));--tt-sheet-width:calc(var(--tt-day-col) + var(--tt-group-col) + var(--tt-period-width)*5);max-width:100%;overflow-x:hidden;padding-bottom:44px;position:relative;width:100%}.tt-grid-sheet{grid-template-columns:var(--tt-day-col) var(--tt-group-col) minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr) minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr) minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr) minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr) minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr);max-width:none;min-width:var(--tt-sheet-width);width:max(var(--tt-sheet-width),100%)}.tt-period-body-cell .cell-interior-grid-lines{grid-template-columns:minmax(var(--tt-subject-col),1fr) minmax(var(--tt-teacher-col),.95fr) minmax(var(--tt-support-col),.95fr) minmax(var(--tt-students-col),2.1fr) minmax(var(--tt-room-col),.95fr);width:100%}.timetable-interaction-area{position:relative}.cell-badge-with-delete,.staff-badge,.student-badge,.sub-cell-drop-disabled,.tt-period-body-cell .cell-value-with-delete,.tt-period-body-cell .sub-cell,.tt-period-body-cell .sub-cell span,.tt-period-body-cell .sub-cell.sub-cell-drop-disabled{filter:none;opacity:1}.tt-period-body-cell .sub-cell.subject-cell,.tt-period-body-cell .sub-cell[data-sub-cell=room]{color:var(--text-primary)}.scheduler-picker-pill,.staff-badge,.staff-picker-pill{align-items:center;box-sizing:border-box;display:inline-flex;height:18px;justify-content:center;line-height:1;min-width:26px;padding:0 5px;text-align:center;white-space:nowrap}.staff-badge{vertical-align:middle}.timetable-floating-dragbar{align-items:center;bottom:8px;bottom:var(--app-overlay-dragbar-bottom,8px);box-sizing:border-box;cursor:pointer;display:flex;height:28px;height:var(--app-overlay-dragbar-height,28px);left:16px;opacity:1;pointer-events:auto;position:fixed;right:16px;visibility:visible;width:calc(100vw - 32px);z-index:var(--z-dragbar);z-index:var(--app-overlay-dragbar-z,var(--z-dragbar))}.timetable-floating-dragbar-track{background:#e2e8f0fa;border:1px solid #cbd5e1f2;border-radius:999px;box-shadow:0 8px 20px #0f172a2e;height:13px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.timetable-floating-dragbar-thumb{background:#94a3b8;border:1px solid #64748be6;border-radius:999px;bottom:0;box-shadow:inset 0 1px 0 #ffffff73;min-width:72px;position:absolute;top:0;touch-action:none;-webkit-user-select:none;user-select:none;will-change:left,width}.timetable-floating-dragbar:hover .timetable-floating-dragbar-thumb{background:#64748b}.timetable-master-container::-webkit-scrollbar{display:none;height:0;width:0}@media (max-width:900px){.tt-grid-sheet{--tt-day-col:78px;--tt-group-col:180px;--tt-subject-col:118px;--tt-teacher-col:104px;--tt-support-col:104px;--tt-students-col:235px;--tt-room-col:104px;--tt-row-min:56px}.timetable-scroll-shell{--tt-day-col:78px;--tt-group-col:180px;--tt-subject-col:118px;--tt-teacher-col:104px;--tt-support-col:104px;--tt-students-col:235px;--tt-room-col:104px}}@supports (grid-template-columns:subgrid){.tt-period-body-cell{align-items:stretch;display:grid;grid-template-columns:subgrid;overflow:visible}.tt-period-body-cell .cell-interior-grid-lines,.tt-period-body-cell .timetable-content-cell{display:contents}.tt-period-body-cell.has-cover-badge{grid-template-rows:minmax(var(--tt-row-min),1fr) auto}.tt-period-body-cell .sub-cell{align-self:stretch;height:auto;min-height:var(--tt-row-min);min-width:0;width:auto}.selected-group-row-period-cell .sub-cell{background-color:#10b98114}.timetable-content-cell.selected-cell:not(.selected-group-row-cell) .sub-cell.selected-sub-cell{background-color:#10b98138;box-shadow:inset 0 0 0 2px #10b981}.tt-period-body-cell .sub-cell[data-sub-cell=students]{border-right:0}.tt-period-body-cell .sub-cell[data-sub-cell=room]{border-left:1px solid var(--border-light)}}@supports not (grid-template-columns:subgrid){.tt-period-body-cell .cell-interior-grid-lines{grid-template-columns:minmax(0,17.105263%) minmax(0,15.789474%) minmax(0,15.789474%) minmax(0,35.526316%) minmax(0,15.789474%);width:100%}}.end-user-view .staff-badge,.public-timetable-view .staff-badge,.user-view .staff-badge{align-items:center;box-sizing:border-box;display:inline-flex;height:18px;justify-content:center;line-height:1;min-width:26px;padding:0 5px;text-align:center;white-space:nowrap}.cell-badge-with-delete.staff-badge,.cell-badge-with-delete.student-badge{align-items:center;box-sizing:border-box;display:inline-flex;gap:2px;height:18px;justify-content:center;line-height:1;min-width:26px;padding:0 3px 0 5px;white-space:nowrap}.cell-badge-with-delete .cell-value-delete-btn{font-size:8px;height:10px;line-height:10px;margin-left:1px;min-width:10px;opacity:.75;width:10px}.cell-badge-with-delete .cell-value-delete-btn:hover{opacity:1;transform:scale(1.08)}.timetable-master-container--touch-scroll,.timetable-master-container--touch-scroll .cell-badge-with-delete,.timetable-master-container--touch-scroll .cell-interior-grid-lines,.timetable-master-container--touch-scroll .draggable-sub-cell,.timetable-master-container--touch-scroll .screen-staff-colour-segment,.timetable-master-container--touch-scroll .student-badge,.timetable-master-container--touch-scroll .sub-cell,.timetable-master-container--touch-scroll .timetable-content-cell,.timetable-master-container--touch-scroll .tt-grid-sheet,.timetable-master-container--touch-scroll .tt-period-body-cell{touch-action:pan-x pan-y pinch-zoom}.timetable-master-container--touch-scroll::-webkit-scrollbar{display:block;height:12px;width:12px}.timetable-scroll-shell--mobile-day-view{padding-bottom:18px}.timetable-scroll-shell--mobile-day-view .timetable-master-container{border-radius:10px;margin-top:10px}.timetable-master-container--mobile-day-view{overscroll-behavior-x:contain;overscroll-behavior-y:auto}.timetable-master-container--mobile-day-view .tt-day-label,.timetable-master-container--mobile-day-view .tt-group-label{position:-webkit-sticky;position:sticky;z-index:90}.timetable-master-container--mobile-day-view .tt-day-label{left:0}.timetable-master-container--mobile-day-view .tt-group-header,.timetable-master-container--mobile-day-view .tt-group-label{left:var(--tt-day-col)}@media (max-width:767px){.mobile-day-view-selector{position:-webkit-sticky;position:sticky;top:0;z-index:120}.timetable-master-container--mobile-day-view .tt-period-header{padding:4px 3px}.timetable-master-container--mobile-day-view .tt-period-header .period-title-text{font-size:max(11px,12px);font-size:max(11px,var(--tt-period-title-font,12px))}.timetable-master-container--mobile-day-view .tt-period-header .period-time-text{font-size:max(8px,8px);font-size:max(8px,var(--tt-period-time-font,8px))}.timetable-master-container--mobile-day-view .tt-sub-header{font-size:max(8px,8px);font-size:max(8px,var(--tt-subheader-font,8px))}.timetable-master-container--mobile-day-view .tt-group-label{font-size:max(9px,10px);font-size:max(9px,var(--tt-group-label-font,10px));padding-left:5px;padding-right:5px}.timetable-master-container--mobile-day-view .tt-corner-cell,.timetable-master-container--mobile-day-view .tt-group-header{position:-webkit-sticky;position:sticky;z-index:110}.timetable-master-container--mobile-day-view .tt-corner-cell{left:0}}.mobile-day-view-selector{background:linear-gradient(135deg,#ecfdf5f7,#f8fafcf7);border:1px solid #a7f3d0f2;border-radius:12px;box-shadow:0 6px 14px #0f172a0f;color:#065f46;display:flex;flex-direction:column;gap:6px;margin:0 0 8px;padding:8px 9px}.mobile-day-view-selector__title{font-size:12px;font-weight:950;line-height:1.2}.mobile-day-view-selector__rail{-webkit-overflow-scrolling:touch;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px}.mobile-day-view-selector__button{background:#ffffffeb;border:1px solid #a7f3d0f2;border-radius:999px;box-shadow:0 3px 9px #0f172a0d;color:#065f46;flex:0 0 auto;font-family:inherit;font-size:12px;font-weight:950;line-height:1;min-width:58px;padding:7px 10px;touch-action:manipulation}.mobile-day-view-selector__button--active{background:#059669;border-color:#047857;box-shadow:0 6px 14px #05966933;color:#fff}@media (min-width:768px){.mobile-day-view-selector{display:none}}@media (max-width:780px){.timetable-master-container{margin-top:12px}}@media (max-width:900px) and (orientation:landscape){.timetable-master-container{margin-top:6px}}.mobile-day-card-view{grid-gap:10px;display:grid;gap:10px;margin:6px auto 18px;max-width:100%;touch-action:pan-y;width:100%}.mobile-day-card-view__header{grid-gap:8px;align-items:center;background:linear-gradient(135deg,#ecfdf5fa,#fffffff0);border:1px solid #a7f3d0f2;border-radius:18px;box-shadow:0 10px 24px #0f172a14;display:grid;gap:8px;grid-template-columns:44px 1fr 44px;padding:10px}.mobile-day-card-view__arrow{align-items:center;background:#fff;border:1px solid #05966957;border-radius:999px;box-shadow:0 8px 18px #0f172a14,inset 0 1px 0 #ffffffe6;color:#065f46;cursor:pointer;display:inline-flex;font:inherit;font-size:2rem;font-weight:900;height:44px;justify-content:center;line-height:1;width:44px}.mobile-day-card-view__title-block{grid-gap:2px;display:grid;gap:2px;min-width:0;text-align:center}.mobile-day-card-view__kicker{color:#059669;font-size:.72rem;font-weight:950;letter-spacing:.06em;text-transform:uppercase}.mobile-day-card-view__title-block h2{color:#064e3b;font-size:clamp(1.55rem,7.4vw,2.25rem);font-weight:950;letter-spacing:-.055em;line-height:1;margin:0}.mobile-day-card-view__title-block p{color:#526277;font-size:.76rem;font-weight:760;line-height:1.18;margin:0}.mobile-day-card-view__rail{grid-gap:7px;background:#ecfdf5e6;border:1px solid #a7f3d0f2;border-radius:999px;display:grid;gap:7px;grid-template-columns:repeat(5,minmax(0,1fr));padding:4px}.mobile-day-card-view__day-button{background:#ffffffeb;border:1px solid #a7f3d0f2;border-radius:999px;color:#065f46;cursor:pointer;font:inherit;font-size:.84rem;font-weight:900;min-height:34px}.mobile-day-card-view__day-button.is-active{background:linear-gradient(135deg,#059669,#047857);border-color:#059669b8;box-shadow:0 8px 18px #0596692e;color:#fff}.mobile-day-card-view__empty,.mobile-day-card-view__summary{background:#ffffffd1;border:1px solid #a7f3d0d6;border-radius:14px;color:#475569;font-size:.82rem;font-weight:820;padding:8px 10px;text-align:center}.mobile-day-card-view__summary strong{color:#065f46;font-weight:950}.mobile-day-card-list{grid-gap:10px;display:grid;gap:10px}.mobile-day-group-card{background:#fffffff0;border:1px solid #cbd5e1db;border-radius:18px;box-shadow:0 10px 26px #0f172a14,inset 0 1px 0 #ffffffd6;overflow:hidden}.mobile-day-group-card__header{align-items:center;background:linear-gradient(135deg,#ecfdf5fa,#f8fafcf5);border-bottom:1px solid #cbd5e1d6;display:flex;gap:8px;justify-content:space-between;padding:10px 12px}.mobile-day-group-card__header h3{color:#0f172a;font-size:1rem;font-weight:950;letter-spacing:-.025em;line-height:1;margin:0}.mobile-day-group-card__periods{display:grid;grid-template-columns:1fr}.mobile-day-period-card{grid-gap:10px;background:#fff;border:0;border-bottom:1px solid #e2e8f0f5;color:#0f172a;cursor:pointer;display:grid;font:inherit;gap:10px;grid-template-columns:68px minmax(0,1fr);padding:9px 10px;text-align:left;width:100%}.mobile-day-period-card:last-child{border-bottom:0}.mobile-day-period-card.has-content{background:linear-gradient(90deg,#ecfdf5b8,#fff 32%)}.mobile-day-period-card__head{grid-gap:3px;align-content:start;display:grid;gap:3px}.mobile-day-period-card__period{background:#ecfdf5;border-radius:999px;color:#065f46;font-size:.76rem;font-weight:950;line-height:1;padding:4px 8px;width:-webkit-fit-content;width:fit-content}.mobile-day-period-card__time{color:#526277;font-size:.66rem;font-weight:760;line-height:1.1}.mobile-day-period-card__body{grid-gap:6px;align-content:center;display:grid;gap:6px;min-width:0}.mobile-day-period-card__subject{color:#0f172a;font-size:.92rem;font-weight:900;line-height:1.1}.mobile-day-period-card.is-empty .mobile-day-period-card__subject{color:#94a3b8;font-weight:800}.mobile-day-period-card__staff-row{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.mobile-day-card__pills{align-items:center;display:inline-flex;flex-wrap:wrap;gap:5px}.mobile-day-card__pill{background:#e2e8f0;border:1px solid #cbd5e1e0;border-radius:8px;color:#334155;font-size:.74rem;font-weight:900;line-height:1;min-height:22px;padding:3px 7px}.mobile-day-card__pills--support .mobile-day-card__pill{background:#ecfdf5;border-color:#05966933;color:#065f46}.mobile-day-card__pills--student .mobile-day-card__pill{background:#eef2ff;border-color:#cbd5e1e6;color:#334155}.mobile-day-period-card__room{color:#475569;font-size:.76rem;font-weight:760;line-height:1.1}.mobile-day-period-card__room strong{color:#065f46;font-weight:930}@media (max-width:420px){.mobile-day-card-view{gap:8px;margin-top:4px}.mobile-day-card-view__header{border-radius:16px;grid-template-columns:38px 1fr 38px;padding:8px}.mobile-day-card-view__arrow{font-size:1.7rem;height:38px;width:38px}.mobile-day-card-view__title-block p{display:none}.mobile-day-card-view__rail{gap:5px}.mobile-day-card-view__day-button{font-size:.78rem;min-height:31px}.mobile-day-period-card{gap:8px;grid-template-columns:58px minmax(0,1fr);padding:8px}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.mobile-day-card-view{gap:7px;margin-top:4px}.mobile-day-card-view__header{border-radius:14px;grid-template-columns:36px 1fr 36px;padding:6px 8px}.mobile-day-card-view__arrow{font-size:1.6rem;height:34px;width:36px}.mobile-day-card-view__title-block{align-items:baseline;display:flex;gap:10px;justify-content:center}.mobile-day-card-view__title-block h2{font-size:1.35rem}.mobile-day-card-view__kicker,.mobile-day-card-view__summary,.mobile-day-card-view__title-block p{display:none}.mobile-day-card-view__rail{justify-self:center;width:min(520px,100%)}.mobile-day-card-view__day-button{font-size:.76rem;min-height:28px}.mobile-day-card-list{gap:7px}.mobile-day-group-card{border-radius:14px}.mobile-day-group-card__header{padding:7px 10px}.mobile-day-group-card__periods{grid-template-columns:repeat(5,minmax(130px,1fr))}.mobile-day-period-card{border-bottom:0;border-right:1px solid #e2e8f0f5;gap:5px;grid-template-columns:1fr;padding:7px 8px}.mobile-day-period-card:last-child{border-right:0}.mobile-day-period-card__head{align-items:center;display:flex;justify-content:space-between}.mobile-day-period-card__subject{font-size:.82rem}.mobile-day-card__pill{font-size:.66rem;min-height:19px;padding:2px 5px}.mobile-day-period-card__room{font-size:.68rem}}@media (min-width:781px) and (max-width:1024px){.app-shell--user .mobile-day-card-view{gap:12px;margin-top:8px}.app-shell--user .mobile-day-card-view__header{grid-template-columns:48px 1fr 48px;padding:10px 12px}.app-shell--user .mobile-day-card-view__title-block{align-items:baseline;display:flex;gap:12px;justify-content:center}.app-shell--user .mobile-day-card-view__title-block h2{font-size:clamp(1.65rem,3.4vw,2.25rem)}.app-shell--user .mobile-day-card-view__title-block p{font-size:.82rem}.app-shell--user .mobile-day-card-view__rail{justify-self:center;width:min(620px,100%)}.app-shell--user .mobile-day-card-list{gap:12px}.app-shell--user .mobile-day-group-card__periods{grid-template-columns:repeat(5,minmax(128px,1fr))}.app-shell--user .mobile-day-period-card{border-bottom:0;border-right:1px solid #e2e8f0f5;gap:6px;grid-template-columns:1fr;padding:9px}.app-shell--user .mobile-day-period-card:last-child{border-right:0}.app-shell--user .mobile-day-period-card__head{align-items:center;display:flex;justify-content:space-between}.app-shell--user .mobile-day-period-card__subject{font-size:.86rem}.app-shell--user .mobile-day-card__pill{font-size:.68rem;min-height:20px;padding:2px 5px}}@media (min-width:781px) and (max-width:1024px) and (orientation:portrait){.app-shell--user .mobile-day-group-card__periods{-webkit-overflow-scrolling:touch;grid-template-columns:repeat(5,minmax(118px,1fr));overflow-x:auto;scrollbar-width:thin}.app-shell--user .mobile-day-period-card{min-width:118px}}.tt-period-body-cell .sub-cell[data-sub-cell=room],.tt-sub-header-room,.tt-sub-header[data-sub-cell=room]{overflow-wrap:normal;white-space:nowrap;word-break:normal}.tt-period-body-cell .sub-cell[data-sub-cell=room]{line-height:1.05;overflow:hidden}.tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value,.tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value span{display:block;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:normal;text-overflow:clip;white-space:nowrap;width:100%;word-break:normal}.tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value span{font-size:9.9px;font-size:calc(var(--tt-cell-font, 11px)*.9);letter-spacing:-.03em;transform:scaleX(.92);transform-origin:center}.tt-grid-sheet[style*="--tt-scale: 0.55"] .tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value span,.tt-grid-sheet[style*="--tt-scale: 0.6"] .tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value span,.tt-grid-sheet[style*="--tt-scale: 0.65"] .tt-period-body-cell .sub-cell[data-sub-cell=room] .room-cell-value span{font-size:9.02px;font-size:calc(var(--tt-cell-font, 11px)*.82);letter-spacing:-.05em;transform:scaleX(.86)}.tt-period-body-cell .sub-cell.room-cell{align-items:center;justify-content:center;line-height:1;overflow:hidden;overflow-wrap:normal;padding-left:1px;padding-right:1px;text-align:center;white-space:nowrap;word-break:keep-all}.tt-period-body-cell .sub-cell.room-cell .cell-value-with-delete,.tt-period-body-cell .sub-cell.room-cell .room-cell-value{display:block;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:normal;text-overflow:clip;white-space:nowrap;width:100%;word-break:keep-all}.tt-period-body-cell .sub-cell.room-cell .room-cell-value>span{display:inline-block;font-size:9.02px;font-size:calc(var(--tt-cell-font, 11px)*.82);letter-spacing:-.06em;max-width:100%;text-overflow:clip;transform:scaleX(.8);transform-origin:center;vertical-align:middle}.tt-period-body-cell .sub-cell.room-cell .room-cell-value>span,.tt-period-body-cell .sub-cell[data-field=room],.tt-period-body-cell .sub-cell[data-name=room],.tt-period-body-cell .sub-cell[data-sub-cell=room],.tt-period-body-cell .sub-cell[name=room]{overflow:hidden;overflow-wrap:normal;white-space:nowrap;word-break:keep-all}.tt-period-body-cell .sub-cell.room-cell,.tt-period-body-cell .sub-cell[data-sub-cell=room]{line-height:1;overflow:hidden;overflow-wrap:normal;padding-left:1px;padding-right:1px;white-space:nowrap;word-break:keep-all}.tt-period-body-cell .sub-cell.room-cell .room-cell-value,.tt-period-body-cell .sub-cell.room-cell .room-cell-value span{display:block;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:normal;text-overflow:clip;white-space:nowrap;width:100%;word-break:keep-all}.tt-period-body-cell .sub-cell.room-cell .room-cell-value span{font-size:10.12px;font-size:calc(var(--tt-cell-font, 11px)*.92);letter-spacing:-.025em;transform:scaleX(.95);transform-origin:center}.tt-period-body-cell .sub-cell.subject-cell{line-height:1;overflow:hidden;overflow-wrap:normal;padding-left:1px;padding-right:1px;white-space:nowrap;word-break:keep-all}.tt-period-body-cell .sub-cell.subject-cell .subject-cell-value,.tt-period-body-cell .sub-cell.subject-cell .subject-cell-value span{display:block;max-width:100%;min-width:0;overflow:hidden;overflow-wrap:normal;text-overflow:clip;white-space:nowrap;width:100%;word-break:keep-all}.tt-period-body-cell .sub-cell.subject-cell .subject-cell-value span{font-size:10.12px;font-size:calc(var(--tt-cell-font, 11px)*.92);letter-spacing:-.025em;transform:scaleX(.95);transform-origin:center}.tt-period-body-cell .sub-cell.room-cell .room-cell-value span,.tt-period-body-cell .sub-cell.subject-cell .subject-cell-value span{overflow:hidden;overflow-wrap:normal;text-overflow:clip;white-space:nowrap;word-break:keep-all}.admin-grid-quad-layout{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(4,1fr)}.admin-control-box-card{background:var(--card-bg);border:1px solid var(--admin-border);border-radius:6px;display:flex;flex-direction:column;padding:15px}.admin-control-box-card h3{color:#475569;font-size:13px;letter-spacing:.5px;margin-bottom:12px;margin-top:0;text-transform:uppercase}.form-input-group{display:flex;gap:6px;margin-bottom:10px}.form-input-group.flex-vertical-inputs{flex-direction:column}.form-input-group input,.form-input-group select{background:var(--card-bg);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);flex:1 1;font-size:12px;padding:6px 10px}.form-input-group button{background:#475569;border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:13px;font-weight:700;padding:6px 12px}.form-input-group button:hover{background:#334155}.admin-pills-scroll-container{background:var(--vault-bg);border:1px solid var(--admin-border);border-radius:6px;display:flex;flex-wrap:wrap;gap:4px;max-height:130px;overflow-y:auto;padding:4px}.admin-items-management-zone{border-top:1px dashed var(--admin-border);flex:1 1;margin-top:10px;padding-top:8px}.admin-manage-pill{align-items:center;background:var(--pill-bg);border:1px solid var(--pill-border);border-radius:12px;color:var(--text-primary);display:flex;font-size:11px;font-weight:600;gap:4px;padding:2px 6px}.admin-manage-pill button{background:#0000;border:none;cursor:pointer;font-size:10px;padding:0}.admin-manage-pill button:hover{transform:scale(1.15)}.admin-manage-pill.track-pill-override{background:var(--header-bg);border-color:var(--border-strong)}.safety-vault-override{border-top:2px dashed var(--vault-border);margin-top:10px}.vault-box-tint,.vault-pill-tint{background:var(--vault-bg);border-color:var(--vault-border)}.pill-restore-action-btn{color:#059669}.admin-manage-pill span{font-weight:700}body.dark-mode .resource-editor-notice{background:#172554;border-color:#1d4ed8;color:#dbeafe}body.dark-mode .resource-editor-notice a{background:#0f172a;border-color:#1d4ed8;color:#93c5fd}.resource-editor-footer-section{background:var(--admin-bg);border:2px solid var(--admin-border);border-radius:12px;box-shadow:var(--shadow);margin:32px 0 24px;padding:18px;scroll-margin-top:90px}.resource-editor-footer-header{align-items:flex-start;border-bottom:1px dashed var(--admin-border);display:flex;gap:14px;justify-content:space-between;margin-bottom:16px;padding-bottom:12px}.resource-editor-footer-header h2{color:#991b1b;font-size:18px;margin:0}.resource-editor-footer-header p{color:#526277;font-size:12px;margin:4px 0 0}.resource-editor-back-top{background:var(--card-bg);border:1px solid var(--border-light);border-radius:999px;color:#2563eb;flex:0 0 auto;font-size:12px;font-weight:800;padding:7px 11px;text-decoration:none}.resource-editor-back-top:hover{background:var(--cell-hover)}.resource-editor-footer{margin-top:0}.group-section-explain-text{background:#f8fafc;border:1px dashed var(--border-light);border-radius:6px;color:#526277;font-size:11px;line-height:1.35;margin:6px 0 0;padding:6px 8px}body.dark-mode .group-section-explain-text{background:#0f172a;color:#94a3b8}@media (max-width:900px){.resource-editor-footer-header,.resource-editor-notice{align-items:stretch;flex-direction:column}.resource-editor-back-top,.resource-editor-notice a{text-align:center}}.fixed-slot-editor{background:var(--card-bg);border:1px solid var(--border-strong);border-left:5px solid #059669;border-radius:14px;bottom:58px;box-shadow:0 18px 45px #0f172a40;box-sizing:border-box;color:var(--text-primary);left:8px;margin:0 auto;max-height:42vh;max-width:none;overflow-y:auto;padding:10px 12px;position:fixed;right:8px;width:auto;z-index:var(--z-editor)}.fixed-slot-editor-collapsed{max-height:none}.fixed-slot-editor-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.fixed-slot-editor-title{min-width:0}.fixed-slot-editor-title strong{color:var(--text-primary);display:block;font-size:14px}.fixed-slot-editor-title span{color:#526277;display:block;font-size:12px;max-width:82vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-slot-editor-toggle{background:var(--header-bg);border:1px solid var(--border-light);border-radius:999px;color:var(--text-primary);cursor:pointer;flex:0 0 auto;font-size:12px;font-weight:800;padding:6px 11px}.fixed-slot-editor-toggle:hover{background:var(--cell-hover)}.fixed-slot-editor-fields{grid-gap:10px;display:grid;gap:10px;grid-template-columns:minmax(180px,1fr) minmax(180px,1fr);margin-top:9px}.fixed-slot-editor-fields label{color:#526277;display:flex;flex-direction:column;font-size:11px;font-weight:800;gap:3px;text-transform:uppercase}.fixed-slot-editor-fields select{background:var(--card-bg);border:1px solid var(--border-light);border-radius:7px;color:var(--text-primary);font-size:12px;padding:7px 8px}.fixed-slot-editor-pickers{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr 1.4fr;margin-top:9px}.fixed-slot-editor-picker{background:var(--header-bg);border:1px solid var(--border-light);border-radius:9px;min-width:0;padding:7px}.fixed-slot-editor-picker>span{color:#526277;display:block;font-size:11px;font-weight:800;margin-bottom:5px;text-transform:uppercase}.fixed-slot-editor-pill-wrap{display:flex;flex-wrap:wrap;gap:4px;max-height:88px;overflow-y:auto;padding:2px}.fixed-slot-editor-pill-wrap.students{max-height:102px}.fixed-slot-editor-pill{background:var(--card-bg);border:1px solid var(--border-light);border-radius:999px;color:var(--text-primary);cursor:pointer;font-size:10px;font-weight:800;line-height:1.2;padding:3px 7px}.fixed-slot-editor-pill:hover{background:var(--cell-hover);border-color:var(--border-strong)}.fixed-slot-editor-pill.active{background:#475569;border-color:#475569;color:#fff}.fixed-slot-editor-pill.student.active{background:#2563eb;border-color:#2563eb;color:#fff}.fixed-slot-editor-fields select:disabled,.fixed-slot-editor-pill:disabled{cursor:not-allowed;opacity:.55}.fixed-slot-editor-field-badge{background:#dcfce7;border:1px solid #86efac;border-radius:999px;color:#166534;display:inline-block;font-size:11px;font-style:normal;font-weight:900;margin-top:4px;padding:3px 8px}body.dark-mode .fixed-slot-editor-field-badge{background:#052e16;border-color:#16a34a;color:#bbf7d0}.fixed-slot-editor-availability{background:var(--header-bg);border:1px solid var(--border-light);border-radius:9px;margin-top:9px;padding:7px}.fixed-slot-editor-availability-head{align-items:center;display:flex;gap:8px;justify-content:space-between;margin-bottom:5px}.fixed-slot-editor-availability-head span{color:#047857;font-size:11px;font-weight:900;text-transform:uppercase}.fixed-slot-editor-availability-head em{color:#526277;font-size:11px;font-style:normal;font-weight:800}.fixed-slot-editor-available-staff-list{display:flex;flex-wrap:wrap;gap:4px;max-height:62px;overflow-y:auto;padding:2px}.fixed-slot-editor-available-staff-pill{align-items:center;border:1px solid var(--border-light);border-radius:999px;display:inline-flex;font-size:10px;font-weight:900;height:18px;justify-content:center;line-height:1;min-width:26px;padding:0 6px;white-space:nowrap}.fixed-slot-editor-available-staff-pill-action{cursor:pointer}.fixed-slot-editor-available-staff-pill-action:focus-visible,.fixed-slot-editor-available-staff-pill-action:hover{box-shadow:0 0 0 2px #05966959;filter:brightness(1.08);outline:none}.fixed-slot-editor-availability-empty{color:#526277;font-size:12px;font-weight:700;margin:0}.fixed-slot-editor-busy-staff-detail{border-top:1px dashed var(--border-light);margin-top:6px;padding-top:6px}.fixed-slot-editor-busy-staff-detail summary{color:#526277;cursor:pointer;font-size:11px;font-weight:800}.fixed-slot-editor-busy-staff-list{display:flex;flex-direction:column;gap:4px;margin-top:5px;max-height:74px;overflow-y:auto}.fixed-slot-editor-busy-staff-pill{grid-gap:6px;align-items:center;background:var(--card-bg);border:1px solid var(--border-light);border-radius:7px;color:var(--text-primary);display:grid;font-size:11px;gap:6px;grid-template-columns:44px 1fr;padding:4px 6px}.fixed-slot-editor-busy-staff-pill strong{color:#475569}.fixed-slot-editor-busy-staff-pill em{color:#526277;font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fixed-slot-editor-active-field{background:#22c55e1a;border-radius:9px;outline:2px solid #22c55e;outline-offset:2px}.fixed-slot-editor-fields label.fixed-slot-editor-active-field{margin:-5px;padding:5px}.fixed-slot-editor-pill.draggable-source-pill{align-items:center;cursor:grab;display:inline-flex;gap:4px;justify-content:center;touch-action:none;-webkit-user-select:none;user-select:none}.fixed-slot-editor-pill.draggable-source-pill:active{cursor:grabbing}.fixed-slot-editor-pill.draggable-source-pill[aria-disabled=true]{cursor:not-allowed;opacity:.55}.fixed-slot-editor-actions{align-items:center;display:flex;flex:0 0 auto;gap:6px}.fixed-slot-editor-close{background:#fee2e2;border:1px solid var(--border-light);border-radius:999px;color:#991b1b;cursor:pointer;font-size:18px;font-weight:900;height:28px;line-height:1;width:28px}.fixed-slot-editor-close:hover{background:#fecaca}@media (max-width:1100px){.fixed-slot-editor{bottom:48px;left:8px;max-height:48vh;max-width:calc(100vw - 16px);right:8px}}@media (max-width:900px){.fixed-slot-editor{bottom:58px;left:8px;max-height:52vh;max-width:calc(100vw - 16px);right:8px}.fixed-slot-editor-fields,.fixed-slot-editor-pickers{grid-template-columns:1fr}.fixed-slot-editor-pill-wrap,.fixed-slot-editor-pill-wrap.students{max-height:96px}.fixed-slot-editor-available-staff-list{max-height:82px}}@media (hover:none),(pointer:coarse){.fixed-slot-editor{bottom:max(6px,env(safe-area-inset-bottom));left:6px;max-height:min(46dvh,420px);max-width:calc(100vw - 12px);overscroll-behavior:contain;right:6px;touch-action:manipulation}.fixed-slot-editor-header{background:var(--card-bg);padding-bottom:6px;position:-webkit-sticky;position:sticky;top:0;z-index:1}.draggable-source-pill,.fixed-slot-editor-pill{touch-action:manipulation}}@media (pointer:coarse) and (max-width:767px){.fixed-slot-editor,.fixed-slot-editor.fixed-slot-editor-collapsed{max-height:min(60dvh,420px);overflow-y:auto}}.student-picker-border-accent{border-color:var(--border-light)}.student-pills-bg-tint{background:var(--card-bg)}.student-pill-baseline:hover{background:var(--header-bg);border-color:var(--border-strong)}.student-pill-selected-active{background:#475569;border-color:#475569;color:#fff}.student-view-container{margin-top:20px;max-width:100%;overflow-x:auto;overflow-y:hidden;padding-bottom:8px}.pupil-timetable-title{color:#006b35!important;font-size:2rem!important;font-weight:900!important;letter-spacing:-.035em!important;line-height:1.05!important;margin:0 0 16px!important;padding:0}.student-selector{margin-bottom:20px;text-align:center}.student-selector label{font-weight:700;margin-right:10px}.student-selector select{background:var(--card-bg);border:1px solid var(--border-light);border-radius:4px;color:var(--text-primary);font-size:14px;padding:6px 12px}.student-timetable{border-collapse:collapse;font-size:14px;width:100%}.student-timetable td,.student-timetable th{background:var(--card-bg);border:1px solid var(--border-light);color:var(--text-primary);padding:10px;vertical-align:top}.student-timetable th{background-color:var(--header-bg);text-align:center}.time-slot-cell{background-color:var(--header-bg);color:var(--text-primary);font-weight:700;width:120px}.time-slot-small{color:#526277;font-size:11px;font-weight:400}.fixed-slot-cell{background-color:var(--fixed-slot-bg);color:var(--fixed-slot-text);text-align:center}.lesson-detail{color:#526277;font-size:12px}.empty-lesson{color:#cbd5e1}.lesson-detail .staff-badge,.student-timetable .lesson-detail .staff-badge,.student-timetable .staff-badge,.student-view-container .lesson-detail .staff-badge,.student-view-container .staff-badge{align-items:center;box-sizing:border-box;display:inline-flex;height:18px;justify-content:center;line-height:1;min-width:26px;padding:0 5px;text-align:center;vertical-align:middle;white-space:nowrap}.staff-roster-list{display:flex;flex-direction:column;gap:8px}.staff-roster-item+.staff-roster-item{border-top:1px dashed var(--border-light);padding-top:8px}.draggable-source-pill{cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.draggable-source-pill:active{cursor:grabbing}.drag-overlay-pill{align-items:center;background:#059669;border-radius:999px;box-shadow:0 12px 28px #0f172a47;color:#fff;display:inline-flex;font-size:13px;font-weight:800;justify-content:center;padding:8px 12px;pointer-events:none;white-space:nowrap}.draggable-source-pill{align-items:center;border:1px solid var(--border-light);border-radius:12px;display:inline-flex;gap:4px;padding:2px 6px}.App:not(.app-shell),.app:not(.app-shell){box-sizing:border-box;margin:0 auto;overflow-x:hidden;padding:50px 20px 310px;position:relative}@media (max-width:900px){.App:not(.app-shell),.app:not(.app-shell){padding-bottom:360px;padding-left:8px;padding-right:8px}}.app:not(.app-shell) .dropdown-menu.execution-layer-2col{grid-template-columns:repeat(2,245px);max-height:450px;overflow-y:auto}.app:not(.app-shell) .dropdown-section.full-width-dropdown-reset-block{border-bottom:2px dashed var(--border-light);grid-column:1/-1;margin-bottom:5px;padding-bottom:10px}.app:not(.app-shell) .dropdown-section-header-checkbox input{accent-color:#059669;cursor:pointer}.app:not(.app-shell) .dropdown-section-header-checkbox:hover{color:#059669}.app:not(.app-shell) .dropdown-item-text.master-bold-text{color:var(--text-primary);font-weight:700}.app:not(.app-shell) .admin-dashboard-filter-layer,.app:not(.app-shell) .dashboard-filter-layer{position:relative;z-index:var(--z-admin-control-bar)}.app:not(.app-shell) .dashboard-control-bar .dropdown-container{position:relative;z-index:var(--z-dropdown-container)}.app:not(.app-shell) .dashboard-control-bar .dropdown-container:has(.dropdown-menu){z-index:var(--z-dropdown-container-open)}.app:not(.app-shell) .dashboard-control-bar .dropdown-menu{top:100%;z-index:var(--z-dropdown-menu-basic)}.app:not(.app-shell) .dashboard-control-bar .dropdown-container:has(.dropdown-menu):after{content:"";height:12px;left:-8px;pointer-events:none;position:absolute;right:-8px;top:100%;z-index:var(--z-dropdown-bridge)}.App:not(.app-shell) .timetable-floating-dragbar,.app:not(.app-shell) .timetable-floating-dragbar{align-items:center;bottom:8px;box-sizing:border-box;cursor:pointer;display:flex;height:28px;left:16px;pointer-events:auto;position:fixed;right:16px;touch-action:none;-webkit-user-select:none;user-select:none;width:calc(100vw - 32px);z-index:var(--z-dragbar)}.App:not(.app-shell) .timetable-floating-dragbar-track,.app:not(.app-shell) .timetable-floating-dragbar-track{background:#e2e8f0fa;border:1px solid #cbd5e1f2;border-radius:999px;box-shadow:0 8px 20px #0f172a2e;height:13px;overflow:hidden;position:relative;touch-action:none;-webkit-user-select:none;user-select:none;width:100%}.App:not(.app-shell) .timetable-floating-dragbar-thumb,.app:not(.app-shell) .timetable-floating-dragbar-thumb{background:#94a3b8;border:1px solid #64748be6;border-radius:999px;bottom:0;box-shadow:inset 0 1px 0 #ffffff73;min-width:72px;position:absolute;top:0;touch-action:none;-webkit-user-select:none;user-select:none;will-change:left,width}.App:not(.app-shell) .timetable-floating-dragbar:hover .timetable-floating-dragbar-thumb,.app:not(.app-shell) .timetable-floating-dragbar:hover .timetable-floating-dragbar-thumb{background:#64748b}.App:not(.app-shell) .timetable-master-container,.app:not(.app-shell) .timetable-master-container{-ms-overflow-style:none;overflow-x:hidden;scrollbar-width:none}.App:not(.app-shell) .timetable-master-container::-webkit-scrollbar,.app:not(.app-shell) .timetable-master-container::-webkit-scrollbar{display:none;height:0;width:0}.App:not(.app-shell) .timetable-scroll-shell,.app:not(.app-shell) .timetable-scroll-shell{max-width:100%;overflow-x:hidden;padding-bottom:44px}.app:not(.app-shell) .dark-mode-switch,.app:not(.app-shell) .footer-logo,.app:not(.app-shell) .footer-logo *,.app:not(.app-shell) .page-bottom-right-logo,.app:not(.app-shell) .timetable-footer,.app:not(.app-shell) .timetable-footer *,.app:not(.app-shell) img[alt*=Empathetic]{display:none;height:0;max-height:0;max-width:0;opacity:0;overflow:hidden;pointer-events:none;visibility:hidden;width:0}:root{--app-shell-edge-gap:clamp(12px,1.6vw,20px);--app-shell-top-reserve:50px;--app-shell-section-gap:18px;--z-page-base:0;--z-page-content:1;--z-hero-content:1;--z-hero-logo:2;--z-admin-dropdown-local:50;--z-timetable-sticky:80;--z-undo-strip:85;--z-banner:100;--z-header-nav:100;--z-admin-panel:200;--z-editor:950;--z-header-overlay:1000;--z-dragbar:3000;--z-control-strip:3900;--z-admin-control-bar:4000;--z-dropdown-container:4100;--z-dropdown-container-open:4300;--z-dropdown-bridge:4499;--z-dropdown-menu-basic:4500;--z-overlay-lane:4500;--z-control-dropdown-open:4700;--z-dropdown-menu:5000;--z-filter-popover:5200;--z-filter-popover-open:6200;--z-filter-popover-bridge:6190;--z-filter-menu:6300;--z-filter-menu-bridge:6290;--z-loading-overlay:9999;--z-modal-overlay:100000;--z-modal-card:100001;--app-overlay-dragbar-bottom:8px;--app-overlay-dragbar-height:28px;--app-overlay-editor-bottom:58px;--app-overlay-dragbar-z:var(--z-dragbar);--app-overlay-editor-z:var(--z-editor);--app-overlay-lane-z:var(--z-overlay-lane);--app-shell-bottom-reserve:calc(var(--app-overlay-dragbar-bottom) + var(--app-overlay-dragbar-height) + 60px);--app-shell-bottom-reserve-editor-open:340px}#root,body,html{max-width:100%;min-height:100%;overflow-x:hidden;width:100%}.app.app-shell{display:flex;flex-direction:column;margin:0 auto;min-height:100dvh;padding:0}.app-shell-content-frame,.app.app-shell{box-sizing:border-box;max-width:none;position:relative;width:100%}.app-shell-content-frame{flex:0 0 auto;isolation:isolate;min-width:0;order:1;padding:50px clamp(12px,1.6vw,20px) 96px;padding:var(--app-shell-top-reserve) var(--app-shell-edge-gap) var(--app-shell-bottom-reserve);z-index:1;z-index:var(--z-page-content)}.app.app-shell.app-shell--slot-editor-open .app-shell-content-frame{padding-bottom:340px;padding-bottom:var(--app-shell-bottom-reserve-editor-open)}.app-shell-main,.app-shell-region{box-sizing:border-box;max-width:100%;min-width:0;width:100%}.app-shell-banner-region,.app-shell-control-region{overflow:visible;position:relative}.app-shell-banner-region{z-index:100;z-index:var(--z-banner)}.app-shell-control-region{margin-bottom:18px;margin-bottom:var(--app-shell-section-gap);z-index:3900;z-index:var(--z-control-strip)}.app-shell-content-region{display:block;flex:0 0 auto;position:relative;z-index:1;z-index:var(--z-page-content)}.app-shell-resource-region{clear:both;flex:0 0 auto;margin-top:18px;margin-top:var(--app-shell-section-gap)}.app-shell-content-region>*,.app-shell-resource-region>*{max-width:100%}.timetable-interaction-area{max-width:100%;min-width:0;overflow:visible;width:100%}.app-shell-content-frame .timetable-interaction-area,.app-shell-content-frame .timetable-master-container,.app-shell-content-frame .timetable-scroll-shell{max-width:100%;min-width:0}.app-shell-footer-lane,.resource-editor-footer-section{box-sizing:border-box;max-width:100%;width:100%}.app-shell-footer-lane{flex:0 0 auto;margin:0;min-width:0;order:2;padding:0;pointer-events:none;position:relative;z-index:0;z-index:var(--z-page-base)}.app-shell-footer-lane:empty{display:block;height:0;margin:0;min-height:0;overflow:hidden;padding:0}.app-shell-overlay-lane{order:3;pointer-events:none;position:relative;z-index:4500;z-index:var(--app-overlay-lane-z)}.app-shell-overlay-lane .drag-overlay-pill,.app-shell-overlay-lane .fixed-slot-editor,.app-shell-overlay-lane .timetable-floating-dragbar,.app-shell-overlay-lane [role=dialog]{pointer-events:auto}.app-shell-content-frame .timetable-floating-dragbar,.timetable-floating-dragbar{bottom:8px;bottom:var(--app-overlay-dragbar-bottom);height:28px;height:var(--app-overlay-dragbar-height);z-index:3000;z-index:var(--app-overlay-dragbar-z)}.app-shell-overlay-lane .fixed-slot-editor,.fixed-slot-editor{bottom:58px;bottom:var(--app-overlay-editor-bottom);z-index:950;z-index:var(--app-overlay-editor-z)}@media (max-width:1100px){:root{--app-overlay-editor-bottom:48px}}@media (max-width:900px){:root{--app-shell-edge-gap:8px;--app-shell-section-gap:14px;--app-overlay-editor-bottom:58px;--app-shell-bottom-reserve:104px;--app-shell-bottom-reserve-editor-open:360px}}@media print{.app-shell-footer-lane,.app-shell-overlay-lane,.dashboard-control-bar,.student-selector,.system-role-toggle-bar,.view-mode-switcher{display:none}.app.app-shell{min-height:auto;padding:0}.timetable-master-container{border:1px solid #000;margin:0}}@media (max-width:780px){:root{--app-shell-top-reserve:10px;--app-shell-edge-gap:7px;--app-shell-section-gap:8px}.app-shell-content-frame{padding-top:50px;padding-top:var(--app-shell-top-reserve)}.app-shell-control-region{margin-bottom:8px}}@media (max-width:900px) and (orientation:landscape){:root{--app-shell-top-reserve:6px;--app-shell-edge-gap:6px;--app-shell-section-gap:6px}.app-shell-content-frame{padding-top:50px;padding-top:var(--app-shell-top-reserve)}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--user .app-shell-content-frame{padding-top:8px}.app-shell--user .app-shell-banner-region{margin-bottom:0}.app-shell--user .app-shell-control-region{margin-bottom:6px}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.app-shell--user .app-shell-content-frame{padding-top:6px}}@media (max-width:760px){.app-shell--user:not(.app-shell--compact-user) .app-shell-control-region{margin-bottom:8px}}.control-strip{flex-wrap:nowrap;gap:clamp(12px,1.6vw,28px);justify-content:space-between;margin:0 0 12px;position:relative;width:100%;z-index:var(--z-control-strip)}.control-strip,.control-strip-theme{align-items:center;box-sizing:border-box;display:flex}.control-strip-theme{flex:0 0 auto;justify-content:flex-start;min-width:0;padding-top:0}.control-strip-theme .theme-toggle-aligner{display:inline-flex;justify-content:flex-start;margin:0;padding:0;width:auto}.control-strip-main{align-items:center;box-sizing:border-box;display:flex;flex:1 1 auto;flex-wrap:wrap;gap:6px;justify-content:center;min-width:0;position:relative;z-index:var(--z-dropdown-container)}.control-strip-main>.dashboard-control-bar,.control-strip-main>.view-mode-switcher{display:contents;isolation:auto;margin:0;padding:0;position:static;text-align:left;text-align:initial}.control-strip-main>.view-mode-switcher>button{flex:0 0 auto;max-width:none;min-width:auto}.control-strip-main>.dashboard-control-bar>.dropdown-container{box-sizing:border-box;flex:0 0 auto;max-width:none;min-width:auto}.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button,.control-strip-main>.view-mode-switcher>button{align-items:center;background:#ffffffe6;border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;box-sizing:border-box;color:#475569;cursor:pointer;display:inline-flex;font-family:inherit;font-size:.84rem;font-weight:800;gap:6px;height:34px;justify-content:center;letter-spacing:-.01em;line-height:1;margin:0;min-height:34px;padding:0 13px;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap;width:100%}.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button:hover,.control-strip-main>.view-mode-switcher>button:hover{background:var(--header-bg);border-color:var(--border-strong);transform:translateY(-1px)}.control-strip-main>.view-mode-switcher>button.active-view{background:linear-gradient(135deg,#059669,#047857);border-color:#059669e0;box-shadow:0 10px 22px #05966938,inset 0 1px 0 #ffffff3d;color:#fff}.control-strip-main .dropdown-container{position:relative;z-index:var(--z-dropdown-container-open)}.control-strip-main .dropdown-container:has(.dropdown-menu){z-index:var(--z-control-dropdown-open)}.control-strip-main .dropdown-menu{top:100%;z-index:var(--z-dropdown-menu)}.control-strip-main .dropdown-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:10px;font-weight:900;height:18px;justify-content:center;line-height:18px;min-width:20px;padding:0 6px}.control-strip-main .dropdown-arrow{font-size:10px;font-weight:900}@media (max-width:1180px){.control-strip{align-items:center;flex-wrap:wrap;margin:0 0 10px;width:100%}.control-strip,.control-strip-main,.control-strip-theme{justify-content:flex-start}.control-strip-main{flex:1 1 auto}}@media (max-width:560px){.control-strip-main{gap:6px}.available-now-container,.control-strip-main>.dashboard-control-bar>.dropdown-container,.control-strip-main>.view-mode-switcher>button{flex:0 0 auto;max-width:none;min-width:auto}.available-now-button,.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button,.control-strip-main>.view-mode-switcher>button{font-size:.84rem;gap:6px;height:34px;min-height:34px;padding:0 13px}}.control-strip-main .dropdown-menu.execution-layer-2col{grid-template-columns:repeat(2,245px);max-height:450px;overflow-y:auto}.control-strip-main .dropdown-section.full-width-dropdown-reset-block{border-bottom:2px dashed var(--border-light);grid-column:1/-1;margin-bottom:5px;padding-bottom:10px}.control-strip-main .dropdown-section-header-checkbox input{accent-color:#059669;cursor:pointer}.control-strip-main .dropdown-section-header-checkbox:hover{color:#059669}.control-strip-main .dropdown-item-text.master-bold-text{color:var(--text-primary);font-weight:700}.control-strip-main>.dashboard-control-bar .dropdown-container:has(.dropdown-menu):after{content:"";height:12px;left:-8px;pointer-events:none;position:absolute;right:-8px;top:100%;z-index:var(--z-dropdown-bridge)}.control-strip-main .filter-popover{align-items:stretch;display:inline-flex;position:relative;z-index:var(--z-filter-popover)}.control-strip-main .filter-popover-open{z-index:var(--z-filter-popover-open)}.control-strip-main .filter-popover-open:after{background:#0000;content:"";height:8px;left:-8px;pointer-events:auto;position:absolute;right:-8px;top:100%;z-index:var(--z-filter-popover-bridge)}.control-strip-main .filter-popover>.filter-popover-menu{box-sizing:border-box;left:50%;margin-top:0;pointer-events:auto;position:absolute;right:auto;top:100%;transform:translateX(-50%);z-index:var(--z-filter-menu)}.control-strip-main .filter-popover>.filter-popover-menu.dropdown-menu{padding-top:10px}.control-strip-main .filter-popover>.filter-popover-menu.dropdown-menu>:first-child{margin-top:0}.control-strip-main>.dashboard-control-bar>.dropdown-container.filter-popover.filter-popover-open:after{background:#0000;content:"";height:14px;left:-10px;pointer-events:auto;position:absolute;right:-10px;top:100%;z-index:var(--z-filter-menu-bridge)}.available-now-container{box-sizing:border-box;flex:0 0 auto;height:34px;max-width:none;min-width:auto;position:relative;z-index:var(--z-dropdown-container)}.available-now-container.is-open{z-index:var(--z-filter-popover-open)}.available-now-button{align-items:center;background:#ffffffe6;border:1px solid #cbd5e1db;border-radius:999px;box-shadow:0 8px 18px #0f172a0f,inset 0 1px 0 #ffffffe0;box-sizing:border-box;color:#475569;cursor:pointer;display:inline-flex;font-size:.84rem;font-weight:800;gap:6px;height:34px;justify-content:center;letter-spacing:-.01em;line-height:1;margin:0;min-height:34px;padding:0 13px;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease;white-space:nowrap;width:auto}.available-now-button:hover,.available-now-container.is-open .available-now-button{background:#f0fdf4eb;border-color:#0596696b}.available-now-main-label{overflow:hidden;text-overflow:ellipsis}.available-now-checkmark{color:#059669;font-size:.92rem;font-weight:900;line-height:1}.available-now-menu{background:var(--card-bg);border:1px solid var(--border-light);border-radius:12px;box-shadow:0 18px 38px #0f172a29;left:50%;padding:12px;position:absolute;top:calc(100% + 8px);transform:translateX(-50%);width:min(420px,calc(100vw - 28px));z-index:var(--z-filter-menu)}.available-now-menu:before{content:"";height:10px;left:0;position:absolute;right:0;top:-10px}.available-now-menu-head{align-items:flex-start;display:flex;gap:12px;justify-content:space-between;margin-bottom:9px}.available-now-menu-head strong{color:#047857;font-size:13px;font-weight:900;text-transform:uppercase}.available-now-menu-head span{color:#526277;font-size:12px;font-weight:800;text-align:right}.available-now-pill-list{display:flex;flex-wrap:wrap;gap:5px;max-height:132px;overflow-y:auto}.available-now-staff-pill{align-items:center;border:1px solid var(--border-light);border-radius:999px;display:inline-flex;font-size:10px;font-weight:900;height:18px;justify-content:center;line-height:1;min-width:28px;padding:0 6px;white-space:nowrap}.available-now-empty{color:#526277;font-size:12px;font-weight:700;line-height:1.35;margin:0}.available-now-assigned-detail{border-top:1px dashed var(--border-light);margin-top:9px;padding-top:8px}.available-now-assigned-detail summary{color:#526277;cursor:pointer;font-size:12px;font-weight:850}.available-now-assigned-list{display:flex;flex-direction:column;gap:5px;margin-top:7px;max-height:150px;overflow-y:auto}.available-now-assigned-pill{grid-gap:7px;align-items:center;background:var(--header-bg);border:1px solid var(--border-light);border-radius:8px;color:var(--text-primary);display:grid;font-size:10px;gap:7px;grid-template-columns:48px 1fr;padding:5px 7px}.available-now-assigned-pill strong{color:#475569}.available-now-assigned-pill em{color:#526277;font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@media (max-width:780px){.control-strip{align-items:flex-start;gap:6px;margin-bottom:8px}.control-strip-theme{flex:0 0 auto;order:2}.control-strip-main{flex:1 1 100%;gap:5px;justify-content:center;order:1;width:100%}.available-now-button,.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button,.control-strip-main>.view-mode-switcher>button{font-size:.72rem;gap:4px;height:30px;max-width:100%;min-height:30px;padding:0 9px}.control-strip-main>.dashboard-control-bar>.dropdown-container{max-width:calc(50vw - 14px)}.available-now-button span,.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button span:first-child,.control-strip-main>.view-mode-switcher>button span:last-child{overflow:hidden;text-overflow:ellipsis}.theme-toggle-shell{height:30px}.theme-toggle-option{font-size:.72rem;height:28px;min-height:28px;padding:0 9px}}@media (max-width:420px){.control-strip-main{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.control-strip-main::-webkit-scrollbar{display:none}.available-now-container,.control-strip-main>.dashboard-control-bar>.dropdown-container,.control-strip-main>.view-mode-switcher>button{flex:0 0 auto}.control-strip-main>.dashboard-control-bar>.dropdown-container{max-width:none}}@media (max-width:900px) and (orientation:landscape){.control-strip{margin-bottom:6px}.control-strip-theme{display:none}.control-strip-main{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.control-strip-main::-webkit-scrollbar{display:none}.available-now-container,.control-strip-main>.dashboard-control-bar>.dropdown-container,.control-strip-main>.view-mode-switcher>button{flex:0 0 auto}.available-now-button,.control-strip-main>.dashboard-control-bar>.dropdown-container>.dropdown-button,.control-strip-main>.view-mode-switcher>button{font-size:.69rem;height:28px;min-height:28px;padding:0 8px}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--user .control-strip-theme,.app-shell--user .dashboard-control-bar,.app-shell--user .timetable-scale-control,.app-shell--user .user-day-filter-strip,.app-shell--user .user-print-button{display:none}.app-shell--user .control-strip{margin-bottom:6px}.app-shell--user .control-strip-main{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;padding:0 1px 3px;scrollbar-width:none}.app-shell--user .control-strip-main::-webkit-scrollbar{display:none}.app-shell--user .available-now-container,.app-shell--user .control-strip-main>.view-mode-switcher>button{flex:0 0 auto}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.app-shell--user .control-strip-theme,.app-shell--user .dashboard-control-bar,.app-shell--user .timetable-scale-control,.app-shell--user .user-day-filter-strip,.app-shell--user .user-print-button{display:none}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--compact-user .control-strip-main{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;overflow-x:visible;padding:0;width:100%}.app-shell--compact-user .control-strip-main>.view-mode-switcher{display:contents}.app-shell--compact-user .available-now-button,.app-shell--compact-user .available-now-container,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{min-width:0;width:100%}.app-shell--compact-user .available-now-button,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{font-size:.76rem;height:34px;justify-content:center;min-height:34px;padding:0 8px}.app-shell--compact-user .available-now-button span,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.app-shell--compact-user .control-strip-main{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell--compact-user .available-now-button,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{font-size:.72rem;height:32px;min-height:32px}}@media (max-width:1024px),(pointer:coarse) and (hover:none) and (max-width:1600px){.app-shell--compact-user .control-strip{margin-bottom:7px;margin-top:4px}.app-shell--compact-user .control-strip-main{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;overflow-x:visible;padding:0;width:100%}.app-shell--compact-user .available-now-button,.app-shell--compact-user .available-now-container,.app-shell--compact-user .control-strip-main>.view-mode-switcher,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{min-width:0;width:100%}.app-shell--compact-user .available-now-button,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{font-size:.78rem;height:36px;justify-content:center;min-height:36px;padding:0 9px}.app-shell--compact-user .control-strip{margin:4px 0 8px}.app-shell--compact-user .control-strip-main{grid-gap:7px;display:grid;gap:7px;grid-template-columns:repeat(2,minmax(0,1fr));justify-content:stretch;overflow:visible;padding:0;width:100%}.app-shell--compact-user .available-now-container,.app-shell--compact-user .control-strip-main>.view-mode-switcher,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{min-width:0;width:100%}.app-shell--compact-user .available-now-button,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{font-size:.78rem;height:36px;justify-content:center;min-height:36px;padding:0 8px;width:100%}.app-shell--compact-user .available-now-button span,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button span:last-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}@media (max-width:1024px) and (orientation:landscape),(pointer:coarse) and (hover:none) and (max-width:1600px) and (orientation:landscape){.app-shell--compact-user .control-strip-main{grid-template-columns:repeat(4,minmax(0,1fr))}.app-shell--compact-user .available-now-button,.app-shell--compact-user .control-strip-main>.view-mode-switcher>button{font-size:.72rem;height:34px;min-height:34px}}.user-day-filter-strip{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;max-width:100%;min-width:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}.user-day-filter-strip::-webkit-scrollbar{display:none}.user-day-filter-strip>*{flex:0 0 auto}@media (max-width:1180px){.app-shell--user:not(.app-shell--compact-user) .control-strip{grid-gap:8px;align-items:start;display:grid;gap:8px;grid-template-columns:1fr}.app-shell--user:not(.app-shell--compact-user) .control-strip-main{align-items:center;display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-start;min-width:0;width:100%}.app-shell--user:not(.app-shell--compact-user) .user-day-filter-strip{max-width:100%;width:-webkit-max-content;width:max-content}}@media (max-width:760px){.app-shell--user:not(.app-shell--compact-user) .control-strip-main{-webkit-overflow-scrolling:touch;flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;scrollbar-width:thin}.app-shell--user:not(.app-shell--compact-user) .control-strip-main>*{flex:0 0 auto}.app-shell--user:not(.app-shell--compact-user) .user-day-filter-strip{max-width:calc(100vw - 28px)}}@media print{@page{size:A3 landscape;margin:4.5mm}body,html{background:#fff;margin:0;padding:0}#top,.app,.app-shell,.app-shell-content-frame,.app-shell-content-region{background:#fff;border:0;box-shadow:none;display:block;margin:0;max-width:none;min-height:0;overflow:visible;padding:0;width:100%}#top>.app-shell-content-frame>:not(.app-shell-content-region),.app-shell-footer-lane,.app-shell-overlay-lane,.print-screen-controls{display:none}.print-preview-frame,.print-screen-shell{border:0;border-radius:0;box-shadow:none}.print-preview-frame,.print-screen-shell,.print-timetable-document{background:#fff;display:block;margin:0;max-width:none;overflow:visible;padding:0;width:100%}.print-timetable-document{zoom:.74;color:#000;font-family:Arial,sans-serif;position:static}.print-timetable-document,.print-timetable-document *{print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-document-header{align-items:baseline;border-bottom:.45pt solid #111;display:flex;gap:8px;justify-content:space-between;margin:0 0 .55mm;padding:0 0 .3mm}.print-document-header h1{font-size:6.7pt;font-weight:700;line-height:1;margin:0}.print-document-header p{font-size:5pt;font-weight:700;margin:0}.print-page-group{break-after:auto;display:block;page-break-after:auto}.print-page-group+.print-page-group{break-before:page;page-break-before:always}.print-day-section{break-inside:auto;display:block;margin:0 0 .45mm;page-break-inside:auto}.print-day-title{background:#eaf4ef;border:.3pt solid #94a3b8;break-after:avoid;font-size:4.75pt;font-weight:700;line-height:1;margin:0 0 .28mm;padding:.24mm .6mm;page-break-after:avoid}.print-spreadsheet-table{border-collapse:collapse;font-size:3.15pt;line-height:.98;table-layout:fixed;width:100%}.print-spreadsheet-table thead{display:table-header-group}.print-spreadsheet-table tr{break-inside:avoid;page-break-inside:avoid}.print-spreadsheet-table td,.print-spreadsheet-table th{border:.25pt solid #94a3b8;color:#000;overflow-wrap:anywhere;padding:.08mm .13mm;vertical-align:middle;word-break:normal}.print-group-cell,.print-group-header{background:#f1f5f9;font-size:3.45pt;font-weight:700;line-height:.95;text-align:center;white-space:normal;width:7.8mm}.print-period-header{background:#dbeafe;font-size:3.45pt}.print-period-header,.print-subfield-header{font-weight:700;line-height:1;text-align:center}.print-subfield-header{background:#e5e7eb;font-size:2.75pt}.print-field-cell{font-weight:500}.print-field-subject{font-size:3.35pt;font-weight:650}.print-field-support,.print-field-teachers{text-align:center;width:7.5mm}.print-field-room,.print-field-students{font-size:2.75pt;font-weight:500;line-height:.98}.print-staff-pill-row{flex-wrap:wrap;gap:.25mm}.print-staff-pill,.print-staff-pill-row{align-items:center;display:inline-flex;justify-content:center}.print-staff-pill{border:.2pt solid;border-radius:999px;font-size:2.7pt;font-weight:650;line-height:.98;min-width:2.65mm;padding:0 .24mm;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-empty-cell{background:#fff}.print-no-days{border:.6pt solid #111;font-size:12pt;padding:8mm}}.print-timetable-document{background:#fff;color:#0f172a;max-width:none;width:1500px}.print-document-header{align-items:baseline;border-bottom:1px solid #cbd5e1;display:flex;gap:12px;justify-content:space-between;margin:0 0 12px;padding:0 0 8px}.print-document-header h1{font-size:18px;margin:0}.print-document-header p{color:#475569;font-weight:800;margin:0}.print-day-section{margin:0 0 16px}.print-day-title{background:#f0fdf4;border:1px solid #cbd5e1;border-radius:8px;color:#064e3b;font-size:14px;margin:0 0 6px;padding:7px 9px}.print-timetable-table{border-collapse:collapse;font-size:10px;table-layout:fixed;width:100%}.print-timetable-table td,.print-timetable-table th{border:1px solid #cbd5e1;padding:4px;vertical-align:top}.print-group-cell,.print-group-header{background:#f8fafc;font-weight:900;width:90px}.print-period-header{background:#dbeafe;font-weight:900;text-align:center}.print-subfield-header{background:#e2e8f0;font-size:9px;font-weight:900;text-align:center}.print-field-subject{font-weight:900}.print-staff-pill-row{align-items:center;display:inline-flex;flex-wrap:wrap;gap:3px}.print-staff-pill{align-items:center;border:1px solid;border-radius:999px;display:inline-flex;font-size:9px;font-weight:800;justify-content:center;line-height:1.1;min-width:18px;padding:1px 5px;print-color-adjust:exact;-webkit-print-color-adjust:exact}.print-empty-cell{background:#fff}@media print{.print-staff-colour-cell{font-weight:700;print-color-adjust:exact;-webkit-print-color-adjust:exact;text-align:center;white-space:nowrap}.print-field-support,.print-field-teachers{font-size:3pt;font-weight:700;line-height:.98}}.print-staff-segment-row{align-items:center;display:grid;height:100%;width:100%}.print-staff-segment-text{align-items:center;display:inline-flex;font-weight:700;justify-content:center;line-height:1;min-width:0;overflow:hidden;padding:0;text-overflow:clip;white-space:nowrap}@media print{.print-staff-segment-row{align-items:center;display:grid;height:100%;width:100%}.print-staff-segment-text{align-items:center;display:inline-flex;font-weight:700;justify-content:center;line-height:1;min-width:0;overflow:hidden;padding:0;text-overflow:clip;white-space:nowrap}.print-document-header{display:none}.print-page-group,.print-preview-frame,.print-screen-shell,.print-timetable-document{background:#fff;border:0;border-radius:0;box-shadow:none}.print-period-header{font-size:5pt;font-weight:700;line-height:1.05}.print-subfield-header{font-size:4.65pt;font-weight:700;line-height:1.05}.print-field-cell{font-size:4.8pt;font-weight:500;line-height:1.08}.print-field-subject{font-size:4.8pt;font-weight:600;line-height:1.08}.print-field-room,.print-field-students{font-size:4.65pt;font-weight:500;line-height:1.08}.print-staff-colour-cell{font-size:4.65pt;font-weight:500;line-height:1.05}.print-staff-segment-text{font-size:4.45pt;font-weight:500;line-height:1.05}.live-date-time-badge{display:none}.app-live-clock,.clock-badge,.date-time-badge,.live-clock-badge,.live-date-time-badge,.page-clock,.top-left-clock{display:none;visibility:hidden}.print-spreadsheet-table .print-period-header{border-left:.75pt solid #0f172a9e;border-right:.75pt solid #0f172a9e}.print-spreadsheet-table thead tr:nth-child(2) .print-subfield-header:nth-child(5n+1){border-left:.75pt solid #0f172a9e}.print-spreadsheet-table thead tr:nth-child(2) .print-subfield-header:nth-child(5n){border-right:.75pt solid #0f172a9e}.print-spreadsheet-table tbody .print-field-cell:nth-child(5n+2){border-left:.75pt solid #0f172a9e}.print-spreadsheet-table tbody .print-field-cell:nth-child(5n+1){border-right:.75pt solid #0f172a9e}}:root{--tb-bg:#fff;--tb-surface:#fff;--tb-seg-bg:#f3f5f8;--tb-border:#dfe5ec;--tb-border-strong:#c9d2dd;--tb-text:#334155;--tb-hover:#eef2f6;--tb-active:#047857;--tb-active-text:#fff;--tb-accent-text:#065f46;--tb-focus:0 0 0 3px #04785747}body.dark-mode{--tb-bg:#111a2c;--tb-surface:#0f172a;--tb-seg-bg:#0b1322;--tb-border:#2a3a52;--tb-border-strong:#3b4f6d;--tb-text:#e2e8f0;--tb-hover:#1b2840;--tb-active:#059669;--tb-active-text:#fff;--tb-accent-text:#6ee7b7;--tb-focus:0 0 0 3px #10b98159}.control-strip-main.tt-toolbar{align-items:center;background:#fff;background:var(--tb-surface);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:12px;box-sizing:border-box;display:flex;flex:1 1 100%;gap:8px 12px;justify-content:space-between;width:100%}.app-shell:not(.app-shell--compact-user) .control-strip-main.tt-toolbar,.control-strip-main.tt-toolbar{flex-wrap:wrap;overflow:visible;padding:8px}.tt-toolbar-group{align-items:center;display:flex;flex-wrap:wrap;gap:8px;min-width:0}.tt-toolbar-group--tools{justify-content:flex-end;margin-left:auto}.tt-toolbar .tt-icon{display:block;flex:0 0 auto}.control-strip-main.tt-toolbar .tt-seg{align-items:center;background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-sizing:border-box;display:inline-flex;gap:2px;height:32px;margin:0;padding:2px;position:static;text-align:left;text-align:initial}.control-strip-main.tt-toolbar .tt-seg .tt-seg-btn{align-items:center;background:#0000;border:0;border-radius:6px;box-shadow:none;color:#526277;color:var(--tb-muted);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:6px;height:26px;justify-content:center;letter-spacing:0;line-height:1;margin:0;min-height:26px;padding:0 11px;transition:background .12s ease,color .12s ease;white-space:nowrap}.control-strip-main.tt-toolbar .tt-seg .tt-seg-btn:hover:not(:disabled):not(.active-view){background:#eef2f6;background:var(--tb-hover);color:#334155;color:var(--tb-text)}.control-strip-main.tt-toolbar .tt-seg .tt-seg-btn.active-view{background:#047857;background:var(--tb-active);box-shadow:0 1px 2px #0f172a1f;color:#fff;color:var(--tb-active-text)}.control-strip-main.tt-toolbar .tt-seg .tt-seg-btn:disabled{cursor:not-allowed;opacity:.4}.tt-days{align-items:center;display:inline-flex;gap:8px}.tt-days-label{color:#526277;color:var(--tb-muted);font-size:.78rem;font-weight:600}.control-strip-main.tt-toolbar .tt-zoom .tt-zoom-step{font-size:1rem;padding:0;width:26px}.control-strip-main.tt-toolbar .tt-zoom .tt-zoom-value{font-feature-settings:"tnum";color:#334155;color:var(--tb-text);font-variant-numeric:tabular-nums;min-width:48px;padding:0 6px}.control-strip-main.tt-toolbar .tt-zoom .tt-zoom-fit{border-left:1px solid #dfe5ec;border-left:1px solid var(--tb-border);border-radius:0 6px 6px 0;color:#065f46;color:var(--tb-accent-text);margin-left:2px}.control-strip-main.tt-toolbar .available-now-button.tt-btn,.control-strip-main.tt-toolbar .dropdown-container>.dropdown-button.tt-btn,.control-strip-main.tt-toolbar .tt-btn{align-items:center;background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-shadow:none;color:#334155;color:var(--tb-text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:7px;height:32px;justify-content:center;letter-spacing:0;line-height:1;margin:0;min-height:32px;padding:0 11px;transform:none;transition:background .12s ease,border-color .12s ease;white-space:nowrap;width:auto}.control-strip-main.tt-toolbar .available-now-container.is-open .available-now-button.tt-btn,.control-strip-main.tt-toolbar .filter-popover-open>.dropdown-button.tt-btn,.control-strip-main.tt-toolbar .tt-btn:hover{background:#eef2f6;background:var(--tb-hover);border-color:#c9d2dd;border-color:var(--tb-border-strong);transform:none}.control-strip-main.tt-toolbar .tt-btn .tt-icon{color:#526277;color:var(--tb-muted)}.control-strip-main.tt-toolbar .tt-chevron{margin-left:-2px}.control-strip-main.tt-toolbar .available-now-container{height:32px}.control-strip-main.tt-toolbar .dashboard-control-bar{align-items:center;display:inline-flex;gap:8px;margin:0;padding:0}.control-strip-main.tt-toolbar .dashboard-control-bar .dropdown-container{height:32px}.control-strip-main.tt-toolbar .tt-badge{align-items:center;background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:999px;box-sizing:border-box;color:#334155;color:var(--tb-text);display:inline-flex;font-size:.7rem;font-weight:600;height:18px;justify-content:center;line-height:16px;min-width:22px;padding:0 6px}.control-strip-main.tt-toolbar .filter-popover>.filter-popover-menu{left:auto;margin-top:6px;right:0;transform:none}.control-strip-main.tt-toolbar button:focus-visible,.top-role-control-shell .role-toggle-btn:focus-visible{box-shadow:0 0 0 3px #04785747;box-shadow:var(--tb-focus);outline:none}.top-role-control-shell .role-toggle-btn:hover{background:#eef2f6;background:var(--tb-hover)}.top-role-control-shell .role-toggle-btn.active-admin-role:hover,.top-role-control-shell .role-toggle-btn.active-user-role:hover{background:#047857;background:var(--tb-active)}@media (max-width:1180px){.tt-toolbar-group--tools{justify-content:flex-start;margin-left:0}}@media print{.control-strip-main.tt-toolbar,.top-role-control-shell .theme-icon-btn{display:none}}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact{align-items:stretch;display:flex;flex-direction:column;flex-wrap:nowrap;gap:8px;grid-template-columns:none;justify-content:flex-start;padding:6px}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .tt-seg{display:flex;height:40px;padding:3px;width:100%}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .tt-seg .tt-seg-btn{border-radius:6px;flex:1 1;font-size:.85rem;grid-column:auto;height:32px;max-height:32px;max-width:none;min-height:32px;min-width:0;overflow:hidden;padding:0 6px;text-overflow:ellipsis;width:auto}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-container,.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-container.is-open.is-compact-touch{display:flex;flex-direction:column;gap:8px;grid-column:auto;height:auto;min-width:0;width:100%}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-button.tt-btn,.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-container.is-open.is-compact-touch .available-now-button.tt-btn{border-radius:8px;font-size:.88rem;grid-column:auto;height:40px;max-height:40px;max-width:none;min-height:40px;width:100%}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-menu{border-radius:10px}@media (orientation:landscape){.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact{align-items:center;flex-direction:row;flex-wrap:wrap}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .tt-seg{flex:3 1 320px;width:auto}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-container{flex:1 1 160px;width:auto}.app-shell--compact-user .control-strip-main.tt-toolbar.tt-toolbar--compact .available-now-container.is-open.is-compact-touch{flex-basis:100%;width:100%}}.app-shell--compact-user .compact-user-topbar{grid-template-columns:minmax(0,1fr) auto auto}.app-shell--compact-user .compact-user-topbar .compact-theme-button,.app-shell--compact-user .compact-user-topbar .compact-user-logout-button{background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-shadow:none;color:#334155;color:var(--tb-text);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;height:36px;min-height:36px}.app-shell--compact-user .compact-user-topbar .compact-theme-button{align-items:center;display:inline-flex;justify-content:center;min-width:36px;padding:0;width:36px}.app-shell--compact-user .compact-user-topbar .live-date-time-badge{min-height:36px}.mobile-person-timetable .mobile-person-day-tabs{background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;gap:2px;padding:3px}.mobile-person-timetable .mobile-person-day-tabs .mobile-person-day-tab{background:#0000;border:0;border-radius:6px;box-shadow:none;color:#526277;color:var(--tb-muted);font-size:.85rem;font-weight:600;padding:9px 4px}.mobile-person-timetable .mobile-person-day-tabs .mobile-person-day-tab.is-active{background:#047857;background:var(--tb-active);box-shadow:0 1px 2px #0f172a1f;color:#fff;color:var(--tb-active-text)}@media (max-width:780px){.app-shell:not(.app-shell--compact-user) .control-strip-main.tt-toolbar .tt-toolbar-group{width:100%}.app-shell:not(.app-shell--compact-user) .control-strip-main.tt-toolbar .tt-toolbar-group--views{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.app-shell:not(.app-shell--compact-user) .control-strip-main.tt-toolbar .tt-toolbar-group--views::-webkit-scrollbar{display:none}.app-shell:not(.app-shell--compact-user) .control-strip-main.tt-toolbar .tt-toolbar-group--tools{flex-wrap:wrap}}.print-header-row{border-bottom:1px solid #dfe5ec;border-bottom:1px solid var(--tb-border);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.print-title{color:#334155;color:var(--tb-text);font-size:20px;font-weight:800;margin:0}.print-subtitle{color:#526277;color:var(--tb-muted);font-size:13px;font-weight:500;line-height:1.45;margin:5px 0 0;max-width:620px}.print-options-bar.tt-toolbar{justify-content:space-between}.print-day-picker{align-items:center;display:flex;flex-wrap:wrap;gap:10px}.tt-checkbox-btn{cursor:pointer;position:relative}.tt-checkbox-btn input{height:1px;margin:0;opacity:0;position:absolute;width:1px}.tt-checkbox-btn:has(input:focus-visible){box-shadow:0 0 0 3px #04785747;box-shadow:var(--tb-focus);outline:none}.print-go-button{color:#fff;color:var(--tb-active-text)}.print-go-button,.print-go-button:hover{background:#047857;background:var(--tb-active);border-color:#047857;border-color:var(--tb-active)}.print-go-button:hover{opacity:.92}@media (max-width:900px){.print-options-bar.tt-toolbar{align-items:flex-start}}.admin-quick-actions.control-strip-main.tt-toolbar{align-items:center;border-left:3px solid #047857;border-left:3px solid var(--tb-active);justify-content:flex-start;width:100%}.admin-quick-actions .qa-group{align-items:center;display:flex;flex-wrap:wrap;gap:7px;min-width:0}.admin-quick-actions .qa-label{color:#334155;color:var(--tb-text);flex:0 0 auto;font-size:.8rem;font-weight:700}.admin-quick-actions .qa-note{color:#526277;color:var(--tb-muted);font-size:.8rem}.admin-quick-actions .qa-count{color:#065f46;color:var(--tb-accent-text);font-size:.8rem;font-weight:700;white-space:nowrap}.admin-quick-actions .qa-actions{margin-left:auto}.tt-select{background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-sizing:border-box;color:#334155;color:var(--tb-text);font-family:inherit;font-size:.8rem;font-weight:600;height:32px;max-width:190px;min-height:32px;padding:0 9px}.tt-btn-solid{color:#fff;color:var(--tb-active-text)}.tt-btn-solid,.tt-btn-solid:hover{background:#047857;background:var(--tb-active);border-color:#047857;border-color:var(--tb-active)}.tt-btn-solid:hover{opacity:.92}.tt-btn-solid:disabled{background:#f3f5f8;background:var(--tb-seg-bg);border-color:#dfe5ec;border-color:var(--tb-border);color:#526277;color:var(--tb-muted);cursor:not-allowed;opacity:1}.tt-btn-small{font-size:.74rem;height:26px;min-height:26px;padding:0 9px}.tt-history-wrap{display:inline-flex;position:relative}.tt-history-menu{background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:10px;box-shadow:0 14px 30px #0f172a24;box-sizing:border-box;max-height:360px;max-width:calc(100vw - 28px);overflow-y:auto;padding:10px;position:absolute;right:0;top:38px;width:390px;z-index:9999}.tt-history-item{grid-gap:8px;align-items:center;border-bottom:1px solid #dfe5ec;border-bottom:1px solid var(--tb-border);display:grid;gap:8px;grid-template-columns:1fr auto;padding:8px 0}@media (max-width:1180px){.admin-quick-actions.control-strip-main.tt-toolbar .qa-actions{margin-left:0}}.tt-panel{background:#fff;background:var(--tb-surface);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:12px;box-shadow:none;margin-bottom:14px;padding:14px 16px}.tt-panel-header{align-items:flex-start;border-bottom:1px solid #dfe5ec;border-bottom:1px solid var(--tb-border);display:flex;flex-wrap:wrap;gap:14px;justify-content:space-between;margin-bottom:12px;padding-bottom:12px}.tt-panel-title{color:#334155;color:var(--tb-text);font-size:18px;font-weight:800;margin:0}.tt-panel-subtitle{color:#526277;color:var(--tb-muted);font-size:13px;font-weight:500;line-height:1.45;margin:4px 0 0;max-width:700px}.tt-cards{grid-gap:12px;display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}.tt-card{background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:10px;box-shadow:none;padding:14px}.tt-card-header{align-items:center;display:flex;gap:8px;margin-bottom:8px}.tt-card-title{color:#334155;color:var(--tb-text);font-size:14px;font-weight:700;margin:0}.tt-card-body{font-size:12px;font-weight:500;line-height:1.45;min-height:60px}.tt-card-body,.tt-info-dot{color:#526277;color:var(--tb-muted)}.tt-info-dot{align-items:center;background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:999px;cursor:help;display:inline-flex;font-size:11px;font-weight:700;height:18px;justify-content:center;width:18px}.tt-warning-note{background:#fffbeb;border:1px solid #f59e0b66;border-radius:8px;color:#92400e;font-size:11px;font-weight:600;line-height:1.35;margin-top:8px;padding:8px}body.dark-mode .tt-warning-note{background:#f59e0b1f;border-color:#f59e0b59;color:#fde68a}.tt-footer-note{color:#526277;color:var(--tb-muted);font-size:12px;font-weight:500;line-height:1.45;margin-top:14px}.tt-input{border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-sizing:border-box;color:#334155;color:var(--tb-text);font-family:inherit;font-size:13px;height:32px;margin-bottom:8px;padding:0 10px;width:100%}.tt-input,.tt-table-wrap{background:#fff;background:var(--tb-bg)}.tt-table-wrap{border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:10px;overflow-x:auto}.tt-table{border-collapse:collapse;font-size:13px;width:100%}.tt-table th{background:#f3f5f8;background:var(--tb-seg-bg);font-weight:700;padding:9px 10px;text-align:left;white-space:nowrap}.tt-table td,.tt-table th{border-bottom:1px solid #dfe5ec;border-bottom:1px solid var(--tb-border);color:#334155;color:var(--tb-text)}.tt-table td{padding:8px 10px;vertical-align:middle}.tt-message{border-radius:8px;font-size:13px;font-weight:500;margin:0 0 12px;padding:9px 12px}.tt-message-ok{background:#ecfdf5;border:1px solid #a7f3d0;color:#065f46}.tt-message-warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}.tt-message-error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}body.dark-mode .tt-message-ok{background:#10b9811f;border-color:#10b98159;color:#6ee7b7}body.dark-mode .tt-message-warn{background:#f59e0b1f;border-color:#f59e0b59;color:#fde68a}body.dark-mode .tt-message-error{background:#dc262624;border-color:#dc262666;color:#fca5a5}.tt-seg{background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-sizing:border-box;gap:2px;height:32px;padding:2px}.tt-seg,.tt-seg .tt-seg-btn{align-items:center;display:inline-flex;margin:0}.tt-seg .tt-seg-btn{background:#0000;border:0;border-radius:6px;box-shadow:none;color:#526277;color:var(--tb-muted);cursor:pointer;font-family:inherit;font-size:.8rem;font-weight:600;gap:6px;height:26px;justify-content:center;line-height:1;min-height:26px;padding:0 11px;transition:background .12s ease,color .12s ease;white-space:nowrap}.tt-seg .tt-seg-btn:hover:not(:disabled):not(.active-view){background:#eef2f6;background:var(--tb-hover);color:#334155;color:var(--tb-text)}.tt-seg .tt-seg-btn.active-view{background:#047857;background:var(--tb-active);box-shadow:0 1px 2px #0f172a1f;color:#fff;color:var(--tb-active-text)}.tt-btn{align-items:center;background:#fff;background:var(--tb-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:8px;box-shadow:none;color:#334155;color:var(--tb-text);cursor:pointer;display:inline-flex;font-family:inherit;font-size:.8rem;font-weight:600;gap:7px;height:32px;justify-content:center;line-height:1;margin:0;min-height:32px;padding:0 11px;transition:background .12s ease,border-color .12s ease;white-space:nowrap;width:auto}.tt-btn:hover{background:#eef2f6;background:var(--tb-hover);border-color:#c9d2dd;border-color:var(--tb-border-strong)}.tt-btn:disabled{cursor:not-allowed;opacity:.55}.tt-icon{color:#526277;color:var(--tb-muted);display:block;flex:0 0 auto}.student-timetable th.is-today{background:#047857;background:var(--tb-active);color:#fff;color:var(--tb-active-text)}.student-timetable .today-tag{display:block;font-size:.68rem;font-weight:600;letter-spacing:.04em;margin-top:2px;opacity:.9;text-transform:uppercase}.student-timetable td.is-today{background:#ecfdf5;background:color-mix(in srgb,#047857 7%,#fff);background:color-mix(in srgb,var(--tb-active) 7%,var(--tb-bg));box-shadow:inset 2px 0 0 #047857,inset -2px 0 0 #047857;box-shadow:inset 2px 0 0 var(--tb-active),inset -2px 0 0 var(--tb-active)}body.dark-mode .student-timetable td.is-today{background:#10b9811a;background:color-mix(in srgb,#047857 12%,#fff);background:color-mix(in srgb,var(--tb-active) 12%,var(--tb-bg))}.student-timetable td.time-slot-cell,.student-timetable th:first-child{box-shadow:none}.now-next-banner{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 12px}.now-next-card{background:#f3f5f8;background:var(--tb-seg-bg);border:1px solid #dfe5ec;border:1px solid var(--tb-border);border-radius:12px;box-sizing:border-box;flex:1 1 220px;min-width:0;padding:10px 14px}.now-next-card--now{background:#10b98114;background:color-mix(in srgb,#047857 8%,#fff);background:color-mix(in srgb,var(--tb-active) 8%,var(--tb-bg));border-color:#047857;border-color:var(--tb-active)}.now-next-card__label{color:#526277;color:var(--tb-muted);display:block;font-size:.68rem;font-weight:800;letter-spacing:.06em;margin-bottom:3px;text-transform:uppercase}.now-next-card--now .now-next-card__label{color:#047857;color:var(--tb-active)}.now-next-card__title{color:#334155;color:var(--tb-text);font-size:.98rem;font-weight:800;line-height:1.25}.now-next-card__meta{color:#526277;color:var(--tb-muted);font-size:.8rem;font-weight:600;margin-top:2px}body.dark-mode .tt-card .tt-cleanup-rules-list,body.dark-mode .tt-card .tt-cleanup-rules-list *{background:#0b1322!important;color:#e2e8f0!important}body.dark-mode .tt-card .tt-cleanup-rules-list{border-color:#2a3a52!important;color-scheme:dark}body.dark-mode .tt-card .tt-cleanup-rules-list>div{border-bottom-color:#2a3a52!important}body.dark-mode .tt-card .tt-cleanup-rules-list button{background:#0000!important}body.dark-mode .tt-cleanup-rules-list{scrollbar-color:#3b4f6d #0b1322!important}body.dark-mode .tt-cleanup-rules-list::-webkit-scrollbar{background:#0b1322;width:10px}body.dark-mode .tt-cleanup-rules-list::-webkit-scrollbar-track{background:#0b1322}body.dark-mode .tt-cleanup-rules-list::-webkit-scrollbar-thumb{background:#3b4f6d;border:2px solid #0b1322;border-radius:6px}body.dark-mode .tt-cleanup-rules-list::-webkit-scrollbar-button{display:none;height:0}.mobile-person-view-container{margin-top:10px;max-width:100%;overflow-x:hidden;width:100%}.mobile-person-view-container .student-selector,.staff-view-container .staff-selector,.staff-view-container .student-selector{text-align:center}.mobile-person-view-container .student-selector,.staff-view-container .staff-selector{grid-gap:10px;align-items:center;box-sizing:border-box;display:grid;gap:10px;grid-template-columns:-webkit-max-content minmax(0,1fr);grid-template-columns:max-content minmax(0,1fr);margin:8px auto 12px;padding:0 12px;width:min(100%,620px)}.mobile-person-view-container .student-selector label,.staff-view-container .staff-selector label{color:var(--text-primary);font-weight:900;margin-right:0;white-space:nowrap}.mobile-person-view-container .student-selector select,.staff-view-container .staff-selector select{background:var(--card-bg);border:1px solid var(--border-light);border-radius:10px;color:var(--text-primary);font-size:16px;min-height:42px;min-width:0;width:100%}.mobile-person-timetable{box-sizing:border-box;margin:0 auto 18px;max-width:820px;padding:0 10px 18px;width:100%}.mobile-person-day-tabs{grid-gap:6px;display:grid;gap:6px;grid-template-columns:repeat(5,minmax(0,1fr));margin:8px 0 10px}.mobile-person-day-tab{-webkit-appearance:none;appearance:none;background:var(--card-bg);border:1px solid var(--border-light);border-radius:999px;box-shadow:0 4px 10px #0f172a0f;color:var(--text-primary);cursor:pointer;font-size:12px;font-weight:900;line-height:1;padding:10px 4px}.mobile-person-day-tab.is-active{background:linear-gradient(135deg,#006838,#5ba446);border-color:#006838;color:#fff}.mobile-person-day-heading{align-items:baseline;color:var(--text-primary);display:flex;gap:10px;justify-content:space-between;margin:8px 0 10px;padding:0 2px}.mobile-person-day-heading span{color:var(--text-muted);font-size:13px;font-weight:900}.mobile-person-day-heading strong{font-size:19px;line-height:1.1}.mobile-person-period-list{display:flex;flex-direction:column;gap:8px}.mobile-person-period-card{grid-gap:0;align-items:stretch;background:var(--card-bg);border:1px solid var(--border-light);border-radius:14px;box-shadow:0 8px 18px #0f172a14;color:var(--text-primary);display:grid;gap:0;grid-template-columns:86px minmax(0,1fr);overflow:hidden}.mobile-person-period-card.has-lesson{border-color:#00683842}.mobile-person-period-meta{background:var(--header-bg);border-right:1px solid var(--border-light);display:flex;flex-direction:column;gap:4px;justify-content:center;padding:10px 8px}.mobile-person-period-meta strong{font-size:13px;font-weight:900;line-height:1.08}.mobile-person-period-meta span{color:var(--text-muted);font-size:11px;font-weight:800;line-height:1.1}.mobile-person-card-body{padding:10px 11px}.mobile-person-lesson-body{display:flex;flex-direction:column;gap:7px;justify-content:center}.mobile-person-subject{color:var(--text-primary);display:block;font-size:15px;line-height:1.15}.mobile-person-detail{color:var(--text-muted);font-size:12px;font-weight:750;line-height:1.2}.mobile-person-empty{align-items:center;color:var(--text-muted);display:flex;font-weight:850}.mobile-person-fixed-card{opacity:.9}.mobile-person-fixed-content{align-items:center;color:var(--text-muted);display:flex;font-size:13px;font-weight:850}.mobile-person-lesson-stack-item{border-bottom:1px solid var(--border-light);padding-bottom:8px}.mobile-person-lesson-stack-item:last-child{border-bottom:none;padding-bottom:0}@media (max-width:520px){.mobile-person-view-container .student-selector,.staff-view-container .staff-selector{gap:6px;grid-template-columns:1fr;padding:0 8px;text-align:left}.mobile-person-timetable{padding-left:6px;padding-right:6px}.mobile-person-period-card{grid-template-columns:76px minmax(0,1fr)}.mobile-person-period-meta{padding:9px 6px}.mobile-person-subject{font-size:14px}}.app-shell--compact-user .control-strip{margin:0 0 10px;width:100%}.app-shell--compact-user .available-now-button,.app-shell--compact-user .view-mode-switcher button{border-radius:999px;font-size:.98rem;height:50px;line-height:1;margin:0;min-height:50px;min-width:0;width:100%}.app-shell--compact-user .available-now-container{min-width:0;width:100%}.app-shell--compact-user .available-now-container.is-open.is-compact-touch{grid-gap:8px 12px;display:grid;gap:8px 12px;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.app-shell--compact-user .available-now-container.is-open.is-compact-touch .available-now-button{grid-column:2}.app-shell--compact-user .available-now-container.is-open.is-compact-touch .available-now-menu{grid-column:1/-1}.app-shell--compact-user .available-now-menu{max-height:42vh;overflow-y:auto}.app-shell--compact-user .available-now-menu-head{align-items:flex-start}.app-shell--compact-user .available-now-pill-list{max-height:112px}.mobile-person-period-card{grid-template-columns:112px minmax(0,1fr)}@media (max-width:520px){.app-shell--compact-user .control-strip-main{gap:10px}.app-shell--compact-user .available-now-button,.app-shell--compact-user .view-mode-switcher button{font-size:.94rem;height:48px;min-height:48px;padding-left:8px;padding-right:8px}.app-shell--compact-user .available-now-container.is-open.is-compact-touch{gap:8px 10px;grid-template-columns:repeat(2,minmax(0,1fr))}.mobile-person-period-card{grid-template-columns:104px minmax(0,1fr)}.mobile-person-period-meta{padding-left:8px;padding-right:8px}.mobile-person-period-meta strong{font-size:12px}.mobile-person-period-meta span{font-size:10.5px}}.app-shell--compact-user .control-strip-main{grid-gap:10px 12px;align-items:stretch;display:grid;gap:10px 12px;grid-template-columns:repeat(2,minmax(0,1fr));width:100%}.app-shell--compact-user .view-mode-switcher{display:contents;margin:0}.app-shell--compact-user .available-now-container.is-compact-touch,.app-shell--compact-user .available-now-container.is-open.is-compact-touch{display:contents;grid-column:auto;min-width:0;width:auto}.app-shell--compact-user .available-now-button,.app-shell--compact-user .available-now-container.is-open.is-compact-touch .available-now-button,.app-shell--compact-user .view-mode-switcher button{border-radius:999px;box-sizing:border-box;font-size:.98rem;grid-column:auto;height:50px;line-height:1;margin:0;max-height:50px;max-width:none;min-height:50px;min-width:0;padding:0 10px;width:100%}.app-shell--compact-user .available-now-container.is-open.is-compact-touch .available-now-menu,.app-shell--compact-user .available-now-menu{box-sizing:border-box;grid-column:1/-1;left:auto;margin-top:0;max-height:42vh;max-width:100%;overflow-y:auto;position:relative;right:auto;top:auto;transform:none;width:100%}.app-shell--compact-user .available-now-menu-head{grid-gap:4px;display:grid;gap:4px;grid-template-columns:minmax(0,1fr)}.app-shell--compact-user .available-now-menu-head span{text-align:left}.mobile-person-period-card{grid-template-columns:116px minmax(0,1fr)}.mobile-person-period-meta{min-width:0;overflow:hidden}.mobile-person-period-meta span,.mobile-person-period-meta strong{overflow-wrap:normal;word-break:normal}.mobile-person-card-body{min-width:0;overflow:hidden}@media (max-width:520px){.app-shell--compact-user .control-strip-main{gap:10px}.app-shell--compact-user .available-now-button,.app-shell--compact-user .available-now-container.is-open.is-compact-touch .available-now-button,.app-shell--compact-user .view-mode-switcher button{font-size:.94rem;height:48px;max-height:48px;min-height:48px;padding-left:8px;padding-right:8px}.mobile-person-period-card{grid-template-columns:108px minmax(0,1fr)}.mobile-person-period-meta{padding-left:8px;padding-right:8px}.mobile-person-period-meta strong{font-size:12px}.mobile-person-period-meta span{font-size:10.5px}}.mobile-person-staff-row{align-items:center;display:flex;flex-wrap:wrap;gap:7px;min-width:0}.mobile-person-detail-label{color:var(--text-muted);font-size:12px;font-weight:850;line-height:1.2}.mobile-person-staff-badges{align-items:center;display:inline-flex;flex-wrap:wrap;gap:5px;min-width:0}.mobile-person-name-badge,.mobile-person-staff-badge{align-items:center;border:1px solid;border-radius:999px;box-shadow:0 5px 10px #0f172a14;box-sizing:border-box;display:inline-flex;font-size:12px;font-weight:950;justify-content:center;line-height:1;min-height:22px;min-width:34px;padding:3px 9px;white-space:nowrap}.mobile-person-name-badge{font-size:13px;min-height:24px}.mobile-person-selected-staff-row{align-items:center;display:flex;flex-wrap:wrap;gap:5px}.resource-editor-footer{overflow-x:auto;padding-bottom:4px}.resource-editor-footer .admin-control-box-card{box-sizing:border-box}.student-safe-import-box{background:#74cc9d14;border:1px dashed #74cc9ddb;border-radius:8px;margin:8px 0 10px;padding:8px}.student-safe-import-label{align-items:center;background:#006838;border-radius:7px;color:#fff;cursor:pointer;display:inline-flex;font-size:12px;font-weight:800;justify-content:center;min-height:30px;padding:6px 10px}.student-safe-import-label input{display:none}.student-safe-import-help{color:#475569;font-size:11px;line-height:1.25;margin-top:6px}.resource-editor-footer .admin-pills-scroll-container{min-height:118px}.staff-colour-picker-button{align-items:center;background:#0000;border:0;border-radius:999px;cursor:pointer;display:inline-flex;font-size:12px;height:22px;justify-content:center;line-height:1;position:relative;width:22px}.staff-colour-picker-button:hover{background:#0f172a14}.staff-colour-picker-button input{cursor:pointer;height:22px;inset:0;opacity:0;position:absolute;width:22px}.resource-editor-footer .admin-control-box-card{min-height:244px}.resource-editor-footer .admin-pills-scroll-container{max-height:190px;min-height:150px}.student-safe-import-box-compact{margin-top:8px;padding:7px}.student-safe-import-box-compact .student-safe-import-help{font-size:11px;margin-top:5px}.resource-archive-section{border-top:1px dashed #74cc9db8;margin-top:12px;padding-top:10px}.resource-archive-header{align-items:baseline;display:flex;gap:10px;margin-bottom:8px}.resource-archive-header h3{color:#0f7a52;font-size:14px;margin:0}.resource-archive-header p{color:#526277;font-size:12px;margin:0}.resource-archive-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:repeat(5,minmax(220px,1fr))}.resource-archive-card{background:#ffffff94;border:1px solid #74cc9db8;border-radius:10px;min-height:86px;padding:8px}.resource-archive-card h4{color:#334155;font-size:12px;letter-spacing:.04em;margin:0 0 7px;text-transform:uppercase}.resource-archive-pills{display:flex;flex-wrap:wrap;gap:6px;max-height:96px;overflow-y:auto}.resource-editor-footer .admin-control-box-card{min-height:292px}.resource-editor-footer .admin-pills-scroll-container{max-height:230px;min-height:190px}.group-editor-hint:empty{display:none}.resource-archive-grid{align-items:start}.resource-archive-card{box-sizing:border-box}.resource-archive-pills{max-height:132px}.resource-editor-footer{align-items:stretch}.resource-editor-footer .admin-control-box-card{display:flex;flex-direction:column}.resource-editor-footer .admin-items-management-zone{display:flex;flex:1 1 auto;flex-direction:column;min-height:0}.resource-editor-footer .admin-pills-scroll-container{flex:1 1 auto;height:auto;max-height:none;min-height:0}.resource-archive-grid{grid-template-columns:repeat(5,minmax(280px,1fr))}.resource-archive-slot{min-width:0}.resource-archive-card{width:100%}.resource-editor-footer .group-editor-hint,.resource-editor-footer .group-editor-hint:empty{background:#0000!important;border:0!important;display:none!important;height:0!important;margin:0!important;min-height:0!important;padding:0!important}.resource-editor-footer .admin-control-box-card{display:flex!important;flex-direction:column!important;min-height:274px}.resource-editor-footer .resource-active-zone{display:flex!important;flex:1 1 auto!important;flex-direction:column!important;margin-top:10px;min-height:0!important}.resource-editor-footer .resource-active-zone .admin-pills-scroll-container{flex:1 1 auto!important;height:100%!important;max-height:none!important;min-height:0!important;overflow-y:auto!important}.resource-editor-footer .student-safe-import-box{flex:0 0 auto}.resource-editor-footer .group-editor-hint{background:#0000!important;border:0!important;display:none!important;height:0!important;margin:0!important;max-height:0!important;min-height:0!important;outline:0!important;overflow:hidden!important;padding:0!important;visibility:hidden!important}.resource-editor-footer .groups-active-zone{margin-top:10px!important}.resource-editor-footer .groups-active-zone:before{content:none!important;display:none!important}.resource-editor-footer .group-section-explain-text,.resource-editor-footer .group-section-explain-text:empty{background:#0000!important;border:0!important;display:none!important;height:0!important;margin:0!important;max-height:0!important;min-height:0!important;overflow:hidden!important;padding:0!important;visibility:hidden!important}.mobile-person-period-card.is-now{background:#10b98114;background:color-mix(in srgb,#047857 9%,var(--card-bg));background:color-mix(in srgb,var(--tb-active,#047857) 9%,var(--card-bg));border-color:#047857;border-color:var(--tb-active,#047857);box-shadow:0 0 0 2px #047857,0 8px 18px #04785738;box-shadow:0 0 0 2px var(--tb-active,#047857),0 8px 18px #04785738}.mobile-person-period-card.is-now .mobile-person-period-meta{background:#047857;background:var(--tb-active,#047857);border-right-color:#047857;border-right-color:var(--tb-active,#047857)}.mobile-person-period-card.is-now .mobile-person-period-meta span,.mobile-person-period-card.is-now .mobile-person-period-meta strong{color:#fff;color:var(--tb-active-text,#fff)}.mobile-person-period-meta .mobile-person-now-tag{align-self:flex-start;background:#fffffff0;border-radius:999px;color:#047857;font-size:10px;font-weight:900;letter-spacing:.02em;line-height:1;padding:2px 6px;text-transform:uppercase}.mobile-person-period-card.is-now .mobile-person-period-meta .mobile-person-now-tag{color:#047857}:root{--wafprs-stripe-light:#a6ce39;--wafprs-stripe-mid:#5ba446;--wafprs-stripe-dark:#006838;--wafprs-ink:#073b28;--wafprs-soft:#eaf7ea;--wafprs-card:#ffffffeb;--wafprs-card-border:#a6ce3957}.auth-landing{background:radial-gradient(circle at 11% 16%,#a6ce3957,#0000 28rem),radial-gradient(circle at 92% 12%,#5ba44642,#0000 24rem),radial-gradient(circle at 82% 88%,#00683838,#0000 27rem),linear-gradient(135deg,#f8fff4,#eef8ed 44%,#dcefdc);color:#073b28;color:var(--wafprs-ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;isolation:isolate;min-height:100dvh;overflow:hidden;position:relative}.auth-landing,.auth-landing *{box-sizing:border-box}.auth-landing:after,.auth-landing:before{border-radius:999px;content:"";pointer-events:none;position:absolute;z-index:-1}.auth-landing:before{background:linear-gradient(135deg,#a6ce3942,#0068380f);border:1px solid #ffffffa3;height:min(58vw,760px);left:max(-22vw,-280px);top:max(-22vw,-260px);width:min(58vw,760px)}.auth-landing:after{background:linear-gradient(135deg,#5ba44638,#0068381a);border:1px solid #ffffff94;bottom:max(-20vw,-260px);height:min(46vw,620px);right:max(-18vw,-230px);width:min(46vw,620px)}.auth-landing__shell{grid-gap:clamp(22px,4vw,70px);align-items:center;display:grid;gap:clamp(22px,4vw,70px);grid-template-columns:minmax(280px,.92fr) minmax(320px,1.08fr);margin:0 auto;min-height:100dvh;padding:clamp(26px,5.2vh,74px) 0 calc(clamp(48px, 8vh, 90px) + 22px);width:min(1180px,calc(100vw - clamp(28px, 6vw, 92px)))}.auth-landing__brand-panel{grid-gap:clamp(13px,1.6vw,22px);background:linear-gradient(135deg,#fff9,#ffffff38);border-left:clamp(7px,.8vw,10px) solid #006838;border-left:clamp(7px,.8vw,10px) solid var(--wafprs-stripe-dark);border-radius:clamp(22px,2.6vw,34px);box-shadow:0 24px 70px #0040381a,inset 0 1px 0 #ffffffc2;display:grid;gap:clamp(13px,1.6vw,22px);max-width:560px;padding:clamp(18px,2.2vw,28px)}.auth-landing__brand-kicker{background:#ffffffb3;border:1px solid #00683829;border-radius:999px;color:#006838;color:var(--wafprs-stripe-dark);font-size:clamp(.76rem,.82vw,.9rem);font-weight:950;letter-spacing:.06em;line-height:1;padding:8px 13px;text-transform:uppercase;width:-webkit-fit-content;width:fit-content}.auth-landing__brand-panel h2{color:#064e3b;font-size:clamp(2.3rem,6.4vw,5.7rem);letter-spacing:-.075em;line-height:.9;margin:0;max-width:11ch}.auth-landing__brand-panel p{color:#31534a;font-size:clamp(.98rem,1.22vw,1.17rem);font-weight:720;line-height:1.55;margin:0;max-width:54ch}.auth-landing__brand-grid{grid-gap:9px;display:grid;gap:9px;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:4px;max-width:470px}.auth-landing__brand-grid span{background:#ffffff9e;border:1px solid #00683821;border-radius:999px;box-shadow:inset 0 1px 0 #ffffffb8;color:#164e3a;font-size:clamp(.78rem,.9vw,.92rem);font-weight:900;line-height:1;padding:9px 12px;text-align:center}.auth-landing__content{display:grid;place-items:center;width:100%}.auth-login-card{backdrop-filter:blur(18px) saturate(1.18);-webkit-backdrop-filter:blur(18px) saturate(1.18);background:linear-gradient(180deg,#fffffff5,#f9fdf8e6);border:1px solid #00683829;border-radius:clamp(20px,3vw,34px);box-shadow:0 34px 88px #00342a33,0 14px 34px #0068381f,inset 0 1px 0 #fff;max-height:none;overflow:visible;padding:clamp(24px,3.1vw,32px) clamp(20px,3vw,32px) clamp(18px,2.7vw,28px);position:relative;scrollbar-width:auto;text-align:center;width:min(92vw,470px)}.auth-login-card>*{position:relative;z-index:1}.auth-login-card__logo{display:block;filter:drop-shadow(0 10px 22px rgba(6,78,59,.1));height:auto;margin:0 auto clamp(10px,1.5vw,16px);max-width:76%;width:clamp(142px,35vw,218px)}.auth-login-card__intro{grid-gap:clamp(7px,1vw,10px);display:grid;gap:clamp(7px,1vw,10px);margin-bottom:clamp(14px,2.1vw,20px)}.auth-login-card h1{color:#065f3f;font-size:clamp(1.85rem,4.8vw,2.65rem);letter-spacing:-.052em;line-height:1;margin:0}.auth-login-card p{margin:0}.auth-login-card__intro p{color:#3f5058;font-size:clamp(.9rem,2.7vw,1rem);font-weight:700;line-height:1.38;margin:0 auto;max-width:34rem}.auth-login-card__form{grid-gap:clamp(9px,1.3vw,12px);display:grid;gap:clamp(9px,1.3vw,12px)}.auth-login-card__field{display:block;position:relative}.auth-login-card__field-icon{color:#5d7667;height:clamp(20px,5vw,24px);left:clamp(15px,3.5vw,20px);position:absolute;top:50%;transform:translateY(-50%);width:clamp(20px,5vw,24px)}.auth-login-card__field-icon svg{fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;display:block;height:100%;width:100%}.auth-login-card__field input{background:#f1f8efd1;border:1px solid #0068382e;border-radius:clamp(12px,2vw,15px);box-shadow:inset 0 1px 0 #ffffffb8,0 2px 6px #0f3b460a;color:#082f25;font:inherit;font-size:clamp(.93rem,2.8vw,1rem);font-weight:760;height:clamp(48px,7.4vh,56px);min-height:46px;outline:none;padding:0 clamp(14px,3.2vw,18px) 0 clamp(48px,10vw,64px);transition:border-color .16s ease,box-shadow .16s ease,background .16s ease;width:100%}.auth-login-card__field input:focus{background:#fffffff5;border-color:#0068389e;box-shadow:0 0 0 4px #a6ce3933}.auth-login-card__field input::placeholder{color:#71877b;font-weight:750}.auth-login-card button:disabled,.auth-login-card__field input:disabled{cursor:wait;opacity:.72}.auth-login-card__form-row{align-items:center;color:#31534a;display:flex;font-size:clamp(.78rem,2.5vw,.83rem);font-weight:830;gap:12px;justify-content:space-between}.auth-login-card__remember{align-items:center;display:inline-flex;gap:8px}.auth-login-card__remember input{accent-color:#006838;accent-color:var(--wafprs-stripe-dark);height:18px;width:18px}.auth-login-card__help a,.auth-login-card__link-button{background:#0000;border:0;color:#006838;color:var(--wafprs-stripe-dark);cursor:pointer;font:inherit;font-weight:920;padding:0;text-decoration:none}.auth-login-card__link-button[aria-disabled=true]{opacity:.55;pointer-events:none}.auth-login-card__error{background:#fee2e2d1;border:1px solid #b91c1c2e;border-radius:10px;color:#7f1d1d;font-size:13px;font-weight:800;line-height:1.25;padding:9px 11px;text-align:left}.auth-login-card__primary-button,.auth-login-card__secondary-button{border-radius:clamp(12px,2vw,15px);cursor:pointer;font-family:inherit;font-size:clamp(.98rem,2.9vw,1.08rem);font-weight:950;min-height:clamp(48px,7.5vh,54px);width:100%}.auth-login-card__primary-button{align-items:center;background:linear-gradient(180deg,#5ba446,#006838);background:linear-gradient(180deg,var(--wafprs-stripe-mid),var(--wafprs-stripe-dark));border:1px solid #0068386b;box-shadow:0 15px 28px #00683840;color:#fff;display:inline-flex;gap:14px;justify-content:center;position:relative}.auth-login-card__help a:hover,.auth-login-card__link-button:hover,.auth-login-card__primary-button:hover:not(:disabled),.auth-login-card__secondary-button:hover:not(:disabled){filter:brightness(.98)}.auth-login-card__primary-arrow{fill:none;stroke:currentColor;stroke-width:2.3;stroke-linecap:round;stroke-linejoin:round;height:clamp(24px,6vw,30px);position:absolute;right:clamp(18px,4.6vw,28px);width:clamp(24px,6vw,30px)}.auth-login-card__or{grid-gap:clamp(12px,3.2vw,18px);align-items:center;color:#63756b;display:grid;gap:clamp(12px,3.2vw,18px);grid-template-columns:1fr auto 1fr;margin:clamp(12px,2.1vw,16px) 0}.auth-login-card__or span{background:linear-gradient(90deg,#0000,#00683838,#0000);height:1px}.auth-login-card__or strong{font-size:clamp(.83rem,2.5vw,.94rem);font-weight:780}.auth-login-card__secondary-button{align-items:center;background:#ffffffb8;border:1px solid #00683829;box-shadow:inset 0 1px 0 #ffffffd1;color:#183b35;display:inline-flex;gap:12px;justify-content:center}.auth-login-card__microsoft{grid-gap:2px;display:grid;gap:2px;grid-template-columns:repeat(2,9px);grid-template-rows:repeat(2,9px)}.auth-login-card__microsoft i:first-child{background:#f25022}.auth-login-card__microsoft i:nth-child(2){background:#7fba00}.auth-login-card__microsoft i:nth-child(3){background:#00a4ef}.auth-login-card__microsoft i:nth-child(4){background:#ffb900}.auth-login-card__help{color:#64766b;font-size:clamp(.78rem,2.5vw,.83rem);font-weight:800;margin-top:clamp(9px,1.7vw,13px)}.auth-login-card__password-toggle{align-items:center;background:#0000;border:0;color:#63756b;cursor:pointer;display:inline-flex;font:inherit;font-size:clamp(.78rem,2.4vw,.85rem);font-weight:780;gap:6px;justify-content:center;margin:clamp(10px,2vw,14px) auto 0;padding:4px;text-decoration:underline;text-underline-offset:3px}.auth-login-card__password-toggle:hover{color:#006838;color:var(--wafprs-stripe-dark)}.auth-login-card__form--password{border-top:1px solid #00683824;margin-top:clamp(10px,2vw,14px);padding-top:clamp(12px,2.2vw,16px)}.auth-login-card__password-note{color:#63756b;font-size:clamp(.74rem,2.2vw,.8rem);font-weight:700;line-height:1.35;margin:0 0 clamp(8px,1.6vw,11px)}.auth-login-card__form--password .auth-login-card__secondary-button{font-size:clamp(.88rem,2.5vw,.96rem);min-height:clamp(40px,6.2vh,46px)}.auth-feature-strip{align-items:center;display:flex;justify-content:center;margin-top:clamp(8px,1.5vw,12px);min-height:clamp(34px,6vw,42px)}.auth-feature-strip img{display:block;filter:drop-shadow(0 7px 15px rgba(3,50,35,.1));height:auto;object-fit:contain;width:min(215px,62%)}.auth-landing__stripe-footer{bottom:0;box-shadow:0 -8px 24px #0040261a;display:grid;grid-template-rows:repeat(3,1fr);height:clamp(18px,2.2vw,30px);left:0;position:fixed;right:0;z-index:5}.auth-landing__stripe-footer span:first-child{background:#a6ce39;background:var(--wafprs-stripe-light)}.auth-landing__stripe-footer span:nth-child(2){background:#5ba446;background:var(--wafprs-stripe-mid)}.auth-landing__stripe-footer span:nth-child(3){background:#006838;background:var(--wafprs-stripe-dark)}@supports not (((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))) or (-webkit-backdrop-filter:blur(1px))){.auth-login-card{background:#fffffff5}}@media (min-width:1800px){.auth-landing__shell{width:min(1320px,calc(100vw - 120px))}.auth-login-card{width:min(28vw,510px)}}@media (max-width:980px){.auth-landing{overflow-y:auto}.auth-landing__shell{align-content:center;gap:0;grid-template-columns:1fr;justify-items:center;min-height:100dvh;padding:max(12px,env(safe-area-inset-top)) 0 calc(clamp(44px, 7vh, 72px) + max(18px, env(safe-area-inset-bottom)));width:min(520px,calc(100vw - 24px))}.auth-landing__brand-panel{display:none}.auth-login-card{max-height:none;width:min(94vw,450px)}}@media (max-width:560px){.auth-landing__shell{padding:max(10px,env(safe-area-inset-top)) 0 calc(clamp(40px, 7vh, 58px) + max(14px, env(safe-area-inset-bottom)));width:min(100vw - 18px,410px)}.auth-login-card{border-radius:22px;padding:clamp(18px,5vw,22px) clamp(16px,4.8vw,21px) clamp(16px,4.8vw,21px);width:min(100%,390px)}.auth-login-card__logo{max-width:70%;width:min(164px,53vw)}.auth-login-card__intro{margin-bottom:15px}.auth-login-card h1{font-size:clamp(1.66rem,8.4vw,2.08rem)}.auth-login-card__form-row{align-items:flex-start;flex-direction:column;gap:8px}.auth-feature-strip img{width:min(182px,68%)}}@media (max-width:980px) and (max-height:560px){.auth-landing{overflow-y:auto}.auth-landing__shell{align-content:center;min-height:100svh;padding:max(8px,env(safe-area-inset-top)) 0 calc(34px + max(8px, env(safe-area-inset-bottom)));width:min(100vw - 18px,760px)}.auth-login-card{grid-column-gap:16px;grid-row-gap:6px;align-items:center;border-radius:20px;column-gap:16px;display:grid;grid-template-columns:minmax(126px,.78fr) minmax(280px,1.22fr);max-height:none;overflow:hidden;padding:14px 18px;row-gap:6px;text-align:left;width:min(100%,760px)}.auth-login-card__brand{align-self:center;grid-column:1;grid-row:1/span 3}.auth-login-card__logo{margin:0 auto 6px;max-width:100%;width:min(136px,24vw)}.auth-login-card__intro{gap:5px;margin:0;text-align:center}.auth-login-card h1{font-size:clamp(1.35rem,4.5vw,1.75rem);line-height:.98}.auth-login-card__intro p{display:block;font-size:clamp(.68rem,2vw,.78rem);margin:2px 0 0}.auth-login-card__actions{align-self:end;display:flex;flex-direction:column;gap:8px;grid-column:2;grid-row:1}.auth-login-card__primary-button{font-size:.9rem;margin:0;min-height:42px;white-space:nowrap;width:100%}.auth-login-card__password-toggle{align-self:center;font-size:.72rem;margin:0}.auth-login-card__form--password{gap:8px}.auth-login-card__field input{border-radius:12px;height:42px;min-height:42px}.auth-login-card__form-row{align-items:center;flex-direction:row;font-size:.76rem}.auth-login-card__or{display:none}.auth-login-card__help{display:block;font-size:clamp(.68rem,2vw,.76rem);grid-column:2;grid-row:2;justify-self:center;margin:0;text-align:center}.auth-feature-strip{align-self:start;grid-column:2;grid-row:3;justify-self:center;margin-top:2px;min-height:0}.auth-feature-strip img{width:min(160px,42vw)}}@media (max-width:980px) and (max-height:440px){.auth-landing{overflow:hidden}.auth-landing__shell{padding:max(6px,env(safe-area-inset-top)) 0 calc(20px + max(6px, env(safe-area-inset-bottom)))}.auth-landing__stripe-footer{height:14px}.auth-login-card{padding:10px 16px;row-gap:4px}.auth-login-card__brand{grid-column:1;grid-row:1/span 3}.auth-login-card__logo{margin:-8px auto -4px;width:104px}.auth-login-card__actions{grid-column:2;grid-row:1}.auth-login-card__help{grid-column:2;grid-row:2}.auth-feature-strip{grid-column:2;grid-row:3;margin-top:0}.auth-feature-strip img{width:min(132px,30vw)}}@media (max-height:720px) and (min-width:981px){.auth-landing__shell{padding-bottom:54px;padding-top:20px}.auth-login-card{padding:18px 24px;width:min(92vw,440px)}.auth-login-card__logo{margin-bottom:10px;width:150px}.auth-login-card__intro{gap:6px;margin-bottom:14px}.auth-login-card h1{font-size:2rem}.auth-feature-strip{display:none}}@media (prefers-reduced-motion:reduce){.auth-login-card__field input,.auth-login-card__primary-button,.auth-login-card__secondary-button{transition:none}}@media print{@page{size:A3 landscape;margin:7mm}.print-timetable-document{zoom:1}.print-timetable-document .print-page-group{--pf:5.5pt}.print-timetable-document .print-page-group-count-2{--pf:8pt}.print-timetable-document .print-page-group-count-1{--pf:10pt}.print-timetable-document .print-day-section{break-inside:avoid;margin:0 0 1.6mm;page-break-inside:avoid}.print-timetable-document .print-day-title{background:#d6ebe0;border:.5pt solid #475569;color:#000;font-size:calc(var(--pf)*1.35);font-weight:800;line-height:1.15;margin:0 0 .8mm;padding:.5mm 1.6mm}.print-timetable-document .print-spreadsheet-table{font-size:var(--pf);line-height:1.12}.print-timetable-document .print-spreadsheet-table td,.print-timetable-document .print-spreadsheet-table th{border:.4pt solid #64748b;overflow-wrap:anywhere;padding:.25mm .6mm}.print-timetable-document .print-group-cell,.print-timetable-document .print-group-header{background:#eef2f7;font-size:var(--pf);font-weight:800;line-height:1.1;text-align:left;width:auto}.print-timetable-document .print-period-header{background:#cfe2f7;font-size:calc(var(--pf)*1.08);font-weight:800;line-height:1.1}.print-timetable-document .print-subfield-header{background:#e5e7eb;font-size:calc(var(--pf)*.86);font-weight:700;line-height:1.1}.print-timetable-document .print-field-cell{color:#000;font-size:var(--pf);font-weight:500;line-height:1.12}.print-timetable-document .print-field-subject{font-size:var(--pf);font-weight:800}.print-timetable-document .print-field-room,.print-timetable-document .print-field-students{font-size:var(--pf);font-weight:500;line-height:1.12}.print-timetable-document .print-field-support,.print-timetable-document .print-field-teachers{font-size:var(--pf);font-weight:800;width:auto}.print-timetable-document .print-staff-colour-cell{color:#000;font-size:var(--pf);font-weight:800}.print-timetable-document .print-staff-segment-text{color:#000;font-size:var(--pf);font-weight:800;line-height:1.1}.print-timetable-document .print-staff-segment-row{align-items:stretch;display:flex;flex-wrap:wrap;height:100%;justify-content:stretch;width:100%}.print-timetable-document .print-staff-segment-text{align-items:center;border-right:.3pt solid #0f172a59;display:flex;flex:1 1 auto;justify-content:center;min-height:1.2em;overflow:visible;padding:.2mm .5mm;white-space:nowrap}.print-timetable-document .print-staff-segment-text:last-child{border-right:0}.print-timetable-document .print-spreadsheet-table td,.print-timetable-document .print-spreadsheet-table th{overflow-wrap:normal;word-break:normal}.print-timetable-document .print-field-room{white-space:nowrap}}.tt-period-header .period-time-text{color:#526277}body.dark-mode .tt-period-header .period-time-text{color:#94a3b8}body:not(.dark-mode) .hero-title-kicker{color:#047857}:root{--tb-muted:#526277}body.dark-mode{--tb-muted:#94a3b8}body.dark-mode .app-shell:not(.pupil-themed) .live-date-time-badge{background:#111a2c!important;background:var(--tb-bg,#111a2c)!important;border-color:#2a3a52!important;border-color:var(--tb-border,#2a3a52)!important;color:#e2e8f0!important;color:var(--tb-text,#e2e8f0)!important}body.dark-mode .app-shell:not(.pupil-themed) .live-date-time-badge>span:last-child{color:#6ee7b7!important}body.dark-mode .mobile-day-card-view__header{background:linear-gradient(135deg,#065f4652,#1e293b);background:linear-gradient(135deg,#065f4652,var(--card-bg,#1e293b));border-color:#34d39947;box-shadow:0 10px 24px #00000059}body.dark-mode .mobile-day-card-view__arrow{background:#0f172a;background:var(--header-bg,#0f172a);border-color:#34d39959;box-shadow:none;color:#6ee7b7}body.dark-mode .mobile-day-card-view__kicker{color:#34d399}body.dark-mode .mobile-day-card-view__title-block h2{color:#ecfdf5}body.dark-mode .mobile-day-card-view__title-block p{color:#526277;color:var(--tb-muted,#94a3b8)}body.dark-mode .mobile-day-card-view__rail{background:#0b1322;background:var(--tb-seg-bg,#0b1322);border-color:#2a3a52;border-color:var(--tb-border,#2a3a52)}body.dark-mode .mobile-day-card-view__day-button{background:#0000;border-color:#0000;box-shadow:none;color:#cbd5e1}body.dark-mode .mobile-day-card-view__day-button.is-active{background:linear-gradient(135deg,#059669,#047857);border-color:#059669;color:#fff}body.dark-mode .mobile-day-card-view__empty,body.dark-mode .mobile-day-card-view__summary{background:#1e293b;background:var(--card-bg,#1e293b);border-color:#2a3a52;border-color:var(--tb-border,#2a3a52);color:#cbd5e1}body.dark-mode .mobile-day-card-view__summary strong{color:#6ee7b7}body.dark-mode .mobile-day-group-card{background:#1e293b;background:var(--card-bg,#1e293b);border-color:#475569;border-color:var(--border-light,#475569);box-shadow:0 10px 26px #00000059}body.dark-mode .mobile-day-group-card__header{background:#0f172a;background:var(--header-bg,#0f172a);border-bottom-color:#475569;border-bottom-color:var(--border-light,#475569)}body.dark-mode .mobile-day-group-card__header h3{color:#f1f5f9}body.dark-mode .mobile-day-period-card{background:#1e293b;background:var(--card-bg,#1e293b);border-bottom-color:#47556999;color:#e2e8f0}body.dark-mode .mobile-day-period-card.has-content{background:linear-gradient(90deg,#065f4647,#1e293b 32%);background:linear-gradient(90deg,#065f4647,var(--card-bg,#1e293b) 32%)}body.dark-mode .mobile-day-period-card__period{background:#10b98129;color:#6ee7b7}body.dark-mode .mobile-day-period-card__time{color:#526277;color:var(--tb-muted,#94a3b8)}body.dark-mode .mobile-day-period-card__subject{color:#f1f5f9}body.dark-mode .mobile-day-period-card.is-empty .mobile-day-period-card__subject{color:#526277;color:var(--tb-muted,#94a3b8)}body.dark-mode .mobile-day-card__pill{background:#334155;border-color:#475569;color:#e2e8f0}body.dark-mode .mobile-day-card__pills--support .mobile-day-card__pill{background:#10b98129;border-color:#34d3994d;color:#6ee7b7}body.dark-mode .mobile-day-card__pills--student .mobile-day-card__pill{background:#6366f12e;border-color:#818cf859;color:#c7d2fe}body.dark-mode .mobile-day-period-card__room{color:#cbd5e1}body.dark-mode .mobile-day-period-card__room strong{color:#6ee7b7}
/*# sourceMappingURL=main.176b01c0.css.map*/