:root{--navy:#031a42;--blue:#087cf0;--ink:#10243f;--muted:#68788d;--line:#dae5f1;--soft:#f4f8fd}
.summary-grid .blue{background:#edf6ff}.student-progress-card{background:linear-gradient(135deg,#0b2447,#087cf0);color:#fff;padding:22px;border-radius:18px;margin:18px 0 24px}.student-progress-card>div:first-child{display:flex;align-items:baseline;gap:12px}.student-progress-card strong{font-size:36px}.student-progress-card span{opacity:.88}.student-progress-track{height:11px;background:#ffffff38;border-radius:99px;overflow:hidden;margin-top:16px}.student-progress-track i{display:block;height:100%;background:#55e5d2;border-radius:inherit}.student-topic-groups{display:grid;gap:13px}.student-topic-groups details{border:1px solid #dce7f3;border-radius:15px;background:#fff;overflow:hidden}.student-topic-groups summary{display:flex;justify-content:space-between;padding:17px 19px;cursor:pointer;font-weight:700;background:#f8fbff}.student-topic-groups summary b{color:#087cf0}.student-topic-table-wrap{overflow:auto}.student-topic-table{width:100%;border-collapse:collapse}.student-topic-table th,.student-topic-table td{padding:13px 17px;border-top:1px solid #e2eaf3;text-align:left}.student-topic-table th{font-size:10px;text-transform:uppercase;color:#718096;background:#fbfdff}.student-topic-table tr.completed{background:#f1fbf7}.student-topic-status{display:inline-flex;align-items:center;gap:7px;padding:6px 9px;border-radius:99px;font-size:11px;font-weight:800}.student-topic-status i{font-style:normal}.student-topic-status.done{background:#ddf7e9;color:#087a49}.student-topic-status.pending{background:#eef2f6;color:#718096}.class-access-title{margin-top:30px}@media(max-width:650px){.student-topic-table th:nth-child(3),.student-topic-table td:nth-child(3){display:none}}
*{box-sizing:border-box}
body{margin:0;background:var(--soft);color:var(--ink);font-family:Arial,sans-serif}
a{text-decoration:none;color:inherit}
.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle at 80% 10%,#168cff55,transparent 34%),linear-gradient(135deg,#02142f,#063f7f)}
.login-card{width:min(430px,100%);background:#fff;border-radius:22px;padding:38px;box-shadow:0 25px 80px #0006}
.login-card img{width:65px}
.eyebrow{text-transform:uppercase;color:var(--blue);font-size:11px;letter-spacing:2px;font-weight:800}
.login-card h1{font-size:37px;margin:8px 0}
.login-card>p{color:var(--muted);line-height:1.6}
.login-card form,.password-form{display:grid;gap:14px;margin:25px 0}
.login-card label,.password-form label{display:grid;gap:7px;font-size:12px;font-weight:700}
.login-card input,.password-form input{padding:13px;border:1px solid var(--line);border-radius:9px}
.login-card button,.password-form button{border:0;background:var(--blue);color:#fff;border-radius:9px;padding:13px;font-weight:800}
.login-card small{display:block;color:var(--muted);line-height:1.5}
.login-card>a{display:block;margin-top:20px;color:var(--blue);font-weight:700}
.alert,.warning,.success{padding:13px 16px;border-radius:9px;margin-bottom:18px}
.alert{background:#fff0f0;color:#a52323}
.warning{background:#fff4d8;color:#795b00}
.success{background:#e9fff3;color:#087a49}
.topbar{height:74px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 30px;position:sticky;top:0;z-index:5}
.portal-brand{display:flex;align-items:center;gap:10px}
.portal-brand img{width:43px}
.portal-brand span{display:grid}
.portal-brand small{font-size:7px;letter-spacing:2px}
.topbar>div{display:flex;gap:18px;align-items:center;font-size:13px}
.topbar>div a{color:var(--blue);font-weight:800}
.portal-layout{display:grid;grid-template-columns:250px 1fr;min-height:calc(100vh - 74px)}
.portal-layout>aside{background:var(--navy);color:#fff;padding:28px 18px}
.student-badge{display:grid;text-align:center;justify-items:center;gap:7px;padding:15px 5px 30px}
.student-badge>div{width:65px;height:65px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,var(--blue),#19bfff);font-size:27px;font-weight:bold}
.student-badge span{color:#58c7ff;font-weight:800}
.student-badge small{color:#9eb0c7}
.portal-layout aside nav{display:grid;gap:7px}
.portal-layout aside button{border:0;background:transparent;color:#b9c8dc;text-align:left;padding:13px;border-radius:8px;font-weight:700;cursor:pointer}
.portal-layout aside button[data-tab="openings"]{display:flex;align-items:center;justify-content:space-between;gap:8px}
.nav-count{min-width:22px;height:22px;padding:0 6px;border-radius:99px;display:inline-grid;place-items:center;background:#087cf0;color:#fff;font-size:10px}
.portal-layout aside button.active,.portal-layout aside button:hover{background:#ffffff14;color:#fff}
.portal-layout>main{padding:45px;width:min(1050px,100%)}
.portal-tab{display:none}
.portal-tab.active{display:block}
.portal-tab h1{font-size:40px;margin:8px 0}
.lead{color:var(--muted)}
.summary-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:28px 0}
.summary-grid>div{background:#fff;border:1px solid var(--line);border-radius:14px;padding:20px;display:grid;gap:9px}
.summary-grid span,.profile-grid span{color:var(--muted);font-size:11px;text-transform:uppercase}
.summary-grid b{font-size:23px}
.green b{color:#087a49}
.red b{color:#bd2c2c}
.next-due{background:linear-gradient(110deg,#052b5d,#087cf0);color:#fff;border-radius:18px;padding:26px;display:flex;justify-content:space-between;align-items:center}
.next-due.overdue{background:linear-gradient(110deg,#6d1212,#d54141)}
.next-due h2,.next-due p{margin:6px 0}
.next-due>b{font-size:32px}
.paid-banner{padding:25px;background:#e9fff3;color:#087a49;border-radius:14px;font-weight:bold}
.schedule-list,.history,.content-list{display:grid;gap:10px;margin:25px 0}
.schedule-list article,.history p,.content-list article{display:flex;justify-content:space-between;align-items:center;background:#fff;border:1px solid var(--line);border-radius:12px;padding:17px}
.schedule-list article span,.schedule-list article b,.history span{display:grid;gap:5px}
.schedule-list small,.history small,.content-list small{color:var(--muted);font-size:11px}
.schedule-list article.overdue{border-color:#e89898;background:#fff8f8}
.schedule-list article.paid{border-color:#94d9b8}
.empty{background:#fff;border:1px dashed #b8c8da;border-radius:17px;padding:50px;text-align:center;margin-top:25px}
.empty p{color:var(--muted)}
.content-list article h3,.content-list article p{margin:5px 0}
.content-list article a{background:var(--blue);color:#fff;padding:10px 15px;border-radius:25px;font-weight:bold}
.profile-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:25px 0}
.profile-grid div{display:grid;gap:7px;background:#fff;border:1px solid var(--line);padding:17px;border-radius:11px}
.password-form{max-width:450px;background:#fff;border:1px solid var(--line);padding:24px;border-radius:15px}
.student-photo{width:72px;height:72px;border-radius:50%;object-fit:cover;border:3px solid #ffffff38}
@media(max-width:800px){.topbar{padding:0 15px}
.topbar>div span{display:none}
.portal-layout{grid-template-columns:1fr}
.portal-layout>aside{padding:15px}
.student-badge{display:none}
.portal-layout aside nav{grid-template-columns:repeat(6,minmax(92px,1fr));overflow:auto}
.portal-layout aside button{text-align:center;font-size:11px;padding:10px}
.portal-layout>main{padding:28px 16px}
.summary-grid{grid-template-columns:1fr 1fr}
.profile-grid{grid-template-columns:1fr}
.portal-tab h1{font-size:31px}
}
.student-subject-tabs{display:flex;gap:8px;overflow:auto;padding-bottom:10px}.student-subject-tabs button{flex:0 0 auto;display:grid;gap:4px;text-align:left;background:#fff;color:#253a54;border:1px solid #dae5f1;padding:10px 13px;border-radius:9px}.student-subject-tabs button small{color:#718096}.student-subject-tabs button.active{background:#087cf0;color:#fff;border-color:#087cf0}.student-subject-tabs button.active small{color:#d9edff}.student-subject-panel{display:none;background:#fff;border:1px solid #dce7f3;border-radius:12px;overflow:hidden}.student-subject-panel.active{display:block}.student-subject-panel>header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;background:#f8fbff}.student-subject-panel header small{color:#087cf0;text-transform:uppercase;font-size:9px;font-weight:800}.student-subject-panel header h2{margin:3px 0}.student-subject-panel header>b{color:#087cf0;font-size:12px}
.student-topic-table thead th{position:sticky;top:0;z-index:1}.student-topic-table tbody tr:nth-child(even){background:#fafcff}.student-topic-table tbody tr.completed:nth-child(even){background:#ecf9f4}.student-topic-table td:first-child{min-width:280px}.student-topic-table td:nth-child(2){min-width:130px}.student-topic-table-wrap{max-height:520px;overflow:auto}
.opening-table-wrap{overflow:auto;margin-top:25px;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:0 12px 35px #0829570a}.opening-table{width:100%;border-collapse:collapse;min-width:850px}.opening-table th,.opening-table td{padding:16px;text-align:left;border-bottom:1px solid #e5edf5;vertical-align:top}.opening-table th{background:#f7faff;color:#65758b;font-size:10px;text-transform:uppercase;letter-spacing:.7px;position:sticky;top:0}.opening-table tbody tr:last-child td{border-bottom:0}.opening-table tbody tr:hover{background:#f8fbff}.opening-table td:nth-child(2){min-width:360px}.opening-table td:nth-child(2) strong{display:block;color:#10243f;margin-bottom:7px}.opening-table td:nth-child(2) small{display:block;color:var(--muted);line-height:1.5;max-width:560px}.opening-source,.opening-category{display:inline-block;border-radius:99px;padding:6px 9px;font-size:10px;font-weight:800;white-space:nowrap}.opening-source{background:#e8f3ff;color:#087cf0}.opening-category{background:#edf9f5;color:#087a64}.opening-link{display:inline-block;background:#087cf0;color:#fff;border-radius:99px;padding:9px 12px;font-size:11px;font-weight:800;white-space:nowrap}

#study table{width:100%;border-collapse:collapse;background:white}#study th,#study td{text-align:left;padding:18px;border-bottom:1px solid #e3e9f1}.study-button{display:inline-block;background:#086fdb;color:white;padding:10px 16px;border-radius:7px;text-decoration:none}

.assignment-table{width:100%;border-collapse:collapse;background:white}.assignment-table th,.assignment-table td{padding:16px;text-align:left;border-bottom:1px solid #e3e9f1;vertical-align:top}.assignment-table tbody tr:nth-child(even){background:#f7faff}
