/* ============================================================
   Regulação (out/2026) — complementos do mc-modulo.css (prefixo rg-).
   Só o que a fundação mm-* não cobre: barra de risco da fila, posição
   municipal, seleção em lote, grade de horários, semana da agenda,
   colunas pareadas dos indicadores e o comprovante impresso.
   Tudo com os tokens --p-* (claro/escuro herdados de .mm/.mm-layer).
   ============================================================ */

/* ---- Fila: barra de risco na 1ª célula, posição, SLA ---- */
.rg-tbl tbody tr > td:first-child { box-shadow: inset 4px 0 0 var(--tom, transparent); }
.rg-tbl tbody tr.sel > td { background: var(--p-blue-soft); }
.rg-tbl td.rg-chk, .rg-tbl th.rg-chk { width: 34px; padding-right: 0; }
.rg-tbl .mm-check input { margin: 0; }
.rg-item-tit { font-size: .78rem; font-weight: 700; color: var(--p-ink); line-height: 1.3; }
.rg-item-sub { font-size: .66rem; font-weight: 600; color: var(--p-faint); margin-top: 1px; }
/* Botões de ícone do modal (prmd-iconbtn são flex/bloco) lado a lado na coluna de ações */
:is(.mm, .mm-layer) .mm-tbl td.acoes .prmd-iconbtn { display: inline-flex; vertical-align: middle; }
.rg-tipo-ico {
    width: 28px; height: 28px; border-radius: 8px; flex: none;
    display: inline-flex; align-items: center; justify-content: center; font-size: 15px;
    background: var(--tom-soft, var(--p-blue-soft)); color: var(--tom, var(--p-blue));
}
.rg-linha { display: flex; align-items: center; gap: 9px; min-width: 0; }
.rg-pos {
    display: inline-flex; align-items: center; justify-content: center;
    min-width: 34px; height: 26px; padding: 0 7px; border-radius: 8px;
    background: var(--p-soft2); color: var(--p-ink);
    font-family: var(--p-mono); font-size: .74rem; font-weight: 800; font-variant-numeric: tabular-nums;
}
.rg-pos.top { background: var(--p-blue-soft); color: var(--p-blue); box-shadow: inset 0 0 0 1px var(--p-blue-line); }
.rg-dot { width: 9px; height: 9px; border-radius: 50%; background: var(--tom, var(--p-faint)); flex: none; display: inline-block; }
.rg-sla { font-variant-numeric: tabular-nums; }

/* Barra de ações da seleção (gruda no rodapé da área visível) */
.rg-lote {
    position: sticky; bottom: 12px; z-index: 5;
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
    padding: 10px 14px; border-radius: 14px;
    background: var(--p-ink); color: #fff; box-shadow: var(--p-shadow-lg);
    animation: mmFadeUp .25s var(--p-ease);
}
[data-theme-mode="dark"] .rg-lote { background: #1c2e35; border: 1px solid var(--p-border-strong); }
.rg-lote-txt { font-size: .8rem; font-weight: 700; }
.rg-lote-txt b { font-weight: 800; }
.rg-lote .mm-btn { border-color: rgba(255,255,255,.18); background: rgba(255,255,255,.08); color: #fff; }
.rg-lote .mm-btn:hover:not(:disabled) { background: rgba(255,255,255,.18); color: #fff; border-color: rgba(255,255,255,.3); }
.rg-lote .mm-btn.pri { background: var(--p-grad-primary); border: none; }
.rg-lote .mm-btn.ok { background: var(--p-green); border-color: var(--p-green); }
.rg-lote .mm-btn.danger { background: var(--p-red); border-color: var(--p-red); color: #fff; }

/* Paginação */
.rg-pag { display: flex; align-items: center; gap: 8px; }
.rg-pag-txt { font-size: .72rem; font-weight: 600; color: var(--p-muted); margin-right: auto; }

/* ---- Modal da solicitação ---- */
.rg-posbox {
    display: flex; align-items: center; gap: 14px;
    padding: 12px 14px; border-radius: 14px;
    background: var(--p-blue-soft); border: 1px solid var(--p-blue-line-soft);
}
.rg-posbox-num { font-size: 1.9rem; font-weight: 800; color: var(--p-blue); letter-spacing: -1px; line-height: 1; font-variant-numeric: tabular-nums; }
.rg-posbox-num small { font-size: .8rem; font-weight: 700; letter-spacing: 0; margin-left: 1px; }
.rg-posbox-txt { font-size: .74rem; font-weight: 600; color: var(--p-text); line-height: 1.45; }
.rg-posbox-txt b { color: var(--p-ink); font-weight: 800; }
.rg-texto {
    font-size: .78rem; color: var(--p-ink); line-height: 1.6; white-space: pre-line;
    background: var(--p-soft); border: 1px solid var(--p-border-soft); border-radius: 12px; padding: 10px 12px;
}
.rg-texto.vazio { color: var(--p-faint); font-style: italic; }
.rg-acoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 8px; }
.rg-acao {
    display: flex; align-items: center; gap: 9px; text-align: left;
    padding: 9px 11px; border-radius: 11px;
    border: 1px solid var(--p-border); background: var(--p-surface); color: var(--p-ink);
    font-size: .76rem; font-weight: 700; transition: all .16s;
}
.rg-acao i { width: 28px; height: 28px; border-radius: 8px; flex: none; display: flex; align-items: center; justify-content: center; font-size: 15px;
    background: var(--tom-soft, var(--p-blue-soft)); color: var(--tom, var(--p-blue)); }
.rg-acao span { display: block; font-size: .64rem; font-weight: 600; color: var(--p-faint); margin-top: 1px; }
.rg-acao:hover:not(:disabled) { border-color: var(--tom-line, var(--p-blue-line)); background: var(--tom-soft, var(--p-blue-soft)); }
.rg-acao:disabled { opacity: .5; }
.rg-mini { display: flex; flex-direction: column; gap: 6px; }
.rg-mini .mm-item { padding: 8px 10px; }

/* Opções de risco: bolinha colorida no título */
.rg-risco-opts { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.rg-risco-opts .mm-opt-tit::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: var(--tom); flex: none; }

/* ---- Agendamento em lote ---- */
.rg-prev-wrap { max-height: 420px; overflow: auto; border: 1px solid var(--p-border); border-radius: 12px; }
.rg-hora { font-family: var(--p-mono); font-weight: 800; color: var(--p-ink); font-size: .8rem; }

/* ---- Agenda OCI: horários clicáveis ---- */
.rg-slots { display: grid; grid-template-columns: repeat(auto-fill, minmax(92px, 1fr)); gap: 7px; }
.rg-slot {
    display: flex; flex-direction: column; align-items: center; gap: 1px;
    padding: 7px 6px; border-radius: 10px;
    border: 1.5px solid var(--p-border); background: var(--p-surface); color: var(--p-ink);
    font: inherit; transition: all .14s;
}
.rg-slot b { font-family: var(--p-mono); font-size: .86rem; font-weight: 800; }
.rg-slot span { font-size: .6rem; font-weight: 700; color: var(--p-green); }
.rg-slot:hover:not(:disabled) { border-color: var(--p-blue-line); background: var(--p-blue-soft); }
.rg-slot.on { border-color: var(--p-blue-light); background: var(--p-blue-soft); box-shadow: 0 0 0 3px var(--p-blue-line-soft); }
.rg-slot:disabled { opacity: .55; background: var(--p-soft); cursor: not-allowed; }
.rg-slot:disabled span { color: var(--p-faint); }
.rg-slot.ultima span { color: var(--p-orange); }

/* Agenda OCI: semana (7 colunas) */
.rg-semana { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border-top: 1px solid var(--p-border); }
.rg-dia { border-right: 1px solid var(--p-border); min-height: 360px; display: flex; flex-direction: column; min-width: 0; }
.rg-dia:last-child { border-right: 0; }
.rg-dia-head {
    padding: 8px 10px; background: var(--p-soft); border-bottom: 1px solid var(--p-border);
    display: flex; align-items: baseline; gap: 6px; cursor: pointer;
}
.rg-dia-head .dw { font-size: .62rem; font-weight: 800; letter-spacing: .9px; color: var(--p-faint); text-transform: uppercase; }
.rg-dia-head .dn { font-size: 1rem; font-weight: 800; color: var(--p-ink); }
.rg-dia-head .qt { margin-left: auto; }
.rg-dia.hoje .rg-dia-head { background: var(--p-blue-soft); }
.rg-dia.hoje .rg-dia-head .dn { color: var(--p-blue); }
.rg-dia-body { padding: 6px; display: flex; flex-direction: column; gap: 4px; }
.rg-dia-body .mm-ev { cursor: pointer; }

/* ---- Ofertas: grade semanal ---- */
.rg-grade { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 8px; }
.rg-grade-col { background: var(--p-soft2); border-radius: 12px; padding: 8px; display: flex; flex-direction: column; gap: 6px; min-width: 0; }
.rg-grade-col.vazio { opacity: .8; }
.rg-grade-tit { display: flex; align-items: center; justify-content: space-between; font-size: .7rem; font-weight: 800; color: var(--p-ink); padding: 0 2px; }
.rg-grade-tit small { font-size: .6rem; font-weight: 700; color: var(--p-faint); }
.rg-faixa {
    background: var(--p-surface); border: 1px solid var(--p-border); border-radius: 10px; padding: 6px;
    display: flex; flex-direction: column; gap: 4px;
}
.rg-faixa.err { border-color: var(--p-red); box-shadow: 0 0 0 2px rgba(220,38,38,.12); }
.rg-faixa-row { display: flex; align-items: center; gap: 4px; }
.rg-faixa input { width: 100%; min-width: 0; padding: 3px 5px; border-radius: 7px; border: 1px solid var(--p-border); background: var(--p-surface); color: var(--p-ink); font-size: .7rem; font-weight: 700; font-family: var(--p-font); }
.rg-faixa input:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); }
.rg-faixa-lbl { font-size: .58rem; font-weight: 800; color: var(--p-faint); text-transform: uppercase; letter-spacing: .5px; flex: none; }
.rg-add-faixa {
    border: 1px dashed var(--p-border-strong); background: transparent; border-radius: 9px; padding: 5px;
    font-size: .66rem; font-weight: 800; color: var(--p-muted); transition: all .14s;
}
.rg-add-faixa:hover { border-color: var(--p-blue-light); color: var(--p-blue); background: var(--p-blue-soft); }

/* ---- Indicadores: colunas pareadas (solicitações × atendimentos) ---- */
.rg-cols2 .mm-col { gap: 3px; }
.rg-par { display: flex; align-items: flex-end; justify-content: center; gap: 3px; width: 100%; flex: 1; }
.rg-par .mm-col-bar { max-width: 14px; }
.rg-par .b1 { background: var(--p-blue-light); }
.rg-par .b2 { background: var(--p-green); }
.rg-par .b3 { background: var(--p-red); }

/* ---- Contratos ---- */
.rg-contratos { display: grid; grid-template-columns: repeat(auto-fill, minmax(360px, 1fr)); gap: 14px; }
.rg-contrato-top { display: flex; align-items: flex-start; gap: 10px; }
.rg-contrato-num { font-size: .92rem; font-weight: 800; color: var(--p-ink); letter-spacing: -.2px; }
.rg-fluxo { display: flex; align-items: center; gap: 6px; font-size: .72rem; font-weight: 700; color: var(--p-text); flex-wrap: wrap; }
.rg-fluxo i { color: var(--p-faint); }
.rg-consumo { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; margin-bottom: 5px; }
.rg-consumo b { font-size: .95rem; font-weight: 800; color: var(--p-ink); }
.rg-consumo span { font-size: .68rem; font-weight: 600; color: var(--p-muted); }
.rg-progress-lg { height: 10px; }

/* ---- Comprovante impresso (página com PrintLayout) ---- */
.rgc { font-family: 'Inter', Arial, Helvetica, sans-serif; color: #0b1f3a; background: #fff; }
.rgc-barra { position: sticky; top: 0; display: flex; gap: 8px; justify-content: flex-end; padding: 10px 16px; background: #f1f5f9; border-bottom: 1px solid #e2e8f0; }
.rgc-barra button { height: 34px; padding: 0 14px; border-radius: 9px; border: 1px solid #cbd5e1; background: #fff; color: #0b1f3a; font-weight: 700; font-size: 13px; cursor: pointer; display: inline-flex; align-items: center; gap: 6px; }
.rgc-barra button.pri { background: linear-gradient(135deg, #1a4a9e, #2563eb); border: none; color: #fff; }
.rgc-folha { max-width: 190mm; margin: 14px auto; padding: 10mm 12mm; border: 1px solid #e2e8f0; border-radius: 10px; }
.rgc-folha + .rgc-folha { page-break-before: always; break-before: page; }
.rgc-head { display: flex; align-items: center; gap: 12px; border-bottom: 2px solid #0b1f3a; padding-bottom: 8px; }
.rgc-head-ico { width: 40px; height: 40px; border-radius: 10px; background: #eff6ff; color: #1a4a9e; display: flex; align-items: center; justify-content: center; font-size: 22px; }
.rgc-head-txt { flex: 1; }
.rgc-tit { font-size: 17px; font-weight: 800; letter-spacing: -.2px; }
.rgc-sub { font-size: 11px; color: #475569; margin-top: 1px; }
.rgc-chave { text-align: right; }
.rgc-chave small { display: block; font-size: 9px; font-weight: 800; letter-spacing: 1px; color: #64748b; text-transform: uppercase; }
.rgc-chave b { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 20px; letter-spacing: 2px; }
.rgc-sec { margin-top: 12px; }
.rgc-sec-tit { font-size: 9.5px; font-weight: 800; letter-spacing: 1.2px; color: #64748b; text-transform: uppercase; border-bottom: 1px solid #e2e8f0; padding-bottom: 3px; margin-bottom: 6px; }
.rgc-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px 14px; }
.rgc-grid .full { grid-column: 1 / -1; }
.rgc-grid .dois { grid-column: span 2; }
.rgc-l { font-size: 9px; font-weight: 700; color: #64748b; text-transform: uppercase; letter-spacing: .5px; }
.rgc-v { font-size: 12.5px; font-weight: 700; color: #0b1f3a; }
.rgc-destaque { margin-top: 12px; border: 2px solid #1a4a9e; border-radius: 10px; padding: 10px 12px; display: grid; grid-template-columns: 1.1fr 1fr 1.6fr; gap: 10px; }
.rgc-destaque .rgc-v { font-size: 15px; font-weight: 800; }
.rgc-orient { font-size: 12px; line-height: 1.55; white-space: pre-line; border: 1px dashed #94a3b8; border-radius: 8px; padding: 8px 10px; background: #f8fafc; }
.rgc-lembretes { margin: 0; padding-left: 16px; font-size: 11px; line-height: 1.6; color: #334155; }
.rgc-ass { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; margin-top: 26px; }
.rgc-ass div { border-top: 1px solid #0b1f3a; padding-top: 3px; font-size: 10px; text-align: center; color: #475569; }
.rgc-rodape { margin-top: 12px; font-size: 9px; color: #94a3b8; text-align: center; }
.rgc-aviso { max-width: 520px; margin: 60px auto; text-align: center; color: #475569; font-size: 14px; }
@media print {
    .rgc-barra { display: none !important; }
    .rgc-folha { border: none; margin: 0 auto; padding: 0; max-width: none; border-radius: 0; }
    @page { size: A4; margin: 14mm; }
}

/* ============================================================
   OCI — Ofertas de Cuidados Integrados (PMAE, out/2026): pedido, execução,
   tabela por linha de cuidado e Comunicação com o Ministério (RNDS/APAC).
   Prefixo oci-*. Modal do pedido em Components/Oci/OciModalPedido.razor.
   ============================================================ */
.oci-linhas { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.oci-linhas .mm-opt { min-height: 54px; }
.oci-lista { display: flex; flex-direction: column; gap: 6px; max-height: 290px; overflow-y: auto; padding: 2px 2px 2px 0; }
.oci-lista .mm-item.off { opacity: .55; }
.oci-lista .mm-item-tit { font-size: .76rem; }
.oci-cod { font-family: var(--p-mono); font-size: .64rem; font-weight: 700; color: var(--p-faint); letter-spacing: .2px; }
.oci-checks { display: flex; flex-direction: column; gap: 7px; }
.oci-check { display: flex; align-items: flex-start; gap: 8px; font-size: .74rem; font-weight: 600; color: var(--p-text); line-height: 1.35; }
.oci-check i { font-size: 16px; flex: none; margin-top: -1px; }
.oci-check.ok i { color: var(--p-green); }
.oci-check.no i { color: var(--p-red); }
.oci-check.aviso i { color: var(--p-yellow); }
.oci-check b { color: var(--p-ink); }
.oci-comp { display: flex; flex-direction: column; gap: 5px; }
.oci-comp-item { display: grid; grid-template-columns: 22px minmax(0, 1fr) auto; gap: 8px; align-items: center;
    padding: 7px 9px; border-radius: 10px; border: 1px solid var(--p-border); background: var(--p-surface); }
.oci-comp-item > i { font-size: 17px; color: var(--p-faint); }
.oci-comp-item.feito { background: var(--p-green-soft); border-color: var(--p-green-line); }
.oci-comp-item.feito > i { color: var(--p-green); }
.oci-comp-item.falta { border-color: var(--p-orange-line); }
.oci-comp-item.falta > i { color: var(--p-orange); }
.oci-comp-nome { font-size: .74rem; font-weight: 700; color: var(--p-ink); line-height: 1.3; }
.oci-comp-sub { font-size: .62rem; font-weight: 600; color: var(--p-faint); margin-top: 1px; display: flex; gap: 6px; flex-wrap: wrap; align-items: center; }
.oci-comp-acao { display: flex; gap: 4px; align-items: center; }
.oci-prazo { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px;
    background: var(--tom-soft, var(--p-blue-soft)); border: 1px solid var(--tom-line, var(--p-blue-line)); }
.oci-prazo-num { font-size: 1.7rem; font-weight: 800; color: var(--tom, var(--p-blue)); line-height: 1; letter-spacing: -.5px; font-variant-numeric: tabular-nums; }
.oci-prazo-num small { font-size: .7rem; font-weight: 700; margin-left: 2px; }
.oci-prazo-txt { font-size: .74rem; font-weight: 600; color: var(--p-text); line-height: 1.45; }
.oci-fluxo { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 6px; }
.oci-passo { display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; border-radius: 10px; border: 1px solid var(--p-border); background: var(--p-soft); }
.oci-passo-n { font-size: .6rem; font-weight: 800; letter-spacing: 1px; color: var(--p-faint); text-transform: uppercase; }
.oci-passo-t { font-size: .72rem; font-weight: 800; color: var(--p-ink); display: flex; align-items: center; gap: 5px; }
.oci-passo-s { font-size: .62rem; font-weight: 600; color: var(--p-faint); line-height: 1.3; }
.oci-passo.feito { background: var(--p-green-soft); border-color: var(--p-green-line); }
.oci-passo.feito .oci-passo-t i { color: var(--p-green); }
.oci-passo.agora { background: var(--p-blue-soft); border-color: var(--p-blue-light); box-shadow: 0 0 0 2px var(--p-blue-line-soft); }
.oci-passo.agora .oci-passo-t i { color: var(--p-blue-light); }
.oci-passo.erro { background: var(--p-red-soft); border-color: rgba(220,38,38,.35); }
.oci-json { font-family: var(--p-mono); font-size: .68rem; line-height: 1.5; white-space: pre;
    background: var(--p-soft); border: 1px solid var(--p-border); border-radius: 10px; padding: 12px; max-height: 58vh; overflow: auto; color: var(--p-ink); }
.oci-linha-card { border: 1px solid var(--p-border); border-radius: 14px; background: var(--p-surface); overflow: hidden; }
.oci-linha-head { display: flex; align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid var(--p-border-soft); background: var(--p-soft); }
.oci-linha-head .mm-item-ico { width: 32px; height: 32px; font-size: 16px; }
.oci-linha-tit { font-size: .84rem; font-weight: 800; color: var(--p-ink); }
.oci-linhas-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
.oci-tab-row { display: grid; grid-template-columns: 112px minmax(0, 1fr) 92px 74px 28px; gap: 10px; align-items: center;
    padding: 9px 14px; border-bottom: 1px solid var(--p-border-soft); cursor: pointer; transition: background .15s; }
.oci-tab-row:hover { background: var(--p-blue-soft); }
.oci-tab-row:last-child { border-bottom: none; }
.oci-tab-row.aberto { background: var(--p-soft); }
.oci-tab-nome { font-size: .76rem; font-weight: 700; color: var(--p-ink); line-height: 1.3; }
.oci-tab-val { font-size: .74rem; font-weight: 800; color: var(--p-ink); text-align: right; font-variant-numeric: tabular-nums; }
.oci-tab-det { padding: 10px 14px 14px; background: var(--p-soft); border-bottom: 1px solid var(--p-border-soft); display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(0, 1fr); gap: 14px; }
.oci-cids { display: flex; flex-wrap: wrap; gap: 4px; max-height: 150px; overflow-y: auto; }
.oci-status { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
.oci-status-card { border: 1px solid var(--p-border); border-radius: 14px; background: var(--p-surface); padding: 14px 16px; display: flex; flex-direction: column; gap: 10px; }
.oci-status-top { display: flex; align-items: center; gap: 10px; }
.oci-status-ico { width: 38px; height: 38px; border-radius: 11px; display: flex; align-items: center; justify-content: center; font-size: 19px; background: var(--tom-soft); color: var(--tom); flex: none; }
.oci-status-tit { font-size: .86rem; font-weight: 800; color: var(--p-ink); }
.oci-status-sub { font-size: .68rem; font-weight: 600; color: var(--p-faint); }
.oci-status-nums { display: flex; gap: 16px; flex-wrap: wrap; }
.oci-status-num b { display: block; font-size: 1.25rem; font-weight: 800; color: var(--p-ink); line-height: 1.1; font-variant-numeric: tabular-nums; }
.oci-status-num span { font-size: .62rem; font-weight: 700; color: var(--p-faint); text-transform: uppercase; letter-spacing: .6px; }
