:root {
    --green-900: #064d25;
    --green-800: #08692f;
    --green-700: #0b7d3b;
    --green-100: #e9f7ee;
    --blue-800: #064a96;
    --blue-100: #eaf3ff;
    --yellow-500: #f5c400;
    --red-600: #b42318;
    --orange-600: #d96c06;
    --gray-900: #17212f;
    --gray-700: #344054;
    --gray-500: #667085;
    --gray-200: #eaecf0;
    --gray-100: #f5f7fa;
    --white: #fff;
    --shadow: 0 16px 40px rgba(12, 39, 24, .08);
    --radius: 18px;
}

* { box-sizing: border-box; }
body {
    margin: 0;
    font-family: Arial, Helvetica, sans-serif;
    color: var(--gray-900);
    background: #f3f7f5;
}

a { color: var(--blue-800); text-decoration: none; }
a:hover { text-decoration: underline; }

.login-body {
    min-height: 100vh;
    display: grid;
    place-items: center;
    padding: 24px;
    background:
        radial-gradient(circle at 18% 82%, rgba(11, 125, 59, 0.18), transparent 38%),
        radial-gradient(circle at 82% 18%, rgba(255, 236, 128, 0.25), transparent 36%),
        linear-gradient(
            45deg,
            #d8efe0 0%,
            #e6f4d6 45%,
            #fff6c5 100%
        );
}

.login-shell {
    width: min(1080px, 100%);
    background: var(--white);
    border-radius: 26px;
    overflow: hidden;
    box-shadow: var(--shadow);
    border: 1px solid rgba(6, 77, 37, .10);
}

.login-banner {
    width: 100%;
    display: block;
    background: var(--white);
}

.login-content {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 32px;
    padding: 34px;
}

.login-info h1, .login-card h1 {
    margin: 0 0 10px;
    color: var(--green-900);
    font-size: 30px;
}

.login-info p, .login-card p { color: var(--gray-700); line-height: 1.55; }

.login-note {
    margin-top: 20px;
    padding: 16px;
    border-left: 5px solid var(--green-700);
    background: var(--green-100);
    border-radius: 12px;
    color: var(--gray-700);
}

.login-card, .small-card {
    background: #fff;
    padding: 28px;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    box-shadow: 0 8px 22px rgba(16, 24, 40, .06);
}

.small-card { max-width: 480px; }

.form-group { margin-bottom: 16px; }
label {
    display: block;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--gray-700);
}
input, select, textarea {
    width: 100%;
    border: 1px solid #ccd4df;
    border-radius: 12px;
    padding: 11px 12px;
    font-size: 15px;
    background: #fff;
}
input:focus, select:focus, textarea:focus {
    outline: 3px solid rgba(10, 125, 59, .15);
    border-color: var(--green-700);
}
textarea { min-height: 110px; resize: vertical; }

.btn-primary, .btn-secondary, button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    border: 0;
    border-radius: 12px;
    padding: 11px 16px;
    font-weight: 700;
    cursor: pointer;
    text-decoration: none;
}
.btn-primary, button[type="submit"] { background: var(--green-800); color: #fff; }
.btn-primary:hover, button[type="submit"]:hover { background: var(--green-900); text-decoration: none; }
.btn-secondary { background: var(--blue-100); color: var(--blue-800); }
.btn-secondary:hover { background: #d7eaff; text-decoration: none; }
.btn-danger { background: #fee4e2; color: var(--red-600); }

.alert {
    margin: 0 0 16px;
    padding: 13px 16px;
    border-radius: 12px;
    border: 1px solid transparent;
}
.alert-error { background: #fff1f0; color: #7a271a; border-color: #fecdca; }
.alert-success { background: #ecfdf3; color: #05603a; border-color: #abefc6; }
.alert-info { background: #eff8ff; color: #1849a9; border-color: #b2ddff; }
.alert-warning { background: #fffaeb; color: #93370d; border-color: #fedf89; }

.topbar {
    min-height: 76px;
    display: grid;
    grid-template-columns: minmax(260px, 1.3fr) auto minmax(190px, .6fr);
    align-items: center;
    gap: 18px;
    padding: 12px 22px;
    background: #fff;
    border-bottom: 1px solid var(--gray-200);
    position: sticky;
    top: 0;
    z-index: 10;
}
.topbar-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.topbar-brand img { width: 48px; height: 48px; object-fit: contain; }
.topbar-brand strong { display: block; color: var(--green-900); font-size: 18px; }
.topbar-brand span { display: block; color: var(--gray-500); font-size: 12px; }
.main-nav { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; }
.main-nav a {
    color: var(--gray-700);
    font-weight: 700;
    padding: 9px 12px;
    border-radius: 12px;
}
.main-nav a:hover { background: var(--green-100); color: var(--green-900); text-decoration: none; }
.main-nav a.active { background: var(--green-700); color: #fff; }
.user-box { text-align: right; color: var(--gray-500); font-size: 12px; }
.user-box strong { color: var(--gray-900); font-size: 13px; }
.user-box a { font-weight: 700; }

/* RADAR v0.9.1-beta - largura útil ampliada para as telas de dados */
.container {
    width: 94%;
    max-width: none;
    margin: 24px auto 40px;
}
@media (max-width: 740px) {
    .container { width: calc(100% - 24px); }
}
.page-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.page-title h1 { margin: 0 0 6px; font-size: 28px; color: var(--gray-900); }
.page-title p { margin: 0; color: var(--gray-500); line-height: 1.45; }

.grid { display: grid; gap: 16px; }
.grid.kpi { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.grid.three { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.card {
    background: #fff;
    border: 1px solid var(--gray-200);
    border-radius: var(--radius);
    padding: 18px;
    box-shadow: 0 8px 20px rgba(16, 24, 40, .04);
}
.card h2, .card h3 { margin: 0 0 12px; color: var(--gray-900); }
.kpi-card small { display: block; color: var(--gray-500); font-weight: 700; text-transform: uppercase; font-size: 11px; letter-spacing: .03em; }
.kpi-card strong { display: block; margin-top: 8px; font-size: 30px; color: var(--green-900); }
.kpi-card .hint { margin-top: 8px; color: var(--gray-500); font-size: 13px; }
.kpi-card.warning strong { color: var(--orange-600); }
.kpi-card.danger strong { color: var(--red-600); }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius); overflow: hidden; }
th, td { padding: 11px 12px; border-bottom: 1px solid var(--gray-200); text-align: left; vertical-align: top; }
th { background: #f8fafc; font-size: 12px; color: var(--gray-700); text-transform: uppercase; letter-spacing: .04em; }
tr:hover td { background: #fcfffd; }
.badge { display: inline-flex; padding: 4px 8px; border-radius: 999px; font-size: 12px; font-weight: 700; }
.badge.green { background: #dcfae6; color: #067647; }
.badge.yellow { background: #fef7c3; color: #854a0e; }
.badge.orange { background: #ffead5; color: #9c2a10; }
.badge.red { background: #fee4e2; color: #b42318; }
.badge.blue { background: #d1e9ff; color: #175cd3; }
.badge.gray { background: #f2f4f7; color: #344054; }

.form-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.form-grid .wide { grid-column: 1 / -1; }
.actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 18px; }

.bar-list { display: grid; gap: 10px; }
.bar-item { display: grid; grid-template-columns: 160px 1fr 48px; align-items: center; gap: 10px; }
.bar-track { height: 12px; background: var(--gray-200); border-radius: 999px; overflow: hidden; }
.bar-fill { height: 100%; background: linear-gradient(90deg, var(--green-700), var(--blue-800)); }

.map-box {
    height: 520px;
    border-radius: 22px;
    border: 1px solid var(--gray-200);
    background: linear-gradient(135deg, #eef8f1, #eef5ff);
    position: relative;
    overflow: hidden;
}
.map-box svg { width: 100%; height: 100%; display: block; }
.map-caption {
    position: absolute;
    left: 18px;
    top: 18px;
    background: rgba(255,255,255,.92);
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    padding: 12px 14px;
    box-shadow: 0 8px 18px rgba(16,24,40,.08);
}

.footer {
    display: flex;
    justify-content: center;
    gap: 12px;
    flex-wrap: wrap;
    color: var(--gray-500);
    padding: 22px;
    border-top: 1px solid var(--gray-200);
    background: #fff;
    font-size: 13px;
}
.footer span:not(:last-child)::after { content: "\2022"; margin-left: 12px; color: var(--green-700); }

@media (max-width: 980px) {
    .topbar { grid-template-columns: 1fr; position: static; }
    .main-nav { justify-content: flex-start; }
    .user-box { text-align: left; }
    .login-content, .grid.kpi, .grid.two, .grid.three, .form-grid { grid-template-columns: 1fr; }
}

/* Mapa Leaflet - RADAR */
.map-card { padding: 18px; }
.map-filters {
    display: grid;
    grid-template-columns: 1.2fr 1fr 1fr .9fr .9fr auto;
    gap: 12px;
    align-items: end;
    margin-bottom: 14px;
}
.map-filters .form-group { margin-bottom: 0; }
.map-filter-buttons { display: flex; gap: 8px; align-items: center; }
.map-filter-action button { width: 100%; white-space: nowrap; }
.btn-clear-filters {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 0 12px;
    border-radius: 10px;
    border: 1px solid var(--gray-300);
    background: #fff;
    color: var(--gray-700);
    font-weight: 800;
    white-space: nowrap;
    text-decoration: none;
}
.btn-clear-filters:hover { background: #f2f4f7; color: var(--gray-900); text-decoration: none; }
.map-toolbar-radar {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin: 8px 0 12px;
    padding: 12px;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    background: #f8fafc;
}
.map-tools-group { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.map-tools-label { color: var(--gray-700); font-weight: 700; font-size: 13px; }
.btn-map {
    width: auto;
    border: 1px solid #d0d5dd;
    background: #fff;
    color: var(--gray-700);
    border-radius: 999px;
    padding: 8px 12px;
    font-size: 13px;
    font-weight: 800;
    cursor: pointer;
}
.btn-map:hover { background: var(--green-100); color: var(--green-900); }
.btn-map.active { background: var(--green-800); color: #fff; border-color: var(--green-800); }
.btn-map.radius[data-radius="500"].active { background: #b42318; border-color: #b42318; }
.btn-map.radius[data-radius="5000"].active { background: #d96c06; border-color: #d96c06; }
.btn-map.radius[data-radius="10000"].active { background: #ca8504; border-color: #ca8504; }
.leaflet-shell-radar {
    border-radius: 22px;
    border: 1px solid var(--gray-200);
    overflow: hidden;
    background: #eef5f0;
}
.leaflet-shell-radar:fullscreen,
.leaflet-shell-radar:-webkit-full-screen {
    background: #f5f7fb;
    padding: 16px;
}
.leaflet-map-radar {
    width: 100%;
    height: 640px;
    min-height: 520px;
}
.radar-union-radius-svg {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    pointer-events: none;
    z-index: 650;
}
.leaflet-shell-radar:fullscreen .leaflet-map-radar,
.leaflet-shell-radar:-webkit-full-screen .leaflet-map-radar {
    height: calc(100vh - 32px);
    border-radius: 16px;
}
.map-status-radar {
    margin: 8px 0 12px;
    padding: 11px 14px;
    border-radius: 12px;
    font-weight: 700;
    border: 1px solid var(--gray-200);
    background: #fff;
}
.map-status-radar.loading { background: #eff8ff; color: #1849a9; border-color: #b2ddff; }
.map-status-radar.warn { background: #fffaeb; color: #93370d; border-color: #fedf89; }
.map-status-radar.info { background: #f2f4f7; color: #344054; }
.map-popup-radar { min-width: 230px; }
.map-popup-radar h3 { margin: 0 0 8px; color: var(--green-900); font-size: 16px; }
.map-popup-radar p { margin: 0 0 8px; }
.map-popup-radar dl { margin: 0; display: grid; gap: 4px; }
.map-popup-radar dl div { display: grid; grid-template-columns: 96px 1fr; gap: 8px; border-bottom: 1px solid #eef2f6; padding: 3px 0; }
.map-popup-radar dt { color: var(--gray-500); font-weight: 700; }
.map-popup-radar dd { margin: 0; color: var(--gray-900); }
.map-popup-radar .risk-line { margin: 6px 0 10px; padding: 8px 10px; border-left: 5px solid var(--green-700); background: #f8fafc; border-radius: 10px; font-weight: 800; }
.map-popup-radar small { display: block; margin-top: 8px; color: var(--gray-500); }
.map-fixed-legend-radar {
    background: rgba(255,255,255,.95);
    padding: 11px 12px;
    border: 1px solid var(--gray-200);
    border-radius: 14px;
    box-shadow: 0 8px 22px rgba(16,24,40,.10);
    display: grid;
    gap: 5px;
    color: var(--gray-700);
    font-size: 12px;
}
.map-fixed-legend-radar strong { color: var(--gray-900); margin-bottom: 4px; }
.map-fixed-legend-radar span { display: flex; align-items: center; gap: 7px; }
.map-fixed-legend-radar i {
    display: inline-block;
    width: 15px;
    height: 15px;
    border-radius: 4px;
    border: 1px solid #98a2b3;
}
.map-fixed-legend-radar .legend-section { margin-top: 6px; }
.map-fixed-legend-radar .legend-point {
    width: 15px;
    height: 15px;
    border-radius: 999px;
    border: 2px solid #d92d20;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(16,24,40,.10);
}
.map-fixed-legend-radar .legend-point.focus-primary {
    background: #d92d20;
    border-color: #d92d20;
}
.map-fixed-legend-radar .legend-point.focus-secondary {
    background: radial-gradient(circle at center, #fff 0 34%, #d92d20 36% 100%);
    border-color: #fff;
    box-shadow: 0 0 0 2px #d92d20;
}
.map-fixed-legend-radar .legend-point.point-negative {
    background: #12b76a;
    border-color: #ffffff;
    box-shadow: 0 0 0 2px #087443;
}
.map-fixed-legend-radar .legend-point.point-analysis {
    background: #667085;
    border-color: #ffffff;
    box-shadow: 0 0 0 2px #344054;
}
.map-help-text { margin: 10px 2px 0; }
.muted { color: var(--gray-500); }

@media (max-width: 1120px) {
    .map-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .map-filter-action { grid-column: 1 / -1; }
}
@media (max-width: 680px) {
    .map-filters { grid-template-columns: 1fr; }
    .map-filter-buttons { flex-direction: column; align-items: stretch; }
    .leaflet-map-radar { height: 560px; }
}

/* Correções v0.6 - mapa Leaflet */
.page-title-actions {
    display: flex;
    gap: 10px;
    align-items: center;
    flex-wrap: wrap;
}
.leaflet-pontos-pane {
    z-index: 900 !important;
    pointer-events: auto !important;
}
.leaflet-raios-pane {
    z-index: 650 !important;
    pointer-events: none !important;
}
.leaflet-municipios-pane {
    z-index: 460 !important;
    pointer-events: auto !important;
}
.municipio-radar-polygon {
    filter: drop-shadow(0 1px 1px rgba(0, 86, 45, .18));
}
.radar-point-marker {
    width: 20px;
    height: 20px;
    display: block;
    border-radius: 999px;
    border: 3px solid #fff;
    box-shadow: 0 2px 8px rgba(16,24,40,.35), 0 0 0 2px rgba(0,0,0,.16);
    background: #344054;
    cursor: pointer;
    position: relative;
}
.radar-point-marker > span {
    position: absolute;
    inset: 4px;
    border-radius: 999px;
    background: rgba(255,255,255,.88);
}
.radar-point-marker.positivo {
    width: 24px;
    height: 24px;
    background: #d92d20;
    box-shadow: 0 2px 10px rgba(16,24,40,.35), 0 0 0 3px rgba(180,35,24,.22);
}
.radar-point-marker.foco-primario {
    background: #d92d20;
    border-color: #ffffff;
    box-shadow: 0 2px 10px rgba(16,24,40,.35), 0 0 0 3px rgba(180,35,24,.30);
}
.radar-point-marker.foco-primario > span {
    display: none;
}
.radar-point-marker.foco-secundario {
    background: #d92d20;
    border-color: #ffffff;
}
.radar-point-marker.foco-secundario > span {
    display: block;
    inset: 5px;
    background: #ffffff;
}
.radar-point-marker.negativo { background: #12b76a; }
.radar-point-marker.inconclusivo { background: #f79009; }
.radar-point-marker.monitoramento { background: #175cd3; }
.radar-point-marker.autorizacao { background: #f97316; }
.radar-point-marker.ul { background: #06b6d4; }
.radar-point-marker.coleta { background: #667085; }
.radar-point-marker:hover {
    transform: scale(1.16);
    box-shadow: 0 4px 14px rgba(16,24,40,.42), 0 0 0 4px rgba(0,112,60,.20);
}

/* Correções v0.9 - polígonos municipais Leaflet */
.leaflet-municipiosPane-pane {
    z-index: 520 !important;
    pointer-events: auto !important;
}
.leaflet-raiosPane-pane {
    z-index: 650 !important;
    pointer-events: none !important;
}
.leaflet-pontosPane-pane {
    z-index: 900 !important;
    pointer-events: auto !important;
}
.leaflet-municipiosPane-pane svg path,
.municipio-radar-polygon {
    vector-effect: non-scaling-stroke;
}


/* Suspeitas - padrão visual semelhante ao módulo de autorizações */
.card-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.card-title h1, .card-title h2 { margin: 0; }
.title-with-help { display: inline-flex; align-items: center; gap: 8px; }
.help-icon { width: 24px; height: 24px; border-radius: 999px; border: 1px solid #84c5ff; background: #eef8ff; color: #0969c3; display: inline-flex; align-items: center; justify-content: center; font-weight: 800; padding: 0; }
.muted { color: var(--gray-500); }
.filters { display: grid; grid-template-columns: 2fr 1fr 1fr 1.2fr auto; gap: 10px; align-items: end; }
.filters label { display: block; font-weight: 700; color: var(--gray-900); margin-bottom: 6px; font-size: 13px; }
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 10px 16px; border-radius: 16px; border: 0; background: var(--green-800); color: #fff; font-weight: 800; cursor: pointer; text-decoration: none; }
.btn:hover { text-decoration: none; filter: brightness(.96); }
.btn.blue { background: #0967c2; }
.btn.ghost { background: #f1f5f9; color: var(--gray-900); }
.btn.small { min-height: 36px; padding: 8px 12px; border-radius: 12px; font-size: 13px; }
.actions-cell { min-width: 210px; }
.icon-actions { display: flex; gap: 8px; align-items: center; }
.icon-btn { width: 42px; height: 42px; min-height: 42px; padding: 0; border-radius: 12px; color: #fff; position: relative; }
.icon-btn svg { width: 18px; height: 18px; fill: currentColor; }
.icon-btn.view { background: #475467; }
.icon-btn.history { background: #eef2f6; color: #101828; }
.icon-btn.edit { background: #f2bd00; color: #101828; }
.icon-btn.monitoring { background: var(--green-800); color: #fff; }
.icon-btn.monitoring:hover { filter: brightness(.94); }
.icon-btn.result { background: #075fb8; }
.icon-btn[data-tooltip]::after { content: attr(data-tooltip); position: absolute; left: 50%; bottom: calc(100% + 8px); transform: translateX(-50%); white-space: nowrap; background: #101828; color: #fff; font-size: 11px; padding: 5px 7px; border-radius: 8px; opacity: 0; pointer-events: none; transition: opacity .12s ease; }
.icon-btn[data-tooltip]:hover::after { opacity: 1; }
.form-section-title { grid-column: 1 / -1; margin: 6px 0 -2px; padding-top: 8px; border-top: 1px solid var(--gray-200); color: var(--green-900); font-size: 16px; }
.ie-panel { grid-column: 1 / -1; border: 1px solid #d1e9ff; background: #f5fbff; border-radius: 16px; padding: 14px; }
.ie-panel h3 { margin: 0 0 8px; }
.rastro-list { display: grid; gap: 8px; margin-top: 10px; }
.rastro-item { background: #fff; border: 1px solid var(--gray-200); border-radius: 12px; padding: 10px; display: flex; justify-content: space-between; gap: 12px; }
.coord-map { grid-column: 1 / -1; height: 320px; border-radius: 16px; overflow: hidden; border: 1px solid var(--gray-200); background: #eef4f7; }
.decimal-label { display: block; margin-top: 6px; color: var(--gray-500); font-size: 12px; }
.detail-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.detail-item { background: #f8fafc; border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px; }
.detail-item strong { display: block; color: var(--gray-500); font-size: 12px; text-transform: uppercase; margin-bottom: 4px; }
.timeline { display: grid; gap: 10px; }
.timeline-item { border-left: 4px solid var(--green-700); background: #f8fafc; border-radius: 12px; padding: 12px; }
.pagination-actions { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
@media (max-width: 980px) { .filters, .detail-grid { grid-template-columns: 1fr; } .card-title { flex-direction: column; } }


/* RADAR FITO v0.17 - lista compacta de autorizações na nova suspeita */
.rastro-item.compact {
    align-items: center;
    padding: 8px 10px;
    min-height: 42px;
}
.rastro-compact-line {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
    font-size: 13px;
    line-height: 1.35;
    color: var(--gray-900);
}
.rastro-compact-line .bullet {
    color: var(--gray-400);
    font-weight: 800;
}
.btn-arrow-green {
    width: 34px;
    height: 34px;
    min-width: 34px;
    border-radius: 10px;
    background: var(--green-800);
    color: #fff;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 21px;
    line-height: 1;
    font-weight: 900;
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(0,112,60,.16);
}
.btn-arrow-green:hover {
    background: var(--green-900);
    color: #fff;
    text-decoration: none;
    transform: translateX(1px);
}
.ie-panel {
    padding: 12px 14px;
}
.ie-panel h3 {
    font-size: 16px;
    margin-bottom: 4px;
}
.rastro-list {
    gap: 6px;
}


/* RADAR FITO v0.19 - focos */
.icon-btn.map { background: #008c4a; color: #fff; }
.icon-btn.pdf { background: #0b5cab; color: #fff; }
.alert-info { background:#eef7ff; border:1px solid #b2ddff; color:#18457a; }
.detail-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px 20px;
}
.detail-grid label {
    display:block;
    font-size: 12px;
    color: var(--gray-500);
    text-transform: uppercase;
    letter-spacing: .02em;
    margin-bottom: 3px;
    font-weight: 800;
}
@media (max-width: 760px) {
    .detail-grid { grid-template-columns: 1fr; }
}


/* RADAR FITO v0.21 - cronologia do foco */
.timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 12px;
}
.timeline-item {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 14px;
    align-items: stretch;
}
.timeline-date {
    font-weight: 900;
    color: var(--green-900);
    padding-top: 10px;
}
.timeline-content {
    border: 1px solid var(--gray-200);
    border-left: 5px solid var(--green-700);
    border-radius: 14px;
    background: #fff;
    padding: 12px 14px;
    box-shadow: 0 8px 18px rgba(16,24,40,.04);
}
.timeline-content h3 {
    margin: 6px 0;
    font-size: 16px;
}
.timeline-content p {
    margin: 4px 0 8px;
    color: var(--gray-800);
}
.checkbox-line {
    display: flex;
    align-items: center;
    padding-top: 26px;
}
.checkbox-line label {
    display: flex;
    gap: 8px;
    align-items: center;
    font-weight: 800;
}
@media (max-width: 760px) {
    .timeline-item { grid-template-columns: 1fr; }
    .timeline-date { padding-top: 0; }
}

/* RADAR FITO v0.22 */
.table-wrap table th, .table-wrap table td { vertical-align: top; }

/* RADAR FITO v0.24 - Dashboard gerencial, epidemiológico e monitoramento */
.dashboard-title { align-items: center; }
.dashboard-filter-card { margin-bottom: 20px; }
.dashboard-filters {
    display: grid;
    grid-template-columns: 180px 180px minmax(260px, 1fr) auto;
    gap: 14px;
    align-items: end;
}
.dashboard-filters .form-group { margin-bottom: 0; }
.dashboard-filter-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.dashboard-status {
    margin-top: 14px;
    padding: 10px 12px;
    border-radius: 12px;
    border: 1px solid var(--gray-200);
    font-weight: 700;
    font-size: 13px;
}
.dashboard-status.loading { background: #eff8ff; color: #1849a9; border-color: #b2ddff; }
.dashboard-status.info { background: #f8fafc; color: #344054; }
.dashboard-status.warn { background: #fffaeb; color: #93370d; border-color: #fedf89; }
.dashboard-section { margin-top: 26px; }
.dashboard-section-title {
    display: flex;
    justify-content: space-between;
    align-items: end;
    gap: 18px;
    margin: 0 0 14px;
}
.dashboard-section-title h2 { margin: 0; color: var(--green-900); }
.dashboard-section-title p { margin: 0; color: var(--gray-500); }
.dashboard-kpis { margin-bottom: 16px; }
.dashboard-kpi { min-height: 128px; }
.dashboard-kpi.success strong { color: var(--green-800); }
.dashboard-kpi.warning strong { color: var(--orange-600); }
.dashboard-kpi.danger strong { color: var(--red-600); }
.dashboard-kpi.neutral strong { color: var(--gray-900); }
.skeleton-card {
    background: linear-gradient(90deg, #f2f4f7 0%, #ffffff 50%, #f2f4f7 100%);
    background-size: 200% 100%;
    animation: radarSkeleton 1.2s linear infinite;
}
@keyframes radarSkeleton {
    from { background-position: 200% 0; }
    to { background-position: -200% 0; }
}
.dashboard-chart-grid { margin-top: 16px; }
.chart-card {
    min-height: 430px;
    display: flex;
    flex-direction: column;
}
.chart-card.wide-chart { grid-column: 1 / -1; }
.chart-head {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    margin-bottom: 10px;
}
.chart-head h3 { margin: 0 0 4px; color: var(--gray-900); }
.chart-head small { color: var(--gray-500); line-height: 1.35; }
.chart-card canvas {
    width: 100%;
    height: 340px;
    display: block;
    border: 1px solid #eef2f6;
    border-radius: 16px;
    background: #fff;
}
.chart-note {
    margin-top: 10px;
    padding: 10px 12px;
    border-radius: 12px;
    background: #fffaeb;
    color: #93370d;
    border: 1px solid #fedf89;
    font-size: 13px;
    font-weight: 700;
}
.flow-card { margin: 16px 0; }
.flow-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
}
.flow-item {
    display: grid;
    grid-template-columns: 34px 1fr;
    gap: 10px;
    align-items: center;
    border: 1px solid var(--gray-200);
    border-radius: 16px;
    padding: 12px;
    background: #f8fafc;
}
.flow-symbol {
    width: 30px;
    height: 30px;
    display: grid;
    place-items: center;
    border-radius: 999px;
    background: #fff;
    font-size: 16px;
    font-weight: 900;
}
.flow-item strong { display: block; color: var(--gray-900); font-size: 13px; }
.flow-item span { display: block; margin-top: 4px; font-size: 22px; font-weight: 900; color: var(--gray-900); }
.flow-item small { display: block; margin-top: 2px; color: var(--gray-500); font-weight: 700; }
.flow-item.success { border-color: #abefc6; background: #ecfdf3; }
.flow-item.success .flow-symbol, .flow-item.success span { color: var(--green-800); }
.flow-item.warning { border-color: #fedf89; background: #fffaeb; }
.flow-item.warning .flow-symbol, .flow-item.warning span { color: var(--orange-600); }
.flow-item.danger { border-color: #fecdca; background: #fff1f0; }
.flow-item.danger .flow-symbol, .flow-item.danger span { color: var(--red-600); }

@media (max-width: 1100px) {
    .dashboard-filters { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .dashboard-filter-praga, .dashboard-filter-actions { grid-column: 1 / -1; }
    .flow-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 740px) {
    .dashboard-title, .dashboard-section-title, .chart-head { flex-direction: column; align-items: stretch; }
    .dashboard-filters, .flow-grid { grid-template-columns: 1fr; }
    .dashboard-filter-praga, .dashboard-filter-actions { grid-column: auto; }
    .chart-card.wide-chart { grid-column: auto; }
}

/* RADAR v0.25.2 - estabilização definitiva dos containers Chart.js no dashboard */
.chart-card .dashboard-chart-canvas-wrap {
    position: relative !important;
    width: 100% !important;
    height: 340px !important;
    min-height: 340px !important;
    max-height: 340px !important;
    overflow: hidden !important;
    border: 1px solid #eef2f6;
    border-radius: 16px;
    background: #ffffff;
    flex: 0 0 auto;
}
.chart-card.wide-chart .dashboard-chart-canvas-wrap {
    height: 430px !important;
    min-height: 430px !important;
    max-height: 430px !important;
}
.chart-card[data-chart-card="flutuacaoPopulacional"] .dashboard-chart-canvas-wrap,
.chart-card[data-chart-card="flutuacaoPopulacional"] .chart-box {
    height: 360px !important;
    min-height: 360px !important;
    max-height: 360px !important;
}
.chart-card .dashboard-chart-canvas-wrap canvas {
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: 100% !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
}

/* RADAR v0.25.4 - ajustes visuais do dashboard solicitados */
.dashboard-kpis {
    gap: 18px;
}
.dashboard-kpis .kpi-card,
.kpi-card.dashboard-kpi {
    min-height: 142px;
    padding: 20px 22px;
    border: 1px solid rgba(11, 125, 59, .13);
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248, 252, 250, .98)),
        radial-gradient(circle at 90% 14%, rgba(6, 74, 150, .10), transparent 30%),
        radial-gradient(circle at 12% 85%, rgba(11, 125, 59, .12), transparent 35%);
    box-shadow: 0 10px 24px rgba(16, 24, 40, .055);
}
.kpi-card .kpi-title,
.kpi-card > span,
.kpi-card small:first-child {
    display: block;
    color: #344054;
    font-family: "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
    font-size: 14px;
    line-height: 1.22;
    font-weight: 800;
    letter-spacing: .065em;
    text-transform: uppercase;
}
.kpi-card .kpi-number,
.kpi-card > strong {
    display: block;
    width: 100%;
    margin-top: 10px;
    color: #003c1f;
    font-family: "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
    font-size: clamp(41px, 3.8vw, 55px);
    line-height: .98;
    font-weight: 950;
    letter-spacing: -.045em;
    text-align: center;
}
.kpi-card .kpi-subtitle,
.kpi-card > small:last-child,
.kpi-card .hint {
    display: block;
    margin-top: 11px;
    color: #475467;
    font-size: 13px;
    line-height: 1.35;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}
.kpi-card.warning strong,
.dashboard-kpi.warning strong { color: var(--orange-600); }
.kpi-card.danger strong,
.dashboard-kpi.danger strong { color: var(--red-600); }
.kpi-card.neutral strong,
.dashboard-kpi.neutral strong { color: var(--gray-900); }

/* Centralização dos valores principais dos KPIs */
.dashboard-kpis .kpi-card > strong,
.dashboard-kpis .dashboard-kpi > strong,
.dashboard-kpis .kpi-number {
    text-align: center !important;
    align-self: center;
    justify-self: center;
}

.chart-action-group {
    display: inline-flex;
    align-items: center;
    justify-content: flex-end;
    gap: 8px;
    flex: 0 0 auto;
}
.chart-action-group .btn.small,
.chart-fullscreen-btn {
    min-width: 42px;
    height: 34px;
    padding: 0 11px;
    border-radius: 14px;
    font-weight: 900;
}
.chart-fullscreen-btn {
    font-size: 17px;
    line-height: 1;
}
.chart-card:fullscreen,
.chart-card.radar-chart-fullscreen-fallback {
    width: 100vw !important;
    height: 100vh !important;
    max-width: none !important;
    max-height: none !important;
    margin: 0 !important;
    padding: 24px !important;
    border-radius: 0 !important;
    background: #ffffff !important;
    overflow: hidden !important;
    box-shadow: none !important;
    z-index: 99999;
}
.chart-card.radar-chart-fullscreen-fallback {
    position: fixed !important;
    inset: 0 !important;
}
.chart-card:fullscreen .chart-head,
.chart-card.radar-chart-fullscreen-fallback .chart-head {
    margin-bottom: 14px;
}
.chart-card:fullscreen .dashboard-chart-canvas-wrap,
.chart-card.radar-chart-fullscreen-fallback .dashboard-chart-canvas-wrap,
.chart-card:fullscreen .chart-box,
.chart-card.radar-chart-fullscreen-fallback .chart-box {
    height: calc(100vh - 156px) !important;
    min-height: 420px !important;
    max-height: calc(100vh - 156px) !important;
    border-radius: 18px !important;
}
.chart-card:fullscreen canvas,
.chart-card.radar-chart-fullscreen-fallback canvas {
    height: 100% !important;
    max-height: 100% !important;
}
.chart-card:fullscreen .chart-note,
.chart-card.radar-chart-fullscreen-fallback .chart-note {
    margin-top: 12px;
}

@media (max-width: 740px) {
    .dashboard-kpis .kpi-card,
    .kpi-card.dashboard-kpi { min-height: 128px; }
    .kpi-card .kpi-number,
    .kpi-card > strong { font-size: 39px; }
    .chart-action-group { justify-content: flex-start; }
}


/* RADAR v0.25.5 - KPIs semafóricos e ajustes da curva epidemiológica */
.kpi-card.dashboard-kpi.kpi-severity-success {
    border-color: rgba(22, 163, 74, .28) !important;
    background:
        linear-gradient(180deg, rgba(236, 253, 243, .98), rgba(255,255,255,.97)),
        radial-gradient(circle at 90% 10%, rgba(22, 163, 74, .18), transparent 34%) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-success .kpi-number { color: #05603a !important; }
.kpi-card.dashboard-kpi.kpi-severity-warning {
    border-color: rgba(245, 158, 11, .32) !important;
    background:
        linear-gradient(180deg, rgba(255, 250, 235, .98), rgba(255,255,255,.97)),
        radial-gradient(circle at 90% 10%, rgba(245, 158, 11, .20), transparent 34%) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-warning .kpi-number { color: #b54708 !important; }
.kpi-card.dashboard-kpi.kpi-severity-danger {
    border-color: rgba(220, 38, 38, .30) !important;
    background:
        linear-gradient(180deg, rgba(255, 241, 240, .98), rgba(255,255,255,.97)),
        radial-gradient(circle at 90% 10%, rgba(220, 38, 38, .18), transparent 34%) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-danger .kpi-number { color: #b42318 !important; }
.kpi-card.dashboard-kpi.kpi-severity-neutral {
    border-color: rgba(102, 112, 133, .20) !important;
    background:
        linear-gradient(180deg, rgba(248, 250, 252, .99), rgba(255,255,255,.98)),
        radial-gradient(circle at 90% 10%, rgba(102, 112, 133, .11), transparent 34%) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-neutral .kpi-number { color: #344054 !important; }

.chart-card[data-chart-card="progressaoEpidemiologica"] .dashboard-chart-canvas-wrap {
    height: 470px !important;
    min-height: 470px !important;
    max-height: 470px !important;
}


/* RADAR v0.25.7 - layout de filtros e KPIs semafóricos em todas as seções */
.dashboard-title {
    align-items: flex-start !important;
}
.dashboard-title .page-title-actions {
    display: none !important;
}
.dashboard-filters {
    grid-template-columns: 180px 180px minmax(320px, 1fr) 252px !important;
    grid-auto-rows: auto !important;
    align-items: end !important;
}
.dashboard-filter-municipio {
    grid-column: 4 !important;
    grid-row: 1 !important;
}
.dashboard-filter-actions {
    grid-column: 4 !important;
    grid-row: 2 !important;
    display: flex !important;
    flex-direction: row !important;
    align-items: center !important;
    justify-content: flex-start !important;
    gap: 8px !important;
    margin-top: 0 !important;
    padding-top: 0 !important;
    flex-wrap: nowrap !important;
}
.dashboard-filter-actions .btn-primary,
.dashboard-filter-actions .btn,
.dashboard-filter-actions button {
    min-height: 34px !important;
    height: 34px !important;
    padding: 0 13px !important;
    border-radius: 12px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    font-weight: 900 !important;
    white-space: nowrap !important;
}
.kpi-card.dashboard-kpi.kpi-severity-success,
.kpi-card.dashboard-kpi.kpi-severity-warning,
.kpi-card.dashboard-kpi.kpi-severity-danger,
.kpi-card.dashboard-kpi.kpi-severity-neutral {
    transition: background .18s ease, border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.kpi-card.dashboard-kpi.kpi-severity-success {
    box-shadow: 0 10px 24px rgba(5, 96, 58, .08) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-warning {
    box-shadow: 0 10px 24px rgba(181, 71, 8, .08) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-danger {
    box-shadow: 0 10px 24px rgba(180, 35, 24, .09) !important;
}
.kpi-card.dashboard-kpi.kpi-severity-neutral {
    box-shadow: 0 10px 24px rgba(52, 64, 84, .06) !important;
}
@media (max-width: 1100px) {
    .dashboard-filters {
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    }
    .dashboard-filter-praga,
    .dashboard-filter-municipio {
        grid-column: auto !important;
        grid-row: auto !important;
    }
    .dashboard-filter-actions {
        grid-column: 1 / -1 !important;
        grid-row: auto !important;
        justify-content: flex-start !important;
        flex-wrap: wrap !important;
    }
}
@media (max-width: 740px) {
    .dashboard-filter-actions {
        flex-wrap: wrap !important;
    }
}

/* RADAR v0.25.8 - KPIs com hint em hover/foco, sem texto explicativo no card */
.kpi-card.dashboard-kpi {
    position: relative !important;
    overflow: visible !important;
    cursor: help;
}
.kpi-card.dashboard-kpi .kpi-subtitle,
.kpi-card.dashboard-kpi .hint {
    display: none !important;
}
.kpi-card.dashboard-kpi:hover,
.kpi-card.dashboard-kpi:focus,
.kpi-card.dashboard-kpi:focus-visible {
    transform: translateY(-2px);
    box-shadow: 0 18px 34px rgba(16, 24, 40, .18) !important;
    z-index: 15;
}
.kpi-card.dashboard-kpi:focus-visible {
    outline: 3px solid rgba(6, 74, 150, .20);
    outline-offset: 3px;
}
.kpi-card.dashboard-kpi[data-kpi-hint]::after {
    content: attr(data-kpi-hint);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    transform: translateX(-50%) translateY(4px);
    min-width: 220px;
    max-width: min(360px, calc(100vw - 32px));
    padding: 10px 12px;
    border: 1px solid rgba(12, 49, 88, .14);
    border-radius: 12px;
    background: rgba(15, 23, 42, .96);
    color: #fff;
    font-family: "Segoe UI", Roboto, Arial, Helvetica, sans-serif;
    font-size: 12px;
    line-height: 1.35;
    font-weight: 700;
    text-align: center;
    letter-spacing: 0;
    text-transform: none;
    white-space: normal;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
    box-shadow: 0 16px 34px rgba(16, 24, 40, .24);
    z-index: 30;
}
.kpi-card.dashboard-kpi[data-kpi-hint]::before {
    content: '';
    position: absolute;
    left: 50%;
    bottom: calc(100% + 3px);
    transform: translateX(-50%) translateY(4px) rotate(45deg);
    width: 12px;
    height: 12px;
    background: rgba(15, 23, 42, .96);
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
    z-index: 29;
}
.kpi-card.dashboard-kpi:hover::after,
.kpi-card.dashboard-kpi:focus::after,
.kpi-card.dashboard-kpi:focus-visible::after,
.kpi-card.dashboard-kpi:hover::before,
.kpi-card.dashboard-kpi:focus::before,
.kpi-card.dashboard-kpi:focus-visible::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.kpi-card.dashboard-kpi:hover::before,
.kpi-card.dashboard-kpi:focus::before,
.kpi-card.dashboard-kpi:focus-visible::before {
    transform: translateX(-50%) translateY(0) rotate(45deg);
}
@media (max-width: 740px) {
    .kpi-card.dashboard-kpi[data-kpi-hint]::after {
        min-width: 190px;
        max-width: 280px;
        font-size: 11px;
    }
}


/* RADAR v0.25.9 - KPIs: títulos e números +2pt */
.dashboard-kpis .kpi-card .kpi-title,
.dashboard-kpis .kpi-card > span,
.dashboard-kpis .kpi-card small:first-child {
    font-size: 14px !important;
}
.dashboard-kpis .kpi-card .kpi-number,
.dashboard-kpis .kpi-card > strong {
    font-size: clamp(41px, 3.8vw, 55px) !important;
}
@media (max-width: 740px) {
    .dashboard-kpis .kpi-card .kpi-number,
    .dashboard-kpis .kpi-card > strong {
        font-size: 39px !important;
    }
}


/* RADAR v0.26.0 - login institucional, hint do botão Entrar e rodapé modernizado */
.login-institutional-logo {
    margin-top: 20px;
    padding: 12px 14px;
    border: 1px solid rgba(6, 74, 150, .10);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(16, 24, 40, .05);
}
.login-institutional-logo img {
    display: block;
    width: 100%;
    max-height: 86px;
    object-fit: contain;
}
.login-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 4px;
}
.login-enter-button {
    position: relative;
}
.login-enter-button[data-login-hint]::after {
    content: attr(data-login-hint);
    position: absolute;
    left: 50%;
    bottom: calc(100% + 10px);
    transform: translateX(-50%) translateY(4px);
    width: min(360px, calc(100vw - 44px));
    padding: 10px 12px;
    border-radius: 12px;
    background: rgba(15, 23, 42, .96);
    color: #fff;
    box-shadow: 0 16px 34px rgba(16, 24, 40, .24);
    font-family: Roboto, Inter, "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.35;
    text-align: center;
    white-space: normal;
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
    z-index: 50;
}
.login-enter-button[data-login-hint]::before {
    content: '';
    position: absolute;
    left: 50%;
    bottom: calc(100% + 3px);
    transform: translateX(-50%) translateY(4px) rotate(45deg);
    width: 12px;
    height: 12px;
    background: rgba(15, 23, 42, .96);
    opacity: 0;
    pointer-events: none;
    transition: opacity .16s ease, transform .16s ease;
    z-index: 49;
}
.login-enter-button[data-login-hint]:hover::after,
.login-enter-button[data-login-hint]:focus-visible::after,
.login-enter-button[data-login-hint]:hover::before,
.login-enter-button[data-login-hint]:focus-visible::before {
    opacity: 1;
    transform: translateX(-50%) translateY(0);
}
.login-enter-button[data-login-hint]:hover::before,
.login-enter-button[data-login-hint]:focus-visible::before {
    transform: translateX(-50%) translateY(0) rotate(45deg);
}
.login-forgot-link {
    background: var(--blue-100);
    color: var(--blue-800);
    font-weight: 800;
    padding: 10px 14px;
}
.login-forgot-link:hover {
    text-decoration: none;
    box-shadow: 0 8px 18px rgba(6, 74, 150, .12);
}
.footer {
    font-family: Roboto, Inter, "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: .01em;
    color: #42526b;
}
.footer span:last-child {
    color: var(--blue-800);
}
@media (max-width: 740px) {
    .login-actions {
        align-items: stretch;
    }
    .login-actions .btn-primary,
    .login-actions .btn-secondary {
        width: 100%;
    }
    .login-enter-button[data-login-hint]::after {
        left: 0;
        transform: translateY(4px);
        width: min(300px, calc(100vw - 52px));
    }
    .login-enter-button[data-login-hint]:hover::after,
    .login-enter-button[data-login-hint]:focus-visible::after {
        transform: translateY(0);
    }
}


/* RADAR v0.26.1 - ajustes finais login/rodapé */
.login-actions {
    align-items: center;
    gap: 8px;
}
.login-enter-button {
    min-width: 112px;
    min-height: 46px;
    padding: 12px 22px;
    border-radius: 14px;
    font-size: 15px;
    font-weight: 900;
    box-shadow: 0 10px 22px rgba(0, 112, 60, .22);
}
.login-enter-button:hover,
.login-enter-button:focus-visible {
    box-shadow: 0 14px 30px rgba(0, 112, 60, .30);
    transform: translateY(-1px);
}
.login-forgot-link {
    min-height: 34px;
    padding: 7px 10px;
    border-radius: 12px;
    font-size: 12px;
    font-weight: 700;
    background: #f3f6fa;
    color: #1f2937;
    box-shadow: none;
}
.login-forgot-link:hover,
.login-forgot-link:focus-visible {
    background: #e9eef5;
    color: #0b3b75;
    box-shadow: 0 4px 10px rgba(16, 24, 40, .08);
    transform: none;
}
.footer {
    font-family: Roboto, Inter, "Segoe UI", Arial, Helvetica, sans-serif;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.35;
    color: #000 !important;
    letter-spacing: 0;
    gap: 7px;
    padding: 12px 18px;
}
.footer span,
.footer span:last-child {
    color: #000 !important;
}
.footer span:not(:last-child)::after {
    content: "\2022" !important;
    margin-left: 7px;
    color: #000 !important;
    font-weight: 900;
}
@media (max-width: 740px) {
    .login-actions {
        align-items: flex-start;
    }
    .login-actions .btn-primary.login-enter-button {
        width: auto;
        min-width: 112px;
    }
    .login-actions .btn-secondary.login-forgot-link {
        width: auto;
    }
}


/* Monitoramento v0.27 */
.inline-filter { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.inline-filter label { font-weight: 800; color: var(--gray-900); font-size: 13px; }
.inline-filter select { min-width: 150px; }
.info-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.info-grid > div { border: 1px solid var(--gray-200); border-radius: 14px; padding: 12px; background: #f8fafc; }
.info-grid label { display: block; font-size: 12px; color: var(--gray-500); font-weight: 800; margin-bottom: 4px; }
.info-grid strong { color: var(--gray-900); }
.check-inline { display: inline-flex !important; align-items: center; gap: 8px; font-weight: 700 !important; color: var(--gray-700) !important; margin-top: 10px; }
.check-inline input { width: auto; }
@media (max-width: 900px) { .info-grid { grid-template-columns: 1fr; } }

/* RADAR FITO v0.9.1-beta */
.badge.focus-primary { background: #8B0000; color: #fff; }
.badge.focus-secondary { background: #FF6666; color: #fff; }
.badge.focus-saneado { background: #007BA7; color: #fff; }
.pipeline-grid { display: grid; grid-template-columns: repeat(5, minmax(0,1fr)); gap: 10px; margin: 14px 0; }
.pipeline-card { border-radius: 14px; padding: 12px; border: 1px solid var(--gray-200); background: #f8fafc; }
.pipeline-card strong { display: block; font-size: 12px; color: var(--gray-700); }
.pipeline-card span { display: block; font-size: 22px; font-weight: 900; margin-top: 4px; color: var(--gray-900); }
.pipeline-card small { color: var(--gray-500); font-weight: 700; }
.pipeline-card.ok, .pipeline-card.verde { background: #ecfdf3; border-color: #bbf7d0; }
.pipeline-card.amarelo { background: #fefce8; border-color: #fde68a; }
.pipeline-card.vermelho { background: #fef2f2; border-color: #fecaca; }
.pipeline-card.pendente { background: #f8fafc; border-style: dashed; }
.action-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px; }
@media (max-width: 900px) { .pipeline-grid, .action-form-grid { grid-template-columns: 1fr; } }

/* Ajustes v0.9.1-beta-r3: ações em ícones, mapa filtrado por foco e pipeline compacto */
.icon-btn.file { background: #344054; color: #fff; }
.icon-btn.send { background: #175cd3; color: #fff; }
.icon-btn.trash { background: #b42318; color: #fff; }
.icon-actions form { display: inline-flex !important; margin: 0; }
.pipeline-shell-compact { padding: 14px 16px; }
.pipeline-grid.pipeline-grid-compact {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin: 10px 0 2px;
}
.pipeline-grid.pipeline-grid-compact .pipeline-card {
    min-height: 70px;
    border-radius: 12px;
    padding: 8px 9px;
}
.pipeline-grid.pipeline-grid-compact .pipeline-card strong {
    font-size: 11px;
    line-height: 1.15;
}
.pipeline-grid.pipeline-grid-compact .pipeline-card span {
    font-size: 18px;
    line-height: 1.1;
    margin-top: 3px;
}
.pipeline-grid.pipeline-grid-compact .pipeline-card small {
    font-size: 10px;
    line-height: 1.15;
}
.foco-actions-grid {
    grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
    gap: 12px;
}
.foco-actions-grid .card {
    padding: 14px;
    border-radius: 16px;
}
.foco-actions-grid .card h2 {
    margin-bottom: 8px;
    font-size: 16px;
}
.foco-actions-grid textarea {
    min-height: 76px;
}
@media (max-width: 1180px) {
    .pipeline-grid.pipeline-grid-compact { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 720px) {
    .pipeline-grid.pipeline-grid-compact { grid-template-columns: 1fr; }
    .foco-actions-grid { grid-template-columns: 1fr; }
}


/* v0.9.1-beta-r4: aderência COEFITO, encerramento e histórico */
.alert-card.warning { border-left: 5px solid #ca8a04; background: #fffbea; }
.alert-card.warning h2 { color: #854d0e; }
.coefito-card h2 { display:flex; align-items:center; gap:10px; }
.coefito-color { width:14px; height:14px; border-radius:4px; display:inline-block; box-shadow:0 0 0 1px rgba(15,23,42,.12); }
button[disabled] { opacity:.55; cursor:not-allowed; }

/* RADAR FITO v0.27.6 - organograma hierárquico do COEFITO */
.coefito-page-title {
    align-items: flex-end;
}
.coefito-page-title h1 {
    margin-bottom: 6px;
}
.coefito-kicker {
    margin: 0 0 5px;
    color: #1769a5;
    font-size: 12px;
    font-weight: 900;
    letter-spacing: .09em;
    text-transform: uppercase;
}
.coefito-org-chart {
    --coefito-line: #b8c5d2;
    position: relative;
    margin-bottom: 20px;
    padding: clamp(16px, 2.5vw, 30px);
    border: 1px solid #d9e2ea;
    border-radius: 22px;
    background:
        radial-gradient(circle at 50% 0, rgba(23, 105, 165, .08), transparent 34%),
        linear-gradient(180deg, #fbfdff 0, #f5f8fb 100%);
    box-shadow: 0 16px 34px rgba(16, 24, 40, .07);
    overflow: hidden;
}
.coefito-support-band {
    position: relative;
    z-index: 2;
    padding: 15px;
    border: 1px solid #cbd5e1;
    border-radius: 18px;
    background: #f1f5f9;
}
.coefito-support-band::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -28px;
    width: 2px;
    height: 28px;
    background: var(--coefito-line);
}
.coefito-support-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}
.coefito-support-heading span,
.coefito-section-label {
    color: #526173;
    font-size: 11px;
    font-weight: 900;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.coefito-support-heading h2 {
    margin: 0;
    color: #243142;
    font-size: 17px;
}
.coefito-support-members {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 9px;
}
.coefito-command-path {
    position: relative;
    z-index: 1;
    padding-top: 28px;
}
.coefito-command {
    position: relative;
    display: flex;
    justify-content: center;
}
.coefito-command::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -28px;
    width: 2px;
    height: 28px;
    background: var(--coefito-line);
}
.coefito-advisory {
    position: relative;
    margin-top: 28px;
    padding: 14px;
    border: 1px dashed #b9c8d6;
    border-radius: 18px;
    background: rgba(255, 255, 255, .78);
}
.coefito-advisory::after {
    content: "";
    position: absolute;
    left: 50%;
    bottom: -34px;
    width: 2px;
    height: 34px;
    background: var(--coefito-line);
}
.coefito-advisory-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 9px;
    margin-top: 10px;
}
.coefito-operational {
    position: relative;
    padding-top: 34px;
}
.coefito-operational > .coefito-section-label {
    width: max-content;
    margin: 0 auto 15px;
    padding: 5px 12px;
    border: 1px solid #cbd5e1;
    border-radius: 999px;
    background: #fff;
}
.coefito-pillars {
    position: relative;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    align-items: start;
    gap: 14px;
    padding-top: 20px;
}
.coefito-pillars::before {
    content: "";
    position: absolute;
    top: 0;
    left: 12.5%;
    right: 12.5%;
    height: 2px;
    background: var(--coefito-line);
}
.coefito-pillar {
    position: relative;
    min-width: 0;
}
.coefito-pillar::before {
    content: "";
    position: absolute;
    top: -20px;
    left: 50%;
    width: 2px;
    height: 20px;
    background: var(--coefito-line);
}
.coefito-sectors {
    position: relative;
    display: grid;
    gap: 9px;
    margin-top: 16px;
    padding-left: 14px;
}
.coefito-sectors::before {
    content: "";
    position: absolute;
    top: -16px;
    bottom: 22px;
    left: 4px;
    width: 2px;
    background: var(--coefito-line);
}
.coefito-sectors .coefito-node::before {
    content: "";
    position: absolute;
    top: 24px;
    left: -11px;
    width: 10px;
    height: 2px;
    background: var(--coefito-line);
}
.coefito-node {
    --coefito-node-color: #0b4f8a;
    position: relative;
    min-width: 0;
    padding: 13px 34px 13px 14px;
    border: 1px solid #d7dee6;
    border-top: 4px solid var(--coefito-node-color);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 18px rgba(16, 24, 40, .06);
}
@supports (color: color-mix(in srgb, #000 50%, #fff)) {
    .coefito-node {
        border-color: color-mix(in srgb, var(--coefito-node-color) 30%, #d7dee6);
        border-top-color: var(--coefito-node-color);
    }
}
.coefito-node h3 {
    margin: 4px 0 7px;
    color: #172033;
    font-size: 13px;
    line-height: 1.3;
}
.coefito-node p {
    margin: 0;
}
.coefito-node small {
    display: block;
    margin-top: 5px;
    color: #607087;
    font-size: 10px;
    font-weight: 700;
}
.coefito-node-type {
    display: block;
    color: var(--coefito-node-color);
    font-size: 9px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
}
.coefito-node-person {
    color: #27364a;
    font-size: 12px;
    font-weight: 900;
}
.coefito-node-edit {
    position: absolute;
    top: 8px;
    right: 8px;
    display: grid;
    place-items: center;
    width: 25px;
    height: 25px;
    border-radius: 8px;
    color: #607087;
    background: #f4f7fa;
    opacity: .34;
    transition: opacity .16s ease, background .16s ease, color .16s ease;
}
.coefito-node-edit svg {
    width: 14px;
    height: 14px;
}
.coefito-node:hover .coefito-node-edit,
.coefito-node-edit:focus-visible {
    color: var(--coefito-node-color);
    background: #eaf0f6;
    opacity: 1;
}
.coefito-node--command {
    width: min(620px, 100%);
    padding: 20px 48px 20px 22px;
    border-width: 1px;
    border-top-width: 6px;
    text-align: center;
    box-shadow: 0 14px 30px rgba(11, 79, 138, .15);
}
.coefito-node--command h3 {
    font-size: 19px;
}
.coefito-node--command .coefito-node-person {
    font-size: 15px;
}
.coefito-node--coordination {
    min-height: 132px;
    padding-top: 17px;
    text-align: center;
    box-shadow: 0 12px 25px rgba(16, 24, 40, .09);
}
.coefito-node--coordination h3 {
    font-size: 15px;
}
.coefito-node--advisor {
    min-height: 122px;
}
.coefito-node--support {
    min-height: 103px;
    padding: 11px 31px 11px 12px;
    border-top-width: 3px;
    box-shadow: none;
}
.coefito-node--support h3 {
    font-size: 11px;
}
.coefito-node--support .coefito-node-person {
    font-size: 11px;
}
.coefito-extras {
    margin-top: 24px;
    padding-top: 18px;
    border-top: 1px dashed #cbd5e1;
}
.coefito-extras-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 10px;
}
.coefito-editor-card {
    scroll-margin-top: 18px;
}
.coefito-color-field input[type="color"] {
    width: 76px;
    min-height: 42px;
    padding: 4px;
}
.coefito-management {
    scroll-margin-top: 18px;
}
.coefito-management summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    cursor: pointer;
    list-style: none;
}
.coefito-management summary::-webkit-details-marker {
    display: none;
}
.coefito-management summary::after {
    content: "+";
    display: grid;
    place-items: center;
    width: 30px;
    height: 30px;
    border-radius: 50%;
    color: #175cd3;
    background: #eff8ff;
    font-size: 20px;
    font-weight: 800;
}
.coefito-management[open] summary::after {
    content: "−";
}
.coefito-management summary span {
    display: grid;
    gap: 3px;
}
.coefito-management summary small {
    color: #667085;
    font-weight: 600;
}
.coefito-management-actions {
    display: flex;
    justify-content: flex-end;
    margin: 18px 0 12px;
}
.coefito-inline-form {
    display: inline-flex;
    margin: 0;
}
@media (max-width: 1260px) {
    .coefito-support-members {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .coefito-advisory-grid {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .coefito-pillars {
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 26px 14px;
    }
    .coefito-pillars::before,
    .coefito-pillar::before {
        display: none;
    }
}
@media (max-width: 760px) {
    .coefito-page-title {
        align-items: flex-start;
    }
    .coefito-org-chart {
        padding: 13px;
        border-radius: 17px;
    }
    .coefito-support-heading {
        display: block;
    }
    .coefito-support-heading h2 {
        margin-top: 4px;
    }
    .coefito-support-members,
    .coefito-advisory-grid,
    .coefito-pillars,
    .coefito-extras-grid {
        grid-template-columns: 1fr;
    }
    .coefito-support-band::after,
    .coefito-command::after,
    .coefito-advisory::after,
    .coefito-sectors::before,
    .coefito-sectors .coefito-node::before {
        display: none;
    }
    .coefito-advisory {
        margin-top: 14px;
    }
    .coefito-operational {
        padding-top: 20px;
    }
    .coefito-pillars {
        gap: 18px;
        padding-top: 0;
    }
    .coefito-sectors {
        padding-left: 0;
    }
    .coefito-node--coordination,
    .coefito-node--advisor,
    .coefito-node--support {
        min-height: 0;
    }
}
