@import url("https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap");*{margin:0;padding:0;box-sizing:border-box}body{font-family:Plus Jakarta Sans,sans-serif;background:#f7f5f2;color:#1a1a1a;display:flex;height:100vh;overflow:hidden}a{color:inherit}a,a:hover{text-decoration:none}.main{flex:1 1;padding:32px;overflow-y:auto}.card{background:#fff;border:1px solid #ece8e2;border-radius:14px;box-shadow:0 1px 3px rgba(0,0,0,.03);padding:16px}.muted{color:#888}hr{border:none;border-top:1px solid #ece8e2;margin:16px 0}h2{margin:0 0 14px;font-size:18px;font-weight:700;color:#1a1a1a}.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.pageHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px}.pageTitle{margin:0;font-size:22px;font-weight:800;color:#1a1a1a;letter-spacing:-.3px}.pageSub{font-size:13px;color:#888;font-weight:500;margin-top:3px}.pageActions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.main .btn,.main button:not(.tab):not(.footer-logout){border:1px solid #ece8e2;background:#fff;border-radius:10px;padding:8px 14px;cursor:pointer;min-height:36px;font-size:13px;font-weight:500;font-family:Plus Jakarta Sans,sans-serif;color:#1a1a1a;transition:all .15s ease}.main .btn:hover,.main button:not(.tab):not(.footer-logout):hover{background:#faf9f7;border-color:#d8d4ce}.main button:not(.tab):active{transform:translateY(.5px)}.main button:disabled{opacity:.5;cursor:not-allowed;transform:none}.main .primary{background:#1e3a6e;border-color:#1e3a6e;color:#fff;font-weight:600;box-shadow:0 1px 4px rgba(30,58,110,.18)}.main .primary:hover{background:#163058;border-color:#163058;box-shadow:0 3px 10px rgba(30,58,110,.25)}.main .danger{background:#c0392b;border-color:#c0392b;color:#fff;font-weight:600}.main .danger:hover{background:#a93226;border-color:#a93226}.main input,.main select,.main textarea{border:1px solid #ece8e2;border-radius:10px;padding:8px 12px;background:#fff;color:#1a1a1a;outline:none;min-height:36px;font-size:13px;font-family:Plus Jakarta Sans,sans-serif;transition:border-color .2s ease,box-shadow .2s ease}.main input:focus,.main select:focus,.main textarea:focus{border-color:rgba(30,58,110,.3);box-shadow:0 0 0 3px rgba(30,58,110,.08)}.main input::placeholder,.main textarea::placeholder{color:#bbb}.searchInput{min-width:260px}table{width:100%;border-collapse:collapse;font-size:13px}td,th{padding:8px 10px;border-bottom:1px solid #f3f0ec;text-align:left;vertical-align:middle}th{color:#b5ada5;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:1px;background:#faf9f7}tbody tr{transition:background .1s ease}tbody tr:hover{background:#faf9f7}.tableWrap{overflow:auto;max-height:calc(100vh - 260px);border:1px solid #ece8e2;border-radius:14px;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.03)}.tableWrap table{border-collapse:separate;border-spacing:0}.tableWrap thead th{position:-webkit-sticky;position:sticky;top:0;z-index:2;border-bottom:2px solid #ece8e2}.tableWrap tbody tr:last-child td{border-bottom:none}.chip{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid transparent;white-space:nowrap}.chipBlue{background:rgba(30,58,110,.08);color:#1e3a6e;border-color:rgba(30,58,110,.15)}.chipGreen{background:#eef7ee;color:#22864a;border-color:rgba(34,134,74,.15)}.chipGray{background:hsla(220,9%,46%,.08);color:#6b7280;border-color:hsla(220,9%,46%,.15)}@media (max-width:900px){body{flex-direction:column;height:auto;overflow:auto}.sidebar{width:auto!important;min-width:0!important;height:auto!important}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.sidebar{width:258px;min-width:258px;background:#fff;border-right:1px solid #ece8e2;display:flex;flex-direction:column;height:100vh}.sidebar-logo{padding:22px 20px 18px;gap:11px;border-bottom:1px solid #ece8e2}.logo-icon,.sidebar-logo{display:flex;align-items:center}.logo-icon{width:36px;height:36px;border-radius:10px;background:linear-gradient(135deg,#1e3a6e,#2d5299);justify-content:center;box-shadow:0 2px 10px rgba(30,58,110,.3)}.logo-text{font-size:17px;font-weight:800;color:#2a2724;letter-spacing:-.5px}.logo-text span{color:#1e3a6e}.sidebar-search{margin:14px 14px 6px;position:relative}.sidebar-search input{width:100%;padding:9px 12px 9px 35px;background:#f5f3f0;border:1px solid transparent;border-radius:10px;color:#2a2724;font-size:13px;font-family:inherit;outline:none;transition:all .2s}.sidebar-search input:focus{background:#fff;border-color:rgba(30,58,110,.3);box-shadow:0 0 0 3px rgba(30,58,110,.08)}.sidebar-search svg{left:11px}.sidebar-search .kbd,.sidebar-search svg{position:absolute;top:50%;transform:translateY(-50%);color:#c5bfb6}.sidebar-search .kbd{right:10px;font-size:10px;background:#fff;padding:2px 6px;border-radius:5px;border:1px solid #ece8e2;font-weight:600}.sidebar-nav{flex:1 1;overflow-y:auto;padding:6px 10px}.nav-label{padding:16px 12px 6px;font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:#8a8279}.nav-divider{height:1px;background:#ece8e2;margin:8px 12px}.nav-item{width:100%;display:flex;align-items:center;gap:10px;padding:8px 12px;border:none;border-radius:10px;background:transparent;color:#4a4540;font-weight:500;font-size:13.5px;font-family:inherit;cursor:pointer;text-align:left;position:relative;transition:background .15s;text-decoration:none}.nav-item:hover{background:#f5f3f0;text-decoration:none}.nav-item.active{background:#edf1f8;color:#1a3362;font-weight:700}.nav-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:18px;border-radius:0 4px 4px 0;background:#1e3a6e}.nav-icon{display:flex;align-items:center;justify-content:center;width:18px;height:18px;flex-shrink:0;color:inherit;opacity:.55}.nav-item.active .nav-icon{opacity:1;color:#1e3a6e}.nav-badge{font-size:10px;font-weight:700;background:#1e3a6e;color:#fff;padding:1px 7px;border-radius:10px;margin-left:auto}.nav-chevron{margin-left:auto;opacity:.35;flex-shrink:0}.nav-badge+.nav-chevron{margin-left:6px}.sidebar-footer{padding:14px 16px;border-top:1px solid #ece8e2;gap:10px}.footer-avatar,.sidebar-footer{display:flex;align-items:center}.footer-avatar{width:34px;height:34px;border-radius:10px;background:#edf1f8;border:1px solid rgba(30,58,110,.12);justify-content:center;font-size:12px;font-weight:700;color:#1e3a6e}.footer-name{font-size:13px;font-weight:700;color:#2a2724}.footer-email{font-size:11px;color:#b5afa7}.online-dot{width:8px;height:8px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 2px #fff,0 0 6px rgba(34,197,94,.4)}.footer-logout{border:none;background:transparent;cursor:pointer;padding:4px;color:#b5ada5;display:flex;align-items:center;min-height:auto;transition:color .15s}.footer-logout:hover{color:#2a2724}@keyframes fadeIn{0%{opacity:0;transform:translateX(-8px)}to{opacity:1;transform:translateX(0)}}.nav-item,.nav-label{animation:fadeIn .3s ease both}.sidebar-nav .nav-label:first-child{animation-delay:.05s}.sidebar-nav :nth-child(2){animation-delay:.07s}.sidebar-nav :nth-child(3){animation-delay:.09s}.sidebar-nav :nth-child(4){animation-delay:.11s}.sidebar-nav :nth-child(5){animation-delay:.13s}.sidebar-nav :nth-child(6){animation-delay:.15s}.sidebar-nav :nth-child(7){animation-delay:.17s}.sidebar-nav :nth-child(8){animation-delay:.19s}.sidebar-nav :nth-child(9){animation-delay:.21s}.sidebar-nav :nth-child(10){animation-delay:.23s}.sidebar-nav :nth-child(n+11){animation-delay:.25s}.teacher-note{display:block;padding:4px 12px 4px 38px;color:#b5ada5;font-size:11px}