:root{--primary-blue:#4f46e5;--primary-blue-light:#eef2ff;--primary-blue-hover:#4338ca;--primary-orange:#f97316;--primary-orange-hover:#ea580c;--primary-orange-light:#fff7ed;--bg-color:#f8fafc;--panel-bg:#fff;--text-main:#1e293b;--text-muted:#94a3b8;--text-secondary:#64748b;--border-color:#e2e8f0;--danger:#ef4444;--danger-bg:#fef2f2;--danger-border:#fecaca;--success:#10b981;--success-bg:#ecfdf5;--success-border:#a7f3d0;--warning:#f59e0b;--warning-bg:#fffbeb;--warning-border:#fcd34d;--free-bg:#f0fdf4;--free-border:#bbf7d0;--free-text:#166534;--busy-bg:#fef2f2;--busy-border:#fecaca;--busy-text:#991b1b;--onleave-bg:#fffbeb;--onleave-border:#fde68a;--onleave-text:#92400e;--border-radius:12px;--card-shadow:0 1px 3px #0000000a, 0 4px 12px #00000008;--kinder:#d97706;--junior:#0ea5e9;--coder:#10b981;--sidebar-bg:#1e1b4b;--sidebar-text:#c7d2fe;--sidebar-active-bg:#6366f126;--sidebar-active-text:#a5b4fc}*{box-sizing:border-box;margin:0;padding:0}body{background-color:var(--bg-color);color:var(--text-main);min-height:100vh;font-family:Inter,sans-serif}.app-layout{height:100vh;display:flex;overflow:hidden}.loading-screen{height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:1rem;display:flex}.loading-spinner{border:3px solid var(--border-color);border-top-color:var(--primary-blue);border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}@keyframes modalAppear{0%{opacity:0;transform:scale(.96)translateY(10px)}to{opacity:1;transform:scale(1)translateY(0)}}.grid-add-slot{transition:background .15s,border-color .15s,color .15s}.grid-add-slot:not(:disabled):hover{color:#065f46!important;background:#05966929!important;border-style:solid!important;border-color:#059669!important}.grid-add-slot:focus-visible,.grid-short-slot:focus-visible{outline:2px solid var(--primary-blue);outline-offset:1px}.grid-short-slot{transition:background .15s,border-color .15s,color .15s}.grid-short-slot:not(:disabled):hover{background:var(--bg-color)!important;border-color:var(--text-muted)!important;color:var(--text-secondary)!important}.grid-scroll-nav{z-index:5;cursor:pointer;border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-secondary);border-radius:99px;align-items:center;gap:2px;padding:.4rem .3rem;transition:background .15s,color .15s,box-shadow .15s;display:inline-flex;position:absolute;top:50%;transform:translateY(-50%);box-shadow:0 2px 10px #00000024}.grid-scroll-nav:hover{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue);box-shadow:0 3px 14px #0003}.grid-scroll-nav:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px}.grid-scroll-nav-count{padding-right:.25rem;font-size:.62rem;font-weight:700;line-height:1}@keyframes gridScrollNudge{0%,to{transform:translateY(-50%)translate(0)}50%{transform:translateY(-50%)translate(3px)}}.grid-scroll-nav-right{animation:1.8s ease-in-out infinite gridScrollNudge}.grid-scroll-nav-right:hover{animation:none}@media (prefers-reduced-motion:reduce){.grid-scroll-nav-right{animation:none}}.schedule-grid-sticky-col{box-shadow:1px 0 0 var(--border-color)}.schedule-grid-sticky-head{box-shadow:0 1px 0 var(--border-color)}@keyframes notifDropdownIn{0%{opacity:0;transform:scale(.94)translateY(-10px)}to{opacity:1;transform:scale(1)translateY(0)}}.notif-dropdown{transform-origin:100% 0;animation:.22s cubic-bezier(.16,1,.3,1) notifDropdownIn}@keyframes notifDropdownOut{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.96)translateY(-8px)}}.notif-dropdown.notif-closing{pointer-events:none;animation:.16s cubic-bezier(.4,0,1,1) forwards notifDropdownOut}.notif-dropdown.notif-closing .notif-item{animation:none}@keyframes notifItemIn{0%{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:translateY(0)}}.notif-item{animation:.24s cubic-bezier(.16,1,.3,1) both notifItemIn}@keyframes notifBellRing{0%{transform:rotate(0)}20%{transform:rotate(13deg)}40%{transform:rotate(-10deg)}60%{transform:rotate(7deg)}80%{transform:rotate(-4deg)}to{transform:rotate(0)}}.notif-bell-icon{transform-origin:50% 15%}.notif-bell-open .notif-bell-icon{animation:.5s ease-in-out notifBellRing}.notif-bell-btn:active .notif-bell-icon{transform:scale(.9)}.notif-bell-btn:focus-visible{outline:2px solid var(--primary-blue);outline-offset:2px;border-radius:8px}@media (prefers-reduced-motion:reduce){.notif-dropdown,.notif-item,.notif-bell-open .notif-bell-icon{animation:none}.notif-dropdown.notif-closing{opacity:0;animation:none}}.activity-two-col{grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);align-items:stretch;gap:1.5rem;display:grid}.activity-two-col>.panel{flex-direction:column;display:flex}@media (max-width:1100px){.activity-two-col{grid-template-columns:minmax(0,1fr)}.activity-two-col>.panel{display:block}}.glass-login-overlay{z-index:9999;background:linear-gradient(135deg,#0a1628 0%,#0f2847 30%,#1a3a6b 60%,#0d2240 100%);justify-content:center;align-items:center;width:100vw;height:100vh;padding:1.5rem;display:flex;position:fixed;top:0;left:0;overflow:hidden}.glass-bg-blob{filter:blur(2px);opacity:.7;z-index:0;border-radius:50%;position:absolute}.blob-1{background:linear-gradient(135deg,#1e90ff,#00bcd4);border-radius:40% 60% 55% 45%/55% 40% 60% 45%;width:200px;height:200px;animation:12s ease-in-out infinite blobFloat1;top:8%;left:10%}.blob-2{background:linear-gradient(135deg,#38bdf8,#6366f1);border-radius:55% 45% 40% 60%/45% 55%;width:160px;height:160px;animation:14s ease-in-out infinite blobFloat2;bottom:15%;right:8%}.blob-3{background:linear-gradient(135deg,#06b6d4,#3b82f6);border-radius:45% 55% 60% 40%/60% 45% 55%;width:120px;height:120px;animation:10s ease-in-out infinite blobFloat3;top:50%;left:5%}.blob-4{background:linear-gradient(135deg,#22d3ee,#818cf8);border-radius:60% 40% 45% 55%/40% 60% 45% 55%;width:100px;height:100px;animation:16s ease-in-out infinite blobFloat4;top:12%;right:15%}.blob-5{background:linear-gradient(135deg,#0ea5e9,#2563eb);border-radius:50% 50% 45% 55%/55% 45% 50% 50%;width:180px;height:180px;animation:13s ease-in-out infinite blobFloat5;bottom:5%;left:30%}@keyframes blobFloat1{0%,to{transform:translate(0)rotate(0)scale(1)}33%{transform:translate(40px,-30px)rotate(15deg)scale(1.1)}66%{transform:translate(-20px,20px)rotate(-10deg)scale(.95)}}@keyframes blobFloat2{0%,to{transform:translate(0)rotate(0)scale(1)}33%{transform:translate(-35px,25px)rotate(-20deg)scale(1.05)}66%{transform:translate(25px,-35px)rotate(10deg)scale(.9)}}@keyframes blobFloat3{0%,to{transform:translate(0)scale(1)}50%{transform:translate(30px,-40px)scale(1.15)}}@keyframes blobFloat4{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(-25px,30px)rotate(25deg)}}@keyframes blobFloat5{0%,to{transform:translate(0)scale(1)}33%{transform:translate(20px,-25px)scale(1.08)}66%{transform:translate(-15px,15px)scale(.92)}}.glass-login-card{z-index:1;-webkit-backdrop-filter:blur(24px);background:#ffffff14;border:1px solid #ffffff26;border-radius:20px;width:100%;max-width:400px;padding:2.5rem 2.2rem;animation:.6s cubic-bezier(.16,1,.3,1) forwards cardAppear;position:relative;box-shadow:0 8px 32px #0000004d,inset 0 1px #ffffff1a}@keyframes cardAppear{0%{opacity:0;transform:translateY(30px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.glass-login-header{justify-content:center;align-items:center;gap:.75rem;margin-bottom:2rem;display:flex}.glass-logo-icon{justify-content:center;align-items:center;width:36px;height:36px;display:flex}.glass-login-header h2{background:linear-gradient(135deg,#60a5fa,#38bdf8);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:700}.glass-login-title{color:#fff;margin-bottom:1.5rem;font-family:Outfit,sans-serif;font-size:1.5rem;font-weight:700}.glass-login-form{flex-direction:column;gap:1.1rem;display:flex}.glass-input-group{flex-direction:column;gap:.4rem;display:flex}.glass-input-group label{color:#ffffffb3;letter-spacing:.02em;font-size:.8rem;font-weight:600}.glass-input-wrapper{align-items:center;display:flex;position:relative}.glass-input-icon{color:#ffffff59;pointer-events:none;position:absolute;left:12px}.glass-input-wrapper input{color:#fff;background:#ffffff12;border:1px solid #ffffff26;border-radius:10px;outline:none;width:100%;padding:.7rem .8rem .7rem 2.2rem;font-family:inherit;font-size:.9rem;transition:all .25s}.glass-input-wrapper input::placeholder{color:#ffffff4d}.glass-input-wrapper input:focus{background:#ffffff1a;border-color:#60a5fa99;box-shadow:0 0 0 3px #60a5fa26}.glass-eye-btn{cursor:pointer;color:#ffffff59;background:0 0;border:none;align-items:center;padding:4px;transition:color .2s;display:flex;position:absolute;right:10px}.glass-eye-btn:hover{color:#ffffffb3}.glass-forgot{text-align:right;margin-top:-.3rem}.glass-forgot span{color:#ffffff73;cursor:pointer;font-size:.8rem;transition:color .2s}.glass-forgot span:hover{color:#60a5fa}.glass-login-error{color:#f87171;text-align:center;background:#f871711a;border:1px solid #f8717133;border-radius:8px;padding:.5rem .75rem;font-size:.82rem}.glass-login-btn{color:#fff;cursor:pointer;letter-spacing:.02em;background:linear-gradient(135deg,#0f172a,#1e293b);border:none;border-radius:10px;width:100%;margin-top:.3rem;padding:.75rem;font-family:inherit;font-size:.95rem;font-weight:600;transition:all .3s}.glass-login-btn:hover:not(:disabled){background:linear-gradient(135deg,#1e293b,#334155);transform:translateY(-1px);box-shadow:0 6px 20px #0000004d}.glass-login-btn:active:not(:disabled){transform:translateY(0)}.glass-login-btn:disabled{opacity:.6;cursor:not-allowed}.glass-btn-loading{justify-content:center;align-items:center;gap:.5rem;display:flex}.glass-spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}.sidebar{transition:margin-left .32s cubic-bezier(.16,1,.3,1)}.app-layout.sidebar-collapsed .sidebar{margin-left:-250px}.sidebar{background:var(--sidebar-bg);flex-direction:column;width:250px;min-width:250px;padding:1.5rem 0;display:flex}.sidebar-header{border-bottom:1px solid #ffffff14;padding:0 1.5rem 1.5rem}.sidebar-header-row{justify-content:space-between;align-items:flex-start;gap:.6rem;display:flex}.sidebar-collapse-btn{cursor:pointer;width:32px;height:32px;color:var(--sidebar-text);background:#ffffff0d;border:1px solid #ffffff24;border-radius:9px;flex-shrink:0;justify-content:center;align-items:center;transition:background .16s,color .16s,transform .16s cubic-bezier(.16,1,.3,1);display:flex}.sidebar-collapse-btn:hover{color:#fff;background:#ffffff21;transform:translate(-2px)}.sidebar-collapse-btn:active{transform:translate(-2px)scale(.94)}.sidebar-header h2{color:#fff;font-family:Outfit,sans-serif;font-size:1.2rem;line-height:1.3}.sidebar-header .version{color:var(--sidebar-text);opacity:.6;margin-top:.2rem;font-size:.7rem}.operations-switcher{background:#ffffff0d;border:1px solid #ffffff14;border-radius:10px;margin:1.25rem 1.25rem .5rem;padding:4px;display:flex;position:relative}.operations-switcher:before{content:"";background:var(--primary-blue);z-index:0;border-radius:7px;width:calc(50% - 4px);transition:transform .3s cubic-bezier(.16,1,.3,1);position:absolute;top:4px;bottom:4px;left:4px;box-shadow:0 4px 12px #4f46e540}.operations-switcher.is-new:before{transform:translate(100%)}.switcher-tab{z-index:1;color:var(--sidebar-text);cursor:pointer;text-align:center;background:0 0;border:none;border-radius:7px;flex:1;padding:8px 12px;font-family:inherit;font-size:.78rem;font-weight:600;transition:color .25s;position:relative}.switcher-tab.active{color:#fff;background:0 0}.switcher-tab:hover:not(.active){color:#fff}.sidebar-nav{flex-direction:column;flex:1;gap:2px;padding:.75rem 0;display:flex;overflow-y:auto}.nav-item{color:var(--sidebar-text);cursor:pointer;text-align:left;background:0 0;border:none;border-left:3px solid #0000;border-radius:0;align-items:center;gap:10px;width:100%;padding:.65rem 1.5rem;font-family:inherit;font-size:.85rem;text-decoration:none;transition:background-color .2s,color .2s,padding-left .18s cubic-bezier(.16,1,.3,1),border-left-color .2s;display:flex;position:relative;overflow:hidden}.nav-item:hover{background-color:var(--sidebar-active-bg);color:#fff;padding-left:calc(1.5rem + 4px)}.nav-subitem{gap:8px;padding-left:2.6rem;font-size:.8rem}.nav-subitem:hover{padding-left:calc(2.6rem + 4px)}.nav-subitem-dash{opacity:.45;background:currentColor;flex-shrink:0;width:10px;height:1px}.nav-subitem.active .nav-subitem-dash{opacity:1}.nav-item.active{background-color:var(--sidebar-active-bg);color:#fff;border-left-color:var(--primary-blue);font-weight:600;animation:.34s cubic-bezier(.16,1,.3,1) navItemActivate}.nav-item.active:before{content:"";background:var(--primary-blue);transform-origin:50%;border-radius:0 2px 2px 0;width:3px;height:100%;animation:.34s cubic-bezier(.16,1,.3,1) navBarGrow;position:absolute;top:0;left:0}.nav-item.active:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000,#ffffff12,#0000);animation:.5s ease-out navSheen;position:absolute;inset:0}.nav-item.active svg{animation:.34s cubic-bezier(.16,1,.3,1) navIconPop}@keyframes navItemActivate{0%{padding-left:.9rem}60%{padding-left:1.65rem}to{padding-left:1.5rem}}@keyframes navBarGrow{0%{opacity:0;transform:scaleY(.15)}to{opacity:1;transform:scaleY(1)}}@keyframes navSheen{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes navIconPop{0%{transform:scale(.82)}55%{transform:scale(1.1)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.nav-item,.nav-item.active,.nav-item.active:before,.nav-item.active:after,.nav-item.active svg{transition:none;animation:none}.nav-item:hover{padding-left:1.5rem}}.logout-btn{color:#f87171;margin-top:auto}.logout-btn:hover{color:#fca5a5;background-color:#ef44441a}.dashboard-container{flex-direction:column;flex:1;display:flex;overflow-y:auto}.dashboard-views{flex:1;padding:1.5rem}.dashboard-view{animation:.18s ease-out viewEnter}@keyframes viewEnter{0%{opacity:.85;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.app-header{border-bottom:1px solid var(--border-color);background:var(--panel-bg);justify-content:space-between;align-items:flex-start;padding:1rem 1.5rem;display:flex}.header-content h1{color:var(--text-main);font-family:Outfit,sans-serif;font-size:1.4rem}.header-content p{color:var(--text-muted);margin-bottom:.75rem;font-size:.8rem}.url-input-container{flex-direction:column;gap:.3rem;margin-bottom:1rem;display:flex}.url-input-container label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.url-input-container input{border:1px solid var(--border-color);border-radius:8px;width:100%;padding:.6rem .8rem;font-size:.85rem;transition:border-color .2s}.url-input-container input:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #1d4ed81a}.header-actions{justify-content:space-between;align-items:center;display:flex}.sync-controls{align-items:center;gap:1rem;display:flex}.sync-status{color:var(--text-muted);font-size:.8rem}.status-indicator{color:var(--text-muted);align-items:center;gap:.5rem;font-size:.8rem;display:flex}.status-dot{background:var(--border-color);border-radius:50%;width:8px;height:8px}.status-dot.syncing{background:var(--warning);animation:1s infinite pulse}.status-dot.synced{background:var(--success)}.btn{cursor:pointer;border:1px solid var(--border-color);background:var(--panel-bg);color:var(--text-main);border-radius:8px;align-items:center;gap:.5rem;padding:.55rem 1.2rem;font-size:.85rem;font-weight:500;transition:all .2s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue)}.btn-primary:hover:not(:disabled){background:var(--primary-blue-hover)}.btn-warning{background:var(--warning);color:#fff;border-color:var(--warning)}.btn-warning:hover:not(:disabled){background:var(--primary-orange-hover)}.btn-sm{padding:.35rem .8rem;font-size:.8rem}.btn-icon{cursor:pointer;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;transition:all .2s;display:flex}.btn-icon-danger{color:var(--danger)}.btn-icon-danger:hover{background:var(--danger-bg)}.input-group{flex-direction:column;gap:.3rem;display:flex}.input-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.input-group select,.input-group input,.input-group textarea{border:1px solid var(--border-color);background:#fff;border-radius:8px;padding:.55rem .8rem;font-family:inherit;font-size:.85rem;transition:border-color .2s}.input-group select:focus,.input-group input:focus,.input-group textarea:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #1d4ed81a}.readonly-input{color:var(--text-muted);cursor:not-allowed;background-color:var(--bg-color)!important}.input-group-inline{align-items:center;gap:.5rem;display:flex}.input-group-inline label{color:var(--text-muted);white-space:nowrap;font-size:.8rem;font-weight:500}.input-group-inline select{border:1px solid var(--border-color);border-radius:8px;padding:.4rem .6rem;font-size:.85rem}.panel{background:var(--panel-bg);border-radius:var(--border-radius);box-shadow:var(--card-shadow);border:1px solid var(--border-color);overflow:hidden}.panel-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.panel-header-left{flex-direction:column;gap:.2rem;display:flex}.panel-header h2{font-family:Outfit,sans-serif;font-size:1.15rem}.panel-body,.panel-content{padding:1.5rem}.subtext{color:var(--text-muted);font-size:.8rem}.badge{border-radius:99px;align-items:center;padding:.2rem .65rem;font-size:.75rem;font-weight:600;display:inline-flex}.badge-danger{background:var(--danger-bg);color:var(--danger)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-warning{background:var(--warning-bg);color:var(--warning)}.badge-orange{background:var(--primary-orange-light);color:var(--primary-orange)}.badge-neutral{background:var(--bg-color);color:var(--text-muted)}.kpi-grid{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;display:grid}.kpi-card{border-radius:var(--border-radius);border:1px solid var(--border-color);background:var(--panel-bg);justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem 1.5rem;transition:transform .2s,box-shadow .2s;display:flex;position:relative;overflow:hidden}.kpi-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000000f}.kpi-icon{border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;display:flex}.kpi-content{flex:1}.kpi-content h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.7rem}.kpi-content p{color:var(--text-main);font-family:Outfit,sans-serif;font-size:1.75rem;font-weight:700}.home-controls{align-items:flex-end;gap:.75rem;display:flex}.home-controls select{min-width:160px}.list-container{flex-direction:column;gap:.75rem;display:flex}.conflict-card{border:1px solid var(--danger-border);background:var(--danger-bg);border-radius:10px;padding:1rem 1.25rem;transition:transform .2s}.conflict-card:hover{transform:translate(4px)}.conflict-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.conflict-header strong{font-size:.95rem}.conflict-detail{flex-wrap:wrap;align-items:center;gap:.5rem;font-size:.85rem;display:flex}.conflict-slot{background:#fff;border-radius:6px;padding:.2rem .5rem;font-weight:500}.conflict-vs{color:var(--danger);font-weight:600}.search-controls{flex-wrap:wrap;gap:1rem;margin-bottom:1.5rem;display:flex}.search-controls .input-group{min-width:180px}.results-grid{gap:1rem;display:grid}.results-grid-3{grid-template-columns:repeat(3,1fr)}.result-column{border:1px solid var(--border-color);border-radius:var(--border-radius);overflow:hidden}.result-column h3{border-bottom:1px solid var(--border-color);background:var(--bg-color);justify-content:space-between;align-items:center;padding:.8rem 1rem;font-size:.85rem;display:flex}.col-label{align-items:center;gap:.3rem;display:flex}.available-label{color:var(--success)}.busy-label{color:var(--danger)}.onleave-label{color:var(--warning)}.instructor-list{padding:0;list-style:none}.instructor-item{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:.6rem 1rem;font-size:.85rem;display:flex}.instructor-item:last-child{border-bottom:none}.instructor-name{font-weight:500}.instructor-detail{color:var(--text-muted);font-size:.75rem}.empty-list-item{text-align:center;color:var(--text-muted);padding:1.5rem;font-size:.85rem}.mini-pagination{border-top:1px solid var(--border-color);justify-content:center;align-items:center;gap:.5rem;padding:.5rem;display:flex}.mini-pagination button{border:1px solid var(--border-color);cursor:pointer;background:0 0;border-radius:6px;padding:.2rem .5rem;font-size:.8rem}.mini-pagination button:disabled{opacity:.3;cursor:not-allowed}.mini-pagination span{color:var(--text-muted);font-size:.8rem}.leave-body{padding:1.25rem 1.5rem}.leave-form{margin-bottom:1.5rem}.leave-form-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.leave-input-name{flex:1;min-width:180px}.leave-input-day{min-width:150px}.leave-input-reason{flex:1;min-width:160px}.leave-add-btn{white-space:nowrap;height:38px}.leave-table-wrapper{overflow-x:auto}.leave-table{border-collapse:collapse;width:100%}.leave-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-color);border-bottom:2px solid var(--border-color);padding:.7rem 1rem;font-size:.75rem}.leave-table td{border-bottom:1px solid var(--border-color);padding:.7rem 1rem;font-size:.85rem}.empty-state-table{text-align:center;color:var(--text-muted);padding:2rem;font-size:.85rem}.trial-body{padding:1.25rem 1.5rem}.trial-form{background:var(--bg-color);border-radius:10px;margin-bottom:1.5rem;padding:1.25rem}.trial-form-row{flex-wrap:wrap;align-items:flex-end;gap:.75rem;display:flex}.trial-input-name{flex:1;min-width:180px}.trial-input-type{min-width:160px}.trial-input-status{min-width:180px}.trial-add-btn{white-space:nowrap;height:38px}.trial-legend{flex-wrap:wrap;gap:2rem;margin-bottom:1.5rem;display:flex}.trial-legend-item{align-items:center;gap:.5rem;font-size:.8rem;display:flex}.trial-arrow{color:var(--text-muted)}.trial-type-badge{border-radius:6px;padding:.2rem .6rem;font-size:.75rem;font-weight:600}.type-kinder-junior{color:var(--kinder);background:#fef3c7}.type-junior-coder{color:var(--coder);background:#d1fae5}.trial-table-wrapper{overflow-x:auto}.trial-table{border-collapse:collapse;width:100%}.trial-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-color);border-bottom:2px solid var(--border-color);padding:.7rem 1rem;font-size:.75rem}.trial-table td{border-bottom:1px solid var(--border-color);padding:.7rem 1rem;font-size:.85rem}.day-checkbox{cursor:pointer;align-items:center;gap:.35rem;font-size:.85rem;display:flex}.trial-avail-count{background:var(--success-bg);width:28px;height:28px;color:var(--success);border-radius:8px;justify-content:center;align-items:center;font-size:.85rem;font-weight:700;display:inline-flex}.trial-avail-none{color:var(--text-muted)}.trial-avail-chip{border-radius:6px;justify-content:center;align-items:center;min-width:24px;height:24px;padding:0 4px;font-size:.75rem;font-weight:700;transition:transform .15s;display:inline-flex}.trial-avail-chip:hover{transform:scale(1.15)}.chip-kinder{color:#db2777;background:#fce7f3}.chip-junior{color:#2563eb;background:#dbeafe}.chip-coder{color:#1e293b;background:#f1f5f9}.finder-controls{align-items:center;gap:1rem;display:flex}.finder-day-tabs{border-bottom:1px solid var(--border-color);padding:0 1.5rem;display:flex;overflow-x:auto}.finder-day-tab{cursor:pointer;color:var(--text-muted);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;padding:.6rem 1rem;font-size:.85rem;font-weight:500;transition:all .2s}.finder-day-tab:hover{color:var(--primary-blue)}.finder-day-tab.active{color:var(--primary-blue);border-bottom-color:var(--primary-blue)}.finder-body{padding:1.25rem 1.5rem}.finder-summary{color:var(--text-muted);margin-bottom:1rem;font-size:.85rem}.finder-cards-wrapper{align-items:stretch;gap:.5rem;display:flex}.finder-nav-btn{background:var(--bg-color);border:1px solid var(--border-color);cursor:pointer;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:36px;transition:all .2s;display:flex}.finder-nav-btn:disabled{opacity:.3;cursor:not-allowed}.finder-nav-btn:hover:not(:disabled){background:var(--primary-blue-light)}.finder-cards-viewport{flex:1;overflow:hidden}.finder-cards-track{grid-template-columns:repeat(3,1fr);gap:1rem;display:grid}.finder-card{border:1px solid var(--border-color);border-radius:var(--border-radius);transition:transform .2s;overflow:hidden}.finder-card:hover{box-shadow:var(--card-shadow);transform:translateY(-2px)}.finder-card-header{background:var(--primary-blue);color:#fff;text-align:center;padding:.75rem 1rem;font-size:.9rem;font-weight:600}.finder-card-body{flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.finder-section h4{text-transform:uppercase;letter-spacing:.05em;margin-bottom:.3rem;font-size:.75rem}.finder-section.free h4{color:var(--success)}.finder-section.busy h4{color:var(--danger)}.finder-section ul{font-size:.8rem;list-style:none}.finder-section li{padding:.25rem 0}.finder-section li.empty{color:var(--text-muted);font-style:italic}.finder-detail{color:var(--text-muted);margin-left:.3rem;font-size:.7rem}.finder-pagination{justify-content:center;gap:.4rem;margin-top:1rem;display:flex}.finder-dot{background:var(--border-color);cursor:pointer;border:none;border-radius:50%;width:8px;height:8px;padding:0;transition:all .2s}.finder-dot.active{background:var(--primary-blue);border-radius:4px;width:24px}.filter-controls{align-items:flex-end;gap:.75rem;display:flex}.filter-controls input{border:1px solid var(--border-color);border-radius:8px;min-width:220px;padding:.5rem .8rem;font-size:.85rem}.filter-controls input:focus{border-color:var(--primary-blue);outline:none}.table-wrapper{padding:0;overflow-x:auto}#schedule-table{border-collapse:collapse;width:100%}#schedule-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);background:var(--bg-color);border-bottom:2px solid var(--border-color);padding:.7rem 1rem;font-size:.75rem;position:sticky;top:0}#schedule-table td{border-bottom:1px solid var(--border-color);padding:.6rem 1rem;font-size:.85rem}#schedule-table tr:hover{background:var(--primary-blue-light)}.schedule-pagination{justify-content:center;align-items:center;gap:1rem;padding:1rem;display:flex}.pagination-info{color:var(--text-muted);font-size:.8rem}.trial-input-split{align-items:flex-start;gap:1.5rem;display:flex}.trial-left-pane{flex-direction:column;flex:1;gap:1rem;display:flex}.trial-right-pane{flex-shrink:0;width:400px}.program-cards{grid-template-columns:repeat(3,1fr);gap:.75rem;margin-bottom:1rem;display:grid}.program-card{border:2px solid var(--border-color);background:var(--bg-color);cursor:pointer;text-align:center;border-radius:10px;padding:1rem .5rem;font-size:.9rem;font-weight:500;transition:all .2s}.program-card:hover{box-shadow:var(--card-shadow);border-color:var(--primary-blue-light);transform:translateY(-2px)}.program-card.active{border-color:var(--primary-blue);background:var(--primary-blue-light);color:var(--primary-blue);font-weight:600}.available-schedules-container{background:var(--panel-bg);border:1px solid var(--border-color);box-shadow:var(--card-shadow);border-radius:10px;padding:1.25rem}.available-schedules-container h3{margin-bottom:1rem;font-family:Outfit,sans-serif;font-size:1rem}.schedule-day-group{margin-bottom:1rem}.schedule-day-group:last-child{margin-bottom:0}.schedule-day-group h4{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);margin-bottom:.5rem;font-size:.75rem}.time-chips{flex-wrap:wrap;gap:.5rem;display:flex}.time-chip{background:var(--bg-color);border:1px solid var(--border-color);cursor:pointer;border-radius:6px;padding:.4rem .8rem;font-size:.8rem;font-weight:500;transition:all .2s}.time-chip:hover{border-color:var(--primary-blue);background:#fff}.time-chip.active{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue);box-shadow:0 2px 4px #1d4ed84d}.trial-input-form{max-width:100%}.form-grid{grid-template-columns:1fr;gap:1rem;display:grid}.full-width{grid-column:1/-1}.form-grid textarea{resize:vertical;min-height:80px}.form-actions{justify-content:flex-end;align-items:center;gap:1rem;margin-top:1.5rem;display:flex}.status-message{font-size:.85rem}.status-message.success{color:var(--success)}.status-message.error{color:var(--danger)}.admin-toggles{flex-direction:column;gap:.25rem;max-width:500px;display:flex}.admin-toggle-row{border-radius:8px;justify-content:space-between;align-items:center;padding:.75rem 1rem;transition:background .2s;display:flex}.admin-toggle-row:hover{background:var(--bg-color)}.admin-toggle-row.indent{padding-left:2.5rem}.admin-toggle-label{font-size:.9rem;font-weight:500}.toggle-switch{cursor:pointer;width:44px;height:24px;display:inline-block;position:relative}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{background-color:var(--border-color);border-radius:24px;transition:all .3s;position:absolute;inset:0}.toggle-slider:before{content:"";background:#fff;border-radius:50%;width:18px;height:18px;transition:all .3s;position:absolute;bottom:3px;left:3px}.toggle-switch input:checked+.toggle-slider{background-color:var(--primary-blue)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px)}.date-scroll-container{gap:.5rem;padding-bottom:.5rem;display:flex;overflow-x:auto}.date-scroll-container::-webkit-scrollbar{height:6px}.date-scroll-container::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:4px}.date-chip{border:1px solid var(--border-color);background:var(--bg-color);cursor:pointer;border-radius:10px;flex-direction:column;flex-shrink:0;justify-content:center;align-items:center;width:54px;height:64px;transition:all .2s;display:flex}.date-chip:hover{border-color:var(--primary-blue);background:#fff}.date-chip.active{background:var(--primary-blue);color:#fff;border-color:var(--primary-blue);box-shadow:0 4px 10px #1d4ed840}.date-chip-day{text-transform:uppercase;letter-spacing:.05em;opacity:.8;margin-bottom:.2rem;font-size:.7rem;font-weight:600}.date-chip-num{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700}.empty-state{color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:3rem;display:flex}.empty-state p{font-weight:500}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.spin{animation:1s linear infinite spin}@media (max-width:768px){.sidebar{width:60px;min-width:60px}.sidebar-header h2,.sidebar-header .version,.nav-item span{display:none}.sidebar-header-row{justify-content:center}.results-grid-3,.finder-cards-track,.form-grid{grid-template-columns:1fr}.home-controls,.leave-form-row,.trial-form-row,.filter-controls{flex-direction:column}.bottom-grid{grid-template-columns:1fr!important;height:auto!important}}.bottom-grid{grid-template-columns:3fr 1fr 1fr;align-items:stretch;gap:1.5rem;height:480px;margin-top:1.5rem;display:grid}.toast-container{z-index:9999;pointer-events:none;flex-direction:column;gap:.6rem;max-width:min(420px,100vw - 2rem);display:flex;position:fixed;top:1.25rem;right:1.25rem}.toast-item{pointer-events:auto;background:var(--panel-bg);border:1px solid var(--border-color);border-left:3px solid var(--primary-blue);border-radius:10px;align-items:flex-start;gap:.7rem;min-width:280px;padding:.85rem .95rem;animation:.25s cubic-bezier(.22,1,.36,1) toastSlideIn;display:flex;box-shadow:0 12px 32px #0f172a1f,0 2px 6px #0f172a0f}@keyframes toastSlideIn{0%{opacity:0;transform:translate(20px)scale(.97)}to{opacity:1;transform:translate(0)scale(1)}}.toast-icon{flex-shrink:0;align-items:center;margin-top:1px;display:flex}.toast-body{flex-direction:column;flex:1;gap:.35rem;min-width:0;display:flex}.toast-title{color:var(--text-main);font-size:.88rem;font-weight:600;line-height:1.3}.toast-message{color:var(--text-secondary);font-size:.78rem;line-height:1.4}.toast-details{flex-wrap:wrap;gap:.4rem;margin-top:.2rem;display:flex}.toast-chip{background:var(--bg-color);color:var(--text-secondary);border:1px solid var(--border-color);border-radius:99px;align-items:center;padding:.18rem .55rem;font-size:.72rem;font-weight:500;display:inline-flex}.toast-chip strong{font-weight:700}.toast-chip-add{background:var(--success-bg);color:var(--success);border-color:var(--success-border)}.toast-chip-remove{background:var(--danger-bg);color:var(--danger);border-color:var(--danger-border)}.toast-chip-warning{background:var(--warning-bg);color:var(--warning);border-color:var(--warning-border)}.toast-chip-info{background:var(--primary-blue-light);color:var(--primary-blue);border-color:var(--primary-blue-light)}.toast-chip-neutral{background:var(--bg-color);color:var(--text-secondary);border-color:var(--border-color)}.toast-dismiss{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;padding:2px;transition:background .15s,color .15s;display:flex}.toast-dismiss:hover{background:var(--bg-color);color:var(--text-main)}.trend-panel{padding:1.25rem 1.4rem}.trend-header{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:.85rem;margin-bottom:1.25rem;display:flex}.trend-header-left{flex-direction:column;flex:1;gap:.45rem;min-width:0;display:flex}.trend-title-row{flex-wrap:wrap;align-items:center;gap:.65rem;display:flex}.trend-title-row h2{color:var(--text-main);margin:0;font-family:Outfit,sans-serif;font-size:1.2rem;font-weight:700;line-height:1.2}.trend-toggle{background:var(--bg-color);border-radius:999px;padding:3px;display:inline-flex}.trend-toggle button{cursor:pointer;color:var(--text-secondary);background:0 0;border:none;border-radius:999px;padding:.35rem .95rem;font-family:inherit;font-size:.78rem;font-weight:500;transition:all .2s}.trend-toggle button[data-active=true]{background:var(--primary-blue);color:#fff;font-weight:600;box-shadow:0 2px 6px #4f46e54d}.trend-meta{flex-wrap:wrap;align-items:center;gap:.85rem;display:flex}.trend-peak-chip{background:var(--primary-blue-light);color:var(--primary-blue);border-radius:999px;align-items:center;gap:.35rem;padding:.3rem .7rem;font-size:.78rem;font-weight:600;display:inline-flex}.trend-meta-text{color:var(--text-muted);font-size:.8rem}.trend-view-full{color:var(--primary-blue);cursor:pointer;white-space:nowrap;background:#fff;border:1.5px solid #e0dffe;border-radius:10px;align-items:center;gap:.4rem;padding:.45rem .85rem;font-family:inherit;font-size:.78rem;font-weight:600;transition:all .15s;display:inline-flex}.trend-view-full:hover{background:var(--primary-blue-light);border-color:var(--primary-blue);transform:translateY(-1px);box-shadow:0 4px 10px #4f46e526}.trend-kpi-row{grid-template-columns:1fr 1fr 1fr;gap:.75rem;margin-bottom:1.25rem;display:grid}.trend-kpi-card{background:var(--bg-color);border-radius:12px;flex-direction:column;gap:.3rem;padding:.75rem .95rem;display:flex}.trend-kpi-label{color:var(--text-muted);letter-spacing:.07em;text-transform:uppercase;font-size:.65rem;font-weight:600}.trend-kpi-value{color:var(--text-main);font-family:Outfit,sans-serif;font-size:1.4rem;font-weight:700;line-height:1.1}.trend-kpi-value.primary{color:var(--primary-blue)}.trend-kpi-value.success{color:var(--success)}.trend-chart{align-items:flex-end;gap:.4rem;height:180px;padding-top:1.5rem;padding-bottom:0;display:flex;position:relative;overflow:visible}.trend-bar-col{cursor:pointer;outline:none;flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;transition:transform .18s;display:flex;position:relative}.trend-bar-col:focus-visible{outline:2px solid var(--primary-blue);outline-offset:4px;border-radius:6px}.trend-bar-col.is-hovered{transform:translateY(-2px)}.trend-bar-value{color:var(--text-muted);white-space:nowrap;font-family:Outfit,sans-serif;font-size:.78rem;font-weight:700;transition:color .2s,transform .18s;position:absolute;transform:translateY(-1.25rem)}.trend-bar-value.active{color:var(--primary-blue)}.trend-bar-value.is-hovered{color:var(--primary-blue);transform:translateY(-1.4rem)}.trend-bar{background:#6366f129;border-radius:999px;width:100%;max-width:30px;min-height:6px;transition:height .4s cubic-bezier(.22,1,.36,1),background .2s,box-shadow .2s}.trend-bar.is-hovered{background:#6366f166;box-shadow:0 4px 12px #4f46e540}.trend-bar.active.is-hovered{box-shadow:0 8px 22px #4f46e573}.trend-bar-tooltip{z-index:20;background:var(--text-main);color:#fff;pointer-events:none;border-radius:8px;min-width:150px;padding:.55rem .75rem;font-size:.75rem;animation:.12s ease-out trendTooltipFade;position:absolute;left:50%;transform:translate(-50%);box-shadow:0 10px 24px #0f172a40}.trend-bar-tooltip:after{content:"";border:5px solid #0000;border-top-color:var(--text-main);position:absolute;top:100%;left:50%;transform:translate(-50%)}.trend-bar-tooltip-title{margin-bottom:.3rem;font-family:Outfit,sans-serif;font-size:.82rem;font-weight:700}.trend-bar-tooltip-row{color:#ffffffbf;justify-content:space-between;gap:.75rem;font-size:.72rem;line-height:1.5;display:flex}.trend-bar-tooltip-row strong{color:#fff;font-weight:600}@keyframes trendTooltipFade{0%{opacity:0;transform:translate(-50%,4px)}to{opacity:1;transform:translate(-50%)}}.trend-day-name.is-hovered{color:var(--primary-blue);font-weight:700}.trend-bar.active{background:linear-gradient(#7c3aed 0%,#4338ca 100%);box-shadow:0 6px 18px #4f46e552}.trend-avg-line{pointer-events:none;border-top:1px dashed #94a3b899;position:absolute;left:0;right:0}.trend-day-labels{gap:.5rem;margin-top:.85rem;display:flex}.trend-day-cell{text-align:center;flex-direction:column;flex:1;gap:.15rem;display:flex}.trend-day-name{color:var(--text-muted);font-size:.82rem;font-weight:600}.trend-day-name.active{color:var(--primary-blue);font-weight:700}.trend-day-meta{color:var(--text-muted);font-size:.7rem}.trend-branch-select{background:var(--bg-color);color:var(--text-secondary);border-radius:999px;align-items:center;gap:.3rem;padding:.3rem .55rem .3rem .65rem;font-size:.75rem;font-weight:500;display:inline-flex}.trend-branch-select svg{color:var(--text-muted);flex-shrink:0}.trend-branch-select select{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;outline:none;padding-right:.25rem;font-family:inherit;font-size:.75rem;font-weight:500}.trend-branch-select:hover{background:var(--primary-blue-light)}.trend-branch-select:hover select,.trend-branch-select:hover svg{color:var(--primary-blue)}.search-sidebar-backdrop{-webkit-backdrop-filter:blur(4px);z-index:999;background:#0f172a40;width:100vw;height:100vh;animation:.2s ease-out fadeIn;position:fixed;top:0;left:0}.search-sidebar{background:var(--panel-bg);border-left:1px solid var(--border-color);width:440px;max-width:100vw;height:100vh;box-shadow:-8px 0 32px #0f172a14, -1px 0 0 var(--border-color);z-index:1000;flex-direction:column;transition:transform .3s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;top:0;right:0;transform:translate(100%)}.search-sidebar.open{transform:translate(0)}.search-sidebar-header{border-bottom:1px solid var(--border-color);justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;display:flex}.search-sidebar-header h3{color:var(--text-main);margin-bottom:.15rem;font-family:Outfit,sans-serif;font-size:1.15rem}.search-sidebar-header .close-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;padding:6px;transition:background .2s,color .2s;display:flex}.search-sidebar-header .close-btn:hover{background:var(--bg-color);color:var(--text-main)}.search-sidebar-controls{border-bottom:1px solid var(--border-color);background:var(--bg-color);flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem;display:flex}.search-input-wrapper{align-items:center;display:flex;position:relative}.search-input-wrapper .search-icon{color:var(--text-muted);pointer-events:none;position:absolute;left:12px}.sidebar-search-input{border:1px solid var(--border-color);background:#fff;border-radius:8px;width:100%;padding:.6rem .8rem .6rem 2.2rem;font-family:inherit;font-size:.85rem;transition:border-color .2s,box-shadow .2s}.sidebar-search-input:focus{border-color:var(--primary-blue);outline:none;box-shadow:0 0 0 3px #4f46e51a}.clear-search-btn{cursor:pointer;color:var(--text-muted);background:0 0;border:none;align-items:center;padding:2px;display:flex;position:absolute;right:10px}.clear-search-btn:hover{color:var(--text-main)}.search-sidebar-controls .filter-group{justify-content:space-between;align-items:center;gap:1rem;display:flex}.search-sidebar-controls .filter-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:.75rem;font-weight:600}.sidebar-select{border:1px solid var(--border-color);cursor:pointer;background:#fff;border-radius:8px;outline:none;min-width:160px;padding:.45rem .75rem;font-family:inherit;font-size:.8rem;transition:border-color .2s}.sidebar-select:focus{border-color:var(--primary-blue)}.search-sidebar-results{flex:1;padding:1.25rem 1.5rem;overflow-y:auto}.sidebar-empty-state{color:var(--text-muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.5rem;padding:4rem 1rem;display:flex}.sidebar-empty-state .empty-icon{color:var(--text-muted);opacity:.4;margin-bottom:.5rem}.sidebar-empty-state p{color:var(--text-main);font-size:.9rem;font-weight:600}.student-cards-list{flex-direction:column;gap:1rem;display:flex}.results-meta{color:var(--text-muted);margin-bottom:.25rem;font-size:.75rem}.results-meta .limit-notice{font-style:italic}.student-result-card{border:1px solid var(--border-color);background:var(--panel-bg);border-radius:12px;transition:transform .2s,box-shadow .2s,border-color .2s;overflow:hidden;box-shadow:0 1px 3px #00000005}.student-result-card:hover{border-color:#cbd5e1;transform:translateY(-2px);box-shadow:0 4px 12px #0f172a0a}.student-card-header{background:var(--bg-color);border-bottom:1px solid var(--border-color);align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex}.student-avatar{background:var(--primary-blue-light);width:26px;height:26px;color:var(--primary-blue);border-radius:50%;justify-content:center;align-items:center;display:flex}.student-card-header h4{color:var(--text-main);font-size:.9rem;font-weight:600}.student-card-sessions{flex-direction:column;display:flex}.session-item{border-bottom:1px solid var(--border-color);padding:.85rem 1rem}.session-item:last-child{border-bottom:none}.teacher-badge-highlight{background:#f8fafc;border:1px dashed #cbd5e1;border-radius:6px;align-items:center;gap:.4rem;margin-bottom:.5rem;padding:.35rem .6rem;display:flex}.teacher-badge-highlight .teacher-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.02em;font-size:.72rem;font-weight:600}.teacher-badge-highlight .teacher-name{color:var(--primary-blue);font-size:.85rem;font-weight:700}.not-arranged-badge{color:#d97706;background:#fde68a;border-radius:3px;margin-left:auto;padding:.1rem .35rem;font-size:.65rem;font-weight:600}.session-grid{color:var(--text-secondary);grid-template-columns:1fr 1fr;gap:.4rem;font-size:.78rem;display:grid}.session-detail-row{align-items:center;gap:.35rem;display:flex}.session-detail-row.full-row{grid-column:1/-1;margin-top:.15rem}.session-detail-row .detail-icon{color:var(--text-muted);flex-shrink:0}.program-tag{border-radius:4px;padding:.15rem .5rem;font-size:.72rem;font-weight:600}.badge-program-kinder{color:var(--kinder);background:#fef3c7}.badge-program-junior{color:var(--junior);background:#e0f2fe}.badge-program-coder{color:var(--coder);background:#d1fae5}.badge-program-default{background:var(--bg-color);color:var(--text-secondary)}.branch-tag{color:var(--text-secondary);background:#f1f5f9;border-radius:4px;padding:.15rem .45rem;font-size:.72rem}.session-remarks{color:var(--text-secondary);background:#fffbeb;border:1px solid #fef3c7;border-radius:6px;margin-top:.5rem;padding:.4rem .6rem;font-size:.75rem;line-height:1.35}.modal-form-group{flex-direction:column;gap:.4rem;display:flex}.modal-form-label{color:var(--text-secondary);letter-spacing:.01em;font-size:.8rem;font-weight:600}.modal-input-field,.modal-select-field{width:100%;color:var(--text-main);background:var(--panel-bg);border:1px solid var(--border-color);border-radius:10px;outline:none;padding:.65rem .9rem;font-family:inherit;font-size:.9rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.modal-input-field:hover,.modal-select-field:hover{border-color:#cbd5e1}.modal-input-field:focus,.modal-select-field:focus{border-color:var(--primary-blue);background:#fff;box-shadow:0 0 0 3px #4f46e51f}.modal-select-field{appearance:none;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'><polyline points='6 9 12 15 18 9'></polyline></svg>");background-position:right .75rem center;background-repeat:no-repeat;background-size:1.1rem;padding-right:2.2rem}.modal-input-field.error,.modal-select-field.error{border-color:var(--danger)!important;background:var(--danger-bg)!important}.modal-input-field.error:focus,.modal-select-field.error:focus{box-shadow:0 0 0 3px #ef44441f!important}.modal-textarea-field{width:100%;color:var(--text-main);background:var(--panel-bg);border:1px solid var(--border-color);resize:none;border-radius:10px;outline:none;height:80px;padding:.65rem .9rem;font-family:inherit;font-size:.9rem;transition:all .2s cubic-bezier(.16,1,.3,1)}.modal-textarea-field:hover{border-color:#cbd5e1}.modal-textarea-field:focus{border-color:var(--primary-blue);background:#fff;box-shadow:0 0 0 3px #4f46e51f}.modal-input-field[type=time],.modal-input-field[type=number]{font-variant-numeric:tabular-nums;letter-spacing:.01em;font-family:inherit}.modal-input-field[type=time]::-webkit-calendar-picker-indicator{opacity:.45;cursor:pointer;transition:opacity .15s}.modal-input-field[type=time]:hover::-webkit-calendar-picker-indicator{opacity:.85}.modal-input-field[type=time]:focus::-webkit-calendar-picker-indicator{opacity:.85}.modal-input-field[type=number]{appearance:textfield}.modal-input-field[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.modal-input-field[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.modal-input-field.field-compact,.modal-select-field.field-compact{border-radius:8px;padding:.42rem .6rem;font-size:.8rem}.modal-select-field.field-compact{background-size:.95rem;padding-right:1.9rem}.field-with-suffix{display:block;position:relative}.field-with-suffix .modal-input-field{padding-right:3.1rem}.field-suffix{color:var(--text-muted);pointer-events:none;-webkit-user-select:none;user-select:none;font-size:.78rem;font-weight:600;position:absolute;top:50%;right:.85rem;transform:translateY(-50%)}.new-ops-anim .panel{transition:transform .18s,box-shadow .18s;animation:.32s cubic-bezier(.16,1,.3,1) both newOpsRise}.new-ops-anim .panel:hover{transform:translateY(-2px);box-shadow:0 8px 24px #00000014}.new-ops-anim button{transition:transform .12s,box-shadow .15s,background .15s,color .15s,border-color .15s}.new-ops-anim button:not(:disabled):hover{transform:translateY(-1px)}.new-ops-anim button:not(:disabled):active{transform:translateY(0)scale(.97)}.new-ops-anim input,.new-ops-anim select,.new-ops-anim textarea{transition:border-color .15s,box-shadow .2s,transform .12s}.new-ops-anim input:focus,.new-ops-anim select:focus,.new-ops-anim textarea:focus{box-shadow:0 0 0 3px #4f46e526}.new-ops-anim table tbody tr{transition:background .15s,transform .12s}.new-ops-anim table tbody tr:hover{background:var(--primary-blue-light,#4f46e50f)}.new-ops-anim .panel button:focus-visible{outline:none;box-shadow:0 0 0 3px #4f46e52e}@keyframes newOpsRise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.new-ops-anim .panel,.new-ops-anim button,.new-ops-anim input,.new-ops-anim select,.new-ops-anim textarea,.new-ops-anim table tbody tr{transition:none!important;animation:none!important}}.term-badge-row{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.term-badge{letter-spacing:.02em;background:var(--bg-color);min-width:36px;color:var(--text-secondary);border:1px solid #0000;border-radius:999px;justify-content:center;align-items:center;padding:.2rem .55rem;font-size:.72rem;font-weight:700;line-height:1.2;display:inline-flex}.term-badge-paid{background:var(--success-bg);border-color:var(--success-border);color:var(--free-text)}.term-badge-unpaid{background:var(--warning-bg);border-color:var(--warning-border);color:var(--onleave-text)}.term-badge-absent{border:1px dashed var(--border-color);color:var(--text-muted);background:0 0;font-weight:600}.term-badge-current{box-shadow:0 0 0 2px var(--primary-blue)}.term-legend{color:var(--text-muted);flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:.45rem;font-size:.68rem;display:flex}.term-legend-item{align-items:center;gap:.3rem;display:inline-flex}.term-legend-swatch{border-radius:4px;flex-shrink:0;width:14px;min-width:0;height:14px;margin:2px;padding:0}.term-legend-hint{color:var(--text-secondary)}.scope-menu{transform-origin:0 0;animation:.13s cubic-bezier(.16,1,.3,1) scope-menu-in}@keyframes scope-menu-in{0%{opacity:0;transform:translateY(-4px)scale(.96)}to{opacity:1;transform:translateY(0)scale(1)}}.scope-menu-item{animation:.15s ease-out backwards scope-item-in}.scope-menu-item:first-child{animation-delay:20ms}.scope-menu-item:nth-child(2){animation-delay:50ms}@keyframes scope-item-in{0%{opacity:0;transform:translate(-3px)}to{opacity:1;transform:translate(0)}}.scope-caret{transition:transform .13s cubic-bezier(.16,1,.3,1)}.scope-caret-open{transform:rotate(180deg)}@media (prefers-reduced-motion:reduce){.scope-menu,.scope-menu-item{animation:1ms linear scope-fade-in}.scope-caret{transition:none}@keyframes scope-fade-in{0%{opacity:0}to{opacity:1}}}#report-card-print{background:var(--panel-bg);width:186mm;max-width:100%;color:var(--text-main);border:1px solid var(--border-color);border-radius:var(--border-radius);margin:0 auto;padding:10mm 10mm 8mm;font-size:.85rem;line-height:1.45}.report-doc-header{text-align:center;border-bottom:2px solid var(--primary-blue);margin-bottom:1rem;padding-bottom:.75rem}.report-doc-academy{letter-spacing:.08em;color:var(--primary-blue);font-family:Outfit,sans-serif;font-size:1.15rem;font-weight:700}.report-doc-title{letter-spacing:.14em;color:var(--text-secondary);text-transform:uppercase;margin-top:.2rem;font-size:.78rem;font-weight:600}.report-student-row{background:var(--primary-blue-light);border-radius:8px;grid-template-columns:repeat(4,minmax(0,1fr));gap:.75rem;margin-bottom:1rem;padding:.75rem .9rem;display:grid}.report-field{flex-direction:column;gap:.15rem;min-width:0;display:flex}.report-field-label{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.65rem;font-weight:700}.report-field-value{overflow-wrap:anywhere;font-size:.9rem;font-weight:600}.report-grade{flex-direction:column;gap:.1rem;display:flex}.report-grade-score{font-family:Outfit,sans-serif;font-size:1.1rem;font-weight:700}.report-grade-label{letter-spacing:.05em;color:var(--primary-blue);font-size:.7rem;font-weight:700}.report-grade-unassessed{color:var(--text-muted)}.report-section{margin-bottom:1rem}.report-section-title{letter-spacing:.1em;text-transform:uppercase;color:var(--text-secondary);border-bottom:1px solid var(--border-color);margin-bottom:.55rem;padding-bottom:.3rem;font-size:.72rem;font-weight:700}.report-chart-slot{justify-content:center;display:flex}.report-mastery{flex-direction:column;gap:.4rem;display:flex}.report-mastery-row{grid-template-columns:minmax(120px,1.1fr) minmax(0,2fr) 72px;align-items:center;gap:.6rem;display:grid}.report-mastery-label{font-size:.8rem;font-weight:600}.report-mastery-meter{background:var(--border-color);border-radius:999px;height:8px;overflow:hidden}.report-mastery-meter-fill{background:var(--report-meter-color,var(--primary-blue));border-radius:999px;height:100%;display:block}.report-mastery-value{text-align:right;font-variant-numeric:tabular-nums;font-size:.8rem;font-weight:700}.report-remarks-body{background:var(--bg-color);border:1px solid var(--border-color);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;min-height:2.6rem;padding:.6rem .75rem;font-size:.82rem}.report-remarks-empty{color:var(--text-muted);font-style:italic}.report-signatures{grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem;margin-top:1.75rem;display:grid}.report-signature{text-align:center}.report-signature-rule{border-bottom:1px solid var(--text-main);height:0;margin-bottom:.35rem}.report-signature-name{overflow-wrap:anywhere;font-size:.82rem;font-weight:600}.report-signature-role{letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary);font-size:.65rem;font-weight:700}.report-print-notice{display:none}@media print{@page{size:A4;margin:12mm}html,body{background:#fff!important;height:auto!important;min-height:0!important;overflow:visible!important}.sidebar,.sidebar-nav,.search-sidebar,.toast-container,.dashboard-container>header,.panel-header .header-actions,.panel-header-actions,.panel-header button,.panel-header select,.panel-header input,.tour-root,.no-print{display:none!important}.app-layout,.dashboard-container,.dashboard-views,.dashboard-view{height:auto!important;min-height:0!important;max-height:none!important;margin:0!important;padding:0!important;animation:none!important;display:block!important;overflow:visible!important}.panel{box-shadow:none!important;border:0!important;overflow:visible!important}#report-card-print{-webkit-print-color-adjust:exact;print-color-adjust:exact;font-size:10.5pt;width:100%!important;max-width:none!important;box-shadow:none!important;background:#fff!important;border:0!important;border-radius:0!important;margin:0!important;padding:0!important;display:block!important;position:static!important;top:auto!important;left:auto!important}#report-card-print *{-webkit-print-color-adjust:exact;print-color-adjust:exact}#report-card-print canvas{visibility:visible!important;display:block!important}#report-card-print .report-doc-header,#report-card-print .report-student-row,#report-card-print .report-section,#report-card-print .report-chart-slot,#report-card-print .report-mastery,#report-card-print .report-mastery-row,#report-card-print .report-remarks-body,#report-card-print .report-signatures,#report-card-print .report-signature,#report-card-print .report-block{break-inside:avoid;page-break-inside:avoid}.report-print-notice{text-align:center;color:#000;padding:24mm 0;font-size:12pt;display:block!important}.dashboard-views:has(#report-card-print) .report-print-notice{display:none!important}}.tour-root{z-index:9000;position:fixed;inset:0}.tour-blocker{cursor:default;position:fixed;inset:0}.tour-spotlight{outline-offset:2px;pointer-events:none;border-radius:12px;outline:2px solid #ffffffe6;transition:top .3s cubic-bezier(.16,1,.3,1),left .3s cubic-bezier(.16,1,.3,1),width .3s cubic-bezier(.16,1,.3,1),height .3s cubic-bezier(.16,1,.3,1);animation:.26s ease-out tour-spotlight-in;position:fixed;box-shadow:0 0 0 9999px #0f172a99}@keyframes tour-spotlight-in{0%{box-shadow:0 0 0 9999px #0f172a00}to{box-shadow:0 0 0 9999px #0f172a99}}.tour-spotlight:after{content:"";border:2px solid var(--primary-blue,#3b82f6);opacity:0;border-radius:15px;animation:2s ease-out infinite tour-pulse;position:absolute;inset:-4px}@keyframes tour-pulse{0%{opacity:.55;transform:scale(1)}70%{opacity:0;transform:scale(1.06)}to{opacity:0;transform:scale(1.06)}}.tour-scrim{pointer-events:none;background:#0f172a99;animation:.22s ease-out tour-fade-in;position:fixed;inset:0}@keyframes tour-fade-in{0%{opacity:0}to{opacity:1}}.tour-callout{box-sizing:border-box;background:var(--panel-bg);border:1px solid var(--border-color);border-radius:14px;width:min(340px,100vw - 24px);padding:.85rem .95rem .75rem;transition:top .3s cubic-bezier(.16,1,.3,1),left .3s cubic-bezier(.16,1,.3,1);animation:.24s cubic-bezier(.16,1,.3,1) tour-callout-in;position:fixed;box-shadow:0 18px 44px #0f172a47}@keyframes tour-callout-in{0%{opacity:0;transform:translateY(6px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.tour-caret{background:var(--panel-bg);border:1px solid var(--border-color);width:10px;height:10px;position:absolute;transform:rotate(45deg)}.tour-callout-bottom>.tour-caret{border-bottom:none;border-right:none;margin-left:-5px;top:-6px}.tour-callout-top>.tour-caret{border-top:none;border-left:none;margin-left:-5px;bottom:-6px}.tour-callout-right>.tour-caret{border-top:none;border-right:none;margin-top:-5px;left:-6px}.tour-callout-left>.tour-caret{border-bottom:none;border-left:none;margin-top:-5px;right:-6px}.tour-callout-head{justify-content:space-between;align-items:center;gap:.5rem;margin-bottom:.35rem;display:flex}.tour-step-count{letter-spacing:.07em;text-transform:uppercase;color:var(--primary-blue,#3b82f6);font-size:.62rem;font-weight:700}.tour-tour-name{color:var(--text-muted);letter-spacing:.04em;font-weight:600}.tour-close{width:22px;height:22px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:6px;flex-shrink:0;justify-content:center;align-items:center;padding:0;transition:background .15s,color .15s;display:inline-flex}.tour-close:hover{background:var(--bg-color);color:var(--text-main)}.tour-callout-title{color:var(--text-main);margin:0 0 .3rem;font-family:Outfit,sans-serif;font-size:.98rem;font-weight:600;line-height:1.25}.tour-callout-body{color:var(--text-secondary);margin:0 0 .75rem;font-size:.78rem;line-height:1.5}.tour-callout-foot{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.tour-dots{align-items:center;gap:4px;display:inline-flex}.tour-dot{background:var(--border-color);border-radius:99px;width:5px;height:5px;transition:width .22s,background .22s}.tour-dot-on{background:var(--primary-blue,#3b82f6);width:14px}.tour-actions{align-items:center;gap:.35rem;display:inline-flex}.tour-btn{cursor:pointer;border-radius:8px;align-items:center;gap:.25rem;padding:.35rem .7rem;font-family:inherit;font-size:.74rem;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.tour-btn-quiet{border:1px solid var(--border-color);color:var(--text-secondary);background:0 0}.tour-btn-quiet:hover:not(:disabled){background:var(--bg-color)}.tour-btn-quiet:disabled{opacity:.4;cursor:default}.tour-btn-primary{border:1px solid var(--primary-blue,#3b82f6);background:var(--primary-blue,#3b82f6);color:#fff}.tour-btn-primary:hover{filter:brightness(1.06)}.tour-help-nudge{animation:1.4s ease-out 3 tour-nudge}@keyframes tour-nudge{0%,to{box-shadow:0 0 #3b82f600}35%{box-shadow:0 0 0 5px #3b82f638}}@media (prefers-reduced-motion:reduce){.tour-spotlight,.tour-callout{transition:none;animation:none}.tour-spotlight:after,.tour-help-nudge{animation:none}.tour-spotlight:after{opacity:.5}.tour-scrim{animation:none}.tour-dot{transition:none}}
