:root { --brand: #1f3a5f; --brand-2: #2d5a8c; }
body { background: #f4f6f9; font-size: .9rem; }
.bg-brand { background: var(--brand) !important; }
.btn-brand { background: var(--brand); color: #fff; border: 0; }
.btn-brand:hover, .btn-brand:focus { background: var(--brand-2); color: #fff; }
.login-bg { background: linear-gradient(135deg, #1f3a5f, #2d5a8c); }
.sidebar { background: var(--brand) !important; color: #fff; --bs-offcanvas-bg: var(--brand); --bs-offcanvas-color: #fff; }
@media (min-width: 992px) { .sidebar { width: 240px; min-height: 100vh; position: sticky; top: 0; display: flex; flex-direction: column; flex-shrink: 0; } }
.sidebar .brand { padding: 16px; border-bottom: 1px solid rgba(255,255,255,.15); }
.logo-box { background: #fff; border-radius: 8px; padding: 8px 10px; text-align: center; }
.logo-box img { max-width: 100%; max-height: 52px; }
.sidebar .nav-link { color: rgba(255,255,255,.82); border-radius: 6px; padding: .5rem .8rem; }
.sidebar .nav-link i { margin-right: .45rem; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar .nav-link.active { background: rgba(255,255,255,.17); color: #fff; font-weight: 600; }
.main { min-width: 0; }
.card { border-color: #e4e7ec; }
.card-header { background: #fff; font-weight: 600; }
.kpi { border: 0; border-left: 4px solid var(--brand); }
.kpi .val { font-size: 1.5rem; font-weight: 700; }
.kpi.ok { border-left-color: #12b76a; } .kpi.warn { border-left-color: #f79009; } .kpi.err { border-left-color: #d92d20; }
.table th { font-weight: 600; color: #475467; white-space: nowrap; font-size: .82rem; }
tr[data-href] { cursor: pointer; }
pre.log { background: #101828; color: #e4e7ec; padding: 12px; border-radius: 6px; font-size: .76rem; white-space: pre-wrap; max-height: 480px; overflow: auto; }
.mono { font-family: Consolas, ui-monospace, monospace; font-size: .8rem; word-break: break-all; }
.dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 6px; }
.dot.online { background: #12b76a; } .dot.late { background: #f79009; } .dot.offline { background: #d92d20; } .dot.pending { background: #98a2b3; }
.enroll-code { font-family: Consolas, monospace; font-size: 1.8rem; font-weight: 700; letter-spacing: .1em; color: var(--brand); }
.form-label { font-weight: 500; font-size: .84rem; margin-bottom: .25rem; }
@media print { .sidebar, .navbar, .no-print, form { display: none !important; } .main { padding: 0 !important; } body { background: #fff; } }
