@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--forest:#1d5a36;--green:#e38736;--cream:#f5f5ef;--ink:#26362e;--muted:#828d85;--line:#e7eae5;--red:#aa4940}*{box-sizing:border-box}body{margin:0;font-family:'DM Sans',sans-serif;color:var(--ink);background:#f5f6f3;font-size:13px}a{color:inherit;text-decoration:none}button,input{font:inherit}.admin-brand{display:flex;align-items:center;color:var(--forest)}.admin-brand img{display:block;width:172px;height:auto;max-height:48px;object-fit:contain;object-position:left center}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(ellipse at 25% 25%,#e3eddf,transparent 35%),radial-gradient(ellipse at 85% 85%,#eee4cf,transparent 32%),#f7f6f0}.login-card{width:min(430px,calc(100% - 36px));background:#fff;padding:40px;border:1px solid #e8ebe5;border-radius:16px;box-shadow:0 24px 70px #193c3218}.login-icon{margin-top:38px;width:46px;height:46px;border-radius:13px;background:#edf2e9;color:#69805e;display:grid;place-items:center;font-size:24px}.login-card h1{font:30px 'Playfair Display',serif;color:var(--forest);margin:19px 0 5px}.login-card>p{margin:0 0 26px;color:var(--muted)}.login-card label,.form-grid label{display:block;font-weight:600;font-size:11px;color:#405047;margin:16px 0 7px}.login-card input,.form-grid input{width:100%;height:44px;border:1px solid var(--line);border-radius:6px;padding:0 12px;outline:none;color:var(--ink);background:#fff}.login-card input:focus,.form-grid input:focus{border-color:#88a084;box-shadow:0 0 0 3px #88a08420}.primary,.secondary,.cancel-btn,.page-btn{height:38px;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:6px;padding:0 14px;font-weight:600;font-size:12px;cursor:pointer}.primary{color:white;background:var(--forest);border:1px solid var(--forest)}.primary:hover{background:var(--green)}.primary.full{width:100%;margin-top:22px}.login-card .primary{height:47px;margin-top:23px}.login-card .primary span{margin-left:auto}.back-link{display:block;text-align:center;color:#7c8980;font-size:11px;margin:23px 0 0}.alert{padding:12px 15px;border-radius:7px;margin:0 0 18px;font-size:12px}.alert.error{background:#fbefed;color:#a44138;border:1px solid #f1d8d5}.alert.success{background:#edf6eb;color:#457244;border:1px solid #d8e9d4}.dashboard{min-height:100vh}.sidebar{width:238px;background:#fff;position:fixed;inset:0 auto 0 0;border-right:1px solid #e8ebe6;padding:25px 17px;display:flex;flex-direction:column;z-index:2}.sidebar .admin-brand{padding:0 9px 31px}.sidebar .admin-brand img{width:178px;max-width:100%}.side-label{font-size:9px;letter-spacing:1.4px;font-weight:700;color:#9aa39b;padding:0 11px 10px}.nav-link{height:42px;display:flex;align-items:center;gap:11px;padding:0 11px;color:#77847a;border-radius:6px;font-size:12px;margin-bottom:4px}.nav-link span{font-size:17px}.nav-link.active{background:#edf3eb;color:var(--forest);font-weight:600}.sidebar-bottom{margin-top:auto;border-top:1px solid var(--line);padding:17px 2px 0;display:flex;align-items:center;gap:9px}.avatar,.student-avatar{width:33px;height:33px;border-radius:50%;background:#e9eee5;color:#527351;display:grid;place-items:center;font-size:12px;font-weight:700}.admin-who{min-width:0;flex:1}.admin-who b,.admin-who small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.admin-who b{font-size:11px}.admin-who small{font-size:9px;color:#8b958d;margin-top:4px}.logout{color:#78857c;font-size:19px}.main{margin-left:238px;padding:36px 42px 30px;max-width:1600px}.page-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}.crumb{font-size:9px;letter-spacing:1.35px;color:#8d9990;font-weight:700}.crumb span{color:#c5cbc5;margin:0 6px}.page-top h1{font:31px 'Playfair Display',serif;color:var(--forest);margin:9px 0 5px}.page-top p{margin:0;color:#89948b;font-size:12px}.top-logout{display:none;color:#637269}.stat-card{height:87px;background:white;border:1px solid var(--line);border-radius:8px;margin-bottom:20px;padding:15px 19px;display:flex;align-items:center;gap:14px}.stat-icon{width:42px;height:42px;border-radius:9px;background:#edf3eb;color:#63815d;display:grid;place-items:center;font-size:21px}.stat-card small,.stat-card strong{display:block}.stat-card small{font-size:9px;color:#8e9990;letter-spacing:1px;font-weight:700}.stat-card strong{font-size:22px;color:var(--forest);margin-top:4px}.stat-tag{margin-left:auto;background:#f3f6f1;color:#6f866a;padding:7px 10px;border-radius:20px;font-size:10px}.table-card{background:white;border:1px solid var(--line);border-radius:8px;overflow:hidden}.table-heading{padding:19px 20px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line)}.table-heading h2{font-size:15px;color:#33453b;margin:0 0 5px}.table-heading p{font-size:10px;color:#949e96;margin:0}.toolbar{display:flex;align-items:center;gap:8px}.search-form{height:36px;border:1px solid var(--line);border-radius:6px;display:flex;align-items:center;padding:0 9px;color:#8c978e}.search-form input{border:0;outline:0;width:140px;font-size:11px}.search-form button{border:0;background:none;color:#64776b;font-weight:600;font-size:10px;cursor:pointer}.secondary{height:36px;border:1px solid #dfe5dc;background:#fff;color:#4b6252}.secondary:hover{background:#f5f8f3}.toolbar .primary{height:36px}.table-scroll{overflow-x:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}thead{background:#fafbf9}th{text-align:left;height:39px;padding:0 12px;color:#929c94;font-size:8px;letter-spacing:.8px;font-weight:700}td{height:59px;padding:7px 12px;border-top:1px solid #f0f2ef;color:#54645a;font-size:10px}th:first-child,td:first-child{padding-left:20px}.student-cell{display:flex;align-items:center;gap:9px;color:#35483b}.student-cell b{font-size:10px}.student-avatar{width:29px;height:29px;font-size:10px}.reg-code{font:10px ui-monospace,Consolas,monospace;color:#526d5a;background:#f5f7f3;padding:5px 7px;border-radius:4px}.course-cell{max-width:160px;overflow:hidden;text-overflow:ellipsis}.grade{font-size:10px;font-weight:700;color:#657f5c;background:#eff4ec;padding:5px 8px;border-radius:5px}.date-end{display:block;color:#9aa49c;margin-top:4px;font-size:9px}.right{text-align:right}.actions{display:flex;align-items:center;justify-content:flex-end;gap:11px;padding-right:17px}.actions>a,.actions button{color:#738278;font-size:14px}.actions>a:hover{color:var(--forest)}.actions form{display:inline-flex}.actions button{background:none;border:0;padding:0;cursor:pointer;color:#ae7169}.empty{text-align:center;color:#8a958d;padding:35px}.pagination{height:57px;border-top:1px solid #edf0ec;padding:0 18px;display:flex;justify-content:space-between;align-items:center;color:#879289;font-size:10px}.pagination>div{display:flex;align-items:center;gap:10px}.pagination b{color:#536258}.page-btn{height:29px;padding:0 9px;border:1px solid #e5e9e4;background:white;color:#65736a;font-size:9px}.page-btn.disabled{opacity:.45;pointer-events:none}.page-number{font-size:10px;color:#68766c}.import-note{font-size:10px;color:#99a29b;margin:13px 3px}.hidden{display:none}.modal-backdrop{position:fixed;inset:0;z-index:4;background:#122b2391;display:grid;place-items:center;padding:20px}.modal{position:relative;width:min(600px,100%);background:white;border-radius:12px;padding:30px 33px;box-shadow:0 25px 90px #132c2540;max-height:90vh;overflow:auto}.modal-close{position:absolute;right:20px;top:13px;color:#77857b;font-size:25px}.modal h2{font:25px 'Playfair Display',serif;color:var(--forest);margin:8px 0 20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 16px}.form-grid label{margin-top:11px}.form-grid input{display:block;margin-top:7px;height:40px;font-size:11px}.modal-hint{color:#919b93;font-size:10px;margin:14px 0}.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}.cancel-btn{border:1px solid var(--line);background:white;color:#647269}.view-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 20px;margin:10px 0 8px}.view-grid>div{padding:13px 0;border-bottom:1px solid #edf0ec}.view-grid small,.view-grid b{display:block}.view-grid small{font-size:9px;color:#98a198;text-transform:uppercase;letter-spacing:.8px;margin-bottom:6px}.view-grid b{font-size:12px;color:#405247}@media(max-width:1100px){.sidebar{width:205px}.main{margin-left:205px;padding:30px 24px}.table-heading{align-items:flex-start;flex-direction:column}.toolbar{width:100%;flex-wrap:wrap}.search-form{flex:1}.search-form input{width:100%;min-width:80px}}@media(max-width:720px){.sidebar{width:58px;padding:17px 8px}.sidebar .admin-brand{font-size:0;padding:0 4px 30px}.sidebar .admin-brand img{width:42px;max-width:42px;height:42px;object-fit:cover;object-position:left center}.side-label,.nav-link:not(.active){display:none}.nav-link{font-size:0;justify-content:center;padding:0}.nav-link span{font-size:18px}.sidebar-bottom{flex-direction:column}.admin-who,.logout{display:none}.main{margin-left:58px;padding:24px 14px}.page-top h1{font-size:26px}.page-top p{max-width:280px;line-height:1.5}.stat-tag{font-size:0}.stat-tag:first-letter{font-size:11px}.toolbar>*{flex:1}.toolbar .primary,.secondary{padding:0 9px;font-size:10px}.table-heading{padding:15px}.table-scroll table{min-width:900px}.pagination{padding:0 10px}.page-number{display:none}.modal{padding:27px 20px}.form-grid{grid-template-columns:1fr}.view-grid{grid-template-columns:1fr 1fr}}
.hidden{position:fixed;left:-10000px;width:1px;height:1px;opacity:0}

.logout{background:none;border:0;padding:0;cursor:pointer}.top-logout{background:none;border:0;padding:0;font:inherit;cursor:pointer}.logout-form,.top-logout-form{margin:0}
@media(max-width:720px){.sidebar .nav-link:not(.active)[href*='panel=security']{display:flex;font-size:0;justify-content:center;padding:0}}
