@import "https://fonts.googleapis.com/css2?family=Outfit:wght@300;400;500;600;700;800;900&display=swap";@import "https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,600;0,700;1,400&family=Outfit:wght@400;500;600;700;800;900&display=swap";body.theme-3d{--clr-bg:#050816;--clr-bg-2:#080f2a;--clr-bg-3:#0d1440;--clr-surface:#ffffff0b;--clr-surface-2:#fff1;--clr-border:#6366f124;--clr-border-bright:#6366f152;--clr-primary:#6366f1;--clr-secondary:#06b6d4;--clr-primary-glow:#6366f166;background:radial-gradient(at 20% 40%,#0e1b52 0%,#050816 65%) fixed!important}@keyframes floatOrbit0{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-30px)rotate(4deg)scale(1.03)}to{transform:translateY(20px)rotate(-3deg)scale(.97)}}@keyframes floatOrbit1{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-25px)rotate(-4deg)scale(1.02)}to{transform:translateY(18px)rotate(3deg)scale(.98)}}.theme3d-asset-wrapper{pointer-events:none;-webkit-user-select:none;user-select:none}@media (width<=1024px){.theme3d-asset-wrapper{display:none!important}}body.theme-3d .sidebar{-webkit-backdrop-filter:blur(28px)!important;backdrop-filter:blur(28px)!important;background:linear-gradient(#080f2af7 0%,#050816f7 100%)!important;border-right:1px solid #6366f12e!important;box-shadow:4px 0 40px #000000b3,inset -1px 0 #6366f114!important}body.theme-3d .nav-item{transition:all .2s cubic-bezier(.34,1.56,.64,1)!important;position:relative!important;overflow:hidden!important}body.theme-3d .nav-item:before{content:"";background:linear-gradient(#6366f1,#06b6d4);border-radius:0 3px 3px 0;width:3px;transition:transform .2s;position:absolute;top:8px;bottom:8px;left:0;transform:scaleY(0);box-shadow:0 0 8px #6366f1cc}body.theme-3d .nav-item.active:before,body.theme-3d .nav-item:hover:before{transform:scaleY(1)}body.theme-3d .nav-item.active{background:linear-gradient(90deg,#6366f12e,#6366f10d)!important;box-shadow:inset 0 0 24px #6366f114!important}body.theme-3d .nav-item:hover{background:#6366f11a!important;transform:translate(3px)!important}body.theme-3d .card{transform-style:preserve-3d;position:relative;-webkit-backdrop-filter:blur(18px)!important;backdrop-filter:blur(18px)!important;background:linear-gradient(135deg,#ffffff0e 0%,#ffffff05 100%)!important;border:1px solid #6366f124!important;box-shadow:0 4px 28px #00000073,inset 0 1px #ffffff0f!important}body.theme-3d .card:before{content:"";border-radius:inherit;pointer-events:none;z-index:0;background:linear-gradient(135deg,#6366f112 0%,#0000 55%);position:absolute;inset:0}body.theme-3d .card>*{z-index:1;position:relative}body.theme-3d .stat-card{transform-style:preserve-3d;will-change:transform;background:linear-gradient(135deg,#ffffff0e 0%,#ffffff05 100%)!important;border:1px solid #6366f129!important;transition:all .28s cubic-bezier(.34,1.56,.64,1)!important;box-shadow:0 4px 28px #00000080,inset 0 1px #ffffff12!important}body.theme-3d .stat-card:hover{border-color:#6366f161!important;transform:translateY(-8px)translateZ(10px)!important;box-shadow:0 20px 60px #0000008c,0 0 36px #6366f14d,inset 0 1px #ffffff1a!important}body.theme-3d .stat-icon.teal{box-shadow:0 0 22px #00d4aa8c,0 0 44px #00d4aa2e!important}body.theme-3d .stat-icon.purple{box-shadow:0 0 22px #6366f18c,0 0 44px #6366f12e!important}body.theme-3d .stat-icon.amber{box-shadow:0 0 22px #ffb3478c,0 0 44px #ffb3472e!important}body.theme-3d .stat-icon.coral{box-shadow:0 0 22px #ff6b6b8c,0 0 44px #ff6b6b2e!important}body.theme-3d .btn-primary{background:linear-gradient(135deg,#6366f1 0%,#4f46e5 100%)!important;transition:all .22s cubic-bezier(.34,1.56,.64,1)!important;box-shadow:0 4px 18px #6366f18c,0 0 0 1px #6366f140!important}body.theme-3d .btn-primary:hover{background:linear-gradient(135deg,#7c7ff3 0%,#6366f1 100%)!important;transform:translateY(-2px)!important;box-shadow:0 10px 32px #6366f1b3,0 0 60px #6366f12e!important}body.theme-3d .header,body.theme-3d .top-header{-webkit-backdrop-filter:blur(24px)!important;backdrop-filter:blur(24px)!important;background:#050816e0!important;border-bottom:1px solid #6366f12e!important;box-shadow:0 1px #6366f114,0 6px 32px #00000080!important}.page-content,.sidebar,.header,.top-header,#app{z-index:1;position:relative}body.theme-3d .modal-content{transform-style:preserve-3d;background:linear-gradient(135deg,#0c123afa,#050816fa)!important;border:1px solid #6366f138!important;animation:.32s cubic-bezier(.34,1.56,.64,1) modal3dIn!important;box-shadow:0 28px 90px #000000d9,0 0 60px #6366f12e,inset 0 1px #ffffff0f!important}@keyframes modal3dIn{0%{opacity:0;transform:perspective(1000px)translateZ(-70px)translateY(24px)rotateX(5deg)}to{opacity:1;transform:perspective(1000px)translateZ(0)translateY(0)rotateX(0)}}body.theme-3d .page-title{filter:drop-shadow(0 0 24px #6366f173);background:linear-gradient(135deg,#e2e8f0 0%,#a5b4fc 100%)!important;-webkit-text-fill-color:transparent!important;-webkit-background-clip:text!important;background-clip:text!important}body.theme-3d .welcome-banner{position:relative;overflow:hidden;background:linear-gradient(135deg,#6366f124,#06b6d412)!important;border:1px solid #6366f12e!important;box-shadow:0 0 48px #6366f117,inset 0 1px #ffffff0f!important}body.theme-3d .welcome-banner:after{content:"";pointer-events:none;background:radial-gradient(circle,#6366f129 0%,#0000 70%);width:280px;height:280px;position:absolute;top:-50%;right:-15%}body.theme-3d .data-table th{letter-spacing:.05em;background:linear-gradient(135deg,#6366f124,#6366f10a)!important;border-bottom:2px solid #6366f138!important}body.theme-3d .data-table tr:hover td{transition:background .15s;background:#6366f10d!important}body.theme-3d .leftnav-panel{background:linear-gradient(#080c28f5,#050816f5);border-right:1px solid #6366f129;box-shadow:4px 0 28px #00000073}body.theme-3d .leftnav-item{cursor:pointer;color:var(--clr-text-muted);border-radius:8px;margin-bottom:2px;padding:10px 14px;font-size:13px;font-weight:600;transition:all .18s;position:relative}body.theme-3d .leftnav-item:hover{color:var(--clr-text);background:#6366f11a;transform:translate(3px)}body.theme-3d .leftnav-item.active{color:#a5b4fc;background:linear-gradient(90deg,#6366f138,#6366f10f);border-left:3px solid #6366f1;padding-left:11px;box-shadow:0 0 16px #6366f11a}.perf-bar-wrap{background:#00000059;border-radius:6px;height:8px;overflow:hidden;box-shadow:inset 0 2px 4px #00000080}.perf-bar{border-radius:6px;height:100%;transition:width 1.1s cubic-bezier(.22,1,.36,1);position:relative;overflow:hidden}.perf-bar:after{content:"";background:linear-gradient(90deg,#0000,#ffffff59,#0000);animation:2.2s infinite shimmer;position:absolute;inset:0}@keyframes shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}body.theme-3d .badge-success{box-shadow:0 0 8px #4ade8073!important}body.theme-3d .badge-danger{box-shadow:0 0 8px #f8717173!important}body.theme-3d .badge-primary{box-shadow:0 0 8px #6366f173!important}body.theme-3d .badge-warning{box-shadow:0 0 8px #fcd34d73!important}body.theme-3d .form-input{background:#ffffff0a!important;border:1px solid #6366f12e!important;transition:border-color .2s,box-shadow .2s!important}body.theme-3d .form-input:focus{background:#ffffff0f!important;border-color:#6366f180!important;box-shadow:0 0 0 3px #6366f126!important}.theme-toggle-btn{background:var(--clr-surface-2);border:1px solid var(--clr-border);color:var(--clr-text);cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:20px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;font-weight:600;transition:all .2s;display:inline-flex}.theme-toggle-btn:hover{background:var(--clr-surface-hover);border-color:var(--clr-border-bright);transform:translateY(-1px)}body.theme-3d .theme-toggle-btn{background:#6366f126;border-color:#6366f14d;box-shadow:0 0 12px #6366f133}body.theme-cinematic{--cin-bg:#05050f;--cin-violet:#8b5cf6;--cin-magenta:#ec4899;--cin-cyan:#06b6d4;--cin-gold:#f59e0b;--cin-emerald:#10b981;--cin-text:#f1f5f9;--cin-muted:#f1f5f98c;--cin-border:#8b5cf647;--cin-glass:#0c081cb8;--cin-glow:#8b5cf673;perspective:1200px;overflow-x:hidden;background:var(--cin-bg)!important;color:var(--cin-text)!important}body.theme-cinematic #cinematic-canvas{pointer-events:none!important;position:fixed!important;inset:0!important}body.theme-cinematic #app{z-index:1;transform-style:preserve-3d;position:relative}#cin-hero{z-index:100;transform-style:preserve-3d;background:radial-gradient(circle,#05050f33 0%,#05050fb3 100%);justify-content:center;align-items:center;transition:opacity .8s cubic-bezier(.16,1,.3,1);display:flex;position:fixed;inset:0;overflow:hidden}.cin-stage{text-align:center;z-index:5;pointer-events:none;width:min(860px,92vw);transition:opacity .65s cubic-bezier(.16,1,.3,1),transform .65s cubic-bezier(.16,1,.3,1);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.cin-tagline{letter-spacing:.35em;color:var(--cin-cyan);text-transform:uppercase;text-shadow:0 0 20px #06b6d4cc;margin:0 0 16px;font-size:clamp(11px,1.2vw,14px);font-weight:800}.cin-headline{color:#fff;text-shadow:0 0 45px #8b5cf6cc,0 0 90px #ec489959,0 4px 12px #000000e6;letter-spacing:-.02em;margin:0 0 20px;font-family:Cormorant Garamond,Georgia,serif;font-size:clamp(44px,8vw,110px);font-weight:700;line-height:.95}.cin-sub{color:var(--cin-muted);text-shadow:0 2px 8px #000c;max-width:560px;margin:0 auto 30px;font-size:clamp(14px,1.6vw,18px);line-height:1.7}.cin-counter-wrap{flex-direction:column;align-items:center;gap:4px;display:flex}.cin-counter{color:var(--cin-violet);text-shadow:0 0 35px var(--cin-violet), 0 0 70px #8b5cf666;font-family:Cormorant Garamond,serif;font-size:clamp(42px,6vw,84px);font-weight:700;line-height:1}.cin-counter-label{letter-spacing:.25em;text-transform:uppercase;color:var(--cin-muted);font-size:11px;font-weight:700}.cin-hprogress{z-index:10;background:#8b5cf633;height:3px;position:absolute;top:0;left:0;right:0}.cin-hprog-fill{background:linear-gradient(90deg, var(--cin-cyan), var(--cin-violet), var(--cin-magenta));width:0%;height:100%;box-shadow:0 0 15px var(--cin-violet);transition:width .1s linear}.cin-dots{z-index:10;gap:14px;display:flex;position:absolute;bottom:32%;left:50%;transform:translate(-50%)}.cin-dot{cursor:pointer;background:#8b5cf64d;border:1px solid #8b5cf680;border-radius:50%;width:9px;height:9px;transition:all .3s cubic-bezier(.16,1,.3,1)}.cin-dot.active{background:var(--cin-cyan);box-shadow:0 0 15px var(--cin-cyan), 0 0 30px #06b6d499;transform:scale(1.45)}.cin-enter-btn{z-index:10;letter-spacing:.1em;color:#fff;cursor:pointer;-webkit-backdrop-filter:blur(14px);background:linear-gradient(135deg,#8b5cf659,#06b6d440);border:1px solid #8b5cf699;border-radius:50px;padding:14px 40px;font-size:14px;font-weight:800;transition:all .3s;position:absolute;bottom:calc(32% + 28px);left:50%;transform:translate(-50%);box-shadow:0 0 25px #8b5cf659}.cin-enter-btn.hidden{display:none}.cin-enter-btn:hover{background:linear-gradient(135deg,#8b5cf699,#06b6d473);transform:translate(-50%)translateY(-3px)scale(1.04);box-shadow:0 0 35px #8b5cf6b3,0 0 70px #06b6d466}.cin-scroll-hint{z-index:10;pointer-events:none;flex-direction:column;align-items:center;gap:8px;display:flex;position:absolute;bottom:calc(32% + 80px);left:50%;transform:translate(-50%)}.cin-scroll-hint span{letter-spacing:.26em;text-transform:uppercase;color:var(--cin-muted);font-size:11px;font-weight:700}.cin-scroll-arrow{border-right:2px solid var(--cin-cyan);border-bottom:2px solid var(--cin-cyan);width:18px;height:18px;animation:1.5s ease-in-out infinite cin-bounce;transform:rotate(45deg)}@keyframes cin-bounce{0%,to{opacity:.4;transform:rotate(45deg)translateY(0)}50%{opacity:1;transform:rotate(45deg)translateY(7px)}}body.theme-cinematic .stat-card,body.theme-cinematic .card,body.theme-cinematic .student-card-item,body.theme-cinematic .teacher-card-item,body.theme-cinematic .parent-card{transform-style:preserve-3d;position:relative;overflow:hidden;background:var(--cin-glass)!important;border:1px solid var(--cin-border)!important;-webkit-backdrop-filter:blur(20px)saturate(160%)!important;border-radius:18px!important;transition:transform .15s ease-out,box-shadow .25s,border-color .25s!important}body.theme-cinematic .stat-card:after,body.theme-cinematic .card:after{content:"";background:radial-gradient(circle at var(--sheen-x,50%) var(--sheen-y,50%), #ffffff2e 0%, transparent 60%);pointer-events:none;opacity:0;z-index:2;transition:opacity .3s;position:absolute;inset:0}body.theme-cinematic .stat-card:hover:after,body.theme-cinematic .card:hover:after{opacity:1}body.theme-cinematic .stat-card:hover{border-color:#8b5cf699!important;box-shadow:0 20px 50px #05050fcc,0 0 35px #8b5cf659,0 0 0 1px #8b5cf680!important}body.theme-cinematic .stat-value{text-shadow:0 4px 15px #00000080;background:linear-gradient(135deg, #fff, var(--cin-cyan), var(--cin-violet))!important;-webkit-text-fill-color:transparent!important;-webkit-background-clip:text!important;background-clip:text!important;font-size:2.7rem!important;font-weight:900!important}body.theme-cinematic .stat-label{color:var(--cin-muted)!important;letter-spacing:.05em!important;font-weight:700!important}body.theme-cinematic .stat-trend{text-shadow:0 0 12px #06b6d499;color:var(--cin-cyan)!important;font-weight:800!important}body.theme-cinematic .sidebar{-webkit-backdrop-filter:blur(24px)saturate(180%)!important;border-right:1px solid var(--cin-border)!important;background:#080514d9!important;box-shadow:6px 0 40px #05050fb3!important}body.theme-cinematic .sidebar-brand{background:linear-gradient(135deg, var(--cin-cyan), var(--cin-violet), var(--cin-magenta));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:900!important}body.theme-cinematic .nav-item{color:#f1f5f999!important;border-radius:12px!important;transition:all .22s!important}body.theme-cinematic .nav-item:hover{transform:translate(4px);color:#fff!important;background:#8b5cf629!important;box-shadow:inset 0 0 0 1px #8b5cf659!important}body.theme-cinematic .nav-item.active{color:#fff!important;background:linear-gradient(135deg,#8b5cf659,#06b6d433)!important;box-shadow:inset 0 0 0 1px #8b5cf680,0 0 25px #8b5cf64d!important}body.theme-cinematic .top-header{-webkit-backdrop-filter:blur(20px)!important;border-bottom:1px solid var(--cin-border)!important;background:#060512cc!important}body.theme-cinematic .top-header-title{background:linear-gradient(90deg, var(--cin-cyan), var(--cin-violet), var(--cin-magenta));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:900!important}body.theme-cinematic .modal-overlay{-webkit-backdrop-filter:blur(16px)!important;background:#04030cd1!important}body.theme-cinematic .modal-content{background:#0a061af0!important;border:1px solid #8b5cf673!important;border-radius:24px!important;box-shadow:0 0 0 1px #8b5cf633,0 30px 100px #000000e6,0 0 80px #8b5cf633!important}body.theme-cinematic .btn-primary{background:linear-gradient(135deg, var(--cin-violet), #6366f1)!important;color:#fff!important;border:none!important;font-weight:700!important;box-shadow:0 4px 25px #8b5cf680!important}body.theme-cinematic .btn-primary:hover{transform:translateY(-2px)!important;box-shadow:0 6px 35px #8b5cf6bf!important}body.theme-cinematic .perf-bar-wrap{background:#8b5cf626!important;border-radius:8px!important}body.theme-cinematic .perf-bar{border-radius:8px!important;box-shadow:0 0 14px!important}#campus-3d-card{border-radius:20px;margin-bottom:28px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 30%,#140f30d9 0%,#0a081af2 100%)!important;border:1px solid #6366f147!important;box-shadow:0 12px 40px #05051499,inset 0 1px #ffffff14!important}.campus-hub-header{border-bottom:1px solid #8b5cf626;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:18px 24px 12px;display:flex}.campus-hub-title-wrap{align-items:center;gap:12px;display:flex}.campus-hub-badge-live{letter-spacing:.08em;text-transform:uppercase;color:#34d399;background:#10b9812e;border:1px solid #10b98173;border-radius:20px;align-items:center;gap:6px;padding:4px 10px;font-size:11px;font-weight:800;display:inline-flex}.campus-live-pulse{background:#10b981;border-radius:50%;width:7px;height:7px;animation:1.8s infinite campusPulse;box-shadow:0 0 10px #10b981}@keyframes campusPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}#campus-3d-container{-webkit-user-select:none;user-select:none;width:100%;height:420px;position:relative;overflow:hidden}.campus-3d-canvas{width:100%;height:100%;display:block}.campus-hud-tooltip{pointer-events:none;-webkit-backdrop-filter:blur(16px);z-index:20;background:#0e0a23eb;border:1px solid #8b5cf699;border-radius:14px;min-width:220px;padding:12px 16px;transition:opacity .15s,transform .15s;position:absolute;transform:translate(-50%,-100%);box-shadow:0 10px 30px #000c,0 0 25px #8b5cf659}.campus-hud-tooltip.hidden{opacity:0;pointer-events:none;transform:translate(-50%,-90%)scale(.95)}.campus-hud-header{align-items:center;gap:10px;margin-bottom:6px;display:flex}.campus-hud-icon{font-size:20px}.campus-hud-title{color:#fff;font-size:14px;font-weight:800;line-height:1.2}.campus-hud-category{color:#fff9;font-size:11px}.campus-hud-badge{color:#c7d2fe;background:#6366f140;border:1px solid #6366f166;border-radius:10px;padding:2px 7px;font-size:10px;font-weight:800}.campus-hud-badge.alert{color:#fca5a5;background:#f43f5e40;border-color:#f43f5e80;animation:1.2s infinite campusPulse}.campus-hud-stat{color:#38bdf8;margin-bottom:8px;font-size:12px;font-weight:700}.campus-hud-action{color:#a78bfa;align-items:center;gap:4px;font-size:11px;font-weight:800;display:flex}.campus-controls-hint{color:#ffffff8c;pointer-events:none;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0a081aa6;border:1px solid #ffffff14;border-radius:20px;padding:5px 14px;font-size:11px;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.spatial-dashboard-root{perspective:1200px;transform-style:preserve-3d}.spatial-toolbar{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#0f0c26b3;border:1px solid #8b5cf633;border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:20px;padding:10px 18px;display:flex}.spatial-toolbar-status{letter-spacing:.1em;color:#a78bfa;align-items:center;gap:8px;font-size:11px;font-weight:800;display:flex}.spatial-status-dot{background:#06b6d4;border-radius:50%;width:8px;height:8px;box-shadow:0 0 10px #06b6d4}.spatial-toolbar-actions{align-items:center;gap:10px;display:flex}.spatial-btn-toggle,.spatial-btn-reset{cursor:pointer;color:#f1f5f9;background:#8b5cf626;border:1px solid #8b5cf659;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;transition:all .25s}.spatial-btn-toggle:hover,.spatial-btn-reset:hover{background:#8b5cf659;transform:translateY(-1px);box-shadow:0 0 15px #8b5cf666}.spatial-card{transform-style:preserve-3d;transition:transform .35s cubic-bezier(.16,1,.3,1),filter .35s,opacity .35s!important}.spatial-focused{z-index:10!important;border-color:#8b5cf6cc!important;box-shadow:0 25px 60px #000c,0 0 40px #8b5cf673!important}.spatial-dimmed{filter:blur(2.5px)grayscale(40%);opacity:.55;pointer-events:auto}.charts-3d-container-card{margin-top:24px;padding:20px;background:#0e0a24d1!important;border:1px solid #8b5cf640!important;border-radius:18px!important;box-shadow:0 10px 35px #00000080!important}.charts-3d-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.charts-3d-title{color:#f1f5f9;align-items:center;gap:8px;font-size:15px;font-weight:800;display:flex}.charts-3d-mode-toggles{gap:8px;display:flex}.charts-3d-btn{cursor:pointer;color:#ffffffb3;background:#8b5cf61f;border:1px solid #8b5cf64d;border-radius:20px;padding:6px 14px;font-size:12px;font-weight:700;transition:all .22s}.charts-3d-btn:hover{color:#fff;background:#8b5cf640}.charts-3d-btn.active{color:#fff;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-color:#a78bfa;box-shadow:0 0 16px #6366f180}.charts-3d-canvas{width:100%;height:100%;display:block}.charts-3d-tooltip{pointer-events:none;-webkit-backdrop-filter:blur(14px);z-index:20;background:#0c081ef2;border:1px solid #8b5cf699;border-radius:12px;min-width:180px;padding:10px 14px;position:absolute;transform:translate(-50%,-100%);box-shadow:0 8px 25px #000c,0 0 20px #8b5cf64d}.charts-3d-tooltip.hidden{display:none}.charts-3d-hint{color:#ffffff73;pointer-events:none;font-size:11px;position:absolute;bottom:8px;right:14px}.book-3d-scrub-widget{z-index:1000;-webkit-backdrop-filter:blur(16px);-webkit-user-select:none;user-select:none;background:#0f0c26e0;border:1px solid #8b5cf666;border-radius:16px;width:260px;padding:12px 18px;transition:all .3s;position:fixed;bottom:24px;right:24px;box-shadow:0 12px 35px #000000b3,0 0 25px #8b5cf640}.book-3d-scrub-widget:hover{border-color:#8b5cf6b3;transform:translateY(-2px);box-shadow:0 16px 40px #000c,0 0 35px #8b5cf666}.book-scrub-header{justify-content:space-between;align-items:center;margin-bottom:8px;display:flex}.book-scrub-icon{font-size:18px}.book-scrub-title{color:#f1f5f9;letter-spacing:.05em;font-size:12px;font-weight:800}.book-scrub-pct{color:#38bdf8;background:#06b6d426;border:1px solid #06b6d44d;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:800}.book-scrub-slider-wrap{width:100%;margin-bottom:6px}.book-scrub-range{-webkit-appearance:none;cursor:pointer;background:#ffffff1f;border-radius:5px;outline:none;width:100%;height:5px}.book-scrub-range::-webkit-slider-thumb{appearance:none;cursor:pointer;background:linear-gradient(135deg,#f59e0b,#ec4899);border-radius:50%;width:14px;height:14px;box-shadow:0 0 10px #f59e0b}.book-scrub-hint{color:#ffffff80;text-align:center;letter-spacing:.03em;font-size:10px}@media (width<=768px){.book-3d-scrub-widget{width:210px;padding:10px 14px;bottom:12px;right:12px}}:root{--clr-primary:#6c63ff;--clr-primary-light:#8b85ff;--clr-primary-dark:#4b44d6;--clr-primary-glow:#6c63ff59;--clr-secondary:#00d4aa;--clr-secondary-light:#00edbe;--clr-secondary-dark:#00a882;--clr-secondary-glow:#00d4aa4d;--clr-accent:#ffb347;--clr-accent-light:#ffc87a;--clr-accent-dark:#e09000;--clr-accent-glow:#ffb3474d;--clr-danger:#ff6b6b;--clr-danger-light:#ff9090;--clr-danger-dark:#d44;--clr-danger-glow:#ff6b6b4d;--clr-success:#4ade80;--clr-success-glow:#4ade804d;--clr-warning:#fcd34d;--clr-warning-glow:#fcd34d4d;--clr-info:#38bdf8;--clr-admin:#f472b6;--clr-teacher:#6c63ff;--clr-parent:#00d4aa;--clr-student:#ffb347;--clr-bg:#080816;--clr-bg-2:#0f0f23;--clr-bg-3:#141430;--clr-surface:#ffffff0b;--clr-surface-2:#ffffff12;--clr-surface-hover:#ffffff1a;--clr-border:#ffffff14;--clr-border-bright:#ffffff2e;--clr-text:#e8eaf0;--clr-text-muted:#7c85a2;--clr-text-faint:#4a5168;--clr-text-on-primary:#fff;--font-family:"Outfit", -apple-system, BlinkMacSystemFont, sans-serif;--font-size-xs:.75rem;--font-size-sm:.85rem;--font-size-base:1rem;--font-size-md:1.1rem;--font-size-lg:1.25rem;--font-size-xl:1.5rem;--font-size-2xl:1.875rem;--font-size-3xl:2.25rem;--font-size-4xl:3rem;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:24px;--radius-2xl:32px;--radius-full:9999px;--shadow-sm:0 2px 8px #0000004d;--shadow-md:0 4px 20px #0006;--shadow-lg:0 8px 40px #00000080;--shadow-primary:0 4px 20px var(--clr-primary-glow);--shadow-secondary:0 4px 20px var(--clr-secondary-glow);--sidebar-width:268px;--header-height:64px;--content-max-width:1200px;--transition-fast:all .15s cubic-bezier(.4, 0, .2, 1);--transition:all .3s cubic-bezier(.4, 0, .2, 1);--transition-slow:all .5s cubic-bezier(.4, 0, .2, 1);--glass-bg:#ffffff0b;--glass-blur:blur(20px);--glass-border:1px solid #ffffff14}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}body{font-family:var(--font-family);font-size:var(--font-size-base);color:var(--clr-text);background:var(--clr-bg);-webkit-font-smoothing:antialiased;min-height:100vh;font-weight:400;line-height:1.6;overflow-x:hidden}a{color:var(--clr-primary-light);transition:var(--transition-fast);text-decoration:none}a:hover{color:var(--clr-primary)}img{max-width:100%;display:block}button{cursor:pointer;font-family:var(--font-family);border:none;outline:none}input,textarea,select{font-family:var(--font-family);outline:none}ul,ol{list-style:none}.splash-screen{background:radial-gradient(ellipse at 30% 20%, #6c63ff40 0%, transparent 60%), radial-gradient(ellipse at 70% 80%, #00d4aa33 0%, transparent 60%), var(--clr-bg);z-index:9999;justify-content:center;align-items:center;animation:.8s 1.8s forwards splashFade;display:flex;position:fixed;inset:0}.splash-content{text-align:center;align-items:center;gap:var(--space-10);flex-direction:column;display:flex}.splash-icon-wrapper{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-2xl);width:96px;height:96px;box-shadow:0 0 60px var(--clr-primary-glow);justify-content:center;align-items:center;margin:0 auto;font-size:48px;animation:1.5s ease-in-out infinite splashPulse;display:flex}.splash-title{font-size:var(--font-size-4xl);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;letter-spacing:-1px;margin-top:var(--space-4);-webkit-background-clip:text;background-clip:text;font-weight:800}.splash-tagline{color:var(--clr-text-muted);font-size:var(--font-size-md);margin-top:var(--space-2);font-weight:400}.splash-loader{width:240px}.loader-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);height:4px;overflow:hidden}.loader-fill{background:linear-gradient(90deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-full);width:0;height:100%;animation:1.8s cubic-bezier(.4,0,.2,1) forwards loaderFill}.loader-text{margin-top:var(--space-3);color:var(--clr-text-muted);font-size:var(--font-size-sm);font-weight:500}@keyframes splashPulse{0%,to{box-shadow:0 0 60px var(--clr-primary-glow);transform:scale(1)}50%{box-shadow:0 0 80px var(--clr-primary-glow);transform:scale(1.05)}}@keyframes loaderFill{to{width:100%}}@keyframes splashFade{to{opacity:0;pointer-events:none}}.app-layout{background:radial-gradient(ellipse at 0% 0%, #6c63ff1f 0%, transparent 50%), radial-gradient(ellipse at 100% 100%, #00d4aa14 0%, transparent 50%), var(--clr-bg);min-height:100vh;display:flex}.sidebar{width:var(--sidebar-width);background:var(--clr-bg-2);border-right:var(--glass-border);z-index:100;min-height:100vh;transition:var(--transition);flex-direction:column;display:flex;position:fixed;top:0;bottom:0;left:0}.sidebar-header{padding:var(--space-6);align-items:center;gap:var(--space-3);border-bottom:var(--glass-border);display:flex}.sidebar-logo{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-md);width:40px;height:40px;box-shadow:var(--shadow-primary);flex-shrink:0;justify-content:center;align-items:center;font-size:20px;display:flex}.sidebar-brand{font-size:var(--font-size-lg);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.sidebar-user-card{margin:var(--space-4) var(--space-4) 0;padding:var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg)}.sidebar-user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;font-size:22px;display:flex}.sidebar-user-info{margin-top:var(--space-3)}.sidebar-user-name{font-weight:700;font-size:var(--font-size-sm);color:var(--clr-text);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.sidebar-user-role{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;margin-top:2px;font-weight:600}.role-badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:4px;padding:2px 10px;font-weight:700;display:inline-flex}.role-badge.admin{color:var(--clr-admin);background:#f472b626}.role-badge.teacher{color:var(--clr-teacher);background:#6c63ff26}.role-badge.parent{color:var(--clr-parent);background:#00d4aa26}.role-badge.student{color:var(--clr-student);background:#ffb34726}.sidebar-nav{padding:var(--space-5) var(--space-4);gap:var(--space-1);flex-direction:column;flex:1;display:flex;overflow-y:auto}.nav-section-label{font-size:var(--font-size-xs);color:var(--clr-text-faint);text-transform:uppercase;letter-spacing:1px;padding:var(--space-3) var(--space-3) var(--space-2);font-weight:700}.nav-item{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--clr-text-muted);font-weight:500;font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast);-webkit-user-select:none;user-select:none;border:1px solid #0000;display:flex;position:relative}.nav-item:hover{background:var(--clr-surface);color:var(--clr-text);border-color:var(--clr-border)}.nav-item.active{color:var(--clr-primary-light);background:linear-gradient(135deg,#6c63ff33,#00d4aa1a);border-color:#6c63ff4d;font-weight:600}.nav-item.active .nav-icon{filter:none}.nav-icon{text-align:center;width:22px;font-size:18px}.nav-badge{background:var(--clr-danger);color:#fff;border-radius:var(--radius-full);text-align:center;min-width:18px;margin-left:auto;padding:1px 6px;font-size:10px;font-weight:700;animation:.3s cubic-bezier(.34,1.56,.64,1) badgePop}@keyframes badgePop{0%{transform:scale(0)}to{transform:scale(1)}}.sidebar-footer{padding:var(--space-4);border-top:var(--glass-border)}.btn-logout{align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);color:var(--clr-danger);font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-fast);background:#ff6b6b14;border:1px solid #ff6b6b26;display:flex}.btn-logout:hover{background:#ff6b6b26;border-color:#ff6b6b4d}.main-content{margin-left:var(--sidebar-width);flex-direction:column;flex:1;min-height:100vh;display:flex}.top-header{height:var(--header-height);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);border-bottom:var(--glass-border);padding:0 var(--space-8);z-index:50;background:#080816cc;justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.top-header-title{font-size:var(--font-size-lg);color:var(--clr-text);font-weight:700}.top-header-actions{align-items:center;gap:var(--space-4);display:flex}.notification-btn{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;width:40px;height:40px;transition:var(--transition-fast);color:var(--clr-text-muted);justify-content:center;align-items:center;font-size:18px;display:flex;position:relative}.notification-btn:hover{background:var(--clr-surface-2);color:var(--clr-text)}.notif-count{background:var(--clr-danger);color:#fff;border:2px solid var(--clr-bg);border-radius:50%;justify-content:center;align-items:center;width:16px;height:16px;font-size:9px;font-weight:700;display:flex;position:absolute;top:-4px;right:-4px}.page-content{padding:var(--space-8);max-width:var(--content-max-width);flex:1;width:100%;margin:0 auto}.page-header{margin-bottom:var(--space-8)}.page-title{font-size:var(--font-size-2xl);color:var(--clr-text);font-weight:800;line-height:1.2}.page-subtitle{color:var(--clr-text-muted);font-size:var(--font-size-md);margin-top:var(--space-2);font-weight:400}.auth-page{background:radial-gradient(ellipse at 20% 20%, #6c63ff40 0%, transparent 55%), radial-gradient(ellipse at 80% 80%, #00d4aa33 0%, transparent 55%), radial-gradient(ellipse at 60% 10%, #ffb3471a 0%, transparent 40%), var(--clr-bg);min-height:100vh;padding:var(--space-8) var(--space-4);justify-content:center;align-items:center;display:flex}.auth-container{width:100%;max-width:480px}.auth-brand{text-align:center;margin-bottom:var(--space-8)}.auth-logo{background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));border-radius:var(--radius-xl);width:64px;height:64px;margin:0 auto var(--space-4);box-shadow:var(--shadow-primary);justify-content:center;align-items:center;font-size:32px;display:flex}.auth-title{font-size:var(--font-size-3xl);background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-secondary));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-weight:800}.auth-subtitle{color:var(--clr-text-muted);margin-top:var(--space-2);font-size:var(--font-size-sm)}.auth-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);box-shadow:var(--shadow-lg)}.card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);transition:var(--transition-fast)}.card:hover{border-color:var(--clr-border-bright)}.card-sm{padding:var(--space-4);border-radius:var(--radius-md)}.card-lg{padding:var(--space-8);border-radius:var(--radius-xl)}.card-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.card-title{font-size:var(--font-size-md);color:var(--clr-text);font-weight:700}.card-subtitle{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-top:2px}.stat-card{background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5) var(--space-6);align-items:flex-start;gap:var(--space-4);transition:var(--transition-fast);cursor:default;display:flex}.stat-card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-bright);transform:translateY(-2px)}.stat-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:52px;height:52px;font-size:24px;display:flex}.stat-icon.purple{background:#6c63ff26}.stat-icon.teal{background:#00d4aa26}.stat-icon.amber{background:#ffb34726}.stat-icon.coral{background:#ff6b6b26}.stat-icon.pink{background:#f472b626}.stat-info{flex:1}.stat-label{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:600}.stat-value{font-size:var(--font-size-2xl);color:var(--clr-text);margin-top:2px;font-weight:800;line-height:1}.stat-trend{font-size:var(--font-size-xs);margin-top:var(--space-2);color:var(--clr-text-muted)}.stat-trend.up{color:var(--clr-success)}.stat-trend.down{color:var(--clr-danger)}.grid-2{gap:var(--space-5);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--space-5);grid-template-columns:repeat(4,1fr);display:grid}.grid-auto{gap:var(--space-5);grid-template-columns:repeat(auto-fill,minmax(260px,1fr));display:grid}.btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);transition:var(--transition-fast);cursor:pointer;white-space:nowrap;-webkit-user-select:none;user-select:none;border:none;display:inline-flex}.btn:active{transform:scale(.97)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));color:#fff;box-shadow:0 2px 12px var(--clr-primary-glow)}.btn-primary:hover{background:linear-gradient(135deg, var(--clr-primary-light), var(--clr-primary));box-shadow:0 4px 20px var(--clr-primary-glow)}.btn-secondary{background:linear-gradient(135deg, var(--clr-secondary), var(--clr-secondary-dark));color:#fff;box-shadow:0 2px 12px var(--clr-secondary-glow)}.btn-secondary:hover{background:linear-gradient(135deg, var(--clr-secondary-light), var(--clr-secondary))}.btn-accent{background:linear-gradient(135deg, var(--clr-accent), var(--clr-accent-dark));color:#fff;box-shadow:0 2px 12px var(--clr-accent-glow)}.btn-accent:hover{background:linear-gradient(135deg, var(--clr-accent-light), var(--clr-accent))}.btn-danger{background:linear-gradient(135deg, var(--clr-danger), var(--clr-danger-dark));color:#fff;box-shadow:0 2px 12px var(--clr-danger-glow)}.btn-danger:hover{opacity:.9}.btn-ghost{background:var(--clr-surface);color:var(--clr-text-muted);border:var(--glass-border)}.btn-ghost:hover{background:var(--clr-surface-hover);color:var(--clr-text)}.btn-success{background:linear-gradient(135deg, var(--clr-success), #22c55e);color:#0a2e1a;font-weight:700}.btn-sm{padding:var(--space-2) var(--space-3);font-size:var(--font-size-xs);border-radius:var(--radius-sm)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--font-size-md);border-radius:var(--radius-lg)}.btn-full{justify-content:center;width:100%}.btn-icon{border-radius:var(--radius-md);justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-size:16px;display:inline-flex}.form-group{margin-bottom:var(--space-5)}.form-label{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-bottom:var(--space-2);text-transform:uppercase;letter-spacing:.4px;font-weight:600;display:block}.form-input,.form-select,.form-textarea{width:100%;padding:var(--space-3) var(--space-4);background:var(--clr-bg-3);border:1px solid var(--clr-border);border-radius:var(--radius-md);color:var(--clr-text);font-size:var(--font-size-base);font-family:var(--font-family);transition:var(--transition-fast)}.form-input:focus,.form-select:focus,.form-textarea:focus{border-color:var(--clr-primary);box-shadow:0 0 0 3px var(--clr-primary-glow);background:var(--clr-bg-2)}.form-input::placeholder,.form-textarea::placeholder{color:var(--clr-text-faint)}.form-select{appearance:none;cursor:pointer}.form-select option{background:var(--clr-bg-2)}.form-textarea{resize:vertical;min-height:100px}.form-hint{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:var(--space-2)}.form-error{font-size:var(--font-size-xs);color:var(--clr-danger);margin-top:var(--space-2)}.form-row{gap:var(--space-4);grid-template-columns:1fr 1fr;display:grid}.role-selector{gap:var(--space-3);margin-bottom:var(--space-5);grid-template-columns:repeat(3,1fr);display:grid}.role-option{align-items:center;gap:var(--space-2);padding:var(--space-4) var(--space-3);background:var(--clr-surface);border:2px solid var(--clr-border);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition-fast);text-align:center;flex-direction:column;display:flex}.role-option:hover{background:var(--clr-surface-2);border-color:var(--clr-border-bright)}.role-option.selected{border-color:var(--clr-primary);background:#6c63ff1f}.role-option.selected .role-option-icon{background:var(--clr-primary)}.role-option-icon{border-radius:var(--radius-md);background:var(--clr-surface-2);width:44px;height:44px;transition:var(--transition-fast);justify-content:center;align-items:center;font-size:22px;display:flex}.role-option-name{font-size:var(--font-size-xs);color:var(--clr-text);text-transform:uppercase;letter-spacing:.5px;font-weight:700}.table-wrapper{border-radius:var(--radius-lg);border:var(--glass-border);overflow-x:auto}.data-table{border-collapse:collapse;width:100%;font-size:var(--font-size-sm)}.data-table thead{background:var(--clr-bg-2)}.data-table th{padding:var(--space-3) var(--space-5);text-align:left;color:var(--clr-text-muted);text-transform:uppercase;letter-spacing:.5px;font-weight:700;font-size:var(--font-size-xs);border-bottom:var(--glass-border);white-space:nowrap}.data-table td{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);color:var(--clr-text);vertical-align:middle}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:var(--clr-surface)}.data-table tbody tr{transition:var(--transition-fast)}.badge{border-radius:var(--radius-full);font-size:var(--font-size-xs);text-transform:uppercase;letter-spacing:.4px;white-space:nowrap;align-items:center;gap:4px;padding:3px 10px;font-weight:700;display:inline-flex}.badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.badge-success{color:var(--clr-success);background:#4ade801f}.badge-warning{color:var(--clr-warning);background:#fcd34d1f}.badge-danger{color:var(--clr-danger);background:#ff6b6b1f}.badge-info{color:var(--clr-info);background:#38bdf81f}.subject-chip{border-radius:var(--radius-full);font-size:var(--font-size-xs);align-items:center;gap:6px;padding:4px 12px;font-weight:600;display:inline-flex}.progress-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.progress-value{font-size:var(--font-size-xs);color:var(--clr-text-muted);text-align:right;min-width:36px;font-weight:700}.tab-bar{gap:var(--space-2);border-bottom:var(--glass-border);margin-bottom:var(--space-6);padding-bottom:1px;display:flex;overflow-x:auto}.tab-btn{align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);color:var(--clr-text-muted);font-weight:600;font-size:var(--font-size-sm);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-1px;display:flex}.tab-btn:hover{color:var(--clr-text)}.tab-btn.active{color:var(--clr-primary-light);border-bottom-color:var(--clr-primary)}.tab-count{background:var(--clr-surface-2);border-radius:var(--radius-full);color:var(--clr-text-muted);padding:1px 7px;font-size:11px}.modal-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:1000;padding:var(--space-4);background:#000000b3;justify-content:center;align-items:center;animation:.2s fadeIn;display:flex;position:fixed;inset:0}.modal-overlay.hidden{display:none}.modal-container{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);padding:var(--space-8);width:100%;max-width:560px;max-height:90vh;box-shadow:var(--shadow-lg);animation:.3s cubic-bezier(.4,0,.2,1) slideUp;position:relative;overflow-y:auto}.modal-container.modal-lg{max-width:720px}.modal-container.modal-sm{max-width:400px}.modal-header{margin-bottom:var(--space-6);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--font-size-xl);color:var(--clr-text);font-weight:800}.modal-close{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;width:32px;height:32px;color:var(--clr-text-muted);transition:var(--transition-fast);justify-content:center;align-items:center;font-size:18px;display:flex}.modal-close:hover{background:var(--clr-danger);color:#fff}.modal-footer{gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-5);border-top:var(--glass-border);justify-content:flex-end;display:flex}#toast-container{top:var(--space-5);right:var(--space-5);z-index:9998;gap:var(--space-3);pointer-events:none;flex-direction:column;display:flex;position:fixed}.toast{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);pointer-events:all;min-width:300px;max-width:400px;font-size:var(--font-size-sm);font-weight:500;animation:.4s cubic-bezier(.34,1.56,.64,1) toastIn;display:flex}.toast.toast-success{border-left:4px solid var(--clr-success)}.toast.toast-error{border-left:4px solid var(--clr-danger)}.toast.toast-warning{border-left:4px solid var(--clr-warning)}.toast.toast-info{border-left:4px solid var(--clr-primary)}.toast-icon{flex-shrink:0;font-size:20px}.toast-message{color:var(--clr-text);flex:1}.toast-out{animation:.3s forwards toastOut}@keyframes toastIn{0%{opacity:0;transform:translate(100px)}to{opacity:1;transform:translate(0)}}@keyframes toastOut{to{opacity:0;transform:translate(100px)}}.notification-panel{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);width:380px;box-shadow:var(--shadow-lg);z-index:200;animation:.2s fadeIn;position:absolute;top:calc(100% + 8px);right:0;overflow:hidden}.notification-panel-header{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);font-weight:700;font-size:var(--font-size-sm);justify-content:space-between;align-items:center;display:flex}.notification-list{max-height:360px;overflow-y:auto}.notification-item{gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);transition:var(--transition-fast);cursor:pointer;display:flex}.notification-item:last-child{border-bottom:none}.notif-dot{background:var(--clr-primary);border-radius:50%;flex-shrink:0;width:8px;height:8px;margin-top:6px}.notif-text{font-size:var(--font-size-xs);color:var(--clr-text);line-height:1.5}.chart-container{padding:var(--space-4);justify-content:center;align-items:center;display:flex}.bar-chart{gap:var(--space-4);flex-direction:column;display:flex}.bar-label{width:120px;font-size:var(--font-size-xs);color:var(--clr-text-muted);text-align:right;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;font-weight:600;overflow:hidden}.bar-fill{border-radius:var(--radius-full);height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.bar-pct{font-size:var(--font-size-xs);min-width:40px;color:var(--clr-text);font-weight:700}.radar-chart svg{overflow:visible}.homework-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-4) var(--space-5);align-items:flex-start;gap:var(--space-4);transition:var(--transition-fast);margin-bottom:var(--space-3);display:flex}.homework-card:hover{border-color:var(--clr-border-bright)}.homework-card.completed{opacity:.65}.hw-check{border:2px solid var(--clr-border-bright);border-radius:var(--radius-sm);cursor:pointer;width:28px;height:28px;transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;margin-top:2px;font-size:16px;display:flex}.hw-check:hover{border-color:var(--clr-success);background:#4ade801a}.hw-check.checked{background:var(--clr-success);border-color:var(--clr-success);color:#0a2e1a;font-weight:700}.hw-info{flex:1}.hw-title{color:var(--clr-text);font-weight:700;font-size:var(--font-size-sm)}.hw-desc{color:var(--clr-text-muted);font-size:var(--font-size-xs);margin-top:2px;line-height:1.5}.hw-meta{align-items:center;gap:var(--space-3);margin-top:var(--space-2);display:flex}.hw-due{font-size:var(--font-size-xs);color:var(--clr-text-faint)}.hw-due.overdue{color:var(--clr-danger)}.question-number{font-size:var(--font-size-xs);color:var(--clr-primary-light);text-transform:uppercase;letter-spacing:.5px;margin-bottom:var(--space-2);font-weight:700}.question-text{font-size:var(--font-size-md);color:var(--clr-text);margin-bottom:var(--space-4);font-weight:600;line-height:1.5}.mcq-option{align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);font-size:var(--font-size-sm);font-weight:500;display:flex}.mcq-option:hover{background:var(--clr-surface-2);border-color:var(--clr-primary)}.mcq-option.correct{border-color:var(--clr-success);background:#4ade8026}.mcq-option.wrong{border-color:var(--clr-danger);background:#ff6b6b26}.option-circle{border:2px solid var(--clr-border-bright);width:22px;height:22px;transition:var(--transition-fast);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;font-size:11px;font-weight:700;display:flex}.mcq-option.selected .option-circle{background:var(--clr-primary);border-color:var(--clr-primary);color:#fff}.score-circle{background:conic-gradient(var(--clr-primary) var(--pct,0%), var(--clr-surface-2) 0%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:100px;height:100px;display:flex;position:relative}.score-circle:before{content:"";background:var(--clr-bg-2);border-radius:50%;width:80px;height:80px;position:absolute}.score-number{font-size:var(--font-size-xl);color:var(--clr-text);font-weight:800;position:relative}.video-thumbnail{background:linear-gradient(135deg,#6c63ff4d,#00d4aa33);justify-content:center;align-items:center;height:140px;font-size:48px;display:flex;position:relative}.play-btn-overlay:after{content:"▶";color:#fff;font-size:32px}.video-title{font-weight:700;font-size:var(--font-size-sm);color:var(--clr-text);line-height:1.4}.video-meta{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:var(--space-2)}.empty-state{text-align:center;padding:var(--space-16) var(--space-8);color:var(--clr-text-muted)}.empty-icon{margin-bottom:var(--space-4);opacity:.5;font-size:64px}.empty-title{font-size:var(--font-size-lg);color:var(--clr-text);margin-bottom:var(--space-2);font-weight:700}.empty-desc{font-size:var(--font-size-sm);max-width:320px;margin:0 auto}.user-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);align-items:center;gap:var(--space-4);transition:var(--transition-fast);display:flex}.user-card:hover{border-color:var(--clr-border-bright)}.user-avatar{border-radius:var(--radius-full);background:linear-gradient(135deg, var(--clr-primary), var(--clr-secondary));flex-shrink:0;justify-content:center;align-items:center;width:48px;height:48px;font-size:22px;display:flex}.user-info{flex:1;min-width:0}.user-name{color:var(--clr-text);font-weight:700;font-size:var(--font-size-sm)}.user-email{font-size:var(--font-size-xs);color:var(--clr-text-muted);margin-top:2px}.user-actions{gap:var(--space-2);display:flex}.request-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-5);transition:var(--transition-fast);border-left:3px solid var(--clr-warning)}.request-card:hover{border-color:var(--clr-warning);background:var(--clr-surface)}.subject-icon{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:42px;height:42px;font-size:22px;display:flex}.section-header{margin-bottom:var(--space-5);justify-content:space-between;align-items:center;display:flex}.flex{display:flex}.flex-col{flex-direction:column;display:flex}.items-center{align-items:center}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}.flex-1{flex:1}.text-right{text-align:right}.text-center{text-align:center}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-5{margin-top:var(--space-5)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.w-full{width:100%}.hidden{display:none!important}.search-bar{align-items:center;gap:var(--space-2);background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-md);padding:var(--space-2) var(--space-4);min-width:240px;display:flex}.search-bar input{color:var(--clr-text);font-size:var(--font-size-sm);background:0 0;border:none;width:100%}.search-bar input::placeholder{color:var(--clr-text-faint)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes confetti{0%{opacity:1;transform:translateY(0)rotate(0)}to{opacity:0;transform:translateY(100vh)rotate(720deg)}}.animate-fadeIn{animation:.3s fadeIn}.animate-slideUp{animation:.4s cubic-bezier(.4,0,.2,1) slideUp}.skeleton{background:linear-gradient(90deg, var(--clr-surface) 25%, var(--clr-surface-2) 50%, var(--clr-surface) 75%);border-radius:var(--radius-md);background-size:400px 100%;animation:1.4s infinite shimmer}.welcome-greeting{font-size:var(--font-size-sm);color:var(--clr-secondary);text-transform:uppercase;letter-spacing:1px;font-weight:600}.welcome-name{font-size:var(--font-size-3xl);color:var(--clr-text);margin-top:var(--space-1);font-weight:800}.welcome-date{font-size:var(--font-size-sm);color:var(--clr-text-muted);margin-top:var(--space-2)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--clr-border-bright);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--clr-text-muted)}.demo-creds{background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-md);padding:var(--space-4);margin-top:var(--space-5);font-size:var(--font-size-xs)}.demo-creds-title{color:var(--clr-accent);margin-bottom:var(--space-3);align-items:center;gap:var(--space-2);font-weight:700;display:flex}.demo-cred-row{padding:var(--space-2) 0;border-bottom:var(--glass-border);color:var(--clr-text-muted);justify-content:space-between;align-items:center;display:flex}.demo-cred-row:last-child{border-bottom:none}.demo-cred-email{color:var(--clr-text);font-weight:600}.demo-cred-pass{color:var(--clr-secondary);font-family:monospace;font-weight:600}.upload-area{border:2px dashed var(--clr-border-bright);border-radius:var(--radius-lg);padding:var(--space-10);text-align:center;cursor:pointer;transition:var(--transition-fast)}.upload-area:hover{border-color:var(--clr-primary);background:#6c63ff0d}.upload-icon{margin-bottom:var(--space-3);font-size:40px}.upload-title{color:var(--clr-text);margin-bottom:var(--space-2);font-weight:700}.upload-hint{font-size:var(--font-size-xs);color:var(--clr-text-muted)}.tab-bar{gap:var(--space-2);margin-bottom:var(--space-6);background:var(--clr-bg-3);border:var(--glass-border);border-radius:var(--radius-lg);flex-wrap:wrap;padding:6px;display:flex;overflow-x:auto}.tab-btn{padding:var(--space-2) var(--space-4);border-radius:var(--radius-md);font-weight:600;font-size:var(--font-size-sm);color:var(--clr-text-muted);cursor:pointer;transition:var(--transition-fast);white-space:nowrap;background:0 0;border:none;align-items:center;gap:6px;display:inline-flex}.tab-btn:hover{background:var(--clr-surface);color:var(--clr-text)}.tab-btn.active{background:linear-gradient(135deg, var(--clr-primary), var(--clr-primary-dark));color:#fff;box-shadow:0 2px 8px var(--clr-primary-glow)}.tab-count{border-radius:var(--radius-full);background:#ffffff26;padding:1px 6px;font-size:11px;font-weight:700}.notification-panel{background:var(--clr-bg-2);border:var(--glass-border);border-radius:var(--radius-xl);width:360px;max-height:480px;box-shadow:var(--shadow-lg);z-index:200;flex-direction:column;display:flex;position:absolute;top:calc(100% + 10px);right:0;overflow:hidden}.notification-panel-header{padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);justify-content:space-between;align-items:center;font-size:14px;font-weight:700;display:flex}.notification-list{flex:1;overflow-y:auto}.notification-item{align-items:flex-start;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-bottom:var(--glass-border);transition:var(--transition-fast);display:flex}.notification-item:hover{background:var(--clr-surface)}.notification-item.unread{background:#6c63ff0a}.notif-dot{background:var(--clr-primary);width:8px;height:8px;box-shadow:0 0 6px var(--clr-primary-glow);border-radius:50%;flex-shrink:0;margin-top:6px}.notif-text{font-size:13px;line-height:1.5}.notif-time{color:var(--clr-text-faint);margin-top:3px;font-size:11px}.animate-slideDown{animation:.2s slideDown}.bar-chart{flex-direction:column;gap:10px;display:flex}.bar-chart-row{align-items:center;gap:10px;display:flex}.bar-label{color:var(--clr-text-muted);white-space:nowrap;text-overflow:ellipsis;flex-shrink:0;width:120px;font-size:12px;font-weight:600;overflow:hidden}.bar-track{background:var(--clr-surface-2);border-radius:var(--radius-full);flex:1;height:8px;overflow:hidden}.bar-fill{border-radius:var(--radius-full);background:var(--clr-primary);height:100%;transition:width 1s cubic-bezier(.4,0,.2,1)}.bar-fill.success{background:var(--clr-success)}.bar-fill.warning{background:var(--clr-warning)}.bar-fill.danger{background:var(--clr-danger)}.bar-pct{text-align:right;flex-shrink:0;width:44px;font-size:12px;font-weight:800}.progress-bar{background:var(--clr-surface-2);border-radius:var(--radius-full);width:100%;height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-full);background:var(--clr-primary);height:100%;transition:width .8s cubic-bezier(.4,0,.2,1)}.progress-fill.success{background:var(--clr-success)}.progress-fill.warning{background:var(--clr-warning)}.progress-fill.danger{background:var(--clr-danger)}.progress-bar-wrapper{align-items:center;gap:10px;display:flex}.progress-value{flex-shrink:0;width:44px;font-size:13px;font-weight:800}.test-question-card{background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg);padding:var(--space-6);margin-bottom:var(--space-5)}.question-number{color:var(--clr-primary-light);text-transform:uppercase;letter-spacing:1px;margin-bottom:var(--space-3);font-size:11px;font-weight:700}.question-text{color:var(--clr-text);margin-bottom:var(--space-5);font-size:1.1rem;font-weight:600;line-height:1.6}.mcq-options{gap:var(--space-3);flex-direction:column;display:flex}.mcq-option{align-items:center;gap:var(--space-3);padding:var(--space-4);background:var(--clr-bg-3);border:1px solid var(--clr-border);border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);font-weight:500;display:flex}.mcq-option:hover{border-color:var(--clr-primary);background:#6c63ff1a}.mcq-option.selected{border-color:var(--clr-primary);color:var(--clr-primary-light);background:#6c63ff33}.option-circle{background:var(--clr-surface-2);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:13px;font-weight:700;display:flex}.mcq-option.selected .option-circle{background:var(--clr-primary);color:#fff}.welcome-banner{border-radius:var(--radius-xl);padding:var(--space-8);margin-bottom:var(--space-8);background:linear-gradient(135deg,#6c63ff26 0%,#00d4aa1a 50%,#ffb34714 100%);border:1px solid #6c63ff33;position:relative;overflow:hidden}.welcome-banner:before{content:"";pointer-events:none;background:radial-gradient(circle,#6c63ff26,#0000 70%);width:300px;height:300px;position:absolute;top:-50%;right:-20%}.welcome-greeting{color:var(--clr-text-muted);font-size:14px;font-weight:500}.welcome-name{color:var(--clr-text);margin-top:4px;font-size:1.75rem;font-weight:800}.welcome-date{color:var(--clr-text-muted);margin-top:6px;font-size:13px}.section-header{margin-bottom:var(--space-4);margin-top:var(--space-6);justify-content:space-between;align-items:center;display:flex}.section-title{font-size:var(--font-size-md);color:var(--clr-text);font-weight:700}.subject-chip{border-radius:var(--radius-full);align-items:center;gap:4px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-flex}.video-card{background:var(--glass-bg);border:var(--glass-border);border-radius:var(--radius-lg);transition:var(--transition-fast);cursor:pointer;overflow:hidden}.video-card:hover{box-shadow:var(--shadow-md);border-color:var(--clr-border-bright);transform:translateY(-4px)}.video-thumbnail{background:linear-gradient(135deg,#6c63ff40,#00d4aa26);justify-content:center;align-items:center;height:140px;display:flex;position:relative;overflow:hidden}.play-btn-overlay{opacity:0;transition:var(--transition-fast);background:#0000004d;justify-content:center;align-items:center;display:flex;position:absolute;inset:0}.play-btn-overlay:after{content:"▶";color:#fff;text-shadow:0 2px 8px #00000080;font-size:36px}.video-card:hover .play-btn-overlay{opacity:1}.video-info{padding:var(--space-4)}.video-title{color:var(--clr-text);margin-bottom:6px;font-size:13px;font-weight:700;line-height:1.4}.video-meta{color:var(--clr-text-muted);font-size:11px}.chart-container{justify-content:center;align-items:center;min-height:260px;display:flex}.divider{border:none;border-top:var(--glass-border);margin:var(--space-5) 0}.badge-neutral{background:var(--clr-surface-2);color:var(--clr-text-muted)}.badge-primary{color:var(--clr-primary-light);background:#6c63ff33}.request-card{padding:var(--space-4);background:var(--clr-surface);border:var(--glass-border);border-radius:var(--radius-lg)}.grid-3-col{grid-column:1/-1}@media (width<=900px){.grid-4,.grid-3{grid-template-columns:repeat(2,1fr)}.sidebar{transform:translate(-100%)}.main-content{margin-left:0}}@media (width<=640px){.grid-2,.grid-3,.grid-4,.form-row,.role-selector{grid-template-columns:1fr}.page-content{padding:var(--space-4)}.bar-label{width:80px}.notification-panel{width:300px}}.google-btn{color:#3c4043;border-radius:var(--radius-lg);cursor:pointer;background:#fff;border:1.5px solid #dadce0;justify-content:center;align-items:center;gap:12px;width:100%;margin-bottom:4px;padding:13px 20px;font-family:inherit;font-size:15px;font-weight:600;text-decoration:none;transition:box-shadow .2s,background .2s;display:flex}.google-btn:hover{color:#3c4043;background:#f8f9fa;text-decoration:none;box-shadow:0 2px 12px #0000001f}.auth-divider{color:var(--clr-text-faint);align-items:center;gap:12px;margin:20px 0;font-size:12px;font-weight:500;display:flex}.auth-divider:before,.auth-divider:after{content:"";background:var(--clr-border);flex:1;height:1px}.role-option input[type=radio]{display:none}.role-option:hover{border-color:var(--clr-primary-light)!important;background:#6c63ff14!important}
