:root{--green:#087c46;--green2:#0b9b57;--lime:#86d400;--gold:#e3b635;--blue:#1b65a7;--ink:#18232f;--muted:#6e7b88;--bg:#f5f8f7;--card:#fff;--border:#e4ece8;--danger:#d94d4d;--sidebar:280px}
*{box-sizing:border-box}body{margin:0;font-family:Manrope,Arial,sans-serif;color:var(--ink);background:var(--bg)}a{text-decoration:none;color:inherit}.sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar);background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;z-index:30;box-shadow:12px 0 30px rgba(24,35,47,.05)}.brand{height:86px;display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--border)}.brand img{width:58px;height:58px;object-fit:contain}.brand strong{display:block;color:var(--green);font-size:19px}.brand span{font-size:11px;color:var(--muted)}.profile-card{margin:16px;display:flex;align-items:center;gap:12px;padding:13px;border-radius:14px;background:linear-gradient(135deg,#edf8f2,#f7fbf9)}.avatar{width:42px;height:42px;border-radius:12px;background:var(--green);color:#fff;display:grid;place-items:center}.profile-card b,.profile-card small{display:block}.profile-card small{font-size:11px;color:var(--muted)}.nav-menu{padding:0 12px 15px;overflow:auto;flex:1}.nav-menu p{font-size:10px;text-transform:uppercase;letter-spacing:1.3px;color:#99a4ad;margin:14px 12px 7px;font-weight:800}.nav-menu a{display:flex;align-items:center;gap:13px;padding:11px 13px;border-radius:11px;margin:3px 0;color:#53606c;font-weight:700;font-size:14px}.nav-menu a i{width:22px;text-align:center;color:var(--green)}.nav-menu a:hover{background:#f1f8f4;color:var(--green)}.nav-menu a.active{background:linear-gradient(135deg,var(--green),var(--green2));color:#fff;box-shadow:0 8px 18px rgba(8,124,70,.22)}.nav-menu a.active i{color:#fff}.logout{margin:12px;padding:13px;border-radius:11px;background:#fff3f3;color:var(--danger);font-weight:800;text-align:center}.app-shell{margin-left:var(--sidebar);min-height:100vh}.topbar{height:86px;background:rgba(255,255,255,.94);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;padding:0 28px;position:sticky;top:0;z-index:20}.topbar-left{display:flex;align-items:center;gap:15px}.topbar h1{font-size:22px;margin:0}.topbar p{margin:4px 0 0;color:var(--muted);font-size:12px}.icon-btn,.top-actions a{width:42px;height:42px;border-radius:12px;border:1px solid var(--border);background:#fff;display:inline-grid;place-items:center;color:var(--green);position:relative}.top-actions{display:flex;gap:9px}.dot{position:absolute;width:7px;height:7px;background:#e54848;border-radius:50%;right:9px;top:8px}.content{padding:28px}.grid{display:grid;gap:18px}.stats{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:var(--card);border:1px solid var(--border);border-radius:16px;padding:20px;box-shadow:0 8px 26px rgba(28,46,38,.05)}.stat{display:flex;align-items:center;gap:15px}.stat-icon{width:52px;height:52px;border-radius:15px;display:grid;place-items:center;font-size:21px;background:#ebf8f1;color:var(--green)}.stat h3{margin:0;font-size:24px}.stat p{margin:4px 0 0;color:var(--muted);font-size:12px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.section-head h2{margin:0;font-size:18px}.btn{border:0;border-radius:10px;padding:10px 14px;font-weight:800;display:inline-flex;gap:8px;align-items:center;cursor:pointer}.btn-primary{background:var(--green);color:#fff}.btn-light{background:#eef5f1;color:var(--green)}.table-wrap{overflow:auto}.table{width:100%;border-collapse:collapse}.table th,.table td{padding:12px 10px;border-bottom:1px solid var(--border);text-align:left;font-size:13px}.table th{font-size:11px;text-transform:uppercase;color:var(--muted)}.badge{display:inline-block;padding:5px 9px;border-radius:999px;font-size:11px;font-weight:800;background:#eaf7ef;color:var(--green)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.field label{display:block;font-size:12px;font-weight:800;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:11px 12px;border:1px solid #dce6e1;border-radius:10px;background:#fff;font:inherit}.field textarea{min-height:90px}.span-2{grid-column:span 2}.module-hero{background:linear-gradient(120deg,var(--green),#0ca45d);color:#fff;border-radius:18px;padding:24px;display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;overflow:hidden;position:relative}.module-hero:after{content:'🎓';font-size:90px;opacity:.15;position:absolute;right:25px}.module-hero h2{margin:0 0 5px}.module-hero p{margin:0;opacity:.86}.app-footer{margin-left:var(--sidebar);padding:18px 28px;color:var(--muted);font-size:12px}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#eff8f2,#fff)}.login-card{width:min(930px,94vw);display:grid;grid-template-columns:1.1fr .9fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 30px 70px rgba(7,72,39,.14)}.login-brand{padding:50px;background:linear-gradient(145deg,var(--green),#0fa45f);color:#fff;display:flex;flex-direction:column;justify-content:center}.login-brand img{width:180px;filter:drop-shadow(0 10px 16px rgba(0,0,0,.12));margin-bottom:20px}.login-form{padding:50px}.sidebar-overlay{display:none}.mobile-only{display:none}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:850px){.sidebar{transform:translateX(-100%);transition:.25s}.sidebar.show{transform:none}.app-shell,.app-footer{margin-left:0}.content{padding:18px}.topbar{padding:0 16px}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(0,0,0,.35);z-index:25}.mobile-only{display:grid}.login-card{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:620px){.stats,.form-grid{grid-template-columns:1fr}.span-2{grid-column:span 1}.top-actions a:nth-child(-n+2){display:none}.module-hero{padding:20px}.content{padding:14px}}
@media print{.sidebar,.topbar,.app-footer,.no-print{display:none!important}.app-shell{margin:0}.content{padding:0}}

.notice{padding:12px 14px;border-radius:10px;margin:12px 0}.notice.success{background:#eaf7ef;color:#087c46}.notice.error{background:#fff0f0;color:#b33}textarea{width:100%;border:1px solid var(--border);border-radius:10px;padding:12px;font:inherit;resize:vertical}
