/* =====================================================================
   ROUPA DO DONO — visual do ERP do dono (release 1eae1c88) por cima das telas espelho do Vissmed
   Lane visual-dono, 04/10/2026. Pedido do dono: "mais moderno e mais vivo que o Vissmed".
   SÓ APARÊNCIA: nenhuma regra, texto, campo ou passo do Vissmed muda. Carrega por último (index.html).
   Base = tokens do app.css do dono (--r 9px, --borda, --sh-sm/--sh/--sh-lg, --vm-header, Roboto).
   Escopo #cont (telas) e .modal-bg (janelas) para vencer o CSS das lanes sem !important.
   Famílias: pacvm (pacientes e cadastros), vm-espelho (Caixa/OS), orcvm (orçamentos), sxvm (sala de exames),
   prvm (telas do médico), finvm (financeiro), usrvm (usuários), rr (restantes), relvm (relatórios), agv (agenda).
   ===================================================================== */

/* ---------- 0a. Cor da marca (topo-maior, pedido do dono 04/10: "volumizar e trazer um ciano mais bonito") ----------
   Uma variável só: --marca (com --marca-claro para o degradê). Entra onde a cor da marca já entrava (--vm-header /
   --brand: topo, aba ativa, paginação, foco, itens ativos do menu, cabeçalhos de cartão azuis). As cores de status da
   Agenda (ST_CORES) e o verde dos botões primários do Vissmed não mudam.
   O dono escolheu a variante A (#0E7490 → #06B6D4). A B (#0891B2 → #22D3EE) foi descartada: só 3,7:1 com branco.
   Contraste (lote-4b r3/r4): nada branco fica sobre o ciano claro. O topo é --marca cheio (5,36:1 com branco) e o
   --marca-claro só aparece no vão vazio do meio (fundo do .esp). */
:root{--altura-topo:68px;--marca:#0E7490;--marca-claro:#06B6D4;--marca-escuro:#155E75;
  --vm-header:var(--marca);--vm-header-dark:var(--marca-escuro);--brand:var(--marca)}

/* ---------- 0b. Header do dono: testeira 68 px, logo 40 px, itens 14 px/600, ícones 20-22 px ---------- */
.vm-header{height:68px;gap:16px;padding:0 20px;background:var(--marca);box-shadow:0 2px 8px rgba(0,0,0,.12)}
/* topo CLARO (escolha do dono, 04/10: degradê A #0E7490 → #06B6D4). O ciano fica SÓ no vão vazio entre o logo e os itens
   da direita: o degradê é o fundo do próprio espaçador (.esp), que cresce e encolhe com a tela. As pontas do vão são
   #0E7490, então logo, hambúrguer e todo o branco da direita ficam sempre sobre #0E7490 (5,36:1). Tela estreita sem vão:
   o espaçador some (largura 0) e o topo fica todo #0E7490. */
.vm-header .esp{align-self:stretch;min-width:0;background:linear-gradient(90deg,var(--marca) 0,var(--marca-claro) 50%,var(--marca) 100%)}
.vm-ham{width:44px;height:44px;font-size:24px;border-radius:8px}
.vm-logoimg{height:40px}
.vm-logo{font-size:20px;background:var(--marca);padding:4px 10px;border-radius:6px}
.vm-header [hidden]{display:none!important}
.vm-htxt{font-size:14px;font-weight:600;gap:8px;letter-spacing:.3px;min-width:0}
.vm-htxt i{font-size:21px;flex-shrink:0}
.vm-htxt-t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vm-hicon{width:42px;height:42px;font-size:21px;border-radius:8px;flex-shrink:0}
.vm-hbtn{display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 16px;border:1.5px solid rgba(255,255,255,.85);border-radius:999px;
  background:rgba(255,255,255,.08);color:#fff;font:600 14px/1 var(--font);text-transform:uppercase;letter-spacing:.4px;cursor:pointer;white-space:nowrap;
  flex-shrink:0;transition:background var(--tr),border-color var(--tr)}
.vm-hbtn i{font-size:20px}
.vm-hbtn:hover,.vm-hbtn:focus-visible{background:var(--marca-escuro);border-color:#fff}
.vm-hbtn:disabled{opacity:.6;cursor:default}
.vm-hcaixa-data{opacity:.95}
/* telas estreitas: nada quebra nem sai da barra — o nome da empresa vira só o ícone (com o nome no title) */
@media (max-width:1500px){.vm-htxt-empresa .vm-htxt-t{display:none}}

/* ---------- 1. Caminho "Início / ..." do Vissmed: o menu do dono já diz onde a pessoa está ---------- */
#cont .pacvm-bc,#cont .orcvm-breadcrumb,#cont .sxvm-breadcrumb,#cont .prvm-breadcrumb,#cont .vm-breadcrumb,#cont ol.breadcrumb,
#cont .finvm-trilha,#cont .relvm-trilha,#cont .rr-trilha,#cont .usrvm-bread{display:none}

/* ---------- 2. Cartões: o card do dono (raio 9, borda fina, sombra em 2 camadas) ---------- */
#cont :is(.pacvm-card,.orcvm-card,.sxvm-card,.prvm-card,.usrvm-card,.rr-card,.cadm-sec),
#cont .vm-espelho>.card{background:#fff;border:var(--borda);border-radius:var(--r);box-shadow:var(--sh-sm);overflow:visible}
#cont :is(.pacvm-card,.orcvm-card,.sxvm-card,.prvm-card,.rr-card){margin-bottom:16px}
#cont .usrvm-card{margin-bottom:24px}
#cont .vm-espelho>.card{padding:20px 22px}
/* cabeçalho do cartão = título do dono: 20 px, peso 500; subtítulo cinza */
#cont :is(.pacvm-card-h,.orcvm-card-h,.sxvm-card-header,.prvm-card-h,.usrvm-card-h,.rr-card-header){padding:20px 22px 12px}
#cont :is(.pacvm-card-h,.orcvm-card-h,.sxvm-card-header,.prvm-card-h,.usrvm-card-h,.rr-card-header) h2,
#cont .vm-espelho>.card>.shead h2,#cont .finvm .finvm-card-h h2{font-size:20px;font-weight:500;letter-spacing:-.2px;color:var(--vm-ink);margin:0}
#cont :is(.pacvm-card-h,.orcvm-card-h,.sxvm-card-header,.prvm-card-h,.usrvm-card-h,.rr-card-header) small,
#cont .vm-espelho>.card>.shead small,#cont .finvm .finvm-card-h small{display:block;margin-top:4px;font-size:12.5px;color:var(--vm-ink-3)}
#cont .vm-espelho>.card>.shead{margin-bottom:16px}
#cont .vm-espelho h2{color:var(--vm-ink)}
#cont :is(.pacvm-card-b,.orcvm-card-b,.prvm-card-b){padding:4px 22px 18px}

/* ---------- 3. Botão "+" flutuante do Vissmed → botão visível no alto do cartão, com o texto do Vissmed ---------- */
#cont :is(.pacvm-float,.orcvm-float,.prvm-flutuante,.usrvm-fab,.rr-flutuante){position:absolute;top:30px;right:22px;bottom:auto;left:auto;z-index:3;width:auto;height:36px;padding:0 16px;
  display:inline-flex;align-items:center;gap:7px;border:0;border-radius:var(--r);background:var(--vm-verde);color:#fff;
  font:500 12.5px/1 var(--font);text-transform:uppercase;letter-spacing:.4px;cursor:pointer;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh-sm);transition:filter var(--tr),box-shadow var(--tr),transform var(--tr)}
#cont :is(.pacvm-float,.orcvm-float,.prvm-flutuante,.usrvm-fab,.rr-flutuante) i{font-size:17px}
#cont :is(.pacvm-float,.orcvm-float,.prvm-flutuante,.usrvm-fab,.rr-flutuante)::after{content:attr(title)}
#cont :is(.pacvm-float,.orcvm-float,.prvm-flutuante,.usrvm-fab,.rr-flutuante):hover{filter:brightness(.97);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh);transform:translateY(-1px)}
#cont .orcvm-float{top:20px}
#cont .finvm-float{width:auto;height:36px;padding:0 15px;border-radius:var(--r);gap:7px;font:500 12.5px/1 var(--font);text-transform:uppercase;letter-spacing:.4px}
#cont .finvm-float::after{content:attr(title)}
#cont .finvm-float i{font-size:17px}
/* a pele precisa do cartão como referência do botão */
#cont :is(.pacvm,.prvm,.rr-tela,.usrvm){position:relative}
/* cadastro com botões no cabeçalho (De-para, Acesso...): abre espaço para o Incluir */
#cont .pacvm:has(> .pacvm-float) .cadvm-topo{margin-right:130px}

/* ---------- 4. Filtros: cartão claro com rótulo legível (o "cartão de filtros" do dono) ---------- */
#cont :is(.pacvm-filtros,.orcvm-filtros,.prvm-filtros,.usrvm-filtros,.rr-filtros,.sxvm-filtros,.relvm-filtros,.finvm-filtros),
#cont .vm-espelho .vm-filtros{background:#F7FBFC;border:1px solid #E3ECEF;border-radius:var(--r-sm);padding:12px 14px 14px;margin:2px 0 16px}
#cont :is(.pacvm-filtros,.orcvm-filtros,.prvm-filtros,.usrvm-filtros,.rr-filtros,.sxvm-filtros,.relvm-filtros,.finvm-filtros) label,
#cont .vm-espelho .vm-filtros label{font-size:11px;font-weight:600;color:var(--vm-ink-3);letter-spacing:.3px;text-transform:none}
#cont .vm-espelho input,#cont .vm-espelho select{font-size:14px}
/* botão de lupa redondo do Vissmed → botão do dono */
#cont .pacvm-btn-busca{height:36px;min-width:42px;padding:0 14px;border-radius:var(--r);background:var(--vm-verde);font-size:17px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh-sm)}

/* ---------- 5. Tabelas: cabeçalho e zebra do dono em todas as listas espelho ---------- */
#cont :is(.pacvm-tabela,.vm-espelho,.orcvm-card,.sxvm,.rr-tela,.usrvm,.finvm,.relvm) table.t,
.modal-bg .vm-espelho-modal table.t{font-size:13px}
#cont :is(.pacvm-tabela,.vm-espelho,.orcvm-card,.sxvm,.rr-tela,.usrvm,.finvm,.relvm) table th,
#cont table.prvm-tabela th,.modal-bg :is(.vm-espelho-modal,.prvm-janela) table th{
  font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--vm-ink-2);font-weight:600;padding:12px 14px;text-align:left;
  background:#F2F6F7;border-bottom:1.5px solid var(--vm-line-2);white-space:nowrap}
#cont :is(.pacvm-tabela,.vm-espelho,.orcvm-card,.sxvm,.rr-tela,.usrvm,.finvm,.relvm) table td,
#cont table.prvm-tabela td,.modal-bg :is(.vm-espelho-modal,.prvm-janela) table td{padding:10px 14px;border-bottom:1px solid var(--vm-line);font-size:13px}
#cont :is(.pacvm-tabela,.vm-espelho,.orcvm-card,.sxvm,.rr-tela,.usrvm,.finvm,.relvm) table tbody tr:nth-child(odd),
#cont table.prvm-tabela tbody tr:nth-child(odd){background:var(--vm-zebra)}
#cont :is(.pacvm-tabela,.vm-espelho,.orcvm-card,.sxvm,.rr-tela,.usrvm,.finvm,.relvm) table tbody tr:hover,
#cont table.prvm-tabela tbody tr:hover{background:#EDF8FB}
#cont :is(.pacvm-tabela,.prvm-tabela-wrap,.rr-tela .tw,.usrvm .tw){border:var(--borda);border-radius:var(--r);overflow:auto;background:#fff}
#cont .vm-espelho #osv-lista .tw,#cont .vm-espelho #osv-lista table.t{border-radius:var(--r)}
/* lista vazia: o estado vazio do dono (ícone + frase) no lugar da tabela crua sem linha */
#cont :is(.prvm-tabela-wrap,.prvm-card-b,.pacvm-tabela,.rr-tela .tw):has(> table > tbody:empty)::after{
  content:"Nenhum registro para mostrar";display:block;padding:58px 20px 26px;text-align:center;font-size:13px;color:var(--vm-ink-3);
  background:no-repeat center 18px/30px url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%239AA4AA' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2z'/%3E%3Cpath d='M4 13h3l3 3h4l3-3h3'/%3E%3C/svg%3E")}

/* ---------- 6. Botões das telas espelho → botão do dono (raio 9, caixa alta, sombra leve) ---------- */
#cont .vm-espelho .btn,.modal-bg .vm-espelho-modal .btn{border-radius:var(--r);text-transform:uppercase;letter-spacing:.4px;font-size:12.5px;font-weight:500;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh-sm)}
#cont .vm-espelho .btn.primary,.modal-bg .vm-espelho-modal .btn.primary{background:var(--vm-verde)}
#cont .vm-espelho .btn.danger,.modal-bg .vm-espelho-modal .btn.danger{background:var(--vm-vermelho)}
#cont .vm-opcoes .btn.sm{width:32px;height:32px;padding:0;justify-content:center;border-radius:50%;background:#F0F4F5;box-shadow:none;color:var(--vm-ink-2)}
#cont .vm-opcoes .btn.sm:hover{background:#DCEEF3;color:var(--vm-header-dark)}
#cont .vm-opcoes .btn.sm i{font-size:16px}
:is(#cont,.modal-bg) :is(.prvm-btn-verde,.prvm-btn-vermelho,.prvm-btn-azul,.prvm-btn-azul-escuro,.prvm-btn-cinza,.prvm-btn,.btn.orcvm-verde,.btn.orcvm-vermelho,.btn.orcvm-azul,.btn.orcvm-laranja,.btn.orcvm-azul2,.btn.orcvm-verde2,.btn.orcvm-amarelo){
  border-radius:var(--r);padding:9px 15px;font-size:12.5px;font-weight:500;text-transform:uppercase;letter-spacing:.4px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh-sm);transition:filter var(--tr),box-shadow var(--tr),transform var(--tr)}
:is(#cont,.modal-bg) :is(.prvm-btn-verde,.prvm-btn-vermelho,.prvm-btn-azul,.prvm-btn-azul-escuro,.prvm-btn-cinza,.prvm-btn):not(:disabled):hover{filter:brightness(.97);transform:translateY(-1px);box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh)}
:is(#cont,.modal-bg) .prvm-btn-verde,:is(#cont,.modal-bg) .prvm-btn.prvm-btn-verde{background:var(--vm-verde)}
:is(#cont,.modal-bg) .prvm-btn-vermelho{background:var(--vm-vermelho)}
:is(#cont,.modal-bg) :is(.prvm-btn-azul,.prvm-btn-azul-escuro){background:#2F7E92}
:is(#cont,.modal-bg) .prvm-btn-cinza{background:#78909C}
:is(#cont,.modal-bg) .prvm-btn-link{background:transparent;box-shadow:none;color:var(--vm-ink-2)}
/* ícones redondos de "Opções" */
#cont :is(.pacvm-ico,.orcvm-circ,.prvm-icone){width:32px;height:32px;border-radius:50%;background:#F0F4F5;color:var(--vm-ink-2);transition:background var(--tr),color var(--tr)}
#cont :is(.pacvm-ico,.orcvm-circ,.prvm-icone):hover{background:#DCEEF3;color:var(--vm-header-dark)}
#cont .orcvm-circ-vermelho,#cont .prvm-icone.is-verde{color:#fff}
#cont .orcvm-circ-vermelho{background:var(--vm-vermelho)}
#cont .prvm-icone.is-verde{background:var(--vm-verde)}

/* ---------- 7. Paginação (ngTable do Vissmed) → pílulas do dono ---------- */
#cont :is(.pacvm-pag,.orcvm-pager button,.prvm-pag-paginas button,.prvm-pag-contagens button,.usrvm-pages button,.sxvm-pagination button,.rr-tela .pag button){
  min-width:32px;height:32px;border:1px solid var(--vm-line);border-radius:var(--r-sm);background:#fff;color:var(--vm-ink-2);font-size:12.5px;cursor:pointer;transition:background var(--tr)}
#cont :is(.pacvm-pag,.orcvm-pager button,.prvm-pag-paginas button,.prvm-pag-contagens button):hover:not(:disabled){background:#EDF8FB}
#cont :is(.pacvm-pag.on,.orcvm-pager button.on,.prvm-pag-paginas .active button){background:var(--vm-header);border-color:var(--vm-header);color:#fff;font-weight:600}
#cont .prvm-pag-contagens .active,#cont .prvm-pag-contagens .active button{background:#DCEEF3;color:var(--vm-header-dark)}
#cont .vm-paginacao{gap:8px}

/* ---------- 8. Janelas das telas espelho → janela do dono (raio 6, título em caixa alta cinza) ---------- */
.modal-bg :is(.vm-espelho-modal .modal,.modal.agv,.pacvm-modal .modal,.orcvm-modal-bg .modal){border-radius:6px}
.modal-bg.vm-espelho-modal .modal,.vm-espelho-modal .modal{border-radius:6px}
.vm-espelho-modal .modal-h{border-bottom:1px solid var(--vm-line);padding:16px 22px}
.vm-espelho-modal .modal-h .t,.pacvm-modal .modal-h .t{text-transform:uppercase;font-size:15px;font-weight:500;color:var(--vm-ink-2)}
.vm-espelho-modal .modal-f{border-top:1px solid var(--vm-line);padding:12px 22px}
.prvm-janela{border-radius:6px;box-shadow:var(--sh-lg)}
.prvm-janela-h{padding:18px 24px 12px;border-bottom:1px solid var(--vm-line)}
.prvm-janela-h h2{font-size:15px;font-weight:500;text-transform:uppercase;color:var(--vm-ink-2)}
.prvm-janela-b{padding:16px 24px}
.prvm-janela-f{padding:12px 24px 18px;border-top:1px solid var(--vm-line)}
.prvm-swal .prvm-janela-h,.prvm-swal .prvm-janela-f{border:0}
.prvm-janela-bg{background:rgba(30,42,46,.5)}

/* ---------- 9. Caixa: tiles por forma de pagamento em cima da lista (ERP do dono) ---------- */
.cxf-strip{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:10px}
.cxf-tile{flex:1;min-width:130px;border-radius:10px;padding:10px 14px;color:#fff;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.18);transition:transform var(--tr),box-shadow var(--tr)}
.cxf-tile:hover{transform:translateY(-1px);box-shadow:var(--sh)}
.cxf-tile small{display:flex;align-items:center;gap:5px;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;opacity:.92}
.cxf-tile b{display:block;font-size:17px;margin-top:3px;font-variant-numeric:tabular-nums}
.cxf-tile span{font-size:10.5px;opacity:.85}
#cont .cx-dono-topo{margin:0 0 14px}
#cont .cx-dono-acts{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:0 0 10px}
#cont .cx-dono-hoje{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:500;color:var(--vm-ink-3);text-transform:uppercase;letter-spacing:.4px}
#cont .cx-dono-acts .btn{text-decoration:none}

/* ---------- 10. Agenda: topo do dono (filtros + BUSCAR PACIENTES na 1ª linha, contadores no alto) ---------- */
#cont .ag-top .ag-buscarpac-top{margin-left:auto;align-self:center}
#cont .ag-atend{gap:8px}
#cont .ag-encerrar,#cont .ag-demanda,#cont .ag-linhatempo{border-radius:var(--r)!important}
#cont .ag-timer,#cont .ag-agendando{border-radius:var(--r)}
#cont .ag-leg-top .ag-legchip{padding:6px 11px;border-radius:5px;font-size:11px;font-weight:700;box-shadow:0 1px 2px rgba(38,50,56,.16)}
/* pedido do dono (04/10): "Não disponível" em cinza SÓLIDO liso, como o Vissmed (sem hachura); texto escuro AA.
   05/10: cores centralizadas nas variáveis da .ag-screen em app.css. */
#cont .ag-indisp{background:var(--ag-indisp-bg);border-top:1px solid var(--ag-indisp-borda);border-bottom:1px solid var(--ag-indisp-borda)}
#cont .ag-indisp span,#cont .ag-indisp .ag-indisp-h{color:#1F2933}
.vm-header{height:var(--altura-topo)}
#cont .cx-embed{height:calc(100vh - var(--altura-topo))}
/* lote-4b: filtro de status ligado — aviso acima da grade e o horário de um card escondido (não é vaga, não clica) */
#cont .ag-filtro-aviso{display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:999px;background:#FFF4C2;
  border:1px solid #F2C94C;color:#5C4300;font-size:12px;font-weight:600}
#cont .ag-linha.ag-oculta-linha:hover{background:transparent;cursor:not-allowed}
#cont .ag-filtro-limpar{border:0;background:none;color:#7A5300;text-decoration:underline;cursor:pointer;font-weight:700;font-size:12px}
#cont .ag-oculto{border-radius:4px;cursor:not-allowed;font-size:10px;font-weight:600;color:#4B5563;
  padding:2px 5px;background:repeating-linear-gradient(45deg,#F4F6F7,#F4F6F7 6px,#E9EDEF 6px,#E9EDEF 12px);border:1px dashed #C7D0D5}
/* pedido do dono (04/10): MENSAL/SEMANAL e MAPA mostram os médicos do dia com a quantidade de pacientes e as barrinhas
   Manhã/Tarde do cabeçalho da coluna (mesmo componente .col-vol); visual do dono: ciano da marca e película fosca */
.agv-cal{grid-template-columns:repeat(7,minmax(0,1fr))}
.agv-cal .dia{vertical-align:top;min-width:0}
.agv-cal .vg-med .col-vol{gap:2px}
.agv-cal .vg-med .cv-lbl{width:30px}
.agv-cal .ev.vg-med{display:block;margin-top:4px;padding:4px 6px;border-radius:6px;background:#fff;color:var(--vm-ink);
  border:1px solid #D7E6EA;border-left:3px solid var(--marca);box-shadow:0 1px 2px rgba(38,50,56,.10);cursor:pointer;white-space:normal}
.agv-cal .ev.vg-med:hover,.agv-cal .ev.vg-med:focus-visible{border-color:var(--marca);box-shadow:0 2px 6px rgba(14,116,144,.25);outline:none}
.agv-cal .vg-l1{display:flex;align-items:baseline;gap:4px;justify-content:space-between}
.agv-cal .vg-nm{font-size:10.5px;font-weight:700;line-height:1.2;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.agv-cal .vg-pac{flex-shrink:0;font-size:9.5px;font-weight:700;color:var(--marca-escuro)}
.agv-cal .vg-disp{font-size:9.5px;line-height:1.25;margin-top:2px;color:var(--vm-ink-2)}
.agv-cal .vg-med .col-vol{margin-top:3px}
/* MAPA: a faixa de disponibilidade do Vissmed (verde/amarelo/vermelho) na borda e na película fosca de fundo */
.agv-cal .ev.vg-med.verde{background:#E8F7EF;border-left-color:#00A65A}
.agv-cal .ev.vg-med.amarelo{background:#FFFBE0;border-left-color:#E8C400}
.agv-cal .ev.vg-med.vermelho{background:#FCEBE8;border-left-color:#DD4B39}
/* pedido do dono (04/10): PACOTE guiado — painel ao lado da grade, itens em ordem, aviso amarelo de ordem */
#cont.com-painel-pacote .ag-screen{margin-right:412px}
.pct-painel{position:fixed;top:var(--altura-topo,68px);right:0;bottom:0;width:400px;z-index:25;background:#fff;border-left:1px solid #D7E6EA;
  box-shadow:-6px 0 18px rgba(38,50,56,.12);display:flex;flex-direction:column;overflow:hidden;font-size:13px;color:var(--vm-ink)}
.pct-cab{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 14px;color:#fff;
  background:linear-gradient(90deg,var(--marca-claro),var(--marca) 55%)}
.pct-cab-t{font-weight:700;font-size:15px;margin-right:8px}.pct-cab-p{font-size:12.5px;opacity:.95}
.pct-fechar{border:0;background:rgba(255,255,255,.18);color:#fff;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:18px}
.pct-corpo{padding:12px 14px;overflow-y:auto;flex:1}
.pct-dica{margin:0 0 10px;color:var(--vm-ink-2)}
.pct-filtro{width:100%;margin-bottom:10px}
.pct-card{border:1px solid #D7E6EA;border-left:3px solid var(--marca);border-radius:8px;padding:8px 10px;margin-bottom:8px;background:#fff}
.pct-card-l1{display:flex;justify-content:space-between;gap:8px}.pct-preco{font-weight:700;color:var(--marca-escuro);white-space:nowrap}
.pct-card-l2{display:flex;justify-content:space-between;align-items:center;margin-top:4px;color:var(--vm-ink-3)}
.pct-card details{margin-top:4px;font-size:12px}.pct-card summary{cursor:pointer;color:var(--marca-escuro)}
.pct-titulo{display:flex;justify-content:space-between;align-items:baseline;font-size:14.5px;margin-bottom:6px}
.pct-os{background:#F2F8FA;border:1px solid #D7E6EA;border-radius:8px;padding:7px 9px;margin-bottom:8px;font-size:12.5px}
.pct-os.pago{background:#E8F7EF;border-color:#B6E2C8}
.pct-prog-t{font-weight:700;font-size:12.5px;margin-bottom:3px}
.pct-prog-b{height:8px;border-radius:5px;background:#E4EBEC;overflow:hidden;margin-bottom:10px}.pct-prog-b i{display:block;height:100%;background:var(--marca)}
.pct-atual{background:#ECFEFF;border:1px solid #A5E9F2;border-left:4px solid var(--marca);border-radius:8px;padding:8px 10px;margin-bottom:10px}
.pct-atual-r{font-size:12px;color:var(--vm-ink-2);margin:3px 0 6px}.pct-atual-a{display:flex;flex-wrap:wrap;gap:6px;align-items:center;font-size:12px}
.pct-lista{list-style:none;margin:0;padding:0}
.pct-item{display:flex;gap:8px;align-items:flex-start;padding:7px 4px;border-bottom:1px solid #EEF3F4}
.pct-item.atual{background:#F5FDFF}.pct-item.pulado{opacity:.7}
.pct-n{flex-shrink:0;width:22px;height:22px;border-radius:50%;background:#E4EBEC;color:var(--vm-ink-2);font-weight:700;font-size:11px;display:flex;align-items:center;justify-content:center}
.pct-item.st-agendado .pct-n,.pct-item.st-feito .pct-n{background:var(--marca);color:#fff}
.pct-item-c{flex:1;min-width:0}.pct-item-l1{display:flex;flex-wrap:wrap;gap:5px;align-items:center}.pct-item-l2{font-size:11.5px;color:var(--vm-ink-3);margin-top:2px}
.pct-st{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:9px;background:#E4EBEC;color:var(--vm-ink-2)}
.pct-item.st-agendado .pct-st{background:#D5F5E0;color:#14532D}.pct-item.st-feito .pct-st{background:#0B5F2E;color:#fff}
.pct-item.st-sem_horario .pct-st{background:#F1F3F4}
.pct-selo-fora{font-size:10.5px;font-weight:700;padding:1px 6px;border-radius:9px;background:#FFF4C2;color:#7A5300;border:1px solid #F2C94C}
.pct-agora{font-size:11px;font-weight:700;color:var(--marca-escuro);white-space:nowrap}
.pct-rodape{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:12px}
.pct-link{border:0;background:none;color:var(--marca-escuro);text-decoration:underline;cursor:pointer;font-size:12px;padding:0}
.pct-vazio{color:var(--vm-ink-3)}
#cont #ag-grade.ag-guiado .ag-linha.livre-slot{background:rgba(6,182,212,.13);box-shadow:inset 3px 0 0 rgba(14,116,144,.55)}
#cont #ag-grade.ag-guiado .ag-linha.livre-slot:hover{background:rgba(6,182,212,.28)}
.modal-bg .pct-aviso-ordem .modal-h{background:#FFF4C2}
.pct-aviso{display:flex;gap:10px;background:#FFF8D6;border:1px solid #F2C94C;border-radius:8px;padding:10px 12px;color:#5C4300}
.pct-aviso i{font-size:22px;color:#B7791F}.pct-aviso p{margin:4px 0 0}
.pct-ordem-certa{margin-top:10px;font-size:13px}.pct-ordem-certa ol{margin:4px 0 0 18px;padding:0}
.pct-aviso-nota{font-size:12px;color:var(--vm-ink-3);margin:10px 0 0}
.modal-bg .pct-btn-mesmo-assim{background:#F2C94C;color:#3D2C00;border-color:#E0B43A;font-weight:700}
/* pedido do dono (04/10): os chips filtram de novo — clicáveis e, ligados, com o contorno do ERP do dono (1eae1c88) */
#cont .ag-leg-top .ag-legchip{cursor:pointer}
#cont .ag-leg-top .ag-legchip:hover{filter:brightness(1.06);transform:translateY(-1px)}
#cont .ag-leg-top .ag-legchip.on{border-color:#fff;box-shadow:0 0 0 2px #263238,0 4px 10px rgba(38,50,56,.28);transform:translateY(-1px)}
.modal.agv{border-radius:6px}

/* ---------- 11. Pacientes / cadastros espelho ---------- */
#cont .pacvm-card-b{padding-top:0}
#cont .pacvm-filtros{margin:4px 0 16px}
#cont .pacvm-busca{align-self:end}

/* ---------- 12. Orçamentos espelho ---------- */
#cont .orcvm-card-b{padding:0 22px 20px}
#cont .orcvm-filtros{margin:4px 0 16px}

/* ---------- 13. Telas do MÉDICO (prvm-): hierarquia, respiro e tipografia do ERP do dono ---------- */
#cont .prvm{max-width:1220px}
#cont .prvm-card{padding:0}
#cont .prvm-card-h-azul{background:var(--marca);border-bottom:3px solid var(--marca-claro);padding:13px 20px 10px;border-radius:var(--r) var(--r) 0 0}
#cont .prvm-card-h-azul h2{color:#fff;font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px}
#cont .prvm-subtitulo{color:var(--vm-header-dark);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;margin:20px 0 10px;
  padding-bottom:7px;border-bottom:1px solid var(--vm-line)}
#cont .prvm-vazio{padding:34px 20px;color:var(--vm-ink-3);font-size:13px}
#cont .prvm-filtros{gap:10px 16px}
#cont .prvm-fg>label{font-size:12.5px}
#cont .prvm-fg>input:focus+label,#cont .prvm-fg>input:not(:placeholder-shown)+label,#cont .prvm-fg>input[type=date]+label,
#cont .prvm-fg>textarea+label,#cont .prvm-fg-leitura>label,#cont .prvm-fg-select>label{font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.4px}
#cont .prvm-campo>label,#cont .prvm-rotulo,.prvm-janela .prvm-campo>label{font-size:11px;font-weight:600;color:var(--vm-ink-3);text-transform:uppercase;letter-spacing:.4px}
:is(#cont,.prvm-janela) .prvm-campo textarea,:is(#cont,.prvm-janela) .prvm-texto-editor textarea{border:1px solid #D5DEE1;border-radius:var(--r-sm);padding:10px 12px;line-height:1.5;
  transition:border-color var(--tr),box-shadow var(--tr)}
:is(#cont,.prvm-janela) .prvm-campo textarea:focus,:is(#cont,.prvm-janela) .prvm-texto-editor textarea:focus{border-color:var(--vm-header);box-shadow:0 0 0 3px rgba(95,179,199,.18)}
/* badges do tipo (Consulta / demais) com o desenho dos selos do dono */
#cont :is(.prvm-badge-consulta,.prvm-badge-outro,.prvm-badge-resumo){border-radius:12px;padding:3px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
#cont .prvm-badge-consulta{background:#E2F5EC;color:#0C8A46}
#cont .prvm-badge-outro{background:#FAEADC;color:#A9581A}
#cont .prvm-badge-resumo{background:#E4EBF8;color:#2F55A4}
#cont .prvm-online{border-radius:10px;padding:1px 8px}
#cont .prvm-alerta-aberto{border-radius:var(--r);box-shadow:var(--sh-sm)}
#cont .prvm-aviso-amarelo{border-radius:var(--r-sm);background:#FDF3D0;color:#6B5308;border:1px solid #F2DD8B}
/* cabeçalho do paciente no prontuário: cartão com avatar, nome e dados lado a lado */
#cont .prvm-header{background:#fff;border:var(--borda);border-radius:var(--r);box-shadow:var(--sh-sm);margin:12px 18px;padding:16px 20px;gap:12px 22px}
#cont .prvm-header-foto{background:linear-gradient(160deg,#68BCCE 0%,#4C9FB3 100%);border-radius:var(--r);padding:16px 10px;box-shadow:0 10px 20px -10px rgba(60,133,152,.65)}
#cont .prvm-avatar{width:76px;height:76px;font-size:38px;background:rgba(255,255,255,.22);box-shadow:0 0 0 3px rgba(255,255,255,.35)}
#cont .prvm-header-foto h4{font-size:14.5px;font-weight:600}
#cont .prvm-header-campos{gap:6px 18px}
#cont .prvm-header-estat{font-size:13.5px;font-weight:500}
#cont .prvm-cronometro{gap:10px;flex-wrap:wrap}
#cont .prvm-cronometro li{background:#F2F6F7;border-radius:12px;padding:4px 11px;font-size:12.5px}
#cont .prvm-itens-servico{border:var(--borda);border-radius:var(--r);background:#fff;box-shadow:var(--sh-sm);margin:12px 18px;padding:12px 18px}
#cont .prvm-itens-servico h2{font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--vm-header-dark)}
/* abas do prontuário: trilho lateral como as abas do Dashboard (pílula ativa com faixa teal) */
#cont .prvm-abas-v{margin:12px 18px 0;gap:18px;grid-template-columns:220px 1fr}
#cont .prvm-abas-nav{border-right:0;gap:3px;background:#fff;border:var(--borda);border-radius:var(--r);box-shadow:var(--sh-sm);padding:8px;align-self:start;position:sticky;top:8px}
#cont .prvm-aba{border-left:0;border-radius:var(--r-sm);padding:10px 12px;font-size:13px;font-weight:500;color:var(--vm-ink-2);transition:background var(--tr),color var(--tr)}
#cont .prvm-aba:hover{background:#F0F6F8;color:var(--vm-ink)}
#cont .prvm-aba.is-ativa{background:#DCEEF3;color:var(--vm-header-dark);font-weight:600;box-shadow:inset 3px 0 0 var(--vm-header)}
#cont .prvm-abas-conteudo{background:#fff;border:var(--borda);border-radius:var(--r);box-shadow:var(--sh-sm);padding:18px 22px 20px;min-height:420px}
#cont .prvm-abas-h{border-bottom:1px solid var(--vm-line);gap:4px}
#cont .prvm-aba-h{border-radius:var(--r-sm) var(--r-sm) 0 0;font-weight:500;text-transform:uppercase;font-size:11.5px;letter-spacing:.4px;padding:10px 13px}
#cont .prvm-aba-h.is-ativa{border-bottom-color:var(--vm-header);color:var(--vm-header-dark);background:#F4FAFB}
/* linha do tempo / histórico e cartões de itens */
#cont .prvm-tv{border-radius:var(--r-sm);border:var(--borda);border-left-width:4px}
#cont .prvm-tv-tags li{border-radius:10px;padding:2px 9px}
#cont :is(.prvm-cartao-item,.prvm-card-interno,.prvm-card-lateral,.prvm-galeria-item,.prvm-miniatura){border:var(--borda);border-radius:var(--r-sm);box-shadow:var(--sh-sm)}
#cont .prvm-cartao-h h2{color:var(--vm-header-dark);font-size:14.5px;font-weight:600}
#cont .prvm-attrs li{border-radius:10px;background:#F2F6F7}
#cont .prvm-editor{border-radius:var(--r-sm);border-color:#D5DEE1;overflow:hidden}
#cont .prvm-editor-barra{background:#F7FBFC}
#cont .prvm-editor-btn{border-color:#D5DEE1;border-radius:4px;margin-left:2px}
#cont .prvm-documento-leitura{border-radius:var(--r-sm);background:#F7FBFC}
#cont .prvm-sugestoes{border-radius:0 0 var(--r-sm) var(--r-sm)}
#cont .prvm-progresso{border-radius:4px}
#cont .prvm-progresso>div{background:var(--vm-header)}
#cont .prvm-ord-menu,#cont .prvm-btn-grupo .prvm-btn-cinza:first-child{border-radius:var(--r-sm)}
@media (max-width:900px){#cont .prvm-abas-v{grid-template-columns:1fr}#cont .prvm-abas-nav{position:static;flex-direction:row;overflow:auto}}

/* ---------- 14. Componentes de lane com pele própria (chosen do orçamento, sala de exames) ---------- */
#cont .orcvm-chosen-drop,.modal-bg .orcvm-chosen-drop{border-radius:var(--r-sm);border:var(--borda);box-shadow:var(--sh-lg)}
#cont .orcvm-chosen-drop li.on,#cont .orcvm-chosen-drop li:hover,.modal-bg .orcvm-chosen-drop li.on,.modal-bg .orcvm-chosen-drop li:hover{background:#EDF8FB;color:var(--vm-ink)}
#cont .sxvm-card-body{padding:0 22px 16px}

/* ---------- 15. Agenda: barra da grade (volume, Mensal/Semanal, Mapa, setas) sem aperto ---------- */
#cont .ag-grid-tools{align-items:center;gap:8px}
#cont .ag-grid-tools .ag-link{white-space:nowrap;padding:0 4px;height:42px}
#cont .ag-grid-tools .cap-wrap{flex:1 1 auto;min-width:0;align-self:stretch}
#cont .ag-grid-tools #ag-toggle-vazias{white-space:nowrap;font-size:10.5px;padding:7px 10px}
@media (max-width:1700px){#cont .ag-grid-tools .cap-sub{display:none}}
#cont .ag-agenda-filters .ag-filter-field{min-width:190px}
#cont .ag-grid-tools .cap-bars{gap:20px}

/* ---------- 16. Ajustes finos ---------- */
#cont .cxf-tile small{color:inherit}
#cont .vm-filtros .field:has(.vm-data){flex:1.7;min-width:220px}
#cont .vm-data .btn{padding:6px 9px;font-size:11px;box-shadow:none}
#cont .orcvm-float{top:24px}
#cont .usrvm-busca{height:36px;min-width:42px;border:0;border-radius:var(--r);background:var(--vm-verde);color:#fff;font-size:17px;cursor:pointer;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),var(--sh-sm)}
#cont .usrvm-ic{width:32px;height:32px;border:0;border-radius:50%;background:#F0F4F5;color:var(--vm-ink-2);cursor:pointer;font-size:16px;margin-right:4px}
#cont .usrvm-ic:hover{background:#DCEEF3;color:var(--vm-header-dark)}
#cont .usrvm-count button.on,#cont .usrvm-pages button.on{background:var(--vm-header);border-color:var(--vm-header);color:#fff}
#cont .usrvm-tw{border:var(--borda);border-radius:var(--r);overflow:auto;background:#fff}
#cont .usrvm-t th{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--vm-ink-2);font-weight:600;padding:12px 14px;background:#F2F6F7;border-bottom:1.5px solid var(--vm-line-2);text-align:left}
#cont .usrvm-t td{padding:10px 14px;border-bottom:1px solid var(--vm-line);font-size:13px}
#cont .usrvm-t tbody tr:nth-child(odd){background:var(--vm-zebra)}
#cont .usrvm-t tbody tr:hover{background:#EDF8FB}
#cont .cx-sem-caixa{display:flex;align-items:center;gap:8px;padding:10px 14px;border:1px dashed #CFE6ED;border-radius:var(--r-sm);background:#F7FBFC;color:var(--vm-ink-3);font-size:13px}

/* =====================================================================
   17. PRONTUÁRIO E TELAS DO MÉDICO — 2ª passada (visual-dono 04/10)
   Faixa do paciente presa no alto, dados recolhíveis, navegação de abas com contador, editor de leitura
   confortável, linha do tempo visual e Sala de Espera em cartões. Só aparência (ids, textos e passos iguais).
   ===================================================================== */
#cont .prvm-pront{max-width:1320px}
/* ---- faixa do paciente ---- */
#cont .prvm-faixa{position:sticky;top:0;z-index:8;display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px 20px;
  padding:14px 20px;margin:0 0 14px;background:linear-gradient(180deg,#fff 0%,#FBFDFD 100%);border:var(--borda);border-left:5px solid var(--vm-header);
  border-radius:var(--r);box-shadow:var(--sh)}
#cont .prvm-faixa.is-atendendo{border-left-color:var(--vm-verde)}
#cont .prvm-faixa.is-fim{border-left-color:#78909C}
#cont .prvm-faixa-avatar{width:58px;height:58px;border-radius:50%;overflow:hidden;display:grid;place-items:center;flex-shrink:0;
  background:linear-gradient(150deg,#68BCCE,#3C8497);color:#fff;font:700 21px/1 var(--font);letter-spacing:.5px;box-shadow:0 0 0 3px #fff,0 0 0 4px #CFE6ED}
#cont .prvm-faixa-avatar img{width:100%;height:100%;object-fit:cover}
#cont .prvm-faixa-id{min-width:0;display:flex;flex-direction:column;gap:5px}
#cont .prvm-faixa-linha1{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
#cont .prvm-faixa-nome{margin:0;font:600 20px/1.2 var(--font);letter-spacing:-.2px;color:var(--vm-ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}
#cont .prvm-faixa-estado{display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:12px;font:700 10.5px/1.4 var(--font);
  text-transform:uppercase;letter-spacing:.5px;background:#FDF3D0;color:#8A5A00}
#cont .prvm-faixa.is-atendendo .prvm-faixa-estado{background:#E2F5EC;color:#0C8A46}
#cont .prvm-faixa.is-atendendo .prvm-faixa-estado::before{content:"";width:7px;height:7px;border-radius:50%;background:#16A34A;animation:prvm-pulso 1.8s infinite}
#cont .prvm-faixa.is-fim .prvm-faixa-estado{background:#ECEFF1;color:#546E7A}
@keyframes prvm-pulso{0%{box-shadow:0 0 0 0 rgba(22,163,74,.45)}70%{box-shadow:0 0 0 7px rgba(22,163,74,0)}100%{box-shadow:0 0 0 0 rgba(22,163,74,0)}}
@media (prefers-reduced-motion:reduce){#cont .prvm-faixa.is-atendendo .prvm-faixa-estado::before{animation:none}}
#cont .prvm-faixa-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 0;font-size:13px;color:var(--vm-ink-3)}
#cont .prvm-faixa-meta>span+span::before{content:"·";margin:0 8px;color:#B8C4C8}
#cont .prvm-faixa-conv{color:var(--vm-header-dark);font-weight:600}
#cont .prvm-faixa-conv .zmdi{width:14px;height:14px}
#cont .prvm-faixa-serv{color:var(--vm-ink-2)}
#cont .prvm-faixa-alertas{display:flex;flex-wrap:wrap;gap:6px;list-style:none;margin:2px 0 0;padding:0}
#cont .prvm-faixa-alertas li{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:12px;font:600 11.5px/1.5 var(--font);
  border:1px solid #CFE6ED;background:#EDF8FB;color:#2F7E92}
#cont .prvm-faixa-alertas li i{font-size:14px}
#cont .prvm-faixa-alertas li.is-alergia{background:#FBE7E4;color:#B42318;border-color:#F4B8B0;font-weight:700;text-transform:uppercase;letter-spacing:.3px}
#cont .prvm-faixa-alertas li.is-condicao{background:#FDF3D0;color:#7A5200;border-color:#F2DD8B}
#cont .prvm-faixa-alertas li.is-sinal{background:#E4EBF8;color:#2F55A4;border-color:#C9D6F0}
#cont .prvm-faixa-alertas li.is-falta{background:#F2F4F5;color:#546E7A;border-color:#DDE3E6}
#cont .prvm-faixa-alertas li.is-falha{background:#FBE7E4;color:#B42318;border-color:#F4B8B0;font-weight:700}
#cont .prvm-faixa-tempo{display:flex;flex-direction:column;align-items:flex-end;gap:2px;margin:0;padding:6px 14px;border-radius:var(--r-sm);background:#F2F6F7;color:var(--vm-ink-3)}
#cont .prvm-faixa-tempo small{font-size:11px;display:flex;align-items:center;gap:4px}
#cont .prvm-faixa-tempo b{font:700 22px/1.1 var(--font);color:var(--vm-header-dark);font-variant-numeric:tabular-nums;display:flex;align-items:center;gap:6px}
#cont .prvm-faixa-tempo .zmdi{width:15px;height:15px}
#cont .prvm-faixa-acoes{display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:8px}
#cont .prvm-faixa-acoes .prvm-btn-sec{background:#fff!important;color:var(--vm-verde-escuro);box-shadow:inset 0 0 0 1px #BFE3CD,var(--sh-sm)}
#cont .prvm-faixa-acoes .prvm-btn-sec .zmdi{background-color:var(--vm-verde-escuro)}
#cont .prvm-faixa-acoes .prvm-btn-principal{height:42px;padding:0 18px;font-size:13px;letter-spacing:.5px}
@media (max-width:1100px){#cont .prvm-faixa{grid-template-columns:auto minmax(0,1fr)}#cont .prvm-faixa-tempo,#cont .prvm-faixa-acoes{grid-column:1/-1;align-items:flex-start;justify-content:flex-start}}
/* ---- dados cadastrais recolhíveis ---- */
#cont .prvm-dados{padding:0;margin-bottom:14px}
#cont .prvm-dados-toggle{width:100%;display:flex;align-items:center;gap:10px;padding:12px 18px;border:0;background:transparent;cursor:pointer;
  font:700 11.5px/1.3 var(--font);text-transform:uppercase;letter-spacing:.55px;color:var(--vm-ink-2);text-align:left;border-radius:var(--r)}
#cont .prvm-dados-toggle:hover{background:#F7FBFC}
#cont .prvm-dados-toggle>i:first-child{font-size:18px;color:var(--vm-header)}
#cont .prvm-dados-toggle small{flex:1;min-width:0;font:400 13px/1.3 var(--font);text-transform:none;letter-spacing:0;color:var(--vm-ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#cont .prvm-dados-seta{font-size:18px;color:var(--vm-ink-3);transition:transform var(--tr)}
#cont .prvm-dados.is-aberto .prvm-dados-seta{transform:rotate(180deg)}
#cont .prvm-dados #prvm-header-box{border-top:1px solid var(--vm-line)}
#cont .prvm-dados .prvm-header{grid-template-columns:150px 1fr;margin:14px 18px 16px;box-shadow:none;border:0;background:#F7FBFC}
#cont .prvm-dados .prvm-header-estat{grid-column:2}
/* ---- itens de serviço ---- */
#cont .prvm-pront .prvm-itens-servico{margin:0 0 14px}
#cont .prvm-pront .prvm-itens-servico ul{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:6px 18px}
/* ---- navegação das abas ---- */
#cont .prvm-pront .prvm-abas-v{margin:0;grid-template-columns:248px 1fr;gap:16px}
#cont .prvm-pront .prvm-abas-nav{padding:8px;gap:2px;top:122px}
#cont .prvm-pront .prvm-aba{display:flex;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;font-weight:500;color:var(--vm-ink-2);box-shadow:none}
#cont .prvm-pront .prvm-aba>.zmdi{flex:0 0 18px;width:18px;height:18px;background-color:var(--vm-ink-3)}
#cont .prvm-pront .prvm-aba-rotulo{flex:1;min-width:0;text-align:left;line-height:1.25}
#cont .prvm-pront .prvm-aba-cont{min-width:22px;height:20px;padding:0 6px;border-radius:10px;background:#DCEEF3;color:var(--vm-header-dark);
  font:700 11px/20px var(--font);text-align:center;font-variant-numeric:tabular-nums}
#cont .prvm-pront .prvm-aba:hover{background:#F0F6F8;color:var(--vm-ink)}
#cont .prvm-pront .prvm-aba.is-ativa{background:var(--marca);color:#fff;font-weight:600;box-shadow:0 6px 14px -8px rgba(60,133,152,.8)}
#cont .prvm-pront .prvm-aba.is-ativa>.zmdi{background-color:#fff}
#cont .prvm-pront .prvm-aba.is-ativa .prvm-aba-cont{background:rgba(255,255,255,.95);color:#2F7E92}
/* ---- painel e editor de leitura confortável ---- */
#cont .prvm-pront .prvm-abas-conteudo{padding:22px 26px 24px}
#cont .prvm-abas-conteudo .prvm-campo{margin:0 0 20px}
#cont .prvm-abas-conteudo .prvm-campo>label{font:700 11.5px/1.3 var(--font);text-transform:uppercase;letter-spacing:.55px;color:var(--vm-ink-2);margin-bottom:8px}
#cont .prvm-abas-conteudo .prvm-campo textarea{font:400 15px/1.65 var(--font);color:var(--vm-ink);padding:14px 16px;min-height:128px;
  background:#FCFDFD;border:1px solid #D5DEE1;border-radius:10px}
#cont .prvm-abas-conteudo .prvm-campo textarea::placeholder{color:#9AA4AA}
#cont .prvm-abas-conteudo .prvm-campo textarea:disabled{background:#F7F9FA;color:var(--vm-ink-2)}
#cont .prvm-anamnese{gap:0 22px}
#cont .prvm-anamnese>.prvm-col{background:#F7FBFC;border:1px solid #E3ECEF;border-radius:var(--r);padding:2px 18px 16px;margin-bottom:20px}
#cont .prvm-anamnese>.prvm-col .prvm-subtitulo{border-bottom-color:#E3ECEF}
#cont .prvm-anamnese>.prvm-col>.prvm-check{display:inline-flex;margin:4px 6px 4px 0;padding:6px 12px;border:1px solid #D5DEE1;border-radius:16px;background:#fff;
  font-size:13px;color:var(--vm-ink-2);transition:background var(--tr),border-color var(--tr)}
#cont .prvm-anamnese>.prvm-col>.prvm-check:has(input:checked){background:#FDF3D0;border-color:#F2DD8B;color:#6B5308;font-weight:600}
#cont .prvm-anamnese>.prvm-col>.prvm-check:has(input[data-anam-pessoal="alergias"]:checked){background:#FBE7E4;border-color:#F4B8B0;color:#B42318}
#cont .prvm-anamnese input[type=checkbox]{accent-color:var(--vm-header-dark);width:16px;height:16px}
#cont .prvm-anamnese .prvm-social{display:grid;grid-template-columns:1fr auto;align-items:center;gap:4px 10px;padding:8px 0;border-bottom:1px dashed #E3ECEF}
#cont .prvm-anamnese .prvm-social>.prvm-campo{grid-column:1/-1;margin:6px 0 4px}
#cont .prvm-anamnese .prvm-social>.prvm-campo textarea{min-height:72px}
#cont .prvm-rodape-aba{padding-top:14px;border-top:1px solid var(--vm-line)}
/* ---- linha do tempo do paciente ---- */
#cont .prvm-timeline-resumo{margin:-2px 0 14px;font-size:13px;color:var(--vm-ink-3)}
#cont .prvm-timeline-resumo b{color:var(--vm-ink);font-size:15px}
#cont ol.prvm-timeline{list-style:none;margin:0;padding:0;display:block}
#cont .prvm-timeline .prvm-tv{display:grid;grid-template-columns:62px 30px minmax(0,1fr);gap:0;border:0;border-radius:0;background:none;box-shadow:none;padding:0;margin:0}
#cont .prvm-tv-data{text-align:right;padding-top:6px;line-height:1.05}
#cont .prvm-tv-data b{display:block;font:700 22px/1 var(--font);color:var(--vm-ink)}
#cont .prvm-tv-data span{display:block;font:700 11px/1.4 var(--font);color:var(--vm-header-dark);letter-spacing:.5px}
#cont .prvm-tv-data small{display:block;font-size:10.5px;color:var(--vm-ink-3)}
#cont .prvm-tv-marco{position:relative}
#cont .prvm-tv-marco::before{content:"";position:absolute;left:50%;top:0;bottom:0;width:2px;margin-left:-1px;background:#DDE6E9}
#cont .prvm-timeline .prvm-tv:first-child .prvm-tv-marco::before{top:14px}
#cont .prvm-timeline .prvm-tv:last-child .prvm-tv-marco::before{bottom:calc(100% - 14px)}
#cont .prvm-tv-marco::after{content:"";position:absolute;left:50%;top:10px;width:14px;height:14px;margin-left:-7px;border-radius:50%;background:#fff;border:3px solid var(--vm-header);box-shadow:0 0 0 3px #fff}
#cont .prvm-tv.is-retorno .prvm-tv-marco::after{border-color:#6E8FD8}
#cont .prvm-tv-cartao{margin:0 0 14px;padding:12px 16px 14px;background:#fff;border:var(--borda);border-left:3px solid var(--vm-header);border-radius:var(--r);box-shadow:var(--sh-sm);transition:box-shadow var(--tr)}
#cont .prvm-tv.is-retorno .prvm-tv-cartao{border-left-color:#6E8FD8}
#cont .prvm-tv-cartao:hover{box-shadow:var(--sh)}
#cont .prvm-tv-topo{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}
#cont .prvm-timeline .prvm-tv-tags{gap:6px}
#cont .prvm-timeline .prvm-tv-tags li{border-radius:10px;padding:2px 9px;font-size:11px;font-weight:600;background:#F2F6F7;color:var(--vm-ink-2)}
#cont .prvm-timeline .prvm-tv-tags .t-consulta{background:#E2F5EC;color:#0C8A46}
#cont .prvm-timeline .prvm-tv-tags .t-retorno{background:#E4EBF8;color:#2F55A4}
#cont .prvm-timeline .prvm-tv-tags .t-cat{background:#EDF8FB;color:#2F7E92}
#cont .prvm-timeline .prvm-tv-tags .t-sala{background:#F3E5FA;color:#7B3FA0}
#cont .prvm-timeline .prvm-tv-tags .t-data{background:transparent;color:var(--vm-ink-3);padding-left:0}
#cont .prvm-tv-prof{margin:8px 0 4px;font-size:13.5px;font-weight:600;color:var(--vm-ink-2);display:flex;align-items:center;gap:6px}
#cont .prvm-tv-prof .zmdi{width:15px;height:15px;background-color:var(--vm-ink-3)}
#cont .prvm-tv-prof small{font-weight:500;color:var(--vm-ink-3)}
#cont .prvm-tv-corpo strong{display:none}
/* texto clínico inteiro (sem corte) — juiz 04/10 */
#cont .prvm-tv-corpo .prvm-pre-line{font-size:14px;line-height:1.55;color:var(--vm-ink)}
/* ---- Sala de Espera em cartões ---- */
#cont .prvm-sala-resumo{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 12px}
#cont .prvm-sala-resumo span{display:inline-flex;align-items:baseline;gap:6px;padding:6px 12px;border-radius:var(--r-sm);font-size:12.5px;color:var(--vm-ink-2);background:#F2F6F7}
#cont .prvm-sala-resumo b{font-size:17px;font-variant-numeric:tabular-nums}
#cont .prvm-sala-resumo .is-aguardando b{color:#0C8A46}
#cont .prvm-sala-resumo .is-chamado b{color:#B7791F}
#cont .prvm-sala-resumo .is-atendendo b{color:#2F7E92}
#cont .prvm-proximo{display:grid;gap:4px;width:100%;padding:16px 20px;margin:0 0 14px;border:0;border-radius:var(--r);text-align:left;font:inherit;cursor:pointer;
  background:linear-gradient(135deg,#0C8A46 0%,#2F7E92 100%);color:#fff;box-shadow:var(--sh);transition:transform .15s,box-shadow .15s}
#cont .prvm-proximo:hover{transform:translateY(-1px);box-shadow:var(--sh-lg,var(--sh))}
#cont .prvm-proximo-rotulo{grid-column:1;font:700 11px/1.3 var(--font);text-transform:uppercase;letter-spacing:.6px;opacity:.9;display:flex;align-items:center;gap:6px}
#cont .prvm-proximo-rotulo .zmdi{background-color:#fff}
#cont .prvm-proximo-nome{grid-column:1;font:600 22px/1.2 var(--font);letter-spacing:-.2px}
#cont .prvm-proximo-meta{grid-column:1;display:flex;flex-wrap:wrap;align-items:center;gap:6px 14px;font-size:13px;opacity:.95}
#cont .prvm-proximo-meta .prvm-badge-consulta,#cont .prvm-proximo-meta .prvm-badge-outro{width:auto;background:rgba(255,255,255,.2);color:#fff}
#cont .prvm-proximo .prvm-pac-espera{color:rgba(255,255,255,.9)}
#cont .prvm-proximo .prvm-pac-espera b{color:#fff}
#cont .prvm-pac-lista{display:grid;gap:8px}
#cont .prvm-pac{display:grid;grid-template-columns:64px minmax(0,1fr) auto auto;align-items:center;gap:6px 16px;padding:12px 16px;background:#fff;
  border:var(--borda);border-left:5px solid #0C8A46;border-radius:var(--r);box-shadow:var(--sh-sm);transition:box-shadow var(--tr),transform var(--tr)}
#cont .prvm-pac:hover{box-shadow:var(--sh);transform:translateY(-1px)}
#cont .prvm-pac.is-chamado{border-left-color:#E8A400;background:#FFFCF2}
#cont .prvm-pac.is-atendendo{border-left-color:#2F7E92;background:#F4FAFB}
#cont .prvm-pac.is-proximo{box-shadow:0 0 0 2px rgba(12,138,70,.35),var(--sh-sm)}
#cont .prvm-pac-hora{text-align:center;line-height:1.1}
#cont .prvm-pac-hora b{display:block;font:700 18px/1.1 var(--font);color:var(--vm-ink);font-variant-numeric:tabular-nums}
#cont .prvm-pac-hora small{font-size:10px;text-transform:uppercase;letter-spacing:.4px;color:var(--vm-ink-3)}
#cont .prvm-pac-nome{font:600 15px/1.3 var(--font);color:var(--vm-ink);overflow:hidden;text-overflow:ellipsis}
#cont .prvm-pac-prio{display:inline-block;margin-left:6px;padding:1px 8px;border-radius:10px;background:#FBE7E4;color:#B42318;font:700 10.5px/1.6 var(--font);text-transform:uppercase;vertical-align:2px}
#cont .prvm-pac-meta{display:flex;flex-wrap:wrap;align-items:center;gap:4px 14px;margin-top:4px;font-size:12.5px;color:var(--vm-ink-3)}
#cont .prvm-pac-meta .prvm-badge-consulta,#cont .prvm-pac-meta .prvm-badge-outro{width:auto}
#cont .prvm-pac-meta .zmdi{width:13px;height:13px;background-color:currentColor}
#cont .prvm-pac-status{display:flex;flex-direction:column;align-items:flex-end;gap:4px;text-align:right}
#cont .prvm-pac-sit{padding:3px 10px;border-radius:12px;font:700 11px/1.5 var(--font);text-transform:uppercase;letter-spacing:.3px;background:#E2F5EC;color:#0C8A46}
#cont .prvm-pac.is-chamado .prvm-pac-sit{background:#FDF3D0;color:#8A5A00}
#cont .prvm-pac.is-atendendo .prvm-pac-sit{background:#DCEEF3;color:#2F7E92}
#cont .prvm-pac-espera{font-size:12px;color:var(--vm-ink-3)}
#cont .prvm-pac-espera b{color:var(--vm-ink);font-variant-numeric:tabular-nums}
#cont .prvm-pac-opcoes{display:flex;gap:4px}
#cont .prvm-vazio-sala{border:1px dashed #CFE6ED;border-radius:var(--r);background:#F7FBFC}
@media (max-width:900px){#cont .prvm-pac{grid-template-columns:56px 1fr}#cont .prvm-pac-status,#cont .prvm-pac-opcoes{grid-column:1/-1;align-items:flex-start;flex-direction:row}}

/* Acabamento visual — 10/10/2026.
   Última camada da cascata: preserva conteúdo, geometria e estados das telas.
   Open Sans é usada somente se já disponível; não há download de fonte.
   As cores da grade da Agenda continuam nas variáveis --ag-* existentes. */
:root {
  --font: 'Open Sans', 'Roboto', system-ui, -apple-system, sans-serif;
  --vm-ink-3: #58676D;
  --vm-zebra: #FDF7DE;
  --av-surface-soft: #F3F8F9;
  --av-line: #D5E0E3;
  --av-field-line: #8A9EA5;
  --av-focus: #0B6076;
  --av-hover: #E8F4F7;
  --av-success: #08783F;
  --av-danger: #B8372A;
  --av-blue: #28658F;
  --av-orange: #A24F12;
  --av-slate: #52666F;
  --av-violet: #703399;
  --av-pink: #A13269;
  --av-highlight: inset 0 1px 0 rgba(255, 255, 255, .30);
  --av-button-gradient: linear-gradient(180deg, rgba(255, 255, 255, .04), rgba(20, 45, 52, .10));
  /* Véu tingido: mantém a cor inline do tile e dá contraste AA ao branco. */
  --av-tile-gradient: linear-gradient(180deg, rgba(20, 45, 52, .50), rgba(20, 45, 52, .58));
  --sh-sm: 0 1px 2px rgba(20, 45, 52, .12), 0 5px 12px -4px rgba(20, 45, 52, .16);
  --sh: 0 2px 4px rgba(20, 45, 52, .13), 0 12px 24px -8px rgba(20, 45, 52, .22);
  --sh-lg: 0 5px 12px -3px rgba(20, 45, 52, .22), 0 28px 64px -16px rgba(20, 45, 52, .36);
  --tr: .16s cubic-bezier(.165, .84, .44, 1);
}

/* Botões: brilho fino, contato e ambiente; só a pintura muda no repouso.
   A pintura genérica tem especificidade zero e respeita os estados existentes. */
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(
  .btn, .prvm-btn, .prvm-btn-verde, .prvm-btn-vermelho, .prvm-btn-azul,
  .prvm-btn-azul-escuro, .prvm-btn-cinza, .prvm-btn-amarelo,
  .prvm-btn-confirmar, .prvm-btn-cancelar, .sxvm-btn, .rr-verde,
  .pacvm-btn-busca, .pacvm-acoes-btn, .pacvm-float, .orcvm-float,
  .prvm-flutuante, .usrvm-fab, .rr-flutuante, .finvm-float
)) {
  background-image: var(--av-button-gradient);
  box-shadow: var(--av-highlight), var(--sh-sm);
  filter: none;
  transition: background-color var(--tr), box-shadow var(--tr), transform var(--tr);
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(
  .btn, .prvm-btn, .prvm-btn-verde, .prvm-btn-vermelho, .prvm-btn-azul,
  .prvm-btn-azul-escuro, .prvm-btn-cinza, .prvm-btn-amarelo,
  .prvm-btn-confirmar, .prvm-btn-cancelar, .sxvm-btn, .rr-verde,
  .pacvm-btn-busca, .pacvm-acoes-btn, .pacvm-float, .orcvm-float,
  .prvm-flutuante, .usrvm-fab, .rr-flutuante, .finvm-float
):not(:disabled):not([aria-disabled="true"]):hover) {
  box-shadow: var(--av-highlight), var(--sh);
  transform: translateY(-1px);
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(
  .btn, .prvm-btn, .prvm-btn-verde, .prvm-btn-vermelho, .prvm-btn-azul,
  .prvm-btn-azul-escuro, .prvm-btn-cinza, .prvm-btn-amarelo,
  .prvm-btn-confirmar, .prvm-btn-cancelar, .sxvm-btn, .rr-verde,
  .pacvm-btn-busca, .pacvm-acoes-btn, .pacvm-float, .orcvm-float,
  .prvm-flutuante, .usrvm-fab, .rr-flutuante, .finvm-float
):not(:disabled):not([aria-disabled="true"]):active) {
  transform: translateY(0);
  box-shadow: inset 0 1px 2px rgba(20, 45, 52, .22), var(--sh-sm);
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(.btn, .prvm-btn, .sxvm-btn):disabled) {
  transform: none;
  box-shadow: var(--sh-sm);
}

/* Tons da mesma família, mais profundos para texto branco pequeno. */
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(
  .btn.primary, .orcvm-verde, .orcvm-verde2, .prvm-btn-verde,
  .rr-verde, .sxvm-verde, .pacvm-btn-busca, .pacvm-float, .orcvm-float,
  .prvm-flutuante, .usrvm-fab, .rr-flutuante, .finvm-verde,
  .agv-btn-verde, .agv-btn-cadastro
)) { background-color: var(--av-success); color: #FFFFFF; }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(
  .btn.danger, .orcvm-vermelho, .prvm-btn-vermelho, .finvm-vermelho,
  .agv-btn-excluir, .orcvm-circ-vermelho
)) { background-color: var(--av-danger); color: #FFFFFF; }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(
  .btn.azul, .orcvm-azul, .orcvm-azul2, .prvm-btn-azul,
  .prvm-btn-azul-escuro, .sxvm-azul, .agv-btn-linhatempo
)) { background-color: var(--av-blue); color: #FFFFFF; }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(.btn.laranja, .prvm-btn-confirmar, .pacvm-btn-swal, .agv-btn-salmao)) {
  background-color: var(--av-orange); color: #FFFFFF;
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(.prvm-btn-cinza, .finvm-cinza, .pacvm-acoes-btn)) {
  background-color: var(--av-slate); color: #FFFFFF;
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg) .agv-btn-historico) { background-color: var(--av-violet); }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) .agv-btn-guia) { background-color: var(--av-pink); }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) .agv-btn-orcamento) { background-color: var(--av-focus); }
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(.orcvm-amarelo, .orcvm-laranja, .prvm-btn-amarelo, .agv-btn-amarelo, .agv-btn-laranja)) {
  color: #263238;
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg) .prvm-btn-cancelar) { color: #263238; }
/* Links e ações de tabela mantêm sua superfície discreta e seu formato. */
:where(:is(#cont, .modal-bg, .prvm-janela-bg) :is(.prvm-btn-link, .agv-btn-link),
:is(#cont, .modal-bg, .prvm-janela-bg) :is(.prvm-btn-link, .agv-btn-link):is(:hover, :active)) {
  background-image: none; box-shadow: none; transform: none;
}
:where(#cont :is(.pacvm-ico, .orcvm-circ, .prvm-icone, .vm-opcoes .btn.sm)) {
  box-shadow: inset 0 0 0 1px var(--av-line), var(--sh-sm);
}
:where(#cont :is(.pacvm-ico, .orcvm-circ, .prvm-icone, .vm-opcoes .btn.sm):hover) {
  box-shadow: inset 0 0 0 1px var(--av-field-line), var(--sh-sm);
}
:where(#cont .prvm-icone.is-verde) { background-color: var(--av-success); }

/* Cartões, filtros e gráficos: borda existente suave e duas sombras tingidas. */
:where(#cont :is(
  .card, .mc, .dh-chart, .dh-agenda, .svc-metric,
  .pacvm-card, .orcvm-card, .sxvm-card, .prvm-card, .usrvm-card,
  .rr-card, .finvm-card, .cadm-sec, .prontuario-v2-panel
)) {
  border-color: var(--av-line);
  box-shadow: var(--av-highlight), var(--sh);
}
/* Preserva os filetes semânticos: topo colorido nos KPIs e lateral da projeção. */
:where(#cont .cfm-kpi) {
  border-right-color: var(--av-line); border-bottom-color: var(--av-line); border-left-color: var(--av-line);
  box-shadow: var(--av-highlight), var(--sh);
}
:where(#cont .dh-projection) {
  border-top-color: var(--av-line); border-right-color: var(--av-line); border-bottom-color: var(--av-line);
  box-shadow: var(--av-highlight), var(--sh);
}
:where(#cont :is(
  .pacvm-filtros, .orcvm-filtros, .prvm-filtros, .usrvm-filtros,
  .rr-filtros, .sxvm-filtros, .relvm-filtros, .finvm-filtros, .vm-filtros
)) {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .64), rgba(20, 45, 52, .015));
  border-color: var(--av-line);
  box-shadow: var(--av-highlight), var(--sh-sm);
}

/* Tiles: nenhum tamanho ou cor de status é reescrito; o véu pinta sobre o fundo. */
:where(#cont :is(.dt, .dt-sm, .cxf-tile)) {
  background-image: var(--av-tile-gradient);
  color: #FFFFFF;
  box-shadow: var(--av-highlight), inset 0 -1px 0 rgba(20, 45, 52, .20), var(--sh);
  filter: none;
  transition: box-shadow var(--tr), transform var(--tr);
}
:where(#cont :is(.dt, .dt-sm, .cxf-tile):hover) {
  box-shadow: var(--av-highlight), inset 0 -1px 0 rgba(20, 45, 52, .20), var(--sh-lg);
  transform: translateY(-1px);
}
:where(#cont :is(.dt .lab, .dt-sm .lab, .cxf-tile small, .cxf-tile span)) {
  color: #FFFFFF; opacity: 1;
}
/* Reset explícito também dos <b>/<strong> e filhos: número nunca fica em negrito. */
:is(#cont, .modal-bg, .prvm-janela-bg) :is(
  .dt .val, .dt-sm .val, .cxf-tile b, .cxf-tile span, .mc .v,
  .cfm-kpi strong, .svc-metric b, .dh-proj-grid b, .dh-hoje .row .n, .dh-orc-value
),
:is(#cont, .modal-bg, .prvm-janela-bg) :is(
  .dt .val, .dt-sm .val, .cxf-tile b, .cxf-tile span, .mc .v,
  .cfm-kpi strong, .svc-metric b, .dh-proj-grid b, .dh-hoje .row .n, .dh-orc-value
) * {
  font-weight: 400 !important;
  font-variant-numeric: tabular-nums;
}
:where(#cont .dh-proj-grid .primary) {
  background-image: linear-gradient(135deg, #0B6076, #0E7490);
}
/* Cor própria do card; a especificidade do estado de foco continua superior. */
:where(#cont) .dh-orc { background-color: #A13269; }
:where(#cont .dh-orc .circ) { background: var(--av-button-gradient); }
:where(#cont .dh-pill.on) { background-image: linear-gradient(180deg, #0E7490, #155E75); }

/* Listas: relevo no cabeçalho e zebra quente da identidade Vissmed.
   Escopo explícito evita pintar a grade, calendários e tabelas de formulário. */
:where(#cont :is(.tw, .pacvm-tabela, .prvm-tabela-wrap, .relt-tw)) {
  border-color: var(--av-line); box-shadow: var(--av-highlight), var(--sh-sm);
}
:where(#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table th,
#cont table.t th, #cont table.prvm-tabela th,
:is(.modal-bg, .prvm-janela-bg) :is(.vm-espelho-modal, .prvm-janela) table th) {
  background-color: var(--av-surface-soft);
  background-image: linear-gradient(180deg, #FBFDFD, #EAF1F3);
  border-bottom-color: #B6C9CE;
  color: #3E535C;
  box-shadow: inset 0 1px 0 rgba(255, 255, 255, .90), inset 0 -1px 0 rgba(20, 45, 52, .06);
}
:where(#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table tbody tr:nth-child(odd),
#cont table.t tbody tr:nth-child(odd), #cont table.prvm-tabela tbody tr:nth-child(odd)) {
  background-color: var(--vm-zebra);
}
:where(#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table tbody tr:hover,
#cont table.t tbody tr:hover, #cont table.prvm-tabela tbody tr:hover) {
  background-color: var(--av-hover);
}
:where(#cont .relt-t th, #cont .relt-grupo td) {
  background-color: #0E7490;
  background-image: linear-gradient(180deg, #0E7490, #155E75);
  color: #FFFFFF;
}
:where(#cont .relt-t tbody tr.relt-l:nth-child(even) td) { background-color: var(--vm-zebra); }
:where(#cont .relt-t tbody tr.relt-l:hover td) { background-color: var(--av-hover); }
:where(#cont .relt-t .relt-filtro) { background: #FFFFFF; color: #263238; }

/* Os dois menus existentes: grupos legíveis, ativo com contato e filete interno. */
:where(.drawer) {
  background: linear-gradient(90deg, #FFFFFF, #F8FBFC);
  box-shadow: 2px 0 4px rgba(20, 45, 52, .14), 12px 0 28px -12px rgba(20, 45, 52, .30);
}
:where(.drawer .drawer-head) { background-image: linear-gradient(180deg, #0E7490, #155E75); }
:where(.drawer .drawer-head .s) { opacity: 1; }
:where(.drawer .menu-titulo) {
  color: #155E75;
  background: linear-gradient(90deg, #E8F4F7, rgba(232, 244, 247, 0));
}
:where(.drawer .menu-erp) { border-top-color: #B6C9CE; }
:where(.drawer .dgrp) { color: #52666F; }
:where(.drawer .dgrp:hover) { background-color: #F0F7F9; color: #155E75; }
:where(.drawer .ditem) { color: #2C3238; transition: background-color var(--tr), box-shadow var(--tr), color var(--tr); }
:where(.drawer .ditem:hover) { background: #EDF6F8; box-shadow: inset 0 0 0 1px #D5E5E9; }
:where(.drawer .ditem.on) {
  background: linear-gradient(90deg, #D9EDF2, #EAF5F8);
  color: #155E75;
  box-shadow: inset 3px 0 0 #0B6076, inset 0 0 0 1px #BCD9E1, var(--sh-sm);
}
:where(.drawer .ditem.on i) { color: #155E75; }
:where(.drawer .ditem-construcao) { color: #58676D; }

/* Barra superior: luz discreta sobre a marca; o vão ciano permanece sem texto. */
:where(.vm-header) {
  /* sem degradê próprio: o topo é #0E7490 chapado e o degradê fica só no vão (topo-contraste-navegador) */
  box-shadow: var(--av-highlight), 0 2px 4px rgba(20, 45, 52, .18), 0 8px 20px -8px rgba(20, 45, 52, .28);
}
:where(.vm-header .vm-hbtn) {
  background-color: #0B6076;
  background-image: var(--av-button-gradient);
  box-shadow: var(--av-highlight), var(--sh-sm);
}
:where(.vm-header :is(.vm-ham, .vm-hicon)) { transition: background-color var(--tr), box-shadow var(--tr); }
:where(.vm-header :is(.vm-ham, .vm-hicon, .vm-hbtn):hover) {
  background-color: #155E75; box-shadow: var(--av-highlight), var(--sh-sm);
}

/* Janelas: aro pintado por inset, sombra profunda e cabeçalho com luz suave. */
:where(:is(.modal-bg, .prvm-janela-bg) :is(.modal, .prvm-janela), .vm-dp, .chosen-container .chosen-drop) {
  box-shadow: inset 0 0 0 1px rgba(20, 45, 52, .12), var(--av-highlight), var(--sh-lg);
}
:where(:is(.modal-bg, .prvm-janela-bg) :is(.modal-h, .prvm-janela-h)) {
  background-image: linear-gradient(180deg, rgba(255, 255, 255, .70), rgba(20, 45, 52, .035));
  border-bottom-color: var(--av-line);
}
:where(.modal-bg .modal-h .t) { color: #3E535C; }
:where(:is(.modal-bg, .prvm-janela-bg) :is(.modal-f, .prvm-janela-f)) {
  background-image: linear-gradient(180deg, rgba(20, 45, 52, .018), rgba(255, 255, 255, .30));
  border-top-color: var(--av-line);
}

/* Campos: mantém borda e medidas originais, reforçando apenas cor e foco. */
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(
  input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="color"]),
  select, textarea, .chosen-single
)) {
  border-color: var(--av-field-line);
  color: #2C3238;
  transition: border-color var(--tr), box-shadow var(--tr), background-color var(--tr);
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(input, select, textarea, .chosen-single):hover) {
  border-color: #52666F;
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(input, select, textarea):focus,
.chosen-container.chosen-with-drop .chosen-single) {
  border-color: var(--av-focus);
  box-shadow: inset 0 -1px 0 var(--av-focus);
}
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(input, textarea))::placeholder { color: #58676D; opacity: 1; }
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) .field:focus-within label) { color: #0B6076; }
/* Erros são estados, inclusive nos modais anexados diretamente ao body.
   :is dá precedência ao erro sobre os shorthands antigos de borda; a pintura
   genérica acima permanece com especificidade zero, sem !important. */
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro :is(input, select, textarea),
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea)[aria-invalid="true"] {
  border-color: var(--vm-vermelho);
}
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro label {
  color: var(--vm-vermelho);
}
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro :is(input, select, textarea):focus,
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea)[aria-invalid="true"]:focus {
  border-color: var(--vm-vermelho);
  box-shadow: inset 0 -1px 0 var(--vm-vermelho);
  outline-color: var(--vm-vermelho);
}
:where(.chosen-container-single .chosen-default) { color: #58676D; }
:where(.chosen-container .chosen-results li.result-selected) { color: #155E75; }

/* Foco genérico: fallback com especificidade zero, sem vencer estados das telas. */
:where(:is(#cont, .modal-bg, .prvm-janela-bg, .drawer, .vm-header, .login-wrap) :is(button, a, input, select, textarea, [tabindex]):focus-visible) {
  outline: 2px solid var(--av-focus);
  outline-offset: 2px;
}
/* Estado explícito em superfície colorida: branco contrasta com a marca.
   O foco branco de .dh-orc .circ definido em app.css permanece intacto. */
.vm-header :where(button, a, input, select, textarea, [tabindex]):focus-visible,
.drawer-head :where(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid #FFFFFF;
  outline-offset: 2px;
  box-shadow: 0 0 0 4px #155E75;
}

/* Sem bounce. Mantém os estados finais e eventos das animações existentes. */
@media (prefers-reduced-motion: reduce) {
  :root { --tr: 0s; }
  :where(*), :where(*)::before, :where(*)::after {
    animation-duration: .01ms;
    animation-iteration-count: 1;
    transition-duration: 0s;
    scroll-behavior: auto;
  }
  :where(:is(#cont, .modal-bg, .prvm-janela-bg, .login-wrap) :is(button, .btn, .dt, .dt-sm, .cxf-tile, .dh-pill):is(:hover, :active)) {
    transform: none;
  }
}

/* =====================================================================
   Acabamento r4 — 12/10/2026, decisão do dono.
   "O ERP só vai ter adoção se ficar bonito e intuitivo." Fidelidade ao Vissmed na ESTRUTURA (menu, telas, campos,
   botões, fluxo); visual moderno e caprichado. Sai o que é feio do Vissmed: a zebra amarela das tabelas e os amarelos
   pálidos de aviso. Só apresentação: nenhum id, texto, RPC, regra ou passo muda. Camada única no fim da cascata,
   em cima do acabamento de 10/10; vence a pintura genérica (:where) com os mesmos seletores das seções 5 a 7.
   Princípios: hierarquia, respiro, cor com intenção, estados visíveis, contraste AA (medido em acabamento-r4.test).
   ===================================================================== */
:root {
  /* neutros tingidos no teal da marca (tom 195): tinta, linhas, superfícies, fundo */
  --r4-ink: #1F2A2E;
  --r4-ink-2: #45545A;
  --r4-ink-3: #5B6B71;
  --r4-line: #DCE5E8;
  --r4-line-2: #C2D0D5;
  --r4-surface: #FFFFFF;
  --r4-surface-2: #F5F8F9;
  --r4-surface-3: #EAF1F3;
  --r4-bg: #ECF0F1;
  --r4-hover: #EEF6F8;
  --r4-selected: #DCEEF3;
  --r4-focus: #0B6076;
  --r4-focus-ring: 0 0 0 3px rgba(14, 116, 144, .22);
  /* quatro tons de estado com caráter: fundo tingido, borda e tinta escura do MESMO tom */
  --r4-info-bg: #DCEFF5;    --r4-info-line: #8FC7D9;    --r4-info-ink: #0B4A5C;    --r4-info: #0E7490;
  --r4-ok-bg: #D5F0DF;      --r4-ok-line: #86CFA6;      --r4-ok-ink: #0A5530;      --r4-ok: #0A7A3E;
  --r4-atencao-bg: #FBE4B8; --r4-atencao-line: #E4B04A; --r4-atencao-ink: #633D00; --r4-atencao: #B7791F;
  --r4-erro-bg: #FADBD6;    --r4-erro-line: #EC9F94;    --r4-erro-ink: #7F1F15;    --r4-erro: #B8372A;
  /* escala tipográfica (contraste ≥ 1,25 entre degraus) e espaçamento */
  --r4-t-1: 22px; --r4-t-2: 17px; --r4-t-3: 14px; --r4-t-4: 13px; --r4-t-5: 11px;
  --r4-s-1: 4px; --r4-s-2: 8px; --r4-s-3: 12px; --r4-s-4: 16px; --r4-s-5: 24px;
  /* tokens do app que trocam de valor: zebra sai, neutros entram, sombras mais curtas */
  --vm-zebra: #FFFFFF;
  --vm-bg: #ECF0F1;
  --vm-ink: var(--r4-ink);
  --vm-ink-2: var(--r4-ink-2);
  --vm-ink-3: var(--r4-ink-3);
  --vm-line: var(--r4-line);
  --vm-line-2: var(--r4-line-2);
  --av-line: var(--r4-line);
  --av-hover: var(--r4-hover);
  --av-surface-soft: var(--r4-surface-2);
  --borda: 1px solid var(--r4-line);
  --sh-sm: 0 1px 2px rgba(20, 45, 52, .08), 0 2px 6px -2px rgba(20, 45, 52, .10);
  --sh: 0 2px 4px rgba(20, 45, 52, .08), 0 8px 18px -8px rgba(20, 45, 52, .18);
  --sh-lg: 0 6px 14px -6px rgba(20, 45, 52, .18), 0 22px 44px -14px rgba(20, 45, 52, .26);
}

/* ---- 1. Tabelas: linhas limpas, divisória fina tingida, hover sutil, cabeçalho refinado ---- */
#cont table.t,
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table.t,
.modal-bg .vm-espelho-modal table.t { font-size: var(--r4-t-4); color: var(--r4-ink); border-collapse: separate; border-spacing: 0; font-variant-numeric: tabular-nums; }
#cont table.t th, #cont .usrvm-t th, #cont .rr-tabela th, #cont .relvm-t th,
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table th,
#cont table.prvm-tabela th, .modal-bg :is(.vm-espelho-modal, .prvm-janela) table th {
  font-size: var(--r4-t-5); font-weight: 600; letter-spacing: .6px; text-transform: uppercase; color: var(--r4-ink-3);
  padding: 10px 14px; background: var(--r4-surface-2); background-image: none; box-shadow: none;
  border-bottom: 1px solid var(--r4-line-2); white-space: nowrap; vertical-align: middle; line-height: 1.3;
}
#cont table.t td, #cont .usrvm-t td, #cont .rr-tabela td,
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table td,
#cont table.prvm-tabela td, .modal-bg :is(.vm-espelho-modal, .prvm-janela) table td {
  padding: 11px 14px; line-height: 1.45; vertical-align: middle; font-size: var(--r4-t-4);
  border-bottom: 1px solid var(--r4-line); border-color: var(--r4-line);
}
#cont table.t tbody tr:last-child td,
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table tbody tr:last-child td { border-bottom-color: transparent; }
/* zebra fora: linha ímpar e par iguais; o hover é a única cor de linha */
#cont table.t tbody tr:nth-child(odd), #cont .usrvm-t tbody tr:nth-child(odd), #cont .rr-tabela tbody tr:nth-child(odd),
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table tbody tr:nth-child(odd),
#cont table.prvm-tabela tbody tr:nth-child(odd), .modal-bg .vm-espelho-modal table.t tbody tr:nth-child(odd) { background: transparent; }
#cont table.t tbody tr:hover, #cont .usrvm-t tbody tr:hover, #cont .rr-tabela tbody tr:hover,
#cont :is(.pacvm-tabela, .vm-espelho, .orcvm-card, .sxvm, .rr-tela, .usrvm, .finvm, .relvm) table tbody tr:hover,
#cont table.prvm-tabela tbody tr:hover, .modal-bg .vm-espelho-modal table.t tbody tr:hover { background: var(--r4-hover); }
#cont table.t tbody tr { transition: background var(--tr); }
/* números: alinhados à direita e com dígitos tabulares onde a tela já marca valor (.r, .num, .relt-n) */
#cont table.t th.r, #cont table.t td.r, #cont .relt-n, #cont .num { text-align: right; font-variant-numeric: tabular-nums; }
#cont table.t td.r b, #cont table.t td.r .num { color: var(--r4-ink); font-weight: 600; }
/* Item de Serviço: o nome do item ocupa o espaço; o valor unitário vai para a direita (a tela é a única com [data-itens-importar]) */
#cont .cadvm:has([data-itens-importar]) .pacvm-tabela :is(th, td):nth-child(3) { width: 32%; }
#cont .cadvm:has([data-itens-importar]) .pacvm-tabela :is(th, td):nth-child(4) { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
#cont .cadvm:has([data-itens-importar]) .pacvm-tabela td:nth-child(4) { font-weight: 600; color: var(--r4-ink); }
#cont .cadvm:has([data-itens-importar]) .pacvm-tabela td:nth-child(2) { color: var(--r4-ink-3); font-variant-numeric: tabular-nums; }
/* Pacientes: o nome ocupa o espaço; cartão e telefone não quebram */
#cont #pc-lista th:first-child { width: 30%; }
#cont #pc-lista td:nth-child(3), #cont #pc-lista td:nth-child(4), #cont #pc-lista td:nth-child(5) { white-space: nowrap; font-variant-numeric: tabular-nums; }
/* moldura da lista: hairline, cantos do cartão, sem brilho */
#cont :is(.pacvm-tabela, .prvm-tabela-wrap, .rr-tela .tw, .usrvm .tw, .usrvm-tw, .tw) { border: 1px solid var(--r4-line); border-radius: var(--r); box-shadow: none; background: var(--r4-surface); }
#cont :is(.pacvm-tabela, .tw) table.t thead th:first-child { border-top-left-radius: calc(var(--r) - 1px); }
#cont :is(.pacvm-tabela, .tw) table.t thead th:last-child { border-top-right-radius: calc(var(--r) - 1px); }
/* cabeçalho preso ao rolar a página: a lista deixa de ser um rolo próprio em tela larga (o th já é sticky no app.css) */
@media (min-width: 1100px) {
  /* só nas listas que cabem na largura (Item de Serviço, Pacientes, relatórios do dono); as demais seguem com rolo lateral */
  #cont .cadvm:has([data-itens-importar]) .pacvm-tabela, #cont #pc-lista .pacvm-tabela, #cont .relt-tw { overflow: clip; }
  #cont .pacvm-tabela table.t th { position: sticky; top: 0; z-index: 2; }
}
/* ícones de "Opções": sem anel nem sombra; a cor aparece no hover */
#cont :is(.pacvm-ico, .orcvm-circ, .prvm-icone, .usrvm-ic, .vm-opcoes .btn.sm) { background: transparent; box-shadow: none; color: var(--r4-ink-3); }
#cont :is(.pacvm-ico, .orcvm-circ, .prvm-icone, .usrvm-ic, .vm-opcoes .btn.sm):hover { background: var(--r4-selected); box-shadow: none; color: var(--r4-focus); }
#cont .pacvm-opcoes, #cont .pacvm-tabela td:has(> .pacvm-ico) { white-space: nowrap; }
#cont .cadvm-vazio { padding: 28px 18px; color: var(--r4-ink-3); }
/* nota acima da lista (Vissmed) como texto de apoio, não como parágrafo cheio */
#cont .cadvm [data-lista] > p[role="note"] { margin: 0 0 var(--r4-s-3); font-size: 12.5px; line-height: 1.5; color: var(--r4-ink-3); }

/* relatórios (relt): cabeçalho e grupos na marca, chapados; linhas limpas */
#cont .relt-tw { border-color: var(--r4-line); }
#cont .relt-t th { background: var(--marca); background-image: none; letter-spacing: .5px; }
#cont .relt-t td { border-bottom: 1px solid var(--r4-line); padding: 9px 10px; }
#cont .relt-t tbody tr.relt-l:nth-child(even) td { background: transparent; }
#cont .relt-t tbody tr.relt-l:hover td { background: var(--r4-hover); }
#cont .relt-grupo td { background: var(--marca-escuro); background-image: none; border-top: 10px solid var(--r4-surface); }
#cont .relt-t tbody tr.relt-grupo:first-child td { border-top: 0; }
#cont .relt-subtotal td { background: var(--r4-surface-2); color: var(--marca-escuro); border-top: 1px solid var(--r4-line-2); border-bottom: 1px solid var(--r4-line-2); }
#cont .relt-det-l td { background: var(--r4-surface-2); border-bottom: 1px solid var(--r4-line-2); }
#cont .relt-moeda { color: var(--r4-ink); }
/* Total do relatório fica sobre faixa escura: valor branco e negativo claro (contraste AA). */
#cont .relt-total .relt-moeda { color: #fff; }
#cont .relt-total .relt-neg { color: #FFCDD2; }
#cont .relt-h3 { background: none; border-left: 0; padding: 0 0 8px; border-bottom: 1px solid var(--r4-line); border-radius: 0; color: var(--marca-escuro); }
#cont .relt-cab { border-left: 0; padding-left: 0; }
#cont .relt-rodape { border-top: 1px solid var(--r4-line-2); }
#cont .relvm-chip { background: var(--r4-surface-2); border-color: var(--r4-line); }
#cont .relvm-t th { background: var(--r4-surface-2); color: var(--r4-ink-3); border-bottom: 1px solid var(--r4-line-2); }
#cont .relvm-t td { border-bottom: 1px solid var(--r4-line); }

/* ---- 2. Avisos, alertas e selos: um sistema só, quatro tons com caráter ---- */
/* atenção (era amarelo pálido #FFF4C2 / #FFF8D6 / #FDF3D0 / #FFF8E1 / #fff3cd / #FEF3C7 / yellow) */
#cont .ag-filtro-aviso, .pct-selo-fora, .pct-aviso, #cont .prvm-aviso-amarelo, #cont .prvm-faixa-alertas li.is-condicao,
#cont .vm-convenio, #cont .finvm-nf .badge.warn, #cont .cadvm-alerta, #cont .rr-aviso, #cont .pl-gd-dica mark,
#cont .cfm-alerta-legado, #cont .cfm-status--pendente, #cont .pacvm-check-pne, .modal-bg .pacvm-check-pne, #cont .ag-remarcando, #cont .dh-op-alert,
#cont .prvm-anamnese > .prvm-col > .prvm-check:has(input:checked), #cont .prvm-pac.is-chamado .prvm-pac-sit, #cont .prvm-faixa-estado {
  background: var(--r4-atencao-bg); color: var(--r4-atencao-ink); border-color: var(--r4-atencao-line);
}
#cont .ag-filtro-aviso, .pct-selo-fora, .pct-aviso, #cont .prvm-aviso-amarelo, #cont .vm-convenio, #cont .cadvm-alerta, #cont .rr-aviso,
#cont .cfm-alerta-legado, #cont .ag-remarcando { border: 1px solid var(--r4-atencao-line); }
#cont .rr-aviso, #cont .cadvm-alerta, #cont .vm-convenio, #cont .cfm-alerta-legado { border-radius: var(--r-sm); }
#cont .ag-filtro-limpar { color: var(--r4-atencao-ink); }
.pct-aviso i { color: var(--r4-atencao); }
.modal-bg .pct-aviso-ordem .modal-h { background: var(--r4-atencao-bg); color: var(--r4-atencao-ink); }
.modal-bg .pct-btn-mesmo-assim { background: var(--r4-atencao-line); color: var(--r4-atencao-ink); border-color: var(--r4-atencao); }
#cont .prvm-pac.is-chamado { background: var(--r4-surface); border-left-color: var(--r4-atencao); }
#cont .cfm-kpi--pendente > i { background: var(--r4-atencao-bg); color: var(--r4-atencao-ink); }
#cont .pacvm-check-pne, .modal-bg .pacvm-check-pne { border: 1px solid var(--r4-atencao-line); border-radius: var(--r-sm); padding: 10px 14px; font-weight: 600; }
.agv-cal .ev.vg-med.amarelo { background: var(--r4-atencao-bg); border-left-color: var(--r4-atencao); }
/* informação */
.pct-atual { background: var(--r4-info-bg); border-color: var(--r4-info-line); }
.pct-os { background: var(--r4-surface-2); border-color: var(--r4-line); }
#cont .prvm-faixa-alertas li { background: var(--r4-info-bg); border-color: var(--r4-info-line); color: var(--r4-info-ink); }
#cont .prvm-faixa-alertas li.is-sinal { background: var(--r4-info-bg); border-color: var(--r4-info-line); color: var(--r4-info-ink); }
#cont .cx-sem-caixa { background: var(--r4-surface-2); border: 1px solid var(--r4-line-2); color: var(--r4-ink-2); }
/* sucesso */
.pct-os.pago, .pct-item.st-agendado .pct-st, #cont .prvm-faixa.is-atendendo .prvm-faixa-estado, #cont .prvm-pac-sit, #cont .finvm-nf .badge.success,
#cont .cfm-status--confirmado, #cont .prvm-badge-consulta, .agv-cal .ev.vg-med.verde { background: var(--r4-ok-bg); color: var(--r4-ok-ink); border-color: var(--r4-ok-line); }
.agv-cal .ev.vg-med.verde { border-left-color: var(--r4-ok); }
/* erro */
#cont .prvm-faixa-alertas li.is-alergia, #cont .prvm-faixa-alertas li.is-falha, #cont .prvm-pac-prio, #cont .cfm-status--desconfirmado, #cont .cfm-registro-erro,
#cont .prvm-anamnese > .prvm-col > .prvm-check:has(input[data-anam-pessoal="alergias"]:checked), .agv-cal .ev.vg-med.vermelho {
  background: var(--r4-erro-bg); color: var(--r4-erro-ink); border-color: var(--r4-erro-line);
}
.agv-cal .ev.vg-med.vermelho { border-left-color: var(--r4-erro); }
#cont .login-err, #cont .relvm-erro { background: var(--r4-erro-bg); color: var(--r4-erro-ink); }
/* selos de status (pill): cantos pequenos, peso médio; as cores da Agenda continuam vindo da tela */
#cont .pill { border-radius: 4px; font-weight: 600; letter-spacing: .4px; padding: 3px 8px; line-height: 1.35; }
#cont .relt-status { border-radius: 4px; font-weight: 600; }
#cont .banner { border: 1px solid var(--r4-line); border-radius: var(--r-sm); box-shadow: none; color: var(--r4-ink-2); }

/* ---- 3. Cartões, filtros e títulos: menos ruído, respiro onde informa ---- */
#cont :is(.pacvm-card, .orcvm-card, .sxvm-card, .prvm-card, .usrvm-card, .rr-card, .cadm-sec, .card, .finvm-card),
#cont .vm-espelho > .card { border: 1px solid var(--r4-line); box-shadow: var(--sh-sm); }
#cont :is(.pacvm-card-h, .orcvm-card-h, .sxvm-card-header, .prvm-card-h, .usrvm-card-h, .rr-card-header) h2,
#cont .vm-espelho > .card > .shead h2, #cont .finvm .finvm-card-h h2, #cont .stitle { font-size: var(--r4-t-1); font-weight: 600; letter-spacing: -.3px; color: var(--r4-ink); }
#cont :is(.pacvm-card-h, .orcvm-card-h, .sxvm-card-header, .prvm-card-h, .usrvm-card-h, .rr-card-header) small,
#cont .vm-espelho > .card > .shead small, #cont .ssub { color: var(--r4-ink-3); }
#cont :is(.pacvm-filtros, .orcvm-filtros, .prvm-filtros, .usrvm-filtros, .rr-filtros, .sxvm-filtros, .relvm-filtros, .finvm-filtros),
#cont .vm-espelho .vm-filtros { background: var(--r4-surface-2); background-image: none; border: 1px solid var(--r4-line); box-shadow: none; padding: 12px 16px 14px; margin: 2px 0 var(--r4-s-4); }
#cont :is(.pacvm-filtros, .orcvm-filtros, .prvm-filtros, .usrvm-filtros, .rr-filtros, .sxvm-filtros, .relvm-filtros, .finvm-filtros) label,
#cont .vm-espelho .vm-filtros label { font-size: var(--r4-t-5); font-weight: 600; letter-spacing: .4px; text-transform: uppercase; color: var(--r4-ink-3); }
#cont .pacvm-form .pacvm-sec, #cont .pacvm-conv-t, .modal-bg .pacvm-form .pacvm-sec, .modal-bg .pacvm-conv-t { color: var(--marca-escuro); font-weight: 600; font-size: var(--r4-t-3); letter-spacing: .2px; }
.modal-bg .pacvm-conv-t { background: var(--r4-surface-2); border-radius: var(--r-sm); }
#cont .cadvm-abas { border-bottom-color: var(--r4-line-2); }
#cont .cadvm-aba.on { border-bottom-color: var(--marca); color: var(--marca-escuro); font-weight: 600; }
/* O flutuante é filho da .screen: incluir o recuo de 20 px e a borda do cartão na posição. */
#cont .screen > :is(.pacvm-float, .prvm-flutuante, .usrvm-fab, .rr-flutuante) { top: 40px; right: 43px; }
@media (max-width: 820px) {
  #cont .screen > :is(.pacvm-float, .prvm-flutuante, .usrvm-fab, .rr-flutuante) { top: 34px; right: 33px; }
}
/* paginação e contagem: rodapé da lista, um bloco só */
#cont .pacvm-pager, #cont .vm-paginacao { margin-top: var(--r4-s-3); padding-top: var(--r4-s-3); border-top: 1px solid var(--r4-line); }
#cont :is(.pacvm-pag, .orcvm-pager button, .prvm-pag-paginas button, .prvm-pag-contagens button, .usrvm-pages button, .sxvm-pagination button, .rr-tela .pag button, .relt-pg-b) {
  min-width: 32px; height: 32px; border: 1px solid var(--r4-line-2); border-radius: var(--r-sm); background: var(--r4-surface); color: var(--r4-ink-2);
  font-size: 12.5px; font-variant-numeric: tabular-nums; transition: background var(--tr), border-color var(--tr), color var(--tr);
}
#cont :is(.pacvm-pag, .orcvm-pager button, .prvm-pag-paginas button, .prvm-pag-contagens button, .relt-pg-b):hover:not(:disabled) { background: var(--r4-hover); border-color: var(--marca); color: var(--marca-escuro); }
#cont :is(.pacvm-pag.on, .orcvm-pager button.on, .prvm-pag-paginas .active button, .usrvm-count button.on, .usrvm-pages button.on) { background: var(--marca); border-color: var(--marca); color: #FFFFFF; font-weight: 600; }
#cont :is(.pacvm-pag, .relt-pg-b):disabled { opacity: .4; }
#cont .relt-pg, #cont .relt-pg-t { color: var(--r4-ink-2); }

/* ---- 4. Formulários e botões: foco visível, alturas iguais, estados caprichados ---- */
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="file"]), select, .chosen-single) { min-height: 36px; }
/* A barra compacta da Agenda conserva as alturas anteriores ao r4. */
#cont .ag-top :is(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="range"]):not([type="color"]):not([type="file"]), select, .chosen-single) { min-height: 0; }
#cont .ag-top .btn:not(.sm) { min-height: 34px; padding: 7px 14px; }
/* especificidade baixa de propósito (:where): o estado de erro, mais abaixo, tem de vencer esta pintura */
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input:where(:not([type="checkbox"]):not([type="radio"])), select, textarea) { color: var(--r4-ink); border-color: var(--r4-line-2); }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea):hover:where(:not(:disabled)) { border-color: var(--r4-ink-3); }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea):focus { border-color: var(--r4-focus); box-shadow: inset 0 -2px 0 var(--r4-focus); outline: none; }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea):disabled { color: var(--r4-ink-3); background: var(--r4-surface-2); border-color: var(--r4-line); cursor: not-allowed; }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, textarea)::placeholder { color: #5F6E74; }
:is(#cont, .modal-bg, .prvm-janela-bg) label:not(.pacvm-check):not(.cadvm-check):not(.pacvm-check-pne) { color: var(--r4-ink-3); }
:is(#cont, .modal-bg, .prvm-janela-bg) .field:focus-within label { color: var(--r4-focus); }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input[type="checkbox"], input[type="radio"]) { accent-color: var(--marca); width: 16px; height: 16px; }
/* o erro continua mais forte que o foco (mesmas regras de estado do acabamento 10/10, repetidas depois para vencer) */
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro :is(input, select, textarea),
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea)[aria-invalid="true"],
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro :is(input, select, textarea):focus,
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea)[aria-invalid="true"]:focus { border-color: var(--vm-vermelho); }
:is(#cont, .modal-bg, .prvm-janela-bg) .field.finvm-erro :is(input, select, textarea):focus,
:is(#cont, .modal-bg, .prvm-janela-bg) :is(input, select, textarea)[aria-invalid="true"]:focus { box-shadow: inset 0 -2px 0 var(--vm-vermelho); }
/* botões: altura 36, cantos do cartão, três estados claros; o neutro é tingido, não cinza chapado */
:is(#cont, .modal-bg, .prvm-janela-bg) .btn:not(.sm) { min-height: 36px; padding: 0 16px; }
:is(#cont, .modal-bg, .prvm-janela-bg) .btn:not(.primary):not(.danger):not(.azul):not(.laranja):not([class*="orcvm-"]):not([class*="prvm-"]):not(.pacvm-btn-swal):not(.pct-btn-mesmo-assim) {
  background-color: var(--r4-surface-3); color: var(--r4-ink-2); background-image: none; box-shadow: inset 0 0 0 1px var(--r4-line-2);
}
:is(#cont, .modal-bg, .prvm-janela-bg) .btn:not(.primary):not(.danger):not(.azul):not(.laranja):not([class*="orcvm-"]):not([class*="prvm-"]):not(.pacvm-btn-swal):not(.pct-btn-mesmo-assim):not(:disabled):hover {
  background-color: var(--r4-selected); color: var(--marca-escuro); box-shadow: inset 0 0 0 1px var(--r4-line-2), var(--sh-sm); filter: none;
}
:is(#cont, .modal-bg, .prvm-janela-bg) .btn:not(:disabled):active { transform: translateY(0); filter: brightness(.95); box-shadow: inset 0 1px 2px rgba(20, 45, 52, .22); }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(.btn, .prvm-btn, .sxvm-btn):disabled { opacity: .5; cursor: not-allowed; transform: none; box-shadow: none; background-image: none; filter: none; }
:is(#cont, .modal-bg, .prvm-janela-bg) :is(.btn, .prvm-btn, .pacvm-btn-busca, .pacvm-float, .orcvm-float, .pacvm-ico, .pacvm-pag, .relt-pg-b, .relt-mais, .dh-pill):focus-visible { outline: 2px solid var(--r4-focus); outline-offset: 2px; box-shadow: var(--r4-focus-ring); }
#cont .pacvm-btn-busca { height: 36px; }
/* caixa de busca e barra de data (Caixa, Agenda): hairline e foco da marca */
#cont .agsearch, #cont .agbar { border: 1px solid var(--r4-line); box-shadow: none; }
#cont .agsearch:focus-within { border-color: var(--r4-focus); box-shadow: var(--r4-focus-ring); }

/* ---- 5. Menu lateral: só contraste (a estrutura fica para a escolha do dono) ---- */
.drawer .dgrp { color: #43535A; }
.drawer .dgrp:hover { color: var(--marca-escuro); }
.drawer .ditem { color: var(--r4-ink); }
.drawer .ditem i { color: var(--r4-ink-3); }
.drawer .ditem-construcao { color: #5B6B71; }
.drawer .menu-erp { border-top-color: var(--r4-line-2); }
.drawer .dgroup[data-rever] { border-top-color: var(--r4-line-2); }

/* ---- 6. Tiles e topo: sem mexer na cor de status; só o brilho de sombra mais curto ---- */
/* O símbolo de energia do botão Sair precisa da fonte de símbolos local; o ícone .ti mantém a própria fonte. */
.vm-header #sair { font-family: "Segoe UI Symbol", system-ui, sans-serif; }
#cont .cxf-tile { box-shadow: var(--av-highlight), inset 0 -1px 0 rgba(20, 45, 52, .20), var(--sh-sm); }
#cont .cxf-tile:hover { box-shadow: var(--av-highlight), inset 0 -1px 0 rgba(20, 45, 52, .20), var(--sh); }

@media (prefers-reduced-motion: reduce) {
  #cont table.t tbody tr { transition: none; }
}

/* Menu A — 12/10/2026. Lista limpa nos quatro perfis; catálogo, ACL e rotas preservados. */
.drawer {
  width: min(320px, calc(100vw - 24px)); left: -340px;
  background: #FFFFFF; border-right: 1px solid var(--r4-line);
  box-shadow: 8px 0 28px -12px rgba(20, 45, 52, .24);
}
.drawer.aberto { left: 0; }
.drawer .drawer-head {
  padding: 20px 22px 16px; background: #FFFFFF; background-image: none;
  color: var(--r4-ink); border-bottom: 1px solid var(--r4-line); flex-shrink: 0;
}
.drawer .drawer-brand { display: flex; align-items: center; gap: 12px; margin-bottom: 18px; color: var(--marca); font-size: 11px; line-height: 1.45; letter-spacing: .6px; }
.drawer .drawer-brand strong { display: block; font-size: 15px; font-weight: 700; letter-spacing: .1px; }
.drawer .drawer-brand-simbolo {
  display: grid; place-items: center; width: 40px; height: 40px; flex-shrink: 0;
  border-radius: 12px; background: var(--marca); color: #FFFFFF; font-size: 16px; font-weight: 700; letter-spacing: 0;
}
.drawer .drawer-head .n { font-size: 13px; font-weight: 500; line-height: 1.5; overflow-wrap: anywhere; }
.drawer .drawer-head .s { color: var(--r4-ink-3); font-size: 12px; line-height: 1.5; opacity: 1; }
.drawer .drawer-nav { padding: 10px 0 24px; scrollbar-color: var(--r4-line-2) transparent; }
.drawer .drawer-nav::-webkit-scrollbar { width: 6px; }
.drawer .drawer-nav::-webkit-scrollbar-thumb { background: var(--r4-line-2); border-radius: 8px; }
.drawer .menu-titulo, .drawer .dgrp {
  color: var(--r4-ink-3); font-size: 11px; font-weight: 500; line-height: 1.5;
  text-transform: uppercase; letter-spacing: .6px; background: transparent; background-image: none;
}
.drawer .menu-titulo { padding: 12px 24px 6px; margin: 0; }
.drawer .dgroup { padding: 0 0 6px; }
.drawer .dgroup-solto { padding-top: 0; }
.drawer .dgrp { width: calc(100% - 20px); min-height: 36px; margin: 4px 10px; padding: 8px 14px; border-radius: 8px; font-style: normal; }
.drawer .dgrp:hover { color: var(--marca-escuro); background: var(--r4-hover); }
.drawer .dgrp i { width: 14px; height: 14px; font-size: 14px; transform: none; flex-shrink: 0; }
.drawer .dgroup.closed .dgrp i { transform: rotate(-90deg); }
.drawer .ditem, .drawer .ditem-construcao {
  width: calc(100% - 20px); min-height: 44px; margin: 2px 10px; padding: 10px 14px;
  gap: 12px; border: 0; border-radius: 999px; background: transparent; background-image: none;
  color: var(--r4-ink); font-family: inherit; font-size: 14px; font-weight: 400; line-height: 1.4;
  text-align: left; text-decoration: none; box-shadow: none;
  transition: background-color var(--tr), color var(--tr);
}
.drawer .ditem span, .drawer .ditem-construcao span { min-width: 0; overflow-wrap: anywhere; }
.drawer .ditem i, .drawer .ditem-construcao i { color: var(--r4-ink-3); font-size: 19px; width: 20px; height: 20px; flex-shrink: 0; }
.drawer .ditem:hover { background: var(--r4-hover); color: var(--r4-ink); box-shadow: none; }
.drawer .ditem.on, .drawer .ditem.on:hover {
  background: #EAF6F9; background-image: none; color: var(--marca); font-weight: 500; box-shadow: none;
}
.drawer .ditem.on i { color: var(--marca); }
.drawer .ditem-construcao { color: var(--r4-ink-3); cursor: not-allowed; opacity: 1; }
.drawer .menu-erp { margin-top: 12px; padding-top: 6px; border-top: 1px solid var(--r4-line); }
.drawer .dgroup[data-rever] { margin: 12px 10px 0; padding-top: 8px; border-top: 1px solid var(--r4-line); }
.drawer .dgroup[data-rever] .dgrp { font-style: normal; }
.drawer :is(.ditem, .dgrp, #menu-ver-recepcao):focus-visible { outline: 2px solid var(--marca); outline-offset: 2px; box-shadow: none; }
.drawer .dver .btn { min-height: 40px; border: 1px solid var(--r4-line-2); border-radius: 12px; background: var(--r4-surface-2); color: var(--r4-ink-2); font-size: 12px; gap: 8px; box-shadow: none; }
.drawer .dver .btn:hover { background: var(--r4-hover); color: var(--marca-escuro); }
@media (prefers-reduced-motion: reduce) {
  .drawer, .drawer .ditem, .drawer .dgrp i { transition: none; }
}
/* Header 23/10: desenho compartilhado com o laudador, na identidade do ERP.
   Controles mantidos; em telas estreitas passam para uma segunda linha. */
.vm-header.topo{position:relative;overflow:hidden;height:auto;min-height:68px;padding:10px 18px;display:block;background:linear-gradient(120deg,var(--marca-escuro) 0%,var(--marca) 100%);border-bottom:3px solid var(--marca-claro);box-shadow:0 10px 22px -18px var(--marca-escuro)}
.topo .in{position:relative;z-index:1;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.topo .deco{position:absolute;right:-40px;top:-90px;width:300px;height:300px;pointer-events:none;z-index:0}
.topo .marca{display:flex;align-items:center;gap:12px;color:#fff;min-width:0;flex:1}
.topo .logo-fundo{background:#fff;border-radius:12px;padding:5px 10px;display:flex;flex-shrink:0;box-shadow:0 4px 10px -6px rgba(0,0,0,.35)}
.topo .logo-fundo img{height:30px;width:auto;display:block;filter:none}
.topo .sep{width:1px;height:30px;background:rgba(255,255,255,.35);flex-shrink:0}
.topo .tt{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.topo .tt small{font-size:10px;letter-spacing:1px;font-weight:700;color:#fff;text-transform:uppercase}
.topo .tt b{font-size:17px;letter-spacing:-.2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topo .conta{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap;min-width:0;max-width:100%}
.topo .hoje{background:var(--marca-escuro);border:1px solid rgba(255,255,255,.35);border-radius:999px;padding:4px 12px;font-size:12.5px;font-weight:700}
.topo .vm-husuario{font-size:13px;color:#fff;text-transform:none;max-width:180px}
.topo :is(.pill,.vm-husuario,.vm-htxt-empresa){display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid rgba(255,255,255,.45);background:var(--marca-escuro);color:#fff;font:700 13px var(--font);min-height:34px;height:34px;padding:0 14px;border-radius:999px;text-transform:none;letter-spacing:normal;white-space:nowrap}
.topo .vm-hicon{width:auto;min-width:34px;padding:0 9px;font-size:13px}
.topo .vm-hicon i{font-size:18px}
.topo .pill:hover,.topo .pill:focus-visible{background:#075268}
.topo .pill:focus-visible{outline:2px solid #fff;outline-offset:2px}
.topo .menu{width:34px;padding:0;font-size:20px;flex-shrink:0}
@media(max-width:1100px){.topo .conta{flex-basis:100%;justify-content:flex-start}}
@media(max-width:900px){.topo .sep,.topo .tt small,.topo .vm-husuario,.topo .hoje{display:none}.topo .marca{gap:8px}.topo .vm-htxt-empresa{max-width:100%}.topo .conta{gap:6px}.vm-header.topo{padding:10px 12px}}

/* Paleta roxo-uva (dono 25/10: topo continuava azul; "achei que ia ficar roxinho uva"). Só cores: estrutura e
   tamanhos iguais ao topo no layout do laudador. */
:root{--marca:#6E2C91;--marca-claro:#A66CD1;--marca-escuro:#4A1D66;--vm-header:#6E2C91;--vm-header-dark:#4A1D66}
/* Topo do laudador: degradê próprio roxo-uva. O branco fica sobre ele (7,0:1 no ponto mais claro, #7B3AA6) ou sobre as
   pílulas --marca-escuro (12,7:1). Medido em topo-contraste-navegador. */
.vm-header.topo{background:linear-gradient(120deg,#4A1D66 0%,#7B3AA6 100%)}
.topo .pill:hover,.topo .pill:focus-visible{background:#3A1650}
/* Anel do foco por Tab no topo e no cartão do menu na marca escura, não no teal antigo (acabamento-foco-navegador). */
.vm-header :where(button, a, input, select, textarea, [tabindex]):focus-visible,
.drawer-head :where(button, a, input, select, textarea, [tabindex]):focus-visible{box-shadow:0 0 0 4px var(--marca-escuro)}
/* Item ativo do menu: tinta da marca sobre lilás claro (7,4:1), não sobre o ciano claro antigo. */
.drawer .ditem.on,.drawer .ditem.on:hover{background:#F3EAF8}

/* ACABAMENTO-1 rodada 2: erro financeiro também no modal fora de #cont. */
:is(#cont, .modal-bg, .prvm-janela-bg) .finvm-form .field.finvm-erro :is(input, select, textarea),
:is(#cont, .modal-bg, .prvm-janela-bg) .finvm-form :is(input, select, textarea)[aria-invalid="true"] {
  border: 1px solid var(--vm-vermelho);
  /* O erro e seu foco devem aparecer já no primeiro frame, sem partir de sombra transparente. */
  transition: none;
}
:is(#cont, .modal-bg, .prvm-janela-bg) .finvm-form .field.finvm-erro label {
  color: var(--vm-vermelho);
  /* A cor de erro também deve ser imediata no rótulo, inclusive na carga das folhas. */
  transition: none;
}
:is(#cont, .modal-bg, .prvm-janela-bg) .finvm-form .field.finvm-erro :is(input, select, textarea):focus,
:is(#cont, .modal-bg, .prvm-janela-bg) .finvm-form :is(input, select, textarea)[aria-invalid="true"]:focus {
  border-color: var(--vm-vermelho);
  box-shadow: inset 0 -2px 0 var(--vm-vermelho);
}
