:root { --bls: #0d4fa3; --bls-escuro: #0b2545; }
body { background: #f3f5f9; font-size: .925rem; }
.sidebar { width: 230px; min-height: 100vh; background: var(--bls-escuro); color: #fff; position: sticky; top: 0; height: 100vh; }
.sidebar .marca { color: #fff; font-size: 1.25rem; }
.sidebar .nav-link { color: rgba(255,255,255,.75); border-radius: .4rem; padding: .45rem .7rem; }
.sidebar .nav-link i { width: 1.4rem; display: inline-block; }
.sidebar .nav-link:hover { background: rgba(255,255,255,.08); color: #fff; }
.sidebar .nav-link.ativo { background: var(--bls); color: #fff; }
.conteudo { min-width: 0; }
.card { border: 0; box-shadow: 0 1px 3px rgba(16,24,40,.08); }
.kpi .valor { font-size: 1.9rem; font-weight: 600; line-height: 1.1; }
.kpi .rotulo { color: #6b7280; font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; }
.kpi i { font-size: 1.6rem; opacity: .35; }
.table > :not(caption) > * > * { padding: .5rem .6rem; }
.table thead th { font-size: .75rem; text-transform: uppercase; color: #6b7280; font-weight: 600; }
.dot { width: .6rem; height: .6rem; border-radius: 50%; display: inline-block; }
.dot.on { background: #16a34a; } .dot.off { background: #dc2626; } .dot.na { background: #9ca3af; }
.timeline .item { border-left: 2px solid #dbe1ea; padding: 0 0 1rem 1rem; position: relative; }
.timeline .item::before { content: ""; position: absolute; left: -6px; top: 4px; width: 10px; height: 10px; border-radius: 50%; background: var(--bls); }
.timeline .item.status::before { background: #9ca3af; }
.login-box { max-width: 380px; margin: 10vh auto; }
.progress { height: .6rem; }
code.token { user-select: all; }
