* { font-family: 'DM Sans', -apple-system, sans-serif; }
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4 { font-family: 'Outfit', 'DM Sans', sans-serif; }

html { font-size: 15px; }

body {
    min-height: 100vh;
    background:
        radial-gradient(circle at top right, var(--s-body-top), transparent 30%),
        linear-gradient(180deg, var(--s-bg) 0%, var(--s-body-bottom) 100%);
    color: var(--s-text);
    -webkit-font-smoothing: antialiased;
}

/* Navbar */
.navbar {
    background: var(--s-nav-bg) !important;
    border-bottom: 1px solid var(--s-border-light);
    padding: .6rem 0;
    backdrop-filter: blur(10px);
    position: relative;
    z-index: 1100;
}
html[data-theme="light"] .navbar { box-shadow: 0 1px 0 rgba(15,23,42,.04); }
.navbar-brand {
    font-weight: 600;
    letter-spacing: -.02em;
    color: var(--s-nav-accent) !important;
    font-size: 1.15rem;
}
.navbar-brand i { opacity: .7; }
.navbar-brand .logo { height: 26px; width: auto; display: block; }
.navbar-brand .logo-claro { display: none; }
html[data-theme="light"] .navbar-brand .logo-escuro { display: none; }
html[data-theme="light"] .navbar-brand .logo-claro { display: block; }
.navbar .nav-link {
    color: var(--s-nav-link) !important;
    font-size: .85rem;
    font-weight: 450;
    padding: .4rem .75rem !important;
    border-radius: var(--s-radius-sm);
    transition: var(--s-transition);
    letter-spacing: -.01em;
}
.navbar .nav-link:hover,
.navbar .nav-link:focus-visible,
.navbar .nav-link.active {
    color: var(--s-nav-link-active) !important;
    background: var(--s-nav-link-hover-bg);
}
.navbar .nav-link:focus-visible {
    box-shadow: 0 0 0 3px var(--s-focus-ring);
    outline: 0;
}
.navbar .dropdown-menu {
    background: var(--s-surface);
    border: 1px solid var(--s-border);
    border-radius: var(--s-radius);
    box-shadow: var(--s-shadow-lg);
    padding: .35rem;
    margin-top: .5rem;
}
.navbar .dropdown-item {
    border-radius: var(--s-radius-sm);
    font-size: .85rem;
    padding: .45rem .75rem;
    color: var(--s-text);
}
.navbar .dropdown-item:hover { background: var(--s-bg); }

/* Badge de papel */
.role-badge {
    background: var(--s-info-light);
    color: var(--s-info);
    border: 1px solid var(--s-info);
    font-size: .62rem;
    letter-spacing: .06em;
}

/* Main */
main.container-fluid { max-width: 1680px; margin: 0 auto; padding: 1.5rem 2rem; }

/* Headings: Outfit fina, como no site tracktonica.com */
h1, h2, h3, h4, h5, .h1, .h2, .h3, .h4, .h5 {
    font-family: 'Outfit', 'DM Sans', sans-serif;
    font-weight: 300;
    letter-spacing: -.02em;
    color: var(--s-text);
}
h1, .h1 { font-size: 2.5rem; }
h2, .h2 { font-size: 1.75rem; }
h3, .h3, h4, .h4 { font-size: 1.25rem; font-weight: 400; }
h5, .h5 { font-size: 1.05rem; font-weight: 400; }

/* Sobretítulo (eyebrow) do site: Outfit 11px, caixa alta, espaçamento 1.98px, na cor de destaque. */
.sobretitulo {
    font-family: 'Outfit', 'DM Sans', sans-serif;
    color: var(--s-accent);
    text-transform: uppercase;
    letter-spacing: 1.98px;
    font-size: 11px;
    font-weight: 500;
    margin-bottom: .5rem;
}

/* Links */
a { color: var(--s-accent); }
a:hover { color: var(--s-accent-hover); }
a:focus-visible {
    outline: 2px solid var(--s-accent);
    outline-offset: 2px;
    border-radius: 3px;
}

/* Text utilities */
.text-muted { color: var(--s-text-muted) !important; }
.text-success { color: var(--s-success) !important; }
.text-danger { color: var(--s-danger) !important; }
.text-warning { color: var(--s-warning) !important; }

/* Scrollbar */
::-webkit-scrollbar { width: 6px; height: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: var(--s-text-muted); border-radius: 3px; }
::-webkit-scrollbar-thumb:hover { background: var(--s-text-secondary); }

/* Theme toggle */
.theme-toggle {
    display: inline-flex;
    align-items: center;
    gap: .45rem;
    white-space: nowrap;
}
.theme-toggle .theme-toggle-label { font-size: .8rem; }

.navbar-conteudo { max-width: 1480px; }

.em-construcao { min-height: 60vh; }
.em-construcao-icone { font-size: 3rem; color: var(--s-warning); }

/* Faixa global de alertas operacionais */
.faixa-alertas {
    display: flex;
    flex-wrap: wrap;
    gap: .5rem 1.5rem;
    padding: .45rem 2rem;
    background: var(--s-danger-light);
    border-bottom: 1px solid var(--s-danger);
    font-size: .82rem;
}
.faixa-alertas .alerta-critico { color: var(--s-danger); }
.faixa-alertas .alerta-aviso { color: var(--s-warning); }
