/* ============================================================
   Recepção do Centro de Imagem (/imagem/recepcao)
   Implementa "Recepcao Centro de Imagem.dc.html" do projeto Claude Design.

   CSS PRÓPRIO E AUTOSSUFICIENTE — esta tela não usa NADA do YNEX/Bootstrap.
   Todo seletor é prefixado .rcp- e ancorado em .rcp-page, e os elementos
   nativos (button/input/select/textarea) são resetados aqui dentro para o
   Reboot do Bootstrap (carregado globalmente pelo _Layout) não vazar.

   O header principal do app (barra superior + menu) continua sendo o
   original do layout — esta folha não o toca.

   Paleta: azul institucional MedCare (design system do Claude Design),
   não a teal de medcare-tokens.css. As variáveis --rcp-* são locais.
   ============================================================ */

.rcp-page {
    --rcp-bg: #f1f5f9;
    --rcp-surface: #ffffff;
    --rcp-surface-2: #f8fafc;
    --rcp-input: #ffffff;
    --rcp-border: #e2e8f0;
    --rcp-border-strong: #cbd5e1;
    --rcp-text: #334155;
    --rcp-text-strong: #0b1f3a;
    --rcp-text-muted: #64748b;
    --rcp-brand: #1a4a9e;
    --rcp-brand-ink: #ffffff;
    --rcp-link: #1d4ed8;
    --rcp-shadow: 0 1px 2px rgba(11, 31, 58, .06), 0 6px 20px rgba(11, 31, 58, .06);
    --rcp-shadow-lg: 0 18px 50px rgba(11, 31, 58, .22);
    --rcp-scrim: rgba(11, 31, 58, .45);

    font-family: Inter, 'IBM Plex Sans', system-ui, -apple-system, sans-serif;
    background: var(--rcp-bg);
    color: var(--rcp-text);
    min-height: 100%;
    padding: 20px 22px 96px;
    box-sizing: border-box;
}

[data-theme-mode="dark"] .rcp-page {
    --rcp-bg: #070c14;
    --rcp-surface: #0e1626;
    --rcp-surface-2: #121c2e;
    --rcp-input: #0b1422;
    --rcp-border: #22314b;
    --rcp-border-strong: #2f4160;
    --rcp-text: #dbe4f0;
    --rcp-text-strong: #f4f8ff;
    --rcp-text-muted: #90a2bd;
    --rcp-brand: #2563eb;
    --rcp-link: #7db1ff;
    --rcp-shadow: 0 1px 2px rgba(0, 0, 0, .5), 0 8px 24px rgba(0, 0, 0, .35);
    --rcp-shadow-lg: 0 24px 60px rgba(0, 0, 0, .6);
    --rcp-scrim: rgba(2, 6, 14, .66);
}

/* ---------- Tons semânticos (pílulas, alertas, botões de menu) ----------
   Cada elemento com data-tone expõe --t-bg/--t-fg/--t-line para os filhos.
   É o mesmo mecanismo do design: quem pinta é o pai que carrega o tom. */
.rcp-page [data-tone="neutral"] { --t-bg: #f1f5f9; --t-fg: #475569; --t-line: #cbd5e1; }
.rcp-page [data-tone="brand"]   { --t-bg: #eff6ff; --t-fg: #1a4a9e; --t-line: #bfdbfe; }
.rcp-page [data-tone="success"] { --t-bg: #ecfdf5; --t-fg: #047857; --t-line: #a7f3d0; }
.rcp-page [data-tone="warn"]    { --t-bg: #fff7ed; --t-fg: #b45309; --t-line: #fed7aa; }
.rcp-page [data-tone="danger"]  { --t-bg: #fef2f2; --t-fg: #b91c1c; --t-line: #fecaca; }
.rcp-page [data-tone="info"]    { --t-bg: #ecfeff; --t-fg: #0e7490; --t-line: #a5f3fc; }
.rcp-page [data-tone="purple"]  { --t-bg: #f5f3ff; --t-fg: #6d28d9; --t-line: #ddd6fe; }

[data-theme-mode="dark"] .rcp-page [data-tone="neutral"] { --t-bg: #1a2436; --t-fg: #b3c2d8; --t-line: #2f4160; }
[data-theme-mode="dark"] .rcp-page [data-tone="brand"]   { --t-bg: #12233f; --t-fg: #93c0ff; --t-line: #24406b; }
[data-theme-mode="dark"] .rcp-page [data-tone="success"] { --t-bg: #0c2a22; --t-fg: #6ee7b7; --t-line: #1c4b3c; }
[data-theme-mode="dark"] .rcp-page [data-tone="warn"]    { --t-bg: #2c2010; --t-fg: #fbbf24; --t-line: #4d3714; }
[data-theme-mode="dark"] .rcp-page [data-tone="danger"]  { --t-bg: #2d1417; --t-fg: #fca5a5; --t-line: #55212a; }
[data-theme-mode="dark"] .rcp-page [data-tone="info"]    { --t-bg: #0b2630; --t-fg: #67e8f9; --t-line: #164a58; }
[data-theme-mode="dark"] .rcp-page [data-tone="purple"]  { --t-bg: #1d1836; --t-fg: #c4b5fd; --t-line: #342a5e; }

/* ---------- Reset local (o Reboot do Bootstrap é global) ---------- */
.rcp-page *,
.rcp-page *::before,
.rcp-page *::after { box-sizing: border-box; }

/* Reset SEM `color`: `.rcp-page button` (0,1,1) venceria as classes de variante
   (.rcp-btn-brand, 0,1,0) e o texto branco sobre o azul virava texto escuro —
   invisível no tema claro. Cada botão pega a cor da própria classe. */
.rcp-page button {
    font: inherit;
    margin: 0;
    text-transform: none;
}

/* Também sem `color` aqui, pela mesma razão: .rcp-pos e .rcp-val-novo querem o
   texto forte e perderiam para o reset de elemento. */
.rcp-page input,
.rcp-page select,
.rcp-page textarea {
    font: inherit;
    margin: 0;
}

.rcp-page input:focus-visible,
.rcp-page select:focus-visible,
.rcp-page textarea:focus-visible,
.rcp-page button:focus-visible {
    outline: 2px solid var(--rcp-brand);
    outline-offset: 1px;
}

.rcp-page h1, .rcp-page h2, .rcp-page h3, .rcp-page p { margin: 0; }
/* Mesma armadilha nos links: só o link "de texto" recebe a cor de link. Âncora
   com classe (ex.: .rcp-btn-brand do Painel TV) manda na própria cor. */
.rcp-page a { text-decoration: none; }
.rcp-page a:not([class]) { color: var(--rcp-link); }
.rcp-page a:not([class]):hover { text-decoration: underline; }
.rcp-page i { font-style: normal; }
.rcp-page ::placeholder { color: var(--rcp-text-muted); opacity: .75; }

/* ---------- Grade geral ---------- */
.rcp-wrap {
    max-width: 1560px;
    margin: 0 auto;
    display: flex;
    flex-direction: column;
    gap: 16px;
}

.rcp-head {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-end;
    gap: 16px;
    justify-content: space-between;
}

.rcp-eyebrow {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 11.5px;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-eyebrow i { font-size: 14px; color: var(--rcp-brand); }

.rcp-title {
    margin: 6px 0 4px;
    font-size: 26px;
    font-weight: 800;
    letter-spacing: -.6px;
    color: var(--rcp-text-strong);
    line-height: 1.15;
}
.rcp-sub { font-size: 13.5px; color: var(--rcp-text-muted); text-wrap: pretty; }

.rcp-head-acoes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }

/* ---------- Botões ---------- */
.rcp-btn {
    display: inline-flex;
    align-items: center;
    gap: 7px;
    padding: 9px 14px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface);
    color: var(--rcp-text);
    font-size: 13px;
    font-weight: 600;
    cursor: pointer;
    transition: border-color .12s ease, color .12s ease;
}
.rcp-btn i { font-size: 15px; }
.rcp-btn:hover:not(:disabled) { border-color: var(--rcp-brand); color: var(--rcp-brand); text-decoration: none; }
.rcp-btn:disabled { opacity: .55; cursor: not-allowed; }

.rcp-btn-brand {
    border-color: transparent;
    background: var(--rcp-brand);
    color: var(--rcp-brand-ink);
    font-weight: 700;
}
.rcp-btn-brand:hover:not(:disabled) { filter: brightness(1.08); border-color: transparent; color: var(--rcp-brand-ink); }

.rcp-btn-success { border-color: transparent; background: #047857; color: #fff; font-weight: 700; }
.rcp-btn-success:hover:not(:disabled) { filter: brightness(1.08); border-color: transparent; color: #fff; }
.rcp-btn-warn { border-color: transparent; background: #b45309; color: #fff; font-weight: 700; }
.rcp-btn-warn:hover:not(:disabled) { filter: brightness(1.08); border-color: transparent; color: #fff; }
.rcp-btn-danger { border-color: transparent; background: #b91c1c; color: #fff; font-weight: 700; }
.rcp-btn-danger:hover:not(:disabled) { filter: brightness(1.08); border-color: transparent; color: #fff; }

.rcp-btn-sm { padding: 8px 12px; font-size: 12.5px; }

.rcp-btn-dashed {
    justify-content: center;
    border-style: dashed;
    border-color: var(--rcp-border-strong);
    background: transparent;
}

/* Botão quadrado só de ícone */
.rcp-icobtn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    flex: 0 0 auto;
    border: 1px solid var(--rcp-border);
    border-radius: 10px;
    background: var(--rcp-surface);
    color: var(--rcp-text-muted);
    cursor: pointer;
    transition: border-color .12s ease, color .12s ease;
}
.rcp-icobtn i { font-size: 16px; }
.rcp-icobtn:hover:not(:disabled) { border-color: var(--rcp-brand); color: var(--rcp-brand); }
.rcp-icobtn:disabled { opacity: .4; cursor: not-allowed; }
.rcp-icobtn-sm { width: 28px; height: 28px; border-radius: 8px; }
.rcp-icobtn-sm i { font-size: 14px; }
.rcp-icobtn-xs { width: 32px; height: 32px; border-radius: 9px; }
.rcp-icobtn-xs i { font-size: 15px; }

/* ---------- Cartões ---------- */
.rcp-cols { display: flex; flex-wrap: wrap; gap: 16px; align-items: flex-start; }

.rcp-card {
    background: var(--rcp-surface);
    border: 1px solid var(--rcp-border);
    border-radius: 16px;
    box-shadow: var(--rcp-shadow);
    overflow: hidden;
}

.rcp-col-form {
    flex: 1 1 320px;
    max-width: 400px;
    position: sticky;
    top: 16px;
    display: flex;
    flex-direction: column;
}
.rcp-col-fila { flex: 999 1 440px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }

.rcp-card-head {
    display: flex;
    align-items: center;
    gap: 9px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
}
.rcp-card-head > i { font-size: 17px; color: var(--rcp-brand); }
.rcp-card-head h2 { font-size: 14.5px; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-card-head-nota {
    margin-left: auto;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}

.rcp-card-body { padding: 16px 18px 18px; display: flex; flex-direction: column; gap: 20px; }

.rcp-card-foot {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 13px 18px;
    border-top: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
}
.rcp-card-foot-dica { flex: 1; min-width: 0; font-size: 11.5px; color: var(--rcp-text-muted); text-wrap: pretty; }

/* ---------- Rótulo de etapa [P] [A] [E] ---------- */
.rcp-etapa { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
.rcp-etapa-key {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 6px;
    background: var(--rcp-brand);
    color: var(--rcp-brand-ink);
    font-size: 11px;
    font-weight: 800;
}
.rcp-etapa-txt {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rcp-text-strong);
}
.rcp-etapa-cont { margin-left: auto; font-size: 11.5px; font-weight: 600; color: var(--rcp-text-muted); }

/* ---------- Campos ---------- */
.rcp-label {
    display: block;
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
    margin-bottom: 6px;
}
.rcp-hint { margin-top: 6px; font-size: 11px; color: var(--rcp-text-muted); text-wrap: pretty; }

.rcp-input,
.rcp-select,
.rcp-textarea {
    width: 100%;
    padding: 9px 11px;
    border: 1px solid var(--rcp-border);
    border-radius: 10px;
    background: var(--rcp-input);
    color: var(--rcp-text);
    font-size: 13.5px;
}
.rcp-textarea { resize: vertical; }
.rcp-select { cursor: pointer; }

/* Caixa de busca com ícone dentro */
.rcp-busca {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 0 6px 0 11px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-input);
}
.rcp-busca > i { font-size: 15px; color: var(--rcp-text-muted); flex: 0 0 auto; }
.rcp-busca input {
    flex: 1;
    min-width: 0;
    padding: 10px 0;
    border: 0;
    background: transparent;
    color: var(--rcp-text);
    font-size: 13.5px;
    outline: none;
}
.rcp-busca-limpar {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    flex: 0 0 auto;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rcp-text-muted);
    cursor: pointer;
}
.rcp-busca-limpar:hover { background: var(--rcp-surface-2); color: var(--rcp-text); }
.rcp-busca-catalogo {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 30px;
    height: 30px;
    flex: 0 0 auto;
    border: 1px solid var(--rcp-border);
    border-radius: 8px;
    background: var(--rcp-surface);
    color: var(--rcp-text);
    cursor: pointer;
}
.rcp-busca-catalogo:hover,
.rcp-busca-catalogo.is-on { border-color: var(--rcp-brand); color: var(--rcp-brand); }

/* ---------- Segmentado (prioridade) ---------- */
.rcp-seg {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 6px;
    padding: 4px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface-2);
}
.rcp-seg button {
    padding: 8px 10px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rcp-text-muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.rcp-seg button.is-on { background: var(--rcp-brand); color: var(--rcp-brand-ink); }

/* ---------- Chips de origem ---------- */
.rcp-origens { display: grid; grid-template-columns: 1fr 1fr; gap: 6px; }
.rcp-origem {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
    padding: 9px 11px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface);
    color: var(--rcp-text-muted);
    text-align: left;
    cursor: pointer;
}
.rcp-origem.is-on { border-color: var(--t-line); background: var(--t-bg); color: var(--t-fg); }
.rcp-origem b { font-size: 12.5px; font-weight: 700; }
.rcp-origem span { font-size: 10.5px; font-weight: 600; opacity: .8; }

/* ---------- Lista suspensa (pacientes e exames) ---------- */
.rcp-drop-anchor { position: relative; }
.rcp-drop {
    position: absolute;
    z-index: 40;
    left: 0;
    right: 0;
    top: calc(100% + 6px);
    max-height: 292px;
    overflow: auto;
    border: 1px solid var(--rcp-border);
    border-radius: 12px;
    background: var(--rcp-surface);
    box-shadow: var(--rcp-shadow-lg);
}
/* variante estática (resultados de paciente ficam no fluxo, como no design) */
.rcp-lista {
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    overflow: hidden;
    background: var(--rcp-surface);
}
.rcp-opt {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 10px;
    padding: 10px 12px;
    border: 0;
    border-top: 1px solid var(--rcp-border);
    background: transparent;
    color: var(--rcp-text);
    text-align: left;
    cursor: pointer;
}
.rcp-opt:first-child { border-top: 0; }
.rcp-opt:hover { background: var(--rcp-surface-2); }
.rcp-opt-nome { display: block; font-size: 13px; font-weight: 600; color: var(--rcp-text-strong); }
.rcp-opt-sub { display: block; font-size: 11.5px; color: var(--rcp-text-muted); }
.rcp-opt-preco { font-size: 12.5px; font-weight: 700; color: var(--rcp-text-muted); white-space: nowrap; }
.rcp-opt-corpo { flex: 1; min-width: 0; }
.rcp-drop-foot {
    padding: 8px 12px;
    border-top: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
    font-size: 11px;
    color: var(--rcp-text-muted);
}
.rcp-drop-vazio { padding: 14px 12px; font-size: 12.5px; color: var(--rcp-text-muted); }

/* Selo de ID do paciente */
.rcp-id {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    flex: 0 0 auto;
    padding: 4px 9px;
    border: 1px solid var(--t-line, var(--rcp-border));
    border-radius: 8px;
    background: var(--t-bg, var(--rcp-surface-2));
    font-size: 12px;
    font-weight: 800;
    color: var(--t-fg, var(--rcp-text-strong));
    white-space: nowrap;
}
.rcp-id small { font-size: 9.5px; font-weight: 700; letter-spacing: .1em; }
.rcp-id-solid { border-color: transparent; background: var(--rcp-brand); color: var(--rcp-brand-ink); padding: 3px 9px; }

/* Cartão do paciente escolhido */
.rcp-paciente {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 13px;
    border: 1px solid var(--t-line);
    border-radius: 12px;
    background: var(--t-bg);
}
.rcp-paciente > i { font-size: 20px; color: var(--t-fg); }
.rcp-paciente-corpo { flex: 1; min-width: 0; }
.rcp-paciente-linha { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rcp-paciente-nome { font-size: 13.5px; font-weight: 700; color: var(--rcp-text-strong); text-wrap: pretty; }
.rcp-paciente-det { margin-top: 2px; font-size: 11.5px; color: var(--rcp-text-muted); }

/* ---------- Chips de exame escolhido ---------- */
.rcp-chips { display: flex; flex-wrap: wrap; gap: 7px; }
.rcp-chip {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    padding: 6px 8px 6px 11px;
    border: 1px solid var(--t-line);
    border-radius: 999px;
    background: var(--t-bg);
}
.rcp-chip b { font-size: 12.5px; font-weight: 700; color: var(--t-fg); }
.rcp-chip span { font-size: 11px; color: var(--rcp-text-muted); }
.rcp-chip button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border: 0;
    border-radius: 999px;
    background: transparent;
    color: var(--t-fg);
    cursor: pointer;
}
.rcp-chip button:hover { background: var(--rcp-surface); }
.rcp-chip button i { font-size: 13px; }

/* Caixa vazia tracejada */
.rcp-vazio {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 11px 12px;
    border: 1px dashed var(--rcp-border-strong);
    border-radius: 11px;
    font-size: 12.5px;
    color: var(--rcp-text-muted);
}
.rcp-vazio i { font-size: 15px; }

/* ---------- Faixas de aviso / total ---------- */
.rcp-nota {
    display: flex;
    align-items: flex-start;
    gap: 9px;
    padding: 11px 13px;
    border: 1px solid var(--t-line);
    border-radius: 11px;
    background: var(--t-bg);
    font-size: 12.5px;
    color: var(--t-fg);
}
.rcp-nota i { font-size: 16px; flex: 0 0 auto; }
/* .rcp-page a:not([class]) é (0,2,1); precisa deste peso para o link herdar o tom da faixa. */
.rcp-page .rcp-nota a { color: inherit; text-decoration: underline; }

.rcp-total {
    padding: 11px 12px;
    border: 1px solid var(--t-line);
    border-radius: 11px;
    background: var(--t-bg);
}
.rcp-total-linha { display: flex; align-items: baseline; justify-content: space-between; gap: 10px; }
.rcp-total-rot {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--t-fg);
}
.rcp-total-val { font-size: 18px; font-weight: 800; color: var(--t-fg); }
.rcp-total p { margin-top: 6px; font-size: 11.5px; color: var(--rcp-text-muted); text-wrap: pretty; }

/* ---------- Faixa da senha recém-gerada ---------- */
.rcp-gerada {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 16px;
    padding: 14px 16px;
    border: 1px solid var(--t-line);
    border-radius: 14px;
    background: var(--t-bg);
    box-shadow: var(--rcp-shadow);
}
.rcp-gerada-num { display: flex; align-items: baseline; gap: 10px; }
.rcp-gerada-num b { font-size: 34px; font-weight: 800; letter-spacing: -1px; color: var(--t-fg); }
.rcp-gerada-num span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--t-fg);
}
.rcp-gerada-corpo { flex: 1; min-width: 180px; }
.rcp-gerada-pac { font-size: 13.5px; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-gerada-ex { font-size: 12px; color: var(--rcp-text-muted); }
.rcp-gerada-acoes { display: flex; align-items: center; gap: 8px; }

/* ---------- Barra de abas da fila ---------- */
.rcp-fila-head {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    padding: 12px 16px;
    border-bottom: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
}
.rcp-abas {
    display: flex;
    gap: 4px;
    padding: 4px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface);
}
.rcp-abas button {
    padding: 8px 14px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rcp-text-muted);
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}
.rcp-abas button.is-on { background: var(--rcp-brand); color: var(--rcp-brand-ink); }
.rcp-espaco { flex: 1; }

/* ---------- Linhas da fila ---------- */
.rcp-linha {
    display: flex;
    flex-direction: column;
    gap: 9px;
    padding: 13px 16px;
    border-bottom: 1px solid var(--rcp-border);
}
.rcp-linha.is-cancelada { background: var(--rcp-surface-2); opacity: .6; }
.rcp-linha-topo { display: flex; align-items: flex-start; gap: 16px; }
.rcp-linha-id { flex: 1 1 auto; min-width: 0; }
.rcp-linha-cab { display: flex; align-items: baseline; gap: 9px; flex-wrap: wrap; }
.rcp-senha { font-size: 15px; font-weight: 800; letter-spacing: -.2px; color: var(--rcp-text-strong); }
.rcp-senha.is-prioritaria { color: #b91c1c; }
[data-theme-mode="dark"] .rcp-page .rcp-senha.is-prioritaria { color: #fca5a5; }
.rcp-hora { font-size: 11.5px; color: var(--rcp-text-muted); }
.rcp-linha-nome { margin-top: 4px; font-size: 13.5px; font-weight: 700; color: var(--rcp-text-strong); text-wrap: pretty; }
.rcp-linha-ex { font-size: 12.5px; color: var(--rcp-text-muted); text-wrap: pretty; }

.rcp-pill {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    padding: 3px 9px;
    border: 1px solid var(--t-line);
    border-radius: 999px;
    background: var(--t-bg);
    font-size: 11px;
    font-weight: 700;
    color: var(--t-fg);
    white-space: nowrap;
}
.rcp-pill i { font-size: 12px; }
.rcp-pill-quad { border-radius: 8px; }

.rcp-pagto { flex: 0 0 122px; text-align: right; }
.rcp-pagto-rot {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-pagto-val {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 6px;
    min-height: 24px;
    font-size: 13.5px;
    font-weight: 700;
    white-space: nowrap;
    color: var(--rcp-text-strong);
}
.rcp-pagto-val.is-isento { color: var(--rcp-text-muted); }
.rcp-pagto-nota { font-size: 11px; color: var(--rcp-text-muted); }
.rcp-pill-mini {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    padding: 2px 8px;
    border: 1px solid var(--t-line);
    border-radius: 999px;
    background: var(--t-bg);
    font-size: 10.5px;
    font-weight: 700;
    color: var(--t-fg);
    white-space: nowrap;
}
.rcp-pill-mini i { font-size: 12px; }

.rcp-linha-base { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.rcp-filactl { display: flex; align-items: center; gap: 8px; }
.rcp-filactl-rot {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .1em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-filactl-btns { display: flex; align-items: center; gap: 5px; }
.rcp-pos {
    width: 40px;
    padding: 6px 0;
    border: 1px solid var(--rcp-border);
    border-radius: 8px;
    background: var(--rcp-input);
    color: var(--rcp-text-strong);
    font-size: 13px;
    font-weight: 700;
    text-align: center;
    /* as setinhas do number ficam por cima do número num campo de 40px */
    appearance: textfield;
    -moz-appearance: textfield;
}
.rcp-pos::-webkit-outer-spin-button,
.rcp-pos::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.rcp-filactl-nota { font-size: 11.5px; color: var(--rcp-text-muted); }

.rcp-linha-acoes {
    flex: 0 0 auto;
    margin-left: auto;
    display: flex;
    align-items: center;
    gap: 6px;
    position: relative;
}

/* Menu "mais ações" da linha */
.rcp-menu {
    position: absolute;
    z-index: 30;
    top: 40px;
    right: 0;
    width: 232px;
    padding: 6px;
    border: 1px solid var(--rcp-border);
    border-radius: 12px;
    background: var(--rcp-surface);
    box-shadow: var(--rcp-shadow-lg);
}
.rcp-menu button {
    display: flex;
    width: 100%;
    align-items: center;
    gap: 9px;
    padding: 9px 10px;
    border: 0;
    border-radius: 9px;
    background: transparent;
    color: var(--t-fg);
    font-size: 13px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}
.rcp-menu button:hover { background: var(--t-bg); }
.rcp-menu button i { font-size: 15px; }

/* ---------- Agendados ---------- */
.rcp-ag {
    display: flex;
    flex-wrap: wrap;
    gap: 12px 16px;
    align-items: center;
    padding: 12px 16px;
    border-bottom: 1px solid var(--rcp-border);
}
.rcp-ag-corpo { flex: 1 1 240px; min-width: 0; }
.rcp-ag-hora { font-size: 14px; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-ag-nome { margin-top: 3px; font-size: 13.5px; font-weight: 700; color: var(--rcp-text-strong); text-wrap: pretty; }
.rcp-ag-ex { font-size: 12.5px; color: var(--rcp-text-muted); }

.rcp-lista-vazia { padding: 34px 16px; text-align: center; font-size: 13px; color: var(--rcp-text-muted); }

.rcp-card-nota {
    display: flex;
    align-items: center;
    gap: 8px;
    padding: 10px 16px;
    background: var(--rcp-surface-2);
    font-size: 11.5px;
    color: var(--rcp-text-muted);
    text-wrap: pretty;
}
.rcp-card-nota i { font-size: 14px; }

/* ---------- Modal (casca própria — não é o FatModal/Bootstrap) ---------- */
.rcp-scrim {
    position: fixed;
    inset: 0;
    z-index: 1060;
    display: flex;
    align-items: flex-start;
    justify-content: center;
    padding: 34px 18px;
    overflow: auto;
    background: var(--rcp-scrim);
    animation: rcpScrimIn .18s ease;
}
.rcp-dialog {
    width: 100%;
    max-width: 560px;
    background: var(--rcp-surface);
    border: 1px solid var(--rcp-border);
    border-radius: 16px;
    box-shadow: var(--rcp-shadow-lg);
    overflow: hidden;
    animation: rcpDialogIn .22s cubic-bezier(.16, 1, .3, 1);
}
.rcp-dialog-xl { max-width: 1080px; }
.rcp-dialog-lg { max-width: 600px; }
.rcp-dialog-sm { max-width: 540px; }

.rcp-dialog-head {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
}
.rcp-dialog-head > i { font-size: 17px; color: var(--rcp-brand); }
.rcp-dialog-head h3 { flex: 1; min-width: 0; font-size: 15px; font-weight: 700; color: var(--rcp-text-strong); }

.rcp-dialog-body { padding: 18px; display: flex; flex-direction: column; gap: 16px; }
.rcp-dialog-body-flush { padding: 0; }

.rcp-dialog-foot {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 9px;
    padding: 13px 18px;
    border-top: 1px solid var(--rcp-border);
    background: var(--rcp-surface-2);
}

/* ---------- Blocos internos dos modais ---------- */
.rcp-quadro { border: 1px solid var(--rcp-border); border-radius: 12px; overflow: hidden; }
.rcp-quadro-linha {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 10px 13px;
    border-bottom: 1px solid var(--rcp-border);
    font-size: 13px;
    color: var(--rcp-text-strong);
}
.rcp-quadro-linha b { font-weight: 700; }
.rcp-quadro-total {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    background: var(--rcp-surface-2);
}
.rcp-quadro-total span {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-quadro-total b { font-size: 17px; font-weight: 800; color: var(--rcp-text-strong); }

.rcp-pagto-linhas { display: flex; flex-direction: column; gap: 8px; }
.rcp-pagto-linha { display: grid; grid-template-columns: minmax(0, 1fr) 130px 38px; gap: 8px; align-items: center; }
.rcp-pagto-linha input { text-align: right; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-pagto-rm {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 38px;
    height: 38px;
    border: 1px solid var(--t-line);
    border-radius: 10px;
    background: var(--rcp-surface);
    color: var(--t-fg);
    cursor: pointer;
}
.rcp-pagto-rm:hover { background: var(--t-bg); }

.rcp-soma {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 11px 13px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface-2);
}
.rcp-soma span { font-size: 12.5px; font-weight: 600; }
.rcp-soma b { font-size: 16px; font-weight: 800; color: var(--rcp-text-strong); }

/* Grade de valores/desconto */
.rcp-val-grade { display: grid; grid-template-columns: minmax(0, 1fr) 110px 140px; gap: 10px; align-items: center; }
.rcp-val-cab {
    padding: 9px 13px;
    background: var(--rcp-surface-2);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-val-linha { padding: 10px 13px; border-top: 1px solid var(--rcp-border); }
.rcp-val-nome { display: flex; align-items: center; gap: 8px; min-width: 0; font-size: 13px; color: var(--rcp-text-strong); }
.rcp-val-tabela { font-size: 13px; color: var(--rcp-text-muted); text-align: right; }
.rcp-val-novo { text-align: right; font-weight: 700; color: var(--rcp-text-strong); padding: 8px 10px; border-radius: 9px; }
.rcp-val-travado { font-size: 13px; font-weight: 700; color: var(--rcp-text-strong); text-align: right; }
.rcp-val-rodape { padding: 11px 13px; border-top: 1px solid var(--rcp-border); background: var(--rcp-surface-2); }
.rcp-val-rodape .rcp-val-tot-rot {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: .06em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-val-rodape .rcp-val-tot-novo { font-size: 15px; font-weight: 800; color: var(--rcp-text-strong); text-align: right; }

/* Antes → depois (corrigir origem) */
.rcp-antes-depois {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    gap: 12px;
    align-items: center;
    padding: 13px;
    border: 1px solid var(--rcp-border);
    border-radius: 12px;
}
.rcp-ad-rot {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-ad-val { margin-top: 3px; font-size: 19px; font-weight: 800; color: var(--rcp-text-strong); }
.rcp-ad-val.is-novo { color: var(--rcp-brand); }
.rcp-antes-depois > i { font-size: 19px; color: var(--rcp-text-muted); }

.rcp-alvo {
    padding: 12px 13px;
    border: 1px solid var(--rcp-border);
    border-radius: 11px;
    background: var(--rcp-surface-2);
}
.rcp-alvo-rot {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
    color: var(--rcp-text-muted);
}
.rcp-alvo-nome { margin-top: 4px; font-size: 14px; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-alvo-ex { font-size: 12.5px; color: var(--rcp-text-muted); }

.rcp-destaque {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px;
    border: 1px solid var(--t-line);
    border-radius: 12px;
    background: var(--t-bg);
}
.rcp-destaque > i { font-size: 19px; color: var(--t-fg); flex: 0 0 auto; }
.rcp-destaque-val { font-size: 15px; font-weight: 800; color: var(--t-fg); }
.rcp-destaque p { margin-top: 4px; font-size: 12.5px; color: var(--t-fg); text-wrap: pretty; }

.rcp-linha-campos { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px; }
.rcp-linha-campos > div:first-child { flex: 1; min-width: 150px; }
.rcp-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }

/* ---------- Toast ---------- */
.rcp-toast-wrap {
    position: fixed;
    z-index: 1070;
    right: 22px;
    bottom: 22px;
    max-width: 380px;
    animation: rcpToastIn .28s cubic-bezier(.16, 1, .3, 1);
}
.rcp-toast {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 13px 14px;
    border: 1px solid var(--t-line);
    border-radius: 13px;
    background: var(--rcp-surface);
    box-shadow: var(--rcp-shadow-lg);
}
.rcp-toast > i { font-size: 18px; color: var(--t-fg); flex: 0 0 auto; }
.rcp-toast-corpo { flex: 1; min-width: 0; }
.rcp-toast-tit { font-size: 13px; font-weight: 700; color: var(--rcp-text-strong); }
.rcp-toast-txt { font-size: 12.5px; color: var(--rcp-text-muted); text-wrap: pretty; }
.rcp-toast-x {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border: 0;
    border-radius: 8px;
    background: transparent;
    color: var(--rcp-text-muted);
    cursor: pointer;
}
.rcp-toast-x:hover { background: var(--rcp-surface-2); }

/* ---------- Spinner ---------- */
.rcp-spin {
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-right-color: transparent;
    border-radius: 50%;
    animation: rcpSpin .7s linear infinite;
}

@keyframes rcpSpin { to { transform: rotate(360deg); } }
@keyframes rcpToastIn { from { opacity: 0; transform: translateY(10px); } to { opacity: 1; transform: none; } }
@keyframes rcpScrimIn { from { opacity: 0; } to { opacity: 1; } }
@keyframes rcpDialogIn { from { opacity: 0; transform: translateY(14px) scale(.985); } to { opacity: 1; transform: none; } }

@media (prefers-reduced-motion: reduce) {
    .rcp-scrim, .rcp-dialog, .rcp-toast-wrap { animation: none; }
}

/* ---------- Telas estreitas ----------
   A coluna do formulário deixa de ser sticky e passa a ocupar a largura toda;
   o resto já reflui sozinho pelo flex-wrap. */
@media (max-width: 860px) {
    .rcp-page { padding: 14px 12px 72px; }
    .rcp-col-form { position: static; max-width: none; }
    .rcp-pagto { flex-basis: 100%; text-align: left; }
    .rcp-pagto-val { justify-content: flex-start; }
    .rcp-val-grade { grid-template-columns: minmax(0, 1fr) 90px 110px; }
}

/* O formulário de paciente (componente compartilhado FormularioPaciente) é
   renderizado dentro do nosso modal e continua com o CSS dele — por isso o
   corpo do modal de paciente não impõe gap nem padding próprios. */
.rcp-dialog-body-form { padding: 0; display: block; }
