@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);: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:#64748b;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}.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-shell{margin:8px calc(50% - 50vw + 12px) 14px;max-width:none;width:calc(100vw - 24px)}.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;justify-content:flex-end;margin:0;padding:0;width:100%}.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:#64748b;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:#64748b}.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%}.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:#64748b;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{color:#64748b;font-size:10px;font-size:var(--tt-period-time-font,10px);font-weight:500;line-height:1.2;margin:0;padding:0}body.dark-mode .tt-period-header .period-time-text{color:#94a3b8}.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);padding:6px;padding:calc(6px*var(--tt-scale, 1));text-align:center}.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:#64748b;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}.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 .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}}.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:#64748b;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:#64748b;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:#64748b;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:#64748b;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:#64748b;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:#64748b;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-availability-empty{color:#64748b;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:#64748b;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:#64748b;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}.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:#64748b;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:#64748b;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}}.app-shell-footer-lane,.app-shell-footer-region{box-sizing:border-box;max-width:100%;min-width:0;width:100%}.app-shell-footer-lane:empty,.app-shell-footer-region:empty{display:block;height:0;margin:0;min-height:0;overflow:hidden;padding:0}@media print{.app-shell-footer-lane,.app-shell-footer-region{display:none}}.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:#64748b;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:#64748b;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:#64748b;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:#64748b;font-style:normal;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}@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}.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}}
/*# sourceMappingURL=main.fcfaa50d.css.map*/