/* =====================================================================
   DPCO · Design system (carregado por último: padroniza todas as telas)
   Grafite + laranja Campos Gerais. Tema claro opcional.
   ===================================================================== */

:root, [data-theme="dark"] {
    color-scheme: dark;
    --ui-bg: #0B0C0F;
    --ui-sidebar: #0E1013;
    --ui-surface: #14161A;
    --ui-surface-2: #1A1D22;
    --ui-surface-3: #22262C;
    --ui-border: #262A31;
    --ui-border-strong: #343A43;
    --ui-text: #ECEEF1;
    --ui-text-2: #AEB4BD;
    --ui-text-3: #747C88;
    --ui-accent: #FF6800;
    --ui-accent-hover: #FF7F26;
    --ui-accent-soft: rgba(255, 104, 0, .12);
    --ui-accent-text: #FF8A3D;
    --ui-success: #34C47C;  --ui-success-soft: rgba(52, 196, 124, .12);
    --ui-warning: #E8A33D;  --ui-warning-soft: rgba(232, 163, 61, .13);
    --ui-danger:  #F0574D;  --ui-danger-soft:  rgba(240, 87, 77, .12);
    --ui-info:    #5B9DF2;  --ui-info-soft:    rgba(91, 157, 242, .12);
    --ui-shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);
    --ui-shadow-md: 0 6px 18px rgba(0, 0, 0, .35);
    --ui-shadow-lg: 0 18px 50px rgba(0, 0, 0, .55);
    --ui-radius: 12px;
    --ui-radius-sm: 8px;
    --ui-font: 'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, sans-serif;

    /* Tokens antigos apontando para a nova paleta (todas as telas herdam) */
    --primary: var(--ui-accent); --primary-dark: #E05C00; --primary-light: #FF8A3D; --primary-rgb: 255, 104, 0;
    --secondary: #8B6CF6;
    --success: var(--ui-success); --success-rgb: 52, 196, 124;
    --danger: var(--ui-danger);   --danger-rgb: 240, 87, 77;
    --warning: var(--ui-warning); --warning-rgb: 232, 163, 61;
    --info: var(--ui-info);       --info-rgb: 91, 157, 242;
    --bg-primary: var(--ui-bg); --bg-body: var(--ui-bg);
    --bg-secondary: var(--ui-surface); --bg-tertiary: var(--ui-surface-2);
    --bg-card: var(--ui-surface); --bg-card-hover: var(--ui-surface-2);
    --bg-hover: var(--ui-surface-2);
    --bg-input: var(--ui-surface-2);
    --bg-header: var(--ui-bg);
    --text-primary: var(--ui-text); --text: var(--ui-text);
    --text-secondary: var(--ui-text-2); --text-muted: var(--ui-text-3);
    --border-color: var(--ui-border); --border: var(--ui-border); --border-light: var(--ui-border);
    --shadow-color: rgba(0, 0, 0, .45);
    --modal-bg: var(--ui-surface);
    --scrollbar-thumb: #2E333B; --scrollbar-track: transparent;
    --transition-fast: .15s ease;
    --sb-border: var(--ui-border); --sb-hover: var(--ui-surface-2); --sb-active: var(--ui-accent-soft); --sb-bg: var(--ui-sidebar);
}

[data-theme="light"] {
    color-scheme: light;
    --ui-bg: #F4F5F7;
    --ui-sidebar: #FFFFFF;
    --ui-surface: #FFFFFF;
    --ui-surface-2: #F1F3F6;
    --ui-surface-3: #E7EAEF;
    --ui-border: #E2E5EA;
    --ui-border-strong: #CDD2DA;
    --ui-text: #15181D;
    --ui-text-2: #4A5260;
    --ui-text-3: #7E8794;
    --ui-accent-soft: rgba(255, 104, 0, .10);
    --ui-accent-text: #D45500;
    --ui-success: #1E9E5E; --ui-warning: #B97710; --ui-danger: #D93A30; --ui-info: #2F74D0;
    --ui-shadow-sm: 0 1px 2px rgba(16, 24, 40, .06);
    --ui-shadow-md: 0 6px 16px rgba(16, 24, 40, .08);
    --ui-shadow-lg: 0 18px 44px rgba(16, 24, 40, .16);
    --shadow-color: rgba(16, 24, 40, .12);
    --scrollbar-thumb: #C9CED6;
}

/* ---------- Base ---------- */
[hidden] { display: none !important; }
html { -webkit-text-size-adjust: 100%; }
body {
    background: var(--ui-bg) !important;
    color: var(--ui-text);
    font-family: var(--ui-font) !important;
    font-feature-settings: 'cv11', 'ss01';
    -webkit-font-smoothing: antialiased;
}
body::before, body::after { display: none !important; }
button, input, select, textarea { font-family: inherit; }
* { scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) transparent; }
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: 10px; border: 3px solid transparent; background-clip: padding-box; }
::-webkit-scrollbar-track { background: transparent; }
:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
::selection { background: rgba(255, 104, 0, .3); }
.num, .kpi-valor { font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
@keyframes uiPop { from { opacity: 0; transform: translateY(6px) scale(.985); } to { opacity: 1; transform: none; } }
@keyframes uiFade { from { opacity: 0; } to { opacity: 1; } }
@keyframes uiShimmer { 100% { transform: translateX(100%); } }

.ui-icon { width: 1em; height: 1em; display: inline-block; vertical-align: -.125em; flex-shrink: 0; }

/* ---------- Tela de carregamento ---------- */
.app-loading { background: var(--ui-bg) !important; }
.app-loading-logo { background: var(--ui-accent) !important; border-radius: 14px !important; box-shadow: 0 8px 30px rgba(255,104,0,.3) !important; }
.app-loading h1 { color: var(--ui-text) !important; background: none !important; -webkit-text-fill-color: currentColor !important; font-weight: 700 !important; letter-spacing: -.02em; }
.app-loading-spinner { border-color: var(--ui-border) !important; border-top-color: var(--ui-accent) !important; }
.app-loading p { color: var(--ui-text-3) !important; }

/* ---------- Botões ---------- */
.btn {
    border-radius: var(--ui-radius-sm) !important;
    font-weight: 600 !important; font-size: .85rem;
    min-height: 36px; padding: 8px 14px;
    box-shadow: none !important;
    transition: background-color .15s, border-color .15s, color .15s, transform .1s !important;
    border: 1px solid transparent;
    background-image: none !important;
}
.btn:hover { transform: none !important; filter: none; }
.btn:active { transform: translateY(1px) !important; }
.btn:disabled { opacity: .5; cursor: not-allowed; }
.btn-primary { background: var(--ui-accent) !important; color: #fff !important; }
.btn-primary:hover { background: var(--ui-accent-hover) !important; }
.btn-secondary { background: var(--ui-surface-2) !important; color: var(--ui-text) !important; border-color: var(--ui-border) !important; }
.btn-secondary:hover { background: var(--ui-surface-3) !important; }
.btn-success { background: var(--ui-success-soft) !important; color: var(--ui-success) !important; border-color: rgba(52,196,124,.25) !important; }
.btn-success:hover { background: rgba(52,196,124,.2) !important; }
.btn-danger { background: var(--ui-danger-soft) !important; color: var(--ui-danger) !important; border-color: rgba(240,87,77,.25) !important; }
.btn-danger:hover { background: rgba(240,87,77,.2) !important; }
.btn-warning { background: var(--ui-warning-soft) !important; color: var(--ui-warning) !important; border-color: rgba(232,163,61,.25) !important; }
.btn-info { background: var(--ui-info-soft) !important; color: var(--ui-info) !important; border-color: rgba(91,157,242,.25) !important; }
.btn-sm { min-height: 32px; padding: 6px 11px; font-size: .8rem; }
.kanban-mais { width: 100%; margin-top: 4px; }

/* ---------- Formulários ---------- */
input[type="text"], input[type="number"], input[type="date"], input[type="email"], input[type="password"],
input[type="search"], input[type="tel"], input[type="month"], input[type="time"], input:not([type]), select, textarea,
.filter-select, .filter-input, .search-input, .form-group input, .form-group select, .form-group textarea {
    background-color: var(--ui-surface-2) !important;
    border: 1px solid var(--ui-border) !important;
    color: var(--ui-text) !important;
    border-radius: var(--ui-radius-sm) !important;
    min-height: 38px;
    font-size: .875rem;
    transition: border-color .15s, box-shadow .15s !important;
}
textarea { min-height: 70px; }
input::placeholder, textarea::placeholder { color: var(--ui-text-3) !important; opacity: 1; }
input:focus, select:focus, textarea:focus, .search-input:focus, .filter-select:focus {
    outline: none !important;
    border-color: var(--ui-accent) !important;
    box-shadow: 0 0 0 3px rgba(255, 104, 0, .16) !important;
}
input[type="checkbox"], input[type="radio"] { accent-color: var(--ui-accent); min-height: 0; }
input[type="color"] { min-height: 38px; padding: 2px; }
select option { background: var(--ui-surface); color: var(--ui-text); }
.form-group label, label {
    color: var(--ui-text-2);
}
.form-group label { font-size: .78rem !important; font-weight: 600 !important; text-transform: none !important; letter-spacing: 0 !important; }
.search-input { border-radius: var(--ui-radius-sm) !important; }
.campo-erro { border-color: var(--ui-danger) !important; box-shadow: 0 0 0 3px var(--ui-danger-soft) !important; }
.campo-erro-msg { color: var(--ui-danger); font-size: .75rem; margin-top: 4px; }

.cmdk-input input { border: 0 !important; background: transparent !important; box-shadow: none !important; min-height: 54px; padding: 0 !important; }

/* ---------- Modais ---------- */
.modal-overlay { background: rgba(5, 6, 8, .66) !important; backdrop-filter: blur(4px) !important; }
.modal {
    background: var(--ui-surface) !important;
    border: 1px solid var(--ui-border) !important;
    border-radius: 16px !important;
    box-shadow: var(--ui-shadow-lg) !important;
    animation: uiPop .18s ease !important;
}
.modal-header {
    background: transparent !important;
    border-bottom: 1px solid var(--ui-border) !important;
    padding: 18px 22px !important;
}
.modal-header h2, .modal-header h3 { font-size: 1.05rem !important; font-weight: 650 !important; color: var(--ui-text) !important; background: none !important; -webkit-text-fill-color: currentColor !important; }
.modal-body { padding: 20px 22px !important; }
.modal-footer { border-top: 1px solid var(--ui-border) !important; background: var(--ui-surface) !important; padding: 14px 22px !important; }
.modal-close {
    width: 34px; height: 34px; border-radius: 8px !important;
    background: transparent !important; color: var(--ui-text-3) !important; border: 0 !important;
    font-size: 1.4rem !important; line-height: 1; transition: background .15s, color .15s !important;
}
.modal-close:hover { background: var(--ui-surface-2) !important; color: var(--ui-text) !important; transform: none !important; }

/* ---------- Toasts ---------- */
.toast {
    /* No topo, ao centro: nunca cobre Salvar nem as tabelas, e o clique passa através dele */
    top: 12px !important; bottom: auto !important; left: 0 !important; right: 0 !important; margin-inline: auto; transform: none !important; pointer-events: none;
    width: fit-content; min-width: 260px; max-width: min(420px, calc(100vw - 40px));
    z-index: 100000 !important;
    padding: 12px 16px 12px 14px !important; border-radius: 12px !important;
    background: var(--ui-surface-3) !important; color: var(--ui-text) !important;
    border: 1px solid var(--ui-border-strong) !important; border-left: 3px solid var(--ui-info) !important;
    box-shadow: var(--ui-shadow-lg) !important;
    font-size: .875rem !important; font-weight: 500 !important;
    animation: uiPop .2s ease !important;
}
.toast.success { border-left-color: var(--ui-success) !important; }
.toast.error { border-left-color: var(--ui-danger) !important; }
.toast.warning { border-left-color: var(--ui-warning) !important; }
@media (max-width: 960px) {
    .toast { top: calc(10px + env(safe-area-inset-top)) !important; right: 12px !important; left: 12px !important; width: auto; max-width: none; }
}

/* ---------- Tabelas ---------- */
table { border-collapse: separate; border-spacing: 0; }
.table-wrapper, .tabela-wrapper { border: 1px solid var(--ui-border); border-radius: var(--ui-radius); background: var(--ui-surface); }
.controle-table th, .data-table th, .dash-table th, .supervisor-table th, .rh-lanc-table th, table thead th {
    background: var(--ui-surface-2) !important;
    color: var(--ui-text-2) !important;
    font-size: .74rem !important; font-weight: 600 !important;
    text-transform: uppercase; letter-spacing: .04em;
    border-bottom: 1px solid var(--ui-border) !important;
    position: sticky; top: 0; z-index: 1;
}
table tbody td { border-bottom: 1px solid var(--ui-border) !important; color: var(--ui-text); font-variant-numeric: tabular-nums; }
table tbody tr:hover td { background: var(--ui-surface-2); }
table tbody tr:last-child td { border-bottom: 0 !important; }

/* ---------- Cabeçalhos das telas internas (RDO, Multas, BMD, Equipes, RH) ---------- */
.rdo-hero, .eq-hero, .rh-hero {
    background: var(--ui-bg) !important; background-image: none !important;
    color: var(--ui-text) !important;
    border: 0 !important; border-bottom: 1px solid var(--ui-border) !important;
    border-radius: 0 !important; box-shadow: none !important;
    padding: 18px 24px !important; margin: 0 !important;
}
.rdo-hero::before, .rdo-hero::after, .eq-hero::before, .eq-hero::after, .rh-hero::before, .rh-hero::after { display: none !important; }
.rdo-hero-title, .eq-hero-title, .rh-hero-title { gap: 14px !important; }
.rdo-hero-icon, .eq-hero-icon, .rh-hero-icon {
    width: 44px; height: 44px; border-radius: 12px; flex-shrink: 0;
    display: inline-flex !important; align-items: center; justify-content: center;
    background: var(--ui-accent-soft) !important; border: 1px solid rgba(255, 104, 0, .22);
    font-size: 1.3rem !important; line-height: 1; animation: none !important;
}
.rdo-hero-title h1, .eq-hero-title h1, .rh-hero-title h1,
.rdo-hero-title h2, .eq-hero-title h2, .rh-hero-title h2 {
    color: var(--ui-text) !important; -webkit-text-fill-color: currentColor !important; background: none !important;
    font-size: 1.2rem !important; font-weight: 700 !important; letter-spacing: -.015em; text-shadow: none !important;
}
.rdo-hero-title p, .eq-hero-title p, .rh-hero-title p { color: var(--ui-text-3) !important; opacity: 1 !important; font-size: .85rem !important; }
.rdo-hero .btn, .eq-hero .btn, .rh-hero .btn { min-height: 36px; }
.eq-hero-stats > *, .rh-hero-stats > * {
    background: var(--ui-surface) !important; border: 1px solid var(--ui-border) !important; color: var(--ui-text) !important;
    box-shadow: none !important; backdrop-filter: none !important;
}
.rdo-container, .eq-container { background: var(--ui-bg) !important; }
.chart-card, .dash-card, .stat-card, .kpi, .summary-card, .prog-summary-card {
    background: var(--ui-surface) !important; background-image: none !important;
    border: 1px solid var(--ui-border) !important; border-radius: 14px !important; box-shadow: none !important;
}
@media (max-width: 960px) {
    .rdo-hero, .eq-hero, .rh-hero { padding: 14px !important; }
    .rdo-hero-actions { width: 100%; flex-wrap: wrap; }
    .rdo-hero-actions .btn { flex: 1; }
}

/* ---------- Kanban ---------- */
.kanban-toolbar {
    background: transparent !important; border-bottom: 1px solid var(--ui-border) !important;
    padding: 14px 24px !important; box-shadow: none !important;
}
.kanban-container { padding: 18px 24px !important; gap: 16px !important; }
.kanban-column {
    background: var(--ui-surface) !important;
    border: 1px solid var(--ui-border) !important;
    border-radius: 14px !important;
    box-shadow: none !important;
}
.column-header {
    background: transparent !important; border-bottom: 1px solid var(--ui-border) !important;
    padding: 14px 16px !important;
}
.column-header h2 { font-size: .9rem !important; font-weight: 650 !important; color: var(--ui-text) !important; }
.column-count {
    background: var(--ui-surface-3) !important; color: var(--ui-text-2) !important;
    border-radius: 999px !important; font-size: .75rem !important; font-weight: 600 !important; padding: 2px 9px !important;
}
.col-preparacao .column-header { box-shadow: inset 0 2px 0 #8A94A3 !important; }
.col-execucao .column-header { box-shadow: inset 0 2px 0 var(--ui-info) !important; }
.col-pde .column-header { box-shadow: inset 0 2px 0 var(--ui-accent) !important; }
.col-finalizados .column-header { box-shadow: inset 0 2px 0 var(--ui-success) !important; }
.cards-container { padding: 12px !important; }
.card {
    background: var(--ui-surface-2) !important;
    border: 1px solid var(--ui-border) !important;
    border-radius: 12px !important;
    box-shadow: none !important;
    transition: border-color .15s, box-shadow .15s, transform .15s !important;
}
.card:hover { transform: none !important; border-color: var(--ui-border-strong) !important; box-shadow: var(--ui-shadow-md) !important; }
.card.dragging { opacity: .6; transform: rotate(1.5deg) !important; }
.cards-container.drag-over { background: var(--ui-accent-soft) !important; outline: 1px dashed var(--ui-accent); outline-offset: -6px; border-radius: 10px; }
.empty-state { color: var(--ui-text-3) !important; }

/* Mapa */
.mapa-legenda { background: var(--ui-surface); color: var(--ui-text); border: 1px solid var(--ui-border); border-radius: 8px; padding: 8px 10px; font: 12px var(--ui-font); box-shadow: var(--ui-shadow-md); }
.mapa-legenda div { display: flex; align-items: center; gap: 6px; margin: 2px 0; }
.mapa-legenda span { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }

/* =====================================================================
   PAINEL INICIAL (Central de gestão)
   ===================================================================== */
#page-inicio { overflow-y: auto; }
.ini { padding: 22px 24px 40px; max-width: 1480px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.ini-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ini-saud h1 { font-size: 1.45rem; font-weight: 700; letter-spacing: -.02em; color: var(--ui-text); margin: 0; }
.ini-saud p { color: var(--ui-text-3); font-size: .875rem; margin: 4px 0 0; }
.ini-filtros { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ini-filtros select { min-width: 0; height: 36px; min-height: 36px; padding: 0 30px 0 10px; font-size: .82rem; }
.seg { display: inline-flex; background: var(--ui-surface-2); border: 1px solid var(--ui-border); border-radius: 9px; padding: 3px; }
.seg button { border: 0; background: none; color: var(--ui-text-2); font: inherit; font-size: .8rem; font-weight: 600; padding: 6px 12px; border-radius: 6px; cursor: pointer; }
.seg button[aria-pressed="true"] { background: var(--ui-surface); color: var(--ui-text); box-shadow: var(--ui-shadow-sm); }

.ini-grid { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 16px; }
.span-12 { grid-column: span 12; } .span-8 { grid-column: span 8; } .span-7 { grid-column: span 7; }
.span-6 { grid-column: span 6; } .span-5 { grid-column: span 5; } .span-4 { grid-column: span 4; } .span-3 { grid-column: span 3; }

.painel {
    background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px;
    padding: 18px; min-width: 0; display: flex; flex-direction: column;
    animation: uiFade .25s ease;
}
.painel-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 14px; }
.painel-head h2 { font-size: .95rem; font-weight: 650; color: var(--ui-text); margin: 0; display: flex; align-items: center; gap: 8px; }
.painel-head h2 svg { width: 17px; height: 17px; color: var(--ui-text-3); }
.painel-head .link { background: none; border: 0; color: var(--ui-accent-text); font: inherit; font-size: .8rem; font-weight: 600; cursor: pointer; padding: 4px 6px; border-radius: 6px; }
.painel-head .link:hover { background: var(--ui-accent-soft); }
.painel-sub { color: var(--ui-text-3); font-size: .78rem; margin-top: 2px; }

/* KPIs */
.kpis { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; }
.kpi-card {
    background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; padding: 16px 18px;
    display: flex; flex-direction: column; gap: 10px; position: relative; overflow: hidden; min-width: 0;
    cursor: pointer; transition: border-color .15s, background .15s; text-align: left; font: inherit; color: inherit;
}
.kpi-card:hover { border-color: var(--ui-border-strong); background: var(--ui-surface-2); }
.kpi-top { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
.kpi-rotulo { font-size: .8rem; color: var(--ui-text-2); font-weight: 500; }
.kpi-ico { width: 32px; height: 32px; border-radius: 9px; display: flex; align-items: center; justify-content: center; background: var(--ui-surface-3); color: var(--ui-text-2); }
.kpi-ico svg { width: 17px; height: 17px; }
.kpi-card.destaque .kpi-ico { background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.kpi-card.alerta .kpi-ico { background: var(--ui-danger-soft); color: var(--ui-danger); }
.kpi-valor { font-size: 1.75rem; font-weight: 700; letter-spacing: -.02em; color: var(--ui-text); line-height: 1.1; }
.kpi-valor small { font-size: .85rem; font-weight: 500; color: var(--ui-text-3); margin-left: 4px; }
.kpi-rodape { display: flex; align-items: center; gap: 8px; font-size: .76rem; color: var(--ui-text-3); flex-wrap: wrap; }
.delta { display: inline-flex; align-items: center; gap: 3px; font-weight: 600; padding: 1px 7px; border-radius: 999px; font-size: .74rem; }
.delta.up { color: var(--ui-success); background: var(--ui-success-soft); }
.delta.down { color: var(--ui-danger); background: var(--ui-danger-soft); }
.delta.flat { color: var(--ui-text-3); background: var(--ui-surface-3); }
.barra { height: 6px; border-radius: 6px; background: var(--ui-surface-3); overflow: hidden; }
.barra > i { display: block; height: 100%; border-radius: 6px; background: var(--ui-accent); transition: width .6s ease; }
.barra.ok > i { background: var(--ui-success); }

/* Gráficos */
.grafico { position: relative; height: 280px; }
.grafico.baixo { height: 220px; }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: .78rem; color: var(--ui-text-2); }
.legenda span { display: inline-flex; align-items: center; gap: 6px; }
.legenda i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }

/* Funil */
.funil { display: flex; flex-direction: column; gap: 12px; }
.funil-linha { display: grid; grid-template-columns: 130px 1fr 70px; gap: 12px; align-items: center; cursor: pointer; padding: 4px; border-radius: 8px; }
.funil-linha:hover { background: var(--ui-surface-2); }
.funil-nome { font-size: .82rem; color: var(--ui-text-2); display: flex; align-items: center; gap: 8px; }
.funil-nome i { width: 8px; height: 8px; border-radius: 50%; }
.funil-barra { height: 10px; border-radius: 6px; background: var(--ui-surface-3); overflow: hidden; }
.funil-barra > i { display: block; height: 100%; border-radius: 6px; }
.funil-num { text-align: right; font-weight: 650; font-variant-numeric: tabular-nums; color: var(--ui-text); font-size: .9rem; }
.funil-num small { display: block; font-weight: 500; color: var(--ui-text-3); font-size: .7rem; }

/* Listas */
.lista { display: flex; flex-direction: column; }
.lista-item {
    display: flex; align-items: flex-start; gap: 12px; padding: 11px 6px;
    border-bottom: 1px solid var(--ui-border); cursor: pointer; border-radius: 8px;
    background: none; border-left: 0; border-right: 0; border-top: 0; width: 100%; text-align: left; font: inherit; color: inherit;
}
.lista-item:last-child { border-bottom: 0; }
.lista-item:hover { background: var(--ui-surface-2); }
.lista-ico { width: 30px; height: 30px; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--ui-surface-3); color: var(--ui-text-2); }
.lista-ico svg { width: 16px; height: 16px; }
.lista-ico.alta { background: var(--ui-danger-soft); color: var(--ui-danger); }
.lista-ico.media { background: var(--ui-warning-soft); color: var(--ui-warning); }
.lista-ico.baixa { background: var(--ui-info-soft); color: var(--ui-info); }
.lista-txt { min-width: 0; flex: 1; }
.lista-tit { font-size: .85rem; font-weight: 550; color: var(--ui-text); line-height: 1.35; }
.lista-det { font-size: .76rem; color: var(--ui-text-3); margin-top: 2px; overflow: hidden; text-overflow: ellipsis; }
.lista-meta { font-size: .74rem; color: var(--ui-text-3); white-space: nowrap; font-variant-numeric: tabular-nums; }
.chips { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 6px; }
.chip { font-size: .72rem; padding: 2px 8px; border-radius: 6px; background: var(--ui-surface-3); color: var(--ui-text-2); font-variant-numeric: tabular-nums; }
.vazio { text-align: center; color: var(--ui-text-3); font-size: .85rem; padding: 26px 10px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.vazio svg { width: 28px; height: 28px; color: var(--ui-success); }

/* Supervisores */
.sup-linha { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 6px 12px; padding: 10px 0; border-bottom: 1px solid var(--ui-border); }
.sup-linha:last-child { border-bottom: 0; }
.sup-nome { font-size: .85rem; font-weight: 550; color: var(--ui-text); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sup-val { font-size: .8rem; color: var(--ui-text-2); font-variant-numeric: tabular-nums; }
.sup-linha .barra { grid-column: 1 / -1; }

/* Atalhos */
.atalhos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.atalho {
    display: flex; align-items: center; gap: 10px; padding: 12px; border-radius: 10px;
    background: var(--ui-surface-2); border: 1px solid var(--ui-border); color: var(--ui-text);
    font: inherit; font-size: .84rem; font-weight: 550; cursor: pointer; text-align: left;
    transition: border-color .15s, background .15s;
}
.atalho:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.atalho svg { width: 18px; height: 18px; color: var(--ui-accent-text); flex-shrink: 0; }

/* Programação da semana */
.semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.dia { background: var(--ui-surface-2); border: 1px solid var(--ui-border); border-radius: 10px; padding: 10px; min-height: 120px; min-width: 0; }
.dia.hoje { border-color: var(--ui-accent); box-shadow: inset 0 0 0 1px var(--ui-accent); }
.dia-cab { font-size: .72rem; color: var(--ui-text-3); text-transform: uppercase; letter-spacing: .04em; display: flex; justify-content: space-between; margin-bottom: 8px; }
.dia-cab b { color: var(--ui-text); font-size: .9rem; letter-spacing: 0; }
.dia-item { font-size: .74rem; padding: 6px 7px; border-radius: 6px; background: var(--ui-surface); border-left: 2px solid var(--ui-accent); margin-bottom: 5px; color: var(--ui-text-2); overflow: hidden; }
.dia-item b { display: block; color: var(--ui-text); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dia-mais { font-size: .72rem; color: var(--ui-text-3); }

/* Skeleton */
.sk { position: relative; overflow: hidden; background: var(--ui-surface-2); border-radius: 8px; }
.sk::after { content: ''; position: absolute; inset: 0; transform: translateX(-100%); background: linear-gradient(90deg, transparent, rgba(255,255,255,.05), transparent); animation: uiShimmer 1.2s infinite; }
[data-theme="light"] .sk::after { background: linear-gradient(90deg, transparent, rgba(255,255,255,.7), transparent); }
.sk-linha { height: 12px; margin: 8px 0; }
.sk-num { height: 30px; width: 55%; }
.sk-bloco { height: 220px; }

/* Erro com "tentar novamente" */
.erro-box { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 40px 16px; color: var(--ui-text-2); text-align: center; }
.erro-box svg { width: 30px; height: 30px; color: var(--ui-danger); }

/* ---------- Responsivo do painel ---------- */
@media (max-width: 1280px) {
    .span-fill { grid-column: span 12 !important; }
    .span-3 { grid-column: span 6; }
    .span-4, .span-5 { grid-column: span 6; }
    .span-7, .span-8 { grid-column: span 12; }
    .semana { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
@media (max-width: 900px) {
    .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .ini { padding: 16px 14px 28px; gap: 14px; }
    .ini-grid { gap: 14px; }
    .span-3, .span-4, .span-5, .span-6 { grid-column: span 12; }
    .kpi-card { padding: 14px; }
    .kpi-valor { font-size: 1.4rem; }
    .semana { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: 72%; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 4px; }
    .dia { scroll-snap-align: start; }
    .funil-linha { grid-template-columns: 110px 1fr 56px; }
    .ini-head { align-items: stretch; }
    .ini-filtros { width: 100%; display: grid; grid-template-columns: 1fr 1fr; }
    .ini-filtros .seg { grid-column: 1 / -1; display: flex; }
    .ini-filtros .seg button { flex: 1; }
    .ini-filtros select { width: 100%; }
}
@media (max-width: 420px) {
    .kpi-ico { display: none; }
    .atalhos { grid-template-columns: 1fr; }
}

/* ---------- Ajustes gerais das telas antigas no celular ---------- */
@media (max-width: 960px) {
    .kanban-toolbar { padding: 12px 14px !important; flex-direction: column; align-items: stretch !important; }
    .kanban-toolbar > div { width: 100%; }
    .kanban-container { padding: 12px 14px !important; scroll-snap-type: x mandatory; }
    .kanban-column { min-width: 86vw !important; scroll-snap-align: start; }
    .search-input { width: 100% !important; min-width: 0 !important; }
    .filter-select { flex: 1; min-width: 0; }
    .modal-overlay { padding: 0 !important; align-items: flex-end !important; }
    .modal { max-width: 100% !important; width: 100% !important; max-height: 92vh !important; border-radius: 18px 18px 0 0 !important; margin: 0 !important; }
    .table-wrapper { overflow-x: auto; -webkit-overflow-scrolling: touch; }
    .btn { min-height: 40px; }
}

/* =====================================================================
   COMPONENTES NOVOS: telas, tabelas, painel lateral, confirmação
   ===================================================================== */
.sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.mudo { color: var(--ui-text-3); }
mark { background: rgba(255, 104, 0, .22); color: inherit; border-radius: 3px; padding: 0 1px; }
.giro { width: 15px; height: 15px; border: 2px solid rgba(255,255,255,.35); border-top-color: #fff; border-radius: 50%; display: inline-block; animation: giro .7s linear infinite; }
@keyframes giro { to { transform: rotate(360deg); } }
.btn .ui-icon { width: 16px; height: 16px; }
.btn-perigo { background: var(--ui-danger) !important; color: #fff !important; }
.btn-perigo:hover { filter: brightness(1.08); }
.btn-texto-perigo { background: transparent !important; color: var(--ui-danger) !important; border-color: transparent !important; margin-right: auto; }
.btn-texto-perigo:hover { background: var(--ui-danger-soft) !important; }

/* Tela padrão */
.page#page-cadastros { overflow-y: auto; }
.tela { padding: 22px 24px 40px; max-width: 1280px; width: 100%; margin: 0 auto; display: flex; flex-direction: column; gap: 18px; }
.tela-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.tela-head h1 { margin: 0; font-size: 1.45rem; font-weight: 700; letter-spacing: -.02em; color: var(--ui-text); }
.tela-head p { margin: 4px 0 0; color: var(--ui-text-3); font-size: .875rem; }

/* Cadastros */
.cad { display: grid; grid-template-columns: 230px minmax(0, 1fr); gap: 18px; align-items: start; }
.cad-tabs { display: flex; flex-direction: column; gap: 2px; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; padding: 8px; position: sticky; top: 0; }
.cad-tab {
    display: flex; align-items: center; gap: 10px; width: 100%; padding: 10px 10px; border-radius: 9px;
    background: none; border: 0; color: var(--ui-text-2); font: inherit; font-size: .875rem; font-weight: 500; cursor: pointer; text-align: left;
}
.cad-tab .ui-icon { width: 18px; height: 18px; color: var(--ui-text-3); }
.cad-tab span { flex: 1; }
.cad-tab b { font-size: .72rem; font-weight: 600; color: var(--ui-text-3); background: var(--ui-surface-3); padding: 1px 8px; border-radius: 999px; font-variant-numeric: tabular-nums; }
.cad-tab:hover { background: var(--ui-surface-2); color: var(--ui-text); }
.cad-tab.ativo { background: var(--ui-accent-soft); color: var(--ui-accent-text); font-weight: 600; }
.cad-tab.ativo .ui-icon { color: var(--ui-accent-text); }
.cad-tab.ativo b { background: rgba(255,104,0,.18); color: var(--ui-accent-text); }

.cad-painel { background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; overflow: hidden; min-width: 0; }
.cad-barra { display: flex; gap: 10px; align-items: center; padding: 14px; border-bottom: 1px solid var(--ui-border); flex-wrap: wrap; }
.busca { flex: 1; min-width: 200px; position: relative; display: flex; align-items: center; }
.busca .ui-icon { position: absolute; left: 12px; width: 17px; height: 17px; color: var(--ui-text-3); pointer-events: none; }
.busca input { width: 100%; padding-left: 38px !important; }
.cad-barra select { width: auto; }
.cad-total { font-size: .8rem; color: var(--ui-text-3); white-space: nowrap; font-variant-numeric: tabular-nums; }

.cad-rapido { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-bottom: 1px solid var(--ui-border); background: var(--ui-surface-2); }
.cad-rapido > .ui-icon { width: 18px; height: 18px; color: var(--ui-accent-text); flex-shrink: 0; }
.cad-rapido input { flex: 1; background: transparent !important; border-color: transparent !important; padding-left: 4px !important; }
.cad-rapido input:focus { background: var(--ui-surface) !important; border-color: var(--ui-accent) !important; }

.tabela { overflow-x: auto; }
.tabela table { width: 100%; }
.tabela th { text-align: left; padding: 10px 14px !important; white-space: nowrap; position: static !important; }
.tabela td { padding: 11px 14px !important; vertical-align: middle; font-size: .875rem; }
.tabela td small { display: block; color: var(--ui-text-3); font-size: .76rem; margin-top: 2px; max-width: 420px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tabela .num { text-align: right; white-space: nowrap; }
.tabela .acoes { width: 1%; white-space: nowrap; text-align: right; }
.tabela tbody tr[tabindex] { cursor: pointer; }
.tabela tbody tr:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: -2px; }
.tabela tbody tr.novo td { animation: linhaNova 1.8s ease; }
@keyframes linhaNova { 0%, 40% { background: rgba(255, 104, 0, .14); } 100% { background: transparent; } }
.tabela td b { font-weight: 600; color: var(--ui-text); }
.cad-avatar { width: 28px; height: 28px; border-radius: 8px; background: var(--ui-surface-3); color: var(--ui-text-2); display: inline-flex; align-items: center; justify-content: center; font-size: .75rem; font-weight: 700; margin-right: 10px; vertical-align: middle; }
.pill { display: inline-block; font-size: .74rem; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--ui-surface-3); color: var(--ui-text-2); }
.tag { display: inline-block; font-size: .74rem; font-weight: 700; padding: 3px 9px; border-radius: 6px; color: var(--c); background: color-mix(in srgb, var(--c) 16%, transparent); border: 1px solid color-mix(in srgb, var(--c) 35%, transparent); letter-spacing: .02em; }
.ico-btn {
    width: 34px; height: 34px; border-radius: 8px; border: 1px solid transparent; background: none; color: var(--ui-text-3);
    display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: background .15s, color .15s;
}
.ico-btn .ui-icon { width: 17px; height: 17px; }
.ico-btn:hover { background: var(--ui-surface-3); color: var(--ui-text); }
.ico-btn.perigo:hover { background: var(--ui-danger-soft); color: var(--ui-danger); }
.tabela tr .acoes .ico-btn { opacity: .55; }
.tabela tr:hover .acoes .ico-btn, .tabela tr:focus-within .acoes .ico-btn { opacity: 1; }

.estado-vazio { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 48px 16px; text-align: center; color: var(--ui-text-2); }
.estado-vazio .ui-icon { width: 34px; height: 34px; color: var(--ui-text-3); margin-bottom: 6px; }
.estado-vazio span { color: var(--ui-text-3); font-size: .85rem; }

/* Formulários novos */
.form { display: flex; flex-direction: column; gap: 16px; }
.fgrid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.fld { display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.fld label { font-size: .8rem !important; font-weight: 600 !important; color: var(--ui-text-2) !important; }
.fld input, .fld select, .fld textarea { width: 100%; padding: 9px 12px; }
.fld .ajuda { color: var(--ui-text-3); font-size: .75rem; }
.cor-linha { display: flex; align-items: center; gap: 12px; }
.cor-linha input[type="color"] { width: 54px; padding: 3px !important; cursor: pointer; }
.nota { display: flex; gap: 10px; align-items: flex-start; padding: 12px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); color: var(--ui-text-2); font-size: .82rem; }
.nota .ui-icon { width: 17px; height: 17px; color: var(--ui-text-3); flex-shrink: 0; margin-top: 1px; }

/* Painel lateral */
.dw-overlay { position: fixed; inset: 0; z-index: 1500; background: rgba(5, 6, 8, 0); transition: background .18s ease; }
.dw-overlay.aberto { background: rgba(5, 6, 8, .55); }
.dw {
    position: absolute; top: 0; right: 0; bottom: 0; width: min(460px, 100vw);
    background: var(--ui-surface); border-left: 1px solid var(--ui-border); box-shadow: var(--ui-shadow-lg);
    display: flex; flex-direction: column; transform: translateX(24px); opacity: 0; transition: transform .18s ease, opacity .18s ease;
}
.dw.dw-largo { width: min(720px, 100vw); }
.dw-overlay.aberto .dw { transform: none; opacity: 1; }
.dw-head { display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--ui-border); }
.dw-ico { width: 38px; height: 38px; border-radius: 10px; background: var(--ui-accent-soft); color: var(--ui-accent-text); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.dw-ico .ui-icon { width: 19px; height: 19px; }
.dw-tit { flex: 1; min-width: 0; }
.dw-tit h2 { margin: 0; font-size: 1.05rem; font-weight: 650; color: var(--ui-text); }
.dw-tit p { margin: 3px 0 0; font-size: .82rem; color: var(--ui-text-3); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dw-fechar { width: 34px; height: 34px; border-radius: 8px; border: 0; background: none; color: var(--ui-text-3); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.dw-fechar:hover { background: var(--ui-surface-2); color: var(--ui-text); }
.dw-fechar .ui-icon { width: 19px; height: 19px; }
.dw-corpo { flex: 1; overflow-y: auto; padding: 20px; }
.dw-rodape { display: flex; gap: 10px; justify-content: flex-end; flex-wrap: wrap; padding: 14px 20px; border-top: 1px solid var(--ui-border); background: var(--ui-surface); padding-bottom: calc(14px + env(safe-area-inset-bottom)); }

/* Confirmação */
.cf-overlay { position: fixed; inset: 0; z-index: 2100; background: rgba(5, 6, 8, 0); display: flex; align-items: center; justify-content: center; padding: 16px; transition: background .15s; }
.cf-overlay.aberto { background: rgba(5, 6, 8, .6); }
.cf { width: 100%; max-width: 400px; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 16px; box-shadow: var(--ui-shadow-lg); padding: 22px; transform: scale(.97); opacity: 0; transition: transform .15s, opacity .15s; }
.cf-overlay.aberto .cf { transform: none; opacity: 1; }
.cf-ico { width: 42px; height: 42px; border-radius: 12px; display: flex; align-items: center; justify-content: center; background: var(--ui-accent-soft); color: var(--ui-accent-text); margin-bottom: 14px; }
.cf-ico.perigo { background: var(--ui-danger-soft); color: var(--ui-danger); }
.cf-ico .ui-icon { width: 21px; height: 21px; }
.cf h2 { margin: 0 0 6px; font-size: 1.05rem; font-weight: 650; color: var(--ui-text); }
.cf p { margin: 0; color: var(--ui-text-2); font-size: .875rem; line-height: 1.55; }
.cf-botoes { display: flex; gap: 10px; justify-content: flex-end; margin-top: 20px; }

@media (max-width: 960px) {
    .tela { padding: 16px 14px 28px; }
    .tela-head .btn { width: 100%; }
    .cad { grid-template-columns: 1fr; gap: 12px; }
    .cad-tabs { flex-direction: row; overflow-x: auto; position: static; padding: 6px; scrollbar-width: none; }
    .cad-tabs::-webkit-scrollbar { display: none; }
    .cad-tab { width: auto; flex-shrink: 0; white-space: nowrap; }
    .cad-barra select { flex: 1; }
    .cad-total { width: 100%; }
    /* Tabela vira lista de cartões */
    .tabela thead { display: none; }
    .tabela table, .tabela tbody, .tabela tr, .tabela td { display: block; width: 100%; }
    .tabela tr { position: relative; padding: 12px 14px; border-bottom: 1px solid var(--ui-border); }
    .tabela td { border: 0 !important; padding: 3px 0 !important; text-align: left !important; display: flex; justify-content: space-between; gap: 12px; }
    .tabela td::before { content: attr(data-r); color: var(--ui-text-3); font-size: .78rem; }
    .tabela td:first-child { padding-right: 84px !important; }
    .tabela td:first-child::before, .tabela td.acoes::before { display: none; }
    .tabela td.acoes { position: absolute; top: 8px; right: 8px; width: auto; padding: 0 !important; }
    .tabela tr .acoes .ico-btn { opacity: 1; width: 38px; height: 38px; }
    .fgrid { grid-template-columns: 1fr; }
    .dw { top: auto; left: 0; width: 100% !important; max-height: 92vh; border-left: 0; border-top: 1px solid var(--ui-border); border-radius: 18px 18px 0 0; transform: translateY(30px); }
    .dw-rodape .btn { flex: 1; }
    .btn-texto-perigo { flex: 0 0 100% !important; order: 3; margin: 0; }
}

/* ---------- Usuários e acessos ---------- */
.page#page-usuarios { overflow-y: auto; }
.usr-resumo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
.usr-resumo .kpi-valor { font-size: 1.5rem; }
.usr-abas { display: flex; gap: 4px; padding: 8px 10px 0; border-bottom: 1px solid var(--ui-border); }
.usr-abas button { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border: 0; background: none; color: var(--ui-text-2); font: inherit; font-size: .875rem; font-weight: 550; cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.usr-abas button .ui-icon { width: 17px; height: 17px; }
.usr-abas button:hover { color: var(--ui-text); }
.usr-abas button.ativo { color: var(--ui-text); border-bottom-color: var(--ui-accent); }
.usr-id { display: flex; align-items: center; gap: 12px; min-width: 0; }
.usr-id small { white-space: nowrap; }
.usr-av { width: 36px; height: 36px; border-radius: 50%; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 700; color: var(--c); background: color-mix(in srgb, var(--c) 15%, transparent); border: 1px solid color-mix(in srgb, var(--c) 35%, transparent); }
.tabela tr.inativo td { opacity: .55; }
.status { display: inline-flex; align-items: center; gap: 7px; font-size: .82rem; }
.status::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--ui-text-3); }
.status.on::before { background: var(--ui-success); box-shadow: 0 0 0 3px var(--ui-success-soft); }
.evento { font-size: .78rem; font-weight: 600; padding: 2px 9px; border-radius: 999px; background: var(--ui-surface-3); color: var(--ui-text-2); white-space: nowrap; }
.evento.ok { background: var(--ui-success-soft); color: var(--ui-success); }
.evento.erro { background: var(--ui-danger-soft); color: var(--ui-danger); }
.evento.info { background: var(--ui-info-soft); color: var(--ui-info); }
.link { background: none; border: 0; color: var(--ui-accent-text); font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; padding: 4px 6px; border-radius: 6px; }
.link:hover { background: var(--ui-accent-soft); }

.form-sec { margin: 6px 0 -4px; font-size: .78rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ui-text-3); }
.form-sec:first-child { margin-top: 0; }
.senha { position: relative; }
.senha input { padding-right: 44px !important; }
.senha .ico-btn { position: absolute; right: 3px; top: 50%; transform: translateY(-50%); }
.forca { height: 4px; border-radius: 4px; background: var(--ui-surface-3); overflow: hidden; margin-top: 2px; }
.forca i { display: block; height: 100%; width: 0; transition: width .2s, background .2s; }
.forca.n1 i { width: 25%; background: var(--ui-danger); } .forca.n2 i { width: 50%; background: var(--ui-warning); }
.forca.n3 i { width: 75%; background: var(--ui-info); } .forca.n4 i { width: 100%; background: var(--ui-success); }
.niveis { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.nivel-op { position: relative; display: flex; flex-direction: column; gap: 3px; padding: 11px 12px 11px 34px; border-radius: 10px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); cursor: pointer; transition: border-color .15s, background .15s; }
.nivel-op input { position: absolute; left: 11px; top: 13px; }
.nivel-op b { font-size: .85rem; color: var(--ui-text); }
.nivel-op small { font-size: .74rem; color: var(--ui-text-3); line-height: 1.35; }
.nivel-op:hover { border-color: var(--ui-border-strong); }
.nivel-op.sel { border-color: var(--c); background: color-mix(in srgb, var(--c) 10%, var(--ui-surface-2)); }
.chave { display: flex; align-items: flex-start; gap: 12px; cursor: pointer; padding: 4px 0; }
.chave input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.chave-ui { width: 38px; height: 22px; border-radius: 22px; background: var(--ui-surface-3); border: 1px solid var(--ui-border-strong); position: relative; flex-shrink: 0; transition: background .15s; margin-top: 2px; }
.chave-ui::after { content: ''; position: absolute; top: 2px; left: 2px; width: 16px; height: 16px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.3); }
.chave input:checked + .chave-ui { background: var(--ui-success); border-color: var(--ui-success); }
.chave input:checked + .chave-ui::after { transform: translateX(16px); }
.chave input:focus-visible + .chave-ui { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.chave input:disabled + .chave-ui { opacity: .5; }
.chave b { display: block; font-size: .875rem; color: var(--ui-text); }
.chave small { color: var(--ui-text-3); font-size: .76rem; }
.perm-barra { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.perm-barra .busca { min-width: 180px; }
.perm-grupos { display: flex; flex-direction: column; gap: 8px; }
.perm-grupos.desativado { opacity: .45; pointer-events: none; }
.perm-g { border: 1px solid var(--ui-border); border-radius: 10px; background: var(--ui-surface-2); }
.perm-g summary { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; list-style: none; font-size: .85rem; font-weight: 600; color: var(--ui-text); }
.perm-g summary::-webkit-details-marker { display: none; }
.perm-g summary::before { content: ''; width: 7px; height: 7px; border-right: 2px solid var(--ui-text-3); border-bottom: 2px solid var(--ui-text-3); transform: rotate(-45deg); transition: transform .15s; margin-right: 2px; }
.perm-g[open] summary::before { transform: rotate(45deg); }
.perm-g summary span { flex: 1; }
.perm-g summary em { font-style: normal; font-size: .74rem; color: var(--ui-text-3); font-variant-numeric: tabular-nums; }
.perm-itens { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 2px 10px; padding: 4px 12px 12px; }
.perm-i { display: flex; align-items: center; gap: 9px; padding: 7px 6px; border-radius: 7px; cursor: pointer; font-size: .84rem; color: var(--ui-text-2); }
.perm-i:hover { background: var(--ui-surface-3); color: var(--ui-text); }
.perm-i input { width: 16px; height: 16px; }
@media (max-width: 960px) {
    .usr-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
    .usr-abas { overflow-x: auto; }
    .niveis { grid-template-columns: 1fr; }
}

input:disabled, select:disabled, textarea:disabled { opacity: .6; cursor: not-allowed; }


/* ---------- Kanban (cards novos) ---------- */
#page-kanban .kanban-toolbar { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; justify-content: flex-start !important; }
.kb-busca { flex: 1 1 260px; max-width: 420px; }
.kb-filtros { display: flex; gap: 8px; flex-wrap: wrap; }
.kb-filtros select { width: auto; min-width: 170px; }
.kb-acoes { display: flex; gap: 8px; align-items: center; margin-left: auto; flex-wrap: wrap; }
.chip-filtro { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 12px; border-radius: 9px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); font: inherit; font-size: .82rem; font-weight: 550; cursor: pointer; }
.chip-filtro .ui-icon { width: 15px; height: 15px; }
.chip-filtro[aria-pressed="true"] { border-color: var(--ui-danger); background: var(--ui-danger-soft); color: var(--ui-danger); }
.column-header { flex-wrap: wrap; row-gap: 2px; }
.column-header h2 { display: flex; align-items: center; gap: 8px; }
.col-dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.col-sub { width: 100%; font-size: .74rem; color: var(--ui-text-3); font-variant-numeric: tabular-nums; }
.kanban-column { display: flex; flex-direction: column; }
.cards-container { display: flex; flex-direction: column; gap: 8px; }

.card.kc { padding: 12px 12px 10px !important; display: flex; flex-direction: column; gap: 9px; cursor: pointer; margin: 0 !important; }
.card.kc:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.card.kc.atrasado { box-shadow: inset 3px 0 0 var(--ui-danger) !important; }
.kc-top { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.kc-num { font-size: .95rem; font-weight: 700; color: var(--ui-text); letter-spacing: -.01em; margin-right: auto; font-variant-numeric: tabular-nums; }
.kc-top .tag { font-size: .68rem; padding: 2px 7px; }
.kc-rede, .kc-aes { font-size: .68rem; font-weight: 600; color: var(--ui-text-3); background: var(--ui-surface-3); padding: 2px 7px; border-radius: 6px; }
.kc-loc { display: flex; align-items: center; gap: 5px; font-size: .78rem; color: var(--ui-text-2); min-width: 0; }
.kc-loc .ui-icon { width: 14px; height: 14px; color: var(--ui-text-3); flex-shrink: 0; }
.kc-loc span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.kc-sep { color: var(--ui-text-3); }
.kc-us { display: flex; flex-direction: column; gap: 5px; }
.kc-us-num { display: flex; align-items: baseline; gap: 5px; font-size: .78rem; color: var(--ui-text-3); font-variant-numeric: tabular-nums; }
.kc-us-num b { font-size: .92rem; color: var(--ui-text); font-weight: 650; }
.kc-us-num em { margin-left: auto; font-style: normal; font-weight: 650; color: var(--ui-text-2); }
.kc-us-num em.ok { color: var(--ui-success); }
.kc-us-num em.acima { color: var(--ui-warning); }
.kc-us .barra { height: 5px; }
.kc-rodape { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.chip-prazo, .chip-us { display: inline-flex; align-items: center; gap: 4px; font-size: .7rem; font-weight: 600; padding: 2px 7px; border-radius: 6px; background: var(--ui-surface-3); color: var(--ui-text-2); white-space: nowrap; }
.chip-prazo .ui-icon, .chip-us .ui-icon { width: 12px; height: 12px; }
.chip-prazo.atrasado { background: var(--ui-danger-soft); color: var(--ui-danger); }
.chip-prazo.proximo { background: var(--ui-warning-soft); color: var(--ui-warning); }
.chip-us.fim { background: var(--ui-success-soft); color: var(--ui-success); }
.kc-add { margin-left: auto; display: inline-flex; align-items: center; gap: 3px; height: 26px; padding: 0 9px; border-radius: 7px; border: 1px solid var(--ui-border); background: var(--ui-surface); color: var(--ui-accent-text); font: inherit; font-size: .72rem; font-weight: 700; cursor: pointer; opacity: 0; transition: opacity .15s; }
.kc-add .ui-icon { width: 13px; height: 13px; }
.kc:hover .kc-add, .kc:focus-within .kc-add { opacity: 1; }
.kc-add:hover { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.kc.compacto { gap: 6px; padding: 9px 11px !important; }
.kc.compacto .kc-loc, .kc.compacto .kc-us .barra { display: none; }
.kc.compacto .kc-rodape .chip-us { display: none; }
@media (hover: none) { .kc-add { opacity: 1; } }

/* ---------- Detalhes da obra ---------- */
.etapas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; margin-bottom: 16px; }
.etapa { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; padding: 9px 10px; border-radius: 9px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-3); font: inherit; font-size: .76rem; font-weight: 600; cursor: pointer; text-align: left; }
.etapa i { width: 100%; height: 4px; border-radius: 4px; background: var(--ui-surface-3); }
.etapa.feita i { background: color-mix(in srgb, var(--c) 55%, transparent); }
.etapa.atual { border-color: var(--c); color: var(--ui-text); background: color-mix(in srgb, var(--c) 10%, var(--ui-surface-2)); }
.etapa.atual i { background: var(--c); }
.etapa:not(:disabled):hover { border-color: var(--c); color: var(--ui-text); }
.etapa:disabled { cursor: default; }
.obra-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.obra-kpis > div { background: var(--ui-surface-2); border: 1px solid var(--ui-border); border-radius: 10px; padding: 10px 12px; min-width: 0; }
.obra-kpis span { display: block; font-size: .72rem; color: var(--ui-text-3); }
.obra-kpis b { display: block; font-size: 1.02rem; font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; margin-top: 2px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.obra-kpis b.pos { color: var(--ui-success); } .obra-kpis b.neg { color: var(--ui-danger); }
.obra-prog { display: flex; align-items: center; gap: 10px; margin: 10px 0 18px; font-size: .76rem; color: var(--ui-text-3); }
.obra-prog .barra { flex: 1; }
.info-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1px; background: var(--ui-border); border: 1px solid var(--ui-border); border-radius: 10px; overflow: hidden; margin-bottom: 12px; }
.info { background: var(--ui-surface); padding: 9px 12px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.info span { font-size: .72rem; color: var(--ui-text-3); }
.info b { font-size: .86rem; font-weight: 550; color: var(--ui-text); overflow-wrap: anywhere; }
.nota { margin-bottom: 10px; }
.nota.ok { border-color: rgba(52,196,124,.3); background: var(--ui-success-soft); color: var(--ui-text); }
.nota.ok .ui-icon { color: var(--ui-success); }
.nota a { color: var(--ui-accent-text); font-weight: 600; }
.us-linha { display: flex; flex-direction: column; margin: 4px 0 12px; }
.us-item2 { display: flex; align-items: center; gap: 12px; padding: 9px 0; border-bottom: 1px dashed var(--ui-border); }
.us-item2 > i { width: 10px; height: 10px; border-radius: 50%; border: 2px solid var(--ui-accent); flex-shrink: 0; }
.us-item2.fim > i { background: var(--ui-success); border-color: var(--ui-success); }
.us-item2 > div { flex: 1; min-width: 0; }
.us-item2 b { display: block; font-size: .86rem; color: var(--ui-text); }
.us-item2 small { color: var(--ui-text-3); font-size: .75rem; }
.us-val { font-weight: 650; font-variant-numeric: tabular-nums; color: var(--ui-text); white-space: nowrap; }
.us-form { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 10px; align-items: end; padding: 12px; border-radius: 12px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.us-form .us-obs { grid-column: 1 / 3; }
.us-form > .btn { height: 38px; }
.us-dica { grid-column: 1 / -1; margin: 0; font-size: .76rem; color: var(--ui-warning); }
.us-dica:empty { display: none; }

/* ---------- Formulário de obra ---------- */
.obrig { color: var(--ui-danger); }
.sel-novo { display: flex; gap: 6px; align-items: center; }
.sel-novo > select, .sel-novo > input { flex: 1; min-width: 0; }
.sel-novo .ico-btn { border: 1px solid var(--ui-border); background: var(--ui-surface-2); height: 38px; width: 38px; flex-shrink: 0; }
.novo-inline { display: flex; gap: 6px; margin-top: 6px; }
.novo-inline input { flex: 1; }
.mapa-mini { height: 220px; border-radius: 10px; border: 1px solid var(--ui-border); overflow: hidden; z-index: 0; }
.perm-g summary em { margin-left: auto; }

@media (max-width: 960px) {
    .kb-busca { max-width: none; flex-basis: 100%; }
    .kb-filtros { width: 100%; }
    .kb-filtros select { flex: 1; min-width: 0; }
    .kb-acoes { margin-left: 0; width: 100%; }
    .kb-acoes .btn-primary { flex: 1; }
    .etapas { grid-template-columns: repeat(2, 1fr); }
    .obra-kpis { grid-template-columns: repeat(2, 1fr); }
    .info-grid { grid-template-columns: 1fr; }
    .us-form { grid-template-columns: 1fr 1fr; }
    .us-form .fld:first-child, .us-form .us-obs, .us-form > .btn { grid-column: 1 / -1; }
}

/* ---------- Cabeçalho das colunas do Kanban (v2) ---------- */
.col-preparacao { --col: #8A94A3; } .col-execucao { --col: #5B9DF2; } .col-pde { --col: #FF6800; } .col-finalizados { --col: #34C47C; }
#page-kanban .kanban-column { overflow: hidden; position: relative; }
#page-kanban .kanban-column::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--col); opacity: .9; z-index: 1; }
#page-kanban .column-header {
    box-shadow: none !important; border-bottom: 1px solid var(--ui-border) !important;
    background: linear-gradient(180deg, color-mix(in srgb, var(--col) 13%, transparent), transparent 90%) !important;
    padding: 16px 16px 12px !important; display: grid !important; grid-template-columns: 1fr auto; align-items: center; gap: 2px 10px;
}
#page-kanban .column-header h2 { margin: 0; display: flex; align-items: center; gap: 10px; font-size: .92rem !important; font-weight: 650 !important; min-width: 0; }
.col-ico { width: 30px; height: 30px; border-radius: 9px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center;
    color: var(--col); background: color-mix(in srgb, var(--col) 16%, transparent); border: 1px solid color-mix(in srgb, var(--col) 30%, transparent); }
.col-ico .ui-icon { width: 16px; height: 16px; }
.col-nome { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
#page-kanban .column-count {
    background: color-mix(in srgb, var(--col) 18%, transparent) !important; color: var(--col) !important;
    border: 1px solid color-mix(in srgb, var(--col) 32%, transparent); font-weight: 700 !important; min-width: 30px; text-align: center;
    padding: 3px 10px !important; font-variant-numeric: tabular-nums;
}
#page-kanban .col-sub { grid-column: 1 / -1; padding-left: 40px; margin-top: -2px; }
.col-dot { display: none; }

/* =====================================================================
   PAINÉIS LATERAIS v2 (todas as telas)
   ===================================================================== */
.dw { --dw-c: var(--ui-accent); background: var(--ui-bg) !important; }
.dw-head {
    position: relative; padding: 20px 22px 18px !important; border-bottom: 1px solid var(--ui-border);
    background: linear-gradient(180deg, color-mix(in srgb, var(--dw-c) 14%, var(--ui-surface)) 0%, var(--ui-surface) 100%);
}
.dw-head::before { content: ''; position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--dw-c); }
.dw-ico { width: 44px !important; height: 44px !important; border-radius: 12px !important; color: var(--dw-c) !important;
    background: color-mix(in srgb, var(--dw-c) 16%, transparent) !important; border: 1px solid color-mix(in srgb, var(--dw-c) 32%, transparent); }
.dw-ico .ui-icon { width: 21px !important; height: 21px !important; }
.dw-tit h2 { font-size: 1.15rem !important; font-weight: 700 !important; letter-spacing: -.015em; }
.dw-tit p { font-size: .84rem !important; margin-top: 4px !important; }
.dw-corpo { padding: 18px 20px 24px !important; display: flex; flex-direction: column; gap: 14px; }
.dw-corpo > .form { gap: 14px; }
.dw-rodape { background: var(--ui-surface) !important; box-shadow: 0 -8px 20px rgba(0,0,0,.18); }
.dw .form-sec { display: flex; align-items: center; gap: 10px; margin: 8px 0 0 !important; }
.dw .form-sec::after { content: ''; flex: 1; height: 1px; background: var(--ui-border); }
.dw .form-sec .mudo { text-transform: none; letter-spacing: 0; font-weight: 500; }

/* Cartões dentro do painel */
.dcard { background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; padding: 14px 16px 16px; }
.dcard > header { display: flex; align-items: center; gap: 9px; margin-bottom: 12px; }
.dcard > header .ui-icon { width: 17px; height: 17px; color: var(--ui-text-3); }
.dcard > header h3 { margin: 0; font-size: .9rem; font-weight: 650; color: var(--ui-text); }
.dcard-extra { margin-left: auto; font-size: .74rem; font-weight: 600; color: var(--ui-text-2); background: var(--ui-surface-3); padding: 3px 9px; border-radius: 999px; }

/* Etapas (stepper) */
.stepper { display: grid; grid-template-columns: repeat(4, 1fr); position: relative; padding: 4px 0 2px; }
.stepper::before { content: ''; position: absolute; left: 12.5%; right: 12.5%; top: 21px; height: 2px; background: var(--ui-border); }
.step { position: relative; display: flex; flex-direction: column; align-items: center; gap: 7px; background: none; border: 0; padding: 0 4px; cursor: pointer; color: var(--ui-text-3); font: inherit; }
.step:disabled { cursor: default; }
.step-bola { width: 36px; height: 36px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: var(--ui-surface); border: 2px solid var(--ui-border-strong); color: var(--ui-text-3); position: relative; z-index: 1; transition: transform .15s, border-color .15s, background .15s; }
.step-bola .ui-icon { width: 16px; height: 16px; }
.step-nome { font-size: .74rem; font-weight: 600; text-align: center; line-height: 1.25; }
.step.feita .step-bola { background: color-mix(in srgb, var(--c) 22%, var(--ui-surface)); border-color: var(--c); color: var(--c); }
.step.feita .step-nome { color: var(--ui-text-2); }
.step.atual .step-bola { background: var(--c); border-color: var(--c); color: #fff; box-shadow: 0 0 0 5px color-mix(in srgb, var(--c) 22%, transparent); }
.step.atual .step-nome { color: var(--ui-text); }
.step:not(:disabled):hover .step-bola { transform: scale(1.08); border-color: var(--c); color: var(--c); }
.step:not(:disabled):hover .step-nome { color: var(--ui-text); }
.step:focus-visible { outline: none; }
.step:focus-visible .step-bola { outline: 2px solid var(--ui-accent); outline-offset: 3px; }

/* Destaque de progresso */
.dhero { display: flex; gap: 18px; align-items: center; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; padding: 16px; }
.dhero-anel {
    --p: 0; width: 104px; height: 104px; border-radius: 50%; flex-shrink: 0; position: relative;
    background: conic-gradient(var(--c) calc(var(--p) * 1%), var(--ui-surface-3) 0);
    display: flex; flex-direction: column; align-items: center; justify-content: center;
}
.dhero-anel::before { content: ''; position: absolute; inset: 9px; border-radius: 50%; background: var(--ui-surface); }
.dhero-anel b, .dhero-anel span { position: relative; }
.dhero-anel b { font-size: 1.35rem; font-weight: 750; color: var(--ui-text); font-variant-numeric: tabular-nums; letter-spacing: -.02em; }
.dhero-anel span { font-size: .68rem; color: var(--ui-text-3); }
.dhero-nums { flex: 1; display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; min-width: 0; }
.dhero-nums span { display: block; font-size: .74rem; color: var(--ui-text-3); }
.dhero-nums b { display: block; font-size: 1.08rem; font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.dhero-nums b.pos { color: var(--ui-success); } .dhero-nums b.neg { color: var(--ui-danger); }

/* Lista de dados com ícones */
.dl-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 18px; }
.dl { display: flex; gap: 11px; align-items: flex-start; min-width: 0; }
.dl-ico { width: 32px; height: 32px; border-radius: 9px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; background: var(--ui-surface-2); border: 1px solid var(--ui-border); color: var(--ui-text-3); }
.dl-ico .ui-icon { width: 15px; height: 15px; }
.dl > div { min-width: 0; }
.dl span { display: block; font-size: .72rem; color: var(--ui-text-3); }
.dl b { display: block; font-size: .87rem; font-weight: 600; color: var(--ui-text); overflow-wrap: anywhere; margin-top: 1px; }
.dl b i.mudo { font-style: normal; font-weight: 500; }
.dl-local { display: flex; align-items: center; gap: 10px; font-size: .86rem; color: var(--ui-text-2); }
.dl-local > .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); flex-shrink: 0; }
.dl-local span { flex: 1; }
.dl-obs { margin: 12px 0 0; padding: 12px; border-radius: 10px; background: var(--ui-surface-2); border-left: 3px solid var(--ui-border-strong); color: var(--ui-text-2); font-size: .86rem; line-height: 1.55; white-space: pre-wrap; }

/* Linha do tempo de US */
.tl { display: flex; flex-direction: column; position: relative; margin-bottom: 12px; }
.tl::before { content: ''; position: absolute; left: 10px; top: 14px; bottom: 14px; width: 2px; background: var(--ui-border); }
.tl-item { display: flex; align-items: center; gap: 12px; padding: 8px 0; position: relative; }
.tl-ponto { width: 22px; height: 22px; border-radius: 50%; flex-shrink: 0; background: var(--ui-surface); border: 2px solid var(--ui-accent); position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; color: #fff; }
.tl-ponto .ui-icon { width: 12px; height: 12px; }
.tl-item.fim .tl-ponto { background: var(--ui-success); border-color: var(--ui-success); }
.tl-txt { flex: 1; min-width: 0; }
.tl-txt b { display: block; font-size: .87rem; color: var(--ui-text); }
.tl-txt small { font-size: .75rem; color: var(--ui-text-3); }
.tl-val { font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; white-space: nowrap; font-size: .92rem; }
.tl-val small { font-size: .7rem; color: var(--ui-text-3); font-weight: 600; margin-left: 3px; }
.vazio-us { display: flex; gap: 12px; align-items: center; padding: 14px; border: 1px dashed var(--ui-border-strong); border-radius: 12px; margin-bottom: 12px; }
.vazio-us > .ui-icon { width: 24px; height: 24px; color: var(--ui-text-3); }
.vazio-us b { display: block; font-size: .87rem; color: var(--ui-text); }
.vazio-us span { font-size: .78rem; color: var(--ui-text-3); }

/* Formulário de lançamento de US */
.us-form2 { display: flex; flex-direction: column; gap: 12px; padding: 14px; border-radius: 12px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.us-form2-tit { display: flex; align-items: center; gap: 7px; font-size: .82rem; font-weight: 700; color: var(--ui-accent-text); }
.us-form2-tit .ui-icon { width: 15px; height: 15px; }
.us-tipos { display: flex; gap: 8px; flex-wrap: wrap; }
.us-tipo { position: relative; cursor: pointer; }
.us-tipo input { position: absolute; opacity: 0; }
.us-tipo span { display: flex; flex-direction: column; padding: 8px 14px; border-radius: 10px; border: 1px solid var(--ui-border-strong); background: var(--ui-surface); color: var(--ui-text-2); font-size: .84rem; font-weight: 600; transition: border-color .15s, background .15s, color .15s; }
.us-tipo span small { font-size: .68rem; font-weight: 500; color: var(--ui-text-3); }
.us-tipo input:checked + span { border-color: var(--ui-accent); background: var(--ui-accent-soft); color: var(--ui-text); }
.us-tipo.final input:checked + span { border-color: var(--ui-success); background: var(--ui-success-soft); }
.us-tipo input:checked + span small { color: var(--ui-text-2); }
.us-tipo input:focus-visible + span { outline: 2px solid var(--ui-accent); outline-offset: 2px; }
.us-campos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.sufixo { position: relative; }
.sufixo input { padding-right: 42px !important; font-size: 1rem !important; font-weight: 650; font-variant-numeric: tabular-nums; }
.sufixo span { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: .78rem; font-weight: 700; color: var(--ui-text-3); pointer-events: none; }
.us-enviar { width: 100%; min-height: 42px !important; }

@media (max-width: 960px) {
    .dhero { flex-direction: column; align-items: stretch; }
    .dhero-anel { align-self: center; }
    .dl-grid { grid-template-columns: 1fr; }
    .step-nome { font-size: .68rem; }
    .step-bola { width: 32px; height: 32px; }
    .stepper::before { top: 19px; }
}

/* Correções: ícones centralizados e espaçamento entre cartões */
#obraCorpo { display: flex; flex-direction: column; gap: 14px; }
.dl .dl-ico { display: flex !important; align-items: center; justify-content: center; font-size: inherit; }
.dl .dl-ico .ui-icon { display: block; margin: 0; }
.dl > div > span { display: block; font-size: .72rem; color: var(--ui-text-3); }
.dl b .tag { margin-right: 6px; vertical-align: 1px; }
.dl b { display: flex; align-items: center; flex-wrap: wrap; gap: 0 4px; }

/* =====================================================================
   FUNDO VIVO: brilhos suaves + rede de partículas (canvas)
   ===================================================================== */
body {
    background:
        radial-gradient(900px 600px at 8% -10%, rgba(255, 104, 0, .10), transparent 60%),
        radial-gradient(800px 600px at 105% 110%, rgba(91, 157, 242, .08), transparent 60%),
        radial-gradient(600px 400px at 60% 40%, rgba(255, 104, 0, .025), transparent 70%),
        var(--ui-bg) !important;
    background-attachment: fixed !important;
}
[data-theme="light"] body {
    background:
        radial-gradient(900px 600px at 8% -10%, rgba(255, 104, 0, .08), transparent 60%),
        radial-gradient(800px 600px at 105% 110%, rgba(47, 116, 208, .06), transparent 60%),
        var(--ui-bg) !important;
}
#fundoRede { position: fixed; inset: 0; z-index: 0; pointer-events: none; }
.sem-fundo #fundoRede { display: none; }
.main-content { position: relative; z-index: 1; background: transparent !important; }
.page, .rdo-container, .eq-container, #page-kanban, .kanban-container, .kanban-toolbar { background: transparent !important; }
/* Textura de grade bem sutil por cima dos brilhos */
body::after {
    content: '' !important; display: block !important; position: fixed; inset: 0; z-index: 0; pointer-events: none;
    background-image: linear-gradient(rgba(255,255,255,.018) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.018) 1px, transparent 1px);
    background-size: 48px 48px;
    -webkit-mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 75%);
    mask-image: radial-gradient(ellipse at 50% 30%, #000 20%, transparent 75%);
}
[data-theme="light"] body::after { background-image: linear-gradient(rgba(0,0,0,.025) 1px, transparent 1px), linear-gradient(90deg, rgba(0,0,0,.025) 1px, transparent 1px); }
.sem-fundo body::after { display: none !important; }
/* Painéis levemente translúcidos para o fundo "respirar" */
.painel, .kpi-card, .cad-painel, .cad-tabs, .kanban-column {
    background: color-mix(in srgb, var(--ui-surface) 88%, transparent) !important;
    backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.sb { background: color-mix(in srgb, var(--ui-sidebar) 92%, transparent) !important; backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); }

/* ---------- Pontos de apoio (alojamentos e postos) ---------- */
.cad-tabs-sec { font-size: .66rem; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; color: var(--ui-text-3); padding: 12px 10px 4px; border-top: 1px solid var(--ui-border); margin-top: 6px; }
.cad-avatar.ponto { color: #fff; }
.cad-avatar.ponto .ui-icon { width: 15px; height: 15px; }
.cad-avatar.ponto.aloj { background: color-mix(in srgb, #8B6CF6 25%, transparent); color: #A994FA; }
.cad-avatar.ponto.posto { background: color-mix(in srgb, #34C47C 22%, transparent); color: var(--ui-success); }
.pill.ok { background: var(--ui-success-soft); color: var(--ui-success); }
.tabela td a { color: var(--ui-accent-text); text-decoration: none; }
.tabela td a:hover { text-decoration: underline; }
@media (max-width: 960px) { .cad-tabs-sec { display: none; } }

/* =====================================================================
   ANÁLISES (dashboard novo)
   ===================================================================== */
#page-dashboard { overflow-y: auto; }
.an-kpis { grid-template-columns: repeat(6, minmax(0, 1fr)) !important; }
.an-kpis .kpi-valor { font-size: 1.45rem; }
.an-meta-topo { display: flex; align-items: center; gap: 16px; margin-bottom: 14px; }
.an-meta-topo .dhero-anel { width: 92px; height: 92px; }
.an-meta-num { font-size: 1.3rem; font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; }
.an-meta-num small { font-size: .8rem; color: var(--ui-text-3); font-weight: 500; }
.an-meta-lista { max-height: 230px; overflow-y: auto; }
.an-rank { display: flex; flex-direction: column; gap: 12px; }
.an-rank-item { display: flex; gap: 12px; align-items: flex-start; }
.an-rank-pos { width: 26px; height: 26px; border-radius: 8px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 700; background: var(--ui-surface-3); color: var(--ui-text-2); }
.an-rank-pos.top { background: var(--ui-accent); color: #fff; }
.an-rank-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 5px; }
.an-rank-l1 { display: flex; justify-content: space-between; gap: 10px; font-size: .86rem; }
.an-rank-l1 b { color: var(--ui-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.an-rank-l1 span { color: var(--ui-text); font-weight: 650; font-variant-numeric: tabular-nums; white-space: nowrap; }
.an-rank-l2 { font-size: .74rem; color: var(--ui-text-3); }
.neg { color: var(--ui-danger) !important; }
.an-leg { display: grid; gap: 6px; margin-top: 12px; }
.an-leg div { display: grid; grid-template-columns: 10px 1fr auto 40px; gap: 8px; align-items: center; font-size: .8rem; color: var(--ui-text-2); }
.an-leg i { width: 10px; height: 10px; border-radius: 3px; }
.an-leg b { color: var(--ui-text); font-variant-numeric: tabular-nums; }
.an-leg em { font-style: normal; color: var(--ui-text-3); text-align: right; font-size: .74rem; }

/* Mapa */
.an-mapa { height: 460px; border-radius: 12px; overflow: hidden; border: 1px solid var(--ui-border); z-index: 0; background: var(--ui-surface-2); }
.an-mapa-barra { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin-bottom: 10px; }
.an-sep { width: 1px; height: 22px; background: var(--ui-border); margin: 0 4px; }
.chip-camada, .chip-status { display: inline-flex; align-items: center; gap: 6px; height: 30px; padding: 0 10px; border-radius: 8px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-3); font: inherit; font-size: .76rem; font-weight: 600; cursor: pointer; transition: all .15s; }
.chip-camada .ui-icon { width: 14px; height: 14px; }
.chip-camada em { font-style: normal; font-size: .7rem; padding: 0 6px; border-radius: 999px; background: var(--ui-surface-3); }
.chip-camada[aria-pressed="true"] { color: var(--ui-text); border-color: color-mix(in srgb, var(--c) 45%, transparent); background: color-mix(in srgb, var(--c) 14%, var(--ui-surface-2)); }
.chip-camada[aria-pressed="true"] .ui-icon { color: var(--c); }
.chip-status i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); opacity: .35; }
.chip-status[aria-pressed="true"] { color: var(--ui-text); border-color: color-mix(in srgb, var(--c) 40%, transparent); }
.chip-status[aria-pressed="true"] i { opacity: 1; }
.mk { background: none !important; border: 0 !important; }
.mk span { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; }
.mk-obra span { border-radius: 50%; background: var(--c); border: 2px solid rgba(255,255,255,.85); box-shadow: 0 0 0 4px color-mix(in srgb, var(--c) 28%, transparent), 0 2px 6px rgba(0,0,0,.4); }
.mk-ponto span { border-radius: 9px; background: #15171B; color: var(--c); border: 2px solid var(--c); box-shadow: 0 3px 10px rgba(0,0,0,.45); }
.mk-ponto span .ui-icon { width: 15px; height: 15px; }
.mk-ponto.conv span::after { content: '★'; position: absolute; top: -8px; right: -8px; width: 15px; height: 15px; border-radius: 50%; background: var(--ui-warning); color: #111; font-size: 9px; display: flex; align-items: center; justify-content: center; }
.leaflet-popup-content-wrapper { background: var(--ui-surface) !important; color: var(--ui-text) !important; border: 1px solid var(--ui-border); border-radius: 12px !important; box-shadow: var(--ui-shadow-lg) !important; }
.leaflet-popup-tip { background: var(--ui-surface) !important; }
.leaflet-popup-content { margin: 12px 14px !important; font: 13px/1.45 var(--ui-font); min-width: 210px; }
.leaflet-container a.leaflet-popup-close-button { color: var(--ui-text-3) !important; }
.pop-tit { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 6px; }
.pop-tit b { font-size: .92rem; }
.pop-tag { font-size: .66rem; font-weight: 700; padding: 2px 7px; border-radius: 6px; color: var(--c); background: color-mix(in srgb, var(--c) 16%, transparent); white-space: nowrap; }
.pop-l { color: var(--ui-text-2); font-size: .8rem; margin-top: 3px; }
.pop-l a, .pop-acoes a { color: var(--ui-accent-text); }
.pop-obs { margin-top: 8px; padding: 8px 10px; border-radius: 8px; background: var(--ui-surface-2); border-left: 3px solid var(--ui-border-strong); font-size: .78rem; color: var(--ui-text-2); white-space: pre-wrap; }
.pop-acoes { display: flex; gap: 8px; margin-top: 10px; }
.pop-acoes button, .pop-acoes a { flex: 1; text-align: center; padding: 6px 8px; border-radius: 7px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text) !important; font: inherit; font-size: .76rem; font-weight: 600; cursor: pointer; text-decoration: none; }
.pop-acoes button { background: var(--ui-accent); border-color: var(--ui-accent); color: #fff !important; }
.leaflet-control-attribution { background: rgba(0,0,0,.4) !important; color: #999 !important; }
.leaflet-control-attribution a { color: #bbb !important; }
@media (max-width: 1280px) { .an-kpis { grid-template-columns: repeat(3, minmax(0, 1fr)) !important; } }
@media (max-width: 900px) { .an-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; } .an-mapa { height: 360px; } .an-sep { display: none; } }

/* Altura dos mapas (um estilo antigo forçava 100% e o mapa sumia) */
#anMapa.an-mapa { height: 460px !important; }
.mapa-mini.leaflet-container, #pMapa, #fMapa { height: 220px !important; }
@media (max-width: 900px) { #anMapa.an-mapa { height: 360px !important; } }


/* Mapa escuro no tema escuro (mapa gratuito do OpenStreetMap com filtro) */
:root:not([data-theme="light"]) .leaflet-tile-pane { filter: invert(1) hue-rotate(180deg) brightness(.9) contrast(.85) saturate(.5); }
:root:not([data-theme="light"]) .leaflet-container { background: #1b1d21 !important; }


/* Camadas: o fundo fica atrás de tudo; o conteúdo NÃO cria camada própria
   (antes os modais antigos ficavam por trás do menu lateral) */
#fundoRede { z-index: -1 !important; }
body::after { z-index: -1 !important; }
.main-content { z-index: auto !important; }
.modal-overlay { z-index: 1600 !important; }

/* ---------- Metas ---------- */
.mt-resumo { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mt-resumo > div { background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 12px; padding: 12px 14px; }
.mt-resumo span { display: block; font-size: .74rem; color: var(--ui-text-3); }
.mt-resumo b { display: block; font-size: 1.15rem; font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; margin-top: 2px; }
.mt-resumo b.pos { color: var(--ui-success); }
.mt-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.mt-lista { display: flex; flex-direction: column; gap: 8px; }
.mt-item { display: grid; grid-template-columns: 36px minmax(0, 1fr) 170px 44px; gap: 12px; align-items: center; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 12px; padding: 12px 14px; }
.mt-txt { min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.mt-txt b { font-size: .88rem; color: var(--ui-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mt-txt small { font-size: .74rem; color: var(--ui-text-3); }
.mt-txt small strong { color: var(--ui-success); }
.mt-txt .barra { height: 5px; }
.mt-input input { text-align: right; }
.mt-pct { font-style: normal; font-weight: 700; font-size: .85rem; color: var(--ui-text-2); text-align: right; font-variant-numeric: tabular-nums; }
@media (max-width: 960px) {
    .mt-resumo { grid-template-columns: 1fr 1fr; }
    .mt-item { grid-template-columns: 36px minmax(0, 1fr) 44px; }
    .mt-input { grid-column: 1 / -1; }
}

.mt-input { min-width: 0; width: 100%; }
.mt-input input { width: 100% !important; box-sizing: border-box; min-width: 0; padding-left: 10px !important; }
.sufixo input { width: 100%; box-sizing: border-box; }


/* ---------- Controle de obras ---------- */
.page#page-controle { overflow-y: auto; }
.tela-larga { max-width: 1600px; }
.tela-acoes { display: flex; gap: 8px; flex-wrap: wrap; }
.ct-barra select { width: auto; min-width: 150px; flex: 0 1 auto; }
.ct-barra .busca { min-width: 240px; }
.ct-barra2 { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 10px 14px; border-bottom: 1px solid var(--ui-border); }
.ct-etapas { display: flex; gap: 6px; flex-wrap: wrap; }
.chip-status em { font-style: normal; font-size: .7rem; color: var(--ui-text-3); margin-left: 2px; }
.ct-dir { margin-left: auto; }
.ct-cols { left: auto; right: 0; width: 240px; max-height: 360px; overflow-y: auto; }
.ct-resumo { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); border-bottom: 1px solid var(--ui-border); }
.ct-resumo > div { padding: 12px 16px; border-right: 1px solid var(--ui-border); min-width: 0; }
.ct-resumo > div:last-child { border-right: 0; }
.ct-resumo span { display: block; font-size: .72rem; color: var(--ui-text-3); }
.ct-resumo b { display: block; font-size: 1.05rem; font-weight: 700; color: var(--ui-text); font-variant-numeric: tabular-nums; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ct-resumo b small { font-size: .75rem; color: var(--ui-text-3); font-weight: 500; }
.ct-resumo b.pos, .tabela td.pos { color: var(--ui-success); }
.ct-resumo b.neg, .tabela td.neg { color: var(--ui-danger); }
.ct-tabela { max-height: calc(100vh - 360px); min-height: 300px; overflow: auto; }
.ct-tabela table { min-width: 1000px; }
.ct-tabela thead th { position: sticky !important; top: 0; z-index: 2; }
.ct-tabela th.ord { cursor: pointer; user-select: none; }
.ct-tabela th.ord:hover { color: var(--ui-text) !important; }
.ct-tabela th.ord.ativo { color: var(--ui-accent-text) !important; }
.ct-tabela th .seta { margin-left: 5px; font-size: .62rem; opacity: .6; }
.ct-tabela tbody tr.atrasada td:first-child { box-shadow: inset 3px 0 0 var(--ui-danger); }
.ct-tabela td { white-space: nowrap; }
.ct-tabela tfoot td { position: sticky; bottom: 0; background: var(--ui-surface-2); border-top: 1px solid var(--ui-border-strong); padding: 11px 14px !important; font-size: .85rem; font-variant-numeric: tabular-nums; }
.ct-pct { display: flex; align-items: center; gap: 8px; justify-content: flex-end; }
.ct-pct .barra { width: 60px; height: 5px; }
.ct-pct span { min-width: 38px; text-align: right; }
.ct-pct span.acima { color: var(--ui-warning); font-weight: 650; }
.ct-pag { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-top: 1px solid var(--ui-border); flex-wrap: wrap; font-size: .82rem; }
.ct-pag-nav { display: flex; align-items: center; gap: 6px; margin-left: auto; color: var(--ui-text-2); }
.ct-pag select { width: auto; min-height: 32px; }
.ico-btn:disabled { opacity: .35; cursor: default; }
@media (max-width: 1100px) { .ct-resumo { grid-template-columns: repeat(3, 1fr); } .ct-resumo > div:nth-child(3) { border-right: 0; } }
@media (max-width: 960px) {
    .ct-barra select { flex: 1 1 45%; min-width: 0; }
    .ct-resumo { grid-template-columns: repeat(2, 1fr); }
    .ct-tabela { max-height: none; }
    .ct-tabela table { min-width: 0; }
    .ct-tabela tfoot { display: none; }
    .ct-tabela td { white-space: normal; }
    .tela-acoes { width: 100%; } .tela-acoes .btn { flex: 1; }
}

.ct-tabela { max-height: max(440px, calc(100vh - 360px)) !important; }
@media (max-width: 960px) { .ct-tabela { max-height: none !important; } }

/* Coluna "Obra" fixa ao rolar a tabela para o lado */
.ct-tabela th:first-child, .ct-tabela td:first-child { position: sticky; left: 0; z-index: 1; background: var(--ui-surface); box-shadow: 1px 0 0 var(--ui-border); }
.ct-tabela thead th:first-child { z-index: 3; background: var(--ui-surface-2) !important; }
.ct-tabela tfoot td:first-child { z-index: 3; background: var(--ui-surface-2); }
.ct-tabela tbody tr:hover td:first-child { background: var(--ui-surface-2); }
@media (max-width: 960px) { .ct-tabela th:first-child, .ct-tabela td:first-child { position: static; box-shadow: none; } }

/* ---------- Agenda: Programação + Calendário ---------- */
.page#page-programacao, .page#page-calendario { overflow-y: auto; display: none; }
.page#page-programacao.active, .page#page-calendario.active { display: block !important; }
.ag-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.ag-barra { justify-content: space-between; }
.ag-nav { display: flex; align-items: center; gap: 6px; }
.ag-nav b { margin-left: 8px; font-size: .95rem; color: var(--ui-text); }
.ag-chave { align-items: center; font-size: .82rem; color: var(--ui-text-2); }
.seg-cores button[aria-pressed="true"] { background: color-mix(in srgb, var(--c) 18%, var(--ui-surface)) !important; color: var(--ui-text) !important; box-shadow: inset 0 0 0 1px var(--c); }
.ag-grade { overflow: auto; max-height: max(460px, calc(100vh - 380px)); }
.ag-grade table { width: 100%; border-collapse: separate; border-spacing: 0; min-width: 900px; }
.ag-grade th, .ag-grade td { border-bottom: 1px solid var(--ui-border); border-right: 1px solid var(--ui-border); vertical-align: top; }
.ag-grade thead th { position: sticky; top: 0; z-index: 2; background: var(--ui-surface-2); padding: 8px 6px; text-align: center; font-size: .72rem; color: var(--ui-text-3); font-weight: 600; }
.ag-grade thead th b { display: block; font-size: 1rem; color: var(--ui-text); }
.ag-grade thead th.hoje b { color: #fff; background: var(--ui-accent); border-radius: 50%; width: 28px; height: 28px; line-height: 28px; margin: 2px auto 0; }
.ag-grade .ag-eq { position: sticky; left: 0; z-index: 1; background: var(--ui-surface); min-width: 190px; max-width: 220px; text-align: left; padding: 10px; }
.ag-grade thead .ag-eq { z-index: 3; background: var(--ui-surface-2); }
.ag-eq-in { display: flex; gap: 10px; align-items: center; }
.ag-eq-in b { display: block; font-size: .84rem; color: var(--ui-text); }
.ag-eq-in small { font-size: .72rem; color: var(--ui-text-3); }
.ag-grade td { padding: 6px; min-width: 110px; height: 64px; position: relative; }
.ag-grade td.hoje { background: color-mix(in srgb, var(--ui-accent) 6%, transparent); }
.ag-grade td.fds { background: color-mix(in srgb, var(--ui-surface-3) 35%, transparent); }
.ag-grade.mes td { min-width: 58px; height: 48px; }
.ag-at { display: block; width: 100%; text-align: left; border: 0; border-left: 3px solid var(--c); background: color-mix(in srgb, var(--c) 13%, var(--ui-surface)); border-radius: 6px; padding: 5px 7px; margin-bottom: 4px; cursor: pointer; font: inherit; color: var(--ui-text); }
.ag-at:hover { background: color-mix(in srgb, var(--c) 22%, var(--ui-surface)); }
.ag-at b { display: block; font-size: .74rem; } .ag-at span { display: block; font-size: .7rem; color: var(--ui-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-add { opacity: 0; width: 100%; height: 24px; border: 1px dashed var(--ui-border-strong); border-radius: 6px; background: none; color: var(--ui-text-3); cursor: pointer; display: flex; align-items: center; justify-content: center; }
.ag-add .ui-icon { width: 14px; height: 14px; }
td:hover > .ag-add, .ag-add:focus-visible { opacity: 1; }
@media (hover: none) { .ag-add { opacity: .6; } }
.cg { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
.cg-leg { display: flex; gap: 14px; flex-wrap: wrap; padding: 8px 14px; font-size: .74rem; color: var(--ui-text-2); border-bottom: 1px solid var(--ui-border); }
.cg-leg span { display: inline-flex; align-items: center; gap: 6px; }
.cg-leg i { width: 10px; height: 10px; border-radius: 3px; display: inline-block; }
.cg-leg i.anel { border: 2px solid var(--ui-warning); border-radius: 50%; }
.cg-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.cg-sem { padding: 8px; text-align: center; font-size: .72rem; font-weight: 600; color: var(--ui-text-3); border-bottom: 1px solid var(--ui-border); }
.cg-dia { min-height: 104px; padding: 6px; border: 0; border-right: 1px solid var(--ui-border); border-bottom: 1px solid var(--ui-border); background: none; color: var(--ui-text); text-align: left; font: inherit; cursor: pointer; display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.cg-dia:nth-child(7n) { border-right: 0; }
.cg-dia:hover { background: var(--ui-surface-2); }
.cg-dia.fds { background: color-mix(in srgb, var(--ui-surface-3) 30%, transparent); }
.cg-dia.fora { opacity: .4; }
.cg-dia.sel { box-shadow: inset 0 0 0 2px var(--ui-accent); background: var(--ui-accent-soft); }
.cg-num { font-size: .8rem; font-weight: 650; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.cg-dia.hoje .cg-num { background: var(--ui-accent); color: #fff; }
.cg-evs { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.cg-ev { font-size: .68rem; padding: 2px 6px; border-radius: 5px; background: color-mix(in srgb, var(--c) 18%, transparent); color: var(--ui-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; border-left: 3px solid var(--c); }
.cg-ev.desl { box-shadow: inset 0 0 0 1px var(--ui-warning); }
.cg-ev.prog { background: var(--ui-surface-3); }
.cg-mais { font-size: .66rem; color: var(--ui-text-3); padding-left: 4px; }
.cg-lado { display: flex; flex-direction: column; gap: 16px; position: sticky; top: 0; }
.ag-sec { font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ui-text-3); margin: 10px 0 6px; }
.ag-lista { display: flex; flex-direction: column; gap: 6px; }
.ag-item { display: flex; gap: 10px; align-items: flex-start; width: 100%; text-align: left; padding: 9px 10px; border-radius: 10px; border: 1px solid var(--ui-border); border-left: 3px solid var(--c); background: var(--ui-surface-2); color: var(--ui-text); font: inherit; cursor: pointer; }
.ag-item:hover { border-color: var(--c); }
.ag-item-tag { font-size: .66rem; font-weight: 800; color: var(--c); min-width: 34px; padding-top: 2px; }
.ag-item-txt { min-width: 0; } .ag-item-txt b { display: block; font-size: .84rem; }
.ag-item-txt small { display: block; font-size: .74rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-desl { color: var(--ui-warning) !important; display: flex !important; align-items: center; gap: 4px; }
.ag-desl .ui-icon { width: 12px; height: 12px; }
.ag-dia-acoes { display: flex; gap: 8px; margin-top: 12px; flex-wrap: wrap; }
.ld-desl { border-color: color-mix(in srgb, var(--ui-warning) 40%, transparent); }
@media (max-width: 1200px) { .cg { grid-template-columns: 1fr; } .cg-lado { position: static; } }
@media (max-width: 900px) { .ag-kpis { grid-template-columns: repeat(2, 1fr); } .cg-dia { min-height: 64px; } .cg-ev { font-size: 0; height: 6px; padding: 0; } .cg-mais { display: none; } }

/* ---------- Equipes ---------- */
.page#page-equipes { overflow-y: auto; display: none; }
.page#page-equipes.active { display: block !important; }
.tm mark { background: rgba(255, 104, 0, .32); color: inherit; border-radius: 3px; padding: 0 1px; }
.tm-filtros { padding: 14px 16px; gap: 12px; }
.tm-sups-linha { display: flex; gap: 12px; align-items: center; }
.tm-rot { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .06em; color: var(--ui-text-3); flex-shrink: 0; }
.tm-sups { display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.tm-sup { display: inline-flex; align-items: center; gap: 8px; height: 34px; padding: 0 12px 0 4px; border-radius: 999px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); font: inherit; font-size: .82rem; font-weight: 550; cursor: pointer; transition: border-color .15s, background .15s, color .15s; }
.tm-sup:hover { border-color: var(--ui-border-strong); color: var(--ui-text); }
.tm-sup[aria-pressed="true"] { border-color: color-mix(in srgb, var(--ui-accent) 55%, transparent); background: var(--ui-accent-soft); color: var(--ui-text); }
.tm-av { width: 26px; height: 26px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-size: .66rem; font-weight: 700; background: var(--ui-surface-3); color: var(--ui-text-2); flex-shrink: 0; }
.tm-sup[aria-pressed="true"] .tm-av { background: var(--ui-accent); color: #fff; }
.tm-av.grande { width: 38px; height: 38px; border-radius: 11px; font-size: .8rem; background: color-mix(in srgb, var(--c) 15%, transparent); color: var(--c); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 30%, transparent); }
.tm-av .ui-icon { width: 18px; height: 18px; }
.tm-barra { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }

.tm-layout { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 18px; align-items: start; }
.tm-quadro { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.tm-sec { background: color-mix(in srgb, var(--ui-surface) 72%, transparent); border: 1px solid var(--ui-border); border-radius: 16px; padding: 12px 14px 14px; transition: border-color .15s, box-shadow .15s; }
.tm-sec.fechada { padding-bottom: 12px; }
.tm-sec.vazia { padding: 9px 14px; background: color-mix(in srgb, var(--ui-surface) 45%, transparent); border-style: dashed; }
.tm-sec.vazia .tm-av.grande { width: 32px; height: 32px; font-size: .72rem; }
.tm-sec.vazia .tm-sec-tit b { font-size: .88rem; }
.tm-sec-head { display: flex; align-items: center; gap: 10px; }
.tm-sec-tog { width: 28px; height: 28px; border-radius: 8px; border: 0; background: none; color: var(--ui-text-3); cursor: pointer; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.tm-sec-tog:hover { background: var(--ui-surface-3); color: var(--ui-text); }
.tm-sec-tog .ui-icon { width: 16px; height: 16px; transition: transform .2s; }
.tm-sec-tog[aria-expanded="true"] .ui-icon { transform: rotate(90deg); }
.tm-sec-tit { flex: 1; min-width: 0; }
.tm-sec-tit b { display: block; font-size: .95rem; font-weight: 650; color: var(--ui-text); }
.tm-sec-tit small { font-size: .76rem; color: var(--ui-text-3); }
.tm-sec-drop { display: none; align-items: center; gap: 6px; font-size: .74rem; font-weight: 600; color: var(--ui-accent-text); border: 1px dashed color-mix(in srgb, var(--ui-accent) 50%, transparent); border-radius: 999px; padding: 4px 10px; }
.tm-sec-drop .ui-icon { width: 14px; height: 14px; }
.tm-arr-equipe .tm-sec[data-drop-sup] .tm-sec-drop { display: inline-flex; }
.tm-sec.tm-sobre { border-color: var(--ui-accent); box-shadow: 0 0 0 3px var(--ui-accent-soft); }
.tm-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(262px, 1fr)); gap: 12px; margin-top: 12px; }
.tm-sec-vazia { grid-column: 1 / -1; padding: 18px; text-align: center; color: var(--ui-text-3); border: 1px dashed var(--ui-border-strong); border-radius: 12px; font-size: .84rem; }

.tm-card { position: relative; background: var(--ui-surface); border: 1px solid var(--ui-border); border-radius: 14px; display: flex; flex-direction: column; overflow: hidden; transition: border-color .15s, box-shadow .15s, transform .15s; animation: uiFade .25s ease; }
.tm-card::before { content: ''; display: block; height: 3px; background: linear-gradient(90deg, var(--c), color-mix(in srgb, var(--c) 20%, transparent)); }
.tm-card:hover { border-color: var(--ui-border-strong); }
.tm-card-head { display: flex; align-items: center; gap: 10px; padding: 11px 12px 9px; cursor: pointer; border-radius: 0; }
.tm-card-head[draggable="true"] { cursor: grab; }
.tm-card-head:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: -2px; }
.tm-card-head:hover .tm-card-tit b { color: var(--ui-accent-text); }
.tm-card-ico { width: 34px; height: 34px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--c) 14%, transparent); color: var(--c); flex-shrink: 0; }
.tm-card-ico .ui-icon { width: 18px; height: 18px; }
.tm-card-tit { flex: 1; min-width: 0; }
.tm-card-tit b { display: block; font-size: .9rem; font-weight: 650; color: var(--ui-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; transition: color .15s; }
.tm-card-tit small { font-size: .72rem; color: var(--ui-text-3); }
.tm-alerta { color: var(--ui-warning); font-weight: 600; }
.tm-cap { font-size: .72rem; font-weight: 700; padding: 3px 8px; border-radius: 999px; background: var(--ui-surface-3); color: var(--ui-text-2); font-variant-numeric: tabular-nums; flex-shrink: 0; }
.tm-cap.cheia { background: var(--ui-success-soft); color: var(--ui-success); }
.tm-cap.acima { background: var(--ui-danger-soft); color: var(--ui-danger); }
.tm-slots { display: flex; gap: 3px; padding: 0 12px 10px; }
.tm-slots i { flex: 1; height: 4px; border-radius: 4px; background: var(--c); }
.tm-slots i.v { background: var(--ui-surface-3); }
.tm-veics { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 12px 10px; }
.tm-sem-v { display: inline-flex; gap: 6px; align-items: center; font-size: .74rem; color: var(--ui-text-3); border: 1px dashed var(--ui-border-strong); border-radius: 8px; padding: 5px 9px; }
.tm-sem-v .ui-icon { width: 14px; height: 14px; }
.tm-v { display: inline-flex; align-items: center; gap: 7px; padding: 3px 4px 3px 3px; border-radius: 8px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); cursor: pointer; max-width: 100%; position: relative; transition: border-color .15s, background .15s; }
.tm-v:hover { border-color: var(--ui-border-strong); }
.tm-v:focus-visible, .tm-m:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: 1px; }
.tm-v[draggable="true"], .tm-m[draggable="true"] { cursor: grab; }
.tm-placa { display: inline-flex; flex-direction: column; border-radius: 4px; overflow: hidden; background: #F4F6F8; border: 1px solid #C3C9D2; line-height: 1; flex-shrink: 0; box-shadow: 0 1px 0 rgba(0,0,0,.25); }
.tm-placa i { display: block; height: 4px; background: #1D4FA0; }
.tm-placa b { font-family: ui-monospace, 'Cascadia Mono', Consolas, monospace; font-size: .74rem; letter-spacing: .07em; color: #12151A; padding: 3px 6px; font-weight: 700; }
.tm-placa.grande { border-radius: 8px; border-width: 2px; }
.tm-placa.grande i { height: 12px; }
.tm-placa.grande b { font-size: 1.7rem; padding: 8px 20px; letter-spacing: .1em; }
.tm-v-desc { font-size: .72rem; color: var(--ui-text-2); max-width: 130px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-x { width: 22px; height: 22px; border-radius: 6px; border: 0; background: none; color: var(--ui-text-3); cursor: pointer; display: flex; align-items: center; justify-content: center; opacity: 0; flex-shrink: 0; transition: opacity .12s, background .12s; }
.tm-x .ui-icon { width: 14px; height: 14px; }
.tm-x:hover { background: var(--ui-danger-soft); color: var(--ui-danger); }
.tm-v:hover .tm-x, .tm-m:hover .tm-x, .tm-x:focus-visible { opacity: 1; }
.tm-ms { list-style: none; margin: 0; padding: 0 6px 8px; display: flex; flex-direction: column; gap: 1px; }
.tm-m { display: flex; align-items: center; gap: 10px; padding: 6px; border-radius: 9px; cursor: pointer; position: relative; transition: background .12s; }
.tm-m:hover { background: var(--ui-surface-2); }
.tm-m-av { width: 30px; height: 30px; border-radius: 9px; display: flex; align-items: center; justify-content: center; font-size: .68rem; font-weight: 700; color: var(--c); background: color-mix(in srgb, var(--c) 16%, transparent); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--c) 34%, transparent); flex-shrink: 0; }
.tm-m-av.xl { width: 56px; height: 56px; border-radius: 16px; font-size: 1.1rem; }
.tm-m-txt { flex: 1; min-width: 0; }
.tm-m-txt b { display: block; font-size: .84rem; font-weight: 600; color: var(--ui-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-m-txt small { display: block; font-size: .72rem; font-weight: 550; color: color-mix(in srgb, var(--c) 70%, var(--ui-text)); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-emo { font-style: normal; font-size: .72rem; margin-right: 4px; }
.tm-m-obs, .tm-m-tel { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; color: var(--ui-text-3); flex-shrink: 0; border-radius: 6px; }
.tm-m-obs .ui-icon, .tm-m-tel .ui-icon { width: 14px; height: 14px; }
.tm-m-tel:hover { color: var(--ui-accent-text); background: var(--ui-accent-soft); }
.tm-m.achou, .tm-v.achou { background: var(--ui-accent-soft); box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--ui-accent) 40%, transparent); }
.tm-solte { margin: 0 12px 12px; padding: 14px; border: 1px dashed var(--ui-border-strong); border-radius: 10px; text-align: center; font-size: .78rem; color: var(--ui-text-3); display: flex; align-items: center; justify-content: center; gap: 6px; }
.tm-solte .ui-icon { width: 15px; height: 15px; }
.tm-hoje { margin: auto 12px 12px; display: flex; gap: 8px; align-items: center; text-align: left; padding: 7px 10px; border-radius: 9px; border: 0; border-left: 3px solid var(--f); background: color-mix(in srgb, var(--f) 12%, var(--ui-surface)); color: var(--ui-text); font: inherit; font-size: .76rem; cursor: pointer; width: calc(100% - 24px); }
.tm-hoje:hover { background: color-mix(in srgb, var(--f) 20%, var(--ui-surface)); }
.tm-hoje .ui-icon { width: 15px; height: 15px; color: var(--f); flex-shrink: 0; }
.tm-hoje span { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-hoje b { color: var(--f); margin-right: 2px; }
.tm-hoje em { font-style: normal; font-weight: 700; color: var(--ui-text-3); }
.tm-cheia-msg { display: none; position: absolute; inset: 0; align-items: center; justify-content: center; background: color-mix(in srgb, var(--ui-danger) 12%, color-mix(in srgb, var(--ui-surface) 85%, transparent)); color: var(--ui-danger); font-weight: 700; font-size: .85rem; pointer-events: none; }
.tm-arr-membro .tm-card, .tm-arr-placa .tm-card { border-style: dashed; }
.tm-card.tm-sobre { border-style: solid; border-color: var(--ui-accent); box-shadow: 0 0 0 3px var(--ui-accent-soft), var(--ui-shadow-md); transform: translateY(-2px); }
.tm-card.tm-recusa { border-color: var(--ui-danger); box-shadow: 0 0 0 3px var(--ui-danger-soft); transform: none; }
.tm-card.tm-recusa .tm-cheia-msg { display: flex; }
.tm-arrastado { opacity: .35; }
.tm-novo { animation: tmNovo 1.8s ease; }
@keyframes tmNovo { 0%, 35% { box-shadow: 0 0 0 3px var(--ui-accent); } 100% { box-shadow: 0 0 0 0 transparent; } }

.tm-pool { position: sticky; top: 12px; padding: 0; max-height: calc(100vh - 100px); overflow: hidden; }
.tm-pool-head { padding: 16px 16px 10px; }
.tm-pool-head h2 { margin: 0; font-size: .95rem; font-weight: 650; color: var(--ui-text); display: flex; align-items: center; gap: 8px; }
.tm-pool-head h2 .ui-icon { width: 17px; height: 17px; color: var(--ui-text-3); }
.tm-pool-head small { display: block; margin-top: 3px; font-size: .76rem; color: var(--ui-text-3); }
.tm-abas { margin: 0 16px 10px; display: flex; }
.tm-abas button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 6px; }
.tm-abas .ui-icon { width: 15px; height: 15px; }
.tm-abas b { font-size: .7rem; padding: 0 7px; border-radius: 999px; background: var(--ui-surface-3); color: var(--ui-text-2); }
.tm-pool-corpo { flex: 1; overflow-y: auto; padding: 0 10px 12px; min-height: 140px; border-top: 1px solid var(--ui-border); }
.tm-pool-rodape { padding: 12px 16px; border-top: 1px solid var(--ui-border); }
.tm-pool-rodape .btn { width: 100%; justify-content: center; }
.tm-grupo { margin-top: 10px; }
.tm-grupo-h { display: flex; align-items: center; gap: 8px; font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--ui-text-3); padding: 6px 6px; position: sticky; top: 0; background: var(--ui-surface); z-index: 1; }
.tm-grupo-h i { width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.tm-grupo-h b { margin-left: auto; font-weight: 600; background: var(--ui-surface-3); color: var(--ui-text-2); padding: 1px 7px; border-radius: 999px; }
.tm-grupo .tm-ms { padding: 0; }
.tm-m.pool small { color: var(--ui-text-3); }
.tm-pool-veics { display: flex; flex-direction: column; gap: 6px; padding-top: 10px; }
.tm-v.pool { width: 100%; padding: 6px 8px; }
.tm-v.pool .tm-v-desc { max-width: none; flex: 1; }
.tm-pool-vazio { text-align: center; color: var(--ui-text-3); font-size: .82rem; padding: 26px 10px; margin: 0; }
.tm-pool-vazio:empty { display: none; }
.tm-pool-solte { display: none; position: absolute; inset: 8px; z-index: 3; border: 2px dashed var(--ui-border-strong); border-radius: 12px; background: color-mix(in srgb, var(--ui-surface) 90%, transparent); align-items: center; justify-content: center; gap: 8px; font-weight: 600; font-size: .85rem; color: var(--ui-text-2); pointer-events: none; }
.tm-pool-solte .ui-icon { width: 18px; height: 18px; }
.tm-de-equipe .tm-pool-solte { display: flex; }
.tm-pool.tm-sobre .tm-pool-solte { border-color: var(--ui-accent); color: var(--ui-accent-text); background: color-mix(in srgb, var(--ui-accent) 10%, var(--ui-surface)); }

.tm-dw { display: flex; flex-direction: column; gap: 14px; }
.tm-dw .seg { display: flex; }
.tm-dw .seg button { flex: 1; display: inline-flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 12px; }
.tm-dw .seg .ui-icon { width: 16px; height: 16px; }
.tm-dw-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tm-dw-lista li { display: flex; align-items: center; gap: 10px; padding: 6px 4px 6px 6px; border-radius: 9px; }
.tm-dw-lista li:hover { background: var(--ui-surface-2); }
.tm-dw-lista .tm-m-txt small { color: var(--ui-text-3); }
.tm-dw-lista li .tm-m-txt small { color: color-mix(in srgb, var(--c, var(--ui-text-3)) 70%, var(--ui-text)); }
.tm-dw-add { display: flex; align-items: center; gap: 8px; margin-top: 10px; padding: 4px 6px 4px 12px; border: 1px dashed var(--ui-border-strong); border-radius: 10px; }
.tm-dw-add .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); flex-shrink: 0; }
.tm-dw-add select { flex: 1; border-color: transparent !important; background: transparent !important; }
.tm-dw-vazio { margin: 0 0 4px; font-size: .84rem; }
.tm-dw-hoje { display: flex; flex-direction: column; gap: 6px; margin-top: 12px; }
.tm-dw-hoje .tm-hoje { margin: 0; width: 100%; }
.tm-pessoa { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.tm-pessoa-txt { flex: 1; min-width: 160px; display: flex; flex-direction: column; gap: 5px; align-items: flex-start; }
.tm-pessoa-txt > b { font-size: 1.05rem; color: var(--ui-text); }
.tm-pessoa-txt small { color: var(--ui-text-3); font-size: .78rem; }
.tm-contato { display: flex; gap: 6px; flex-wrap: wrap; }
.tm-funcs { display: flex; flex-wrap: wrap; gap: 6px; }
.tm-funcs button { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); font: inherit; font-size: .8rem; font-weight: 550; cursor: pointer; }
.tm-funcs button::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.tm-funcs button i { font-style: normal; }
.tm-funcs button[aria-checked="true"] { border-color: var(--c); background: color-mix(in srgb, var(--c) 16%, var(--ui-surface)); color: var(--ui-text); box-shadow: inset 0 0 0 1px var(--c); }
.tm-funcs button:disabled { cursor: default; opacity: .7; }
.tm-placa-preview { display: flex; flex-direction: column; align-items: center; gap: 10px; padding: 20px; border-radius: 14px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.tm-placa-preview small { color: var(--ui-text-3); font-size: .78rem; text-align: center; }
.tm-fn-nova { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.tm-fn-nova input[type="text"] { flex: 1; min-width: 160px; }
.tm-dw input[type="color"] { width: 40px; height: 38px; padding: 3px; border-radius: 8px; cursor: pointer; border: 1px solid var(--ui-border); background: var(--ui-surface-2); flex-shrink: 0; }
.tm-fn-ico { width: 66px !important; padding: 8px 6px !important; flex-shrink: 0; }
.tm-fn-ajuda { margin: -4px 0 10px; font-size: .78rem; }
.tm-fn-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tm-fn-lista li { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 10px; border: 1px solid var(--ui-border); border-left: 4px solid var(--c); background: var(--ui-surface-2); }
.tm-fn-lista li input[type="text"] { flex: 1; min-width: 100px; }
.tm-fn-ord { display: flex; flex-direction: column; flex-shrink: 0; }
.tm-fn-ord .ico-btn { width: 26px; height: 18px; }
.tm-fn-ord .ui-icon { transform: rotate(90deg); width: 14px; height: 14px; }
.tm-fn-uso { font-size: .72rem; color: var(--ui-text-3); white-space: nowrap; min-width: 70px; text-align: right; }

@media (max-width: 1180px) { .tm-layout { grid-template-columns: 1fr; } .tm-pool { position: static; max-height: none; } .tm-pool-corpo { max-height: 420px; } }
@media (max-width: 900px) { .tm .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .tm-sups-linha { flex-direction: column; align-items: flex-start; }
    .tm-grid { grid-template-columns: 1fr; }
    .tm-barra .seg { width: 100%; overflow-x: auto; }
    .tm-sec-head .btn .btn-txt { display: none; }
    .tm-fn-lista li { flex-wrap: wrap; }
}
@media (hover: none) { .tm-x { opacity: .75; } }

/* ---------- RDO ---------- */
.page#page-rdo { overflow-y: auto; display: none; }
.page#page-rdo.active { display: block !important; }
.rd-layout { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(300px, 1fr); gap: 18px; align-items: start; }
.rd-cal-painel { padding: 0; overflow: hidden; }
.rd-cal-barra { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; border-bottom: 1px solid var(--ui-border); }
.rd-leg-falta { border: 1.5px dashed var(--ui-danger); background: var(--ui-danger-soft) !important; }
.rd-grade .cg-sem:nth-child(n+6):nth-child(-n+7) { color: var(--ui-text-3); opacity: .7; }
.rd-dia { position: relative; min-height: 84px; padding: 6px 7px; border: 0; border-right: 1px solid var(--ui-border); border-bottom: 1px solid var(--ui-border); background: none; color: var(--ui-text); text-align: left; font: inherit; cursor: pointer; display: flex; flex-direction: column; gap: 4px; min-width: 0; transition: background .12s; }
.rd-grade > .rd-dia:nth-child(7n) { border-right: 0; }
.rd-dia:hover { background: var(--ui-surface-2); }
.rd-dia:focus-visible { outline: 2px solid var(--ui-accent); outline-offset: -2px; }
.rd-dia.fds { background: color-mix(in srgb, var(--ui-surface-3) 32%, transparent); }
.rd-dia.fora { opacity: .3; cursor: default; }
.rd-num { font-size: .78rem; font-weight: 650; width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; color: var(--ui-text-2); }
.rd-dia.hoje .rd-num { background: var(--ui-accent); color: #fff; }
.rd-dia.com { background: color-mix(in srgb, var(--ui-accent) 9%, transparent); }
.rd-dia.com:hover { background: color-mix(in srgb, var(--ui-accent) 16%, transparent); }
.rd-dia.com::after { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--ui-accent); }
.rd-dia-info { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; }
.rd-dia-info b { font-size: 1.05rem; color: var(--ui-text); line-height: 1; }
.rd-dia-info small { font-size: .68rem; color: var(--ui-text-3); }
.rd-dia-info em { font-style: normal; font-size: .66rem; font-weight: 700; color: var(--ui-accent-text); }
.rd-clima { position: absolute; top: 6px; right: 7px; font-size: .9rem; }
.rd-dia.falta .rd-dia-falta { display: inline-flex; align-items: center; gap: 3px; align-self: flex-start; font-size: .68rem; font-weight: 650; color: var(--ui-danger); border: 1px dashed color-mix(in srgb, var(--ui-danger) 60%, transparent); background: var(--ui-danger-soft); border-radius: 6px; padding: 2px 6px; }
.rd-dia-falta .ui-icon { width: 12px; height: 12px; }
.rd-lv { position: absolute; right: 7px; bottom: 7px; width: 7px; height: 7px; border-radius: 50%; background: #5B9DF2; box-shadow: 0 0 0 2px color-mix(in srgb, #5B9DF2 25%, transparent); }
.rd-lista-painel { position: sticky; top: 12px; max-height: calc(100vh - 100px); overflow: hidden; }
.rd-lista-painel #rdLista { overflow-y: auto; margin: 0 -8px; padding: 0 8px; }
.rd-lista { display: flex; flex-direction: column; gap: 6px; }
.rd-item { display: flex; align-items: center; gap: 4px; border: 1px solid var(--ui-border); border-radius: 12px; background: var(--ui-surface-2); padding-right: 6px; transition: border-color .15s; }
.rd-item:hover { border-color: var(--ui-border-strong); }
.rd-item.hoje { border-color: color-mix(in srgb, var(--ui-accent) 55%, transparent); }
.rd-item-main { flex: 1; min-width: 0; display: flex; gap: 12px; align-items: center; padding: 9px 10px; border: 0; background: none; color: inherit; font: inherit; text-align: left; cursor: pointer; border-radius: 12px; }
.rd-item-main:focus-visible { outline: 2px solid var(--ui-accent); }
.rd-item-data { width: 44px; height: 44px; border-radius: 11px; background: var(--ui-accent-soft); color: var(--ui-accent-text); display: flex; flex-direction: column; align-items: center; justify-content: center; flex-shrink: 0; line-height: 1.05; }
.rd-item-data b { font-size: 1.05rem; } .rd-item-data small { font-size: .62rem; font-weight: 650; text-transform: uppercase; }
.rd-item-txt { min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.rd-item-txt b { font-size: .86rem; color: var(--ui-text); font-weight: 600; }
.rd-item-txt small { font-size: .74rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rd-item-obs { font-style: italic; }

.rd-hero { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; padding: 16px; border-radius: 14px; border: 1px solid var(--ui-border); background: linear-gradient(135deg, color-mix(in srgb, var(--ui-accent) 14%, var(--ui-surface)), var(--ui-surface) 60%); }
.rd-hero-data { width: 58px; height: 58px; border-radius: 14px; background: var(--ui-accent); color: #fff; display: flex; flex-direction: column; align-items: center; justify-content: center; line-height: 1; flex-shrink: 0; }
.rd-hero-data b { font-size: 1.5rem; } .rd-hero-data span { font-size: .7rem; font-weight: 700; text-transform: uppercase; margin-top: 2px; }
.rd-hero-txt { flex: 1; min-width: 150px; display: flex; flex-direction: column; gap: 3px; }
.rd-hero-txt b { font-size: 1.05rem; color: var(--ui-text); } .rd-hero-txt span { color: var(--ui-text-2); font-size: .85rem; }
.rd-hero-nums { display: flex; gap: 6px; }
.rd-hero-nums div { min-width: 70px; padding: 8px 10px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); text-align: center; }
.rd-hero-nums b { display: block; font-size: 1.2rem; color: var(--ui-text); } .rd-hero-nums span { font-size: .7rem; color: var(--ui-text-3); }
.rd-reg { border-left: 3px solid var(--c); }
.rd-reg-ico { width: 28px; height: 28px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--c) 15%, transparent); color: var(--c) !important; }
.rd-reg-ico .ui-icon { color: var(--c) !important; width: 15px !important; height: 15px !important; }
.rd-obra-v { padding: 10px 0; border-top: 1px solid var(--ui-border); }
.rd-obra-v:first-of-type { border-top: 0; padding-top: 2px; }
.rd-obra-v-top { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.rd-obra-num { display: inline-flex; align-items: center; gap: 6px; font-size: .86rem !important; font-weight: 700; padding: 3px 6px; }
.rd-obra-num .ui-icon { width: 14px; height: 14px; }
.rd-obra-loc { font-size: .76rem; color: var(--ui-text-3); }
.rd-us { display: inline-flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 650; color: var(--ui-text-2); margin-left: auto; }
.rd-us .barra { width: 60px; height: 5px; }
.rd-ativs-v { margin: 8px 0 0; padding-left: 22px; display: flex; flex-direction: column; gap: 4px; }
.rd-ativs-v li { font-size: .86rem; color: var(--ui-text); }
.rd-ativs-v li::marker { color: var(--ui-text-3); font-weight: 600; }
.rd-sem { margin: 6px 0 0; font-size: .8rem; }
.rd-obs { margin: 0; white-space: pre-wrap; color: var(--ui-text); font-size: .875rem; }

.dw.dw-xl { width: min(860px, 100vw); }
.rd-climas { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px; }
.rd-climas button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 6px 4px; border-radius: 10px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); font: inherit; cursor: pointer; }
.rd-climas button span { font-size: 1.15rem; line-height: 1.2; }
.rd-climas button small { font-size: .66rem; font-weight: 600; white-space: nowrap; }
.rd-climas button[aria-checked="true"] { border-color: var(--ui-accent); background: var(--ui-accent-soft); color: var(--ui-text); box-shadow: inset 0 0 0 1px var(--ui-accent); }
.rd-aviso { display: flex; flex-direction: column; gap: 6px; }
.rd-aviso > div { display: flex; align-items: center; gap: 8px; padding: 9px 12px; border-radius: 10px; background: var(--ui-info-soft); color: var(--ui-text); font-size: .82rem; border: 1px solid color-mix(in srgb, var(--ui-info) 30%, transparent); }
.rd-aviso > div:has(.ui-icon:first-child) .ui-icon { width: 16px; height: 16px; flex-shrink: 0; color: var(--ui-info); }
.rd-eqs-sec { display: flex; flex-direction: column; gap: 10px; }
.rd-eqs-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; }
.rd-eqs-head h3 { margin: 0; font-size: .95rem; font-weight: 650; color: var(--ui-text); display: flex; align-items: center; gap: 8px; }
.rd-eqs-head h3 .ui-icon { width: 17px; height: 17px; color: var(--ui-text-3); }
.rd-eqs-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.rd-eq { border: 1px solid var(--ui-border); border-left: 3px solid var(--c); border-radius: 12px; background: var(--ui-surface); padding: 10px 12px 8px; display: flex; flex-direction: column; gap: 8px; animation: uiFade .2s ease; }
.rd-eq-head { display: flex; align-items: center; gap: 8px; }
.rd-eq-head select { flex: 1; font-weight: 600; }
.rd-eq-n { width: 24px; height: 24px; border-radius: 7px; background: color-mix(in srgb, var(--c) 16%, transparent); color: var(--c); font-size: .75rem; font-weight: 800; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.rd-obra { border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); padding: 8px 10px; display: flex; flex-direction: column; gap: 6px; }
.rd-obra-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rd-obra-top > .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); flex-shrink: 0; }
.rd-obra-top input { width: 150px !important; flex: 0 0 auto; font-weight: 650; }
.rd-obra-info { flex: 1; min-width: 160px; display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rd-obra-info .rd-us { margin-left: auto; }
.rd-ativs { margin: 0; padding-left: 24px; display: flex; flex-direction: column; gap: 5px; }
.rd-ativs li { display: list-item; }
.rd-ativs li::marker { color: var(--ui-text-3); font-size: .78rem; font-weight: 650; }
.rd-ativs li > input { width: calc(100% - 40px) !important; vertical-align: middle; }
.rd-ativs li > .ico-btn { vertical-align: middle; width: 30px; height: 30px; margin-left: 4px; }
.rd-add-ativ, .rd-add-obra { display: inline-flex; align-items: center; gap: 4px; align-self: flex-start; }
.rd-add-ativ .ui-icon, .rd-add-obra .ui-icon { width: 14px; height: 14px; }
.rd-add-eq { display: flex; align-items: center; justify-content: center; gap: 8px; padding: 12px; border-radius: 12px; border: 1.5px dashed var(--ui-border-strong); background: none; color: var(--ui-text-2); font: inherit; font-weight: 600; cursor: pointer; }
.rd-add-eq:hover { border-color: var(--ui-accent); color: var(--ui-accent-text); background: var(--ui-accent-soft); }
.rd-add-eq .ui-icon { width: 16px; height: 16px; }
.rd-vazio { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 24px 12px; text-align: center; color: var(--ui-text-2); border-radius: 12px; background: var(--ui-surface-2); }
.rd-vazio .ui-icon { width: 28px; height: 28px; color: var(--ui-text-3); }
.rd-vazio span { font-size: .8rem; color: var(--ui-text-3); }

.rd-logo-linha { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; margin-bottom: 14px; }
.rd-logo { width: 180px; height: 80px; border-radius: 10px; border: 1px dashed var(--ui-border-strong); background: #fff; display: flex; align-items: center; justify-content: center; overflow: hidden; }
.rd-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.rd-logo span { display: flex; align-items: center; gap: 6px; color: #8a8f98; font-size: .8rem; }
.rd-logo span .ui-icon { width: 16px; height: 16px; }
.rd-logo-acoes { display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.rd-logo-acoes .btn-texto-perigo { margin: 0; }
.rd-cfg-obras { margin-top: 12px; display: flex; flex-direction: column; gap: 10px; transition: opacity .15s; }
.rd-cfg-obras.desligado { opacity: .45; pointer-events: none; }
.rd-cfg-ajuda { margin: 0; font-size: .8rem; }
.rd-chips .chip { display: inline-flex; align-items: center; gap: 6px; font-size: .78rem; font-weight: 650; padding: 4px 4px 4px 10px; border-radius: 999px; background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.rd-chips .chip small { font-weight: 500; color: var(--ui-text-3); }
.rd-chips .chip button { width: 20px; height: 20px; border-radius: 50%; border: 0; background: none; color: inherit; cursor: pointer; display: flex; align-items: center; justify-content: center; }
.rd-chips .chip button:hover { background: rgba(255, 104, 0, .2); }
.rd-chips .chip .ui-icon { width: 12px; height: 12px; }
.rd-cfg-busca { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.rd-cfg-res { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 6px; max-height: 260px; overflow-y: auto; }
.rd-cfg-res p { grid-column: 1 / -1; margin: 6px 0; font-size: .8rem; }
.rd-cfg-item { display: flex; align-items: center; gap: 8px; text-align: left; padding: 8px 10px; border-radius: 9px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text); font: inherit; cursor: pointer; min-width: 0; }
.rd-cfg-item:hover { border-color: var(--ui-accent); }
.rd-cfg-item .ui-icon { width: 14px; height: 14px; color: var(--ui-accent-text); flex-shrink: 0; }
.rd-cfg-item b { font-size: .82rem; }
.rd-cfg-item small { font-size: .72rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

@media (max-width: 1100px) { .rd-layout { grid-template-columns: 1fr; } .rd-lista-painel { position: static; max-height: none; } }
@media (max-width: 900px) { .rd .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 600px) {
    .rd-dia { min-height: 56px; padding: 4px; }
    .rd-dia-info small, .rd-clima { display: none; }
    .rd-dia.falta .rd-dia-falta { font-size: 0; padding: 0; width: 8px; height: 8px; border-radius: 50%; }
    .rd-dia-falta .ui-icon { display: none; }
    .rd-climas { grid-template-columns: repeat(2, 1fr); }
    .rd-obra-top input { width: 100% !important; }
    .rd-hero-nums { width: 100%; } .rd-hero-nums div { flex: 1; }
}

/* ---------- Análise de obras (página BMD) ---------- */
.page#page-bmd { overflow-y: auto; display: none; }
.page#page-bmd.active { display: block !important; }
.ao-abas { align-self: flex-start; margin: 0 0 4px; }
#page-bmd > .ao-abas { margin: 18px 24px 0; display: inline-flex; }
.ao-abas button { display: inline-flex; align-items: center; gap: 7px; }
.ao-abas .ui-icon { width: 15px; height: 15px; }
.ao-voltar { display: inline-flex; align-items: center; gap: 4px; padding: 2px 6px 2px 0; margin-bottom: 4px; }
.ao-voltar .ui-icon { width: 14px; height: 14px; }
.ao-barra { display: flex; gap: 10px; align-items: center; justify-content: space-between; flex-wrap: wrap; margin-bottom: 12px; }
.ao-barra-acoes { display: flex; gap: 6px; flex-wrap: wrap; }
.ao-lista-painel .tabela tbody tr { cursor: pointer; }
.ao-lista-painel .tabela tbody tr:hover td { background: var(--ui-surface-2); }
.pill.ao-falta { background: var(--ui-danger-soft); color: var(--ui-danger); }
.ao-dif { font-weight: 650; color: var(--ui-info); font-variant-numeric: tabular-nums; }
.ao-resumo { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 16px; }
.ao-tot th small { display: block; font-weight: 500; color: var(--ui-text-3); font-size: .7rem; }
.ao-tot td:first-child { white-space: nowrap; }
.ao-nota { display: flex; gap: 8px; align-items: flex-start; font-size: .8rem; color: var(--ui-text-2); margin: 10px 0 0; line-height: 1.45; flex-wrap: wrap; }
.ao-nota > .ui-icon { width: 15px; height: 15px; color: var(--ui-text-3); flex-shrink: 0; margin-top: 2px; }
.ao-nota i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; background: var(--c); margin: 0 4px 0 8px; vertical-align: -1px; }
.ao-estado { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 10px; font-size: .82rem; margin-bottom: 12px; }
.ao-estado .ui-icon { width: 17px; height: 17px; flex-shrink: 0; margin-top: 1px; }
.ao-estado.prel { background: var(--ui-warning-soft); color: var(--ui-text); border: 1px solid color-mix(in srgb, var(--ui-warning) 35%, transparent); }
.ao-estado.prel .ui-icon { color: var(--ui-warning); }
.ao-estado.ok { background: var(--ui-success-soft); border: 1px solid color-mix(in srgb, var(--ui-success) 35%, transparent); }
.ao-estado.ok .ui-icon { color: var(--ui-success); }
.ao-dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.ao-dl > div { padding: 10px 12px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.ao-dl dt { font-size: .72rem; color: var(--ui-text-3); font-weight: 600; }
.ao-dl dd { margin: 4px 0 0; font-size: 1.05rem; font-weight: 700; color: var(--ui-text); }
.ao-dl dd small { display: block; font-size: .7rem; font-weight: 500; color: var(--ui-text-3); margin-top: 2px; }
.ao-alertas ul, .ao-alertas-l, .ao-im ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ao-al { display: flex; gap: 10px; align-items: flex-start; font-size: .82rem; color: var(--ui-text); padding: 7px 10px; border-radius: 8px; background: var(--ui-surface-2); border-left: 3px solid var(--ui-text-3); }
.ao-al > span { font-size: .66rem; font-weight: 800; text-transform: uppercase; letter-spacing: .04em; min-width: 42px; padding-top: 2px; color: var(--ui-text-3); }
.ao-al small { color: var(--ui-text-3); }
.ao-al.erro { border-left-color: var(--ui-danger); } .ao-al.erro > span { color: var(--ui-danger); }
.ao-al.aviso { border-left-color: var(--ui-warning); } .ao-al.aviso > span { color: var(--ui-warning); }
.ao-al.info { border-left-color: var(--ui-info); } .ao-al.info > span { color: var(--ui-info); }
.ao-docs { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 10px; }
.ao-doc { display: flex; gap: 12px; align-items: flex-start; text-align: left; padding: 12px; border-radius: 12px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text); font: inherit; cursor: pointer; transition: border-color .15s; flex-wrap: wrap; }
.ao-doc:hover { border-color: var(--ui-accent); }
.ao-doc.conferido { border-left: 3px solid var(--ui-success); }
.ao-doc-ico { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; background: var(--ui-accent-soft); color: var(--ui-accent-text); flex-shrink: 0; }
.ao-doc-ico .ui-icon { width: 18px; height: 18px; }
.ao-doc-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ao-doc-txt b { font-size: .88rem; }
.ao-doc-txt small { font-size: .74rem; color: var(--ui-text-3); }
.ao-parcial { display: flex; gap: 5px; align-items: center; color: var(--ui-warning) !important; }
.ao-parcial .ui-icon { width: 13px; height: 13px; }
.ao-doc-st { width: 100%; display: flex; gap: 6px; flex-wrap: wrap; padding-left: 48px; }
.ao-tab table { min-width: 1100px; }
.ao-tab th.c { text-align: center; }
.ao-tab thead tr:nth-child(2) th { font-size: .66rem; font-weight: 600; color: var(--ui-text-3); padding-top: 2px !important; }
.ao-tab td { vertical-align: top !important; }
.ao-tar { min-width: 220px; max-width: 280px; }
.ao-tar b { display: block; font-size: .82rem; }
.ao-tar span { display: block; font-size: .76rem; color: var(--ui-text-2); }
.ao-sem td { background: color-mix(in srgb, var(--ui-surface-3) 30%, transparent); }
.ao-sempar td { background: color-mix(in srgb, var(--ui-warning) 6%, transparent); }
.ao-vs { min-width: 270px; display: flex; flex-direction: column; gap: 6px; }
.ao-v { display: flex; flex-direction: column; gap: 2px; width: 100%; text-align: left; padding: 7px 9px; border-radius: 9px; border: 1px solid var(--ui-border); border-left: 3px solid var(--c); background: var(--ui-surface); color: var(--ui-text); font: inherit; cursor: pointer; }
.ao-v:hover { border-color: var(--c); }
.ao-v-top { display: flex; justify-content: space-between; gap: 8px; }
.ao-v-orig { font-size: .68rem; font-weight: 700; color: var(--c); }
.ao-v-est { font-size: .66rem; font-weight: 700; color: var(--e); white-space: nowrap; }
.ao-v-cod { font-size: .74rem; font-weight: 650; }
.ao-v-desc { font-size: .72rem; color: var(--ui-text-3); }
.ao-cmp-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ao-cmp-col { padding: 10px 12px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); min-width: 0; }
.ao-cmp-rot { display: block; font-size: .7rem; font-weight: 700; color: var(--ui-text-3); text-transform: uppercase; letter-spacing: .03em; margin-bottom: 4px; }
.ao-cmp-col > b { font-size: .95rem; }
.ao-cmp-col p { margin: 4px 0 8px; font-size: .86rem; color: var(--ui-text); }
.ao-evid { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; font-size: .72rem; color: var(--ui-text-3); }
.ao-evid .ui-icon { width: 12px; height: 12px; }
.ao-evid .link { font-size: .72rem; padding: 0 4px; }
.ao-trecho { display: block; margin-top: 6px; padding: 6px 8px; border-radius: 6px; background: var(--ui-bg); color: var(--ui-text-2); font-size: .7rem; white-space: pre-wrap; word-break: break-word; }
.ao-just { margin-top: 12px; padding: 10px 12px; border-radius: 10px; border-left: 3px solid var(--c); background: color-mix(in srgb, var(--c) 9%, var(--ui-surface)); }
.ao-just b { font-size: .78rem; } .ao-just p { margin: 4px 0 0; font-size: .84rem; color: var(--ui-text); }
.ao-cmp-tab small { color: var(--ui-text-3); }
.ao-hist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; font-size: .82rem; }
.ao-hist small { display: block; color: var(--ui-text-3); }
.ao-cab { margin: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 8px 14px; }
.ao-cab dt { font-size: .7rem; color: var(--ui-text-3); font-weight: 600; }
.ao-cab dd { margin: 2px 0 0; font-size: .82rem; color: var(--ui-text); word-break: break-word; }
.ao-ed table { min-width: 900px; }
.ao-ed input { width: 100% !important; min-width: 70px; padding: 5px 7px !important; font-size: .8rem !important; text-align: right; }
.ao-ed input[data-c="codigo"], .ao-ed input.ao-ed-desc { text-align: left; }
.ao-ed input.ao-ed-desc { min-width: 220px; }
.ao-ed tr.corrigido td { background: color-mix(in srgb, var(--ui-info) 7%, transparent); }
.ao-corr-tag { display: block; color: var(--ui-info); font-size: .68rem; font-weight: 700; }
.ao-texto { max-height: 360px; overflow: auto; font-size: .7rem; background: var(--ui-bg); padding: 10px; border-radius: 8px; color: var(--ui-text-2); white-space: pre; margin: 0; }
.ao-drop { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 30px 16px; border-radius: 14px; border: 2px dashed var(--ui-border-strong); background: var(--ui-surface-2); text-align: center; cursor: pointer; color: var(--ui-text-2); transition: border-color .15s, background .15s; }
.ao-drop .ui-icon { width: 30px; height: 30px; color: var(--ui-accent-text); }
.ao-drop b { color: var(--ui-text); } .ao-drop span { font-size: .8rem; color: var(--ui-text-3); }
.ao-drop:hover, .ao-drop.sobre { border-color: var(--ui-accent); background: var(--ui-accent-soft); }
.ao-im-lista { display: flex; flex-direction: column; gap: 8px; }
.ao-im { display: flex; gap: 10px; align-items: flex-start; padding: 10px 12px; border-radius: 12px; border: 1px solid var(--ui-border); background: var(--ui-surface); }
.ao-im-ico { width: 30px; height: 30px; border-radius: 8px; display: flex; align-items: center; justify-content: center; background: var(--ui-surface-3); color: var(--ui-text-2); flex-shrink: 0; }
.ao-im-ico .ui-icon { width: 16px; height: 16px; }
.ao-im.pronto .ao-im-ico { background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.ao-im.enviado .ao-im-ico { background: var(--ui-success-soft); color: var(--ui-success); }
.ao-im.erro .ao-im-ico { background: var(--ui-danger-soft); color: var(--ui-danger); }
.ao-im-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 3px; }
.ao-im-txt > b { font-size: .86rem; word-break: break-all; }
.ao-im-txt small { font-size: .76rem; color: var(--ui-text-2); }
.ao-im-erro { color: var(--ui-danger) !important; } .ao-im-ok { color: var(--ui-success) !important; }
.ao-im details summary { cursor: pointer; font-size: .76rem; color: var(--ui-text-3); margin: 2px 0; }
.ao-im details ul { margin-top: 6px; }
.ao-inativa td { opacity: .55; }
.ao-obra { margin-top: 14px; }
.ao-obra p { font-size: .84rem; margin: 0 0 10px; color: var(--ui-text); }
@media (max-width: 1320px) { .ao-resumo { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .ao-cmp-grid, .ao-dl { grid-template-columns: 1fr; } .ao .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
#aoConteudo { display: flex; flex-direction: column; gap: 18px; }
#aoConteudo > .tela-head { align-items: flex-end; row-gap: 12px; }
#aoConteudo > .tela-head h1 { margin-top: 2px; }
.ao-pl-tit { display: flex; align-items: center; gap: 8px; margin: 6px 0 10px; font-size: .95rem; font-weight: 650; color: var(--ui-text); }
.ao-pl-tit .ui-icon { width: 17px; height: 17px; color: var(--ui-accent-text); }
.ao-pl { border: 1px solid var(--ui-border); border-radius: 14px; background: var(--ui-surface); padding: 14px; margin-bottom: 10px; }
.ao-pl > header { display: flex; gap: 12px; align-items: center; margin-bottom: 12px; }
.ao-pl > header b { display: block; font-size: .95rem; color: var(--ui-text); }
.ao-pl > header small { display: block; font-size: .76rem; color: var(--ui-text-3); margin-top: 2px; }
.ao-pl-ico { width: 36px; height: 36px; border-radius: 10px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.ao-pl-ico .ui-icon { width: 18px; height: 18px; }
.ao-pl-ico.existe { background: var(--ui-success-soft); color: var(--ui-success); }
.ao-pl-ico.nova { background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.ao-pl ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 8px; }
.ao-pl-acao { padding: 10px 12px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.ao-pl-acao.sem { opacity: .6; }
.ao-pl-acao .chave { padding: 0; }
.ao-pl-extra { display: flex; gap: 12px; flex-wrap: wrap; margin: 10px 0 0 50px; }
.ao-pl-sel { display: flex; align-items: center; gap: 8px; font-size: .78rem; color: var(--ui-text-2); font-weight: 600; }
.ao-pl-sel select, .ao-pl-sel input { width: auto !important; padding: 6px 10px !important; font-size: .82rem !important; }
.ao-pl-info { display: flex; gap: 8px; align-items: flex-start; font-size: .82rem; color: var(--ui-text-2); padding: 2px 4px; }
.ao-pl-info .ui-icon { width: 15px; height: 15px; color: var(--ui-success); flex-shrink: 0; margin-top: 2px; }
.ao-pl-info.alerta .ui-icon { color: var(--ui-warning); }
.ao-pl-ir { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.ao-obra-docs { list-style: none; margin: 0 0 10px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.ao-obra-docs li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.ao-obra-docs li > .ui-icon { width: 17px; height: 17px; color: var(--ui-accent-text); flex-shrink: 0; }
.ao-obra-docs li > span { flex: 1; min-width: 0; }
.ao-obra-docs b { display: block; font-size: .84rem; } .ao-obra-docs small { display: block; font-size: .72rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ao-obra-mat { margin-bottom: 10px; }
.ao-obra-mat summary { cursor: pointer; display: flex; align-items: center; gap: 8px; font-size: .84rem; font-weight: 600; color: var(--ui-text); padding: 6px 0; }
.ao-obra-mat summary .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); }
.ao-obra-mat .tabela { margin-top: 8px; }
.ao-obra-mat td, .ao-obra-mat th { font-size: .78rem !important; padding: 7px 10px !important; }
.ao-obra-acoes { display: flex; gap: 8px; }

/* ---------- RH (ponto, funcionários, banco de horas) ---------- */
.page#page-rh { overflow-y: auto; display: none; }
.page#page-rh.active { display: block !important; }
.rhx-abas { align-self: flex-start; flex-wrap: wrap; }
.rhx-abas button { display: inline-flex; align-items: center; gap: 7px; }
.rhx-abas .ui-icon { width: 15px; height: 15px; }
#rhxCorpo { display: flex; flex-direction: column; gap: 16px; min-width: 0; }
.rhx-col { display: flex; flex-direction: column; gap: 16px; }
.rhx-barra { flex-direction: row; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 12px 16px; }
.rhx-barra-dir { display: flex; gap: 8px; }
.rhx-periodo { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.rhx-periodo b { min-width: 150px; text-align: center; font-size: .92rem; color: var(--ui-text); }
.rhx-saldo { font-weight: 700; font-variant-numeric: tabular-nums; color: var(--ui-text-3); }
.rhx-saldo.pos { color: var(--ui-success); } .rhx-saldo.neg { color: var(--ui-danger); }
.tabela td .cad-avatar + b { display: inline; }
.rhx-ponto { display: grid; grid-template-columns: 270px minmax(0, 1fr); gap: 16px; align-items: start; }
.rhx-pessoas { position: sticky; top: 12px; padding: 12px; gap: 8px; max-height: calc(100vh - 120px); }
.rhx-pessoas select { width: 100%; }
.rhx-lista { overflow-y: auto; display: flex; flex-direction: column; gap: 2px; margin: 4px -4px 0; padding: 0 4px; }
.rhx-pessoa { display: flex; align-items: center; gap: 8px; width: 100%; text-align: left; padding: 7px 8px; border-radius: 9px; border: 0; background: none; color: var(--ui-text); font: inherit; cursor: pointer; }
.rhx-pessoa:hover { background: var(--ui-surface-2); }
.rhx-pessoa.ativo { background: var(--ui-accent-soft); box-shadow: inset 3px 0 0 var(--ui-accent); }
.rhx-pessoa .cad-avatar { margin: 0; flex-shrink: 0; }
.rhx-pessoa-txt { flex: 1; min-width: 0; }
.rhx-pessoa-txt b { display: block; font-size: .8rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rhx-pessoa-txt small { display: block; font-size: .7rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rhx-pend { min-width: 22px; height: 20px; padding: 0 6px; border-radius: 999px; background: var(--ui-warning-soft); color: var(--ui-warning); font-size: .7rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.rhx-ok { color: var(--ui-success); display: flex; } .rhx-ok .ui-icon { width: 15px; height: 15px; }
.rhx-folha { padding: 14px; gap: 12px; min-width: 0; }
.rhx-folha-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.rhx-folha-id { display: flex; align-items: center; gap: 10px; min-width: 0; }
.rhx-folha-id b { display: block; font-size: 1rem; color: var(--ui-text); }
.rhx-folha-id small { display: block; font-size: .76rem; color: var(--ui-text-3); }
.cad-avatar.grande { width: 40px; height: 40px; border-radius: 12px; font-size: .85rem; margin: 0; background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.rhx-ferr { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.rhx-padrao { display: flex; align-items: center; gap: 4px; font-size: .76rem; color: var(--ui-text-2); font-weight: 600; }
.rhx-padrao input { width: 58px !important; padding: 5px 6px !important; text-align: center; font-size: .8rem !important; font-variant-numeric: tabular-nums; }
.rhx-padrao span { margin: 0 2px; color: var(--ui-text-3); }
.rhx-ferr #rhxRel { margin-left: auto; }
.rhx-grade-wrap { overflow: auto; max-height: calc(100vh - 290px); border: 1px solid var(--ui-border); border-radius: 12px; }
.rhx-grade { width: 100%; border-collapse: separate; border-spacing: 0; font-size: .8rem; min-width: 1020px; }
.rhx-grade thead th { position: sticky; top: 0; z-index: 2; background: var(--ui-surface-2); color: var(--ui-text-3); font-size: .68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; padding: 8px 4px; text-align: center; border-bottom: 1px solid var(--ui-border); }
.rhx-grade th.r, .rhx-grade td.r { text-align: right; padding-right: 10px; }
.rhx-grade td { padding: 2px 3px; border-bottom: 1px solid var(--ui-border); text-align: center; font-variant-numeric: tabular-nums; color: var(--ui-text); }
.rhx-grade td.c { text-align: center; }
.rhx-grade td.r { color: var(--ui-text-2); font-weight: 600; }
.rhx-grade td.e5, .rhx-grade td.e1 { color: var(--ui-accent-text); }
.rhx-grade .rhx-dia { position: sticky; left: 0; z-index: 1; background: var(--ui-surface); text-align: left; padding: 4px 8px; min-width: 104px; white-space: nowrap; }
.rhx-grade thead .rhx-dia { z-index: 3; background: var(--ui-surface-2); }
.rhx-dia b { font-size: .8rem; } .rhx-dia span { margin-left: 5px; color: var(--ui-text-3); font-size: .72rem; }
.rhx-dia em { display: block; font-style: normal; font-size: .62rem; font-weight: 700; color: var(--ui-danger); text-transform: uppercase; letter-spacing: .03em; }
.rhx-dia em.a { color: var(--a, var(--ui-info)); }
.rhx-h { width: 58px !important; padding: 5px 4px !important; text-align: center; font-size: .82rem !important; font-variant-numeric: tabular-nums; border-radius: 6px !important; background: transparent !important; border-color: transparent !important; }
.rhx-h:hover { border-color: var(--ui-border) !important; }
.rhx-h:focus { background: var(--ui-surface) !important; border-color: var(--ui-accent) !important; }
.rhx-grade tr.dom td, .rhx-grade tr.fer td { background: color-mix(in srgb, var(--ui-danger) 6%, transparent); }
.rhx-grade tr.dom .rhx-dia, .rhx-grade tr.fer .rhx-dia { background: color-mix(in srgb, var(--ui-danger) 6%, var(--ui-surface)); }
.rhx-grade tr.sab td { background: color-mix(in srgb, var(--ui-surface-3) 35%, transparent); }
.rhx-grade tr.sab .rhx-dia { background: color-mix(in srgb, var(--ui-surface-3) 35%, var(--ui-surface)); }
.rhx-grade tr.aus td { background: color-mix(in srgb, var(--a) 8%, transparent); }
.rhx-grade tr.aus .rhx-dia { background: color-mix(in srgb, var(--a) 8%, var(--ui-surface)); box-shadow: inset 3px 0 0 var(--a); }
.rhx-grade tr.hoje .rhx-dia b { color: var(--ui-accent-text); }
.rhx-grade tr.futuro { opacity: .55; }
.rhx-grade tr.sujo .rhx-dia { box-shadow: inset 3px 0 0 var(--ui-accent); }
.rhx-grade tr:hover td { background: color-mix(in srgb, var(--ui-accent) 5%, transparent); }
.rhx-grade td.av { width: 26px; }
.rhx-av { display: inline-flex; color: var(--ui-warning); cursor: help; }
.rhx-av .ui-icon { width: 15px; height: 15px; }
.rhx-grade tfoot td { position: sticky; bottom: 0; background: var(--ui-surface-2); font-weight: 800; color: var(--ui-text); border-top: 1px solid var(--ui-border-strong); padding: 8px 4px; }
.rhx-grade tfoot .rhx-dia { background: var(--ui-surface-2); }
.rhx-legenda { text-align: left !important; font-weight: 500 !important; font-size: .7rem; color: var(--ui-text-3) !important; }
.rhx-legenda i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin: 0 4px 0 10px; vertical-align: -1px; }
.rhx-legenda .l-dom { background: color-mix(in srgb, var(--ui-danger) 30%, transparent); }
.rhx-legenda .l-aus { background: color-mix(in srgb, var(--ui-info) 35%, transparent); }
.rhx-legenda .l-av { background: var(--ui-warning); }
.rhx-salvar { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: flex-end; gap: 10px; padding: 10px 0 2px; background: var(--ui-surface); }
.rhx-salvar span { margin-right: auto; font-size: .8rem; }
.rhx-pendente { color: var(--ui-accent-text); font-weight: 600; }
.rhx-inativo td { opacity: .55; }
.rhx-banco-hero { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 18px; border-radius: 14px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.rhx-banco-hero span { font-size: .76rem; color: var(--ui-text-3); font-weight: 600; }
.rhx-banco-hero b { font-size: 2rem; font-variant-numeric: tabular-nums; color: var(--ui-text); }
.rhx-banco-hero.pos b { color: var(--ui-success); } .rhx-banco-hero.neg b { color: var(--ui-danger); }
.rhx-banco-hero small { font-size: .72rem; color: var(--ui-text-3); }
.rhx-extrato { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.rhx-extrato li { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; background: var(--ui-surface-2); border-left: 3px solid var(--ui-text-3); }
.rhx-extrato li.pos { border-left-color: var(--ui-success); } .rhx-extrato li.neg { border-left-color: var(--ui-danger); }
.rhx-ext-v { min-width: 64px; font-weight: 800; font-variant-numeric: tabular-nums; }
.rhx-extrato li.pos .rhx-ext-v { color: var(--ui-success); } .rhx-extrato li.neg .rhx-ext-v { color: var(--ui-danger); }
.rhx-ext-t { flex: 1; min-width: 0; } .rhx-ext-t b { display: block; font-size: .84rem; } .rhx-ext-t small { font-size: .72rem; color: var(--ui-text-3); }
.rhx-tipos { display: flex; flex-wrap: wrap; gap: 6px; }
.rhx-tipos button { height: 32px; padding: 0 12px; border-radius: 999px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text-2); font: inherit; font-size: .78rem; font-weight: 600; cursor: pointer; }
.rhx-tipos button[aria-pressed="true"] { border-color: var(--c); background: color-mix(in srgb, var(--c) 16%, var(--ui-surface)); color: var(--ui-text); box-shadow: inset 0 0 0 1px var(--c); }
.rhx-cads { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
.rhx-fer { grid-column: 1 / -1; }
.rhx-cad-l { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.rhx-cad-l button { width: 100%; text-align: left; padding: 9px 10px; border-radius: 10px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text); font: inherit; cursor: pointer; }
.rhx-cad-l button:hover { border-color: var(--ui-accent); }
.rhx-cad-l b { display: block; font-size: .86rem; } .rhx-cad-l small { font-size: .72rem; color: var(--ui-text-3); }
.rhx-fer-add { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 10px; }
.rhx-fer-add input[type="text"] { flex: 1; min-width: 200px; }
.rhx-fer-sug { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; padding: 8px 12px; border-radius: 10px; background: var(--ui-info-soft); font-size: .8rem; margin-bottom: 10px; }
.rhx-fer-sug span { display: flex; align-items: center; gap: 6px; } .rhx-fer-sug .ui-icon { width: 15px; height: 15px; color: var(--ui-info); }
.rhx-fer-l { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 6px; }
.rhx-fer-l li { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.rhx-fer-l li > span:nth-child(2) { flex: 1; min-width: 0; } .rhx-fer-l b { font-size: .82rem; } .rhx-fer-l small { display: block; font-size: .7rem; color: var(--ui-text-3); }
.rhx-fer-d { width: 40px; height: 40px; border-radius: 9px; background: var(--ui-accent-soft); color: var(--ui-accent-text); display: flex; flex-direction: column; align-items: center; justify-content: center; font-size: .62rem; text-transform: uppercase; font-weight: 700; flex-shrink: 0; line-height: 1.1; }
.rhx-fer-d b { font-size: .95rem; }
.rhx-rel .rh-section { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; }
@media (max-width: 1100px) { .rhx-ponto { grid-template-columns: 1fr; } .rhx-pessoas { position: static; max-height: 260px; } .rhx-cads { grid-template-columns: 1fr; } }
@media (max-width: 900px) { .rhx .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rhx-abas button span { display: none; } }

/* ---------- Multas ---------- */
.page#page-multas { overflow-y: auto; display: none; }
.page#page-multas.active { display: block !important; }
.mx-filtros { gap: 10px; padding: 12px 14px; }
.mx-linha { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.mx-linha select { width: auto; min-width: 140px; }
.mx-linha .seg { flex-wrap: wrap; }
.mx-graf { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.mx-graf:empty { display: none; }
.mx-barras { display: flex; flex-direction: column; gap: 9px; }
.mx-barra { display: grid; grid-template-columns: minmax(90px, 160px) 1fr auto 28px; gap: 10px; align-items: center; font-size: .8rem; }
.mx-barra-n { color: var(--ui-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mx-barra .barra > i { background: #F0574D; }
.mx-barra b { font-variant-numeric: tabular-nums; color: var(--ui-text); }
.mx-barra small { color: var(--ui-text-3); text-align: right; }
.mx-parc { display: flex; flex-direction: column; gap: 4px; min-width: 130px; }
.mx-parc .barra { height: 5px; } .mx-parc small { font-size: .72rem; color: var(--ui-text-3); }
.mx-clip { color: var(--ui-text-3); display: inline-flex; } .mx-clip .ui-icon { width: 16px; height: 16px; }
.mx-hero { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; }
.mx-hero > div { padding: 12px; border-radius: 12px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); display: flex; flex-direction: column; gap: 3px; }
.mx-hero span { font-size: .72rem; color: var(--ui-text-3); font-weight: 600; }
.mx-hero b { font-size: 1.15rem; color: var(--ui-text); font-variant-numeric: tabular-nums; }
.mx-hero b.ok { color: var(--ui-success); } .mx-hero b.pend { color: var(--ui-warning); }
.mx-hero small { font-size: .72rem; color: var(--ui-text-3); }
.mx-det { display: block; font-weight: 500; color: var(--ui-text-3); font-size: .76rem; }
.mx-parcelas { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.mx-parcelas li { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; padding: 8px 10px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); border-left: 3px solid var(--ui-warning); }
.mx-parcelas li.paga { border-left-color: var(--ui-success); }
.mx-pn { width: 30px; font-weight: 800; color: var(--ui-text-3); }
.mx-parcelas li > b { min-width: 100px; font-variant-numeric: tabular-nums; }
.mx-parcelas input[type="date"] { width: auto !important; padding: 5px 8px !important; margin-left: auto; }
.mx-ps { display: inline-flex; align-items: center; gap: 5px; font-size: .78rem; color: var(--ui-success); margin-left: auto; }
.mx-ps .ui-icon { width: 14px; height: 14px; } .mx-ps.pend { color: var(--ui-warning); }
.mx-anexo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.mx-anexo > span { flex: 1; min-width: 0; display: flex; align-items: center; gap: 6px; font-size: .84rem; word-break: break-all; }
.mx-anexo .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); flex-shrink: 0; }
.mx-anexo .btn-texto-perigo { margin: 0; }
#mxAnexoView { margin-top: 10px; display: flex; flex-direction: column; gap: 8px; align-items: flex-start; }
.mx-pdf { width: 100%; height: 480px; border: 1px solid var(--ui-border); border-radius: 10px; background: #fff; }
.mx-img { max-width: 100%; max-height: 480px; border-radius: 10px; border: 1px solid var(--ui-border); }
.mx-perdido { display: flex; gap: 8px; align-items: flex-start; margin: 0; font-size: .82rem; color: var(--ui-warning); }
.mx-perdido .ui-icon { width: 16px; height: 16px; flex-shrink: 0; margin-top: 2px; }
.mx-motivo { display: flex; gap: 8px; } .mx-motivo select { flex: 1; }
.mx-motivo-novo { display: flex; gap: 8px; margin-top: 8px; } .mx-motivo-novo input { flex: 1; }
.mx-calc { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 12px; }
.mx-calc > div { flex: 1; min-width: 120px; padding: 10px 12px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.mx-calc span { display: block; font-size: .72rem; color: var(--ui-text-3); font-weight: 600; }
.mx-calc b { font-size: 1.05rem; font-variant-numeric: tabular-nums; color: var(--ui-text); }
.mx-drop { padding: 18px 14px; flex-direction: row; justify-content: center; }
.mx-drop .ui-icon { width: 20px; height: 20px; }
.mx-drop.ok { border-color: var(--ui-success); background: var(--ui-success-soft); }
.mx-motivos { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.mx-motivos li { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; padding: 6px 8px; border-radius: 10px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.mx-motivos input { flex: 1; min-width: 160px; }
.mx-motivos small { font-size: .7rem; color: var(--ui-text-3); white-space: nowrap; }
@media (max-width: 1000px) { .mx-graf { grid-template-columns: 1fr; } }
@media (max-width: 700px) { .mx .kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mx-hero { grid-template-columns: 1fr; } .mx-barra { grid-template-columns: 90px 1fr auto; } .mx-barra small { display: none; } }
.mx .kpi-valor { font-size: clamp(1.1rem, 1.9vw, 1.55rem); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ===== RMD e MDM (controle por obra) ===== */
.ao-mv-barra { justify-content: flex-start; }
.ao-mv-barra .busca { flex: 1 1 260px; }
.ao-mv-barra select { height: 38px; border-radius: 10px; background: var(--ui-surface-2); color: var(--ui-text); border: 1px solid var(--ui-border); padding: 0 10px; font: inherit; font-size: .84rem; }
.ao-lista-painel .ao-mv-tab tbody tr { cursor: default; }
.ao-mv-tab td small { display: block; font-size: .72rem; color: var(--ui-text-3); }
.ao-mv-chips { display: flex; flex-wrap: wrap; gap: 6px; }
.ao-mv-chip { display: inline-flex; flex-direction: column; align-items: flex-start; gap: 1px; padding: 5px 9px; border-radius: 9px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text); font: inherit; text-align: left; cursor: pointer; }
span.ao-mv-chip { cursor: default; }
button.ao-mv-chip:hover { border-color: var(--ui-accent); }
.ao-mv-chip b { font-size: .78rem; font-variant-numeric: tabular-nums; }
.ao-mv-chip small { font-size: .68rem; color: var(--ui-text-3); }
.ao-mv-nao { font-size: .78rem; color: var(--ui-text-3); font-style: italic; }
.ao-mv-blocos { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 12px; margin-bottom: 14px; }
.ao-mv-bloco { border: 1px solid var(--ui-border); border-radius: 12px; padding: 12px 14px; background: var(--ui-surface-2); }
.ao-mv-bloco.ok { border-color: color-mix(in srgb, #34C47C 45%, var(--ui-border)); }
.ao-mv-bloco.falta { border-color: color-mix(in srgb, #E8A33D 55%, var(--ui-border)); }
.ao-mv-tit { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; }
.ao-mv-tit .ui-icon { width: 17px; height: 17px; }
.ao-mv-bloco.ok .ao-mv-tit .ui-icon { color: #34C47C; } .ao-mv-bloco.falta .ao-mv-tit .ui-icon { color: #E8A33D; }
.ao-mv-tit b { font-size: .95rem; } .ao-mv-tit span { font-size: .78rem; color: var(--ui-text-3); }
.ao-mv-bloco ul { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ao-mv-bloco li { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px; font-size: .84rem; }
.ao-mv-bloco li small, .ao-mv-bloco p { font-size: .78rem; color: var(--ui-text-3); margin: 0; }
.ao-obra-mv { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; margin: 0 0 10px; }
.ao-obra-mv > .ui-icon { width: 16px; height: 16px; color: var(--ui-accent-text); }
.ao-obra-mv small { font-size: .74rem; color: #E8A33D; }.ao-mv-cmp { min-width: 820px; }
.ao-mv-cmp td:nth-child(2) { min-width: 220px; }
.ao-mv-tab { min-width: 640px; }

/* ===== Conteúdo rola por baixo do topo (vidro fosco), sem corte seco na borda ===== */
.main-content, body.sb-mini .main-content {
    margin-top: 0 !important;
    height: 100vh !important;
    height: 100dvh !important;
}
.main-content > .page { box-sizing: border-box; padding-top: var(--topbar-h); scroll-padding-top: calc(var(--topbar-h) + 12px); }
.topbar { background: color-mix(in srgb, var(--ui-bg) 78%, transparent); box-shadow: 0 1px 0 rgba(0, 0, 0, .02), 0 8px 24px -18px rgba(0, 0, 0, .35); }
@media (max-width: 960px) {
    .main-content, body.sb-mini .main-content {
        height: calc(100vh - var(--bottomnav-h) - env(safe-area-inset-bottom)) !important;
        height: calc(100dvh - var(--bottomnav-h) - env(safe-area-inset-bottom)) !important;
    }
}
/* ===== Logo da Campos Gerais (versão para fundo escuro e para fundo claro) ===== */
.so-claro { display: none !important; }
[data-theme="light"] .so-claro { display: block !important; }
[data-theme="light"] .so-escuro { display: none !important; }
.sb-logo { padding: 0 16px; }
.sb-logo .sb-logo-icon { display: none; }
.sb-logo-marca { display: flex; align-items: center; height: 100%; min-width: 0; }
.sb-logo-marca img { height: 40px; width: auto; max-width: 100%; object-fit: contain; }
body.sb-mini .sb-logo .sb-logo-icon { display: flex; }
body.sb-mini .sb-logo-marca { display: none; }
.app-loading-marca img { width: min(240px, 62vw); height: auto; margin: 0 auto 26px; animation: marcaPulso 1.8s ease-in-out infinite; }
@keyframes marcaPulso { 0%, 100% { opacity: 1; } 50% { opacity: .72; } }
@media (prefers-reduced-motion: reduce) { .app-loading-marca img { animation: none; } }
@media (max-width: 960px) { body.sb-mini .sb-logo .sb-logo-icon { display: none; } body.sb-mini .sb-logo-marca { display: flex; } }.perm-i.so-admin { opacity: .6; cursor: not-allowed; }

/* ===== Aceite dos termos ===== */
.termos-overlay { z-index: 3000 !important; }
.termos-cf { max-width: 480px !important; text-align: left; }
.termos-msg p { margin: 0 0 12px; color: var(--ui-text-2); font-size: .9rem; line-height: 1.55; }
.termos-links { display: flex; flex-direction: column; gap: 8px; margin-bottom: 14px; }
.termos-links a { display: flex; align-items: center; gap: 12px; padding: 11px 13px; border-radius: 11px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); color: var(--ui-text); text-decoration: none; }
.termos-links a:hover { border-color: var(--ui-accent); }
.termos-links .ui-icon { width: 18px; height: 18px; color: var(--ui-accent-text); flex-shrink: 0; }
.termos-links b { display: block; font-size: .88rem; } .termos-links small { display: block; font-size: .76rem; color: var(--ui-text-3); }
.termos-ok { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; color: var(--ui-text); cursor: pointer; }
.termos-ok input { width: 18px; height: 18px; margin-top: 1px; accent-color: var(--ui-accent); flex-shrink: 0; }
.termos-erro { margin-top: 10px !important; color: var(--ui-danger) !important; font-size: .82rem !important; }
/* ===== Calendário: grade com cidade e painel do dia ===== */
.cg-dia { min-height: 132px; padding: 6px 6px 8px; gap: 5px; position: relative; outline: none; transition: background .12s; }
.cg-dia:focus-visible { box-shadow: inset 0 0 0 2px var(--ui-accent); }
.cg-dia.tem:hover { background: color-mix(in srgb, var(--ui-accent) 6%, var(--ui-surface-2)); }
.cg-dia::after { content: '+'; position: absolute; right: 7px; top: 5px; width: 20px; height: 20px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: .9rem; color: var(--ui-text-3); opacity: 0; transition: opacity .12s; }
.cg-dia:not(.tem):hover::after { opacity: 1; }
.cg-topo { display: flex; align-items: center; justify-content: space-between; gap: 4px; }
.cg-total { font-size: .66rem; font-weight: 700; color: var(--ui-text-3); background: var(--ui-surface-3); border-radius: 999px; padding: 1px 7px; }
.cg-dia.hoje .cg-total { background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.cg-ev { display: flex; flex-direction: column; align-items: stretch; gap: 0; width: 100%; text-align: left; font: inherit; font-size: .68rem; line-height: 1.25; padding: 3px 6px 3px 7px; border: 0; border-left: 3px solid var(--c); border-radius: 6px; cursor: pointer; white-space: normal; }
.cg-ev:hover { filter: brightness(1.08); box-shadow: 0 0 0 1px var(--c); }
.cg-ev-l1 { display: flex; align-items: center; gap: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-variant-numeric: tabular-nums; }
.cg-ev-l1 b { font-weight: 750; }
.cg-ev-l1 .ui-icon { width: 11px; height: 11px; color: var(--ui-warning); flex-shrink: 0; }
.cg-ev-l2 { color: var(--ui-text-3); font-size: .64rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cg-ev.prog { background: color-mix(in srgb, var(--c) 10%, var(--ui-surface-2)); }
.cg-mais { font-size: .68rem; font-weight: 600; color: var(--ui-accent-text); padding: 1px 4px; }
@media (max-width: 900px) {
    .cg-dia { min-height: 70px; padding: 4px; }
    .cg-dia::after { display: none; }
    .cg-total { display: none; }
    .cg-ev { pointer-events: none; height: 6px; padding: 0; font-size: 0; border-radius: 3px; background: var(--c) !important; border: 0; }
    .cg-ev-l1, .cg-ev-l2 { display: none; }
    .cg-evs { flex-direction: row; flex-wrap: wrap; gap: 3px; }
    .cg-ev { width: calc(50% - 2px); }
    .cg-mais { display: block; font-size: .62rem; padding: 0; width: 100%; }
}
/* Painel do dia */
.ad-nav { display: flex; align-items: center; gap: 10px; padding: 4px 0 14px; border-bottom: 1px solid var(--ui-border); margin-bottom: 14px; }
.ad-data { flex: 1; min-width: 0; }
.ad-data b { display: block; font-size: 1.15rem; letter-spacing: -.01em; }
.ad-data small { color: var(--ui-text-3); font-size: .8rem; }
.ad-resumo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; margin-bottom: 12px; }
.ad-resumo span { display: flex; flex-direction: column; gap: 1px; padding: 9px 11px; border-radius: 11px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); border-top: 3px solid var(--c); font-size: .72rem; color: var(--ui-text-3); }
.ad-resumo b { font-size: 1.15rem; color: var(--ui-text); font-variant-numeric: tabular-nums; }
.ad-cidades { display: flex; align-items: center; gap: 7px; flex-wrap: wrap; font-size: .82rem; color: var(--ui-text-2); margin: 0 0 6px; }
.ad-cidades .ui-icon { width: 15px; height: 15px; color: var(--ui-accent-text); }
.ad-sec { display: flex; align-items: center; gap: 8px; font-size: .78rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ui-text-3); margin: 18px 0 8px; }
.ad-sec .ui-icon { width: 15px; height: 15px; }
.ad-sec em { font-style: normal; background: var(--ui-surface-3); color: var(--ui-text-2); border-radius: 999px; padding: 0 8px; font-size: .7rem; letter-spacing: 0; }
.ad-lista { display: flex; flex-direction: column; gap: 8px; }
.ad-card { display: flex; align-items: flex-start; gap: 12px; width: 100%; text-align: left; font: inherit; color: var(--ui-text); padding: 12px 12px 12px 14px; border-radius: 12px; border: 1px solid var(--ui-border); border-left: 4px solid var(--c); background: var(--ui-surface-2); cursor: pointer; transition: border-color .12s, transform .12s; }
.ad-card:hover { border-color: var(--c); }
.ad-card:active { transform: scale(.995); }
.ad-card > .ui-icon { width: 16px; height: 16px; color: var(--ui-text-3); margin-top: 3px; flex-shrink: 0; }
.ad-tag { font-size: .72rem; font-weight: 800; color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); border-radius: 8px; padding: 6px 8px; flex-shrink: 0; }
.ad-ini { width: 34px; height: 34px; border-radius: 10px; flex-shrink: 0; display: flex; align-items: center; justify-content: center; font-size: .74rem; font-weight: 700; color: var(--c); background: color-mix(in srgb, var(--c) 14%, transparent); }
.ad-txt { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 4px; }
.ad-txt > b { font-size: .95rem; }
.ad-cid { display: flex; align-items: center; gap: 5px; font-size: .84rem; font-weight: 600; color: var(--ui-text); }
.ad-cid .ui-icon { width: 14px; height: 14px; color: var(--ui-accent-text); flex-shrink: 0; }
.ad-info { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 12px; font-size: .76rem; color: var(--ui-text-3); }
.ad-info > span:not(.tag) { display: inline-flex; align-items: center; gap: 4px; }
.ad-info .ui-icon { width: 13px; height: 13px; }
.ad-desl { display: inline-flex; align-items: center; gap: 6px; font-size: .76rem; font-weight: 600; color: var(--ui-warning); }
.ad-desl .ui-icon { width: 14px; height: 14px; }
.ad-obs { font-size: .78rem; color: var(--ui-text-2); background: var(--ui-surface-3); border-radius: 8px; padding: 6px 9px; white-space: pre-line; }
.ad-vazio { padding: 28px 10px; text-align: center; display: flex; flex-direction: column; align-items: center; gap: 6px; }
@media (max-width: 600px) { .ad-resumo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }@media (min-width: 901px) { .cg-dia { min-height: 96px; } }

/* ===== AES: ficha e lançamento rápido de obras ===== */
.cad-lancar { white-space: nowrap; }
.aes-resumo { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px; margin-bottom: 14px; }
.aes-resumo div { padding: 12px 14px; border-radius: 12px; background: var(--ui-surface-2); border: 1px solid var(--ui-border); }
.aes-resumo small { display: block; font-size: .72rem; color: var(--ui-text-3); text-transform: uppercase; letter-spacing: .05em; }
.aes-resumo b { display: block; font-size: 1.25rem; font-variant-numeric: tabular-nums; margin: 2px 0; }
.aes-resumo span { font-size: .74rem; color: var(--ui-text-3); }
.aes-dados { display: flex; flex-wrap: wrap; gap: 8px 28px; margin: 0 0 16px; }
.aes-dados dt { font-size: .72rem; color: var(--ui-text-3); } .aes-dados dd { margin: 0; font-weight: 600; font-size: .9rem; }
.aes-dados .largo { flex-basis: 100%; } .aes-dados .largo dd { font-weight: 400; white-space: pre-line; }
.aes-barra { display: flex; align-items: center; justify-content: space-between; gap: 10px; flex-wrap: wrap; margin-bottom: 10px; }
.aes-barra h3 { display: flex; align-items: center; gap: 8px; font-size: .95rem; margin: 0; }
.aes-barra h3 .ui-icon { width: 17px; height: 17px; color: var(--ui-accent-text); }
.aes-vinc { display: flex; gap: 6px; flex: 0 1 380px; }
.aes-vinc input { flex: 1; min-width: 0; }
.dw tr[data-obra] { cursor: pointer; } .dw tr[data-obra]:hover td { background: var(--ui-surface-2); }
.dw tr[data-obra] td small { display: block; font-size: .72rem; color: var(--ui-text-3); }
.lc-intro { display: flex; gap: 10px; align-items: flex-start; font-size: .86rem; color: var(--ui-text-2); background: var(--ui-accent-soft); border: 1px solid color-mix(in srgb, var(--ui-accent) 30%, transparent); border-radius: 12px; padding: 11px 14px; margin: 0 0 16px; }
.lc-intro .ui-icon { width: 17px; height: 17px; color: var(--ui-accent-text); flex-shrink: 0; margin-top: 1px; }
.lc-comum, .lc-obras { border: 1px solid var(--ui-border); border-radius: 14px; padding: 14px; margin-bottom: 14px; background: var(--ui-surface-1, transparent); }
.lc-comum h3, .lc-obras h3 { font-size: .8rem; text-transform: uppercase; letter-spacing: .06em; color: var(--ui-text-3); margin: 0 0 10px; }
.lc-comum-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 10px 12px; }
.lc-comum-grid .fld { margin: 0; }
.lc-obras-head { display: flex; justify-content: space-between; align-items: baseline; }
.lc-obras-head span { font-size: .8rem; color: var(--ui-text-2); }
.lc-tab { min-width: 760px; }
.lc-tab td { padding: 5px 6px; vertical-align: middle; }
.lc-tab input, .lc-tab select { width: 100%; height: 34px; padding: 0 8px; font-size: .85rem; }
.lc-tab input.num { text-align: right; }
.lc-tab .lc-n { width: 30px; color: var(--ui-text-3); font-size: .78rem; text-align: center; }
.lc-tab td:nth-child(2) { width: 150px; } .lc-tab td:nth-child(3) { width: 130px; } .lc-tab td:nth-child(4) { width: 170px; }
.lc-tab td:nth-child(5), .lc-tab td:nth-child(6) { width: 110px; } .lc-tab .lc-sit { min-width: 120px; }
.lc-tab tr.erro input.lc-num { border-color: var(--ui-danger); }
.lc-tab tr.existe td { background: color-mix(in srgb, #5B9DF2 6%, transparent); }
.lc-tab .tag .ui-icon { width: 12px; height: 12px; }
.lc-obras > .btn { margin-top: 10px; }
@media (max-width: 900px) { .aes-resumo, .lc-comum-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }#cadLista td.acoes { white-space: nowrap; }
#cadLista .cad-lancar { margin-right: 4px; height: 30px; padding: 0 10px; }
#cadLista td[data-r="Número"] small { display: block; max-width: 230px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
@media (max-width: 1400px) {
    #cadLista td[data-r="Disp. Teams"], #cadLista table:has(td[data-r="Disp. Teams"]) th:nth-child(3) { display: none; }
}.aes-busca { border: 1px solid var(--ui-border); border-radius: 12px; padding: 10px; margin-bottom: 12px; background: var(--ui-surface-2); display: flex; flex-direction: column; gap: 8px; }
.aes-busca .busca { width: 100%; }
.aes-busca-so { display: inline-flex; align-items: center; gap: 7px; font-size: .8rem; color: var(--ui-text-2); cursor: pointer; }
.aes-busca-so input { accent-color: var(--ui-accent); width: 15px; height: 15px; }
.aes-res { max-height: 300px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.aes-res-i { display: grid; grid-template-columns: 110px minmax(0, 1fr) auto auto auto; align-items: center; gap: 10px; padding: 7px 8px 7px 12px; border-radius: 9px; background: var(--ui-surface-1, var(--ui-bg)); border: 1px solid var(--ui-border); }
.aes-res-i:hover { border-color: var(--ui-accent); }
.aes-res-n { font-weight: 700; font-variant-numeric: tabular-nums; }
.aes-res-c { display: inline-flex; align-items: center; gap: 5px; font-size: .84rem; color: var(--ui-text-2); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.aes-res-c .ui-icon { width: 13px; height: 13px; color: var(--ui-accent-text); flex-shrink: 0; }
.aes-res-aes { font-size: .74rem; color: var(--ui-text-3); white-space: nowrap; }
.aes-res-aes.sem { color: #34C47C; }
.aes-res-mais { font-size: .8rem; color: var(--ui-text-3); margin: 6px 4px; }
.aes-res mark { background: rgba(255, 104, 0, .3); color: inherit; border-radius: 3px; }
@media (max-width: 700px) { .aes-res-i { grid-template-columns: 1fr auto; } .aes-res-c, .aes-res-i .tag { grid-column: 1; } .aes-res-aes { grid-column: 1; } .aes-res-i .btn { grid-row: 1 / span 3; grid-column: 2; } }
/* ===== Relatório de US lançadas (novo) ===== */
.rus .tela-head { margin-top: 4px; }
.rus-modo { align-self: flex-start; }
.rus-modo button { display: inline-flex; align-items: center; gap: 7px; }
.rus-modo .ui-icon { width: 15px; height: 15px; }
.rus-badge { font-style: normal; background: var(--ui-accent); color: #fff; border-radius: 999px; padding: 0 7px; font-size: .7rem; }
.rus-filtros { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)) auto; gap: 10px; align-items: end; padding: 14px 16px; }
.rus-f label { display: block; font-size: .72rem; font-weight: 600; color: var(--ui-text-3); text-transform: uppercase; letter-spacing: .04em; margin-bottom: 5px; }
.rus-f select { width: 100%; }
.rus-limpar { height: 38px; }
.rus-periodo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 0; font-size: .88rem; color: var(--ui-text-2); }
.rus-periodo .ui-icon { width: 16px; height: 16px; color: var(--ui-accent-text); }
.rus-periodo span { padding: 2px 10px; border-radius: 999px; background: var(--ui-surface-3); font-size: .78rem; }
.rus-periodo .rus-nds { background: rgba(232, 163, 61, .15); color: #E8A33D; }
.rus-kpis { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rus-kpis .kpi-valor { font-size: clamp(1.15rem, 2vw, 1.55rem); }
.rus-nds-bloco { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
.rus-nds-bloco > div { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 11px 14px; border-radius: 12px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); }
.rus-nds-bloco b { font-size: 1rem; font-variant-numeric: tabular-nums; }
.rus-nds-bloco small { flex-basis: 100%; color: var(--ui-text-3); font-size: .76rem; }
.rus-pilha { display: flex; height: 14px; border-radius: 999px; overflow: hidden; gap: 2px; margin: 4px 0 12px; }
.rus-pilha span { background: var(--c); min-width: 4px; }
.rus-leg { display: flex; flex-wrap: wrap; gap: 8px 18px; font-size: .82rem; color: var(--ui-text-2); }
.rus-leg span { display: inline-flex; align-items: center; gap: 6px; }
.rus-leg i { width: 10px; height: 10px; border-radius: 3px; }
.rus-meses { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 6px; height: 190px; }
.rus-mes { display: flex; flex-direction: column; align-items: center; gap: 4px; border: 0; background: none; font: inherit; color: var(--ui-text-2); cursor: pointer; padding: 4px 0; border-radius: 10px; min-width: 0; }
.rus-mes:hover { background: var(--ui-surface-2); }
.rus-mes-v { font-size: .66rem; font-weight: 600; color: var(--ui-text); height: 14px; white-space: nowrap; }
.rus-mes-b { flex: 1; width: 64%; display: flex; align-items: flex-end; background: var(--ui-surface-3); border-radius: 6px; overflow: hidden; }
.rus-mes-b i { width: 100%; background: linear-gradient(180deg, #FF8A3D, #FF6800); border-radius: 6px 6px 0 0; }
.rus-mes.atual .rus-mes-n { color: var(--ui-accent-text); font-weight: 700; }
.rus-mes-n { font-size: .72rem; }
.rus-duas { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.rus-duas-l { grid-template-columns: 1fr; }
.rus-barras { display: flex; flex-direction: column; gap: 9px; }
.rus-barra { display: grid; grid-template-columns: minmax(90px, 160px) minmax(0, 1fr) auto; align-items: center; gap: 10px; font-size: .84rem; }
.rus-barra-n { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; color: var(--ui-text-2); }
.rus-barra-t { height: 10px; border-radius: 999px; background: var(--ui-surface-3); overflow: hidden; }
.rus-barra-t i { display: block; height: 100%; border-radius: 999px; }
.rus-barra-v { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.rus-barra-v small { color: var(--ui-text-3); font-weight: 400; }
.rus-top { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px 12px; }
.rus-top button { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; font: inherit; color: var(--ui-text); padding: 9px 12px; border-radius: 11px; border: 1px solid var(--ui-border); background: var(--ui-surface-2); cursor: pointer; }
.rus-top button:hover { border-color: var(--ui-accent); }
.rus-top-i { width: 26px; height: 26px; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-size: .78rem; font-weight: 700; background: var(--ui-accent-soft); color: var(--ui-accent-text); flex-shrink: 0; }
.rus-top li:nth-child(-n+3) .rus-top-i { background: var(--ui-accent); color: #fff; }
.rus-top-t { flex: 1; min-width: 0; } .rus-top-t b { display: block; } .rus-top-t small { display: block; font-size: .74rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rus-top-v { text-align: right; } .rus-top-v b { display: block; font-variant-numeric: tabular-nums; } .rus-top-v small { font-size: .72rem; }
.rus-tab tbody tr { cursor: pointer; }
.rus-tab tbody tr:hover td { background: var(--ui-surface-2); }
.rus-tab tr.nds td { background: rgba(232, 163, 61, .05); }
.rus-tab td small { display: block; font-size: .72rem; color: var(--ui-text-3); max-width: 260px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.rus-tab tfoot td { background: var(--ui-surface-2); border-top: 2px solid var(--ui-border); }
.rus-tab tfoot tr.sub td { font-size: .8rem; color: var(--ui-text-2); background: transparent; border-top: 0; }
.rus-ord { border: 0; background: none; font: inherit; color: inherit; cursor: pointer; padding: 0; text-transform: inherit; letter-spacing: inherit; }
.rus-ord.on { color: var(--ui-accent-text); }
.rus-sel-barra { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; margin-bottom: 12px; }
.rus-sel-barra .busca { flex: 1 1 260px; }
.rus-sel-barra select { width: auto; min-width: 170px; }
.rus-sel-tab tr.on td { background: var(--ui-accent-soft); }
.rus-check { width: 20px; height: 20px; border-radius: 6px; border: 2px solid var(--ui-border-strong, var(--ui-border)); display: inline-flex; align-items: center; justify-content: center; }
.rus-check.on { background: var(--ui-accent); border-color: var(--ui-accent); color: #fff; }
.rus-check .ui-icon { width: 13px; height: 13px; stroke-width: 3; }
.rus-prog { display: inline-block; width: 80px; height: 7px; border-radius: 999px; background: var(--ui-surface-3); overflow: hidden; vertical-align: middle; margin-right: 6px; }
.rus-prog i { display: block; height: 100%; border-radius: 999px; }
.rus-prog.grande { width: 100%; height: 12px; margin: 0; }
.rus-prog-g { margin: 4px 0 14px; }
.rus-sel-sup { margin-bottom: 14px; }
.rus-sel-res .kpis { margin-bottom: 12px; }
@media (max-width: 1100px) { .rus-filtros { grid-template-columns: repeat(3, minmax(0, 1fr)); } .rus-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rus-duas, .rus-top { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .rus-filtros { grid-template-columns: repeat(2, minmax(0, 1fr)); } .rus-nds-bloco { grid-template-columns: 1fr; } .rus-meses { height: 150px; gap: 2px; } .rus-mes-v { display: none; } }
/* ===== Espaçamento entre blocos (painéis laterais e relatório de US) ===== */
#pdCorpo, #ldCorpo { display: flex; flex-direction: column; gap: 14px; }
#rusConteudo, #rusCorpo { display: flex; flex-direction: column; gap: 18px; min-width: 0; }
.rus-duas { align-items: start; }
.rus-filtros { margin: 0; }
.ao-voltar.btn { display: inline-flex; align-items: center; gap: 6px; height: 36px; padding: 0 14px 0 10px; margin: 0 0 12px; font-weight: 600; border-color: color-mix(in srgb, var(--ui-accent) 45%, var(--ui-border)); color: var(--ui-accent-text); }
.ao-voltar.btn:hover { background: var(--ui-accent-soft); border-color: var(--ui-accent); }
.ao-voltar.btn .ui-icon { width: 17px; height: 17px; }.btn.btn-secondary.ao-voltar { color: var(--ui-accent-text) !important; border-color: color-mix(in srgb, var(--ui-accent) 45%, var(--ui-border)) !important; background: var(--ui-surface-1, var(--ui-bg)); }
.btn.btn-secondary.ao-voltar:hover { background: var(--ui-accent-soft) !important; border-color: var(--ui-accent) !important; }

/* ===== Tela do projeto: abas, sem precisar rolar, e a decisão não tira do lugar ===== */
.ao-proj-topo { display: flex; align-items: center; gap: 14px; flex-wrap: wrap; }
.ao-proj-topo .ao-voltar.btn { margin: 0; flex-shrink: 0; }
.ao-proj-tit { flex: 1 1 260px; min-width: 0; }
.ao-proj-tit h1 { margin: 0; font-size: 1.3rem; font-weight: 700; letter-spacing: -.02em; color: var(--ui-text); }
.ao-proj-tit p { margin: 1px 0 0; font-size: .8rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ao-secoes { position: sticky; top: calc(var(--topbar-h) + 6px); z-index: 20; display: flex; align-items: center; gap: 4px; flex-wrap: wrap; padding: 5px; border-radius: 13px; background: var(--ui-surface); border: 1px solid var(--ui-border); box-shadow: 0 6px 16px -12px rgba(0, 0, 0, .4); }
.ao-secoes button { display: inline-flex; align-items: center; gap: 7px; height: 36px; padding: 0 12px; border: 0; border-radius: 9px; background: none; color: var(--ui-text-2); font: inherit; font-size: .84rem; font-weight: 600; cursor: pointer; white-space: nowrap; }
.ao-secoes button:hover { background: var(--ui-surface-2); }
.ao-secoes button[aria-selected="true"] { background: var(--ui-accent-soft); color: var(--ui-accent-text); }
.ao-secoes .ui-icon { width: 15px; height: 15px; }
.ao-secoes em { font-style: normal; font-size: .7rem; font-weight: 700; padding: 1px 7px; border-radius: 999px; background: var(--ui-surface-3); color: var(--ui-text-2); }
.ao-secoes em.quente { background: var(--ui-accent); color: #fff; }
.ao-sec-info { margin-left: auto; padding: 0 10px; font-size: .78rem; color: var(--ui-text-3); white-space: nowrap; }
.ao-sec-info b { color: var(--ui-text); font-variant-numeric: tabular-nums; }
/* A tabela de correspondências cabe na tela e rola sozinha, com o cabeçalho sempre visível */
.ao-corr .ao-tab { max-height: calc(100vh - 330px); min-height: 280px; overflow: auto; }
.ao-corr .ao-tab thead th { position: sticky; top: 0; z-index: 3; background: var(--ui-surface-2); }
.ao-corr .ao-tab thead tr:nth-child(2) th { top: 33px; }
.ao-v-linha { display: flex; align-items: stretch; gap: 6px; }
.ao-v-linha + .ao-v-linha { margin-top: 6px; }
.ao-v-linha .ao-v { flex: 1; min-width: 0; }
.ao-v-ok { flex-shrink: 0; display: inline-flex; align-items: center; gap: 5px; padding: 0 10px; border-radius: 9px; border: 1px solid color-mix(in srgb, #34C47C 50%, var(--ui-border)); background: color-mix(in srgb, #34C47C 10%, transparent); color: #1E9E5E; font: inherit; font-size: .76rem; font-weight: 700; cursor: pointer; }
.ao-v-ok:hover { background: #34C47C; color: #fff; }
.ao-v-ok[disabled] { opacity: .5; cursor: wait; }
.ao-v-ok .ui-icon { width: 14px; height: 14px; }
.ao-v.recente { animation: aoRecente 1.5s ease-out; }
@keyframes aoRecente { 0% { box-shadow: 0 0 0 3px #34C47C; } 100% { box-shadow: 0 0 0 3px transparent; } }
@media (max-width: 1100px) { .ao-sec-info { display: none; } }.ao-corr .ao-tab { max-height: calc(100vh - 395px); min-height: 240px; }
.ao-corr .ao-tab thead th { position: sticky !important; top: 0; }
.ao-corr .ao-tab thead tr:nth-child(2) th { top: 34px; }

/* Folga temporária enquanto a tela se redesenha depois de salvar (ver ui-kit.js) */
.page.segurando::after { content: ''; display: block; flex-shrink: 0; height: var(--seg-h, 0); }

/* ===== Telas de trabalho cabem na janela: título e filtros parados, só a lista rola por dentro =====
   Em janela muito baixa ou no celular, a página volta a rolar normalmente. */
@media (min-width: 961px) and (min-height: 620px) {
    #page-controle, #page-usuarios, #page-cadastros, #page-multas, #page-equipes, #page-rdo, #page-rh, #page-programacao, #page-calendario, #page-bmd { overflow: hidden !important; }
    #page-controle > .tela, #page-usuarios > .tela, #page-cadastros > .tela, #page-multas > .tela, #page-equipes > .tela, #page-rdo > .tela, #page-rh > .tela, #page-programacao > .tela, #page-calendario > .tela, #page-bmd > .tela { height: 100%; min-height: 0; padding-top: 14px; padding-bottom: 12px; gap: 12px; }
    #page-usuarios > .tela, #page-cadastros > .tela { max-width: 1480px; }
    /* cabeçalho e indicadores mais baixos, para sobrar espaço para o trabalho */
    #page-controle .tela-head h1, #page-usuarios .tela-head h1, #page-cadastros .tela-head h1, #page-multas .tela-head h1, #page-equipes .tela-head h1, #page-rdo .tela-head h1, #page-rh .tela-head h1, #page-programacao .tela-head h1, #page-calendario .tela-head h1, #aoConteudo .tela-head h1 { font-size: 1.2rem; }
    #page-controle .tela-head p, #page-usuarios .tela-head p, #page-cadastros .tela-head p, #page-multas .tela-head p, #page-equipes .tela-head p, #page-rdo .tela-head p, #page-rh .tela-head p, #page-programacao .tela-head p, #page-calendario .tela-head p, #aoConteudo .tela-head p { display: none; }
    #mxKpis .kpi-card, #tmKpis .kpi-card, #rdKpis .kpi-card, #pgKpis .kpi-card, #cgKpis .kpi-card, #usrResumo .kpi-card, #aoKpis .kpi-card, #mvKpis .kpi-card, #rhxKpis .kpi-card { padding: 9px 14px; min-height: 0; gap: 2px; }
    #mxKpis .kpi-valor, #tmKpis .kpi-valor, #rdKpis .kpi-valor, #pgKpis .kpi-valor, #cgKpis .kpi-valor, #usrResumo .kpi-valor, #aoKpis .kpi-valor, #mvKpis .kpi-valor, #rhxKpis .kpi-valor { font-size: 1.15rem; line-height: 1.2; }
    #mxKpis .kpi-ico, #tmKpis .kpi-ico, #rdKpis .kpi-ico, #pgKpis .kpi-ico, #cgKpis .kpi-ico, #usrResumo .kpi-ico, #aoKpis .kpi-ico, #mvKpis .kpi-ico, #rhxKpis .kpi-ico { display: none; }
    #mxKpis .kpi-rodape, #tmKpis .kpi-rodape, #rdKpis .kpi-rodape, #pgKpis .kpi-rodape, #cgKpis .kpi-rodape, #usrResumo .kpi-rodape, #aoKpis .kpi-rodape, #mvKpis .kpi-rodape, #rhxKpis .kpi-rodape { font-size: .72rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
    /* cabeçalho das tabelas sempre visível */
    #usrLista thead th, #cadLista thead th, #mxLista thead th, #aoLista thead th, #mvLista thead th, #rhxCorpo .tabela thead th { position: sticky !important; top: 0; z-index: 3; background: var(--ui-surface-2); }

    /* Controle */
    #page-controle .tela > .cad-painel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
    #ctTabela { flex: 1; min-height: 0; display: flex; }
    #ctTabela .ct-tabela { flex: 1; min-height: 0; max-height: none !important; }
    #ctTabela tfoot td { position: sticky; bottom: 0; z-index: 2; background: var(--ui-surface-2); box-shadow: 0 -1px 0 var(--ui-border); }
    /* Usuários */
    #page-usuarios .tela > .cad-painel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
    #usrConteudo { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: auto; }
    #usrLista { flex: 1; min-height: 0; display: flex; }
    #usrLista > .tabela { flex: 1; min-height: 0; }
    /* Cadastros */
    #page-cadastros .cad { flex: 1; min-height: 0; }
    #page-cadastros .cad-tabs { max-height: 100%; overflow-y: auto; }
    #cadPainel { display: flex; flex-direction: column; min-height: 0; height: 100%; }
    #cadLista { flex: 1; min-height: 0; display: flex; }
    #cadLista > .tabela { flex: 1; min-height: 0; }
    #cadLista > .estado-vazio { flex: 1; }
    /* Multas: gráficos ficam atrás de um botão */
    #mxGraf { display: none; }
    #mxRaiz.ver-graf #mxGraf { display: grid; flex-shrink: 0; }
    #mxRaiz.ver-graf { overflow-y: auto; }
    #mxRaiz > section.painel:last-child { flex: 1; min-height: 260px; display: flex; flex-direction: column; }
    #mxLista { flex: 1; min-height: 0; display: flex; }
    #mxLista > .tabela { flex: 1; min-height: 0; }
    /* Equipes */
    #page-equipes .tm-layout { flex: 1; min-height: 0; }
    #tmQuadro { height: 100%; overflow-y: auto; padding-right: 4px; }
    #tmPool { position: static; height: 100%; max-height: none; }
    #tmPool .tm-pool-corpo { flex: 1; min-height: 0; }
    /* RDO */
    #page-rdo .rd-layout { flex: 1; min-height: 0; }
    #page-rdo .rd-cal-painel { height: 100%; overflow-y: auto; }
    #page-rdo .rd-lista-painel { position: static; height: 100%; max-height: none; overflow-y: auto; }
    /* RH */
    #rhxCorpo { flex: 1; min-height: 0; overflow: auto; }
    #rhxCorpo > .rhx-col { height: 100%; min-height: 0; }
    #rhxCorpo > .rhx-col > section.painel:last-child { flex: 1; min-height: 0; overflow: auto; }
    #rhxCorpo .rhx-pessoas { position: static; height: 100%; max-height: none; }
    #rhxCorpo .rhx-grade-wrap { max-height: none; flex: 1; min-height: 0; }
    /* Programação */
    #page-programacao .tela > .cad-painel { flex: 1; min-height: 0; display: flex; flex-direction: column; }
    #pgCorpo { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: auto; }
    #pgCorpo > .ag-grade { flex: 1; min-height: 0; max-height: none; }
    /* Calendário */
    #page-calendario .cg { flex: 1; min-height: 0; grid-template-rows: minmax(0, 1fr); }
    #page-calendario .cg-mes { display: flex; flex-direction: column; height: 100%; min-height: 0; }
    #cgGrade { flex: 1; min-height: 0; overflow-y: auto; grid-auto-rows: minmax(92px, 1fr); grid-template-rows: auto; }
    #cgGrade .cg-sem { position: sticky; top: 0; z-index: 2; background: var(--ui-surface); }
    #page-calendario .cg-lado { position: static; height: 100%; overflow-y: auto; }
    /* BMD e análise */
    #aoRaiz { min-height: 0; }
    #aoConteudo { flex: 1; min-height: 0; overflow-y: auto; gap: 12px; }
    #rusConteudo { flex: 1; min-height: 0; overflow-y: auto; }
    .ao-secoes { top: 0; }
    .ao-lista-painel { flex: 1; min-height: 260px; display: flex; flex-direction: column; }
    #aoLista, #mvLista { flex: 1; min-height: 0; display: flex; }
    #aoLista > .tabela, #mvLista > .tabela { flex: 1; min-height: 0; }
    #aoLista > .sk, #mvLista > .sk, #aoLista > .estado-vazio, #mvLista > .estado-vazio { flex: 1; }
    .ao-corr { flex: 1; min-height: 300px; display: flex; flex-direction: column; }
    .ao-corr .ao-tab { flex: 1; max-height: none; min-height: 0; }
    .ao-corr > .ao-nota { flex-shrink: 0; margin-bottom: 0; }
}
@media (min-width: 961px) and (max-width: 1180px) and (min-height: 620px) {
    #tmPool, #page-rdo .rd-lista-painel { height: auto; }
}
/* ===== Fluidez ===== */
/* O desfoque em cada painel, em cima do fundo animado, obrigava o computador a redesenhar tudo o tempo todo */
.painel, .kpi-card, .cad-painel, .cad-tabs, .kanban-column { backdrop-filter: none; -webkit-backdrop-filter: none; background: color-mix(in srgb, var(--ui-surface) 97%, transparent) !important; }
.sb { backdrop-filter: none; -webkit-backdrop-filter: none; background: var(--ui-sidebar) !important; }
.topbar { backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); }
/* Computador mais simples: sem nenhum efeito pesado (o fundo fica parado, ver fundo.js) */
html.leve *, html.leve *::before, html.leve *::after { backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
html.leve .topbar { background: var(--ui-bg); }
/* Só desenha os cartões do Kanban que estão aparecendo na tela */
.kanban-column article.card { content-visibility: auto; contain-intrinsic-size: auto 132px; }

/* ===== Logo maior e com respiro no computador; o botão de recolher só aparece ao passar o mouse no menu ===== */
@media (min-width: 961px) {
    .sb-logo { height: 84px; padding: 0 20px; border-bottom: 0; }
    .sb-logo-marca img { height: 52px; }
    .sb-nav { padding-top: 2px; }
    .sb-toggle { top: 29px; right: 10px; border: 0; opacity: 0; transition: opacity .15s, background .15s, color .15s, transform var(--sb-speed); }
    .sb:hover .sb-toggle, .sb-toggle:focus-visible { opacity: 1; }
    body.sb-mini .sb-logo { height: var(--topbar-h); padding: 0; border-bottom: 1px solid var(--ui-border); }
    body.sb-mini .sb-nav { padding-top: 10px; }
    body.sb-mini .sb-toggle { opacity: 1; }
}

@media (min-width: 961px) and (max-height: 760px) { .ao-corr > .ao-nota { display: none; } }
/* Calendário: a semana cresce com o conteúdo (um dia nunca invade o outro) e, se não couber, rola por dentro */
@media (min-width: 961px) and (min-height: 620px) {
    #cgGrade { grid-auto-rows: minmax(max-content, 1fr); }
    #cgGrade .cg-dia { min-height: 92px; }
}

/* RH: cada aba ocupa a janela e rola só por dentro */
@media (min-width: 961px) and (min-height: 620px) {
    #rhxCorpo { flex-direction: column; overflow: auto; }
    /* Ponto: pessoas à esquerda e folha à direita, cada uma com a sua rolagem */
    #rhxCorpo > .rhx-ponto { flex: 1; min-height: 0; height: 100%; align-items: stretch; grid-template-rows: minmax(0, 1fr); }
    #rhxCorpo .rhx-pessoas { display: flex; flex-direction: column; height: 100%; min-height: 0; max-height: none; overflow: hidden; position: static; }
    #rhxCorpo .rhx-pessoas .busca, #rhxCorpo .rhx-pessoas select { flex: none; }
    #rhxCorpo .rhx-lista { flex: 1; min-height: 0; }
    #rhxCorpo .rhx-folha { display: flex; flex-direction: column; height: 100%; min-height: 0; overflow: hidden; }
    #rhxCorpo .rhx-folha-head, #rhxCorpo .rhx-ferr { flex: none; }
    #rhxCorpo .rhx-grade-wrap { flex: 1; min-height: 0; max-height: none; }
    #rhxCorpo .rhx-salvar { position: static; flex: none; }
    /* Funcionários, Banco de horas, Visão geral e Ausências: a tabela rola, o resto fica parado */
    #rhxCorpo > section.painel:not(.rhx-rel) { flex: 1; min-height: 0; display: flex; flex-direction: column; overflow: hidden; }
    #rhxCorpo > .rhx-col > section.painel:last-child { display: flex; flex-direction: column; overflow: hidden; }
    #rhxTabF, #rhxTabB, #rhxTabG, #rhxTabA { flex: 1; min-height: 0; display: flex; flex-direction: column; }
    #rhxTabF > .tabela, #rhxTabB > .tabela, #rhxTabG > .tabela, #rhxTabA > .tabela { flex: 1; min-height: 0; }
    /* Cadastros do RH: três colunas lado a lado */
    #rhxCorpo > .rhx-cads { flex: 1; min-height: 0; height: 100%; grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-rows: minmax(0, 1fr); align-items: stretch; }
    #rhxCorpo > .rhx-cads > section.painel { grid-column: auto; grid-row: auto; min-height: 0; height: 100%; overflow: hidden; display: flex; flex-direction: column; }
    #rhxFn, #rhxGr, #rhxFer { flex: 1; min-height: 0; overflow-y: auto; }
}

/* ===== Análise de obras: todas as obras e o que falta lançar ===== */
.ao-ob-tab { min-width: 900px; }
.ao-ob-tab th, .ao-ob-tab td { padding-left: 6px; padding-right: 6px; }
.ao-ob-tab th.num { white-space: normal; }
.ao-ob-tab td:first-child { padding-left: 14px; min-width: 150px; }
.ao-ob-tab td:first-child small, .ao-ob-tab .ao-sit b, .ao-ob-tab .ao-sit small { white-space: normal; }
.ao-ob-tab td small { display: block; font-size: .72rem; color: var(--ui-text-3); }
.ao-ob-tab th.ao-c, .ao-ob-tab td.ao-c { text-align: center; }
.ao-lista-painel .ao-ob-tab tbody tr.sem-doc { cursor: default; }
.ao-dc { display: inline-flex; align-items: center; justify-content: center; gap: 3px; min-height: 24px; font-size: .78rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ao-dc .ui-icon { width: 15px; height: 15px; }
.ao-dc.ok { color: #34C47C; }
.ao-dc.nao { color: var(--ui-text-3); font-weight: 400; }
.ao-dc.falta { padding: 0 9px; border-radius: 7px; border: 1px solid color-mix(in srgb, #E8A33D 45%, transparent); background: transparent; color: #E8A33D; font-family: inherit; }
button.ao-dc.falta { cursor: pointer; }
button.ao-dc.falta:hover { background: #E8A33D; color: #14161A; }
.ao-sit { display: grid; grid-template-columns: 8px 1fr; column-gap: 8px; align-items: center; min-width: 132px; }
.ao-sit::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--c); }
.ao-sit b { font-size: .82rem; font-weight: 700; color: var(--ui-text); line-height: 1.25; }
.ao-sit small { grid-column: 2; font-size: .72rem; color: var(--ui-text-3); }

button.ao-dc.nao { min-width: 28px; border: 0; background: transparent; font-family: inherit; cursor: pointer; border-radius: 7px; }
button.ao-dc.nao:hover { background: var(--ui-surface-2); color: var(--ui-text); }

/* ===== Correspondência item a item: uma linha, uma decisão ===== */
.ao-corr .painel-head { align-items: center; }
.ao-prog-txt { display: inline-flex; align-items: center; gap: 8px; font-size: .78rem; color: var(--ui-text-2); }
.ao-prog-txt b { color: var(--ui-text); }
.ao-prog { display: inline-block; width: 110px; height: 6px; border-radius: 3px; background: var(--ui-surface-3); overflow: hidden; }
.ao-prog i { display: block; height: 100%; background: #34C47C; border-radius: 3px; }
.ao-corr .seg button small { font-size: .7rem; font-weight: 700; color: var(--ui-text-3); margin-left: 2px; }
.ao-corr .ao-tab table { min-width: 900px; width: 100%; table-layout: fixed; }
.ao-corr .ao-tab thead th { vertical-align: middle; padding-top: 8px; padding-bottom: 8px; }
.ao-corr .ao-tab thead th:nth-child(2) { width: 124px; }
.ao-corr .ao-tab thead th:nth-child(3) { width: 138px; }
.ao-corr .ao-tab thead th:nth-child(4) { width: 82px; }
.ao-corr .ao-tab thead th:nth-child(5) { width: 92px; }
.ao-corr .ao-tab thead th:nth-child(6) { width: 372px; }
.ao-corr .ao-tab thead th small { display: block; margin-top: 1px; font-size: .64rem; font-weight: 500; letter-spacing: 0; text-transform: none; color: var(--ui-text-3); }
.ao-th-dec { display: flex; justify-content: space-between; gap: 10px; }
.ao-th-dec span:last-child { width: 94px; text-align: center; }
.ao-corr .ao-tab td { vertical-align: middle !important; padding-top: 10px; padding-bottom: 10px; white-space: normal; }
.ao-corr .ao-tab th, .ao-corr .ao-tab td { padding-left: 10px; padding-right: 10px; }
.ao-corr .ao-tab td:first-child { box-shadow: inset 3px 0 0 var(--barra, transparent); padding-left: 14px; }
.ao-corr .ao-tab tr.ao-pend { --barra: #E8A33D; }
.ao-corr .ao-tab tbody tr:hover td { background: color-mix(in srgb, var(--ui-surface-3) 30%, transparent); }
.ao-corr .ao-tab td.num { font-size: .84rem; font-variant-numeric: tabular-nums; }
.ao-corr .ao-tar { min-width: 0; max-width: none; }
.ao-corr .ao-tar b { display: flex; align-items: baseline; gap: 7px; font-size: .86rem; font-variant-numeric: tabular-nums; }
.ao-corr .ao-tar b i { font-style: normal; font-size: .7rem; font-weight: 600; color: var(--ui-text-3); }
.ao-corr .ao-tar span { margin-top: 2px; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden; line-height: 1.3; }
.ao-pms { font-variant-numeric: tabular-nums; }
.ao-pm { display: grid; grid-template-columns: 34px 1fr 14px 1fr; align-items: baseline; font-size: .84rem; line-height: 1.5; }
.ao-pm i { font-style: normal; font-size: .68rem; color: var(--ui-text-3); }
.ao-pm span { text-align: right; color: var(--ui-text-2); }
.ao-pm em { font-style: normal; font-size: .7rem; text-align: center; color: var(--ui-text-3); }
.ao-pm b { font-weight: 650; color: var(--ui-text); }
.ao-pm b.difere { color: #E8A33D; }
.ao-pm-nada { font-size: .78rem; color: var(--ui-text-3); }
.ao-corr .ao-itens { padding-top: 6px; padding-bottom: 6px; }
.ao-v-linha { align-items: center; gap: 8px; }
.ao-corr .ao-v { min-width: 0; gap: 1px; padding: 5px 8px; border: 1px solid transparent; border-radius: 8px; background: transparent; }
.ao-corr .ao-v:hover { border-color: var(--ui-border); background: var(--ui-surface-2); }
.ao-corr .ao-v-cod { display: flex; align-items: baseline; gap: 7px; font-size: .84rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ao-corr .ao-v-cod small { font-size: .7rem; font-weight: 500; color: var(--ui-text-3); }
.ao-corr .ao-v-desc { font-size: .74rem; color: var(--ui-text-2); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; }
.ao-corr .ao-v-orig { display: inline-flex; align-items: center; gap: 5px; font-size: .68rem; font-weight: 600; color: var(--ui-text-3); }
.ao-corr .ao-v-orig::before { content: ''; width: 7px; height: 7px; border-radius: 50%; background: var(--c); flex-shrink: 0; }
.ao-dec, .ao-v-ok, .ao-v-ver { width: 94px; min-height: 32px; flex-shrink: 0; display: inline-flex; align-items: center; justify-content: center; gap: 4px; border-radius: 8px; font: inherit; font-size: .78rem; font-weight: 700; padding: 0 6px; }
.ao-dec { color: var(--e); }
.ao-dec .ui-icon { width: 14px; height: 14px; }
.ao-corr .ao-v-ok { color: #34C47C; }
.ao-corr .ao-v-ok:hover { color: #fff; }
.ao-v-ver { border: 1px solid color-mix(in srgb, var(--ui-accent) 55%, var(--ui-border)); background: var(--ui-accent-soft); color: var(--ui-accent-text); cursor: pointer; }
.ao-v-ver:hover { background: var(--ui-accent); color: #fff; }
.ao-corr > .ao-nota { flex-wrap: nowrap; }
.ao-corr .ao-tab td.num .ao-pm-nada { white-space: nowrap; font-size: .74rem; }

/* ===== Equipes: NR-10, tipo de veículo e ficha do colaborador ===== */
@media (min-width: 901px) { .tm .kpis { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.tm-v-tipo { display: inline-flex; align-items: center; color: var(--c, var(--ui-text-3)); flex-shrink: 0; }
.tm-v-tipo .ui-icon { width: 21px; height: 21px; stroke-width: 1.7; }
.tm-m-venc { width: 22px; height: 22px; display: flex; align-items: center; justify-content: center; color: #E8A33D; flex-shrink: 0; }
.tm-m-venc.vencido { color: #F0574D; }
.tm-m-venc .ui-icon { width: 14px; height: 14px; }
.tm-ficha { display: flex; flex-direction: column; gap: 12px; }
.tm-cnh { display: grid; grid-template-columns: 1.3fr .7fr 1.1fr; gap: 10px; align-items: start; }
.tm-curso { display: grid; grid-template-columns: 1fr 150px 32px; gap: 8px; align-items: start; margin-bottom: 8px; }
.tm-curso input { width: 100%; min-width: 0; }
.tm-curso-data { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
.tm-curso .ico-btn { margin-top: 4px; }
.tm-prazo { font-size: .72rem; font-weight: 600; color: #E8A33D; }
.tm-prazo:empty { display: none; }
.tm-prazo.vencido { color: #F0574D; }
.tm-add-curso { align-self: flex-start; }
.tm-vcs { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 2px; }
.tm-vc { width: 100%; display: grid; grid-template-columns: 1fr minmax(90px, auto) 110px; gap: 10px; align-items: center; padding: 8px 10px; border: 0; border-radius: 8px; background: transparent; color: var(--ui-text); font: inherit; text-align: left; cursor: pointer; }
.tm-vc:hover { background: var(--ui-surface-2); }
.tm-vc-txt, .tm-vc-data { display: flex; flex-direction: column; min-width: 0; }
.tm-vc-txt b, .tm-vc-data b { font-size: .84rem; }
.tm-vc-txt small, .tm-vc-data small { font-size: .72rem; color: var(--ui-text-3); }
.tm-vc-item { font-size: .8rem; color: var(--ui-text-2); }
.tm-vc-data { text-align: right; }
.tm-vc-data small { color: #E8A33D; }
.tm-vc-data.vencido small { color: #F0574D; }

.tm-anexos { list-style: none; margin: 0 0 8px; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.tm-anexos li { display: flex; align-items: center; gap: 6px; }
.tm-anexos a { flex: 1; min-width: 0; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid var(--ui-border); border-radius: 9px; background: var(--ui-surface-2); color: var(--ui-text); text-decoration: none; }
.tm-anexos a:hover { border-color: var(--ui-accent); }
.tm-anexos a > .ui-icon { width: 17px; height: 17px; color: var(--ui-accent-text); flex-shrink: 0; }
.tm-anexos a span { min-width: 0; display: flex; flex-direction: column; }
.tm-anexos b { font-size: .8rem; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.tm-anexos small { font-size: .7rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

.tm-cap.acima { background: var(--ui-accent-soft); color: var(--ui-accent-text); }


/* ===== Aviso de alteração em outro computador ===== */
.aviso-mud { position: fixed; top: 70px; left: 0; right: 0; margin-inline: auto; width: fit-content; max-width: calc(100vw - 24px); z-index: 100000; display: flex; align-items: center; gap: 12px; padding: 8px 8px 8px 14px; border-radius: 12px; border: 1px solid var(--ui-border-strong); border-left: 3px solid var(--ui-accent); background: var(--ui-surface-3); color: var(--ui-text); font-size: .84rem; font-weight: 500; box-shadow: var(--ui-shadow-lg); }
.aviso-mud button { flex-shrink: 0; height: 30px; padding: 0 12px; border: 0; border-radius: 8px; background: var(--ui-accent); color: #fff; font: inherit; font-size: .8rem; font-weight: 700; cursor: pointer; }
.aviso-mud button:hover { filter: brightness(1.1); }
/* ===== Sino: lista inteira, com rolagem, e avisos lidos mais apagados ===== */
#tbNotifPop { max-height: min(70vh, 560px); overflow-y: auto; }
.tb-pop-tit-acao { display: flex; align-items: center; justify-content: space-between; gap: 10px; position: sticky; top: 0; z-index: 1; background: var(--ui-surface); }
.tb-pop-tit-acao button { border: 0; background: transparent; color: var(--ui-accent-text); font: inherit; font-size: .72rem; font-weight: 600; letter-spacing: 0; text-transform: none; cursor: pointer; padding: 2px 4px; border-radius: 6px; }
.tb-pop-tit-acao button:hover { text-decoration: underline; }
.tb-pop-item.lida { opacity: .5; }

/* Programação da semana no Início: cada atividade abre os detalhes */
button.dia-item { display: block; width: 100%; border: 0; border-left: 2px solid var(--ui-accent); font-family: inherit; text-align: left; cursor: pointer; transition: border-color .15s, background .15s; }
button.dia-item:hover, button.dia-item:focus-visible { background: var(--ui-surface-3); outline: 1px solid var(--ui-accent); outline-offset: -1px; }
button.dia-mais { display: block; width: 100%; border: 0; background: transparent; font-family: inherit; text-align: left; cursor: pointer; }
button.dia-mais:hover { color: var(--ui-accent-text); }

/* ===== Sugestões dos campos: abrem logo abaixo do campo ===== */
.ui-sug { position: fixed; z-index: 100000; overflow-y: auto; padding: 4px; border: 1px solid var(--ui-border-strong); border-radius: 10px; background: var(--ui-surface-2); box-shadow: var(--ui-shadow-lg); }
.ui-sug button { display: flex; align-items: baseline; justify-content: space-between; gap: 12px; width: 100%; padding: 7px 9px; border: 0; border-radius: 7px; background: transparent; color: var(--ui-text); font: inherit; font-size: .82rem; text-align: left; cursor: pointer; }
.ui-sug b { font-weight: 600; flex-shrink: 0; max-width: 100%; overflow: hidden; text-overflow: ellipsis; }
.ui-sug small { min-width: 0; font-size: .72rem; color: var(--ui-text-3); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ui-sug button:hover, .ui-sug button.ativo { background: var(--ui-accent-soft); color: var(--ui-accent-text); }

/* ===== Programação no mês: cabe na tela, uma barra por atividade ===== */
.ag-m { --eq: 190px; overflow-x: hidden; }
.ag-m-cab, .ag-m-lin { display: grid; grid-template-columns: var(--eq) minmax(0, 1fr); min-width: 0; }
.ag-m-cab { position: sticky; top: 0; z-index: 3; grid-template-columns: var(--eq) repeat(var(--n), minmax(0, 1fr)); background: var(--ui-surface-2); border-bottom: 1px solid var(--ui-border); }
.ag-m-cab .ag-m-eq { display: flex; align-items: center; font-size: .72rem; font-weight: 600; color: var(--ui-text-3); }
.ag-m-eq { padding: 8px 12px; min-width: 0; border-right: 1px solid var(--ui-border); }
.ag-m-lin { border-bottom: 1px solid var(--ui-border); }
.ag-m-lin .ag-m-eq { display: flex; flex-direction: column; justify-content: center; gap: 1px; }
.ag-m-lin .ag-m-eq b { font-size: .8rem; color: var(--ui-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-m-lin .ag-m-eq small { font-size: .68rem; color: var(--ui-text-3); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-m-d { display: flex; flex-direction: column; align-items: center; gap: 1px; padding: 6px 0; border-right: 1px solid var(--ui-border); min-width: 0; }
.ag-m-d:last-child { border-right: 0; }
.ag-m-d span { font-size: .62rem; color: var(--ui-text-3); }
.ag-m-d b { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; border-radius: 50%; font-size: .78rem; color: var(--ui-text); font-variant-numeric: tabular-nums; }
.ag-m-d.hoje b { background: var(--ui-accent); color: #fff; }
.ag-m-fx { position: relative; min-width: 0; min-height: 46px; }
.ag-m-cels { position: absolute; inset: 0; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); }
.ag-m-cel { display: flex; align-items: center; justify-content: center; padding: 4px; min-width: 0; border-right: 1px solid color-mix(in srgb, var(--ui-border) 60%, transparent); }
.ag-m-cel:last-child { border-right: 0; }
.ag-m-cel.hoje { background: color-mix(in srgb, var(--ui-accent) 8%, transparent); }
.ag-m-cel .ag-add { height: 100%; max-height: 34px; }
.ag-m-cel:hover > .ag-add { opacity: 1; }
.ag-m-bars { position: relative; display: grid; grid-template-columns: repeat(var(--n), minmax(0, 1fr)); grid-auto-rows: 30px; gap: 4px 0; padding: 7px 0; pointer-events: none; }
.ag-bar { pointer-events: auto; min-width: 0; margin: 0 2px; display: flex; align-items: center; gap: 7px; padding: 0 7px 0 6px; border: 0; border-left: 3px solid var(--c); border-radius: 6px; background: color-mix(in srgb, var(--c) 20%, var(--ui-surface)); color: var(--ui-text); font: inherit; text-align: left; cursor: pointer; overflow: hidden; white-space: nowrap; }
.ag-bar:hover, .ag-bar:focus-visible { background: color-mix(in srgb, var(--c) 34%, var(--ui-surface)); outline: none; }
.ag-bar b { flex-shrink: 0; font-size: .72rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.ag-bar span { min-width: 0; font-size: .72rem; color: var(--ui-text-2); overflow: hidden; text-overflow: ellipsis; }
.ag-m-cel.fds { background: color-mix(in srgb, var(--ui-surface-3) 35%, transparent); }
.ag-m-d.fds { background: color-mix(in srgb, var(--ui-surface-3) 35%, transparent); }
/* Semana: colunas largas, barra com a obra em cima e a atividade embaixo */
.ag-m.sem { --eq: 210px; }
.ag-m.sem .ag-m-d { flex-direction: row; justify-content: center; gap: 6px; padding: 8px 0; }
.ag-m.sem .ag-m-d span { font-size: .74rem; font-weight: 600; }
.ag-m.sem .ag-m-fx { min-height: 62px; }
.ag-m.sem .ag-m-bars { grid-auto-rows: 44px; gap: 5px 0; padding: 8px 0; }
.ag-m.sem .ag-bar { flex-direction: column; align-items: flex-start; justify-content: center; gap: 1px; margin: 0 4px; padding: 0 9px; }
.ag-m.sem .ag-bar b { font-size: .78rem; }
.ag-m.sem .ag-bar span { width: 100%; font-size: .72rem; }
.ag-m.sem .ag-m-lin .ag-m-eq b { font-size: .84rem; white-space: normal; }
@media (max-width: 1500px) { .ag-m:not(.sem) { --eq: 160px; } .ag-m:not(.sem) .ag-bar { padding: 0 3px 0 4px; gap: 5px; } .ag-m:not(.sem) .ag-bar b { font-size: .66rem; letter-spacing: -.01em; } }
@media (max-width: 960px) { .ag-m { overflow-x: auto; } .ag-m-cab, .ag-m-lin { min-width: 1000px; } }

/* ===== RDO: formulário com espaço para respirar ===== */
#rfRegs { display: flex; flex-direction: column; gap: 14px; }
.rd-eq { padding: 14px 14px 12px; gap: 12px; }
.rd-eq-head { gap: 10px; }
.rd-obra { padding: 12px 14px; gap: 10px; }
.rd-obra-top { gap: 10px; }
.rd-obra-top input { padding: 9px 12px !important; }
.rd-ativs { padding-left: 28px; gap: 8px; }
.rd-ativs li > input { padding: 9px 12px !important; }
.rd-add-ativ, .rd-add-obra { padding: 2px 0; }
.rhx-salvar { padding-inline: 12px; }

/* Mês: atividade de um dia só. O número quebra em duas linhas e aparece inteiro */
.ag-bar.curta { padding: 0 2px 0 3px; border-left-width: 2px; }
.ag-bar.curta b { flex: 1 1 auto; min-width: 0; font-size: .68rem !important; line-height: 1.08; white-space: normal; word-break: break-all; letter-spacing: 0 !important; }
.ag-bar.curta span { display: none; }
/* Filtros da Programação numa linha só, para sobrar altura para a grade */
#page-programacao .ct-barra2 { flex-wrap: nowrap; }
#page-programacao .ct-barra2 .busca { min-width: 150px !important; }
#page-programacao .ct-barra2 select { flex: 0 1 190px; min-width: 130px; }
#page-programacao .ag-chave { flex-shrink: 0; white-space: nowrap; }
@media (max-width: 1200px) { #page-programacao .ct-barra2 { flex-wrap: wrap; } }

/* Programação: escolher quais equipes aparecem */
.ag-eqs-btn { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 7px; height: 38px; padding: 0 10px; border: 1px solid var(--ui-border); border-radius: 10px; background: var(--ui-surface-2); color: var(--ui-text); font: inherit; font-size: .82rem; font-weight: 550; cursor: pointer; white-space: nowrap; }
.ag-eqs-btn:hover { border-color: var(--ui-border-strong); }
.ag-eqs-btn.ativo { border-color: var(--ui-accent); color: var(--ui-accent-text); background: var(--ui-accent-soft); }
.ag-eqs-btn .ui-icon { width: 15px; height: 15px; flex-shrink: 0; }
.ag-eqs-btn .ui-icon:last-child { transform: rotate(90deg); color: var(--ui-text-3); }
.ag-eqs-pop { position: fixed; z-index: 100000; width: 290px; display: flex; flex-direction: column; border: 1px solid var(--ui-border-strong); border-radius: 12px; background: var(--ui-surface-2); box-shadow: var(--ui-shadow-lg); overflow: hidden; }
.ag-eqs-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 12px; border-bottom: 1px solid var(--ui-border); }
.ag-eqs-cab b { font-size: .82rem; }
.ag-eqs-cab span { display: flex; gap: 10px; }
.ag-eqs-cab button { border: 0; background: none; padding: 0; color: var(--ui-accent-text); font: inherit; font-size: .76rem; font-weight: 650; cursor: pointer; }
.ag-eqs-cab button:hover { text-decoration: underline; }
.ag-eqs-lista { overflow-y: auto; padding: 4px 6px 8px; }
.ag-eqs-grupo { padding: 8px 6px 3px; font-size: .68rem; font-weight: 650; color: var(--ui-text-3); }
.ag-eqs-pop label { display: flex; align-items: center; gap: 9px; padding: 6px; border-radius: 7px; font-size: .82rem; color: var(--ui-text); cursor: pointer; }
.ag-eqs-pop label:hover { background: var(--ui-surface-3); }
.ag-eqs-pop input { width: 16px !important; height: 16px; margin: 0; flex-shrink: 0; accent-color: var(--ui-accent); }
