:root{--background:222 47% 7%;--foreground:210 40% 96%;--primary:174 84% 50%;--primary-foreground:222 47% 8%;--secondary:263 85% 68%;--secondary-foreground:0 0% 100%;--muted:219 22% 68%;--destructive:0 84% 62%;--destructive-foreground:0 0% 100%;--border:220 24% 24%;--card:222 42% 12%;--success:145 70% 48%;--warning:42 95% 58%;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--shadow-sm:0 8px 24px #03060c38;--shadow-md:0 18px 48px #03060c59;--shadow-lg:0 28px 80px #03060c7a;--transition-fast:.16s ease;--transition-smooth:.32s cubic-bezier(.2,.8,.2,1)}.dark{--background:222 47% 7%;--foreground:210 40% 96%;--card:222 42% 12%}*{box-sizing:border-box}html{scroll-behavior:smooth}body{min-height:100vh;color:hsl(var(--foreground));background:radial-gradient(circle at top left, hsl(var(--primary) / .22), transparent 36rem), radial-gradient(circle at bottom right, hsl(var(--secondary) / .2), transparent 32rem), hsl(var(--background));margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}button,input,select,textarea{font:inherit}button{cursor:pointer}a{color:inherit;text-decoration:none}#root{min-height:100vh;display:flex}.sidebar{border-right:1px solid hsl(var(--border));background:hsl(var(--card) / .72);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);flex-direction:column;gap:28px;width:290px;height:100vh;padding:24px;display:flex;position:sticky;top:0}.brand{align-items:center;gap:14px;display:flex}.brand img{width:54px;height:54px;filter:drop-shadow(0 0 18px hsl(var(--primary) / .35))}.brand h1{letter-spacing:-.02em;margin:0;font-size:20px}.brand p{color:hsl(var(--muted));margin:4px 0 0;font-size:12px}.nav{gap:10px;display:grid}.nav-link{border-radius:var(--radius-sm);color:hsl(var(--muted));transition:var(--transition-smooth);padding:13px 15px}.nav-link:hover,.nav-link.active{color:hsl(var(--foreground));background:linear-gradient(135deg, hsl(var(--primary) / .16), hsl(var(--secondary) / .14));transform:translate(4px)}.sidebar-card{border:1px solid hsl(var(--primary) / .25);border-radius:var(--radius-md);background:hsl(var(--primary) / .08);box-shadow:var(--shadow-sm);gap:6px;margin-top:auto;padding:16px;display:grid}.sidebar-card span{color:hsl(var(--muted));font-size:13px;line-height:1.45}.main{flex:1;padding:26px;overflow:hidden}.topbar{justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:24px;display:flex}.topbar h2{letter-spacing:-.04em;margin:0;font-size:clamp(26px,4vw,44px)}.topbar p,.muted{color:hsl(var(--muted));margin:8px 0 0;line-height:1.55}.top-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.btn{color:hsl(var(--foreground));background:hsl(var(--card));border:0;border:1px solid hsl(var(--border));transition:var(--transition-smooth);box-shadow:var(--shadow-sm);border-radius:999px;padding:11px 16px}.btn:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.btn-primary{background:linear-gradient(135deg, hsl(var(--primary)), hsl(var(--secondary)));color:hsl(var(--primary-foreground));border-color:#0000;font-weight:800}.btn-secondary{background:hsl(var(--secondary) / .18);border-color:hsl(var(--secondary) / .32)}.btn-outline{background:hsl(var(--card) / .55)}.btn-danger{background:hsl(var(--destructive) / .16);border-color:hsl(var(--destructive) / .35)}.full{width:100%}.page-section{animation:.35s both rise;display:none}.active-section{display:block}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.grid{gap:18px;display:grid}.two-col{grid-template-columns:repeat(2,minmax(0,1fr))}.stats-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px;display:grid}.card,.stat-card{border:1px solid hsl(var(--border));border-radius:var(--radius-lg);background:linear-gradient(145deg, hsl(var(--card) / .88), hsl(var(--card) / .55));-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:var(--shadow-md)}.card{padding:20px}.stat-card{padding:20px;position:relative;overflow:hidden}.stat-card span{color:hsl(var(--muted));font-size:13px}.stat-card strong{margin-top:8px;font-size:34px;display:block}.glow-primary:after,.glow-secondary:after,.glow-warning:after,.glow-success:after{content:"";filter:blur(26px);opacity:.45;border-radius:50%;width:110px;height:110px;position:absolute;inset:auto -20px -34px auto}.glow-primary:after{background:hsl(var(--primary))}.glow-secondary:after{background:hsl(var(--secondary))}.glow-warning:after{background:hsl(var(--warning))}.glow-success:after{background:hsl(var(--success))}.section-title{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.section-title.wrap{flex-wrap:wrap;align-items:flex-start}.section-title h3{margin:0;font-size:20px}.pill,.tooltip{background:hsl(var(--primary) / .12);color:hsl(var(--primary));border-radius:999px;justify-content:center;align-items:center;padding:6px 10px;font-size:12px;font-weight:800;display:inline-flex}.pill.danger{background:hsl(var(--destructive) / .12);color:hsl(var(--destructive))}.tooltip{width:28px;height:28px;padding:0}.form-grid{gap:13px;display:grid}label{color:hsl(var(--muted));gap:7px;font-size:13px;display:grid}input,select,textarea{width:100%;color:hsl(var(--foreground));background:hsl(var(--background) / .45);border:1px solid hsl(var(--border));border-radius:var(--radius-sm);transition:var(--transition-fast);outline:none;padding:12px}input:focus,select:focus,textarea:focus{border-color:hsl(var(--primary));box-shadow:0 0 0 4px hsl(var(--primary) / .12)}textarea{resize:vertical;min-height:132px}select[multiple]{min-height:130px}.list{gap:10px;display:grid}.list.compact{margin-top:12px}.item{border:1px solid hsl(var(--border));border-radius:var(--radius-md);background:hsl(var(--background) / .32);justify-content:space-between;align-items:center;gap:12px;padding:14px;display:flex}.item small{color:hsl(var(--muted));margin-top:3px;display:block}.item-actions{flex-wrap:wrap;gap:8px;display:flex}.icon-btn{border:1px solid hsl(var(--border));color:hsl(var(--foreground));background:hsl(var(--card));border-radius:999px;padding:7px 10px}.alert{border-color:hsl(var(--warning) / .38);background:hsl(var(--warning) / .1)}.danger-text{color:hsl(var(--destructive));font-weight:800}.attendance-bars{gap:12px;display:grid}.bar-row{gap:6px;display:grid}.bar-meta{justify-content:space-between;font-size:13px;display:flex}.bar{background:hsl(var(--background) / .6);border-radius:999px;height:10px;overflow:hidden}.bar-fill{border-radius:inherit;background:linear-gradient(90deg, hsl(var(--primary)), hsl(var(--secondary)));height:100%;transition:width var(--transition-smooth)}.bar-fill.low{background:linear-gradient(90deg, hsl(var(--destructive)), hsl(var(--warning)))}.table-wrap{overflow-x:auto}table{border-collapse:separate;border-spacing:0 10px;width:100%;min-width:720px}th{color:hsl(var(--muted));text-align:left;padding:10px;font-size:13px}td{background:hsl(var(--background) / .42);border-top:1px solid hsl(var(--border));border-bottom:1px solid hsl(var(--border));vertical-align:top;padding:12px 10px}td:first-child{border-left:1px solid hsl(var(--border));border-radius:14px 0 0 14px;font-weight:800}td:last-child{border-right:1px solid hsl(var(--border));border-radius:0 14px 14px 0}.cell-subject{font-weight:900}.cell-teacher{color:hsl(var(--muted));margin-top:4px;font-size:12px}.replacement{color:hsl(var(--warning));margin-top:4px;font-size:12px;font-weight:800}.event-cell{background:hsl(var(--secondary) / .16);color:hsl(var(--secondary));font-weight:900}.free-cell{color:hsl(var(--muted))}.slot-controls{grid-template-columns:1fr 1fr auto;align-items:end;gap:14px;display:grid}.mt{margin-top:18px}.empty{color:hsl(var(--muted));border:1px dashed hsl(var(--border));border-radius:var(--radius-md);text-align:center;padding:18px}@media (width<=960px){#root{flex-direction:column}.sidebar{width:100%;height:auto;position:static}.nav{grid-template-columns:repeat(5,1fr);overflow-x:auto}.nav-link{text-align:center;white-space:nowrap}.topbar,.two-col,.slot-controls{flex-direction:column;grid-template-columns:1fr}.stats-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=560px){.main,.sidebar{padding:16px}.stats-grid{grid-template-columns:1fr}.nav{grid-template-columns:1fr 1fr}.top-actions{justify-content:stretch;width:100%}.top-actions .btn{flex:100%}.item{flex-direction:column;align-items:flex-start}}
