:root{--bg:#f7f7fb;--panel:#fff;--muted:#6b7280;--text:#111827;--primary:#10b981;--primary-600:#0ea371;--brand:#4f46e5;--ring:rgba(99,102,241,.15);--border:#e5e7eb;--danger:#ef4444;--danger-bg:#fee2e2;--danger-border:#fecaca;--brand-2:#6366f1;--brand-strong:#4338ca;--brand-rgb:79,70,229;--brand-gold:#fbbf24;--brand-gold-rgb:251,191,36;--audience-basic-accent:#047857;--audience-basic-accent-2:#10b981;--audience-basic-strong:#065f46;--audience-basic-rgb:16,185,129;--audience-basic-soft:#ecfdf5;--audience-secondary-accent:#4f46e5;--audience-secondary-accent-2:#6366f1;--audience-secondary-strong:#4338ca;--audience-secondary-rgb:79,70,229;--audience-secondary-soft:#eef2ff;--accent:var(--brand);--accent-2:var(--brand-2);--accent-strong:var(--brand-strong);--accent-rgb:var(--brand-rgb);--accent-soft:#eef2ff;--accent-gradient:linear-gradient(135deg,var(--accent) 0%,var(--accent-2) 100%);--ink-900:#0f172a;--ink-800:#1e293b;--ink-800-rgb:30,41,59;--ink-700:#334155;--ink-600:#475569;--ink-500:#64748b;--ink-400:#94a3b8;--ink-300:#cbd5e1;--ink-200:#e2e8f0;--ink-50:#f8fafc;--radius-xs:6px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--modal-primary:#3b82f6;--modal-primary-hover:#2563eb;--modal-primary-light:#eff6ff;--modal-success:#10b981;--modal-error:#ef4444;--modal-warning:#f59e0b;--modal-text-primary:#111827;--modal-text-secondary:#6b7280;--modal-bg-card:#fff;--modal-bg-selected:#eff6ff;--modal-border:#e5e7eb;--modal-border-selected:#3b82f6;--modal-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--modal-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--modal-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--modal-shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--modal-radius-sm:6px;--modal-radius-md:8px;--modal-radius-lg:12px;--modal-spacing-xs:4px;--modal-spacing-sm:8px;--modal-spacing-md:12px;--modal-spacing-lg:16px;--modal-spacing-xl:20px;--modal-spacing-2xl:24px;--timetable-primary:#3b82f6;--timetable-primary-hover:#2563eb;--timetable-primary-light:#eff6ff;--timetable-primary-dark:#1e40af;--timetable-subject-math:#3b82f6;--timetable-subject-science:#10b981;--timetable-subject-language:#f59e0b;--timetable-subject-history:#8b5cf6;--timetable-subject-arts:#ef4444;--timetable-subject-sports:#06b6d4;--timetable-subject-music:#84cc16;--timetable-subject-default:#6b7280;--timetable-status-scheduled:#10b981;--timetable-status-cancelled:#ef4444;--timetable-status-moved:#f59e0b;--timetable-status-completed:#6b7280;--timetable-conflict-critical:#dc2626;--timetable-conflict-high:#ea580c;--timetable-conflict-medium:#ca8a04;--timetable-conflict-low:#2563eb;--timetable-conflict-bg:#fef2f2;--timetable-conflict-border:#fecaca;--timetable-grid-bg:#fff;--timetable-grid-header-bg:linear-gradient(135deg,#fff,#f8fafc);--timetable-grid-border:#e2e8f0;--timetable-grid-hover:rgba(79,70,229,.02);--timetable-font-family:"Inter",system-ui,sans-serif;--timetable-font-weight-normal:400;--timetable-font-weight-medium:500;--timetable-font-weight-semibold:600;--timetable-font-weight-bold:700;--timetable-font-weight-extrabold:800;--timetable-spacing-xs:4px;--timetable-spacing-sm:8px;--timetable-spacing-md:12px;--timetable-spacing-lg:16px;--timetable-spacing-xl:20px;--timetable-spacing-2xl:24px;--timetable-spacing-3xl:32px;--timetable-radius-sm:6px;--timetable-radius-md:8px;--timetable-radius-lg:10px;--timetable-radius-xl:12px;--timetable-radius-2xl:16px;--timetable-shadow-sm:0 1px 2px 0 rgba(0,0,0,.05);--timetable-shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--timetable-shadow-lg:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -2px rgba(0,0,0,.05);--timetable-shadow-xl:0 20px 25px -5px rgba(0,0,0,.1),0 10px 10px -5px rgba(0,0,0,.04);--timetable-shadow-conflict:0 4px 12px rgba(220,38,38,.2);--timetable-transition-fast:0.15s ease-out;--timetable-transition-normal:0.2s ease-out;--timetable-transition-slow:0.3s ease-out;--timetable-transition-bounce:0.3s cubic-bezier(0.4,0,0.2,1);--timetable-z-base:1;--timetable-z-dropdown:10;--timetable-z-sticky:20;--timetable-z-modal:50;--timetable-z-tooltip:100;--timetable-focus-ring:0 0 0 3px rgba(59,130,246,.3);--timetable-focus-ring-error:0 0 0 3px rgba(239,68,68,.3);--timetable-focus-ring-success:0 0 0 3px rgba(16,185,129,.3);--timetable-focus-ring-warning:0 0 0 3px rgba(245,158,11,.3);--timetable-focus-outline:2px solid #3b82f6;--timetable-focus-offset:2px;--timetable-high-contrast-border:2px solid;--timetable-high-contrast-focus:3px solid #ff0;--timetable-high-contrast-text:#000;--timetable-high-contrast-bg:#fff}[data-audience=basic]{--accent:var(--audience-basic-accent);--accent-2:var(--audience-basic-accent-2);--accent-strong:var(--audience-basic-strong);--accent-rgb:var(--audience-basic-rgb);--accent-soft:var(--audience-basic-soft);--accent-gradient:linear-gradient(135deg,var(--audience-basic-accent) 0%,var(--audience-basic-accent-2) 100%)}[data-audience=secondary]{--accent:var(--audience-secondary-accent);--accent-2:var(--audience-secondary-accent-2);--accent-strong:var(--audience-secondary-strong);--accent-rgb:var(--audience-secondary-rgb);--accent-soft:var(--audience-secondary-soft);--accent-gradient:linear-gradient(135deg,var(--audience-secondary-accent) 0%,var(--audience-secondary-accent-2) 100%)}*{box-sizing:border-box}#_next,body,html{height:100%;margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{color:var(--brand);text-decoration:none;transition:color .2s}a:hover{text-decoration:underline}a:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}button{cursor:pointer}button,input,select,textarea{font-family:inherit}:focus-visible{outline:2px solid var(--brand);outline-offset:2px}:focus:not(:focus-visible){outline:none}*{transition-property:background-color,border-color,color,fill,stroke,opacity,box-shadow,transform;transition-duration:.2s;transition-timing-function:cubic-bezier(.4,0,.2,1)}.skip-to-main{position:absolute;left:-9999px;z-index:999;padding:1em;background-color:var(--brand);color:#fff;text-decoration:none}.skip-to-main:focus{left:50%;transform:translateX(-50%);top:1em}li,p{line-height:1.6}button:disabled{opacity:.6;cursor:not-allowed}input.no-spinner[type=number]::-webkit-inner-spin-button,input.no-spinner[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}input.no-spinner[type=number]{-moz-appearance:textfield;-webkit-appearance:textfield;appearance:textfield}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:#f1f1f1}::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:5px}::-webkit-scrollbar-thumb:hover{background:#a8a8a8}.contextual-help-link{display:inline-flex;align-items:center;gap:6px;color:var(--brand);font-size:14px;font-weight:500;text-decoration:none;padding:6px 12px;border-radius:6px;transition:all .2s ease}.contextual-help-link:hover{background-color:rgba(79,70,229,.08);text-decoration:none}.contextual-help-link:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.contextual-help-link svg{flex-shrink:0}.contextual-help-button{display:inline-flex;align-items:center;gap:8px;background-color:#fff;color:var(--brand);font-size:14px;font-weight:500;padding:8px 16px;border:1px solid var(--border);border-radius:8px;transition:all .2s ease;box-shadow:0 1px 2px rgba(0,0,0,.05)}.contextual-help-button:hover{background-color:rgba(79,70,229,.04);border-color:var(--brand);box-shadow:0 2px 4px rgba(0,0,0,.08)}.contextual-help-button:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(0,0,0,.05)}.contextual-help-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}.contextual-help-button svg{flex-shrink:0}.contextual-help-banner{display:flex;align-items:flex-start;gap:12px;background:linear-gradient(135deg,rgba(79,70,229,.05),rgba(99,102,241,.08));border:1px solid rgba(79,70,229,.2);border-radius:12px;padding:16px;margin-bottom:24px}.contextual-help-banner-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:36px;height:36px;background-color:#fff;border-radius:8px;color:var(--brand);box-shadow:0 2px 4px rgba(0,0,0,.05)}.contextual-help-banner-content{flex:1 1;display:flex;flex-direction:column;gap:8px}.contextual-help-banner-text{margin:0;color:var(--text);font-size:14px;line-height:1.5}.contextual-help-banner-button{align-self:flex-start;background-color:var(--brand);color:#fff;font-size:13px;font-weight:600;padding:6px 14px;border:none;border-radius:6px;transition:all .2s ease;box-shadow:0 1px 2px rgba(0,0,0,.05)}.contextual-help-banner-button:hover{background-color:var(--primary-600);box-shadow:0 2px 4px rgba(0,0,0,.1)}.contextual-help-banner-button:active{transform:translateY(1px);box-shadow:0 1px 2px rgba(0,0,0,.05)}.contextual-help-banner-button:focus-visible{outline:2px solid #fff;outline-offset:2px}@media (max-width:768px){.contextual-help-banner{flex-direction:column;align-items:center;text-align:center}.contextual-help-banner-content{align-items:center}.contextual-help-banner-button{align-self:center}}[role=button]:focus-visible,[tabindex]:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid var(--brand);outline-offset:2px}.subjects-container button:focus-visible,.subjects-container input:focus-visible,.subjects-container select:focus-visible,.subjects-container textarea:focus-visible{outline-width:4px}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:192dpi){body{font-size:18px}}.timetable-container :focus-visible{outline:var(--timetable-focus-outline);outline-offset:var(--timetable-focus-offset);box-shadow:var(--timetable-focus-ring);border-radius:var(--timetable-radius-sm)}.schedule-cell:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:2px;box-shadow:var(--timetable-focus-ring),inset 0 0 0 2px var(--timetable-primary);z-index:var(--timetable-z-sticky);position:relative}.enhanced-btn-danger:focus-visible,.enhanced-btn-primary:focus-visible,.enhanced-btn-secondary:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:3px;box-shadow:var(--timetable-focus-ring)}.enhanced-btn-danger:focus-visible{outline-color:var(--timetable-conflict-critical);box-shadow:var(--timetable-focus-ring-error)}.enhanced-form-input:focus-visible,.enhanced-form-select:focus-visible,.enhanced-form-textarea:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:2px;box-shadow:var(--timetable-focus-ring);border-color:var(--timetable-primary)}.enhanced-modal-content:focus-within{box-shadow:var(--timetable-shadow-xl),0 0 0 4px rgba(59,130,246,.2)}.day-selector-btn:focus-visible,.today-btn:focus-visible,.week-nav-btn:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:2px;box-shadow:var(--timetable-focus-ring)}[role=tab]:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:2px;box-shadow:var(--timetable-focus-ring);z-index:var(--timetable-z-sticky);position:relative}[role=gridcell]:focus-visible{outline:3px solid var(--timetable-primary);outline-offset:1px;box-shadow:var(--timetable-focus-ring),inset 0 0 0 2px var(--timetable-primary);z-index:var(--timetable-z-sticky);position:relative}@media (prefers-contrast:high){:root{--timetable-primary:#00f;--timetable-primary-hover:navy;--timetable-primary-dark:#000040;--timetable-grid-border:#000;--timetable-focus-outline:4px solid #ff0;--timetable-focus-ring:0 0 0 4px #ff0;--timetable-high-contrast-focus:4px solid #ff0}.enhanced-btn-danger,.enhanced-btn-primary,.enhanced-btn-secondary,.enhanced-form-input,.enhanced-form-select,.enhanced-form-textarea,.schedule-cell{border:var(--timetable-high-contrast-border) #000}:focus-visible{outline:var(--timetable-high-contrast-focus);outline-offset:2px;box-shadow:none}.confirmation-dialog,.enhanced-modal-content,.timetable-container{color:var(--timetable-high-contrast-text);background:var(--timetable-high-contrast-bg)}.enhanced-btn-primary{background:#000;color:#fff;border:2px solid #000}.enhanced-btn-primary:hover{background:#333;border-color:#333}.enhanced-btn-secondary{background:#fff;color:#000;border:2px solid #000}.enhanced-btn-secondary:hover{background:#f0f0f0}.enhanced-btn-danger{background:red;color:#fff;border:2px solid red}.enhanced-btn-danger:hover{background:#c00;border-color:#c00}}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.confirmation-dialog,.enhanced-modal-content,.mobile-schedule-card,.schedule-entry{animation:none!important;transform:none!important}}.sr-only-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.keyboard-navigation-active .schedule-cell:focus{outline:3px solid var(--timetable-primary);outline-offset:2px;box-shadow:var(--timetable-focus-ring),inset 0 0 0 2px var(--timetable-primary);background-color:rgba(59,130,246,.05)}.skip-link{position:absolute;top:-40px;left:6px;background:var(--timetable-primary);color:#fff;padding:8px;text-decoration:none;border-radius:var(--timetable-radius-md);z-index:var(--timetable-z-tooltip);font-weight:var(--timetable-font-weight-semibold)}.skip-link:focus{top:6px}.enhanced-form-input.error:focus-visible,.enhanced-form-select.error:focus-visible,.enhanced-form-textarea.error:focus-visible{outline-color:var(--timetable-conflict-critical);box-shadow:var(--timetable-focus-ring-error);border-color:var(--timetable-conflict-critical)}.enhanced-form-input.success:focus-visible,.enhanced-form-select.success:focus-visible,.enhanced-form-textarea.success:focus-visible{outline-color:var(--timetable-status-scheduled);box-shadow:var(--timetable-focus-ring-success);border-color:var(--timetable-status-scheduled)}.enhanced-form-input.warning:focus-visible,.enhanced-form-select.warning:focus-visible,.enhanced-form-textarea.warning:focus-visible{outline-color:var(--timetable-status-moved);box-shadow:var(--timetable-focus-ring-warning);border-color:var(--timetable-status-moved)}button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.6;cursor:not-allowed}@media (prefers-contrast:high){button:disabled,input:disabled,select:disabled,textarea:disabled{opacity:.8;background-color:#f0f0f0;color:#666;border-color:#999}}.conflict-indicator{outline:2px solid var(--timetable-conflict-critical);outline-offset:1px}@media (prefers-contrast:high){.conflict-indicator{outline-width:3px;background-color:#ff0;color:#000}}.status-badge{border:1px solid;font-weight:var(--timetable-font-weight-semibold)}@media (prefers-contrast:high){.status-badge{border-width:2px;font-weight:var(--timetable-font-weight-bold)}}.performance-dashboard-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,.5);z-index:9999;display:flex;align-items:center;justify-content:center;padding:var(--timetable-spacing-lg)}.performance-dashboard{background:#fff;border-radius:var(--timetable-radius-lg);box-shadow:var(--timetable-shadow-xl);width:90vw;max-width:1200px;height:80vh;display:flex;flex-direction:column;overflow:hidden}.performance-dashboard-header{display:flex;align-items:center;justify-content:space-between;padding:var(--timetable-spacing-lg);border-bottom:1px solid var(--gray-200);background:var(--gray-50)}.performance-dashboard-header h2{align-items:center;margin:0;font-size:var(--text-xl);font-weight:var(--font-semibold);color:var(--gray-900)}.performance-dashboard-controls,.performance-dashboard-header h2{display:flex;gap:var(--timetable-spacing-sm)}.performance-button{display:flex;align-items:center;gap:var(--timetable-spacing-xs);padding:var(--timetable-spacing-sm) var(--timetable-spacing-md);border:1px solid var(--gray-300);border-radius:var(--timetable-radius-md);background:#fff;color:var(--gray-700);font-size:var(--text-sm);font-weight:var(--font-medium);cursor:pointer;transition:var(--timetable-transition-normal)}.performance-button:hover{background:var(--gray-50);border-color:var(--gray-400)}.performance-button.record{background:var(--status-cancelled);color:#fff;border-color:var(--status-cancelled)}.performance-button.record:hover{background:#dc2626}.performance-button.stop{background:var(--gray-600);color:#fff;border-color:var(--gray-600)}.performance-button.export{background:var(--timetable-primary);color:#fff;border-color:var(--timetable-primary)}.performance-button.export:hover{background:var(--timetable-primary-hover)}.performance-dashboard-content{flex:1 1;padding:var(--timetable-spacing-lg);overflow-y:auto;display:flex;flex-direction:column;gap:var(--timetable-spacing-lg)}.performance-score{display:flex;align-items:center;gap:var(--timetable-spacing-xl);padding:var(--timetable-spacing-lg);background:var(--gray-50);border-radius:var(--timetable-radius-lg);border:1px solid var(--gray-200)}.score-circle{display:flex;flex-direction:column;align-items:center;justify-content:center;width:80px;height:80px;border-radius:50%;background:conic-gradient(var(--status-scheduled) 0deg,var(--status-scheduled) calc(var(--score, 0) * 3.6deg),var(--gray-200) calc(var(--score, 0) * 3.6deg),var(--gray-200) 1turn);position:relative}.score-circle:before{content:"";position:absolute;width:60px;height:60px;background:#fff;border-radius:50%}.score-value{font-size:var(--text-xl);font-weight:var(--font-bold);color:var(--gray-900);z-index:1}.score-label{font-size:var(--text-xs);color:var(--gray-600);z-index:1}.score-details{flex:1 1;display:flex;flex-direction:column;gap:var(--timetable-spacing-md)}.score-item{display:flex;justify-content:space-between;align-items:center}.score-item .label{font-size:var(--text-sm);color:var(--gray-600)}.score-item .value{font-size:var(--text-sm);font-weight:var(--font-medium);padding:var(--timetable-spacing-xs) var(--timetable-spacing-sm);border-radius:var(--timetable-radius-sm)}.score-item .value.good{background:var(--status-scheduled);color:#fff}.score-item .value.warning{background:var(--status-pending);color:#fff}.score-item .value.critical{background:var(--status-cancelled);color:#fff}.score-item .value.unknown{background:var(--gray-200);color:var(--gray-600)}.performance-alerts{background:#fff;border:1px solid var(--gray-200);border-radius:var(--timetable-radius-lg);overflow:hidden}.alerts-header{display:flex;justify-content:space-between;align-items:center;padding:var(--timetable-spacing-md) var(--timetable-spacing-lg);background:var(--gray-50);border-bottom:1px solid var(--gray-200)}.alerts-header h3{margin:0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--gray-900)}.clear-alerts{padding:var(--timetable-spacing-xs) var(--timetable-spacing-sm);border:1px solid var(--gray-300);border-radius:var(--timetable-radius-sm);background:#fff;color:var(--gray-600);font-size:var(--text-xs);cursor:pointer;transition:var(--timetable-transition-normal)}.clear-alerts:hover{background:var(--gray-50)}.alerts-list{padding:var(--timetable-spacing-md);flex-direction:column}.alert,.alerts-list{display:flex;gap:var(--timetable-spacing-sm)}.alert{align-items:center;padding:var(--timetable-spacing-sm) var(--timetable-spacing-md);border-radius:var(--timetable-radius-md);font-size:var(--text-sm)}.alert.alert-warning{background:#fef3c7;color:#92400e;border:1px solid #fbbf24}.alert.alert-critical{background:#fee2e2;color:#991b1b;border:1px solid #f87171}.performance-metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));grid-gap:var(--timetable-spacing-lg);gap:var(--timetable-spacing-lg)}.metric-card{background:#fff;border:1px solid var(--gray-200);border-radius:var(--timetable-radius-lg);padding:var(--timetable-spacing-lg)}.metric-card h3{margin:0 0 var(--timetable-spacing-md) 0;font-size:var(--text-lg);font-weight:var(--font-semibold);color:var(--gray-900)}.no-data{color:var(--gray-500);font-style:italic;text-align:center;padding:var(--timetable-spacing-lg)}.render-metrics{display:flex;flex-direction:column;gap:var(--timetable-spacing-sm)}.render-item{display:flex;justify-content:space-between;align-items:center;padding:var(--timetable-spacing-sm);background:var(--gray-50);border-radius:var(--timetable-radius-sm)}.component-name{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--gray-900)}.render-time{font-size:var(--text-sm);font-weight:var(--font-bold);padding:var(--timetable-spacing-xs) var(--timetable-spacing-sm);border-radius:var(--timetable-radius-sm)}.render-time.good{background:var(--status-scheduled);color:#fff}.render-time.warning{background:var(--status-pending);color:#fff}.render-time.critical{background:var(--status-cancelled);color:#fff}.sample-count{font-size:var(--text-xs);color:var(--gray-500)}.memory-metrics{display:flex;flex-direction:column;gap:var(--timetable-spacing-sm)}.memory-item{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.memory-item .label{color:var(--gray-600)}.memory-item .value{font-weight:var(--font-medium);color:var(--gray-900)}.memory-bar{height:8px;background:var(--gray-200);border-radius:var(--timetable-radius-sm);overflow:hidden;margin-top:var(--timetable-spacing-sm)}.memory-usage{height:100%;background:linear-gradient(90deg,var(--status-scheduled),var(--status-pending),var(--status-cancelled));transition:width var(--timetable-transition-normal)}.navigation-metrics,.vitals-metrics{display:flex;flex-direction:column;gap:var(--timetable-spacing-sm)}.nav-item,.vital-item{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-sm)}.nav-item .label,.vital-item .label{color:var(--gray-600)}.nav-item .value,.vital-item .value{font-weight:var(--font-medium);padding:var(--timetable-spacing-xs) var(--timetable-spacing-sm);border-radius:var(--timetable-radius-sm)}.vital-item .value.good{background:var(--status-scheduled);color:#fff}.vital-item .value.warning{background:var(--status-pending);color:#fff}.vital-item .value.critical{background:var(--status-cancelled);color:#fff}.resource-metrics{display:flex;flex-direction:column;gap:var(--timetable-spacing-xs)}.resource-item{display:grid;grid-template-columns:1fr auto auto;grid-gap:var(--timetable-spacing-sm);gap:var(--timetable-spacing-sm);align-items:center;padding:var(--timetable-spacing-xs);font-size:var(--text-xs)}.resource-name{color:var(--gray-900);font-weight:var(--font-medium);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.resource-duration,.resource-size{color:var(--gray-600);font-family:var(--timetable-font-mono)}@media (max-width:768px){.performance-dashboard{width:95vw;height:90vh}.performance-dashboard-content,.performance-dashboard-header{padding:var(--timetable-spacing-md)}.performance-score{flex-direction:column;text-align:center;gap:var(--timetable-spacing-md)}.performance-metrics-grid{grid-template-columns:1fr}.performance-dashboard-controls{flex-wrap:wrap}.performance-button{padding:var(--timetable-spacing-xs) var(--timetable-spacing-sm);font-size:var(--text-xs)}}.classes-management-section{font-family:var(--timetable-font-family)}.classes-management-section .section-header{background:linear-gradient(135deg,#f8fafc,#f1f5f9);border:1px solid #e2e8f0;box-shadow:0 1px 3px 0 rgba(0,0,0,.1)}.classes-management-section .enhanced-class-card{font-family:var(--timetable-font-family);transition:all var(--timetable-transition-normal)}.classes-management-section .enhanced-class-card:hover{transform:translateY(-2px);box-shadow:0 10px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1)}.content .classes-management-section{margin:0}@media (max-width:768px){.classes-management-section .section-header{padding:16px}.classes-management-section .header-content{gap:12px}.classes-management-section .header-title h2{font-size:20px}.classes-management-section .controls-bar{padding:12px 16px}}.schedule-page .classes-management-section{background:transparent}.schedule-page .classes-management-section .enhanced-class-card{border:1px solid var(--timetable-grid-border,#e5e7eb);box-shadow:var(--timetable-shadow-sm,0 1px 3px 0 rgba(0,0,0,.1))}.schedule-page .classes-management-section .enhanced-class-card:hover{border-color:var(--timetable-primary-light,#dbeafe);box-shadow:var(--timetable-shadow-lg,0 10px 25px -5px rgba(0,0,0,.1))}.gradient-text{background:linear-gradient(135deg,#667eea,#764ba2);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}@media (hover:hover){.scroll-hover{overflow-y:hidden!important;scrollbar-gutter:stable}.scroll-hover:focus-within,.scroll-hover:hover{overflow-y:auto!important}}.scroll-hover::-webkit-scrollbar{width:8px;height:8px}.scroll-hover::-webkit-scrollbar-track{background:transparent}.scroll-hover::-webkit-scrollbar-thumb{background-color:hsla(220,9%,46%,.45);border-radius:8px}.scroll-hover::-webkit-scrollbar-thumb:hover{background-color:hsla(220,9%,46%,.7)}@supports (-moz-appearance:none){.scroll-hover{scrollbar-width:thin;scrollbar-color:hsla(220,9%,46%,.45) transparent}}.modern-desktop-view{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden;margin:20px 0}.schedule-table-container{overflow-x:auto}.modern-schedule-table{width:100%;border-collapse:collapse;font-size:14px}.table-header{background:#f8fafc;border-bottom:2px solid #e5e7eb}.time-header{text-align:left;width:120px;background:#f1f5f9}.day-header-cell,.time-header{padding:16px 12px;font-weight:600;color:#374151;font-size:13px;text-transform:uppercase;letter-spacing:.025em;border-right:1px solid #e5e7eb}.day-header-cell{text-align:center;min-width:160px}.day-header-content{display:flex;flex-direction:column;align-items:center;gap:4px}.day-name{font-size:14px}.day-short{font-size:11px;font-weight:400;color:#6b7280;opacity:.8}.table-row{border-bottom:1px solid #e5e7eb}.table-row.even{background:#fff}.table-row.odd{background:#f9fafb}.time-cell{padding:8px;border-right:1px solid #e5e7eb;height:80px;vertical-align:top}.time-content{font-weight:600;line-height:1.2;background:linear-gradient(135deg,#f8fafc,#f1f5f9);padding:12px;border-radius:8px;text-align:center;border:1px solid #e2e8f0;height:100%;display:flex;flex-direction:column;justify-content:center}.start-time,.time-content{color:#374151;font-size:14px}.start-time{font-weight:700}.end-time{font-size:11px;color:#6b7280;font-weight:400;margin-top:2px}.schedule-cell{padding:8px;border-right:1px solid #e5e7eb;height:80px;vertical-align:top}.modern-schedule-entry{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border:1px solid #3b82f6;border-radius:6px;padding:8px;height:64px;cursor:pointer;transition:all .2s ease;display:flex;flex-direction:column;justify-content:space-between}.modern-schedule-entry:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(59,130,246,.3)}.entry-content{height:100%;flex-direction:column}.entry-content,.entry-header{display:flex;justify-content:space-between}.entry-header{align-items:flex-start;margin-bottom:4px}.subject-name{font-weight:700;font-size:13px;line-height:1.2;color:#1e40af;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1 1}.entry-details{display:flex;flex-direction:column;gap:1px}.entry-detail{display:flex;align-items:center;gap:4px;font-size:11px;color:#1e40af;opacity:.9;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.modern-empty-slot{background:#f9fafb;border:2px dashed #d1d5db;border-radius:6px;height:64px;display:flex;align-items:center;justify-content:center;color:#9ca3af;font-size:12px;cursor:pointer;transition:all .2s ease}.modern-empty-slot:hover{border-color:#3b82f6;background:#eff6ff;color:#3b82f6}.empty-slot-content{display:flex;flex-direction:column;align-items:center;gap:4px}.empty-slot-icon{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;background:rgba(59,130,246,.1);color:#3b82f6}.empty-slot-text{font-size:11px;font-weight:500;text-align:center}.modern-schedule-entry.math{background:linear-gradient(135deg,#dbeafe,#bfdbfe);border-color:#3b82f6}.modern-schedule-entry.math .entry-detail,.modern-schedule-entry.math .subject-name{color:#1e40af}.modern-schedule-entry.science{background:linear-gradient(135deg,#d1fae5,#a7f3d0);border-color:#10b981}.modern-schedule-entry.science .entry-detail,.modern-schedule-entry.science .subject-name{color:#065f46}.modern-schedule-entry.french{background:linear-gradient(135deg,#fef3c7,#fde68a);border-color:#f59e0b}.modern-schedule-entry.french .entry-detail,.modern-schedule-entry.french .subject-name{color:#92400e}.modern-schedule-entry.history{background:linear-gradient(135deg,#fecaca,#fca5a5);border-color:#ef4444}.modern-schedule-entry.history .entry-detail,.modern-schedule-entry.history .subject-name{color:#991b1b}.modern-schedule-entry.english{background:linear-gradient(135deg,#e9d5ff,#d8b4fe);border-color:#8b5cf6}.modern-schedule-entry.english .entry-detail,.modern-schedule-entry.english .subject-name{color:#5b21b6}.modern-schedule-entry.sport{background:linear-gradient(135deg,#cffafe,#a5f3fc);border-color:#06b6d4}.modern-schedule-entry.sport .entry-detail,.modern-schedule-entry.sport .subject-name{color:#164e63}.modern-mobile-view{display:flex;flex-direction:column;gap:16px}.modern-day-card{background:#fff;border-radius:12px;box-shadow:0 2px 8px rgba(0,0,0,.1);overflow:hidden}.day-header{padding:16px 20px;background:#f8fafc;border-bottom:1px solid #e5e7eb;cursor:pointer;display:flex;align-items:center;justify-content:space-between}.day-info{display:flex;flex-direction:column;gap:4px}.day-name{font-size:16px;font-weight:700;color:#374151}.day-stats{font-size:13px;color:#6b7280;font-weight:500}.day-content{max-height:0;overflow:hidden;transition:max-height .3s ease}.day-content.expanded{max-height:2000px}.time-slot-row{display:flex;align-items:flex-start;gap:16px;padding:12px 20px;border-bottom:1px solid #e5e7eb}.time-slot-row:last-child{border-bottom:none}.time-label{flex-shrink:0;width:60px;text-align:center;padding:8px;background:#f8fafc;border-radius:6px;border:1px solid #e5e7eb}.time-label .start-time{font-weight:700;color:#374151;font-size:13px}.time-label .end-time{font-size:11px;color:#6b7280;font-weight:500;margin-top:2px}.slot-content{flex:1 1}@media (max-width:768px){.modern-schedule-entry{height:60px;padding:6px}.subject-name{font-size:12px}.entry-detail{font-size:10px}.modern-empty-slot{height:60px}.empty-slot-text{font-size:10px}}.leaflet-image-layer,.leaflet-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane,.leaflet-pane>canvas,.leaflet-pane>svg,.leaflet-tile,.leaflet-tile-container,.leaflet-zoom-box{position:absolute;left:0;top:0}.leaflet-container{overflow:hidden}.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-tile{-webkit-user-select:none;-moz-user-select:none;user-select:none;-webkit-user-drag:none}.leaflet-tile::selection{background:transparent}.leaflet-safari .leaflet-tile{image-rendering:-webkit-optimize-contrast}.leaflet-safari .leaflet-tile-container{width:1600px;height:1600px;-webkit-transform-origin:0 0}.leaflet-marker-icon,.leaflet-marker-shadow{display:block}.leaflet-container .leaflet-overlay-pane svg{max-width:none!important;max-height:none!important}.leaflet-container .leaflet-marker-pane img,.leaflet-container .leaflet-shadow-pane img,.leaflet-container .leaflet-tile,.leaflet-container .leaflet-tile-pane img,.leaflet-container img.leaflet-image-layer{max-width:none!important;max-height:none!important;width:auto;padding:0}.leaflet-container img.leaflet-tile{mix-blend-mode:plus-lighter}.leaflet-container.leaflet-touch-zoom{touch-action:pan-x pan-y}.leaflet-container.leaflet-touch-drag{touch-action:none;touch-action:pinch-zoom}.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom{touch-action:none}.leaflet-container{-webkit-tap-highlight-color:transparent}.leaflet-container a{-webkit-tap-highlight-color:rgba(51,181,229,.4)}.leaflet-tile{filter:inherit;visibility:hidden}.leaflet-tile-loaded{visibility:inherit}.leaflet-zoom-box{width:0;height:0;box-sizing:border-box;z-index:800}.leaflet-overlay-pane svg{-moz-user-select:none}.leaflet-pane{z-index:400}.leaflet-tile-pane{z-index:200}.leaflet-overlay-pane{z-index:400}.leaflet-shadow-pane{z-index:500}.leaflet-marker-pane{z-index:600}.leaflet-tooltip-pane{z-index:650}.leaflet-popup-pane{z-index:700}.leaflet-map-pane canvas{z-index:100}.leaflet-map-pane svg{z-index:200}.leaflet-vml-shape{width:1px;height:1px}.lvml{behavior:url(#default#VML);display:inline-block;position:absolute}.leaflet-control{position:relative;z-index:800;pointer-events:visiblePainted;pointer-events:auto}.leaflet-bottom,.leaflet-top{position:absolute;z-index:1000;pointer-events:none}.leaflet-top{top:0}.leaflet-right{right:0}.leaflet-bottom{bottom:0}.leaflet-left{left:0}.leaflet-control{float:left;clear:both}.leaflet-right .leaflet-control{float:right}.leaflet-top .leaflet-control{margin-top:10px}.leaflet-bottom .leaflet-control{margin-bottom:10px}.leaflet-left .leaflet-control{margin-left:10px}.leaflet-right .leaflet-control{margin-right:10px}.leaflet-fade-anim .leaflet-popup{opacity:0;transition:opacity .2s linear}.leaflet-fade-anim .leaflet-map-pane .leaflet-popup{opacity:1}.leaflet-zoom-animated{transform-origin:0 0}svg.leaflet-zoom-animated{will-change:transform}.leaflet-zoom-anim .leaflet-zoom-animated{transition:transform .25s cubic-bezier(0,0,.25,1)}.leaflet-pan-anim .leaflet-tile,.leaflet-zoom-anim .leaflet-tile{transition:none}.leaflet-zoom-anim .leaflet-zoom-hide{visibility:hidden}.leaflet-interactive{cursor:pointer}.leaflet-grab{cursor:-webkit-grab;cursor:grab}.leaflet-crosshair,.leaflet-crosshair .leaflet-interactive{cursor:crosshair}.leaflet-control,.leaflet-popup-pane{cursor:auto}.leaflet-dragging .leaflet-grab,.leaflet-dragging .leaflet-grab .leaflet-interactive,.leaflet-dragging .leaflet-marker-draggable{cursor:move;cursor:-webkit-grabbing;cursor:grabbing}.leaflet-image-layer,.leaflet-marker-icon,.leaflet-marker-shadow,.leaflet-pane>svg path,.leaflet-tile-container{pointer-events:none}.leaflet-image-layer.leaflet-interactive,.leaflet-marker-icon.leaflet-interactive,.leaflet-pane>svg path.leaflet-interactive,svg.leaflet-image-layer.leaflet-interactive path{pointer-events:visiblePainted;pointer-events:auto}.leaflet-container{background:#ddd;outline-offset:1px}.leaflet-container a{color:#0078a8}.leaflet-zoom-box{border:2px dotted #38f;background:hsla(0,0%,100%,.5)}.leaflet-container{font-family:Helvetica Neue,Arial,Helvetica,sans-serif;font-size:12px;font-size:.75rem;line-height:1.5}.leaflet-bar{box-shadow:0 1px 5px rgba(0,0,0,.65);border-radius:4px}.leaflet-bar a{background-color:#fff;border-bottom:1px solid #ccc;width:26px;height:26px;line-height:26px;display:block;text-align:center;text-decoration:none;color:#000}.leaflet-bar a,.leaflet-control-layers-toggle{background-position:50% 50%;background-repeat:no-repeat;display:block}.leaflet-bar a:focus,.leaflet-bar a:hover{background-color:#f4f4f4}.leaflet-bar a:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.leaflet-bar a:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px;border-bottom:none}.leaflet-bar a.leaflet-disabled{cursor:default;background-color:#f4f4f4;color:#bbb}.leaflet-touch .leaflet-bar a{width:30px;height:30px;line-height:30px}.leaflet-touch .leaflet-bar a:first-child{border-top-left-radius:2px;border-top-right-radius:2px}.leaflet-touch .leaflet-bar a:last-child{border-bottom-left-radius:2px;border-bottom-right-radius:2px}.leaflet-control-zoom-in,.leaflet-control-zoom-out{font:700 18px Lucida Console,Monaco,monospace;text-indent:1px}.leaflet-touch .leaflet-control-zoom-in,.leaflet-touch .leaflet-control-zoom-out{font-size:22px}.leaflet-control-layers{box-shadow:0 1px 5px rgba(0,0,0,.4);background:#fff;border-radius:5px}.leaflet-control-layers-toggle{background-image:url(/_next/static/media/layers.ef6db872.png);width:36px;height:36px}.leaflet-retina .leaflet-control-layers-toggle{background-image:url(/_next/static/media/layers-2x.9859cd12.png);background-size:26px 26px}.leaflet-touch .leaflet-control-layers-toggle{width:44px;height:44px}.leaflet-control-layers .leaflet-control-layers-list,.leaflet-control-layers-expanded .leaflet-control-layers-toggle{display:none}.leaflet-control-layers-expanded .leaflet-control-layers-list{display:block;position:relative}.leaflet-control-layers-expanded{padding:6px 10px 6px 6px;color:#333;background:#fff}.leaflet-control-layers-scrollbar{overflow-y:scroll;overflow-x:hidden;padding-right:5px}.leaflet-control-layers-selector{margin-top:2px;position:relative;top:1px}.leaflet-control-layers label{display:block;font-size:13px;font-size:1.08333em}.leaflet-control-layers-separator{height:0;border-top:1px solid #ddd;margin:5px -10px 5px -6px}.leaflet-default-icon-path{background-image:url(/_next/static/media/marker-icon.d577052a.png)}.leaflet-container .leaflet-control-attribution{background:#fff;background:hsla(0,0%,100%,.8);margin:0}.leaflet-control-attribution,.leaflet-control-scale-line{padding:0 5px;color:#333;line-height:1.4}.leaflet-control-attribution a{text-decoration:none}.leaflet-control-attribution a:focus,.leaflet-control-attribution a:hover{text-decoration:underline}.leaflet-attribution-flag{display:inline!important;vertical-align:baseline!important;width:1em;height:.6669em}.leaflet-left .leaflet-control-scale{margin-left:5px}.leaflet-bottom .leaflet-control-scale{margin-bottom:5px}.leaflet-control-scale-line{border:2px solid #777;border-top:none;line-height:1.1;padding:2px 5px 1px;white-space:nowrap;box-sizing:border-box;background:hsla(0,0%,100%,.8);text-shadow:1px 1px #fff}.leaflet-control-scale-line:not(:first-child){border-top:2px solid #777;border-bottom:none;margin-top:-2px}.leaflet-control-scale-line:not(:first-child):not(:last-child){border-bottom:2px solid #777}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-attribution,.leaflet-touch .leaflet-control-layers{box-shadow:none}.leaflet-touch .leaflet-bar,.leaflet-touch .leaflet-control-layers{border:2px solid rgba(0,0,0,.2);background-clip:padding-box}.leaflet-popup{position:absolute;text-align:center;margin-bottom:20px}.leaflet-popup-content-wrapper{padding:1px;text-align:left;border-radius:12px}.leaflet-popup-content{margin:13px 24px 13px 20px;line-height:1.3;font-size:13px;font-size:1.08333em;min-height:1px}.leaflet-popup-content p{margin:1.3em 0}.leaflet-popup-tip-container{width:40px;height:20px;position:absolute;left:50%;margin-top:-1px;margin-left:-20px;overflow:hidden;pointer-events:none}.leaflet-popup-tip{width:17px;height:17px;padding:1px;margin:-10px auto 0;pointer-events:auto;transform:rotate(45deg)}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#fff;color:#333;box-shadow:0 3px 14px rgba(0,0,0,.4)}.leaflet-container a.leaflet-popup-close-button{position:absolute;top:0;right:0;border:none;text-align:center;width:24px;height:24px;font:16px/24px Tahoma,Verdana,sans-serif;color:#757575;text-decoration:none;background:transparent}.leaflet-container a.leaflet-popup-close-button:focus,.leaflet-container a.leaflet-popup-close-button:hover{color:#585858}.leaflet-popup-scrolled{overflow:auto}.leaflet-oldie .leaflet-popup-content-wrapper{-ms-zoom:1}.leaflet-oldie .leaflet-popup-tip{width:24px;margin:0 auto;-ms-filter:"progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)";filter:progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678,M12=0.70710678,M21=-0.70710678,M22=0.70710678)}.leaflet-oldie .leaflet-control-layers,.leaflet-oldie .leaflet-control-zoom,.leaflet-oldie .leaflet-popup-content-wrapper,.leaflet-oldie .leaflet-popup-tip{border:1px solid #999}.leaflet-div-icon{background:#fff;border:1px solid #666}.leaflet-tooltip{position:absolute;padding:6px;background-color:#fff;border:1px solid #fff;border-radius:3px;color:#222;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;user-select:none;pointer-events:none;box-shadow:0 1px 3px rgba(0,0,0,.4)}.leaflet-tooltip.leaflet-interactive{cursor:pointer;pointer-events:auto}.leaflet-tooltip-bottom:before,.leaflet-tooltip-left:before,.leaflet-tooltip-right:before,.leaflet-tooltip-top:before{position:absolute;pointer-events:none;border:6px solid transparent;background:transparent;content:""}.leaflet-tooltip-bottom{margin-top:6px}.leaflet-tooltip-top{margin-top:-6px}.leaflet-tooltip-bottom:before,.leaflet-tooltip-top:before{left:50%;margin-left:-6px}.leaflet-tooltip-top:before{bottom:0;margin-bottom:-12px;border-top-color:#fff}.leaflet-tooltip-bottom:before{top:0;margin-top:-12px;margin-left:-6px;border-bottom-color:#fff}.leaflet-tooltip-left{margin-left:-6px}.leaflet-tooltip-right{margin-left:6px}.leaflet-tooltip-left:before,.leaflet-tooltip-right:before{top:50%;margin-top:-6px}.leaflet-tooltip-left:before{right:0;margin-right:-12px;border-left-color:#fff}.leaflet-tooltip-right:before{left:0;margin-left:-12px;border-right-color:#fff}@media print{.leaflet-control{-webkit-print-color-adjust:exact;print-color-adjust:exact}}