/* =====================================================================================
   SISCAN — preventivos do câncer (nov/2026), na fundação mm-*. As listas são grades .mm-grade
   (mc-modulo.css); aqui só as colunas de cada uma e as peças próprias. Só tokens --p-*; nada de
   media query de largura (mc-scaled cuida da escala).
   ===================================================================================== */

.siscan .siscan-det { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(320px, 1fr); gap: 14px; align-items: start; }

.siscan .siscan-subitem { display: flex; align-items: center; gap: 10px; padding: 10px 14px; border-top: 1px solid var(--p-border-soft);
    color: inherit; text-decoration: none; }
.siscan .siscan-subitem:first-child { border-top: none; }
a.siscan-subitem:hover { background: var(--p-soft); }
.siscan .siscan-num { width: 112px; flex: none; font-family: var(--p-mono); font-size: .72rem; font-weight: 700; color: var(--p-ink); white-space: nowrap; }
.siscan .siscan-alerta { color: var(--p-orange); font-weight: 700; font-size: .72rem; white-space: nowrap; }
.siscan .siscan-alerta.grave { color: var(--p-red); }

/* Barras por tipo de exame. */
.siscan .siscan-barra { display: flex; align-items: center; gap: 10px; padding: 5px 0; font-size: .74rem; color: var(--p-text); }
.siscan .siscan-barra .rot { width: 96px; flex: none; font-weight: 600; }
.siscan .siscan-barra .mm-bar-track { flex: 1; }
.siscan .siscan-barra b { width: 32px; text-align: right; color: var(--p-ink); font-variant-numeric: tabular-nums; }

/* Colunas por mês. */
.siscan .siscan-colunas { display: flex; align-items: flex-end; gap: 10px; height: 130px; }
.siscan .siscan-colunas .col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 4px; height: 100%; }
.siscan .siscan-colunas .col b { font-size: .72rem; color: var(--p-ink); font-variant-numeric: tabular-nums; }
.siscan .siscan-colunas .col span { font-size: .66rem; font-weight: 700; color: var(--p-faint); text-transform: uppercase; }
.siscan .siscan-colunas .barra { flex: 1; width: 100%; display: flex; align-items: flex-end; background: var(--p-soft); border-radius: 8px; overflow: hidden; }
.siscan .siscan-colunas .barra > div { width: 100%; background: var(--p-blue-line); border-radius: 8px 8px 0 0; min-height: 2px; }
.siscan .siscan-colunas .col.atual .barra > div { background: var(--p-grad-primary); }
.siscan .siscan-colunas .col.atual span { color: var(--p-blue); }

/* ---- Requisições ---- */
.siscan .siscan-g-req { --cols: 122px minmax(210px, 1.4fr) minmax(170px, 1.1fr) 130px minmax(150px, 1fr) 160px 40px; }
.siscan .siscan-sub { font-size: .7rem; color: var(--p-faint); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.siscan .siscan-sub.siscan-alerta { color: var(--p-orange); font-weight: 700; }
.siscan .mm-checks, .mm-layer .mm-checks { display: flex; flex-wrap: wrap; gap: 10px 22px; }

/* Andamento da requisição (linha do tempo horizontal) e textos livres do detalhe. */
.mm-layer .siscan-passos { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
.mm-layer .siscan-passo { display: flex; gap: 8px; align-items: flex-start; padding: 10px; border: 1px solid var(--p-border); border-radius: 12px; background: var(--p-soft); opacity: .6; }
.mm-layer .siscan-passo.on { opacity: 1; background: var(--p-green-soft); border-color: var(--p-green-line); }
.mm-layer .siscan-passo > i { font-size: 1.1rem; color: var(--p-faint); }
.mm-layer .siscan-passo.on > i { color: var(--p-green); }
.mm-layer .siscan-passo b { display: block; font-size: .74rem; color: var(--p-ink); }
.mm-layer .siscan-passo span { display: block; font-size: .68rem; color: var(--p-muted); }
.mm-layer .siscan-texto { margin-top: 10px; font-size: .78rem; color: var(--p-text); white-space: pre-line; }
.mm-layer .siscan-texto b { display: block; font-size: .66rem; letter-spacing: .06em; text-transform: uppercase; color: var(--p-faint); margin-bottom: 2px; }
.mm-layer .siscan-coleta { display: flex; gap: 10px; align-items: center; }
.mm-layer .siscan-coleta .prmd-field { max-width: 180px; }

/* ---- Resultados ---- */
.siscan .siscan-g-res { --cols: 122px minmax(210px, 1.3fr) minmax(170px, 1fr) 120px minmax(200px, 1.4fr) 150px 40px; }

/* ---- Seguimento ---- */
.siscan .siscan-g-seg { --cols: minmax(220px, 1.3fr) minmax(220px, 1.5fr) 140px 190px 130px 40px; }
.mm-layer .siscan-alerta { color: var(--p-orange); font-weight: 700; }
.mm-layer .siscan-linha { display: flex; flex-direction: column; gap: 0; border-left: 2px solid var(--p-border); margin-left: 14px; padding-left: 0; }
.mm-layer .siscan-passo-l { display: flex; gap: 10px; align-items: flex-start; padding: 8px 0 10px; font-size: .76rem; color: var(--p-text); position: relative; }
.mm-layer .siscan-passo-l > i { width: 28px; height: 28px; margin-left: -15px; border-radius: 50%; display: grid; place-items: center; flex: none;
    background: var(--p-blue-soft); color: var(--p-blue); border: 2px solid var(--p-surface); font-size: .95rem; }
.mm-layer .siscan-passo-l b { color: var(--p-ink); }

/* ---- Rastreio e convocação ---- */
.siscan .siscan-g-ras { --cols: 34px minmax(220px, 1.3fr) minmax(170px, 1fr) 120px 140px 160px 150px; }
.siscan .siscan-troca { display: inline-flex; border: 1px solid var(--p-border); border-radius: 10px; overflow: hidden; background: var(--p-surface); }
.siscan .siscan-troca button { border: 0; background: transparent; padding: 7px 14px; font-size: .78rem; font-weight: 700; color: var(--p-muted); cursor: pointer; display: inline-flex; gap: 6px; align-items: center; }
.siscan .siscan-troca button.on { background: var(--p-grad-primary); color: #fff; }
.siscan .siscan-barra-sel { display: flex; align-items: center; gap: 10px; padding: 10px 14px; margin-bottom: 12px; border: 1px solid var(--p-blue-line); background: var(--p-blue-soft);
    border-radius: 12px; font-size: .8rem; color: var(--p-ink); position: sticky; top: 0; z-index: 2; }

/* ---- Faturamento BPA ---- */
.siscan .siscan-g-fat { --cols: minmax(190px, 1.2fr) minmax(210px, 1.3fr) minmax(170px, 1fr) 110px 110px 150px 40px; }

/* ---- Histórico da paciente ---- */
.siscan .siscan-duplo { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; }
.siscan .siscan-acoes-l { display: flex; gap: 4px; flex: none; }

/* ---- Relatórios ---- */
.siscan .siscan-g-prod { --cols: minmax(220px, 1.6fr) 100px 100px 100px 130px 140px 140px; }
.siscan .siscan-atalhos { display: flex; gap: 6px; margin-bottom: 12px; }

/* ---- Laudo de TFD ---- */
.siscan .siscan-g-tfd { --cols: 110px minmax(210px, 1.3fr) 150px minmax(190px, 1.2fr) minmax(150px, 1fr) 150px 40px; }
