:root{
  --red:#C4122F; --red-dark:#A50F27;
  --blue:#1F72B8; --navy:#13293D;
  --ink:#1A2A33; --muted:#5A6B72; --line:#E1E7EB; --bg:#F4F6F8;
}
*{ box-sizing:border-box; }
body{ margin:0; font-family:'Segoe UI',system-ui,Arial,sans-serif; background:var(--bg); color:var(--ink); }

/* ---------- Layout ---------- */
.eduos-shell{ display:flex; min-height:100vh; }
.sidebar{ width:250px; background:var(--navy); color:#fff; flex:none; display:flex; flex-direction:column; position:sticky; top:0; height:100vh; }
.sidebar .brand{ padding:20px 18px; display:flex; align-items:center; gap:11px; border-bottom:1px solid rgba(255,255,255,.08); }
.sidebar .brand .logo{ width:38px; height:38px; border-radius:50%; background:#fff; color:var(--red); font-weight:800; display:flex; align-items:center; justify-content:center; font-size:20px; }
.sidebar .brand b{ font-size:19px; letter-spacing:.5px; }
.sidebar .brand span{ display:block; font-size:10px; color:#9db3c4; letter-spacing:1px; }
.sidebar nav{ padding:12px 10px; overflow-y:auto; flex:1; }
.sidebar .nav-group{ font-size:10.5px; text-transform:uppercase; letter-spacing:1px; color:#7f97a8; margin:16px 12px 6px; }
.sidebar a.item{ display:flex; align-items:center; gap:11px; padding:10px 12px; border-radius:8px; color:#cdd9e2; text-decoration:none; font-size:14px; margin-bottom:2px; }
.sidebar a.item:hover{ background:rgba(255,255,255,.07); color:#fff; }
.sidebar a.item.active{ background:var(--blue); color:#fff; font-weight:600; }
.sidebar a.item .ico{ width:18px; text-align:center; opacity:.9; }

.main{ flex:1; display:flex; flex-direction:column; min-width:0; }
.topbar{ background:#fff; border-bottom:1px solid var(--line); padding:14px 26px; display:flex; align-items:center; justify-content:space-between; }
.topbar .page-title{ font-size:20px; font-weight:700; color:var(--ink); }
.topbar .user{ display:flex; align-items:center; gap:12px; font-size:13px; color:var(--muted); }
.topbar .user .av{ width:36px; height:36px; border-radius:50%; background:var(--blue); color:#fff; display:flex; align-items:center; justify-content:center; font-weight:700; }
.topbar .badge-estab{ background:#EAF1F8; color:var(--blue); border:1px solid #cfe0f0; padding:4px 11px; border-radius:20px; font-weight:600; font-size:12px; }
.content{ padding:26px; }

/* ---------- Cards / KPIs ---------- */
.kpi-row{ display:grid; grid-template-columns:repeat(5,1fr); gap:16px; margin-bottom:22px; }
.kpi{ background:#fff; border:1px solid var(--line); border-radius:12px; padding:18px; }
.kpi .n{ font-size:30px; font-weight:800; color:var(--blue); line-height:1; }
.kpi .k{ font-size:12.5px; color:var(--muted); margin-top:7px; }
.kpi.red .n{ color:var(--red); }

.card-eduos{ background:#fff; border:1px solid var(--line); border-radius:12px; }
.card-eduos .hd{ padding:15px 18px; border-bottom:1px solid var(--line); display:flex; align-items:center; justify-content:space-between; }
.card-eduos .hd h2{ font-size:15px; margin:0; font-weight:700; }
.card-eduos .bd{ padding:6px 18px 14px; }

/* ---------- Tables ---------- */
table.tbl{ width:100%; border-collapse:collapse; }
table.tbl th{ text-align:left; font-size:11.5px; text-transform:uppercase; letter-spacing:.4px; color:var(--muted); padding:11px 10px; border-bottom:2px solid var(--line); }
table.tbl td{ padding:11px 10px; border-bottom:1px solid #EEF1F4; font-size:14px; }
table.tbl tr:hover td{ background:#FAFBFC; }

/* ---------- Pills / buttons ---------- */
.pill{ display:inline-block; padding:3px 10px; border-radius:20px; font-size:11.5px; font-weight:700; }
.pill.green{ background:#E7F4EC; color:#1E7D46; }
.pill.grey{ background:#EEF1F4; color:var(--muted); }
.pill.blue{ background:#EAF1F8; color:var(--blue); }
.btn-eduos{ background:var(--red); border:0; color:#fff; padding:9px 16px; border-radius:8px; font-weight:600; font-size:14px; text-decoration:none; display:inline-flex; align-items:center; gap:7px; cursor:pointer; }
.btn-eduos:hover{ background:var(--red-dark); color:#fff; }
.btn-ghost{ background:#fff; border:1.5px solid var(--blue); color:var(--blue); padding:8px 15px; border-radius:8px; font-weight:600; text-decoration:none; font-size:13.5px; cursor:pointer; }
.btn-ghost:hover{ background:#EAF1F8; }
.btn-sm{ padding:5px 11px; font-size:12.5px; border-radius:7px; }
.btn-link-danger{ background:none; border:0; color:var(--red); cursor:pointer; font-size:12.5px; font-weight:600; }

/* ---------- Forms ---------- */
.form-eduos label{ display:block; font-size:12.5px; font-weight:600; color:var(--ink); margin:14px 0 5px; }
.form-eduos input, .form-eduos select{ width:100%; padding:9px 12px; border:1px solid #C9D3D9; border-radius:8px; font-size:14px; font-family:inherit; }
.form-eduos input:focus, .form-eduos select:focus{ outline:none; border-color:var(--blue); box-shadow:0 0 0 3px rgba(31,114,184,.12); }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-actions{ margin-top:22px; display:flex; gap:12px; }
.help{ font-size:12px; color:var(--muted); margin-top:4px; }

/* ---------- Alerts ---------- */
.alert{ padding:12px 16px; border-radius:9px; margin-bottom:16px; font-size:14px; }
.alert.success{ background:#E7F4EC; color:#1E7D46; border:1px solid #bfe3cd; }
.alert.danger{ background:#FBE9EC; color:var(--red); border:1px solid #f2c6cf; }

/* ---------- Login ---------- */
.login-wrap{ min-height:100vh; display:flex; align-items:center; justify-content:center; background:linear-gradient(135deg,#13293D 0%,#1B3A55 100%); padding:20px; }
.login-card{ background:#fff; border-radius:16px; width:100%; max-width:400px; padding:34px 32px; box-shadow:0 20px 50px rgba(0,0,0,.3); }
.login-card .logo{ width:60px; height:60px; border-radius:50%; border:2px solid var(--red); color:var(--red); font-weight:800; font-size:26px; display:flex; align-items:center; justify-content:center; margin:0 auto 14px; }
.login-card h1{ text-align:center; font-size:24px; margin:0 0 2px; }
.login-card .sub{ text-align:center; color:var(--muted); font-size:13px; margin-bottom:22px; }
.login-card .demo{ margin-top:18px; font-size:12px; color:var(--muted); background:#F4F6F8; border-radius:8px; padding:11px 13px; }
.page-actions{ display:flex; justify-content:space-between; align-items:center; margin-bottom:18px; }
.empty{ text-align:center; color:var(--muted); padding:30px; font-size:14px; }
@media(max-width:900px){ .kpi-row{ grid-template-columns:repeat(2,1fr); } .form-row{ grid-template-columns:1fr; } .sidebar{ display:none; } }
