:root {
    --ms-navy: #10233f;
    --ms-navy-2: #183257;
    --ms-accent: #2f80ed;
    --ms-bg: #f4f6fa;
}

body { font-family: 'IBM Plex Sans', system-ui, sans-serif; background: var(--ms-bg); color: #15202b; }

.ms-sidebar { width: 240px; background: linear-gradient(180deg, var(--ms-navy), var(--ms-navy-2)); color: #fff; min-height: 100vh; }
.ms-brand { display: flex; align-items: center; gap: .6rem; padding: 1.1rem 1rem; font-weight: 700; font-size: 1.1rem; }
.ms-brand-mark { width: 36px; height: 36px; border-radius: 10px; background: var(--ms-accent); display: inline-flex; align-items: center; justify-content: center; }
.ms-sidebar .nav-link { color: rgba(255,255,255,.75); border-radius: 8px; padding: .55rem .75rem; }
.ms-sidebar .nav-link:hover { color: #fff; background: rgba(255,255,255,.08); }
.ms-sidebar .nav-link.active { color: #fff; background: rgba(47,128,237,.35); }
.ms-sidebar .ms-secao { font-size: .68rem; letter-spacing: .08em; text-transform: uppercase; color: rgba(255,255,255,.45); padding: .9rem .75rem .3rem; }

.ms-topbar { background: #fff; border-bottom: 1px solid #e5e9f0; padding: .6rem 1.25rem; display: flex; align-items: center; justify-content: space-between; }
.ms-page-title { font-weight: 700; }
.ms-empty { padding: 2.5rem 1rem; text-align: center; color: #6c757d; }
.ms-kpi { font-size: 1.7rem; font-weight: 700; }
.ms-kpi-label { font-size: .75rem; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; color: #6c757d; }
.ms-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .85rem; word-break: break-all; }
.ms-qr { width: 220px; height: 220px; image-rendering: pixelated; border: 1px solid #e5e9f0; border-radius: 8px; background: #fff; }
.table > :not(caption) > * > * { padding: .6rem .75rem; }
tr[role=button] { cursor: pointer; }

/* Login */
.ms-login { min-height: 100vh; display: flex; align-items: center; justify-content: center; background: linear-gradient(135deg, var(--ms-navy), #1e4d8f); padding: 1rem; }
.ms-login .card { width: 100%; max-width: 400px; border: 0; border-radius: 18px; }

/* Documento do contrato (tela e impressão) */
.ms-documento { background: #fff; max-width: 820px; margin: 0 auto; padding: 56px 64px; box-shadow: 0 4px 24px rgba(16,35,63,.08); line-height: 1.6; font-size: .98rem; }
.ms-documento h2 { font-size: 1.2rem; text-align: center; margin-bottom: 1.5rem; }
.ms-documento h3 { font-size: 1rem; margin-top: 1.4rem; }
.ms-documento p { text-align: justify; margin-bottom: .7rem; }

@media print {
    .ms-sidebar, .ms-topbar, .ms-no-print { display: none !important; }
    body { background: #fff; }
    .ms-documento { box-shadow: none; padding: 0; max-width: none; }
}
