:root{
  --pri:#4f46e5; --pri-d:#4338ca; --bg:#f1f4f9; --card:#fff; --side:#1e2433; --side-2:#161b27;
  --txt:#1f2937; --muted:#6b7280; --line:#e5e7eb;
}
*{box-sizing:border-box}
body.lms-admin{margin:0;background:var(--bg);color:var(--txt);font-family:'Segoe UI',system-ui,Arial,sans-serif}
.lms-wrap{display:flex;min-height:100vh}
.lms-sidebar{width:248px;background:linear-gradient(180deg,var(--side),var(--side-2));color:#cbd5e1;position:fixed;inset:0 auto 0 0;z-index:1040;display:flex;flex-direction:column;transition:.25s}
.lms-sidebar .brand{padding:18px 20px;font-weight:700;font-size:1.05rem;color:#fff;display:flex;gap:10px;align-items:center;border-bottom:1px solid rgba(255,255,255,.07)}
.lms-sidebar .brand i{color:#a5b4fc}
.lms-sidebar .menu{padding:12px 10px;overflow-y:auto}
.lms-sidebar .menu a{display:flex;align-items:center;gap:12px;padding:11px 14px;color:#cbd5e1;text-decoration:none;border-radius:10px;margin-bottom:3px;font-size:.93rem;transition:.15s}
.lms-sidebar .menu a:hover{background:rgba(255,255,255,.06);color:#fff}
.lms-sidebar .menu a.active{background:var(--pri);color:#fff;box-shadow:0 6px 16px -6px var(--pri)}
.lms-sidebar .menu a i{font-size:1.05rem;width:20px;text-align:center}
.lms-main{flex:1;margin-left:248px;display:flex;flex-direction:column;min-width:0}
.lms-topbar{background:var(--card);height:62px;display:flex;align-items:center;gap:14px;padding:0 22px;position:sticky;top:0;z-index:1030;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.lms-content{padding:22px;flex:1}
.noti-dot{position:absolute;top:-2px;right:-3px;width:9px;height:9px;background:#ef4444;border-radius:50%}
.noti-list{max-height:340px;overflow-y:auto}
.noti-list .item{padding:10px 14px;border-bottom:1px solid var(--line);font-size:.85rem}
.noti-list .item.unread{background:#eef2ff}
.card{border:none;border-radius:14px;box-shadow:0 1px 4px rgba(16,24,40,.06)}
.stat-card{border-radius:14px;padding:18px;background:var(--card);display:flex;align-items:center;gap:16px;height:100%}
.stat-card .ic{width:52px;height:52px;border-radius:12px;display:grid;place-items:center;font-size:1.5rem;color:#fff;flex-shrink:0}
.stat-card .n{font-size:1.6rem;font-weight:700;line-height:1}
.stat-card .l{color:var(--muted);font-size:.82rem}
.btn-primary{background:var(--pri);border-color:var(--pri)}
.btn-primary:hover{background:var(--pri-d);border-color:var(--pri-d)}
.text-primary{color:var(--pri)!important}
a{color:var(--pri)}
.progress{height:8px;border-radius:20px;background:#e9edf5}
.progress-bar{background:var(--pri)}
.course-card .thumb{height:150px;background:#dfe5ef center/cover;border-radius:14px 14px 0 0}
.course-card{overflow:hidden;transition:.18s}
.course-card:hover{transform:translateY(-4px);box-shadow:0 10px 26px -10px rgba(16,24,40,.25)}
.chat-box{height:62vh;overflow-y:auto;background:#f7f9fc;border-radius:12px;padding:14px}
.msg{max-width:72%;padding:8px 13px;border-radius:14px;margin-bottom:9px;font-size:.9rem;clear:both}
.msg.in{background:#fff;border:1px solid var(--line);float:left;border-bottom-left-radius:4px}
.msg.out{background:var(--pri);color:#fff;float:right;border-bottom-right-radius:4px}
.msg .t{display:block;font-size:.68rem;opacity:.7;margin-top:3px}
.chat-users a{display:flex;gap:10px;align-items:center;padding:10px;border-radius:10px;text-decoration:none;color:var(--txt)}
.chat-users a.active,.chat-users a:hover{background:#eef2ff}
.auth-wrap{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#4f46e5,#7c3aed);padding:20px}
.auth-card{background:#fff;border-radius:18px;max-width:420px;width:100%;padding:34px;box-shadow:0 20px 60px -20px rgba(0,0,0,.4)}
@media(max-width:991px){
  .lms-sidebar{transform:translateX(-100%)}
  .lms-sidebar.show{transform:none}
  .lms-main{margin-left:0}
}
@media print{ .no-print{display:none!important} .lms-sidebar,.lms-topbar{display:none!important} .lms-main{margin:0} .lms-content{padding:0} }
