/* Identidade SP Terminais. Esta camada altera somente cores e sombras das telas existentes. */
:root {
    --brand-blue: #0f4586;
    --brand-sky: #238bcb;
    --brand-green: #8ab63f;
    --display-muted: rgba(255, 255, 255, 0.6);
    --display-sub: rgba(255, 255, 255, 0.8);
    --display-text: #ffffff;
    --display-border: rgba(255, 255, 255, 0.15);
    --bus-code: #00d2ff;
    --bus-green: #00ff88;
    --bus-yellow: #ffcc00;
    --bus-red: #ff3030;
    --bus-gray: #aaaaaa;
}
html[data-theme="light"] {
    --theme-neutral-surface: #ffffff;
    --admin-shadow: 0 8px 32px rgba(15, 69, 134, 0.08);
    --line-text-3: #b92b23;
    --line-text-4: #805300;
    --line-text-6: #ad4700;
    --line-text-8: #526158;
    --line-text-9: #006e66;
    --line-text-11: #af371b;
    --line-text-13: #007445;
    --line-text-15: #526579;
    --line-text-17: #805300;
    --bg-deep: #f2f5f8;
    --bg-gradient: none;
    --glass-bg: #ffffff;
    --glass-border: #d5e0eb;
    --card-shadow: 0 0.25rem 1rem rgba(15, 69, 134, 0.08);
    --white: #152c46;
    --accent: #0f4586;
    --text-muted: #526579;
    --panel-border: #d5e0eb;
    --accent-light: #0f4586;
    --green: #276b32;
    --red: #c52b37;
    --gold: #8a5a00;
    --dark-bg: #f2f5f8;
    --card-bg: #ffffff;
    --text-main: #152c46;
    --text-sub: #526579;
    --display-muted: #526579;
    --display-sub: #42586f;
    --display-text: #152c46;
    --display-border: #d5e0eb;
    --bus-code: #0f4586;
    --bus-green: #237238;
    --bus-yellow: #885800;
    --bus-red: #c02736;
    --bus-gray: #526579;
    --bg: #f2f5f8;
    --surface: #ffffff;
    --surface-hover: #edf4fa;
    --border: #d5e0eb;
    --text: #152c46;
    --error: #b42332;
    --admin-bg: #f2f5f8;
    --admin-surface: #ffffff;
    --admin-surface-hover: #edf4fa;
    --admin-border: #d5e0eb;
    --admin-border-hover: #aabed4;
    --admin-accent: #0f4586;
    --admin-accent-soft: #e7f1f9;
    --admin-text: #152c46;
    --admin-text-sub: #42586f;
    --admin-text-muted: #526579;
    --admin-success: #276b32;
    --admin-warning: #885800;
    --admin-danger: #b42332;
}
html[data-theme="light"],
html[data-theme="light"] body {
    background: var(--bg-deep);
    color: var(--display-text);
}
html[data-theme="light"] .header-container {
    background: #ffffff;
    border-bottom-color: var(--brand-green);
    box-shadow: 0 0.25rem 1rem rgba(15, 69, 134, 0.08);
}
html[data-theme="light"] .header-title,
html[data-theme="light"] .header-clock,
html[data-theme="light"] .clock-svg { color: var(--brand-blue); }
html[data-theme="light"] .line-card,
html[data-theme="light"] .carousel-column .line-card,
html[data-theme="light"] .highlight-card,
html[data-theme="light"] .highlight-card.all-normal {
    background: #ffffff;
    box-shadow: var(--card-shadow) !important;
}
html[data-theme="light"] .dashboard-layout.mode-with-problems .highlight-column {
    background: #eaf0f6;
    border-left-color: var(--panel-border);
}
html[data-theme="light"] .line-location,
html[data-theme="light"] .status-unit,
html[data-theme="light"] .status-text,
html[data-theme="light"] .highlight-status-desc,
html[data-theme="light"] #orientation-guard p { color: var(--display-sub) !important; }
html[data-theme="light"] .location-tag {
    background: #edf4fa;
    border-color: #d5e0eb;
    color: #42586f;
}
html[data-theme="light"] .highlight-status-main { color: var(--brand-blue) !important; }
html[data-theme="light"] .highlight-card.error .highlight-status-main { color: #b42332 !important; }
html[data-theme="light"] .highlight-card.warning .highlight-status-main { color: #885800 !important; }
html[data-theme="light"] .highlight-card.all-normal .highlight-status-main { color: #276b32 !important; }
html[data-theme="light"] .highlight-card.info { border-color: #aabed4; }
html[data-theme="light"] .highlight-card.transitoria { border-color: var(--brand-sky); }
html[data-theme="light"] .status-badge.ok {
    background: #e8f3df !important; color: #276b32 !important; border-color: #b8d596 !important;
}
html[data-theme="light"] .status-badge.warning {
    background: #fff3cd !important; color: #805300 !important; border-color: #e7c86a !important;
}
html[data-theme="light"] .status-badge.error {
    background: #fce8eb !important; color: #b42332 !important; border-color: #e9a6ae !important;
}
html[data-theme="light"] .status-badge.info {
    background: #edf0f3 !important; color: #526579 !important; border-color: #cbd5df !important;
}
html[data-theme="light"] .status-badge.transitoria {
    background: #e6f2fa !important; color: #0f4586 !important; border-color: #9fcae3 !important;
}
html[data-theme="light"] .line-card.has-alert.error { animation-name: lightAlertRed; }
html[data-theme="light"] .line-card.has-alert.warning { animation-name: lightAlertAmber; }
@keyframes lightAlertRed {
    0%, 100% { background-color: #fff; border-left-color: #c52b37; }
    50% { background-color: #fce8eb; border-left-color: #e63946; }
}
@keyframes lightAlertAmber {
    0%, 100% { background-color: #fff; border-left-color: #c58a00; }
    50% { background-color: #fff3cd; border-left-color: #e5ab00; }
}
html[data-theme="light"] .status-indicator {
    background: #fff0f1; border-color: #e9a6ae; box-shadow: var(--card-shadow);
}
html[data-theme="light"] .status-label { color: #b42332; }
html[data-theme="light"] #orientation-guard {
    background: #f2f5f8; color: var(--brand-blue);
}
html[data-theme="light"] .guard-arrow { color: var(--brand-blue); }
/* Superfícies do acesso e da administração, com a mesma tipografia e dimensões. */
html[data-theme="light"] .admin-navbar,
html[data-theme="light"] .top-nav,
html[data-theme="light"] .login-card,
html[data-theme="light"] .card,
html[data-theme="light"] .table-container,
html[data-theme="light"] .admin-section,
html[data-theme="light"] .modal,
html[data-theme="light"] .modal-content,
html[data-theme="light"] .tooltip-box {
    background: #ffffff; border-color: #d5e0eb;
    color: #152c46; box-shadow: 0 4px 20px rgba(15, 69, 134, 0.08);
}
html[data-theme="light"] .admin-navbar { border-bottom-color: var(--brand-green); }
html[data-theme="light"] .navbar-title {
    background: none; -webkit-text-fill-color: var(--brand-blue); color: var(--brand-blue);
}
html[data-theme="light"] .user-bar,
html[data-theme="light"] .user-badge,
html[data-theme="light"] .btn-icon,
html[data-theme="light"] .btn-outline,
html[data-theme="light"] .btn-nav-back,
html[data-theme="light"] .navbar-status,
html[data-theme="light"] .chip,
html[data-theme="light"] .line-item,
html[data-theme="light"] .t-tag,
html[data-theme="light"] .ch-box,
html[data-theme="light"] .version-tag {
    background: #edf4fa; border-color: #d5e0eb; color: #0f4586;
}
html[data-theme="light"] .search-input,
html[data-theme="light"] .f-input,
html[data-theme="light"] input:not([type="checkbox"]):not([type="radio"]),
html[data-theme="light"] textarea,
html[data-theme="light"] select {
    background-color: #ffffff; color: #152c46; border-color: #aabed4;
}
html[data-theme="light"] option { background: #ffffff; color: #152c46; }
/* O select personalizado tinha uma seta branca sobre o campo branco. */
html[data-theme="light"] .meta-input {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%230f4586' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
html[data-theme="light"] input::placeholder,
html[data-theme="light"] textarea::placeholder { color: #526579; }
html[data-theme="light"] .login-card p,
html[data-theme="light"] .modal-title,
html[data-theme="light"] .modal-content label,
html[data-theme="light"] .card-title,
html[data-theme="light"] .page-title,
html[data-theme="light"] .nav-title,
html[data-theme="light"] .u-name,
html[data-theme="light"] th,
html[data-theme="light"] td { color: #152c46; }
html[data-theme="light"] th { background: #edf4fa; }
html[data-theme="light"] .btn-primary,
html[data-theme="light"] .login-card button[type="submit"] {
    background: #0f4586; color: #ffffff; border-color: #0f4586;
}
html[data-theme="light"] .btn-primary:hover,
html[data-theme="light"] .login-card button[type="submit"]:hover { background: #0b386f; }
html[data-theme="light"] .modal-overlay { background: rgba(15, 35, 60, 0.45); }
.theme-control {
    display: inline-flex; align-items: center; gap: 8px; margin: 0;
    font-family: 'Inter', sans-serif; font-size: 12px; font-weight: 600;
    text-transform: none; color: var(--display-text);
}
.theme-control select {
    width: auto; margin: 0; padding: 6px 8px; border-radius: 8px;
    border: 1px solid var(--display-border); background: #142341; color: #ffffff;
    font-family: 'Inter', sans-serif; font-size: 12px; cursor: pointer;
}
.theme-control-floating { position: fixed; top: 16px; right: 16px; z-index: 1500; }
.theme-control select:focus-visible { outline: 2px solid var(--brand-sky); outline-offset: 2px; }
html[data-theme="light"] body::before { background: #f2f5f8; }
html[data-theme="light"] .page-title { color: #152c46 !important; text-shadow: none; }
html[data-theme="light"] td { color: #152c46 !important; background: #ffffff; }
html[data-theme="light"] .form-user { background: #ffffff; border-color: #d5e0eb; }
html[data-theme="light"] .f-label,
html[data-theme="light"] .u-name { color: #152c46 !important; }
html[data-theme="light"] .card:hover { border-color: #aabed4; box-shadow: var(--card-shadow); }
html[data-theme="light"] .btn-icon:hover,
html[data-theme="light"] .btn-nav-back:hover { color: #0f4586; background: #e0edf7; }
.admin-navbar ~ .theme-control-floating { top: auto; bottom: 16px; }

/* Revisão completa: superfícies internas, textos auxiliares e estados da administração. */
html[data-theme="light"] {
    --theme-inset-bg: #edf4fa;
    --theme-dialog-bg: rgba(255, 255, 255, 0.84);
    --theme-border: #d5e0eb;
    --warning: #805300;
    --success: #276b32;
    --danger: #b42332;
}
html[data-theme="light"] .escala-expansion,
html[data-theme="light"] .escala-container-refinado,
html[data-theme="light"] .t-grid,
html[data-theme="light"] .grid-time-chip {
    background: #edf4fa; border-color: #d5e0eb;
}
html[data-theme="light"] .btn-logout { color: #b42332; }
html[data-theme="light"] .log-badge-auth { color: #0f4586; background: #e7f1f9; border-color: #aabed4; }
html[data-theme="light"] .log-badge-config { color: #216335; background: #e8f3df; border-color: #b8d596; }
html[data-theme="light"] .log-badge-calendar { color: #805300; background: #fff3cd; border-color: #e7c86a; }
html[data-theme="light"] .log-badge-user { color: #654093; background: #f0e9fa; border-color: #c9b5e1; }
html[data-theme="light"] .log-badge-feedback { color: #964210; background: #fff0e5; border-color: #e9bc99; }
html[data-theme="light"] .line-item-name > span,
html[data-theme="light"] #log-modal-user span { opacity: 1 !important; }
html[data-theme="light"] .line-company { opacity: 1; }
html[data-theme="light"] .switch-indicator { background: #526579; }
html[data-theme="light"] .switch-nao-opera.active label { color: #b42332; }
html[data-theme="light"] .ch-box:hover { color: #0f4586; background: #e0edf7; border-color: #aabed4; }
html[data-theme="light"] .audit-table tr:hover td { background: #edf4fa; }
html[data-theme="light"] input:focus,
html[data-theme="light"] select:focus,
html[data-theme="light"] textarea:focus { border-color: #0f4586; outline-color: #0f4586; }
html[data-theme="light"] input[type="checkbox"],
html[data-theme="light"] input[type="radio"] { accent-color: #0f4586; }
html[data-theme="light"] ::-webkit-scrollbar-thumb { background: #aabed4; }
html[data-theme="light"] .update-dialog { border-color: #d5e0eb !important; box-shadow: var(--card-shadow) !important; }
html[data-theme="light"] .update-dialog h3 { color: #0f4586 !important; }
html[data-theme="light"] .login-card ~ div[style*="fixed"] { color: #526579 !important; }
html[data-page="widget_display"][data-theme="light"] .empty-title,
html[data-page="widget_display"][data-theme="light"] .empty-sub { color: #42586f; }

/* Manual: o mesmo tema em títulos, tabelas, sumário e diagramas. */
html[data-page="manual"][data-theme="light"] .navbar,
html[data-page="manual"][data-theme="light"] .sidebar,
html[data-page="manual"][data-theme="light"] .footer {
    background: #ffffff; border-color: #d5e0eb;
}
html[data-page="manual"][data-theme="light"] h1 {
    background: none; -webkit-text-fill-color: #0f4586; color: #0f4586;
}
html[data-page="manual"][data-theme="light"] h2 { border-bottom-color: #d5e0eb; }
html[data-page="manual"][data-theme="light"] .alert-note { color: #0f4586; background: #e7f1f9; }
html[data-page="manual"][data-theme="light"] .alert-important { color: #805300; background: #fff3cd; }
html[data-page="manual"][data-theme="light"] .alert-tip { color: #216335; background: #e8f3df; }
html[data-page="manual"][data-theme="light"] .mermaid-container,
html[data-page="manual"][data-theme="light"] .screenshot-placeholder,
html[data-page="manual"][data-theme="light"] .image-wrapper { background: #ffffff; border-color: #d5e0eb; }
html[data-page="manual"][data-theme="light"] .btn-back,
html[data-page="manual"][data-theme="light"] .btn-pdf,
html[data-page="manual"][data-theme="light"] .sidebar-link.active { background: #e7f1f9; border-color: #aabed4; }

/* Os cabeçalhos administrativos acomodam ações sem sobrepor os títulos. */
html[data-page="admin"] .admin-navbar {
    display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 16px;
}
html[data-page="admin"] .navbar-title {
    position: static; transform: none;
    min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; text-align: center;
}
html[data-page="admin"] .navbar-actions { flex-wrap: wrap; justify-content: flex-end; }
html[data-page="home"] .header { max-width: 100%; }
html[data-page="home"] .user-bar { flex-wrap: wrap; justify-content: center; max-width: 100%; }
html[data-page="users"] .table-container { overflow-x: auto; max-width: 100%; }
html[data-page="users"] table { min-width: 700px; }
html[data-page="users"] .top-nav { flex-wrap: wrap; gap: 12px; max-width: 100%; }
html[data-page="users"] .nav-logo-group { min-width: 0; flex-wrap: wrap; }
html[data-page="admin"] .modal-overlay,
html[data-page="users"] .modal-overlay { padding: 16px; }
html[data-page="users"] .modal { padding: 0; max-height: calc(100vh - 32px); }
html[data-page="users"] .modal-body { min-height: 0; }
.theme-control { flex-shrink: 0; }
@media (max-width: 1100px) {
    html[data-page="admin"] .admin-navbar { grid-template-columns: minmax(0, 1fr) auto; }
    html[data-page="admin"] .navbar-title { grid-column: 1 / -1; grid-row: 2; }
}
@media (max-width: 768px) {
    html[data-page="admin"] .admin-navbar { grid-template-columns: minmax(0, 1fr); }
    html[data-page="admin"] .navbar-title { grid-column: 1; }
    html[data-page="admin"] .navbar-actions { justify-content: flex-start; }
    html[data-page="admin"] .navbar-brand { flex-wrap: wrap; }
    html[data-page="admin"] .audit-table-container { overflow-x: auto; }
    html[data-page="admin"] .audit-table { min-width: 600px; }
    html[data-page="admin"] .status-alert-bubble { right: 0; max-width: calc(100vw - 32px); }
    html[data-page="users"] .top-nav { min-width: 0; width: 100%; border-radius: 16px; padding: 12px; }
    html[data-page="users"] .nav-logo-group { width: 100%; }
    html[data-page="users"] .modal-body { padding: 24px; }
    html[data-page="users"] #p-group > div { grid-template-columns: 1fr !important; }
    html[data-page="users"] #form-user > div:last-child { flex-wrap: wrap; }
    html[data-page="home"] .user-bar > .theme-control { flex-basis: 100%; justify-content: center; }
    html[data-page="manual"] .navbar { height: auto; min-height: 70px; flex-wrap: wrap; gap: 12px; padding: 12px 20px; }
    html[data-page="manual"] .navbar-brand,
    html[data-page="manual"] .navbar-actions { flex-wrap: wrap; min-width: 0; }
    html[data-page="manual"] .navbar-logo { max-width: 100%; object-fit: contain; }
    html[data-page="manual"] .layout-container { margin-top: 144px; }
    html[data-page="manual"] .content { min-width: 0; max-width: 100%; }
    html[data-page="manual"] .section-card { min-width: 0; }
    html[data-page="manual"] .table-responsive,
    html[data-page="manual"] .mermaid-container { max-width: 100%; overflow-x: auto; }
}
@media print {
    .theme-control { display: none !important; }
    html[data-page="manual"] h1 { -webkit-text-fill-color: #000 !important; }
    html[data-page="manual"] .section-card { box-shadow: none; }
}
/* Tooltips ocultos não podem alargar a página; aparecem também ao receber foco. */
html[data-page="admin"] .tooltip-box { display: none; }
html[data-page="admin"] .help-indicator:hover .tooltip-box,
html[data-page="admin"] .help-indicator:focus-within .tooltip-box { display: block; }
html[data-theme="light"] .btn:focus-visible,
html[data-theme="light"] .btn-icon:focus-visible,
html[data-theme="light"] .btn-back:focus-visible,
html[data-theme="light"] .btn-pdf:focus-visible { outline: 2px solid #0f4586; outline-offset: 3px; }
@media (max-width: 768px) {
    html[data-page="admin"] .tooltip-box {
        position: fixed !important; left: 16px !important; right: 16px !important;
        top: auto !important; bottom: 16px !important; width: auto !important;
        max-width: calc(100vw - 32px); transform: none !important;
    }
    html[data-page="admin"] .tooltip-box::after { display: none; }
    html[data-page="manual"] .navbar { position: sticky; top: 0; }
    html[data-page="manual"] .layout-container { margin-top: 0; }
}
html[data-page="home"] .header-logo { max-width: 100%; object-fit: contain; }
html[data-theme="light"] .result-name > span { opacity: 1 !important; }
html[data-page="login"] .logo { max-width: 100%; object-fit: contain; }
html[data-page="home"] .update-dialog {
    max-height: calc(100vh - 32px); display: flex; flex-direction: column;
}
html[data-page="home"] .update-dialog > div:nth-child(2) { min-height: 0; overflow-y: auto; }
html[data-page="home"] .update-dialog > div:first-child,
html[data-page="home"] .update-dialog > div:last-child { flex-shrink: 0; }

/* Texto branco do PNG passa a preto; o símbolo verde mantém a cor original. */
html[data-theme="light"] #logo-sptrans { filter: url("#sptrans-light-ink"); }

/* Identidade do SGO nas páginas de acesso e gerenciamento. */
html[data-page]:not([data-view="display"]) body {
    background: #091423 url('../img/fundo-sgo-noturno.svg') center / cover fixed no-repeat;
}
html[data-page][data-theme="light"]:not([data-view="display"]) body {
    background: #f3f6fa url('../img/fundo-sgo-claro.svg') center / cover fixed no-repeat;
}
html[data-page="admin"] body::before { display: none; }

/* Seletor nativo acessível, apresentado como ícone discreto. */
.theme-control {
    position: relative; display: inline-flex; align-items: center; justify-content: center;
    width: 32px; height: 32px; gap: 0; border: 1px solid transparent;
    border-radius: 50%; color: var(--display-sub, #aabed4); background: transparent;
}
.theme-control select {
    position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; padding: 0;
    opacity: 0; cursor: pointer;
}
.theme-icon { pointer-events: none; }
.theme-control:hover { background: rgba(128, 150, 175, 0.12); border-color: var(--display-border); }
.theme-control:focus-within { outline: 2px solid var(--brand-sky); outline-offset: 2px; }
.theme-control-floating { position: fixed; top: 16px; right: 16px; }
@media (max-width: 768px) {
    html[data-page="home"] .user-bar > .theme-control { flex-basis: auto; }
}
@media print {
    html[data-page]:not([data-view="display"]) body { background: #fff; }
}

/* Mesmo fundo institucional nos telões, preservando as superfícies dos cartões. */
html[data-view="display"] body {
    background: #091423 url('../img/fundo-sgo-noturno.svg') center / cover fixed no-repeat;
}
html[data-view="display"][data-theme="light"] body {
    background: #f3f6fa url('../img/fundo-sgo-claro.svg') center / cover fixed no-repeat;
}

/* Contorno institucional discreto nos cards normais; alertas mantêm suas bordas animadas. */
html[data-view="display"] .line-card:not(.has-alert) {
    border-top-color: rgba(138, 182, 63, 0.72);
    border-right-color: rgba(35, 139, 203, 0.58);
    border-bottom-color: rgba(35, 139, 203, 0.58);
}
html[data-view="display"][data-theme="light"] .line-card:not(.has-alert) {
    background: rgba(255, 255, 255, 0.84);
    border-top-color: #8ab63f;
    border-right-color: rgba(15, 69, 134, 0.48);
    border-bottom-color: rgba(15, 69, 134, 0.48);
}

/* Vidro um pouco mais visível nos cards dos dois temas e das páginas de gestão. */
html[data-view="display"][data-theme="dark"] .line-card:not(.has-alert) {
    background: rgba(13, 27, 58, 0.82);
}
html[data-view="display"][data-theme="dark"] .highlight-card:not(.error):not(.warning) {
    background: rgba(13, 27, 58, 0.82);
}
html[data-view="display"][data-theme="light"] .highlight-card:not(.error):not(.warning) {
    background: rgba(255, 255, 255, 0.84);
}
html[data-page="login"][data-theme="light"] .login-card,
html[data-page="home"][data-theme="light"] .user-bar,
html[data-page="home"][data-theme="light"] .card,
html[data-page="home"][data-theme="light"] .update-dialog,
html[data-page="admin"][data-theme="light"] .admin-section,
html[data-page="admin"][data-theme="light"] .escala-card-principal,
html[data-page="admin"][data-theme="light"] .audit-table-container,
html[data-page="admin"][data-theme="light"] .modal,
html[data-page="admin"][data-theme="light"] .modal-content,
html[data-page="users"][data-theme="light"] .top-nav,
html[data-page="users"][data-theme="light"] .table-container,
html[data-page="users"][data-theme="light"] .modal,
html[data-page="users"][data-theme="light"] .form-user,
html[data-page="users"][data-theme="light"] .modal-content,
html[data-page="manual"][data-theme="light"] .section-card {
    background: rgba(255, 255, 255, 0.84);
}
html[data-page="login"][data-theme="dark"] .login-card,
html[data-page="home"][data-theme="dark"] .card,
html[data-page="admin"][data-theme="dark"] .modal-content,
html[data-page="admin"][data-theme="dark"] .admin-section,
html[data-page="admin"][data-theme="dark"] .escala-card-principal,
html[data-page="admin"][data-theme="dark"] .audit-table-container,
html[data-page="users"][data-theme="dark"] .top-nav,
html[data-page="users"][data-theme="dark"] .table-container,
html[data-page="users"][data-theme="dark"] .modal,
html[data-page="users"][data-theme="dark"] .form-user,
html[data-page="users"][data-theme="dark"] .modal-content,
html[data-page="manual"][data-theme="dark"] .section-card {
    background: rgba(13, 27, 58, 0.22);
}
html[data-page="home"][data-theme="light"] .user-bar {
    background: rgba(255, 255, 255, 0.88);
}
html[data-page="home"][data-theme="dark"] .user-bar {
    background: rgba(20, 35, 65, 0.88);
}
html[data-page="home"][data-theme="dark"] .update-dialog {
    background: linear-gradient(rgba(20, 35, 65, 0.88), rgba(7, 10, 18, 0.9)) !important;
}
html[data-page="admin"][data-theme="light"] .modal,
html[data-page="users"][data-theme="light"] .modal-content {
    background: rgba(255, 255, 255, 0.92);
}
html[data-page="admin"][data-theme="dark"] .modal {
    background: rgba(10, 14, 26, 0.92);
}
html[data-page="users"][data-theme="light"] .modal { background: rgba(255, 255, 255, 0.92); }
html[data-page="users"][data-theme="dark"] .modal { background: rgba(10, 14, 26, 0.92); }

/* Faixas laterais dos cards: cor da linha e recorte uniforme nos cantos. */
html[data-view="display"] { --red-bar: var(--red, #ff4757); }
html[data-view="display"] .line-card {
    overflow: hidden;
    isolation: isolate;
}
html[data-view="display"] .carousel-column .line-card:not(.has-alert) {
    border-left-color: var(--card-line-color, var(--panel-border));
}


/* Acabamentos do site institucional, preservando medidas e tipografia do app. */
html[data-page]:not([data-view="display"]) {
    --accent: #6cc3ed;
    --admin-accent: #6cc3ed;
    --admin-accent-soft: rgba(35, 139, 203, .14);
    --admin-border-hover: var(--brand-sky);
}
html[data-page][data-theme="light"]:not([data-view="display"]) {
    --accent: var(--brand-blue);
    --admin-accent: var(--brand-blue);
    --admin-text-muted: #585858;
}
html[data-page]:not([data-view="display"]) .btn-primary,
html[data-page="login"] .login-card button[type="submit"] {
    background: var(--brand-blue); color: #fff; border-color: var(--brand-blue);
}
html[data-page]:not([data-view="display"]) .btn-primary:hover,
html[data-page="login"] .login-card button[type="submit"]:hover {
    background: #0b386f;
}
html[data-page]:not([data-view="display"]) .admin-navbar,
html[data-page]:not([data-view="display"]) .top-nav,
html[data-page]:not([data-view="display"]) .navbar {
    border-bottom-color: var(--brand-green);
}
html[data-page="login"] .login-card { border-top-color: var(--brand-green); }
html[data-page]:not([data-view="display"]) .user-badge { color: var(--accent); }
html[data-page]:not([data-view="display"]) input:focus,
html[data-page]:not([data-view="display"]) textarea:focus,
html[data-page]:not([data-view="display"]) select:focus {
    border-color: var(--accent); outline-color: var(--accent);
}

/* Controles e divisórias do gerenciamento: estados desligados visíveis no tema claro. */
html[data-page="admin"][data-theme="light"] {
    --theme-border: #b5c7d8;
}
html[data-page="admin"][data-theme="light"] .toggle-switch input:not(:checked) + .toggle-slider {
    background: #b8c8d8;
    box-shadow: inset 0 0 0 1px #8199b2;
}
html[data-page="admin"][data-theme="light"] .toggle-switch input:focus-visible + .toggle-slider {
    outline: 2px solid var(--brand-blue);
    outline-offset: 3px;
}
html[data-page="admin"][data-theme="light"] .day-btn:not(.active),
html[data-page="admin"][data-theme="light"] .aba-mini-btn:not(.active) {
    background: #ffffff;
    border-color: #9eb5cb;
    color: #264766;
}
html[data-page="admin"][data-theme="light"] .day-btn:not(.active):hover,
html[data-page="admin"][data-theme="light"] .aba-mini-btn:not(.active):hover {
    background: #e4eef7;
    border-color: #6e91b3;
}
html[data-page="admin"][data-theme="light"] .escala-topo {
    border-bottom-color: #a9bfd4;
}
html[data-page="admin"][data-theme="light"] .summary-sep,
html[data-page="admin"][data-theme="light"] .escala-actions-separator {
    background: #9fb6cb;
}
