/* ============================================================
   Clínica Particular — módulo único (out/2026). Prefixo cp-*.
   Base: mc-modulo.css (tokens --p-* herdados de .mm/.mm-layer, claro/escuro; classes mm-*,
   inclusive as de LISTAS GRANDES: mm-lista, mm-grade, mm-menu, MmMaisLinhas/MmBuscaLista).
   Barra do módulo: Pages/Clinica/Shared/ClinicaSubnav (MmModuloNav genérico).
   Sem media query de largura (a escala do mc-scale.js cuida). "!important" só onde o
   custom-tables.css global também usa (mesma regra do mc-page.css).
   ============================================================ */

/* ---------- comuns ---------- */
:is(.cp, .mm-layer) .cp-dot { display: inline-block; width: 8px; height: 8px; border-radius: 50%; background: var(--ev, var(--p-blue)); margin-right: 5px; vertical-align: 0; }
:is(.cp, .mm-layer) .cp-ordem {
    display: inline-flex; align-items: center; justify-content: center; min-width: 20px; height: 20px; padding: 0 5px; border-radius: 50px;
    background: var(--p-teal); color: #fff; font: 800 .62rem var(--p-font); margin-left: 4px; vertical-align: 1px;
}
:is(.cp, .mm-layer) .cp-ordem.sm { min-width: 17px; height: 17px; font-size: .58rem; }
:is(.cp, .mm-layer) .cp-link { border: none; background: transparent; padding: 0; margin-left: 6px; color: var(--p-blue); font: 700 .7rem var(--p-font); text-decoration: underline; cursor: pointer; }
:is(.cp, .mm-layer) .cp-num { font-variant-numeric: tabular-nums; text-align: right; }
:is(.cp, .mm-layer) .cp-num-grande { font-size: 1.15rem !important; font-weight: 800 !important; height: 44px !important; }
:is(.cp, .mm-layer) .cp-seg-full { display: flex; width: 100%; }
:is(.cp, .mm-layer) .cp-seg-full button { flex: 1; justify-content: center; }
:is(.cp, .mm-layer) .cp-opts3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
:is(.cp, .mm-layer) .cp-opts4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
:is(.cp, .mm-layer) .cp-fim { display: flex; align-items: flex-end; }
:is(.cp, .mm-layer) .cp-largo { width: 100%; height: 40px; }
:is(.cp, .mm-layer) .cp-hr { border: none; border-top: 1px solid var(--p-border); margin: 4px 0; }
.cp .mm-tbl tr.cp-inativo td { opacity: .55; }
.cp .mm-tbl tr.cp-inativo:hover td { opacity: .9; }
.cp .mm-tbl tr.cp-sel td { background: var(--p-blue-soft) !important; }
.cp .mm-tbl td { vertical-align: middle !important; }
.cp .cp-tbl-alta { max-height: calc(100vh - 360px); }
.mm-layer .prmd-btn.cp-perigo { color: var(--p-red); border-color: var(--p-red-line); }
.mm-layer .prmd-btn.cp-perigo:hover:not(:disabled) { background: var(--p-red-soft); }

/* ---------- ações da linha (CpAcoesLinha) ---------- */
.cp .cp-acoes { gap: 4px; align-items: center; }
.cp .cp-acoes .mm-btn.xs { white-space: nowrap; }
.cp .cp-acoes .cp-btn-rec { color: var(--p-green); border-color: var(--p-green-line); background: var(--p-green-soft); }
.cp .cp-acoes .cp-btn-rec:hover:not(:disabled) { background: var(--p-green); color: #fff; border-color: var(--p-green); }
.cp .cp-acoes .mm-menu { min-width: 236px; }

/* ---------- Painel ---------- */
.cp .cp-painel { align-items: stretch; }
.cp .cp-cal { border-left: none; }
.cp .cp-cal .mm-cal-day { min-height: 104px; }
.cp .cp-cal .mm-ev { cursor: pointer; }
.cp .cp-cal-n { margin-left: 2px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 50px; background: var(--p-soft2); color: var(--p-muted); font-size: .6rem; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; }
.cp .mm-cal-day.hoje .cp-cal-n { background: var(--p-blue-line-soft); color: var(--p-blue); }
.cp .cp-dia { display: flex; flex-direction: column; min-height: 0; }
.cp .cp-dia-lista { flex: 1; overflow-y: auto; max-height: calc(100vh - 360px); padding: 10px 12px; }
.cp .cp-ag { padding: 8px 10px; gap: 9px; }
.cp .cp-ag.menu-on { position: relative; z-index: 5; }
.cp .cp-ag-hora { width: 46px; flex: none; font: 800 .78rem var(--p-mono); color: var(--p-ink); text-align: center; line-height: 1.3; }
.cp .cp-ag-hora i { font-size: 16px; color: var(--p-teal); }
.cp .cp-ag .mm-item-side { gap: 4px; }
.cp .cp-ag .mm-item-sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.cp .cp-mapa { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px 18px; }
.cp .cp-mapa-sec .mm-sec-lbl i { font-size: 13px; vertical-align: -2px; }
.cp .cp-mapa-it { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 9px; color: var(--p-text); font-size: .78rem; font-weight: 600; }
.cp .cp-mapa-it i { font-size: 16px; color: var(--p-blue); }
.cp .cp-mapa-it:hover { background: var(--p-blue-soft); color: var(--p-blue); }

/* ---------- Agendamentos (grade) ---------- */
.cp .cp-g-ag { --cols: 92px minmax(200px, 1.5fr) minmax(150px, 1fr) minmax(110px, .8fr) 92px 150px 170px; }
.cp .cp-g-ag .mm-grade-l .mm-xs i { font-size: 12px; vertical-align: -1px; }
.cp .cp-situacao { display: flex; flex-wrap: wrap; gap: 4px; }

/* ---------- Fila ---------- */
.cp .cp-fila-prof .mm-pill { height: 34px; }
.cp .cp-fila-prof .mm-av { margin-right: 2px; }
.cp .cp-fila { align-items: start; }
.cp .cp-fila-it { gap: 10px; }
.cp .cp-fila-it.passou { opacity: .55; }
.cp .cp-fila-it.agora { border-color: var(--p-purple-line); background: var(--p-purple-soft); }
.cp .cp-fila-ordem {
    width: 34px; height: 34px; border-radius: 50%; flex: none; display: flex; align-items: center; justify-content: center;
    background: var(--p-teal-soft); color: var(--p-teal); border: 1px solid var(--p-teal-line); font: 800 .92rem var(--p-font);
}
.cp .cp-fila-it.passou .cp-fila-ordem { background: var(--p-green-soft); color: var(--p-green); border-color: var(--p-green-line); }
.cp .cp-fila-hora { width: 54px; flex: none; text-align: center; font: 800 .78rem var(--p-mono); color: var(--p-ink); }
.cp .cp-fila .mm-item-side { gap: 5px; }

/* ---------- Atendimento ---------- */
.cp .cp-at-pac .mm-title { line-height: 1.15; }
.cp .cp-evolucao {
    width: 100%; min-height: 340px; padding: 12px 14px; border-radius: 12px; resize: vertical;
    border: 1px solid var(--p-border); background: var(--p-soft); color: var(--p-ink); font: 500 .86rem/1.6 var(--p-font);
}
.cp .cp-evolucao:focus { outline: none; border-color: var(--p-blue-light); box-shadow: var(--p-focus-ring); background: var(--p-surface); }

/* ---------- Caixa ---------- */
.cp .cp-abrir .mm-f .prmd-field { height: 40px; }
.cp .cp-caixa { align-items: start; }
.cp .cp-caixa-lista { max-height: calc(100vh - 380px); overflow-y: auto; }
.cp .cp-lista-pad { padding: 10px 12px; }
.cp .cp-rec-it { gap: 10px; }
.cp .cp-rec-quando { width: 52px; flex: none; text-align: center; }
.cp .cp-rec-quando .d { font-size: .7rem; font-weight: 800; color: var(--p-ink); text-transform: uppercase; }
.cp .cp-rec-quando .h { font: 700 .7rem var(--p-mono); color: var(--p-faint); }
.cp .cp-rec-valor { font-weight: 800; color: var(--p-ink); font-variant-numeric: tabular-nums; min-width: 78px; text-align: right; font-size: .82rem; }
.cp .cp-rec-it .mm-item-sub .mm-chip { margin-left: 2px; }
.cp .cp-porforma { flex-wrap: wrap; }
.cp .cp-porforma .mm-tag i { font-size: 13px; color: var(--p-faint); }
:is(.cp, .mm-layer) .cp-forma-l { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 10px; background: var(--p-surface); border: 1px solid var(--p-border); font-size: .78rem; }
:is(.cp, .mm-layer) .cp-forma-l i { font-size: 16px; color: var(--p-faint); }
:is(.cp, .mm-layer) .cp-forma-l.din i { color: var(--p-teal); }
:is(.cp, .mm-layer) .cp-forma-l b { color: var(--p-ink); font-variant-numeric: tabular-nums; }
:is(.cp, .mm-layer) .cp-forma-l.tot { background: var(--p-blue-soft); border-color: var(--p-blue-line-soft); font-weight: 800; color: var(--p-blue); }
.mm-layer .cp-conta { display: flex; flex-direction: column; gap: 2px; padding: 10px 12px; border-radius: 12px; background: var(--p-soft); border: 1px solid var(--p-border-soft); }
.mm-layer .cp-conta > div { display: flex; justify-content: space-between; gap: 12px; font-size: .78rem; color: var(--p-text); padding: 3px 0; }
.mm-layer .cp-conta b { color: var(--p-ink); font-variant-numeric: tabular-nums; }
.mm-layer .cp-conta .tot { border-top: 1px solid var(--p-border); margin-top: 4px; padding-top: 7px; font-weight: 800; color: var(--p-ink); font-size: .86rem; }
.mm-layer .cp-dif { height: 100%; min-height: 68px; display: flex; flex-direction: column; justify-content: center; padding: 8px 14px; border-radius: 12px; border: 1px solid var(--tom-line); background: var(--tom-soft); color: var(--tom); }
.mm-layer .cp-dif.ok { --tom: var(--p-green); --tom-soft: var(--p-green-soft); --tom-line: var(--p-green-line); }
.mm-layer .cp-dif.sobra { --tom: var(--p-orange); --tom-soft: var(--p-orange-soft); --tom-line: var(--p-orange-line); }
.mm-layer .cp-dif.falta { --tom: var(--p-red); --tom-soft: var(--p-red-soft); --tom-line: var(--p-red-line); }
.mm-layer .cp-dif .r { font-size: .62rem; font-weight: 800; letter-spacing: .9px; text-transform: uppercase; }
.mm-layer .cp-dif .v { font-size: 1.35rem; font-weight: 800; font-variant-numeric: tabular-nums; }

/* ---------- Recebimentos / Histórico (grades) ---------- */
.cp .cp-g-rec { --cols: 64px minmax(200px, 1.4fr) minmax(140px, 1fr) minmax(120px, .9fr) 104px minmax(110px, .7fr) 110px 128px; }
.cp .cp-g-hist { --cols: 74px minmax(180px, 1.3fr) minmax(140px, 1fr) minmax(110px, .8fr) 116px 96px 100px minmax(120px, .9fr) 44px; }
.cp .cp-chips { padding: 0 2px; }
.cp .cp-tbl-medico tr.cp-medico td { background: var(--p-soft); }
.cp .cp-tbl-medico tr.cp-medico td i { font-size: 15px; color: var(--p-blue); vertical-align: -2px; }
.cp .cp-tbl-medico tr.cp-medico-filho td { font-size: .74rem; }
.cp .cp-tbl-medico tr.cp-medico-filho td:first-child { padding-left: 34px; }
.cp .cp-tbl-medico tr.cp-total td { background: var(--p-blue-soft) !important; border-top: 2px solid var(--p-blue-line); color: var(--p-ink); }
.cp .cp-resumos { padding: 14px 16px; }
.cp .cp-resumo { box-shadow: none; }
.cp .cp-resumo .mm-bar-row { grid-template-columns: minmax(110px, 40%) 1fr auto; }

/* ---------- Comissões / Financeiro ---------- */
.cp .cp-bar-click { cursor: pointer; border-radius: 8px; padding: 2px 4px; margin: -2px -4px; }
.cp .cp-bar-click:hover { background: var(--p-soft); }
.cp .cp-fin .mm-g2 { align-items: start; }
.cp .cp-cols { height: 170px; }

/* ---------- Agenda ---------- */
.cp .cp-board td { min-width: 104px; }
.cp .cp-board .cp-bloco { cursor: pointer; margin-bottom: 3px; padding: 4px 6px; flex-direction: column; align-items: flex-start; gap: 0; white-space: normal; }
.cp .cp-board .cp-bloco .hr { font-size: .64rem; font-weight: 800; color: var(--p-ink); }
.cp .cp-board .cp-bloco .nm { font-size: .6rem; font-weight: 700; color: var(--p-muted); }

/* ---------- Tabela de preços ---------- */
.cp .cp-simular { position: sticky; top: 12px; }

/* ---------- Formas de pagamento ---------- */
.cp .cp-ico-forma { font-size: 16px; color: var(--p-blue); vertical-align: -3px; margin-right: 4px; }

/* ============================================================
   MODAIS (irmãos do .mc-scaled — .mm-layer)
   ============================================================ */
/* agendamento */
.mm-layer.cp-ag-modal .prmd-side { display: flex; flex-direction: column; gap: 10px; }
.mm-layer .cp-cadastrar { align-self: flex-start; border-style: dashed; }
.mm-layer .cp-pac-dados { display: flex; flex-direction: column; gap: 8px; }
.mm-layer .cp-pac-dados .mm-btn { align-self: flex-start; }
.mm-layer .cp-f-chegada { display: flex; align-items: flex-end; padding-bottom: 8px; }
.mm-layer .cp-f-chegada .mm-switch i { font-size: 15px; color: var(--p-teal); }
.mm-layer .cp-horarios { display: flex; flex-wrap: wrap; gap: 6px; }
.mm-layer .cp-hora {
    height: 32px; min-width: 62px; padding: 0 10px; border-radius: 9px; border: 1px solid var(--p-border); background: var(--p-surface);
    color: var(--p-ink); font: 700 .76rem var(--p-mono); transition: all .14s; display: inline-flex; align-items: center; justify-content: center;
}
.mm-layer button.cp-hora:hover { border-color: var(--p-blue-line); color: var(--p-blue); background: var(--p-blue-soft); }
.mm-layer .cp-hora.on { background: var(--p-blue-light); border-color: var(--p-blue-light); color: #fff; }
.mm-layer .cp-hora.passado { opacity: .5; }
.mm-layer .cp-horarios.mini .cp-hora { height: 24px; min-width: 50px; font-size: .66rem; border-radius: 7px; }
.mm-layer .cp-hora-manual { display: flex; align-items: center; gap: 10px; margin-top: 10px; }
.mm-layer .cp-hora-manual .prmd-flabel { margin: 0; white-space: nowrap; }
.mm-layer .cp-hora-manual .prmd-field { max-width: 130px; }
.mm-layer .cp-conf { display: flex; flex-direction: column; gap: 6px; }
.mm-layer .cp-conf-l { display: flex; gap: 10px; align-items: flex-start; padding: 8px 10px; border-radius: 10px; background: var(--p-surface); border: 1px solid var(--p-border); }
.mm-layer .cp-conf-l > i { font-size: 16px; color: var(--p-blue); margin-top: 1px; }
.mm-layer .cp-conf-l .r { font-size: .58rem; font-weight: 800; letter-spacing: .8px; color: var(--p-faint); text-transform: uppercase; }
.mm-layer .cp-conf-l .v { font-size: .8rem; font-weight: 700; color: var(--p-ink); }
.mm-layer .cp-conf-l .s { font-size: .68rem; color: var(--p-muted); }
:is(.cp, .mm-layer) .cp-conf-valor { padding: 10px 12px; border-radius: 12px; background: var(--tom-soft, var(--p-soft)); border: 1px solid var(--tom-line, var(--p-border)); }
:is(.cp, .mm-layer) .cp-conf-valor .r { font-size: .58rem; font-weight: 800; letter-spacing: .8px; color: var(--tom, var(--p-faint)); text-transform: uppercase; }
:is(.cp, .mm-layer) .cp-conf-valor .v { font-size: 1.3rem; font-weight: 800; color: var(--p-ink); font-variant-numeric: tabular-nums; line-height: 1.25; }
:is(.cp, .mm-layer) .cp-conf-valor .s { font-size: .68rem; color: var(--p-muted); line-height: 1.45; }
.mm-layer.cp-cad .mm-mbody { padding: 0; }

/* recebimento */
.mm-layer.cp-rec-modal .prmd-side { display: flex; flex-direction: column; gap: 10px; }
.mm-layer .cp-rec-caixa { padding: 7px 10px; }
.mm-layer .cp-valor { padding: 12px 14px; border-radius: 14px; border: 1px solid var(--p-blue-line-soft); background: var(--p-blue-soft); }
.mm-layer .cp-valor .r { font-size: .62rem; font-weight: 800; letter-spacing: .9px; color: var(--p-blue); text-transform: uppercase; }
.mm-layer .cp-valor-campo { display: flex; align-items: baseline; gap: 6px; }
.mm-layer .cp-valor-campo .m { font-size: 1.2rem; font-weight: 800; color: var(--p-blue); }
.mm-layer .cp-valor-campo input {
    width: 100%; max-width: 280px; border: 0; border-bottom: 2px dashed var(--p-blue-line); background: transparent; padding: 0 4px;
    font: 800 2rem/1.25 var(--p-font); color: var(--p-blue); font-variant-numeric: tabular-nums;
}
.mm-layer .cp-valor-campo input:focus { outline: none; border-bottom-style: solid; border-bottom-color: var(--p-blue-light); }
.mm-layer .cp-valor .s { font-size: .7rem; color: var(--p-muted); margin-top: 4px; }
.mm-layer .cp-formas { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 8px; }
.mm-layer .cp-forma {
    display: flex; flex-direction: column; align-items: flex-start; gap: 2px; padding: 10px 12px; border-radius: 12px;
    border: 1.5px solid var(--p-border); background: var(--p-surface); color: var(--p-ink); font: 700 .8rem var(--p-font); text-align: left; transition: all .14s;
}
.mm-layer .cp-forma i { font-size: 20px; color: var(--p-faint); }
.mm-layer .cp-forma small { font-size: .6rem; font-weight: 700; color: var(--p-teal); }
.mm-layer .cp-forma:hover { border-color: var(--p-blue-line); }
.mm-layer .cp-forma.on { border-color: var(--p-blue-light); background: var(--p-blue-soft); color: var(--p-blue); box-shadow: 0 0 0 3px var(--p-blue-line-soft); }
.mm-layer .cp-forma.on i { color: var(--p-blue); }
.mm-layer .cp-divisao { display: flex; flex-direction: column; gap: 6px; }
.mm-layer .cp-div-l { display: grid; grid-template-columns: minmax(0, 1fr) 140px 32px; gap: 8px; align-items: center; }
.mm-layer .cp-div-rodape { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; font-size: .74rem; color: var(--p-muted); }
.mm-layer .cp-div-rodape b { color: var(--p-ink); }
.mm-layer .prmd-btn.cp-btn-receber { min-width: 170px; }
