/* Clinical Evolution Map — estilos das telas de inspeção (Observações e Tendências Clínicas).
   Reaproveita os tokens --vt-* do tema. Mantém a linguagem visual das demais telas clínicas. */

.ce-page {
    max-width: var(--vt-content-max, 1120px);
}

.ce-head-meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 8px;
    margin: 4px 0 16px;
    color: var(--vt-text-secondary);
    font-size: 0.85rem;
}

.ce-head-meta .ce-dot { color: var(--vt-text-muted); }

/* Cartões-filtro (contagens por categoria/direção) */
.ce-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    margin-bottom: 18px;
}

.ce-filter {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    min-width: 92px;
    padding: 10px 14px;
    border: 1px solid var(--vt-border);
    border-radius: var(--vt-radius-md, 12px);
    background: var(--vt-surface);
    cursor: pointer;
    transition: border-color .12s ease, background .12s ease;
}

.ce-filter:hover { border-color: var(--vt-text-muted); }

.ce-filter.is-active {
    border-color: var(--vt-primary-accent);
    background: color-mix(in srgb, var(--vt-primary-accent) 12%, var(--vt-surface));
}

.ce-filter__count { font-size: 1.35rem; font-weight: 700; color: var(--vt-text-primary); line-height: 1.1; }
.ce-filter__label { font-size: 0.8rem; color: var(--vt-text-secondary); }

/* Lista de cartões */
.ce-list { display: flex; flex-direction: column; gap: 12px; }

.ce-item { padding: 16px 18px; }

.ce-item__head { display: flex; align-items: flex-start; gap: 10px; }
/* A categoria é sinalizada pela cor do ícone (discreta), não por uma barra lateral no cartão. */
.ce-item__ico { color: var(--vt-text-secondary); flex: 0 0 auto; margin-top: 1px; }
.ce-item--ref .ce-item__ico { color: var(--vt-info, #3b82f6); }
.ce-item--temporal .ce-item__ico { color: var(--vt-teal, #14b8a6); }
.ce-item--quality .ce-item__ico { color: var(--vt-warning, #f59e0b); }
.ce-item--derived .ce-item__ico { color: var(--vt-primary-accent); }
.ce-item__titles { display: flex; flex-direction: column; flex: 1 1 auto; min-width: 0; }
.ce-item__title { font-weight: 600; color: var(--vt-text-primary); }
.ce-item__marker { font-size: 0.82rem; color: var(--vt-text-secondary); }
.ce-item__cat { font-size: 0.72rem; text-transform: uppercase; letter-spacing: .04em; color: var(--vt-text-muted); flex: 0 0 auto; }

.ce-item__summary { margin: 10px 0 0; color: var(--vt-text-primary); font-size: 0.92rem; line-height: 1.45; }

.ce-item__foot { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 12px; }
.ce-item__period { font-size: 0.8rem; color: var(--vt-text-muted); }

.ce-badge {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    padding: 3px 9px;
    border-radius: var(--vt-radius-pill, 999px);
    background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent);
    color: var(--vt-text-secondary);
    font-size: 0.76rem;
    white-space: nowrap;
}

.ce-badge--conf { background: color-mix(in srgb, var(--vt-info, #3b82f6) 14%, transparent); color: var(--vt-info, #3b82f6); }
.ce-badge--warn { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge--link { text-decoration: none; }
.ce-badge--link:hover { background: color-mix(in srgb, var(--vt-primary-accent) 20%, transparent); color: var(--vt-text-primary); }

/* Tendências */
.ce-trend__dir { display: inline-flex; align-items: center; gap: 5px; font-weight: 600; font-size: 0.85rem; flex: 0 0 auto; }
.ce-trend__arrow { font-size: 1.05rem; line-height: 1; }
.ce-trend__dir--up { color: var(--vt-warning, #f59e0b); }
.ce-trend__dir--down { color: var(--vt-teal, #14b8a6); }
.ce-trend__dir--flat { color: var(--vt-text-secondary); }
.ce-trend__dir--var { color: var(--vt-info, #3b82f6); }
.ce-trend__dir--ind { color: var(--vt-text-muted); }
.ce-trend__tags { display: flex; flex-wrap: wrap; gap: 6px; flex: 0 0 auto; }

.ce-trend .ce-item__head { align-items: center; }

.ce-metrics { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 12px; }
.ce-metric { display: flex; flex-direction: column; }
.ce-metric__k { font-size: 0.68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--vt-text-muted); }
.ce-metric__v { font-size: 0.9rem; color: var(--vt-text-primary); font-weight: 500; }

/* ============================================================
   Observações Clínicas — layout denso por marcador (redesign)
   ============================================================ */

.obs-page { max-width: var(--vt-content-max, 1180px); }

.obs-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; margin-bottom: 18px; }
.obs-head__sub { margin: 4px 0 0; color: var(--vt-text-secondary); font-size: 0.9rem; max-width: 62ch; }
.obs-refresh { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 6px; }

/* Indicadores */
.obs-cards { display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; margin-bottom: 18px; }
.obs-card {
    display: flex; flex-direction: column; gap: 2px; text-align: left;
    padding: 12px 14px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius-md, 12px);
    background: var(--vt-surface); cursor: pointer; transition: border-color .12s ease, box-shadow .12s ease;
}
.obs-card:hover { border-color: var(--vt-text-muted); }
.obs-card.is-active { border-color: var(--vt-primary-accent); box-shadow: 0 0 0 1px var(--vt-primary-accent) inset; }
.obs-card__top { display: flex; align-items: center; justify-content: space-between; }
.obs-card__lbl { font-size: 0.78rem; color: var(--vt-text-secondary); }
.obs-card__ico { color: var(--vt-text-muted); }
.obs-card__num { font-size: 1.7rem; font-weight: 700; line-height: 1.1; color: var(--vt-text-primary); }
.obs-card__sub { font-size: 0.72rem; color: var(--vt-text-muted); }
.obs-card--new .obs-card__ico { color: var(--vt-success, #22c55e); }
.obs-card--alter .obs-card__ico { color: var(--vt-warning, #f59e0b); }
.obs-card--recent .obs-card__ico { color: var(--vt-info, #3b82f6); }
.obs-card--stable .obs-card__ico { color: var(--vt-teal, #14b8a6); }
.obs-card--insuf .obs-card__ico { color: var(--vt-text-muted); }

/* Controles */
.obs-controls { display: flex; align-items: center; gap: 12px; margin-bottom: 12px; flex-wrap: wrap; }
.obs-search { display: flex; align-items: center; gap: 8px; flex: 1 1 320px; min-width: 240px;
    padding: 8px 12px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius-md, 12px); background: var(--vt-surface); color: var(--vt-text-muted); }
.obs-search input { border: 0; outline: 0; background: transparent; flex: 1; color: var(--vt-text-primary); font-size: 0.9rem; }
.obs-controls__right { display: flex; align-items: center; gap: 10px; }
.obs-period { display: inline-flex; align-items: center; gap: 6px; padding: 8px 12px; border: 1px solid var(--vt-border);
    border-radius: var(--vt-radius-md, 12px); background: var(--vt-surface); color: var(--vt-text-secondary); font-size: 0.85rem; cursor: pointer; }
.obs-period:hover { border-color: var(--vt-text-muted); }
.obs-sort { display: inline-flex; align-items: center; gap: 6px; font-size: 0.82rem; color: var(--vt-text-secondary); }
.obs-sort select { border: 1px solid var(--vt-border); border-radius: var(--vt-radius-sm, 8px); background: var(--vt-surface);
    color: var(--vt-text-primary); padding: 6px 8px; font-size: 0.85rem; }

/* Chips */
.obs-chips { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 18px; }
.obs-chip { padding: 6px 12px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius-pill, 999px);
    background: var(--vt-surface); color: var(--vt-text-secondary); font-size: 0.82rem; cursor: pointer; }
.obs-chip:hover { border-color: var(--vt-text-muted); }
.obs-chip.is-active { background: var(--vt-primary-accent); border-color: var(--vt-primary-accent); color: #0b0f00; font-weight: 600; }

/* Grupos */
.obs-list { display: flex; flex-direction: column; gap: 22px; }
.obs-group { display: flex; flex-direction: column; gap: 8px; }
.obs-group__head { display: flex; align-items: center; gap: 8px; padding: 4px 2px; background: none; border: 0; cursor: pointer;
    color: var(--vt-text-primary); font-weight: 600; }
.obs-group__title { font-size: 0.95rem; }
.obs-group__count { display: inline-flex; align-items: center; justify-content: center; min-width: 22px; height: 20px; padding: 0 6px;
    border-radius: var(--vt-radius-pill, 999px); background: color-mix(in srgb, var(--vt-text-muted) 16%, transparent);
    color: var(--vt-text-secondary); font-size: 0.72rem; font-weight: 600; }

/* Linha de observação */
.obs-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto auto auto; align-items: center; gap: 16px;
    padding: 14px 16px; cursor: pointer; transition: border-color .12s ease, box-shadow .12s ease; }
.obs-row:hover { border-color: var(--vt-text-muted); }
.obs-row.is-selected { border-color: var(--vt-primary-accent); box-shadow: 0 0 0 1px var(--vt-primary-accent) inset; }
.obs-row:focus-visible { outline: 2px solid var(--vt-primary-accent); outline-offset: 2px; }

.obs-row__ico { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%;
    font-size: 1rem; font-weight: 700; flex: 0 0 auto; }
.obs-tone--up, .obs-tone--alter { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.obs-tone--down { background: color-mix(in srgb, var(--vt-teal, #14b8a6) 16%, transparent); color: var(--vt-teal, #14b8a6); }
.obs-tone--return { background: color-mix(in srgb, var(--vt-success, #22c55e) 16%, transparent); color: var(--vt-success, #22c55e); }
.obs-tone--stable { background: color-mix(in srgb, var(--vt-text-muted) 16%, transparent); color: var(--vt-text-secondary); }
.obs-tone--insuf { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-muted); }

.obs-row__marker { font-weight: 600; color: var(--vt-text-primary); }
.obs-row__desc { margin: 3px 0 8px; color: var(--vt-text-primary); font-size: 0.9rem; }
.obs-row__meta { display: flex; flex-wrap: wrap; gap: 6px; }
.obs-meta { padding: 2px 8px; border-radius: var(--vt-radius-pill, 999px); background: color-mix(in srgb, var(--vt-text-muted) 12%, transparent);
    color: var(--vt-text-secondary); font-size: 0.72rem; white-space: nowrap; }
.obs-meta--support.obs-support--high { background: color-mix(in srgb, var(--vt-success, #22c55e) 16%, transparent); color: var(--vt-success, #22c55e); }
.obs-meta--support.obs-support--med { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.obs-meta--support.obs-support--low { background: color-mix(in srgb, var(--vt-text-muted) 16%, transparent); color: var(--vt-text-muted); }

.obs-row__chart { width: 140px; flex: 0 0 auto; }
.rs-svg { display: block; width: 100%; height: auto; }

.obs-row__delta { display: flex; align-items: center; gap: 10px; }
.obs-delta__col { display: flex; flex-direction: column; align-items: flex-end; }
.obs-delta__k { font-size: 0.68rem; color: var(--vt-text-muted); }
.obs-delta__v { font-size: 1rem; font-weight: 700; color: var(--vt-text-primary); }
.obs-delta__u { font-size: 0.68rem; color: var(--vt-text-muted); }
.obs-delta__arrow { color: var(--vt-text-muted); }

.obs-class--critical { color: var(--vt-danger, #ef4444); }
.obs-class--high { color: var(--vt-warning, #f59e0b); }
.obs-class--low { color: var(--vt-info, #3b82f6); }
.obs-class--normal { color: var(--vt-success, #22c55e); }
.obs-class--none { color: var(--vt-text-primary); }

.obs-row__last { display: flex; flex-direction: column; align-items: flex-end; color: var(--vt-text-muted); }
.obs-last__k { font-size: 0.68rem; }
.obs-last__v { font-size: 0.82rem; color: var(--vt-text-secondary); }

/* Estados */
.obs-state--error { display: flex; align-items: center; gap: 12px; }
.obs-empty { text-align: center; }
.obs-empty__actions { display: flex; justify-content: center; gap: 10px; margin-top: 12px; }

/* Skeleton */
.obs-skel { position: relative; overflow: hidden; }
.obs-skel__num, .obs-skel__lbl, .obs-skel__block { display: block; background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); border-radius: 6px; }
.obs-skel__num { width: 40%; height: 22px; margin: 6px 0; }
.obs-skel__lbl { width: 70%; height: 12px; }
.obs-skel__block { width: 100%; height: 48px; }

/* Drawer */
.obs-drawer-scrim { position: fixed; inset: 0; background: rgba(0,0,0,0.28); z-index: 40; }
.obs-drawer { position: fixed; top: 0; right: 0; bottom: 0; width: min(480px, 92vw); z-index: 41;
    background: var(--vt-surface); border-left: 1px solid var(--vt-border); box-shadow: -12px 0 40px rgba(0,0,0,0.14);
    display: flex; flex-direction: column; }
.obs-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 16px 18px; border-bottom: 1px solid var(--vt-border); }
.obs-drawer__title { display: flex; align-items: center; gap: 10px; }
.obs-drawer__marker { font-size: 1.1rem; font-weight: 700; color: var(--vt-text-primary); }
.obs-badge { padding: 2px 10px; border-radius: var(--vt-radius-pill, 999px); font-size: 0.74rem; font-weight: 600; }
.obs-drawer__close { border: 0; background: none; color: var(--vt-text-muted); cursor: pointer; }

.obs-tabs { display: flex; gap: 2px; padding: 0 12px; border-bottom: 1px solid var(--vt-border); }
.obs-tab { padding: 10px 12px; border: 0; background: none; color: var(--vt-text-secondary); cursor: pointer; font-size: 0.85rem; border-bottom: 2px solid transparent; }
.obs-tab.is-active { color: var(--vt-text-primary); border-bottom-color: var(--vt-primary-accent); font-weight: 600; }

.obs-drawer__body { flex: 1 1 auto; overflow-y: auto; padding: 16px 18px; }
.obs-fields { display: flex; flex-direction: column; gap: 0; margin: 0; }
.obs-fields > div { display: grid; grid-template-columns: 140px 1fr; gap: 12px; padding: 8px 0; border-bottom: 1px solid color-mix(in srgb, var(--vt-border) 60%, transparent); }
.obs-fields dt { color: var(--vt-text-muted); font-size: 0.8rem; }
.obs-fields dd { margin: 0; color: var(--vt-text-primary); font-size: 0.86rem; }
.obs-review { color: var(--vt-warning, #f59e0b); }

.obs-support--high { color: var(--vt-success, #22c55e); }
.obs-support--med { color: var(--vt-warning, #f59e0b); }
.obs-support--low { color: var(--vt-text-muted); }

.obs-chart-lg { margin-top: 16px; }
.obs-chart-lg__cap { display: block; font-size: 0.78rem; color: var(--vt-text-muted); margin-bottom: 8px; }
.obs-chart-lg .rs-svg { border: 1px solid var(--vt-border); border-radius: var(--vt-radius-sm, 8px); padding: 8px; }

.obs-table { width: 100%; border-collapse: collapse; font-size: 0.8rem; }
.obs-table th { text-align: left; color: var(--vt-text-muted); font-weight: 500; padding: 6px 8px; border-bottom: 1px solid var(--vt-border); font-size: 0.72rem; }
.obs-table td { padding: 6px 8px; border-bottom: 1px solid color-mix(in srgb, var(--vt-border) 60%, transparent); color: var(--vt-text-primary); }
.obs-table a { color: var(--vt-text-secondary); }

.obs-timeline { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 12px; }
.obs-timeline li { display: flex; gap: 10px; font-size: 0.85rem; color: var(--vt-text-primary); }
.obs-timeline__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--vt-primary-accent); margin-top: 6px; flex: 0 0 auto; }
.obs-note-muted { margin-top: 14px; color: var(--vt-text-muted); font-size: 0.8rem; }

.obs-disclaimer { display: flex; align-items: flex-start; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--vt-border);
    background: color-mix(in srgb, var(--vt-info, #3b82f6) 8%, var(--vt-surface)); color: var(--vt-text-secondary); font-size: 0.78rem; }

/* Responsivo */
@media (max-width: 1024px) {
    .obs-cards { grid-template-columns: repeat(3, 1fr); }
    .obs-row { grid-template-columns: auto minmax(0, 1fr) auto; }
    .obs-row__chart { grid-column: 1 / -1; width: 100%; order: 5; }
    .obs-row__last { display: none; }
}
@media (max-width: 640px) {
    .obs-cards { grid-template-columns: repeat(2, 1fr); }
    .obs-head { flex-direction: column; }
    .obs-row { grid-template-columns: auto minmax(0, 1fr); }
    .obs-row__delta { grid-column: 1 / -1; justify-content: flex-start; order: 6; }
}

/* ============================================================
   Tendências Clínicas — extras (reutiliza obs-*)
   ============================================================ */

.obs-head__meta { margin-top: 6px; color: var(--vt-text-secondary); font-size: 0.85rem; }

/* Ícone + classificação empilhados no início da linha */
.obs-row__ico-wrap { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 0 0 auto; width: 68px; }
.obs-row__class { font-size: 0.72rem; color: var(--vt-text-secondary); text-align: center; }
.obs-row__ctx { font-size: 0.8rem; color: var(--vt-text-secondary); }

/* Direções (tons dos indicadores e do ícone) */
.obs-tone--var { background: color-mix(in srgb, #8b5cf6 16%, transparent); color: #8b5cf6; }
.obs-dir--up { color: var(--vt-success, #22c55e); }
.obs-dir--down { color: var(--vt-info, #3b82f6); }
.obs-dir--stable { color: var(--vt-teal, #14b8a6); }
.obs-dir--var { color: #8b5cf6; }
.obs-dir--insuf { color: var(--vt-text-muted); }
.obs-ind--up.is-active { border-color: var(--vt-success, #22c55e); box-shadow: 0 0 0 1px var(--vt-success, #22c55e) inset; }
.obs-ind--down.is-active { border-color: var(--vt-info, #3b82f6); box-shadow: 0 0 0 1px var(--vt-info, #3b82f6) inset; }
.obs-ind--stable.is-active { border-color: var(--vt-teal, #14b8a6); box-shadow: 0 0 0 1px var(--vt-teal, #14b8a6) inset; }
.obs-ind--var.is-active { border-color: #8b5cf6; box-shadow: 0 0 0 1px #8b5cf6 inset; }

/* Faixa acima do minigráfico */
.obs-row__chart .obs-faixa { display: block; font-size: 0.68rem; color: var(--vt-text-muted); margin-bottom: 4px; white-space: nowrap; }

/* Coluna do valor atual (única, sem início→atual) */
.obs-row__delta--single { flex-direction: column; align-items: flex-end; gap: 0; }
.obs-row__delta--single .obs-delta__v { font-size: 1.15rem; }

/* Drawer — cabeçalho de tendência */
.obs-drawer__ico { width: 40px; height: 40px; font-size: 1.05rem; }
.obs-drawer__markerline { display: flex; align-items: center; gap: 8px; }
.obs-drawer__ctx { font-size: 0.78rem; color: var(--vt-text-secondary); margin-top: 2px; }
.obs-drawer__lead { margin: 0 0 14px; color: var(--vt-text-primary); font-size: 0.92rem; line-height: 1.45; }
.obs-drawer__notes { margin-top: 12px; }

/* Legenda do gráfico grande */
.obs-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 10px; font-size: 0.74rem; color: var(--vt-text-secondary); }
.obs-legend__i { display: inline-flex; align-items: center; gap: 5px; }
.obs-legend__dot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; }
.obs-legend__dot--in { background: var(--vt-success, #22c55e); }
.obs-legend__dot--out { background: var(--vt-danger, #ef4444); }
.obs-legend__band { width: 16px; height: 9px; border-radius: 2px; background: color-mix(in srgb, var(--vt-text-muted) 30%, transparent); display: inline-block; }

@media (max-width: 1024px) {
    .obs-row--trend { grid-template-columns: auto minmax(0, 1fr) auto; }
    .obs-row--trend .obs-row__chart { grid-column: 1 / -1; width: 100%; order: 5; }
}

/* ============================================================
   Evolução Clínica — grade de 8 indicadores + extras
   ============================================================ */
.obs-cards--8 { grid-template-columns: repeat(8, 1fr); }
.obs-card__ico { font-weight: 700; font-size: 0.95rem; line-height: 1; }
.obs-dir--return { color: var(--vt-success, #22c55e); }
.obs-dir--alter { color: var(--vt-warning, #f59e0b); }
.obs-dir--recent { color: var(--vt-warning, #f59e0b); }
.obs-dir--insuf { color: var(--vt-text-muted); }

.obs-subhead { font-size: 0.82rem; font-weight: 600; color: var(--vt-text-secondary); margin: 18px 0 8px; }

@media (max-width: 1280px) { .obs-cards--8 { grid-template-columns: repeat(4, 1fr); } }
@media (max-width: 720px) { .obs-cards--8 { grid-template-columns: repeat(2, 1fr); } }

/* Ícones do pacote (status badges circulares) */
.obs-card__badge { width: 22px; height: 22px; display: block; }
.obs-row__badge { width: 40px; height: 40px; flex: 0 0 auto; display: block; }
.obs-drawer__badge { width: 40px; height: 40px; }

/* ============================================================
   Sequência de estados (marcadores qualitativos / não numéricos)
   ============================================================ */
/* Tom do badge do cartão de estados: laranja quando mudou, cinza-esverdeado quando constante. */
.obs-tone--change { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }

.ss { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 6px; width: 100%; }
.ss__step { display: inline-flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; }
.ss__chip {
    display: inline-block; max-width: 12ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
    padding: 2px 8px; border-radius: var(--vt-radius-pill, 999px); font-size: 0.74rem; font-weight: 600; line-height: 1.3;
    border: 1px solid transparent;
}
.ss__date { font-size: 0.62rem; color: var(--vt-text-muted); }
.ss__link { color: var(--vt-text-muted); font-size: 0.8rem; flex: 0 0 auto; align-self: flex-start; margin-top: 3px; }
.ss__more {
    font-size: 0.68rem; color: var(--vt-text-muted); padding: 2px 6px; border-radius: var(--vt-radius-pill, 999px);
    background: color-mix(in srgb, var(--vt-text-muted) 12%, transparent);
}
/* Cores por classificação de referência efetiva do estado (mesma paleta de obs-class--*). */
.ss__chip--none { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-secondary); }
.ss__chip--normal { background: color-mix(in srgb, var(--vt-success, #22c55e) 16%, transparent); color: var(--vt-success, #22c55e); }
.ss__chip--low { background: color-mix(in srgb, var(--vt-info, #3b82f6) 16%, transparent); color: var(--vt-info, #3b82f6); }
.ss__chip--high { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ss__chip--critical { background: color-mix(in srgb, var(--vt-danger, #ef4444) 18%, transparent); color: var(--vt-danger, #ef4444); }
.ss__chip.is-altered { border-color: currentColor; }

/* ============================================================
   Sinais Clínicos (seção da página Evolução Clínica, doc 06)
   ============================================================ */
.ce-signals { margin-top: 28px; }
.ce-signals__head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.ce-signals__title { font-size: 1.15rem; font-weight: 700; color: var(--vt-text-primary); margin: 0; }
.ce-signals__sub { font-size: 0.85rem; color: var(--vt-text-secondary); }
.ce-signals__disclaimer { display: flex; align-items: center; gap: 6px; margin: 6px 0 14px; font-size: 0.78rem; color: var(--vt-text-muted); }

.ce-sig-group { margin-bottom: 10px; }
.ce-sig-group__head {
    display: flex; align-items: center; gap: 8px; width: 100%; padding: 8px 4px; background: none; border: 0;
    cursor: pointer; color: var(--vt-text-secondary); text-align: left;
}
.ce-sig-group__title { font-weight: 600; font-size: 0.9rem; }
.ce-sig-group__count {
    margin-left: auto; font-size: 0.75rem; color: var(--vt-text-muted); background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent);
    padding: 1px 8px; border-radius: var(--vt-radius-pill, 999px);
}
.ce-sig-list { display: flex; flex-direction: column; gap: 8px; }

.ce-sig-card { display: flex; gap: 10px; padding: 12px 14px; align-items: flex-start; border-left: 3px solid transparent; }
/* A borda esquerda reflete a RELEVÂNCIA (prioridade de destaque), não a severidade. */
.ce-sig-card.ce-rel--high { border-left-color: var(--vt-danger, #ef4444); }
.ce-sig-card.ce-rel--relevant { border-left-color: var(--vt-warning, #f59e0b); }
.ce-sig-card.ce-rel--routine { border-left-color: var(--vt-teal, #14b8a6); }
.ce-sig-card.ce-rel--background { border-left-color: color-mix(in srgb, var(--vt-text-muted) 40%, transparent); opacity: 0.9; }

.ce-sig-card__dot { width: 10px; height: 10px; border-radius: 50%; flex: 0 0 auto; margin-top: 5px; background: var(--vt-text-muted); }
/* O ponto reflete a SEVERIDADE (intensidade elementar) — eixo independente da relevância. */
.ce-sev--critical { background: var(--vt-danger, #ef4444); }
.ce-sev--marked { background: var(--vt-warning, #f59e0b); }
.ce-sev--moderate { background: #eab308; }
.ce-sev--mild { background: var(--vt-teal, #14b8a6); }
.ce-sev--info { background: var(--vt-text-muted); }

.ce-sig-card__main { flex: 1; min-width: 0; }
.ce-sig-card__titleline { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ce-sig-card__title { font-weight: 600; color: var(--vt-text-primary); }
.ce-sig-card__target { font-size: 0.82rem; color: var(--vt-text-secondary); }
.ce-sig-card__desc { margin: 4px 0 8px; color: var(--vt-text-primary); font-size: 0.9rem; line-height: 1.4; }
.ce-sig-card__badges { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; }
.ce-sig-card__period { font-size: 0.75rem; color: var(--vt-text-muted); margin-left: auto; }

.ce-badge {
    font-size: 0.72rem; font-weight: 600; padding: 2px 8px; border-radius: var(--vt-radius-pill, 999px);
    background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-secondary);
}
.ce-badge.ce-sev--critical { background: color-mix(in srgb, var(--vt-danger, #ef4444) 16%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-sev--marked { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-sev--moderate { background: color-mix(in srgb, #eab308 18%, transparent); color: #a16207; }
.ce-badge.ce-sev--mild { background: color-mix(in srgb, var(--vt-teal, #14b8a6) 16%, transparent); color: var(--vt-teal, #14b8a6); }
.ce-badge.ce-sev--info { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-muted); }
.ce-badge.ce-rel-badge--high { background: color-mix(in srgb, var(--vt-danger, #ef4444) 12%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-rel-badge--relevant { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 12%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-rel-badge--routine, .ce-badge.ce-rel-badge--background { background: color-mix(in srgb, var(--vt-text-muted) 12%, transparent); color: var(--vt-text-muted); }
.ce-badge.ce-conf { background: color-mix(in srgb, var(--vt-info, #3b82f6) 12%, transparent); color: var(--vt-info, #3b82f6); }

.ce-sig-card__more { margin-top: 8px; }
.ce-sig-card__more > summary { cursor: pointer; font-size: 0.8rem; color: var(--vt-text-secondary); }
.ce-sig-card__detail { margin: 8px 0; font-size: 0.86rem; color: var(--vt-text-secondary); line-height: 1.45; }
.ce-sig-ev { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.ce-sig-ev li { display: flex; align-items: center; gap: 8px; font-size: 0.8rem; color: var(--vt-text-secondary); }
.ce-sig-ev__label { font-weight: 500; color: var(--vt-text-primary); }
.ce-sig-ev__date { color: var(--vt-text-muted); }
.ce-sig-ev__val { color: var(--vt-text-primary); }

/* Change points (mudança de comportamento) — marcador losango + legenda + lista no detalhe */
.obs-legend__diamond {
    width: 9px; height: 9px; display: inline-block; transform: rotate(45deg);
    background: var(--vt-surface, #fff); border: 1.5px solid var(--vt-text-secondary, #64748b);
}
.obs-changepoints { list-style: none; margin: 10px 0 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.obs-changepoints li { font-size: 0.82rem; color: var(--vt-text-secondary); }
.obs-cp__kind {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em;
    color: var(--vt-text-muted); margin-right: 6px;
}

/* Episódios no período + comparação antes×depois (sem causalidade) */
.obs-episodes { list-style: none; margin: 6px 0 0; padding: 0; display: flex; flex-direction: column; gap: 5px; }
.obs-episodes li { display: flex; align-items: baseline; gap: 8px; font-size: 0.84rem; }
.obs-ep__date { color: var(--vt-text-muted); font-variant-numeric: tabular-nums; flex: 0 0 auto; }
.obs-ep__kind {
    font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .03em; color: var(--vt-text-secondary);
    background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); padding: 1px 6px; border-radius: var(--vt-radius-pill, 999px); flex: 0 0 auto;
}
.obs-ep__label { color: var(--vt-text-primary); }

.obs-ba { display: flex; align-items: stretch; gap: 10px; margin-top: 8px; }
.obs-ba__col { flex: 1; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border: 1px solid var(--vt-border); border-radius: var(--vt-radius-md, 12px); background: var(--vt-surface); }
.obs-ba__cap { font-size: 0.68rem; text-transform: uppercase; letter-spacing: .04em; color: var(--vt-text-muted); }
.obs-ba__change { font-size: 1rem; font-weight: 600; color: var(--vt-text-primary); }
.obs-ba__meta { font-size: 0.78rem; color: var(--vt-text-secondary); }
.obs-ba__arrow { align-self: center; color: var(--vt-text-muted); }
.obs-ba__note { display: flex; align-items: center; gap: 6px; margin: 8px 0 0; font-size: 0.78rem; color: var(--vt-text-muted); }

/* ============================================================
   Padrões Clínicos (seção da página Evolução Clínica, doc 07)
   ============================================================ */
.ce-patterns { margin-top: 28px; }
.ce-pat-card { display: flex; flex-direction: column; gap: 8px; padding: 12px 14px; border-left: 3px solid transparent; }
.ce-pat-card.ce-comp--confirmed { border-left-color: var(--vt-teal, #14b8a6); }
.ce-pat-card.ce-comp--partial { border-left-color: var(--vt-warning, #f59e0b); }
.ce-pat-card.ce-comp--conflicted { border-left-color: var(--vt-danger, #ef4444); }
.ce-pat-card.ce-comp--probable, .ce-pat-card.ce-comp--indeterminate, .ce-pat-card.ce-comp--na { border-left-color: color-mix(in srgb, var(--vt-text-muted) 40%, transparent); }
.ce-pat-card__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ce-pat-card__name { font-weight: 600; color: var(--vt-text-primary); }

.ce-badge.ce-comp-badge--confirmed { background: color-mix(in srgb, var(--vt-teal, #14b8a6) 16%, transparent); color: var(--vt-teal, #14b8a6); }
.ce-badge.ce-comp-badge--partial { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-comp-badge--conflicted { background: color-mix(in srgb, var(--vt-danger, #ef4444) 16%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-comp-badge--probable, .ce-badge.ce-comp-badge--indeterminate, .ce-badge.ce-comp-badge--na { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-muted); }

.ce-pat-comp { display: flex; gap: 18px; flex-wrap: wrap; padding: 6px 0; }
.ce-pat-comp__col { display: flex; flex-direction: column; gap: 3px; min-width: 160px; }
.ce-pat-comp__cap { font-size: 0.68rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ce-pat-comp__cap--present { color: var(--vt-teal, #14b8a6); }
.ce-pat-comp__cap--missing { color: var(--vt-text-muted); }
.ce-pat-comp__cap--conflict { color: var(--vt-danger, #ef4444); }
.ce-pat-sig { font-size: 0.84rem; }
.ce-pat-sig--present { color: var(--vt-text-primary); }
.ce-pat-sig--missing { color: var(--vt-text-muted); }
.ce-pat-sig--conflict { color: var(--vt-danger, #ef4444); }

/* ============================================================
   Estados Fisiológicos (seção da página Evolução Clínica, doc 08)
   ============================================================ */
.ce-states { margin-top: 28px; }
.ce-pat-card.ce-class--preserved { border-left-color: var(--vt-success, #22c55e); }
.ce-pat-card.ce-class--borderline { border-left-color: var(--vt-teal, #14b8a6); }
.ce-pat-card.ce-class--mild { border-left-color: #eab308; }
.ce-pat-card.ce-class--moderate { border-left-color: var(--vt-warning, #f59e0b); }
.ce-pat-card.ce-class--marked { border-left-color: var(--vt-danger, #ef4444); }
.ce-pat-card.ce-class--indeterminate { border-left-color: color-mix(in srgb, var(--vt-text-muted) 40%, transparent); }

.ce-badge.ce-class-badge--preserved { background: color-mix(in srgb, var(--vt-success, #22c55e) 16%, transparent); color: var(--vt-success, #22c55e); }
.ce-badge.ce-class-badge--borderline { background: color-mix(in srgb, var(--vt-teal, #14b8a6) 16%, transparent); color: var(--vt-teal, #14b8a6); }
.ce-badge.ce-class-badge--mild { background: color-mix(in srgb, #eab308 18%, transparent); color: #a16207; }
.ce-badge.ce-class-badge--moderate { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-class-badge--marked { background: color-mix(in srgb, var(--vt-danger, #ef4444) 16%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-class-badge--indeterminate { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-muted); }

/* Linha de marcador CATEGÓRICO: layout próprio (sem colunas numéricas de gráfico/delta) — a sequência de
   estados ocupa a largura toda do miolo e rola horizontalmente, em vez de espremer o texto. */
.obs-row--states { grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; }
.obs-row--states .obs-row__marker { line-height: 1.3; }
.obs-row__states { margin: 8px 0; max-width: 100%; overflow-x: auto; padding-bottom: 4px; }
.obs-row__states .ss { flex-wrap: nowrap; width: max-content; }
.obs-row__states .ss__chip { max-width: 22ch; }
@media (max-width: 1024px) {
    .obs-row--states { grid-template-columns: auto minmax(0, 1fr) auto; }
}
@media (max-width: 720px) {
    .obs-row--states { grid-template-columns: auto minmax(0, 1fr); }
    .obs-row--states .obs-row__last { display: none; }
}

/* ============================================================
   Eventos Fisiológicos (linha do tempo, doc 09)
   ============================================================ */
.ce-events { margin-top: 28px; }
.ce-timeline { list-style: none; margin: 4px 0 0; padding: 0; }
.ce-tl-item { position: relative; display: flex; gap: 12px; padding: 8px 0 8px 4px; }
.ce-tl-item::before { content: ""; position: absolute; left: 8px; top: 22px; bottom: -8px; width: 2px; background: var(--vt-border); }
.ce-tl-item:last-child::before { display: none; }
.ce-tl-dot { width: 14px; height: 14px; border-radius: 50%; flex: 0 0 auto; margin-top: 3px; border: 2px solid var(--vt-surface, #fff); z-index: 1; background: var(--vt-text-muted); }
.ce-evt--onset .ce-tl-dot { background: var(--vt-warning, #f59e0b); }
.ce-evt--progression .ce-tl-dot { background: var(--vt-danger, #ef4444); }
.ce-evt--improvement .ce-tl-dot { background: var(--vt-teal, #14b8a6); }
.ce-evt--resolution .ce-tl-dot { background: var(--vt-success, #22c55e); }
.ce-evt--abrupt .ce-tl-dot { background: #8b5cf6; }
.ce-evt--crossing .ce-tl-dot { background: var(--vt-info, #3b82f6); }
.ce-tl-body { flex: 1; min-width: 0; }
.ce-tl-line1 { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ce-tl-date { font-size: 0.78rem; color: var(--vt-text-muted); font-variant-numeric: tabular-nums; }
.ce-tl-marker { font-weight: 600; color: var(--vt-text-primary); }
.ce-tl-desc { margin: 4px 0; font-size: 0.9rem; color: var(--vt-text-secondary); }
.ce-tl-arrow { color: var(--vt-text-muted); }
.ce-tl-episode { margin: 2px 0 6px; font-size: 0.78rem; color: var(--vt-text-muted); display: flex; align-items: center; gap: 5px; }
.ce-badge.ce-evt-badge--onset { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-evt-badge--progression { background: color-mix(in srgb, var(--vt-danger, #ef4444) 16%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-evt-badge--improvement { background: color-mix(in srgb, var(--vt-teal, #14b8a6) 16%, transparent); color: var(--vt-teal, #14b8a6); }
.ce-badge.ce-evt-badge--resolution { background: color-mix(in srgb, var(--vt-success, #22c55e) 16%, transparent); color: var(--vt-success, #22c55e); }
.ce-badge.ce-evt-badge--abrupt { background: color-mix(in srgb, #8b5cf6 16%, transparent); color: #8b5cf6; }
.ce-badge.ce-evt-badge--crossing { background: color-mix(in srgb, var(--vt-info, #3b82f6) 16%, transparent); color: var(--vt-info, #3b82f6); }

/* ============================================================
   Insights Clínicos (feed priorizado, doc 10)
   ============================================================ */
.ce-insights { margin-top: 28px; }
.ce-insight-feed { display: flex; flex-direction: column; gap: 8px; }
.ce-insight-card { display: flex; flex-direction: column; gap: 6px; padding: 12px 14px; border-left: 3px solid transparent; }
.ce-insight-card.ce-prio--critical { border-left-color: var(--vt-danger, #ef4444); }
.ce-insight-card.ce-prio--high { border-left-color: var(--vt-warning, #f59e0b); }
.ce-insight-card.ce-prio--relevant { border-left-color: var(--vt-info, #3b82f6); }
.ce-insight-card.ce-prio--routine, .ce-insight-card.ce-prio--background { border-left-color: color-mix(in srgb, var(--vt-text-muted) 40%, transparent); }
.ce-insight-card__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ce-insight-card__title { font-weight: 600; color: var(--vt-text-primary); }
.ce-badge.ce-prio-badge--critical { background: color-mix(in srgb, var(--vt-danger, #ef4444) 16%, transparent); color: var(--vt-danger, #ef4444); }
.ce-badge.ce-prio-badge--high { background: color-mix(in srgb, var(--vt-warning, #f59e0b) 16%, transparent); color: var(--vt-warning, #f59e0b); }
.ce-badge.ce-prio-badge--relevant { background: color-mix(in srgb, var(--vt-info, #3b82f6) 16%, transparent); color: var(--vt-info, #3b82f6); }
.ce-badge.ce-prio-badge--routine, .ce-badge.ce-prio-badge--background { background: color-mix(in srgb, var(--vt-text-muted) 14%, transparent); color: var(--vt-text-muted); }
.ce-insight-link { font-size: 0.72rem; color: var(--vt-text-muted); background: color-mix(in srgb, var(--vt-text-muted) 10%, transparent); padding: 1px 7px; border-radius: var(--vt-radius-pill, 999px); }
.ce-insight-lim { display: flex; align-items: center; gap: 5px; margin: 6px 0 0; font-size: 0.78rem; color: var(--vt-text-muted); }

/* ============================================================
   Narrativas Clínicas (prosa longitudinal, doc 11)
   ============================================================ */
.ce-narratives { margin-top: 28px; }
.ce-narrative-list { display: flex; flex-direction: column; gap: 10px; }
.ce-narrative-card { padding: 14px 16px; }
.ce-narrative-card__head { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 6px; }
.ce-narrative-card__title { font-weight: 600; color: var(--vt-text-primary); }
.ce-narrative-card__period { font-size: 0.8rem; color: var(--vt-text-muted); }
.ce-narrative-card__text { margin: 0; color: var(--vt-text-primary); font-size: 0.92rem; line-height: 1.55; }
.ce-narrative-card__origin, .ce-narrative-card__ev { margin: 6px 0 0; font-size: 0.8rem; color: var(--vt-text-secondary); }

/* Contexto analítico: chip na linha + aviso e lista de sub-séries no drawer (marcador medido em >1 contexto). */
.obs-meta--ctx {
    background: color-mix(in srgb, var(--vt-info, #3b82f6) 14%, transparent);
    color: var(--vt-info, #3b82f6);
    font-weight: 600;
}
.obs-ctxnote {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 10px 0 4px;
    padding: 10px 12px;
    border-radius: 10px;
    background: color-mix(in srgb, var(--vt-info, #3b82f6) 8%, transparent);
    border: 1px solid color-mix(in srgb, var(--vt-info, #3b82f6) 24%, transparent);
    color: var(--vt-text-secondary);
    font-size: 0.82rem;
    line-height: 1.35;
}
.obs-ctxnote svg { color: var(--vt-info, #3b82f6); flex: 0 0 auto; }
.obs-ctxlist__hint { font-size: 0.78rem; color: var(--vt-text-muted); margin: 0 0 10px; }
.obs-ctxlist { display: flex; flex-direction: column; gap: 12px; }
.obs-ctx {
    padding: 12px;
    border-radius: 12px;
    border: 1px solid var(--vt-border, #e5e7eb);
    background: var(--vt-surface, #fff);
}
.obs-ctx.is-lead { border-color: color-mix(in srgb, var(--vt-info, #3b82f6) 40%, transparent); }
.obs-ctx__head { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.obs-ctx__label { font-weight: 600; font-size: 0.85rem; color: var(--vt-text-primary); }
.obs-ctx__lead {
    font-size: 0.68rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--vt-info, #3b82f6);
    background: color-mix(in srgb, var(--vt-info, #3b82f6) 12%, transparent);
    padding: 1px 6px;
    border-radius: 6px;
}
.obs-ctx__cur { margin-left: auto; font-weight: 600; }
.obs-ctx__desc { font-size: 0.8rem; color: var(--vt-text-secondary); margin: 6px 0 8px; }

/* Banner de escopo por sistema (deep-link "Ver página do estado"): sinaliza que a página carregou só um
   sistema e oferece limpar o escopo. */
.obs-scope {
    display: flex;
    align-items: center;
    gap: 8px;
    margin: 0 0 14px;
    padding: 8px 12px;
    border: 1px solid var(--vt-info, #2f80ed);
    background: var(--vt-tint-info, rgba(47, 128, 237, .08));
    border-radius: var(--vt-radius-lg, 12px);
    font-size: 0.85rem;
    color: var(--vt-text-primary);
}
.obs-scope .clinical-icon { color: var(--vt-info, #2f80ed); flex: none; }
.obs-scope__clear {
    margin-left: auto;
    flex: none;
    background: none;
    border: none;
    padding: 0;
    font-weight: 600;
    color: var(--vt-info, #2f80ed);
    cursor: pointer;
    white-space: nowrap;
}
.obs-scope__clear:hover { text-decoration: underline; }
