* {
    box-sizing:border-box;
}
html,body {
    margin:0;
    min-height:100%;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,sans-serif;
    color:#172b3a;
    background:#f3f6f8;
}
button,input,select,textarea {
    font:inherit;
}
aside {
    position:fixed;
    z-index:30;
    top:0;
    right:auto;
    bottom:0;
    left:0;
    width:270px;
    background:linear-gradient(180deg,#071a2f,#0b223b);
    color:#fff;
    display:flex;
    flex-direction:column;
    box-shadow:4px 0 18px rgba(0,0,17,.13);
    transition:.25s;
}
.side-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:20px 18px 14px;
}
.brand {
    display:flex;
    align-items:center;
    gap:11px;
    color:white;
    text-decoration:none;
    font-weight:800;
    font-size:18px;
}
.brand>span,.logo {
    display:grid;
    place-items:center;
    width:43px;
    height:43px;
    border-radius:12px;
    background:linear-gradient(135deg,#12b8a1,#27cfaf);
    box-shadow:0 8px 18px rgba(0,0,17,.53);
}
.brand small,.school-chip small,aside footer small,.profile small,td small {
    display:block;
    font-size:11px;
    font-weight:500;
    opacity:.72;
}
.school-chip {
    margin:4px 14px 12px;
    padding:11px 12px;
    border:1px solid rgba(255,255,255,.09);
    border-radius:10px;
    background:rgba(255,255,255,.04);
    white-space:nowrap;
    overflow:hidden;
}
.school-chip b {
    font-size:12px;
}
.school-chip small {
    margin-top:3px;
    overflow:hidden;
    text-overflow:ellipsis;
}
nav {
    padding:0 10px 20px;
    overflow:auto;
    scrollbar-width:thin;
}
nav p {
    margin:18px 12px 7px;
    color:#7691a9;
    font-size:10px;
    font-weight:800;
    letter-spacing:1.4px;
}
.nav-link,.nav-group {
    width:100%;
    display:flex;
    align-items:center;
    gap:11px;
    padding:10px 12px;
    margin:2px 0;
    border:0;
    border-radius:8px;
    background:none;
    color:#bdcddd;
    text-decoration:none;
    text-align:left;
    cursor:pointer;
    font-size:13px;
}
.nav-link i,.nav-group i {
    font-style:normal;
    width:20px;
    text-align:center;
    color:#84a2b8;
    font-size:16px;
}
.nav-link:hover,.nav-group:hover,.nav-link.active {
    color:#fff;
    background:rgba(255,255,255,.06);
}
.nav-link.active {
    box-shadow:inset 3px 0 #0aa58f;
}
.nav-group b {
    margin-left:auto;
    transition:.2s;
}
.nav-group.open b {
    transform:rotate(90deg);
}
.submenu {
    display:none;
    margin:1px 0 5px 43px;
    border-left:1px solid #34516a;
}
.submenu.show {
    display:grid;
}
.submenu a {
    padding:8px 13px;
    color:#94aabd;
    text-decoration:none;
    font-size:12px;
}
.submenu a:hover,.submenu a.active {
    color:#fff;
}
aside footer {
    margin-top:auto;
    padding:16px 20px;
    color:#8fa7b9;
    font-size:11px;
}
.side-close {
    display:none;
    color:white;
}
main {
    margin-left:270px;
    min-height:100vh;
}
.topbar {
    height:70px;
    background:#fff;
    border-bottom:1px solid #dbe4ea;
    display:flex;
    align-items:center;
    padding:0 28px;
    position:sticky;
    top:0;
    z-index:20;
}
.icon-btn {
    width:38px;
    height:38px;
    border:0;
    background:transparent;
    border-radius:9px;
    cursor:pointer;
    color:#496273;
    font-size:18px;
}
.icon-btn:hover {
    background:#eef3f5;
}
.global-search {
    width:min(480px,45vw);
    display:flex;
    align-items:center;
    gap:9px;
    margin-left:8px;
    padding:8px 12px;
    border:1px solid #dbe4ea;
    border-radius:9px;
    background:#f8fafb;
}
.global-search input {
    border:0;
    outline:0;
    background:transparent;
    width:100%;
    font-size:13px;
}
.global-search kbd {
    border:1px solid #ccd7de;
    background:white;
    border-radius:5px;
    padding:2px 6px;
    color:#789;
    font-size:10px;
}
.top-actions {
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:7px;
}
.drop {
    position:relative;
}
.icon-btn em {
    position:absolute;
    width:7px;
    height:7px;
    background:#ef4444;
    border-radius:50%;
    margin:1px;
}
.profile {
    display:flex;
    align-items:center;
    gap:10px;
    padding:5px 8px;
    border:0;
    background:transparent;
    border-radius:9px;
    cursor:pointer;
    text-align:left;
}
.profile:hover {
    background:#f1f5f6;
}
.profile>span {
    display:grid;
    place-items:center;
    width:35px;
    height:35px;
    border-radius:10px;
    background:#071a2f;
    color:#fff;
    font-weight:800;
}
.profile b {
    font-size:12px;
    display:block;
}
.profile i {
    font-style:normal;
}
.dropdown {
    display:none;
    position:absolute;
    right:0;
    top:46px;
    min-width:230px;
    padding:14px;
    background:#fff;
    border:1px solid #dbe4ea;
    border-radius:11px;
    box-shadow:0 8px 28px rgba(15,42,62,.08);
    z-index:40;
}
.dropdown.show {
    display:block;
}
.dropdown p {
    font-size:12px;
    color:#6b7f8f;
}
.profile-menu {
    padding:8px;
}
.profile-menu a,.profile-menu button {
    display:block;
    width:100%;
    padding:9px 10px;
    border:0;
    background:none;
    color:#172b3a;
    text-decoration:none;
    text-align:left;
    font-size:12px;
    border-radius:7px;
}
.profile-menu a:hover,.profile-menu button:hover {
    background:#f1f5f6;
}
.content {
    padding:26px 30px 45px;
}
.page-title {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    margin-bottom:20px;
}
.page-title h1 {
    font-size:25px;
    margin:4px 0;
}
.page-title p {
    margin:0;
    color:#6b7f8f;
    font-size:13px;
}
.crumb {
    font-size:11px;
    color:#8497a5;
}
.crumb span {
    margin:0 5px;
}
.stats {
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:15px;
    margin-bottom:18px;
}
.stats article,.panel {
    background:#fff;
    border:1px solid #dbe4ea;
    border-radius:12px;
    padding:19px;
    box-shadow:0 3px 14px rgba(21,53,75,.03);
}
.stats article {
    position:relative;
    overflow:hidden;
}
.stats article:before {
    content:'';
    position:absolute;
    width:4px;
    top:0;
    right:auto;
    bottom:0;
    left:0;
    background:#0aa58f;
}
.stats b {
    font-size:26px;
    display:block;
}
.stats span {
    color:#6b7f8f;
    font-size:12px;
}
.panel {
    margin-bottom:18px;
}
.panel-head {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:15px;
}
.panel h2 {
    font-size:17px;
    margin:0 0 4px;
}
.panel h3 {
    font-size:13px;
    margin:20px 0 8px;
}
.panel p {
    color:#6b7f8f;
    font-size:12px;
    margin:4px 0 14px;
}
.button,form>button,.panel td button {
    display:inline-flex;
    justify-content:center;
    align-items:center;
    border:0;
    border-radius:8px;
    background:#0aa58f;
    color:#fff;
    padding:9px 14px;
    text-decoration:none;
    font-weight:700;
    font-size:12px;
    cursor:pointer;
}
.button:hover,form>button:hover,.panel td button:hover {
    background:#078a79;
}
table {
    width:100%;
    border-collapse:collapse;
    margin-top:13px;
}
th,td {
    text-align:left;
    padding:11px 12px;
    border-bottom:1px solid #dbe4ea;
    font-size:12px;
    vertical-align:top;
}
th {
    background:#f8fafb;
    color:#6d8190;
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.45px;
}
tbody tr:hover {
    background:#fafcfc;
}
.pill {
    display:inline-block;
    padding:4px 8px;
    border-radius:20px;
    background:#e6f8f4;
    color:#087364;
    text-transform:capitalize;
    font-size:10px;
    font-weight:800;
}
.grid {
    display:grid;
    grid-template-columns:minmax(0,1.35fr) minmax(320px,.65fr);
    gap:18px;
}
.grid.wide {
    grid-template-columns:minmax(0,1.6fr) minmax(330px,.7fr);
}
form {
    display:grid;
    gap:11px;
}
label {
    display:grid;
    gap:5px;
    color:#4b6171;
    font-size:11px;
    font-weight:700;
}
input,select,textarea {
    width:100%;
    padding:9px 10px;
    border:1px solid #ccd9e0;
    border-radius:7px;
    background:#fff;
    color:#172b3a;
    font-size:12px;
    outline:0;
}
input:focus,select:focus,textarea:focus {
    border-color:#0aa58f;
    box-shadow:0 0 0 3px rgba(10,165,143,.08);
}
.row {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:10px;
}
.check {
    display:flex;
    align-items:center;
}
.check input {
    width:auto;
}
.plan {
    display:flex;
    justify-content:space-between;
    align-items:center;
    padding:13px 0;
    border-bottom:1px solid #dbe4ea;
}
.plan h3 {
    margin:0;
}
.alert,.toast {
    padding:11px 14px;
    border-radius:8px;
    margin-bottom:15px;
    font-size:12px;
    font-weight:650;
}
.toast.success {
    background:#e6f8f4;
    color:#087364;
    border:1px solid #aee4d8;
}
.toast.error {
    background:#fee4e2;
    color:#b42318;
    border:1px solid #fecdca;
}
.landing {
    min-height:100vh;
    background:radial-gradient(circle at 70% 20%,#17645c 0,#0b2a43 30%,#06182d 70%);
    display:grid;
    place-items:center;
    color:white;
    text-align:center;
}
.landing section {
    max-width:760px;
    padding:40px;
}
.landing .logo {
    margin:auto;
    width:80px;
    height:80px;
    font-size:26px;
}
.landing p {
    letter-spacing:3px;
    color:#7ee1cc;
}
.landing h1 {
    font-size:56px;
    line-height:1.05;
    margin:18px 0;
}
.landing h2 {
    font-weight:400;
    color:#b9cbd7;
    margin-bottom:35px;
}
.overlay {
    display:none;
}
@media(max-width:1050px) {
    aside {
        transform:translateX(-100%);
    }
    aside.mobile-open {
        transform:none;
    }
    .side-close {
        display:block;
    }
    .overlay.show {
        display:block;
        position:fixed;
        top:0;
        right:0;
        bottom:0;
        left:0;
        background:rgba(0,0,17,.53);
        z-index:25;
    }
    main {
        margin:0;
    }
    .grid,.grid.wide {
        grid-template-columns:1fr;
    }
    .stats {
        grid-template-columns:1fr 1fr;
    }
}
@media(max-width:650px) {
    .content {
        padding:18px 14px;
    }
    .topbar {
        padding:0 12px;
    }
    .global-search {
        flex:1;
    }
    .profile>div,.profile>i,.top-actions>.icon-btn {
        display:none;
    }
    .page-title {
        align-items:flex-start;
    }
    .page-title p {
        display:none;
    }
    .stats,.row {
        grid-template-columns:1fr;
    }
    .panel {
        overflow:auto;
    }
    .landing h1 {
        font-size:38px;
    }
}
/* Student module parity pass v0.42 */
.student-cell{display:flex;align-items:center;gap:10px}.student-cell img,.mini-avatar{width:38px;height:38px;border-radius:50%;object-fit:cover}.mini-avatar{display:grid;place-items:center;background:#e8eef4;font-weight:700;color:#475467}.student-profile-photo{width:112px;height:112px;border-radius:10px;object-fit:cover;border:1px solid #d8e0e8;margin-bottom:12px}.student-photo-upload{display:flex;align-items:center;gap:18px;padding:14px;margin:0 0 18px;border:1px solid #e0e6ed;border-radius:7px;background:#fbfcfd}.student-photo-upload img{width:82px;height:82px;border-radius:7px;object-fit:cover;border:1px solid #d8e0e8}.student-photo-upload label{display:block;font-weight:600}.student-photo-upload input{display:block;margin-top:7px}.student-search-photo{width:48px;height:48px;border-radius:6px;object-fit:cover}.link-danger{border:0;background:none;padding:0;color:#c0392b;cursor:pointer;font:inherit}.module-tabs{gap:0;border-bottom:1px solid #dfe5eb}.module-tabs a{border-radius:0;padding:10px 13px}.module-tabs a.active{border-bottom:2px solid #556ee6;background:#f8f9fb}.admission-form h2{font-size:14px;padding-bottom:10px;border-bottom:1px solid #e7ebef;margin-top:22px}.student-reference-form .form-grid{gap:14px 18px}.student-reference-form input,.student-reference-form select,.student-reference-form textarea{border-radius:4px}.profile-card{text-align:center}.profile-card dl{text-align:left}.panel table td,.panel table th{vertical-align:middle}
