:root {
    font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    color: #172033;
    background: #f5f7fb;
    --bg: #f5f7fb;
    --panel: #ffffff;
    --ink: #172033;
    --muted: #6b7487;
    --line: #e3e8f0;
    --soft: #f7f9fc;
    --accent: #22314d;
    --accent-soft: #eaf0fa;
    --danger: #a73b3b;
    --warning-bg: #fff8e8;
    --warning-line: #ead9a8;
    --success-bg: #edf8ef;
    --success-line: #c9e7cf;
}

* { box-sizing: border-box; }
html { min-height: 100%; }
body { margin: 0; background: var(--bg); color: var(--ink); }
a { color: #294b82; }
button, input, select, textarea { font: inherit; }
code { background: #f0f3f8; padding: 2px 6px; border-radius: 6px; }

.app-shell { min-height: 100vh; display: grid; grid-template-columns: 248px minmax(0, 1fr); }
.sidebar { position: sticky; top: 0; height: 100vh; overflow-y: auto; background: #111a2b; color: white; padding: 24px 16px; display: flex; flex-direction: column; }
.brand { display: grid; gap: 3px; padding: 0 8px 22px; border-bottom: 1px solid rgba(255,255,255,.1); margin-bottom: 18px; }
.brand strong { font-size: 19px; }
.brand span { font-size: 12px; color: #aeb8cc; }
.nav-group { margin-bottom: 18px; }
.nav-title { padding: 4px 10px 7px; font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: #8490a7; }
.nav-link { display: block; padding: 9px 10px; border-radius: 8px; color: #dce3ef; text-decoration: none; font-size: 14px; margin: 1px 0; }
.nav-link:hover { background: rgba(255,255,255,.06); }
.nav-link.active { background: #263553; color: white; font-weight: 650; }
.sidebar-user { margin-top: auto; border-top: 1px solid rgba(255,255,255,.1); padding: 16px 8px 0; display: grid; gap: 5px; }
.sidebar-user span { font-size: 13px; }
.sidebar-user a { color: #aeb8cc; font-size: 12px; }
.app-main { min-width: 0; }
.mobile-top { display: none; }
.container { width: min(1400px, 94%); margin: 34px auto 80px; }

.page-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
.page-head h1 { margin: 0 0 5px; font-size: 30px; line-height: 1.2; }
.page-head p { margin: 0; color: var(--muted); max-width: 820px; }
.page-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.section-head { display: flex; justify-content: space-between; align-items: center; gap: 16px; margin-bottom: 14px; }
.section-head h2 { margin: 0; }

.cards { display: grid; gap: 15px; margin: 0 0 22px; }
.cards-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.cards-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cards article, .panel, .publication, .alert-card, .login-card { background: var(--panel); border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 8px 28px rgba(20, 30, 55, .035); }
.cards article { padding: 20px; }
.cards article > span { color: var(--muted); font-size: 13px; display: block; }
.cards article > strong { font-size: 34px; line-height: 1; display: block; margin: 9px 0 10px; }
.cards article > a, .cards article > small { font-size: 12px; color: var(--muted); }

.panel { padding: 21px; margin-bottom: 18px; overflow-x: auto; }
.panel h2 { margin: 0 0 14px; font-size: 19px; }
.grid-2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.align-start { align-items: start; }
.top-gap { margin-top: 16px; }
.muted { color: var(--muted); }
.danger-text { color: var(--danger); font-weight: 650; display: block; margin-top: 4px; }

button, .button, input, select, textarea { min-height: 42px; border-radius: 9px; border: 1px solid #ccd4e0; padding: 9px 12px; }
input, select, textarea { background: white; color: var(--ink); width: 100%; }
textarea { min-height: 88px; resize: vertical; }
button, .button { width: auto; background: var(--accent); color: white; border-color: var(--accent); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; justify-content: center; font-weight: 600; }
button.secondary, .button.secondary { background: white; color: var(--ink); border-color: #cbd3df; }
button.ghost, .button.ghost { background: transparent; color: var(--muted); border-color: transparent; }
button:hover, .button:hover { filter: brightness(.98); }
label { display: grid; gap: 7px; font-size: 13px; font-weight: 650; }
.check { display: flex; align-items: center; gap: 7px; font-weight: 500; }
.check input { width: auto; min-height: auto; }
.stack-form { display: grid; gap: 13px; }
.form-grid { display: grid; gap: 13px; align-items: end; }
.form-grid-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid-3 { grid-template-columns: 220px minmax(0, 1fr) auto; }
.inline-form { display: flex; gap: 9px; align-items: center; flex-wrap: wrap; }
.inline-form input { flex: 1 1 240px; }
.inline-form select { width: auto; min-width: 150px; }
.filters { display: grid; gap: 10px; grid-template-columns: minmax(260px, 1fr) auto; }
.filters-3 { grid-template-columns: minmax(280px, 1fr) 220px auto; }
.filters-4 { grid-template-columns: minmax(280px, 1fr) 160px 120px 170px auto; }
.button-row { display: flex; gap: 9px; flex-wrap: wrap; }
.source-form { display: grid; gap: 7px; min-width: 180px; }

.alert { padding: 13px 15px; border-radius: 9px; margin-bottom: 16px; }
.alert.error { background: #fff0f0; border: 1px solid #f2caca; }
.alert.success { background: var(--success-bg); border: 1px solid var(--success-line); }
.notice { padding: 15px 17px; border: 1px solid #d9e1ed; border-radius: 12px; background: #f7f9fc; margin: 18px 0; line-height: 1.5; }
.notice-warning { background: var(--warning-bg); border-color: var(--warning-line); }
.notice strong { margin-right: 4px; }

.summary { display: grid; gap: 12px; }
.summary-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.summary div, .summary-list div { background: var(--soft); padding: 13px; border-radius: 9px; }
.summary dt, .summary-list dt { color: var(--muted); font-size: 12px; }
.summary dd, .summary-list dd { margin: 5px 0 0; font-weight: 650; }
.summary-list { display: grid; gap: 9px; margin: 0; }

.table-wrap { overflow-x: auto; }
table { width: 100%; border-collapse: collapse; font-size: 14px; }
th, td { text-align: left; padding: 12px 9px; border-bottom: 1px solid #e8ecf2; vertical-align: top; }
th { color: #5d6679; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; }
td small { display: block; color: var(--muted); margin-top: 4px; line-height: 1.35; }
table.compact th, table.compact td { padding: 10px 7px; }

.badge { display: inline-block; padding: 4px 8px; border-radius: 999px; background: #edf1f7; color: #42506a; font-size: 11px; font-weight: 700; }
.score-pill { display: inline-flex; align-items: center; white-space: nowrap; background: #eef2f8; color: #263a5e; border-radius: 999px; padding: 5px 8px; font-size: 12px; font-weight: 750; }
.rank-list { display: grid; gap: 2px; }
.rank-list > div { display: flex; justify-content: space-between; gap: 18px; padding: 10px 4px; border-bottom: 1px solid #edf0f5; }
.rank-list > div:last-child { border-bottom: 0; }
.empty-state { text-align: center; padding: 26px 12px; color: var(--muted); }
.empty-state strong { color: var(--ink); display: block; margin-bottom: 5px; }
.code-list { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 15px; }

.publication { padding: 21px; margin: 15px 0; }
.publication h2 { font-size: 20px; margin: 15px 0 10px; }
.publication-head, .publication-actions { display: flex; justify-content: space-between; align-items: center; gap: 12px; }
.publication-actions { justify-content: flex-start; margin-top: 16px; flex-wrap: wrap; }
.publication-actions form { display: flex; gap: 8px; }
.publication-text { line-height: 1.6; background: var(--soft); border-radius: 10px; padding: 15px; max-height: 380px; overflow: auto; }

.bar { width: 140px; max-width: 100%; height: 7px; background: #edf1f6; border-radius: 999px; overflow: hidden; }
.bar span { display: block; height: 100%; background: #526b95; border-radius: inherit; }

.trend-bars { height: 290px; display: flex; align-items: stretch; gap: 8px; padding-top: 20px; overflow-x: auto; }
.trend-item { min-width: 42px; flex: 1 0 42px; display: grid; grid-template-rows: 22px 1fr 24px; text-align: center; align-items: end; }
.trend-value { font-size: 11px; color: var(--muted); }
.trend-bar-wrap { height: 220px; display: flex; align-items: flex-end; background: linear-gradient(to top, #f3f6fa 1px, transparent 1px); background-size: 100% 25%; border-bottom: 1px solid #dfe5ee; }
.trend-bar { width: 70%; margin: 0 auto; background: #526b95; border-radius: 5px 5px 0 0; min-height: 3px; }
.trend-item small { font-size: 10px; color: var(--muted); align-self: center; }

.pipeline-board { display: grid; grid-template-columns: repeat(6, minmax(220px, 1fr)); gap: 12px; overflow-x: auto; align-items: start; padding-bottom: 12px; }
.pipeline-column { background: #eef2f7; border-radius: 12px; padding: 10px; min-height: 420px; }
.pipeline-column > header { display: flex; justify-content: space-between; gap: 10px; padding: 5px 5px 12px; font-size: 13px; }
.pipeline-column > header span { color: var(--muted); }
.pipeline-list { display: grid; gap: 9px; }
.pipeline-card { display: grid; gap: 5px; background: white; border: 1px solid #dfe5ee; border-radius: 10px; padding: 12px; color: var(--ink); text-decoration: none; }
.pipeline-card small { color: var(--muted); }
.pipeline-card .score-pill { justify-self: start; margin-top: 3px; }

.alert-list { display: grid; gap: 12px; }
.alert-card { padding: 18px; border-left-width: 4px; }
.alert-card > div:first-child { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.alert-card small { color: var(--muted); margin-left: auto; }
.alert-card p { line-height: 1.55; }
.severity-high, .severity-critical { border-left-color: #a84d4d; }
.severity-medium { border-left-color: #b8842e; }
.severity-info { border-left-color: #4f6e9c; }

.timeline { display: grid; gap: 11px; }
.timeline > div { border-left: 3px solid #d6deeb; padding: 2px 0 2px 14px; }
.timeline > div > span { color: var(--muted); font-size: 12px; display: block; margin-top: 2px; }
.timeline p { margin: 6px 0 0; }

.login-page { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-card { width: min(440px, 100%); padding: 30px; }
.login-card h1 { margin-top: 0; }
.login-card form { display: grid; gap: 16px; }

@media (max-width: 1100px) {
    .app-shell { grid-template-columns: 210px minmax(0,1fr); }
    .cards-4 { grid-template-columns: repeat(2, minmax(0,1fr)); }
    .filters-4 { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 800px) {
    .app-shell { display: block; }
    .sidebar { position: relative; height: auto; display: block; }
    .nav-group { display: inline-block; vertical-align: top; min-width: 145px; margin-right: 12px; }
    .sidebar-user { margin-top: 8px; }
    .grid-2, .form-grid-2, .cards-3, .summary-4 { grid-template-columns: 1fr; }
    .filters-3, .filters-4, .filters { grid-template-columns: 1fr; }
    .page-head { flex-direction: column; }
    .container { width: 92%; margin-top: 24px; }
}

@media (max-width: 520px) {
    .cards-4 { grid-template-columns: 1fr; }
    .form-grid-3 { grid-template-columns: 1fr; }
    .publication-head { align-items: flex-start; flex-direction: column; }
}
.account-inline { display: grid; grid-template-columns: 170px 180px auto auto; gap: 7px; align-items: center; min-width: 520px; }
.account-inline select { min-width: 0; }

/* v0.3 · DataJud / Radar Acadêmico */
.dashboard-zone { margin-bottom: 30px; }
.dashboard-zone > .section-head { margin-bottom: 14px; }
.dashboard-zone > .section-head p { margin: 4px 0 0; }
.mode-fieldset { border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; display: grid; gap: 10px; }
.mode-fieldset legend { padding: 0 7px; font-size: 13px; font-weight: 700; }
.radio-line { display: flex; align-items: center; gap: 9px; font-weight: 600; }
.radio-line input { width: auto; min-height: auto; }
.radio-line small { color: var(--muted); font-weight: 500; }
.radio-line.disabled { opacity: .55; }
button:disabled { opacity: .5; cursor: not-allowed; }
.collection-result .summary dd { overflow-wrap: anywhere; }
.status-success { background: #e7f5ec; color: #2c7045; }
.status-partial { background: #fff3d9; color: #7a5b14; }
.status-error { background: #fde8e8; color: #8d3030; }
.status-running { background: #e8eef8; color: #3e587f; }
.quick-filters { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.quick-filters a, .quick-filters span { border: 1px solid var(--line); border-radius: 999px; padding: 7px 11px; font-size: 12px; text-decoration: none; color: var(--ink); background: white; }
.quick-filters a.active { background: #263553; color: white; border-color: #263553; }
.quick-filters span { color: var(--muted); background: var(--soft); }
/* v1.1.0.6 · filtros avançados responsivos */
.filter-grid-advanced {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(190px, 1fr));
    gap: 10px;
    align-items: end;
}
.filter-grid-advanced > * { min-width: 0; }
.filter-grid-advanced label { min-width: 0; }
.filter-grid-advanced input,
.filter-grid-advanced select,
.filter-grid-advanced .date-field,
.filter-grid-advanced .date-wrapper {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}
.filter-grid-advanced .filter-span-2 { grid-column: span 2; }
.filter-grid-advanced .filter-submit { align-self: end; min-width: 0; }

/* Blindagem cosmética das grades semelhantes auditadas no DJM-104. */
.analytics-filter-grid > *,
.matrix-filter-grid > *,
.trend-filter-grid > * { min-width: 0; }
.analytics-filter-grid input, .analytics-filter-grid select,
.matrix-filter-grid input, .matrix-filter-grid select,
.trend-filter-grid input, .trend-filter-grid select {
    box-sizing: border-box;
    width: 100%;
    max-width: 100%;
    min-width: 0;
}

code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .92em; }
@media (max-width: 520px) {
    .filter-grid-advanced { grid-template-columns: 1fr; }
    .filter-grid-advanced .filter-span-2 { grid-column: span 1; }
    .filter-grid-advanced .filter-submit { width: 100%; }
}

/* v0.4 · Radar Analítico */
.cards-6 { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
.analytics-cards article small { display: block; margin-top: 6px; color: var(--muted); font-size: 11px; line-height: 1.35; }
.analytics-filter-panel { display: grid; gap: 13px; }
.analytics-filter-grid { display: grid; grid-template-columns: minmax(180px,1.4fr) 150px 150px auto auto; gap: 10px; align-items: end; }
.analytics-filter-grid.compact-filter { grid-template-columns: 180px 160px 160px auto; }
.analytics-period-meta { display: flex; flex-wrap: wrap; gap: 8px 18px; color: var(--muted); font-size: 12px; }
.analytics-period-meta strong { color: var(--ink); }
.coverage-meter { height: 10px; border-radius: 999px; background: #edf1f6; overflow: hidden; }
.coverage-meter span { display: block; height: 100%; background: #526b95; border-radius: inherit; }
.analytics-bars { display: grid; gap: 8px; max-height: 520px; overflow: auto; padding-right: 4px; }
.analytics-bar-row { display: grid; grid-template-columns: 58px minmax(120px,1fr) 54px; gap: 10px; align-items: center; font-size: 12px; }
.analytics-bar-row > span { color: var(--muted); }
.analytics-bar-row > div { height: 9px; border-radius: 999px; background: #edf1f6; overflow: hidden; }
.analytics-bar-row i { display: block; height: 100%; background: #526b95; border-radius: inherit; }
.analytics-bar-row strong { text-align: right; }
.rank-list small { display: block; color: var(--muted); margin-top: 3px; font-size: 11px; }
@media (max-width: 1350px) { .cards-6 { grid-template-columns: repeat(3,minmax(0,1fr)); } }
@media (max-width: 900px) { .analytics-filter-grid, .analytics-filter-grid.compact-filter { grid-template-columns: 1fr 1fr; } }
@media (max-width: 700px) { .cards-6 { grid-template-columns: 1fr 1fr; } .analytics-filter-grid, .analytics-filter-grid.compact-filter { grid-template-columns: 1fr; } }
@media (max-width: 520px) { .cards-6 { grid-template-columns: 1fr; } }

/* v0.4.4 · revisão assistida de entidades */
.review-list { display: grid; gap: 14px; }
.review-card { display: grid; grid-template-columns: 115px minmax(0,1fr); gap: 16px 22px; align-items: start; }
.review-score { background: var(--soft); border-radius: 10px; padding: 14px; text-align: center; }
.review-score strong { display: block; font-size: 27px; line-height: 1.05; }
.review-score span { display: block; color: var(--muted); font-size: 11px; margin-top: 5px; }
.review-entities { display: grid; grid-template-columns: minmax(0,1fr) 35px minmax(0,1fr); gap: 10px; align-items: center; }
.review-entities small { display: block; color: var(--muted); margin-top: 4px; }
.review-versus { text-align: center; color: var(--muted); font-size: 22px; }
.review-metrics { grid-column: 1 / -1; display: flex; gap: 8px 18px; flex-wrap: wrap; padding: 10px 12px; background: #f8fafc; border-radius: 9px; color: var(--muted); font-size: 12px; }
.review-metrics strong { color: var(--ink); }
.review-actions { grid-column: 1 / -1; display: grid; grid-template-columns: minmax(260px,1fr) auto; gap: 12px; align-items: end; }
.review-actions > div { display: flex; flex-wrap: wrap; gap: 8px; }
@media (max-width: 800px) { .review-card { grid-template-columns: 1fr; } .review-score { text-align: left; } .review-entities { grid-template-columns: 1fr; } .review-versus { display: none; } .review-actions { grid-template-columns: 1fr; } }

/* v0.4.4.1 · diagnóstico e calibração de similaridade */
.diagnostic-panel .badge { white-space: nowrap; }
.diagnostic-summary { margin-top: 14px; }
.diagnostic-meta, .diagnostic-reasons { display: flex; flex-wrap: wrap; gap: 8px 16px; margin-top: 12px; color: var(--muted); font-size: 12px; }
.diagnostic-meta strong, .diagnostic-reasons strong { color: var(--ink); }
.diagnostic-reasons span { padding: 7px 10px; background: var(--soft); border-radius: 999px; }
.diagnostic-list .review-score small { display: block; margin-top: 7px; color: #9a6700; font-size: 10px; }
.diagnostic-reason { grid-column: 1 / -1; margin: 0; padding: 10px 12px; border-left: 3px solid #d5a12d; background: #fff9e8; border-radius: 8px; font-size: 12px; }
@media (max-width: 700px) { .diagnostic-meta, .diagnostic-reasons { display: grid; gap: 7px; } }

/* v0.5.0 · Inteligência analítica e matriz multidimensional */
.insight-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.insight-card { border: 1px solid var(--line); border-radius: 12px; background: var(--soft); padding: 16px; display: grid; gap: 11px; }
.insight-card h3 { margin: 0; font-size: 17px; line-height: 1.3; }
.insight-card p { margin: 0; line-height: 1.5; }
.insight-head { display: flex; justify-content: space-between; gap: 10px; align-items: center; }
.insight-metrics { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; }
.insight-metrics span { background: white; border: 1px solid #e8ecf2; border-radius: 9px; padding: 9px; }
.insight-metrics small { display: block; color: var(--muted); font-size: 10px; margin-bottom: 4px; }
.insight-metrics strong { font-size: 14px; }
.matrix-filter-panel { overflow: visible; }
.matrix-filter-grid { display: grid; grid-template-columns: repeat(6,minmax(150px,1fr)); gap: 11px; align-items: end; }
.matrix-filter-actions { grid-column: 1 / -1; }
.matrix-wrap { overflow: auto; max-height: 720px; border: 1px solid var(--line); border-radius: 10px; }
.matrix-table { min-width: 920px; }
.matrix-table thead th { position: sticky; top: 0; background: white; z-index: 3; }
.matrix-table tbody th { position: sticky; left: 0; background: white; z-index: 2; min-width: 210px; }
.matrix-cell { min-width: 90px; display: grid; gap: 6px; }
.matrix-cell strong { font-size: 13px; }
.matrix-cell span { display: block; height: 6px; border-radius: 999px; overflow: hidden; background: #edf1f6; }
.matrix-cell i { display: block; height: 100%; border-radius: inherit; background: #526b95; }
@media (max-width: 1180px) { .matrix-filter-grid { grid-template-columns: repeat(3,minmax(160px,1fr)); } }
@media (max-width: 900px) { .insight-grid { grid-template-columns: 1fr; } .insight-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 700px) { .matrix-filter-grid { grid-template-columns: 1fr; } .insight-metrics { grid-template-columns: 1fr 1fr; } }

/* v0.5.1 · Tendências persistentes em múltiplas janelas */
.trend-filter-grid { grid-template-columns: 180px 170px 210px 160px auto auto; }
.trend-window-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }
.trend-window { border: 1px solid var(--line); border-radius: 11px; padding: 13px; display: grid; gap: 5px; background: white; }
.trend-window small { color: var(--muted); }
.trend-window strong { font-size: 13px; line-height: 1.35; }
.trend-window span { font-size: 12px; }
.trend-window em { font-style: normal; font-size: 11px; color: var(--muted); }
.trend-window.is-verified { box-shadow: inset 0 3px 0 #6ca27a; }
.trend-window.is-missing { box-shadow: inset 0 3px 0 #d2a74b; background: #fffaf0; }
.trend-series { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 7px; }
.trend-series span { display: grid; gap: 3px; padding: 8px; border-radius: 8px; background: white; border: 1px solid #e8ecf2; }
.trend-series small { color: var(--muted); font-size: 9px; }
.trend-series strong { font-size: 14px; }
.trend-series em { font-style: normal; color: var(--muted); font-size: 10px; }
.trend-card { align-content: start; }
@media (max-width: 1250px) { .trend-filter-grid { grid-template-columns: repeat(3,minmax(160px,1fr)); } .trend-window-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 800px) { .trend-filter-grid { grid-template-columns: 1fr 1fr; } .trend-series { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 600px) { .trend-filter-grid, .trend-window-grid, .trend-series { grid-template-columns: 1fr; } }

/* v0.5.5.1 · paginação do enriquecimento empresarial */
.pagination{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:18px;flex-wrap:wrap}.pagination>div{display:flex;gap:8px;flex-wrap:wrap}.pagination span{color:var(--muted,#667085);font-size:.95rem}

/* v0.5.8 · gráficos executivos do Radar */
.executive-chart-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; }
.executive-chart-card { border: 1px solid var(--line); border-radius: 12px; background: white; padding: 16px; min-width: 0; }
.executive-chart-card header { margin-bottom: 8px; }
.executive-chart-card h3 { margin: 0; font-size: 16px; line-height: 1.3; }
.executive-chart-card p { margin: 4px 0 0; color: var(--muted); font-size: 12px; line-height: 1.45; }
.radar-chart { min-height: 290px; overflow: hidden; }
.radar-chart-svg { width: 100%; height: auto; display: block; overflow: visible; }
.radar-chart-empty { min-height: 260px; display: grid; place-items: center; color: var(--muted); text-align: center; padding: 20px; }
.chart-grid-line { stroke: #e5eaf1; stroke-width: 1; }
.chart-axis-label, .chart-x-label, .chart-rank-label { fill: #6b7485; font-size: 11px; font-family: inherit; }
.chart-rank-label { fill: #344054; font-size: 11px; font-weight: 650; }
.chart-value-label { fill: #344054; font-size: 11px; font-weight: 700; font-family: inherit; }
.chart-bar-track { fill: #edf1f6; }
.chart-bar { fill: #526b95; }
.chart-bar-0, .chart-series-fill-0, .chart-legend-0 { fill: #2f4a73; background: #2f4a73; }
.chart-bar-1, .chart-series-fill-1, .chart-legend-1 { fill: #b2782b; background: #b2782b; }
.chart-bar-2, .chart-series-fill-2, .chart-legend-2 { fill: #4f769e; background: #4f769e; }
.chart-bar-3, .chart-series-fill-3, .chart-legend-3 { fill: #7b5d8d; background: #7b5d8d; }
.chart-bar-4, .chart-series-fill-4, .chart-legend-4 { fill: #3f7b68; background: #3f7b68; }
.chart-bar-5, .chart-series-fill-5, .chart-legend-5 { fill: #9b5b54; background: #9b5b54; }
.chart-line { fill: none; stroke-width: 3; stroke-linecap: round; stroke-linejoin: round; }
.chart-series-0 { stroke: #2f4a73; }
.chart-series-1 { stroke: #b2782b; }
.chart-series-2 { stroke: #4f769e; }
.chart-series-3 { stroke: #7b5d8d; }
.chart-series-4 { stroke: #3f7b68; }
.chart-series-5 { stroke: #9b5b54; }
.chart-point { stroke: white; stroke-width: 2; }
.radar-chart-legend { display: flex; flex-wrap: wrap; gap: 7px 13px; margin-top: -6px; padding: 0 8px 4px; color: var(--muted); font-size: 11px; }
.radar-chart-legend span { display: inline-flex; gap: 6px; align-items: center; }
.chart-legend-dot { width: 9px; height: 9px; border-radius: 999px; display: inline-block; flex: 0 0 auto; }
@media (max-width: 980px) { .executive-chart-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .executive-chart-card { padding: 12px; } .radar-chart { min-height: 250px; overflow-x: auto; } .radar-chart-svg { min-width: 620px; } }


/* v0.5.8.1 · identidade cromática Ferreira & Fernandes */
:root {
    --ff-navy: #22314d;
    --ff-navy-deep: #111a2b;
    --ff-blue: #4f6e9c;
    --ff-gold: #b8842e;
    --ff-burgundy: #a84d4d;
    --ff-green: #3f7b68;
    --ff-warm: #7b5b47;
    --ff-slate: #98a2b3;
}
.executive-chart-card {
    position: relative;
    overflow: hidden;
    box-shadow: 0 10px 30px rgba(17,26,43,.045);
}
.executive-chart-card::before {
    content: "";
    position: absolute;
    inset: 0 auto 0 0;
    width: 4px;
    background: var(--ff-navy);
}
.executive-chart-card:nth-child(2)::before { background: var(--ff-blue); }
.executive-chart-card:nth-child(3)::before { background: var(--ff-gold); }
.executive-chart-card:nth-child(4)::before { background: var(--ff-burgundy); }
.executive-chart-card h3 { color: var(--ff-navy-deep); }
.chart-grid-line { stroke: #e7ebf2; }
.chart-bar-track { fill: #eef2f7; }
.chart-axis-label, .chart-x-label { fill: #667085; }
.chart-value-label, .chart-rank-label { fill: var(--ff-navy-deep); }
.chart-bar-0, .chart-series-fill-0, .chart-legend-0 { fill: var(--ff-navy); background: var(--ff-navy); }
.chart-bar-1, .chart-series-fill-1, .chart-legend-1 { fill: var(--ff-gold); background: var(--ff-gold); }
.chart-bar-2, .chart-series-fill-2, .chart-legend-2 { fill: var(--ff-blue); background: var(--ff-blue); }
.chart-bar-3, .chart-series-fill-3, .chart-legend-3 { fill: var(--ff-burgundy); background: var(--ff-burgundy); }
.chart-bar-4, .chart-series-fill-4, .chart-legend-4 { fill: var(--ff-green); background: var(--ff-green); }
.chart-bar-5, .chart-series-fill-5, .chart-legend-5 { fill: var(--ff-warm); background: var(--ff-warm); }
.chart-series-0 { stroke: var(--ff-navy); }
.chart-series-1 { stroke: var(--ff-gold); }
.chart-series-2 { stroke: var(--ff-blue); }
.chart-series-3 { stroke: var(--ff-burgundy); }
.chart-series-4 { stroke: var(--ff-green); }
.chart-series-5 { stroke: var(--ff-warm); }
.chart-line { stroke-width: 3.2; }
.chart-point { stroke: #fff; stroke-width: 2.2; }
.radar-chart-legend {
    margin-top: 4px;
    padding: 8px 10px 2px;
    gap: 8px 14px;
    border-top: 1px solid #edf0f5;
}
.radar-chart-legend span {
    padding: 4px 7px;
    border-radius: 999px;
    background: #f7f9fc;
    color: #42506a;
}
.chart-legend-dot { width: 10px; height: 10px; box-shadow: 0 0 0 2px rgba(255,255,255,.8); }

@media print {
    *, *::before, *::after {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
    }
    .executive-chart-card { break-inside: avoid; page-break-inside: avoid; }
    .executive-chart-card::before { display: block !important; }
    .radar-chart-legend span { background: #f7f9fc !important; }
}

/* v0.5.8.2 · lapidação visual, semântica cromática e impressão segura */
:root {
    --ff-petrol: #3f7b68;
    --ff-event-neutral: #617086;
    --ff-rank-blue: #5b7398;
}
.executive-chart-card header { margin-bottom: 12px; }
.executive-chart-card { padding: 18px; }
.executive-chart-card p { max-width: 760px; }
.chart-bar { transition: opacity .16s ease, filter .16s ease; }
.chart-rank-bar { filter: saturate(.92); }
.radar-chart-legend span { border: 1px solid #edf0f5; }
.radar-chart-legend span:hover { border-color: #d9e0ea; background: #f2f5f9; }

@media print {
    /* Evita fragmentação de grid entre páginas, causa da sobreposição observada no PDF. */
    .radar-dual-section {
        display: block !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    .radar-dual-section > .panel {
        display: block !important;
        width: 100% !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
        margin-bottom: 22px !important;
        clear: both !important;
    }
    .radar-dual-section .alert-card,
    .radar-snapshot-panel .insight-card,
    .section-head {
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
    .radar-snapshot-panel {
        display: block !important;
        position: relative !important;
        clear: both !important;
        break-before: page !important;
        page-break-before: always !important;
        margin-top: 0 !important;
        padding-top: 18px !important;
    }
    .radar-snapshot-panel > .section-head {
        position: relative !important;
        z-index: 2 !important;
        margin-top: 0 !important;
        margin-bottom: 14px !important;
    }
    .radar-snapshot-panel .insight-grid {
        position: relative !important;
        clear: both !important;
    }
    .executive-chart-grid {
        display: block !important;
    }
    .executive-chart-card {
        margin-bottom: 16px !important;
        break-inside: avoid !important;
        page-break-inside: avoid !important;
    }
}


/* v0.5.8.3 · correção definitiva de impressão, legenda e ranking */
.chart-bar-track {
    fill: #eef2f7 !important;
}
.print-page-break {
    display: none;
}

@media print {
    /* Remove contextos de overflow que impedem o mecanismo de paginação do navegador. */
    .panel,
    .radar-dual-section,
    .radar-dual-section > .panel,
    .radar-snapshot-panel,
    .alert-list,
    .insight-grid,
    .radar-chart,
    .executive-chart-card {
        overflow: visible !important;
        overflow-x: visible !important;
        overflow-y: visible !important;
        max-height: none !important;
    }

    /* A seção dupla vira fluxo normal no PDF; cada cartão passa a obedecer o break-inside. */
    .radar-dual-section {
        display: block !important;
        position: static !important;
        height: auto !important;
        min-height: 0 !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    .radar-dual-section > .panel {
        display: block !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        width: auto !important;
        height: auto !important;
        min-height: 0 !important;
        margin: 0 0 18px !important;
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    .radar-dual-section .alert-card,
    .radar-snapshot-panel .insight-card {
        position: static !important;
        float: none !important;
        break-inside: avoid-page !important;
        page-break-inside: avoid !important;
    }
    .radar-dual-section::after {
        content: "";
        display: block;
        clear: both;
        height: 0;
    }

    /* Sentinela real de paginação: o snapshot só começa depois de encerrar o fluxo anterior. */
    .print-page-break {
        display: block !important;
        position: static !important;
        width: 100% !important;
        height: 1px !important;
        margin: 0 !important;
        padding: 0 !important;
        clear: both !important;
        break-before: page !important;
        page-break-before: always !important;
    }
    .radar-snapshot-panel {
        display: block !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        break-before: auto !important;
        page-break-before: auto !important;
        margin-top: 0 !important;
        padding-top: 20px !important;
        height: auto !important;
        min-height: 0 !important;
    }
    .radar-snapshot-panel > .section-head {
        display: flex !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        margin: 0 0 16px !important;
        break-inside: avoid-page !important;
        page-break-inside: avoid !important;
    }
    .radar-snapshot-panel .insight-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        position: static !important;
        float: none !important;
        clear: both !important;
        width: 100% !important;
        height: auto !important;
    }

    /* Legenda do longitudinal preservada mesmo quando o driver PDF ignora fundos CSS. */
    .radar-chart-legend {
        display: flex !important;
        flex-wrap: wrap !important;
        align-items: center !important;
        gap: 8px 12px !important;
        width: 100% !important;
        margin: 6px 0 0 !important;
        padding: 9px 8px 2px !important;
        border-top: 1px solid #e3e8ef !important;
    }
    .radar-chart-legend span {
        display: inline-flex !important;
        align-items: center !important;
        gap: 6px !important;
        white-space: nowrap !important;
        padding: 4px 7px !important;
        border: 1px solid #dfe5ed !important;
        border-radius: 999px !important;
        background: #f7f9fc !important;
        color: #42506a !important;
    }
    .radar-chart-legend .chart-legend-dot {
        display: inline-block !important;
        width: 10px !important;
        height: 10px !important;
        min-width: 10px !important;
        border-radius: 999px !important;
        box-sizing: border-box !important;
    }

    /* O trilho do ranking é propositalmente claro; nunca deve competir com a barra preenchida. */
    .chart-bar-track {
        fill: #eef2f7 !important;
        stroke: #e4e9f0 !important;
        stroke-width: .6 !important;
    }
    .chart-value-label,
    .chart-rank-label {
        fill: #111a2b !important;
    }
}

/* v0.5.9 · filtros e interação gráfica do Painel Executivo */
.radar-chart-controls {
    display: grid;
    grid-template-columns: minmax(180px,.9fr) minmax(260px,1.5fr) minmax(260px,1.2fr) auto;
    gap: 12px;
    align-items: end;
    padding: 14px;
    margin: 0 0 8px;
    border: 1px solid #e2e7ef;
    border-radius: 14px;
    background: linear-gradient(180deg,#fbfcfe 0%,#f6f8fb 100%);
}
.radar-filter-field { min-width: 0; }
.radar-filter-field label,
.radar-filter-field legend {
    display: block;
    margin: 0 0 6px;
    color: #42506a;
    font-size: 12px;
    font-weight: 750;
}
.radar-filter-field select {
    width: 100%;
    min-height: 42px;
    border: 1px solid #d8dee8;
    border-radius: 10px;
    background: #fff;
    color: var(--ff-navy-deep);
    padding: 8px 34px 8px 11px;
    font: inherit;
}
.radar-filter-field select:focus,
.radar-segmented button:focus,
.radar-legend-toggle:focus {
    outline: 3px solid rgba(79,110,156,.18);
    outline-offset: 2px;
}
.radar-metric-field {
    margin: 0;
    padding: 0;
    border: 0;
}
.radar-segmented {
    display: inline-grid;
    grid-template-columns: repeat(2,minmax(110px,1fr));
    gap: 4px;
    width: 100%;
    min-height: 42px;
    padding: 4px;
    border: 1px solid #d8dee8;
    border-radius: 11px;
    background: #eef2f7;
}
.radar-segmented button {
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: #5d6879;
    font: inherit;
    font-size: 13px;
    font-weight: 750;
    cursor: pointer;
}
.radar-segmented button.is-active {
    background: var(--ff-navy);
    color: #fff;
    box-shadow: 0 2px 8px rgba(34,49,77,.18);
}
.radar-filter-actions { display: flex; align-items: end; }
.radar-filter-actions .button { white-space: nowrap; min-height: 42px; }
.radar-filter-summary {
    grid-column: 1 / -1;
    min-height: 20px;
    color: #5c6879;
    font-size: 12px;
    font-weight: 650;
}
.radar-filter-governance {
    margin: 0 0 14px;
    padding: 0 2px;
    color: #697386;
    font-size: 12px;
    line-height: 1.5;
}
.radar-filter-governance strong { color: var(--ff-navy); }
.radar-chart { position: relative; }
.radar-chart-tooltip {
    position: absolute;
    z-index: 20;
    display: none;
    min-width: 210px;
    max-width: 290px;
    padding: 11px 12px;
    border: 1px solid rgba(34,49,77,.15);
    border-radius: 11px;
    background: rgba(17,26,43,.97);
    color: #fff;
    box-shadow: 0 12px 30px rgba(17,26,43,.22);
    pointer-events: none;
    font-size: 11px;
}
.radar-chart-tooltip.is-visible { display: block; }
.radar-tooltip-title { display: block; margin-bottom: 2px; font-size: 13px; line-height: 1.3; }
.radar-tooltip-period { display: block; margin-bottom: 8px; color: #c9d2df; }
.radar-chart-tooltip > div { display: flex; justify-content: space-between; gap: 14px; padding: 2px 0; }
.radar-chart-tooltip > div span { color: #c9d2df; }
.radar-chart-tooltip > div strong { text-align: right; color: #fff; font-weight: 700; }
.radar-chart-legend { align-items: center; }
.radar-legend-toggle {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 8px;
    border: 1px solid #dfe5ed;
    border-radius: 999px;
    background: #f7f9fc;
    color: #42506a;
    font: inherit;
    font-size: 11px;
    cursor: pointer;
    transition: opacity .16s ease, border-color .16s ease, background .16s ease;
}
.radar-legend-toggle:hover { border-color: #cfd7e3; background: #f1f4f8; }
.radar-legend-toggle.is-off { opacity: .42; text-decoration: line-through; }
.radar-legend-toggle .chart-legend-dot {
    width: 10px;
    height: 10px;
    flex: 0 0 10px;
    border: 3px solid currentColor;
    border-radius: 999px;
    box-sizing: border-box;
}
.chart-line,
.chart-point { transition: opacity .16s ease, stroke-width .16s ease; }
[data-series-id].is-dimmed { opacity: .13; }
.chart-point:focus { outline: none; stroke: #111a2b; stroke-width: 3.5; }

@media (max-width: 1050px) {
    .radar-chart-controls { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .radar-filter-actions { align-items: end; }
}
@media (max-width: 650px) {
    .radar-chart-controls { grid-template-columns: 1fr; }
    .radar-filter-summary { grid-column: auto; }
    .radar-filter-actions .button { width: 100%; }
    .radar-segmented { grid-template-columns: 1fr 1fr; }
}
@media print {
    .radar-chart-controls,
    .radar-filter-governance,
    .radar-chart-tooltip { display: none !important; }
    .radar-legend-toggle {
        display: inline-flex !important;
        padding: 4px 7px !important;
        border: 1px solid #dfe5ed !important;
        background: #f7f9fc !important;
        color: #42506a !important;
        text-decoration: none !important;
        opacity: 1 !important;
    }
    .radar-legend-toggle.is-off { display: none !important; }
}

/* v0.5.9.1 · correções obrigatórias de interface */
:root {
    --office-navy: #0D1B2A;
    --office-gold: #CAB584;
}

/* 1. Valores dos cards: nunca cortar datas ou números longos. */
.cards article {
    min-width: 0;
    container-type: inline-size;
}
.cards article > strong {
    max-width: 100%;
    font-size: 20px;
    font-size: clamp(20px, 15cqw, 34px);
    line-height: 1.08;
    overflow-wrap: anywhere;
    word-break: normal;
    font-variant-numeric: tabular-nums;
    letter-spacing: -0.02em;
}
.cards-6 article { padding-inline: clamp(14px, 8cqw, 20px); }

/* 2. Navegação mobile: drawer recolhido por padrão. */
.sidebar-mobile-head { position: relative; }
.sidebar-close,
.sidebar-backdrop { display: none; }

@media (max-width: 800px) {
    .app-shell { display: block; min-height: 100dvh; }
    .app-main { min-width: 0; min-height: 100dvh; }

    .mobile-top {
        position: sticky;
        top: 0;
        z-index: 900;
        display: grid;
        grid-template-columns: 44px minmax(0,1fr) auto;
        align-items: center;
        gap: 10px;
        min-height: 64px;
        padding: 9px 14px;
        background: var(--office-navy);
        color: #fff;
        border-bottom: 1px solid rgba(202,181,132,.28);
        box-shadow: 0 5px 18px rgba(13,27,42,.16);
    }
    .mobile-menu-toggle,
    .sidebar-close {
        min-height: 42px;
        min-width: 42px;
        width: 42px;
        padding: 0;
        border: 1px solid rgba(255,255,255,.16);
        border-radius: 9px;
        background: rgba(255,255,255,.06);
        color: #fff;
        box-shadow: none;
    }
    .mobile-menu-toggle {
        display: inline-grid;
        place-content: center;
        gap: 4px;
    }
    .mobile-menu-toggle span {
        display: block;
        width: 19px;
        height: 2px;
        border-radius: 999px;
        background: currentColor;
    }
    .mobile-brand { min-width: 0; display: grid; gap: 1px; }
    .mobile-brand strong { font-size: 15px; line-height: 1.15; }
    .mobile-brand small { color: #b9c2cf; font-size: 10px; }
    .mobile-user {
        max-width: 30vw;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        color: #d8dee8;
        font-size: 11px;
    }

    .sidebar {
        position: fixed;
        inset: 0 auto 0 0;
        z-index: 1100;
        display: flex;
        flex-direction: column;
        width: min(320px, 88vw);
        height: 100dvh;
        padding: 16px 14px 20px;
        overflow-y: auto;
        overscroll-behavior: contain;
        background: var(--office-navy);
        transform: translateX(-104%);
        transition: transform .2s ease;
        box-shadow: 18px 0 38px rgba(0,0,0,.2);
    }
    body.mobile-nav-open { overflow: hidden; }
    body.mobile-nav-open .sidebar { transform: translateX(0); }

    .sidebar-mobile-head {
        display: flex;
        align-items: flex-start;
        gap: 10px;
        margin-bottom: 12px;
        border-bottom: 1px solid rgba(255,255,255,.1);
    }
    .sidebar-mobile-head .brand {
        flex: 1 1 auto;
        min-width: 0;
        margin: 0;
        padding: 6px 4px 16px;
        border-bottom: 0;
    }
    .sidebar-close {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        margin-top: 1px;
        font-size: 28px;
        font-weight: 300;
        line-height: 1;
    }
    .nav-group {
        display: block;
        min-width: 0;
        margin: 0 0 14px;
    }
    .nav-title { padding-inline: 8px; }
    .nav-link { padding: 10px 9px; font-size: 14px; }
    .sidebar-user { margin-top: auto; padding: 16px 8px 0; }

    .sidebar-backdrop {
        position: fixed;
        inset: 0;
        z-index: 1050;
        width: 100%;
        min-height: 100dvh;
        padding: 0;
        border: 0;
        border-radius: 0;
        background: rgba(7,15,26,.52);
        cursor: default;
    }
    body.mobile-nav-open .sidebar-backdrop { display: block; }

    .container {
        width: min(94%, 1000px);
        margin: 20px auto 60px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .sidebar { transition: none; }
}

/* 3. Login com identidade institucional Ferreira & Fernandes. */
.login-page {
    background:
        radial-gradient(circle at 14% 12%, rgba(202,181,132,.13), transparent 30%),
        linear-gradient(145deg, #f7f8fa 0%, #eef2f6 100%);
}
.login-card {
    width: min(520px, 100%);
    padding: clamp(24px, 5vw, 38px);
    border-top: 4px solid var(--office-gold);
    box-shadow: 0 18px 50px rgba(13,27,42,.10);
}
.login-office-brand {
    display: flex;
    justify-content: center;
    margin: 0 0 24px;
}
.login-office-brand img {
    display: block;
    width: min(100%, 390px);
    height: auto;
    object-fit: contain;
}
.login-product {
    margin-bottom: 22px;
    padding-top: 18px;
    border-top: 1px solid #e6e9ee;
    text-align: center;
}
.login-product h1 {
    margin: 0 0 5px;
    color: var(--office-navy);
    font-size: clamp(26px, 6vw, 34px);
}
.login-product p { margin: 0; color: var(--muted); }
.login-card form { text-align: left; }
.login-card button[type="submit"] {
    width: 100%;
    background: var(--office-navy);
    border-color: var(--office-navy);
}
.login-card button[type="submit"]:focus-visible,
.mobile-menu-toggle:focus-visible,
.sidebar-close:focus-visible {
    outline: 3px solid rgba(202,181,132,.55);
    outline-offset: 2px;
}
.login-office-name {
    margin-top: 24px;
    padding-top: 16px;
    border-top: 1px solid #e6e9ee;
    color: #687386;
    font-size: 11px;
    line-height: 1.4;
    text-align: center;
    letter-spacing: .02em;
}

@media (max-width: 420px) {
    .login-page { padding: 12px; }
    .login-card { padding: 22px 18px; }
    .login-office-brand img { width: min(100%, 330px); }
}

@media print {
    .mobile-top,
    .sidebar-backdrop { display: none !important; }
}

/* v0.6.0 · drill-down e trilha auditável de evidência */
.radar-filter-actions {
    gap: 8px;
    flex-wrap: wrap;
}
.radar-drilldown-action[hidden] { display: none !important; }
.chart-rank-bar.is-drillable,
.chart-point.is-drillable { cursor: pointer; }
.chart-rank-bar.is-drillable:focus,
.chart-point.is-drillable:focus {
    outline: none;
    stroke: var(--ff-gold, #B8842E);
    stroke-width: 3;
}
.cards-5 {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.evidence-identity-panel .section-head { align-items: flex-start; }
.evidence-identity-panel h2 { margin-top: 10px; margin-bottom: 4px; }
.evidence-key {
    display: grid;
    gap: 5px;
    margin-top: 12px;
    padding: 12px 14px;
    border: 1px solid #e1e6ee;
    border-radius: 11px;
    background: #f8fafc;
}
.evidence-key small {
    color: #667085;
    font-weight: 700;
}
.evidence-key code {
    overflow-wrap: anywhere;
    color: var(--ff-navy-deep, #111A2B);
    font-size: 12px;
}
.evidence-layer-cards article { min-height: 154px; }
.evidence-layer-cards article a { margin-top: auto; }
.evidence-stack {
    display: grid;
    gap: 14px;
}
.evidence-record {
    padding: 18px;
    border: 1px solid #e1e6ee;
    border-left: 4px solid var(--ff-navy, #22314D);
    border-radius: 12px;
    background: #fbfcfe;
}
.evidence-record h3 { margin: 10px 0 8px; }
.evidence-record p { margin: 0 0 12px; line-height: 1.55; }
.evidence-series {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(145px, 1fr));
    gap: 8px;
    margin: 12px 0;
}
.evidence-series > span {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 3px 10px;
    padding: 10px 11px;
    border: 1px solid #e1e6ee;
    border-radius: 10px;
    background: #fff;
}
.evidence-series small {
    grid-column: 1 / -1;
    color: #667085;
    font-size: 10px;
}
.evidence-series strong {
    color: var(--ff-navy-deep, #111A2B);
    font-size: 18px;
}
.evidence-series em {
    align-self: end;
    color: #5f6b7a;
    font-style: normal;
    font-size: 12px;
    font-weight: 700;
}
.evidence-signal-table td strong,
.evidence-signal-table td small { display: block; }
.evidence-signal-table td small { margin-top: 3px; color: #7a8493; }

@media (max-width: 1250px) {
    .cards-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 850px) {
    .cards-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 560px) {
    .cards-5 { grid-template-columns: 1fr; }
    .evidence-series { grid-template-columns: 1fr; }
}
@media print {
    .radar-drilldown-action,
    .evidence-record .button,
    .evidence-layer-cards article a { display: none !important; }
    .evidence-record,
    .evidence-series > span { break-inside: avoid-page; page-break-inside: avoid; }
}

/* v0.6.1 · comparação temporal expandida */
.comparison-identity-panel h2 { margin: 10px 0 4px; }
.comparison-window-form {
    display: grid;
    grid-template-columns: minmax(0,1fr) auto minmax(0,1fr) auto;
    gap: 14px;
    align-items: end;
}
.comparison-arrow { align-self: center; padding-top: 22px; font-size: 26px; color: var(--muted); }
.comparison-summary-cards article { min-height: 145px; }
.comparison-chart-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }
.comparison-chart { min-height: 300px; }
.comparison-history-table td small { display: block; margin-top: 4px; color: var(--muted); }
.comparison-history-table tr.is-base-window td:first-child { border-left: 4px solid #B8842E; padding-left: 12px; }
.comparison-history-table tr.is-target-window td:first-child { border-left: 4px solid #22314D; padding-left: 12px; }
.comparison-score-history { display: grid; grid-template-columns: repeat(auto-fit,minmax(220px,1fr)); gap: 12px; }
.comparison-score-history article { border: 1px solid #e1e6ee; border-radius: 14px; padding: 16px; background: #fff; display: grid; gap: 5px; }
.comparison-score-history article span,
.comparison-score-history article small { color: var(--muted); }
.comparison-score-history article strong { font-size: 24px; color: #111A2B; }
.radar-filter-actions { flex-wrap: wrap; }
@media (max-width: 900px) {
    .comparison-window-form { grid-template-columns: 1fr; }
    .comparison-arrow { display: none; }
    .comparison-chart-grid { grid-template-columns: 1fr; }
}
@media print {
    .comparison-selector-panel { display: none !important; }
    .comparison-chart-grid { grid-template-columns: 1fr !important; }
    .comparison-chart-panel,
    .comparison-history-table,
    .comparison-score-history article { break-inside: avoid-page; page-break-inside: avoid; }
}

/* v0.6.2 · qualidade e rastreabilidade */
.executive-kpi-trace article {
    display: flex;
    flex-direction: column;
    min-height: 164px;
}
.executive-kpi-trace .kpi-trace-link {
    margin-top: auto;
    padding-top: 10px;
    color: var(--office-navy, #0D1B2A);
    font-weight: 700;
    text-decoration: none;
}
.executive-kpi-trace .kpi-trace-link:hover { text-decoration: underline; }

.quality-overview .section-head { align-items: center; }
.quality-kpi-cards article { min-height: 152px; }
.quality-status {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    max-width: 100%;
    padding: 5px 9px;
    border: 1px solid #dfe5ed;
    border-radius: 999px;
    background: #f7f9fc;
    color: #4a5568;
    font-size: 11px;
    font-weight: 800;
    line-height: 1.2;
    white-space: nowrap;
}
.quality-status-ok {
    border-color: #b9d8ca;
    background: #edf7f2;
    color: #2f6953;
}
.quality-status-warning {
    border-color: #e7d7aa;
    background: #fbf6e9;
    color: #806326;
}
.quality-status-critical {
    border-color: #e5bbbb;
    background: #fbefef;
    color: #934040;
}
.quality-alert-list {
    display: grid;
    gap: 10px;
}
.quality-alert-item {
    display: grid;
    grid-template-columns: auto minmax(0,1fr);
    gap: 12px;
    align-items: start;
    padding: 14px 16px;
    border: 1px solid #e1e6ee;
    border-left: 4px solid #8390a3;
    border-radius: 12px;
    background: #fbfcfe;
}
.quality-alert-item.warning { border-left-color: #B8842E; }
.quality-alert-item.critical { border-left-color: #A94D4D; }
.quality-alert-item.info { border-left-color: #3F856F; }
.quality-alert-item strong { display: block; margin-bottom: 4px; color: #111A2B; }
.quality-alert-item p { margin: 0; color: #5f6b7a; line-height: 1.5; }
.quality-alert-item small { display: block; margin-top: 5px; color: #8a94a3; font-size: 10px; }

.quality-chain {
    display: grid;
    gap: 12px;
}
.quality-chain > article {
    display: grid;
    grid-template-columns: 38px minmax(180px, .8fr) minmax(0, 1.7fr);
    gap: 14px;
    align-items: start;
    padding: 16px;
    border: 1px solid #e1e6ee;
    border-radius: 14px;
    background: #fff;
}
.quality-step {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: var(--office-navy, #0D1B2A);
    color: #fff;
    font-weight: 800;
    font-size: 13px;
}
.quality-chain article > div > strong { display: block; margin: 2px 0 5px; color: #111A2B; }
.quality-chain article > div > p { margin: 0; color: #667085; line-height: 1.45; }
.quality-chain dl {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 8px 14px;
    margin: 0;
}
.quality-chain dl > div {
    min-width: 0;
    padding: 8px 10px;
    border-radius: 10px;
    background: #f7f9fc;
}
.quality-chain dt { color: #7a8493; font-size: 10px; font-weight: 700; }
.quality-chain dd { margin: 3px 0 0; color: #1b2536; font-size: 12px; font-weight: 700; overflow-wrap: anywhere; }
.quality-chain code { overflow-wrap: anywhere; }

.quality-window-table th small,
.quality-window-table td small,
.comparison-history-table th small {
    display: block;
    margin-top: 3px;
    color: var(--muted);
    font-size: 9px;
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
}
.quality-window-table td { vertical-align: top; }
.quality-window-table td strong { display: block; }
.quality-method-grid {
    display: grid;
    grid-template-columns: repeat(3,minmax(0,1fr));
    gap: 12px;
}
.quality-method-grid article {
    display: grid;
    gap: 5px;
    padding: 16px;
    border: 1px solid #e1e6ee;
    border-radius: 14px;
    background: #fff;
}
.quality-method-grid span,
.quality-method-grid small { color: var(--muted); }
.quality-method-grid strong { color: #111A2B; font-size: 22px; }
.evidence-provenance-meta {
    margin-top: 12px;
    padding-top: 10px;
    border-top: 1px solid #e7ebf1;
}

@media (max-width: 950px) {
    .quality-chain > article { grid-template-columns: 38px minmax(0,1fr); }
    .quality-chain dl { grid-column: 2; }
    .quality-method-grid { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .quality-chain > article { grid-template-columns: 1fr; }
    .quality-chain dl { grid-column: 1; grid-template-columns: 1fr; }
    .quality-alert-item { grid-template-columns: 1fr; }
}
@media print {
    .kpi-trace-link { display: none !important; }
    .quality-chain > article,
    .quality-alert-item,
    .quality-method-grid article { break-inside: avoid-page; page-break-inside: avoid; }
    .quality-status { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}

/* v0.7.0 · diagnóstico longitudinal avançado e correção de rastreabilidade */
.quality-metric-note {
    grid-column: 2 / -1;
    width: 100%;
    display: block;
    margin: 2px 0 0;
    padding: 12px 14px;
    border: 1px solid #e4e8ef;
    border-radius: 10px;
    background: #f8fafc;
    color: #5f6b7a;
    line-height: 1.55;
    white-space: normal;
    overflow-wrap: normal;
    word-break: normal;
}
.quality-metric-note strong { color: #111A2B; }

.trend-advanced-summary-panel .cards { margin-top: 4px; }
.trend-advanced-meta {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 8px;
    margin: 12px 0;
}
.trend-advanced-meta > span {
    min-width: 0;
    display: grid;
    gap: 3px;
    padding: 9px 10px;
    border: 1px solid #e3e8ef;
    border-radius: 10px;
    background: #f8fafc;
}
.trend-advanced-meta > span small {
    color: #7a8493;
    font-size: 9px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.trend-advanced-meta > span strong {
    color: #172033;
    font-size: 12px;
    overflow-wrap: anywhere;
}
.trend-advanced-meta > span.is-positive {
    grid-column: 1 / -1;
    display: block;
    padding: 7px 10px;
    border-color: #cfe3db;
    background: #eef7f3;
    color: #2f6e5d;
    font-size: 11px;
    font-weight: 800;
}

@media (max-width: 1200px) {
    .trend-advanced-meta { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 700px) {
    .trend-advanced-meta { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 950px) {
    .quality-metric-note { grid-column: 2; }
}
@media (max-width: 560px) {
    .quality-metric-note { grid-column: 1; }
}
@media print {
    .quality-metric-note {
        grid-column: 2 / -1 !important;
        width: auto !important;
        display: block !important;
        white-space: normal !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
    .trend-advanced-meta {
        grid-template-columns: repeat(3, minmax(0, 1fr));
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
}

/* v0.7.1 · calibração longitudinal e histórico de maturidade */
.trend-advanced-meta em {
    display: block;
    margin-top: 2px;
    color: #667085;
    font-size: 11px;
    font-style: normal;
}
.maturity-mini-history {
    border: 1px solid #dde3ec;
    border-radius: 14px;
    padding: 14px 16px;
    background: #f8fafc;
}
.maturity-mini-history > div {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 10px 0;
}
.maturity-mini-history .badge small {
    display: block;
    margin-top: 2px;
    font-weight: 500;
    opacity: .72;
}
.maturity-timeline {
    display: grid;
    gap: 12px;
}
.maturity-history-entry {
    border: 1px solid #dde3ec;
    border-left: 4px solid #5b7398;
    border-radius: 14px;
    padding: 16px;
    background: #fff;
    break-inside: avoid;
}
.maturity-history-entry.change-up { border-left-color: #3f7b68; }
.maturity-history-entry.change-down { border-left-color: #a84d4d; }
.maturity-history-entry.change-baseline { border-left-color: #b8842e; }
.maturity-history-entry.change-state_change { border-left-color: #5b7398; }
@media print {
    .maturity-history-entry,
    .maturity-mini-history {
        break-inside: avoid;
        page-break-inside: avoid;
    }
}

/* v0.7.1 · ações contextuais e histórico de maturidade */
.evidence-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:flex-end}
@media print{.evidence-actions{display:none!important}}

/* v0.7.2 · Curadoria acadêmica */
.curation-filter-grid { grid-template-columns: repeat(4,minmax(0,1fr)); }
.curation-topic-list { display: grid; gap: 14px; }
.curation-topic-card {
    border: 1px solid #dde3ec;
    border-left: 4px solid #8d9bb0;
    border-radius: 16px;
    padding: 18px;
    background: #fff;
    break-inside: avoid;
}
.curation-topic-card.is-favorite { border-left-color: var(--office-gold,#CAB584); }
.curation-topic-card.is-watching { box-shadow: inset 0 0 0 1px #cfe3db; }
.curation-topic-card.is-archived { opacity: .74; background: #f7f8fa; }
.curation-topic-head { display:flex; align-items:flex-start; justify-content:space-between; gap:16px; }
.curation-topic-head > div { min-width:0; }
.curation-topic-head strong { display:block; margin:8px 0 3px; color:#111A2B; font-size:18px; }
.curation-topic-head small { color:var(--muted); }
.curation-badge-favorite { border-color:#dfca91 !important; background:#fff9e8 !important; color:#775a12 !important; }
.curation-badge-watch { border-color:#bed8cf !important; background:#eff8f4 !important; color:#2f6e5d !important; }
.curation-state-strip { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.curation-inline-form { margin:0; }
.curation-inline-form button.is-active { box-shadow: inset 0 0 0 2px rgba(13,27,42,.12); }
.curation-detail-panel .page-actions { align-items:flex-start; }
.curation-note-compose { padding:16px; border:1px solid #dde3ec; border-radius:14px; background:#f8fafc; }
.curation-note-compose h3,.curation-notes h3 { margin-top:0; }
.curation-note-compose textarea,
.curation-observatory-note textarea { width:100%; resize:vertical; }
.curation-notes { display:grid; gap:10px; }
.curation-note { border:1px solid #e2e7ee; border-radius:12px; padding:14px 16px; background:#fff; }
.curation-note > div { display:flex; justify-content:space-between; gap:12px; }
.curation-note > div small { color:var(--muted); }
.curation-note p { margin:8px 0 0; white-space:normal; overflow-wrap:anywhere; line-height:1.5; }
.curation-observatory-box { display:grid; gap:12px; padding:14px 16px; border:1px solid #dde3ec; border-radius:14px; background:#f8fafc; }
.curation-observatory-box > div:first-child { display:grid; gap:3px; }
.curation-observatory-box > div:first-child small { color:var(--muted); }
.curation-observatory-note { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:end; gap:8px; }
@media (max-width: 1000px) { .curation-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media (max-width: 650px) {
    .curation-filter-grid { grid-template-columns:1fr; }
    .curation-topic-head { display:grid; }
    .curation-observatory-note { grid-template-columns:1fr; }
}
@media print {
    .curation-inline-form,.curation-note-compose,.curation-observatory-note,.curation-topic-head .button { display:none !important; }
    .curation-topic-card,.curation-note,.curation-observatory-box { break-inside:avoid-page; page-break-inside:avoid; }
}

/* v0.8.0 · Relatórios executivos */
.executive-report-filter { overflow: visible; }
.executive-report-filter-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
    align-items: end;
}
.executive-report-filter-grid label small {
    color: var(--muted);
    font-size: 10px;
    font-weight: 500;
    line-height: 1.35;
}
.executive-report-cover {
    display: grid;
    grid-template-columns: minmax(220px,300px) minmax(0,1fr);
    gap: 22px 28px;
    align-items: center;
    margin-bottom: 20px;
    padding: 24px 28px;
    border: 1px solid #e0e5ec;
    border-top: 4px solid var(--office-gold,#CAB584);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 8px 28px rgba(20,30,55,.035);
}
.executive-report-cover img {
    width: 100%;
    max-width: 290px;
    height: auto;
    display: block;
}
.executive-report-cover h2 {
    margin: 12px 0 5px;
    color: #111A2B;
    font-size: 28px;
}
.executive-report-cover p { margin: 0; color: var(--muted); }
.executive-report-cover dl {
    grid-column: 1 / -1;
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 10px;
    margin: 0;
    padding-top: 15px;
    border-top: 1px solid #e7ebf1;
}
.executive-report-cover dl > div,
.executive-report-provenance dl > div {
    min-width: 0;
    padding: 10px 12px;
    border-radius: 10px;
    background: #f7f9fc;
}
.executive-report-cover dt,
.executive-report-provenance dt {
    color: #7a8493;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.executive-report-cover dd,
.executive-report-provenance dd {
    margin: 4px 0 0;
    color: #172033;
    font-size: 12px;
    font-weight: 700;
    overflow-wrap: anywhere;
}
.executive-report-kpis article { min-height: 150px; }
.executive-report-findings {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 12px;
}
.executive-report-findings article {
    padding: 15px 16px;
    border: 1px solid #e1e6ee;
    border-left: 4px solid #5b7398;
    border-radius: 12px;
    background: #fbfcfe;
}
.executive-report-findings article strong { color: #111A2B; }
.executive-report-findings article p { margin: 7px 0 0; color: #5f6b7a; line-height: 1.55; }
.executive-report-table td strong { display: block; }
.executive-report-table a { font-size: 10px; }
.executive-report-maturity-grid {
    display: grid;
    grid-template-columns: repeat(4,minmax(0,1fr));
    gap: 12px;
}
.executive-report-maturity-grid article {
    display: grid;
    gap: 5px;
    min-width: 0;
    padding: 15px;
    border: 1px solid #e1e6ee;
    border-left: 4px solid #b8842e;
    border-radius: 12px;
    background: #fff;
}
.executive-report-maturity-grid article strong { color: #111A2B; overflow-wrap: anywhere; }
.executive-report-maturity-grid article small { color: var(--muted); }
.executive-report-maturity-grid article em { color: #536178; font-size: 11px; font-style: normal; }
.executive-report-provenance dl {
    display: grid;
    grid-template-columns: repeat(2,minmax(0,1fr));
    gap: 10px;
    margin: 0;
}
.executive-report-curation {
    margin-top: 16px;
    padding-top: 14px;
    border-top: 1px solid #e6eaf0;
}
.executive-report-curation blockquote {
    margin: 10px 0;
    padding: 12px 14px;
    border-left: 3px solid var(--office-gold,#CAB584);
    border-radius: 8px;
    background: #faf8f2;
}
.executive-report-curation blockquote p { margin: 0; line-height: 1.5; }
.executive-report-curation blockquote footer { margin-top: 6px; color: var(--muted); font-size: 10px; }
.executive-report-governance { border-color: #e6d8a8; background: #fbf6e9; }

@media (max-width: 1150px) {
    .executive-report-filter-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .executive-report-cover dl { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .executive-report-maturity-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    .executive-report-filter-grid,
    .executive-report-findings,
    .executive-report-provenance dl,
    .executive-report-maturity-grid { grid-template-columns: 1fr; }
    .executive-report-cover { grid-template-columns: 1fr; padding: 20px; }
    .executive-report-cover dl { grid-template-columns: 1fr; }
}
@media print {
    body.executive-report-body { background: #fff !important; }
    body.executive-report-body .sidebar,
    body.executive-report-body .mobile-top,
    body.executive-report-body .sidebar-backdrop,
    body.executive-report-body .no-print,
    body.executive-report-body > .no-print { display: none !important; }
    body.executive-report-body .app-shell { display: block !important; min-height: 0 !important; }
    body.executive-report-body .app-main { display: block !important; }
    body.executive-report-body .container {
        width: 100% !important;
        max-width: none !important;
        margin: 0 !important;
        padding: 0 !important;
    }
    body.executive-report-body .page-head { margin: 0 0 18px !important; }
    body.executive-report-body .page-head .page-actions { display: none !important; }
    .executive-report-cover,
    .executive-report-findings article,
    .executive-report-maturity-grid article,
    .executive-report-theme,
    .executive-report-provenance dl > div {
        break-inside: avoid-page;
        page-break-inside: avoid;
    }
    .executive-report-cover {
        box-shadow: none !important;
        grid-template-columns: 220px minmax(0,1fr) !important;
    }
    .executive-report-cover dl { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
    .executive-report-findings { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    .executive-report-maturity-grid { grid-template-columns: repeat(4,minmax(0,1fr)) !important; }
    .executive-report-provenance dl { grid-template-columns: repeat(2,minmax(0,1fr)) !important; }
    .executive-report-table { font-size: 11px; }
    .executive-report-table th,
    .executive-report-table td { padding: 8px 6px; }
    .executive-report-operational-exports { display: none !important; }
}

/* v0.8.1 · Alertas internos e refinamento do relatório */
.executive-report-cover dd.report-reference {
    white-space: nowrap;
    overflow-wrap: normal;
    word-break: normal;
    letter-spacing: -.02em;
    font-size: clamp(9px, .9vw, 11px);
}
.academic-alert-governance { border-color: #d8c796; background: #fbf7ec; }
.academic-alert-kpis article { min-height: 132px; }
.academic-alert-filter { grid-template-columns: repeat(4,minmax(0,1fr)); }
.academic-alert-card { position: relative; overflow: visible; }
.academic-alert-card > div:first-child strong { flex-basis: 100%; font-size: 16px; color: #111A2B; }
.academic-alert-card > div:first-child small { margin-left: 0; }
.academic-alert-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px 16px;
    padding: 10px 12px;
    border: 1px solid #e6eaf0;
    border-radius: 10px;
    background: #fafbfd;
    color: #5f6b7a;
    font-size: 11px;
}
.academic-alert-meta b { color: #27364c; }
.academic-alert-watch-badge { border-color: #d8c796; background: #fbf4dc; color: #72551d; }
@media (max-width: 950px) {
    .academic-alert-filter { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 650px) {
    .academic-alert-filter { grid-template-columns: 1fr; }
}
@media print {
    .executive-report-cover dd.report-reference {
        white-space: nowrap !important;
        overflow-wrap: normal !important;
        word-break: normal !important;
        font-size: 9px !important;
        letter-spacing: -.03em !important;
    }
    .academic-alert-card { break-inside: avoid-page; page-break-inside: avoid; }
}

/* v0.8.2 · Usabilidade, paginação e performance */
.pagination-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 14px 0 22px;
    padding: 10px 12px;
    border: 1px solid var(--line);
    border-radius: 12px;
    background: #fff;
    color: var(--muted);
    font-size: 12px;
}
.pagination-bar > div { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.pagination-current { padding: 0 4px; color: #3d4960; font-weight: 650; }
.section-toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin: 0 0 12px;
    color: var(--muted);
    font-size: 12px;
}
.deferred-section-placeholder {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 16px;
    border: 1px dashed #cfd7e3;
    border-radius: 12px;
    background: #f8fafc;
}
.deferred-section-placeholder strong { color: #1b263b; }
.deferred-section-placeholder p { margin: 4px 0 0; color: var(--muted); line-height: 1.5; }
.radar-chart[aria-busy="true"] {
    position: relative;
    min-height: 280px;
    background: linear-gradient(90deg,#f7f9fc 20%,#eef2f7 40%,#f7f9fc 60%);
    background-size: 240% 100%;
    animation: radar-chart-loading 1.2s ease-in-out infinite;
    border-radius: 10px;
}
.radar-chart[aria-busy="true"]::after {
    content: "Preparando gráfico…";
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    color: #7d8797;
    font-size: 12px;
}
@keyframes radar-chart-loading { from { background-position: 100% 0; } to { background-position: -100% 0; } }
@media (prefers-reduced-motion: reduce) {
    .radar-chart[aria-busy="true"] { animation: none; }
}
@media (max-width: 700px) {
    .pagination-bar,
    .deferred-section-placeholder,
    .section-toolbar { align-items: stretch; flex-direction: column; }
}
@media print {
    .deferred-panel { display: none !important; }
    .pagination-bar,
    .section-toolbar { display: none !important; }

    /* O bloco temático pode fluir entre páginas; seus elementos internos continuam protegidos. */
    body.executive-report-body .executive-report-theme {
        break-inside: auto !important;
        page-break-inside: auto !important;
    }
    body.executive-report-body .executive-report-theme > .section-head,
    body.executive-report-body .executive-report-theme .cards article,
    body.executive-report-body .executive-report-theme .notice,
    body.executive-report-body .executive-report-theme .executive-report-curation,
    body.executive-report-body .executive-report-theme table tr {
        break-inside: avoid-page !important;
        page-break-inside: avoid !important;
    }
}

/* v0.8.2 · ajustes de grade para filtros paginados */
.academic-alert-filter,
.curation-filter-grid { grid-template-columns: repeat(5,minmax(0,1fr)); }
@media (max-width: 1180px) {
    .academic-alert-filter,
    .curation-filter-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 760px) {
    .academic-alert-filter,
    .curation-filter-grid { grid-template-columns: 1fr; }
}

/* DJEN Monitor v0.9.0 · diagnóstico e backup */
.backup-hero .inline-actions,.inline-actions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:16px}
.backup-status-cards article>strong{font-size:24px}
.health-alerts{display:grid;gap:12px}
.health-alert{border:1px solid var(--border,#dce2eb);border-left:5px solid #7a8798;border-radius:14px;padding:16px 18px;background:#fff}
.health-alert p{margin:6px 0 0;color:var(--muted,#667085)}
.health-alert.warning{border-left-color:#c48a25;background:#fffaf0}
.health-alert.critical{border-left-color:#b94a48;background:#fff7f7}
.health-alert.info{border-left-color:#657da5;background:#f7f9fc}
.health-extensions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.badge-success{background:#e8f5ec!important;color:#27623a!important}
.badge-danger{background:#fdecec!important;color:#8c2f2f!important}
.health-grid article>strong{font-size:18px;overflow-wrap:anywhere}
@media print{
  .backup-hero .inline-actions,.inline-actions,.page-actions{display:none!important}
  .health-alert,.quality-method-grid article{break-inside:avoid}
}
.alert.danger,.alert.error{background:#fff0f0;border:1px solid #f2caca}
.alert.warning{background:#fff8e8;border:1px solid #ead4a1}

/* DJEN Monitor v0.9.0.1 · backup retomável */
.backup-progress-track{height:18px;background:#e9edf3;border:1px solid var(--border,#dce2eb);border-radius:999px;overflow:hidden;margin:18px 0 22px}
.backup-progress-bar{height:100%;min-width:0;background:linear-gradient(90deg,#243858,#c39a3a);transition:width .25s ease}
.backup-progress-cards article>strong{font-size:24px;overflow-wrap:anywhere}
.backup-progress-actions{margin-top:22px}
.backup-progress-actions form{margin:0}
@media print{.backup-progress-actions{display:none!important}}

/* v0.9.1 · Prontidão para v1.0 */
.ready-meta-grid {
    display: grid;
    grid-template-columns: repeat(4, minmax(0,1fr));
    gap: 12px;
    margin-top: 16px;
}
.ready-meta-grid > div {
    border: 1px solid var(--border, #dce3ea);
    border-radius: 12px;
    padding: 14px 16px;
    background: #f8fafc;
    min-width: 0;
}
.ready-meta-grid span { display:block; color:#667085; font-size:12px; text-transform:uppercase; letter-spacing:.03em; margin-bottom:5px; }
.ready-meta-grid strong,.ready-meta-grid code { display:block; overflow-wrap:anywhere; }
.ready-group + .ready-group { margin-top: 24px; }
.ready-group h3 { margin: 0 0 12px; }
.ready-check-list { display:grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap:12px; }
.ready-check { border:1px solid #dce3ea; border-left-width:4px; border-radius:12px; padding:14px 16px; background:#fff; min-width:0; }
.ready-check p { margin:8px 0 0; color:#667085; line-height:1.45; overflow-wrap:anywhere; }
.ready-check-head { display:flex; justify-content:space-between; gap:12px; align-items:flex-start; }
.ready-check.ready-pass { border-left-color:#5f9f7a; }
.ready-check.ready-warning { border-left-color:#c9962e; background:#fffbf2; }
.ready-check.ready-blocker { border-left-color:#b54b4b; background:#fff6f6; }
.ready-check.ready-info { border-left-color:#6882a8; background:#f7f9fc; }
@media (max-width: 980px) {
    .ready-meta-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ready-check-list { grid-template-columns: 1fr; }
}
@media (max-width: 560px) {
    .ready-meta-grid { grid-template-columns: 1fr; }
}
@media print {
    .ready-meta-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .ready-check-list { grid-template-columns: 1fr 1fr; }
    .ready-check { break-inside: avoid; page-break-inside: avoid; }
}

/* v0.9.2 · Higiene e recuperação da fila DJEN */
.hygiene-kpis article > strong { font-size: 28px; }
.hygiene-class-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 10px;
}
.hygiene-class-grid > div {
    border: 1px solid var(--border,#dce3ea);
    border-radius: 12px;
    padding: 12px 14px;
    background: #f8fafc;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
}
.hygiene-class-grid span { color: var(--muted,#667085); font-size: 12px; }
.hygiene-class-grid strong { font-size: 20px; color: #172033; }
.hygiene-filter-grid { align-items: end; }
.hygiene-error-list { display: grid; gap: 16px; margin-top: 18px; }
.hygiene-error-card {
    border: 1px solid var(--border,#dce3ea);
    border-left: 4px solid #c9962e;
    border-radius: 14px;
    padding: 16px 18px;
    background: #fff;
    min-width: 0;
}
.hygiene-error-card h3 { margin: 4px 0 0; font-size: 18px; }
.hygiene-error-card .eyebrow { color: #7b8798; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.hygiene-evidence-grid {
    display: grid;
    grid-template-columns: repeat(6,minmax(0,1fr));
    gap: 8px;
    margin: 14px 0;
}
.hygiene-evidence-grid > div {
    border: 1px solid #e4e8ee;
    background: #fafbfd;
    border-radius: 10px;
    padding: 10px 12px;
    min-width: 0;
}
.hygiene-evidence-grid span { display:block; color:#7b8798; font-size:10px; text-transform:uppercase; letter-spacing:.03em; }
.hygiene-evidence-grid strong { display:block; margin-top:4px; font-size:13px; overflow-wrap:anywhere; }
.hygiene-diagnosis { margin: 0 0 12px; }
.hygiene-error-detail { margin-top: 10px; }
.hygiene-error-detail summary { cursor: pointer; color: #33445d; font-weight: 650; }
.hygiene-error-detail pre {
    margin: 10px 0 0;
    white-space: pre-wrap;
    overflow-wrap: anywhere;
    max-height: 280px;
    overflow: auto;
    padding: 12px;
    border: 1px solid #e4e8ee;
    border-radius: 10px;
    background: #f7f9fc;
    font-size: 11px;
}
.hygiene-treatment-note {
    margin-top: 12px;
    padding: 10px 12px;
    border-left: 3px solid #6882a8;
    background: #f7f9fc;
    color: #4d5a6d;
    font-size: 12px;
}
.hygiene-actions { display:flex; gap:8px; flex-wrap:wrap; margin-top:14px; align-items:center; }
.hygiene-actions form { margin:0; }
@media (max-width: 1150px) {
    .hygiene-class-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .hygiene-evidence-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}
@media (max-width: 700px) {
    .hygiene-class-grid,
    .hygiene-evidence-grid { grid-template-columns: 1fr; }
    .hygiene-actions { align-items:stretch; flex-direction:column; }
    .hygiene-actions form,.hygiene-actions button { width:100%; }
}
@media print {
    .hygiene-actions,.hygiene-filter-grid,.hygiene-error-detail { display:none !important; }
    .hygiene-error-card { break-inside: avoid-page; page-break-inside: avoid; }
}

/* v1.1.0 · Carteira e Controladoria */
.cards-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
.stack { display: grid; gap: 10px; }
.subcard { border: 1px solid var(--line); border-radius: 10px; padding: 12px; background: var(--soft); }
.subcard strong, .subcard small { display: block; }
.subcard small { color: var(--muted); margin-top: 3px; }
.subcard p { margin: 7px 0 0; }
.client-filters { grid-template-columns: minmax(260px, 1fr) 180px 220px auto; }
.client-form { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.client-form .client-notes { grid-column: span 3; }
.case-form { grid-template-columns: 2fr 1fr 1fr 1fr 1fr auto; }
.check-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 9px; }
.mapping-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 16px; }
.pagination { display: flex; justify-content: center; align-items: center; gap: 12px; margin-top: 18px; }
.triage-filters { display: grid; grid-template-columns: minmax(260px, 1fr) 170px 210px 150px 150px auto auto auto auto; gap: 9px; align-items: end; }
.triage-table-panel { overflow: visible; }
.table-sticky { max-height: 70vh; overflow: auto; border: 1px solid var(--line); border-radius: 10px; }
.table-sticky thead th { position: sticky; top: 0; z-index: 3; background: #f7f9fc; box-shadow: 0 1px 0 var(--line); }
.triage-table tbody tr:nth-child(even) { background: #fbfcfe; }
.triage-table tbody tr:hover { background: #f5f8fc; }
.triage-table td:last-child { min-width: 380px; }
.triage-actions { text-align: right; }
.triage-inline-form { display: grid; grid-template-columns: minmax(120px, 1fr) 145px minmax(115px, .8fr) auto; gap: 6px; margin-top: 7px; }
.triage-inline-form select, .triage-inline-form input, .triage-inline-form button { min-height: 36px; padding: 6px 8px; font-size: 12px; }
.deadline-pill { display: inline-flex; align-items: center; border-radius: 999px; padding: 5px 8px; font-size: 11px; font-weight: 750; white-space: nowrap; }
.deadline-none { background: #eef1f6; color: #6b7487; }
.deadline-ok { background: #e6f5ea; color: #1e5c33; }
.deadline-warn { background: #fff4db; color: #7a5a10; }
.deadline-danger { background: #fdecec; color: #8a2b2b; }
.publication-detail-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.deadline-suggestion { display: grid; align-content: end; gap: 4px; }
.deadline-suggestion small { color: var(--muted); }
.notice-output { min-height: 180px; font-family: inherit; }
.autocomplete-box { position: absolute; z-index: 20; left: 0; right: 0; top: calc(100% + 4px); display: none; background: white; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 14px 32px rgba(17,26,43,.12); overflow: hidden; }
.autocomplete-box.open { display: grid; }
.autocomplete-item { width: 100%; border: 0; border-radius: 0; background: white; color: var(--ink); justify-content: flex-start; min-height: 38px; text-align: left; font-weight: 500; }
.autocomplete-item:hover { background: var(--soft); }
label:has(> [data-client-autocomplete]) { position: relative; }
.drawer-backdrop { position: fixed; inset: 0; background: rgba(12,20,34,.42); opacity: 0; visibility: hidden; transition: .18s ease; z-index: 80; }
.drawer { position: fixed; top: 0; right: 0; width: min(720px, 92vw); height: 100vh; background: white; transform: translateX(102%); transition: transform .2s ease; z-index: 81; box-shadow: -18px 0 40px rgba(17,26,43,.16); display: grid; grid-template-rows: auto 1fr; }
.drawer.open { transform: translateX(0); }
body.drawer-open .drawer-backdrop { opacity: 1; visibility: visible; }
.drawer > header { display: flex; justify-content: space-between; gap: 12px; align-items: center; padding: 18px 20px; border-bottom: 1px solid var(--line); }
.drawer > header div { display: grid; gap: 3px; }
.drawer > header small { color: var(--muted); }
.drawer-body { overflow-y: auto; padding: 20px; }
.sidebar-user small { color: #8996ad; font-size: 11px; }
.control-summary article > strong { font-size: clamp(26px, 2.2vw, 34px); overflow-wrap: anywhere; }

@media (max-width: 1200px) {
    .cards-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .triage-filters { grid-template-columns: repeat(4, minmax(0, 1fr)); }
    .client-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .case-form { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (max-width: 800px) {
    .cards-5 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .triage-filters, .client-filters, .mapping-grid, .client-form, .publication-detail-form, .case-form { grid-template-columns: 1fr 1fr; }
    .client-form .client-notes { grid-column: span 2; }
    .triage-table td:last-child { min-width: 320px; }
}
@media (max-width: 520px) {
    .cards-5, .triage-filters, .client-filters, .mapping-grid, .client-form, .publication-detail-form, .case-form, .check-grid { grid-template-columns: 1fr; }
    .client-form .client-notes { grid-column: auto; }
    .drawer { width: 100vw; }
}
@media print {
    .drawer, .drawer-backdrop, .triage-inline-form, [data-publication-drawer] { display: none !important; }
    .table-sticky { max-height: none !important; overflow: visible !important; }
    .table-sticky thead th { position: static !important; }
}


/* v1.1.0.3 · Governança, cobertura e direção visual */
:root {
    --info-bg: #eaf0fa;
    --info-ink: #22314d;
    --warn-bg: #fff4db;
    --warn-ink: #7a5a10;
    --ok-bg: #e6f5ea;
    --ok-ink: #1e5c33;
    --danger-bg: #fdecec;
    --danger-ink: #8a2b2b;
    --muted-bg: #eef1f6;
    --muted-ink: #6b7487;
    --gold: #b8842e;
}

body { font-kerning: normal; text-rendering: optimizeLegibility; }
.page-head h1 { font-size: clamp(30px, 3vw, 42px); letter-spacing: -.035em; font-weight: 760; }
.page-head p { font-size: 15px; line-height: 1.55; }
.section-head h2 { letter-spacing: -.02em; }
.eyebrow { display: inline-block; color: var(--muted); font-size: 11px; font-weight: 760; letter-spacing: .09em; text-transform: uppercase; margin-bottom: 5px; }
.ui-icon { width: 20px; height: 20px; display: inline-block; flex: 0 0 auto; }
.nav-link { display: flex; align-items: center; gap: 9px; }
.nav-link .nav-icon { width: 19px; height: 19px; display: inline-flex; align-items: center; justify-content: center; color: #92a0b9; }
.nav-link .nav-icon .ui-icon { width: 17px; height: 17px; }
.nav-link.active .nav-icon, .nav-link:hover .nav-icon { color: #fff; }

.badge-info { background: var(--info-bg); color: var(--info-ink); }
.badge-warn { background: var(--warn-bg); color: var(--warn-ink); }
.badge-ok { background: var(--ok-bg); color: var(--ok-ink); }
.badge-danger { background: var(--danger-bg); color: var(--danger-ink); }
.badge-muted { background: var(--muted-bg); color: var(--muted-ink); }

.today-grid { display: grid; gap: 16px; grid-template-columns: repeat(3, minmax(0,1fr)); margin-bottom: 34px; }
.today-block { background: var(--panel); border: 1px solid var(--line); border-radius: 16px; box-shadow: 0 12px 34px rgba(20,30,55,.045); padding: 22px; position: relative; overflow: hidden; }
.today-block::before { content: ''; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #4f6e9c; }
.today-danger::before { background: #a84d4d; }
.today-warn::before { background: var(--gold); }
.today-ok::before { background: #4f8a62; }
.today-info::before { background: #4f6e9c; }
.today-block > header { display: grid; grid-template-columns: auto minmax(0,1fr) auto; gap: 12px; align-items: start; margin-bottom: 17px; }
.today-block h2 { margin: 0; font-size: 18px; line-height: 1.25; letter-spacing: -.015em; }
.today-icon { width: 38px; height: 38px; border-radius: 10px; background: var(--soft); display: grid; place-items: center; color: var(--accent); }
.today-danger .today-icon { background: var(--danger-bg); color: var(--danger-ink); }
.today-warn .today-icon { background: var(--warn-bg); color: var(--warn-ink); }
.today-ok .today-icon { background: var(--ok-bg); color: var(--ok-ink); }
.today-info .today-icon { background: var(--info-bg); color: var(--info-ink); }
.today-list { display: grid; gap: 7px; }
.today-item { display: grid; grid-template-columns: minmax(0,1fr) auto auto; gap: 10px; align-items: center; padding: 11px 0; border-bottom: 1px solid #edf0f5; }
.today-item:last-child { border-bottom: 0; }
.today-item > div { min-width: 0; }
.today-item strong, .today-item span { display: block; }
.today-item strong { font-size: 13px; overflow-wrap: anywhere; }
.today-item > div > span { color: var(--muted); font-size: 12px; margin-top: 4px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.quick-action, .text-action { color: #294b82; font-size: 12px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.quick-action { border: 1px solid #d7deea; border-radius: 8px; padding: 7px 9px; background: #fff; }
.text-action { display: inline-flex; margin-top: 12px; }

.empty-state.actionable { min-height: 170px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 1px dashed #dbe2ec; border-radius: 12px; background: #fafbfd; padding: 24px 18px; }
.empty-state.actionable .ui-icon { width: 28px; height: 28px; color: #718099; margin-bottom: 2px; }
.empty-state.actionable strong { margin: 0; }
.empty-state.actionable span { display: block; max-width: 440px; line-height: 1.45; }
.empty-state.actionable a { font-weight: 700; text-decoration: none; margin-top: 3px; }
.watch-placeholder { min-height: 245px; }

.overview-zone { scroll-margin-top: 20px; padding-top: 4px; }
.executive-metrics article { box-shadow: none; border-top: 3px solid #d8dfeb; }
.executive-metrics article > strong { font-size: clamp(30px, 3vw, 42px); letter-spacing: -.035em; }
.executive-chart-grid { display: grid; grid-template-columns: 1.2fr 1fr 1fr; gap: 16px; margin-bottom: 28px; }
.executive-chart-card { background: #fff; border: 1px solid var(--line); border-radius: 16px; padding: 22px; box-shadow: 0 10px 30px rgba(20,30,55,.035); min-width: 0; }
.chart-message h3 { margin: 2px 0 7px; font-size: 18px; line-height: 1.3; letter-spacing: -.018em; }
.chart-message p { margin: 0; color: var(--muted); font-size: 13px; line-height: 1.45; }
.coverage-stack { margin-top: 28px; height: 18px; border-radius: 6px; overflow: hidden; display: flex; background: #eef1f6; }
.coverage-stack > span { height: 100%; min-width: 0; }
.coverage-complete { background: #22314d; }
.coverage-partial { background: #b8842e; }
.coverage-review { background: #6f7f99; }
.coverage-remaining { background: #e2e7ef; }
.coverage-legend { display: flex; gap: 12px 18px; flex-wrap: wrap; margin-top: 12px; color: var(--muted); font-size: 11px; }
.coverage-legend span { display: inline-flex; gap: 6px; align-items: center; }
.coverage-legend i { width: 8px; height: 8px; border-radius: 2px; }
.legend-complete { background: #22314d; }
.legend-partial { background: #b8842e; }
.legend-review { background: #6f7f99; }
.legend-remaining { background: #e2e7ef; border: 1px solid #cfd6e2; }
.legend-complete { background: #22314d; }.legend-partial { background: #b8842e; }.legend-remaining { background: #e2e7ef; border: 1px solid #d3dae5; }
.eta-box { margin-top: 22px; padding: 14px 15px; border-radius: 12px; background: #f7f9fc; display: grid; grid-template-columns: auto 1fr; gap: 11px; align-items: start; }
.eta-icon { width: 34px; height: 34px; border-radius: 9px; display: grid; place-items: center; background: #eaf0fa; color: #294b82; }
.eta-box > div:last-child { display: grid; gap: 4px; }
.eta-box strong { font-size: 13px; }
.eta-box span { color: #39465c; font-size: 12px; line-height: 1.45; }
.eta-box small { color: var(--muted); font-size: 10.5px; line-height: 1.4; }

.mini-bars { height: 190px; margin-top: 24px; display: grid; grid-template-columns: repeat(7,minmax(0,1fr)); gap: 8px; align-items: end; border-bottom: 1px solid #dfe5ee; padding: 0 2px 26px; position: relative; }
.mini-bar-col { height: 100%; display: grid; grid-template-rows: 18px 1fr 20px; align-items: end; text-align: center; min-width: 0; }
.mini-bar-col i { width: min(34px,70%); margin: 0 auto; background: #22314d; border-radius: 4px 4px 0 0; min-height: 3px; display: block; }
.mini-bar-col small, .mini-bar-value { color: var(--muted); font-size: 10px; }
.mini-bar-value { align-self: center; }
.executive-hbar { margin-top: 22px; }
.executive-hbar > div:first-child { display: flex; justify-content: space-between; gap: 10px; font-size: 12px; margin-bottom: 7px; }
.executive-hbar > div:first-child span { color: var(--muted); }
.hbar-track { height: 12px; border-radius: 4px; background: #eef1f6; overflow: hidden; }
.hbar-track i { display: block; height: 100%; border-radius: inherit; min-width: 2px; }
.hbar-new { background: #4f6e9c; }.hbar-review { background: #b8842e; }.hbar-done { background: #3f7b68; }

.radar-access-zone { border-top: 1px solid var(--line); padding-top: 28px; }
.quiet-metrics article { box-shadow: none; background: #fbfcfe; }
.metric-date { font-size: clamp(24px,2.4vw,32px) !important; white-space: nowrap; }

@media (max-width: 1180px) {
    .today-grid { grid-template-columns: 1fr; }
    .today-block { min-height: 0; }
    .watch-placeholder { min-height: 160px; }
    .executive-chart-grid { grid-template-columns: 1fr 1fr; }
    .executive-chart-card:first-child { grid-column: span 2; }
}
@media (max-width: 760px) {
    .executive-chart-grid { grid-template-columns: 1fr; }
    .executive-chart-card:first-child { grid-column: auto; }
    .today-item { grid-template-columns: minmax(0,1fr) auto; }
    .today-item .quick-action { grid-column: 1 / -1; justify-self: start; }
    .coverage-legend { flex-direction: column; gap: 7px; }
}
@media print {
    .today-grid { grid-template-columns: 1fr; }
    .today-block, .executive-chart-card { break-inside: avoid-page; page-break-inside: avoid; }
}

/* v1.1.0.3 · contexto técnico da higiene */
.hygiene-technical-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}
.hygiene-technical-grid > div {
    border: 1px solid #dfe5ee;
    background: #f8fafc;
    border-radius: 10px;
    padding: 10px 12px;
    min-width: 0;
}
.hygiene-technical-grid span {
    display: block;
    color: var(--muted);
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: .04em;
    margin-bottom: 4px;
}
.hygiene-technical-grid strong {
    display: block;
    overflow-wrap: anywhere;
}
@media (max-width: 800px) {
    .hygiene-technical-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
    .hygiene-technical-grid { grid-template-columns: 1fr; }
}
@media print {
    .hygiene-technical-grid { grid-template-columns: repeat(2, 1fr); }
}

/* v1.1.0.6 · auditoria visual da prévia Easyjur */
.review-audit { border: 1px solid var(--line); border-radius: 14px; padding: 16px; background: var(--soft); }
.review-audit .section-head { margin-bottom: 12px; }
.review-audit-table th, .review-audit-table td { vertical-align: top; }
.review-audit-table .review-value { overflow-wrap: anywhere; word-break: break-word; }
.review-audit-table code { white-space: normal; overflow-wrap: anywhere; }
@media (max-width: 700px) {
    .review-audit { padding: 12px; }
    .review-audit .table-wrap { overflow-x: auto; }
    .review-audit-table { min-width: 860px; }
}

/* v1.1.1 · Monitor de Clientes TRT9 */
.grid-4 { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.metric-card { background:var(--panel); border:1px solid var(--line); border-radius:14px; padding:16px; min-width:0; }
.metric-card span,.metric-card small { display:block; color:var(--muted); }
.metric-card strong { display:block; font-size:30px; line-height:1.1; margin:6px 0; color:var(--ink); }
.client-watch-run-form { grid-template-columns:2fr 1fr 1fr auto; align-items:end; }
.client-watch-filter { display:grid; grid-template-columns:repeat(3,minmax(180px,1fr)) auto; gap:12px; align-items:end; margin:14px 0; }
.client-watch-filter > *, .client-watch-run-form > * { min-width:0; }
.client-watch-filter select,.client-watch-run-form select,.client-watch-run-form input { width:100%; min-width:0; box-sizing:border-box; }
.filter-action,.form-action { align-self:end; }
.watch-actions { display:grid; grid-template-columns:1fr 1fr; gap:6px; min-width:220px; }
.watch-actions input { grid-column:1 / -1; min-width:0; width:100%; box-sizing:border-box; }
.watch-actions button { min-width:0; }
@media (max-width:1000px){.grid-4{grid-template-columns:repeat(2,minmax(0,1fr));}.client-watch-run-form{grid-template-columns:1fr 1fr;}.client-watch-filter{grid-template-columns:1fr 1fr;}.form-action,.filter-action{width:100%;}.form-action button,.filter-action button{width:100%;}}
@media (max-width:520px){.grid-4,.client-watch-run-form,.client-watch-filter{grid-template-columns:1fr;}.watch-actions{grid-template-columns:1fr;min-width:0;}.watch-actions input{grid-column:auto;}}

/* v1.1.2 · prioridade territorial e auditabilidade da Vigilância */
.territorial-list { display: grid; gap: 9px; }
.territorial-row { display: grid; grid-template-columns: minmax(180px, 1.2fr) minmax(120px, 2fr) auto; gap: 12px; align-items: center; padding: 10px 12px; border: 1px solid var(--border); border-radius: 10px; }
.territorial-row > div:first-child { display: grid; gap: 2px; }
.territorial-row small { color: var(--muted); }
.territorial-progress { height: 8px; background: var(--soft); border-radius: 99px; overflow: hidden; }
.territorial-progress i { display: block; height: 100%; background: var(--navy); border-radius: inherit; }
.territorial-current { box-shadow: inset 3px 0 0 var(--navy); }
.territorial-done { opacity: .78; }
.client-watch-table { min-width: 980px; }
.client-watch-history { min-width: 900px; }

@media (max-width: 700px) {
    .territorial-row { grid-template-columns: 1fr; gap: 7px; }
    .territorial-row > span { justify-self: start; }
}
