:root{--mirai-blue:#0052cc;--mirai-dark:#003d99;--mirai-light:#f0f7ff;--mirai-gradient:linear-gradient(135deg,#0052cc,#003d99);--brand:var(--mirai-blue);--brand-gradient:var(--mirai-gradient);--brand-soft:var(--mirai-light);--brand-dark:#0f172a;--success:#10b981;--warning:#f59e0b;--danger:#ef4444;--info:#0ea5e9;--bg:#f8fafc;--surface:#fff;--text:#0f172a;--muted:#64748b;--border:#e2e8f0;--radius-sm:10px;--radius-md:18px;--radius-lg:28px;--shadow-sm:0 1px 2px rgba(0,0,0,.05);--shadow-md:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -1px rgba(0,0,0,.06);--shadow-lg:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--shadow-premium:0 25px 50px -12px rgba(0,82,204,.12)}*{box-sizing:border-box;scrollbar-width:thin;scrollbar-color:#cbd5e1 transparent}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}::selection{background:#bfdbfe;color:#1e40af}body,html{padding:0;margin:0;background:var(--bg);color:var(--text);font-family:Outfit,Inter,sans-serif;-webkit-font-smoothing:antialiased;overflow-x:hidden}.premium-glass{background:hsla(0,0%,100%,.7)!important;-webkit-backdrop-filter:blur(12px)!important;backdrop-filter:blur(12px)!important;border:1px solid hsla(0,0%,100%,.3)!important;box-shadow:var(--shadow-premium)!important}.hover-lift{transition:all .4s cubic-bezier(.16,1,.3,1)}.hover-lift:hover{transform:translateY(-8px) scale(1.01);box-shadow:0 30px 60px -12px rgba(15,23,42,.12)!important}.fw-900{font-weight:900!important}.fw-800{font-weight:800!important}.extra-small{font-size:.65rem!important}.uppercase{text-transform:uppercase!important}.letter-spacing-tight{letter-spacing:-.04em!important}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in{animation:fadeIn .6s cubic-bezier(.16,1,.3,1) forwards}.main{flex:1 1;min-width:0;display:flex;flex-direction:column}.topbar{background:var(--surface);padding:14px 24px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;position:-webkit-sticky;position:sticky;top:0;z-index:1030}.topbar .page-title{font-size:1.15rem;font-weight:600;margin:0}.topbar .user-chip{display:flex;align-items:center;gap:10px;padding:6px 12px;background:var(--brand-light);border-radius:999px;color:var(--brand-dark);font-weight:500;font-size:.9rem}.content{padding:24px;flex:1 1}.menu-toggle{display:none;background:none;border:none;font-size:1.4rem;color:var(--text)}.stat-card{background:var(--surface);border-radius:var(--radius);padding:18px;border:1px solid var(--border);gap:14px}.stat-card,.stat-card .icon{display:flex;align-items:center}.stat-card .icon{width:48px;height:48px;border-radius:12px;justify-content:center;font-size:1.4rem}.stat-card .icon.blue{background:#dbeafe;color:var(--brand)}.stat-card .icon.green{background:#dcfce7;color:var(--success)}.stat-card .icon.amber{background:#fef3c7;color:var(--warning)}.stat-card .icon.red{background:#fee2e2;color:var(--danger)}.stat-card .label{color:var(--muted);font-size:.82rem;margin:0}.stat-card .value{font-size:1.4rem;font-weight:700;margin:0}.btn-brand{background:var(--brand)}.btn-brand:hover{background:var(--brand-dark);color:#fff}.table-wrap{overflow-x:auto}.table thead{background:#f8fafc}.table thead th{font-size:.8rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600}.table tbody td{vertical-align:middle}.login-page-v2{height:100vh;width:100vw;display:flex;background:#fff;overflow:hidden;position:fixed;inset:0}.login-side-img{flex:1.4 1;display:flex;align-items:flex-end;justify-content:flex-start;position:relative;overflow:hidden;padding:40px;background:#0f172a}.login-side-img:hover{filter:brightness(1.1)}.login-side-img:hover img{transform:scale(1.03)}.login-side-content{position:relative;z-index:5;color:#fff;max-width:500px}.login-side-content h1{font-size:2.4rem;font-weight:800;margin-bottom:8px;letter-spacing:-.03em;line-height:1.1}.login-side-content p{font-size:1rem;opacity:.85;margin-bottom:24px;line-height:1.5}.login-side-form{width:480px;display:flex;align-items:center;justify-content:center;padding:20px;z-index:10;overflow:hidden;background:#fff;border-left:1px solid #f1f5f9}.login-form-container{width:100%;max-width:340px}.login-form-container h2{font-size:1.6rem;font-weight:800;margin-bottom:4px;color:var(--text);letter-spacing:-.02em}.login-form-container .sub{color:var(--muted);margin-bottom:20px;font-size:.85rem;line-height:1.4}.form-control{border-radius:8px;padding:10px 14px;font-size:.85rem;border:1px solid var(--border);transition:all .2s;background:#fcfcfd}.form-control:focus{background:#fff;border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-light)}.form-label{font-size:.75rem;font-weight:700;color:#334155;margin-bottom:4px;display:block}.role-tabs{display:flex;background:#f1f5f9;padding:3px;border-radius:12px;margin-bottom:16px}.role-tabs button{flex:1 1;border:none;padding:7px;border-radius:9px;font-size:.8rem;font-weight:700;color:var(--muted);transition:all .2s;background:transparent}.role-tabs button.active{background:#fff;color:var(--brand);box-shadow:0 4px 10px rgba(0,0,0,.05)}.hover-brand:hover{color:var(--brand)!important}.hover-underline:hover{text-decoration:underline!important}@media (max-width:1200px){.login-side-form{width:440px}}@media (max-width:992px){.login-side-img{display:none}.login-side-form{width:100%;padding:40px;overflow-y:auto;background:var(--bg)}.login-form-container{background:#fff;padding:32px;border-radius:24px;box-shadow:var(--shadow)}}.ds-container{display:flex;height:100vh;overflow:hidden;background:#f8fafc;font-family:Inter,sans-serif}.ds-sidebar{width:280px;background:#fff;border-right:1px solid #eef2f6;display:flex;flex-direction:column;height:100vh;flex-shrink:0;z-index:1000;box-shadow:none;overflow-y:auto}.ds-sidebar-header{padding:32px 24px}.ds-brand{gap:14px}.ds-brand,.ds-logo-sq{display:flex;align-items:center}.ds-logo-sq{width:44px;height:44px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:12px;justify-content:center;font-weight:800;font-size:1.4rem;box-shadow:none}.ds-school-name{margin:0;font-size:1.1rem;font-weight:800;color:#1e293b;line-height:1.1;letter-spacing:-.02em}.ds-tagline{font-size:.65rem;color:#94a3b8;font-weight:700;text-transform:uppercase;letter-spacing:.08em;margin-top:2px;display:block}.ds-nav{flex:1 1;overflow-y:auto;padding:12px 16px;scrollbar-width:none}.ds-nav::-webkit-scrollbar{display:none}.ds-menu-section{margin-bottom:32px}.ds-section-title{font-size:.7rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.1em;padding-left:12px;margin-bottom:16px;opacity:.8}.ds-nav-item{display:flex!important;align-items:center!important;gap:12px!important;padding:12px 16px!important;color:#64748b!important;text-decoration:none!important;border-radius:14px!important;transition:all .25s cubic-bezier(.4,0,.2,1)!important;margin-bottom:6px!important;font-weight:600!important;border:1px solid transparent!important;font-size:.92rem!important}.ds-nav-item:hover{background:#f8fafc!important;color:#1e293b!important;transform:translateX(4px)}.ds-nav-item.active{background:#3b82f6!important;color:#fff!important;box-shadow:none!important;border-color:#3b82f6!important}.ds-nav-icon{width:24px;height:24px;font-size:1.2rem;justify-content:center}.ds-header,.ds-nav-icon{display:flex;align-items:center}.ds-header{height:88px;background:hsla(0,0%,100%,.8);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid #f1f5f9;justify-content:space-between;padding:0 40px;position:-webkit-sticky;position:sticky;top:0;z-index:900;width:100%}.ds-main{flex:1 1;min-width:0;display:flex;flex-direction:column;background:#f8fafc;height:100vh;overflow-y:auto}.ds-content{padding:40px;flex:1 1;width:100%}.ds-header-right{display:flex;align-items:center;gap:16px}.ds-header-btn{width:44px;height:44px;background:#fff;border:1px solid #eef2f6;border-radius:12px;display:flex;align-items:center;justify-content:center;color:#64748b;cursor:pointer;transition:all .2s;position:relative}.ds-header-btn:hover{background:#f8fafc;color:#3b82f6;border-color:#3b82f6}.ds-badge{position:absolute;top:-6px;right:-6px;min-width:20px;height:20px;background:#ef4444;color:#fff;border-radius:10px;justify-content:center;font-size:.65rem;font-weight:800;border:3px solid #fff;padding:0 4px}.ds-badge,.ds-user-profile{display:flex;align-items:center}.ds-user-profile{gap:12px;cursor:pointer;margin-left:8px}.ds-user-text{text-align:right}.ds-user-name{font-size:.9rem;font-weight:700;color:#1e293b;line-height:1.2}.ds-user-role{font-size:.75rem;color:#94a3b8;font-weight:600;text-transform:uppercase;letter-spacing:.02em}.ds-user-avatar{width:44px;height:44px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;border-radius:12px;justify-content:center;font-weight:700;font-size:1.2rem;box-shadow:none}.ds-search-bar,.ds-user-avatar{display:flex;align-items:center}.ds-search-bar{position:relative;background:#f8fafc;border:1px solid #eef2f6;border-radius:14px;padding:10px 18px;gap:12px;width:100%;max-width:440px}.ds-search-bar input{background:transparent;border:none;outline:none;font-size:.9rem;flex:1 1;color:#1e293b;font-weight:500}.ds-search-shortcut{font-size:.7rem;color:#94a3b8;font-weight:700;background:#fff;padding:4px 8px;border-radius:6px;border:1px solid #eef2f6}.ds-stat-card{background:#fff;border-radius:20px;border:1px solid #f1f5f9;transition:all .3s cubic-bezier(.4,0,.2,1);box-shadow:none}.ds-stat-card:hover{transform:translateY(-4px);border-color:#3b82f6}.ds-stat-icon{width:54px;height:54px;border-radius:16px;display:flex;alignItems:center;justify-content:center;font-size:1.5rem}.ds-table-wrap{overflow-x:auto}.ds-table{width:100%;border-collapse:separate;border-spacing:0}.ds-table thead{background:#f8fafc}.ds-table thead th{font-size:.75rem;font-weight:700;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.ds-table tbody td,.ds-table thead th{padding:16px 24px;border-bottom:1px solid #f1f5f9}.ds-table tbody td{font-size:.92rem;color:#334155;font-weight:500;transition:all .2s}.ds-table tbody tr:hover td{background:#fcfdfe}.ds-table tbody tr:last-child td{border-bottom:0}.ds-dashboard-row{display:flex;gap:32px;width:100%}.ds-dashboard-main{flex:1 1;min-width:0}.ds-dashboard-sidebar{width:380px;flex-shrink:0;display:flex;flex-direction:column;gap:24px}@media (max-width:1400px){.ds-dashboard-sidebar{width:320px}}@media (max-width:1200px){.ds-dashboard-row{flex-direction:column}.ds-dashboard-sidebar{width:100%}}.ds-widget{background:#fff;border-radius:24px;border:1px solid #f1f5f9;padding:24px;box-shadow:none}.ds-widget-title{font-size:.95rem;font-weight:800;color:#1e293b;margin-bottom:20px;justify-content:space-between}.ds-mini-item,.ds-widget-title{display:flex;align-items:center}.ds-mini-item{gap:16px;padding:12px;border-radius:16px;transition:all .2s;cursor:pointer;margin-bottom:4px}.ds-mini-item:hover{background:#f8fafc;transform:translateX(4px)}.ds-mini-icon{width:48px;height:48px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:1.2rem}.ds-mini-info{flex:1 1}.ds-mini-name{font-size:.85rem;font-weight:700;color:#1e293b;margin-bottom:2px}.ds-mini-sub{font-size:.7rem;color:#94a3b8;font-weight:600}.ds-filter-bar{background:#fff;border-radius:20px;padding:20px 24px;display:flex;align-items:center;gap:24px;margin-bottom:32px;border:1px solid #f1f5f9;flex-wrap:wrap}.ds-filter-group{display:flex;flex-direction:column;gap:6px}.ds-filter-label{font-size:.7rem;font-weight:800;color:#94a3b8;text-transform:uppercase;letter-spacing:.05em}.ds-filter-bar .form-control,.ds-filter-bar .form-select{border-radius:10px;border:1px solid #f1f5f9;background:#f8fafc;font-size:.85rem;font-weight:600;padding:8px 12px}.fw-800{font-weight:800}.btn-brand{background:#3b82f6;color:#fff;border:none;border-radius:12px;transition:all .2s}.btn-brand:hover{background:#2563eb;transform:translateY(-2px);box-shadow:0 4px 12px rgba(37,99,235,.2)}.status-badge{letter-spacing:.02em}.ds-container.sidebar-hidden .ds-sidebar{display:none}.ds-container.sidebar-hidden .ds-main{width:100%!important;margin-left:0!important}.ds-container.sidebar-hidden .ds-header{padding:0 40px}.ds-container.sidebar-hidden .ds-content{padding:40px;max-width:1200px;margin:0 auto}