/* Oralize ERP — layout do ControleODONTO (design/tokens.md), paleta roxa */
:root {
  --text: #232323; --text-strong: #242528; --muted: #5e6278; --rail-icon: #9298a1;
  --page: #f3f1f7; --surface: #fff; --line: #e7e3ef; --line-strong: #d6d0e2;
  --primary: #6e3990; --primary-bright: #8a4bb5; --primary-soft: #f3ecf8; --tab: #5a3a73;
  --ok: #16a34a; --ok-soft: #e8f7ee; --warn: #d97706; --warn-soft: #fdf3e2; --bad: #dc2626; --bad-soft: #fdecec; --info: #0891b2;
  --menu-w: 265px; --rail-w: 128px; --header-h: 70px; --radius: 10px;
  --font: Inter, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
}
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body { font: 400 13px/1.45 var(--font); color: var(--text); background: var(--page); }
a { color: var(--primary); text-decoration: none; }
button, input, select, textarea { font: inherit; color: inherit; }
svg.i { width: 18px; height: 18px; flex: none; vertical-align: middle; }
.hidden { display: none !important; }

/* ---------- Cabeçalho ---------- */
#header { position: fixed; top: 0; left: 0; right: var(--menu-w); height: var(--header-h); background: var(--surface); display: flex; align-items: center; gap: 14px; padding: 0 16px; z-index: 30; border-bottom: 1px solid var(--line); }
.logo { display: block; width: 96px; height: 66px; overflow: hidden; }
.logo img { width: 100%; height: 100%; object-fit: cover; }
.busca-pac { position: relative; display: flex; align-items: center; width: 280px; height: 40px; border-radius: 10px; background: #f4f2f8; padding: 0 6px 0 10px; gap: 6px; }
.busca-pac input { border: 0; background: transparent; outline: 0; flex: 1; font-weight: 500; font-size: 14px; }
.busca-pac .btn-ic { background: var(--primary); color: #fff; border-radius: 8px; width: 30px; height: 30px; }
.sugestoes { position: absolute; top: 44px; left: 0; right: 0; background: #fff; border-radius: 10px; box-shadow: 0 10px 30px rgba(30,10,60,.18); max-height: 380px; overflow: auto; z-index: 40; }
.sugestoes div { padding: 8px 12px; cursor: pointer; display: flex; gap: 10px; align-items: center; }
.sugestoes div:hover, .sugestoes div.sel { background: var(--primary-soft); }
.header-dir { margin-left: auto; display: flex; align-items: center; gap: 14px; }
.header-dir .btn-ic { color: var(--primary); }
.usuario { display: flex; align-items: center; gap: 8px; cursor: pointer; }

/* ---------- Trilho de atalhos ---------- */
#rail { position: fixed; top: var(--header-h); left: 0; bottom: 0; width: var(--rail-w); background: var(--surface); padding: 12px 10px; display: grid; grid-template-columns: 48px 48px; grid-auto-rows: 48px; gap: 6px 12px; align-content: start; border-right: 1px solid var(--line); z-index: 20; }
#rail a { display: flex; align-items: center; justify-content: center; border-radius: 6px; color: var(--rail-icon); position: relative; }
#rail a svg { width: 24px; height: 24px; }
#rail a:hover { background: var(--primary-soft); color: var(--primary); }
#rail a.ativo { color: var(--primary-bright); background: var(--primary-soft); }
#rail a[data-tip]:hover::after { content: attr(data-tip); position: absolute; left: 54px; background: #1e0a3c; color: #fff; padding: 4px 8px; border-radius: 6px; white-space: nowrap; font-size: 12px; z-index: 50; }

/* ---------- Menu à direita ---------- */
#menu { position: fixed; top: 0; right: 0; bottom: 0; width: var(--menu-w); color: #fff; z-index: 25; display: flex; flex-direction: column;
  background: radial-gradient(350px 500px at 50% 5%, rgba(138,75,181,.45) 0%, transparent 65%), radial-gradient(300px 400px at 30% 55%, rgba(168,85,247,.3) 0%, transparent 65%), radial-gradient(280px 350px at 60% 90%, rgba(236,72,153,.22) 0%, transparent 65%), linear-gradient(#24103a 0%, #2b1442 50%, #150a22 100%); }
.menu-marca { background: rgba(0,0,0,.15); height: 120px; display: flex; align-items: center; justify-content: center; overflow: hidden; }
/* o PNG tem fundo branco: inverte e usa screen, assim o fundo some no menu escuro e o roxo vira branco */
.menu-marca img { height: 128px; filter: invert(1) grayscale(1) brightness(1.9) contrast(1.4); mix-blend-mode: screen; }
.menu-marca b { font-weight: 800; }
.menu-marca small { display: block; font-size: 11px; opacity: .7; text-align: right; }
.menu-secoes { display: flex; justify-content: space-around; border-bottom: 2px solid rgba(0,0,0,.25); }
.menu-secoes a { color: rgba(255,255,255,.55); width: 50px; height: 45px; display: flex; align-items: center; justify-content: center; border-bottom: 2px solid transparent; margin-bottom: -2px; }
.menu-secoes a.ativo, .menu-secoes a:hover { color: #fff; border-bottom-color: #c4b5fd; }
.menu-titulo { padding: 14px 16px 6px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; opacity: .6; }
#menu ul { list-style: none; margin: 0; padding: 0 16px 0 0; overflow: auto; }
#menu li a { display: flex; align-items: center; gap: 10px; height: 36px; padding: 4px 0 4px 16px; color: #fff; font-size: 14px; font-weight: 300; border-radius: 0 16px 16px 0; }
#menu li a:hover { background: rgba(255,255,255,.08); }
#menu li a.ativo { background: var(--primary); font-weight: 400; }
#menu li a svg { width: 16px; height: 16px; opacity: .85; }
.menu-rodape { margin-top: auto; padding: 10px 16px; font-size: 11px; opacity: .7; }

/* ---------- Conteúdo ---------- */
#main { margin: var(--header-h) var(--menu-w) 0 var(--rail-w); padding: 22px 28px 80px; min-height: calc(100vh - var(--header-h)); }
.titulo-tela { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; }
.titulo-tela h1 { font-size: 25px; font-weight: 600; color: var(--text-strong); margin: 0; display: flex; align-items: center; gap: 10px; }
.titulo-tela h1 svg { width: 26px; height: 26px; color: var(--primary); }
.titulo-tela .acoes { margin-left: auto; display: flex; gap: 8px; }
.card { background: var(--surface); border-radius: var(--radius); padding: 18px 20px; margin-bottom: 18px; }
.card h2 { font-size: 24px; font-weight: 300; margin: 0 0 14px; }
.card h3 { font-size: 15px; font-weight: 600; margin: 0 0 10px; }
.grid { display: grid; gap: 16px; }
.g2 { grid-template-columns: repeat(2, 1fr); } .g3 { grid-template-columns: repeat(3, 1fr); } .g4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 1400px) { .g4 { grid-template-columns: repeat(2, 1fr); } }
.kpi { background: var(--surface); border-radius: var(--radius); padding: 16px 18px; }
.kpi .rot { color: var(--muted); font-size: 12px; text-transform: uppercase; letter-spacing: .4px; }
.kpi .val { font-size: 26px; font-weight: 600; margin: 4px 0; color: var(--text-strong); }
.kpi .sub { color: var(--muted); font-size: 12px; }
.alerta { display: flex; gap: 10px; align-items: center; background: var(--primary-soft); color: #4c1d95; border-radius: 8px; padding: 10px 14px; margin-bottom: 14px; }
.alerta.warn { background: var(--warn-soft); color: #92400e; } .alerta.bad { background: var(--bad-soft); color: #991b1b; } .alerta.ok { background: var(--ok-soft); color: #166534; }
.vazio { text-align: center; color: var(--muted); padding: 40px 10px; }
.vazio svg { width: 42px; height: 42px; color: #c4b5fd; display: block; margin: 0 auto 8px; }

/* Abas sublinhadas */
.abas { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 16px; overflow-x: auto; }
.abas a { height: 32px; display: flex; align-items: center; padding: 0 12px; color: var(--tab); font-weight: 500; border-bottom: 2px solid transparent; margin-bottom: -1px; white-space: nowrap; cursor: pointer; }
.abas a.ativo { color: var(--primary); font-weight: 600; border-bottom-color: var(--primary); }
.abas a .badge { margin-left: 6px; }

/* Menu vertical dentro da tela */
.lado { display: grid; grid-template-columns: 200px 1fr; gap: 18px; align-items: start; }
.lado-menu { display: flex; flex-direction: column; gap: 2px; }
.lado-menu a { padding: 8px 12px; border-radius: 6px 0 0 6px; color: var(--muted); cursor: pointer; display: flex; justify-content: space-between; align-items: center; }
.lado-menu a:hover { background: #fff; color: var(--text); }
.lado-menu a.ativo { background: #fff; color: var(--primary); font-weight: 600; box-shadow: inset 3px 0 0 var(--primary); }

/* Botões */
.btn { display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 14px; border-radius: 8px; border: 1px solid var(--line-strong); background: #fff; cursor: pointer; font-weight: 500; white-space: nowrap; }
.btn:hover { border-color: var(--primary); color: var(--primary); }
.btn.pri { background: var(--primary); border-color: var(--primary); color: #fff; }
.btn.pri:hover { background: #5a2e77; color: #fff; }
.btn.ok { background: var(--ok); border-color: var(--ok); color: #fff; }
.btn.bad { color: var(--bad); } .btn.bad:hover { background: var(--bad); color: #fff; border-color: var(--bad); }
.btn.sm { height: 28px; padding: 0 10px; font-size: 12px; }
.btn:disabled { opacity: .5; cursor: default; }
.btn-ic { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border: 0; background: transparent; border-radius: 8px; cursor: pointer; color: var(--muted); }
.btn-ic:hover { background: var(--primary-soft); color: var(--primary); }

/* Formulários */
.form { display: grid; grid-template-columns: repeat(12, 1fr); gap: 12px 14px; }
.campo { grid-column: span 6; display: flex; flex-direction: column; gap: 4px; }
.campo.c2 { grid-column: span 2; } .campo.c3 { grid-column: span 3; } .campo.c4 { grid-column: span 4; } .campo.c8 { grid-column: span 8; } .campo.c12 { grid-column: span 12; }
.campo label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.campo input, .campo select, .campo textarea, .inp { height: 36px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 10px; background: #fff; outline: 0; width: 100%; }
.campo textarea { height: auto; min-height: 90px; padding: 8px 10px; resize: vertical; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .inp:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(110,57,144,.14); }
.campo.erro input, .campo.erro select, .campo.erro textarea { border-color: var(--bad); }
.campo .msg { color: var(--bad); font-size: 12px; }
.campo .ajuda { color: var(--muted); font-size: 12px; }
.check { display: flex; align-items: center; gap: 8px; cursor: pointer; }

/* Tabelas e listas */
table.tab { width: 100%; border-collapse: collapse; }
table.tab th { text-align: left; font-size: 11px; text-transform: uppercase; color: var(--muted); font-weight: 600; padding: 8px 10px; border-bottom: 1px solid var(--line); letter-spacing: .3px; }
table.tab td { padding: 9px 10px; border-bottom: 1px solid #f1eef6; vertical-align: middle; }
table.tab tr:hover td { background: #faf8fd; }
table.tab tfoot td { font-weight: 600; border-top: 2px solid var(--line); }
.num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
.linha { display: flex; align-items: center; gap: 12px; padding: 12px 6px; border-bottom: 1px solid #f1eef6; }
.linha:hover { background: #faf8fd; }
.linha .nome { font-weight: 600; font-size: 14px; }
.linha .meta { color: var(--muted); font-size: 12px; }
.avatar { width: 38px; height: 38px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); display: flex; align-items: center; justify-content: center; font-weight: 700; flex: none; }
.avatar.g { width: 56px; height: 56px; font-size: 20px; }
.chip { display: inline-flex; align-items: center; gap: 4px; height: 20px; padding: 0 8px; border-radius: 10px; font-size: 11px; font-weight: 600; background: #efedf3; color: #4b4560; text-transform: uppercase; letter-spacing: .3px; white-space: nowrap; }
.chip.pri { background: var(--primary-soft); color: var(--primary); } .chip.ok { background: var(--ok-soft); color: var(--ok); } .chip.warn { background: var(--warn-soft); color: var(--warn); } .chip.bad { background: var(--bad-soft); color: var(--bad); } .chip.info { background: #e0f2fe; color: var(--info); }
.badge { display: inline-flex; min-width: 18px; height: 18px; border-radius: 9px; background: var(--primary); color: #fff; font-size: 11px; align-items: center; justify-content: center; padding: 0 5px; font-weight: 600; }
.badge.bad { background: var(--bad); }
.pag { display: flex; gap: 6px; justify-content: center; margin-top: 12px; align-items: center; }
.letras { display: flex; flex-wrap: wrap; gap: 4px; margin-bottom: 12px; }
.letras a { padding: 4px 9px; border-radius: 6px; color: var(--tab); cursor: pointer; font-weight: 500; }
.letras a.ativo, .letras a:hover { background: var(--primary); color: #fff; }

/* Janela (modal) */
.fundo { position: fixed; inset: 0; background: rgba(20,8,40,.45); z-index: 100; display: flex; align-items: flex-start; justify-content: center; padding: 40px 20px; overflow: auto; }
.janela { background: #fff; border-radius: 12px; width: 640px; max-width: 100%; box-shadow: 0 20px 60px rgba(20,8,40,.35); display: flex; flex-direction: column; }
.janela.larga { width: 1100px; } .janela.media { width: 860px; }
.janela > header { display: flex; align-items: center; gap: 10px; padding: 14px 18px; border-bottom: 1px solid var(--line); }
.janela > header h3 { margin: 0; font-size: 17px; font-weight: 600; }
.janela > header .btn-ic { margin-left: auto; }
.janela > .corpo { padding: 18px; }
.janela > footer { display: flex; justify-content: flex-end; gap: 8px; padding: 12px 18px; border-top: 1px solid var(--line); background: #fbfafd; border-radius: 0 0 12px 12px; }

/* Prontuário (janela flutuante) */
.pront { width: 1240px; min-height: 80vh; }
.pront-cab { display: flex; align-items: center; gap: 14px; padding: 16px 18px; border-bottom: 1px solid var(--line); }
.pront-cab .nome { font-size: 18px; font-weight: 600; }
.pront-cab .meta { color: var(--muted); }
.pront-cab .acoes { margin-left: auto; display: flex; gap: 4px; }
.pront-faixa { display: flex; gap: 18px; padding: 8px 18px; background: #faf8fd; border-bottom: 1px solid var(--line); font-size: 12px; color: var(--muted); flex-wrap: wrap; }
.pront-faixa b { color: var(--text); }
.pront-corpo { padding: 0 18px 18px; }
.pront .abas { margin-top: 6px; }
.pront .lado { grid-template-columns: 190px 1fr; }

/* Toast */
#toasts { position: fixed; bottom: 20px; left: 50%; transform: translateX(-50%); z-index: 200; display: flex; flex-direction: column; gap: 8px; }
.toast { background: #1e0a3c; color: #fff; padding: 10px 16px; border-radius: 8px; box-shadow: 0 8px 20px rgba(0,0,0,.25); }
.toast.erro { background: var(--bad); }

/* Agenda */
.dias { display: flex; gap: 6px; overflow-x: auto; padding-bottom: 6px; margin-bottom: 12px; }
.dias a { min-width: 58px; text-align: center; padding: 6px 4px; border-radius: 8px; background: #fff; cursor: pointer; color: var(--muted); }
.dias a b { display: block; font-size: 18px; color: var(--text); }
.dias a.fds { background: #f7f4fb; }
.dias a.ativo { background: var(--primary); color: #fff; } .dias a.ativo b { color: #fff; }
.dias a .n { font-size: 10px; }
.agenda { display: grid; border-radius: var(--radius); background: #fff; overflow: hidden; }
.agenda .col-h { padding: 10px; font-weight: 600; border-bottom: 1px solid var(--line); border-left: 1px solid var(--line); display: flex; align-items: center; gap: 8px; position: sticky; top: 0; background: #fff; }
.agenda .hora { font-size: 11px; color: var(--muted); text-align: right; padding: 0 6px; border-top: 1px solid #f1eef6; }
.agenda .slot { border-top: 1px solid #f1eef6; border-left: 1px solid var(--line); position: relative; cursor: pointer; }
.agenda .slot:hover { background: #faf8fd; }
.ev { position: absolute; left: 3px; right: 3px; border-radius: 6px; padding: 4px 6px; font-size: 12px; overflow: hidden; cursor: pointer; border-left: 4px solid var(--primary); background: var(--primary-soft); z-index: 2; }
.ev .h { font-size: 11px; color: var(--muted); }
.ev.CONFIRMADO { background: #e7f6ec; border-color: var(--ok); } .ev.EM_ESPERA { background: #fff4e0; border-color: var(--warn); } .ev.EM_ATENDIMENTO { background: #e0f2fe; border-color: var(--info); } .ev.CONCLUIDO { background: #f1f1f4; border-color: #9ca3af; opacity: .8; } .ev.DESMARCADO, .ev.FALTA { background: #fdecec; border-color: var(--bad); text-decoration: line-through; opacity: .7; }
.legenda { display: flex; gap: 14px; flex-wrap: wrap; font-size: 12px; color: var(--muted); margin-top: 10px; }
.legenda span::before { content: ''; display: inline-block; width: 10px; height: 10px; border-radius: 3px; margin-right: 5px; background: var(--c); vertical-align: -1px; }

/* Kanban do Fluxo na Clínica */
.kanban { display: grid; grid-template-columns: repeat(5, minmax(220px, 1fr)); gap: 12px; align-items: start; }
.coluna { background: #ebe7f2; border-radius: var(--radius); padding: 10px; min-height: 300px; transition: background .15s; }
.coluna.alvo { background: #ddd2f3; outline: 2px dashed var(--primary); }
.coluna h4 { margin: 2px 4px 10px; font-size: 13px; text-transform: uppercase; letter-spacing: .4px; display: flex; justify-content: space-between; color: #4b4560; }
.cartao { background: #fff; border-radius: 8px; padding: 10px; margin-bottom: 8px; cursor: grab; box-shadow: 0 1px 2px rgba(30,10,60,.08); border-left: 3px solid var(--c, var(--primary)); }
.cartao:active { cursor: grabbing; } .cartao.arrastando { opacity: .4; }
.cartao .nome { font-weight: 600; } .cartao .meta { color: var(--muted); font-size: 12px; }
.cartao .acoes { display: flex; gap: 4px; margin-top: 6px; flex-wrap: wrap; }

/* Odontograma */
.odonto { display: flex; flex-direction: column; gap: 6px; align-items: center; user-select: none; }
.odonto .arcada { display: flex; gap: 18px; }
.odonto .quad { display: flex; gap: 3px; }
.dente { width: 34px; height: 44px; border: 1px solid var(--line-strong); border-radius: 8px; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; background: #fff; font-size: 11px; position: relative; }
.dente:hover { border-color: var(--primary); }
.dente.sel { background: var(--primary); color: #fff; border-color: var(--primary); }
.dente .est { font-size: 9px; line-height: 1; margin-top: 2px; }
.dente.Ausente { background: repeating-linear-gradient(45deg,#f3f0f8,#f3f0f8 4px,#fff 4px,#fff 8px); color: #9ca3af; }
.dente.Cárie { box-shadow: inset 0 -4px 0 var(--bad); } .dente.Restaurado { box-shadow: inset 0 -4px 0 var(--info); } .dente.Implante { box-shadow: inset 0 -4px 0 var(--primary); } .dente.Coroa, .dente.Prótese { box-shadow: inset 0 -4px 0 var(--warn); } .dente.Canal { box-shadow: inset 0 -4px 0 #db2777; }
.dente.plan::after { content: ''; position: absolute; top: 3px; right: 3px; width: 6px; height: 6px; border-radius: 50%; background: var(--ok); }
.atalhos-sel { display: flex; flex-wrap: wrap; gap: 6px; justify-content: center; margin-top: 8px; }
.atalhos-sel .btn.on { background: var(--primary); color: #fff; border-color: var(--primary); }

/* Gauges de inadimplência */
.gauge { text-align: center; }
.gauge svg { width: 100%; max-width: 240px; height: auto; }
.gauge .pct { font-size: 28px; font-weight: 700; }
.gauge .faixa { font-weight: 600; }

/* Impressão */
.folha { background: #fff; max-width: 820px; margin: 0 auto; padding: 40px 50px; font-size: 13px; line-height: 1.6; }
.folha h3 { font-size: 13px; margin: 18px 0 6px; }
.folha table.tab td, .folha table.tab th { padding: 4px 6px; }
@media print {
  #header, #rail, #menu, .nao-imprime, #toasts { display: none !important; }
  #main { margin: 0; padding: 0; }
  body { background: #fff; }
  .fundo { position: static; background: none; padding: 0; }
  .janela { box-shadow: none; width: 100% !important; }
  .janela > header, .janela > footer { display: none; }
}

.folha .timbre { text-align: center; margin: -10px 0 10px; }
.folha .timbre img { height: 110px; }

/* ---------- Motor das telas de configuração (padrão ControleODONTO) ---------- */
.mc-titulo h1 { font-size: 25px; }
.mc-titulo .acoes .btn-ic { color: #9aa0ab; }
.mc-abas { border-bottom: 0; margin-bottom: 0; padding-left: 4px; overflow: visible; }
.mc-abas a { gap: 6px; font-size: 13px; }
.mc-abas a svg { width: 14px; height: 14px; }
.mc-card { padding: 0; border-radius: 0 var(--radius) var(--radius) var(--radius); }
.mc-lado { display: grid; grid-template-columns: 200px 1fr; min-height: 520px; }
.mc-menu { border-right: 1px solid var(--line); padding: 10px 0 10px 18px; display: flex; flex-direction: column; }
.mc-menu a { display: flex; align-items: center; gap: 7px; padding: 8px 10px; color: var(--muted); cursor: pointer; border-bottom: 1px solid #f1eef6; font-size: 13px; line-height: 1.2; }
.mc-menu a svg { width: 14px; height: 14px; flex: none; }
.mc-menu a:hover { color: var(--text); }
.mc-menu a.ativo { color: var(--text-strong); border: 1px solid var(--line); border-left: 2px solid var(--primary); border-right: 0; border-radius: 8px 0 0 8px; background: #fff; margin-right: -1px; font-weight: 500; }
.mc-painel { padding: 14px 18px 24px; min-width: 0; }
.mc-cab { display: flex; align-items: center; border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-bottom: 14px; }
.mc-cab h2 { font-size: 24px; font-weight: 300; margin: 0; color: var(--text-strong); }
.mc-btns { margin-left: auto; display: flex; }
.mc-btns .btn { border-radius: 0; margin-left: -1px; height: 30px; color: #555; font-weight: 500; }
.mc-btns .btn:first-child { border-radius: 6px 0 0 6px; } .mc-btns .btn:last-child { border-radius: 0 6px 6px 0; }
.mc-btns .btn svg { width: 14px; height: 14px; }
.mc-btns .btn.pri, .mc-btns .btn.ok, .mc-btns .btn.pri:hover, .mc-btns .btn.ok:hover { color: #fff; } /* botão colorido na barra: texto branco (contraste) */
.mc-max { position: fixed; inset: 10px; z-index: 90; overflow: auto; }
.mc-desc { margin: 0 0 12px; }
.mc-linhas { border: 1px solid var(--line); border-radius: 10px; }
.mc-linha { display: grid; grid-template-columns: 150px 1fr; gap: 16px; padding: 14px 16px; border-bottom: 1px solid var(--line); align-items: start; }
.mc-linha:last-child { border-bottom: 0; }
.mc-linha > label { text-align: right; color: #555; font-size: 13px; padding-top: 2px; }
.mc-val b { font-weight: 600; color: var(--text-strong); }
.mc-vazio { color: #9aa0ab; font-style: italic; }
.mc-ajuda { color: #8a8f99; font-size: 11px; margin-top: 4px; line-height: 1.4; }
.mc-sub { background: #faf8fd; padding: 8px 16px; font-weight: 600; color: var(--tab); border-bottom: 1px solid var(--line); }
.mc-grupo { display: flex; gap: 14px; flex-wrap: wrap; }
.mc-grupo > div { display: flex; flex-direction: column; gap: 3px; }
.mc-mini { font-size: 10px; color: #777; }
.mc-cor { display: inline-block; width: 14px; height: 14px; border-radius: 3px; vertical-align: -2px; border: 1px solid var(--line); }
.mc-linhas .inp { height: 30px; font-size: 13px; }
.mc-radio { display: inline-flex; border: 1px solid var(--line-strong); border-radius: 6px; overflow: hidden; }
.mc-radio label { padding: 5px 12px; cursor: pointer; font-size: 12px; font-weight: 600; color: #666; border-left: 1px solid var(--line-strong); }
.mc-radio label:first-child { border-left: 0; }
.mc-radio label.on { background: var(--primary); color: #fff; }
.mc-radio input { display: none; }
.mc-checks { display: flex; flex-wrap: wrap; gap: 6px 14px; }
.mc-lista { border-top: 0; }
.mc-item { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-bottom: 1px solid var(--line); min-height: 44px; }
.mc-item-c { flex: 1; min-width: 0; }
.mc-item-a { display: flex; gap: 2px; opacity: 0; transition: opacity .12s; }
.mc-item:hover .mc-item-a { opacity: 1; }
.mc-item-a .btn-ic { width: auto; padding: 0 8px; font-size: 12px; gap: 4px; }
.mc-item-a .btn-ic svg { width: 15px; height: 15px; }
.mc-rot { font-size: 11px; text-transform: uppercase; color: #555; min-width: 80px; display: inline-block; }
.mc-vazio-l { padding: 30px 0; }
.mc-dia { display: inline-block; font-size: 10px; font-weight: 700; padding: 2px 5px; border-radius: 4px; background: #efedf3; color: #aaa; margin-right: 2px; }
.mc-dia.on { background: var(--primary); color: #fff; }
/* Modal padrão */
.mc-fundo { backdrop-filter: blur(3px); background: rgba(20,8,40,.28); align-items: center; }
.mc-modal > header { justify-content: center; position: relative; border-bottom: 1px solid var(--line); }
.mc-modal > header h3 { font-size: 16px; display: flex; align-items: center; gap: 6px; }
.mc-modal > header h3 svg { width: 15px; height: 15px; }
.mc-modal > header .mc-x { position: absolute; right: 10px; top: 10px; }
.mc-modal > .corpo { padding: 18px; }
.mc-caixa { background: #eef0f3; border: 1px solid #dfe2e7; border-radius: 10px; padding: 16px 18px; }
.mc-modal > footer { background: #fff; border-top: 1px solid var(--line); }
.mc-gradeform { display: grid; grid-template-columns: repeat(12, 1fr); gap: 10px 12px; }
.mc-gc { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mc-gc > label { font-size: 12px; font-weight: 600; color: #333; display: flex; align-items: center; gap: 4px; }
.mc-gc > label svg { width: 13px; height: 13px; }
.mc-gc .inp, .mc-gc select { width: 100% !important; height: 32px; }
.menu-sep { padding: 14px 16px 4px; font-size: 11px; text-transform: uppercase; letter-spacing: .8px; opacity: .55; }
#menu li a.menu-ultimo { font-size: 13px; opacity: .8; height: 30px; }
.mc-pc-h { display: flex; align-items: center; gap: 8px; margin: 16px 0 4px; padding: 6px 8px; background: #faf8fd; border-radius: 6px; font-size: 14px; color: var(--tab); }
.mc-pc-h .mc-item-a { margin-left: auto; }
.mc-grupo-pc .mc-item { padding-left: 22px; }
.mc-abas-modal { margin: -4px 0 12px; }
.mc-toolbar { display: flex; gap: 4px; margin-bottom: 6px; align-items: center; }

/* Prévia em balão de WhatsApp (Política de Mensagens) */
.mc-wa { width: 340px; border-radius: 12px; overflow: hidden; background: #efe7dd; border: 1px solid var(--line); }
.mc-wa-cab { display: flex; gap: 8px; align-items: center; background: #075e54; color: #fff; padding: 8px 10px; }
.mc-wa-msg { margin: 10px; background: #fff; border-radius: 8px; padding: 8px 10px 16px; position: relative; font-size: 13px; box-shadow: 0 1px 1px rgba(0,0,0,.1); }
.mc-wa-hora { position: absolute; right: 8px; bottom: 3px; font-size: 10px; color: #999; }

/* Tabela de Preços (janela lateral igual ao ControleODONTO) */
.tp-folha { position: fixed; z-index: 60; top: 64px; left: 64px; right: 260px; bottom: 8px; background: #fff; border-radius: 10px 10px 0 0; box-shadow: 0 12px 50px rgba(20,8,40,.3); display: flex; flex-direction: column; }
.tp-folha > header { display: flex; align-items: center; gap: 8px; padding: 10px 14px; background: var(--primary-soft); border-radius: 10px 10px 0 0; font-size: 13px; }
.tp-folha > header svg { width: 16px; height: 16px; }
.tp-hic { margin-left: auto; display: flex; gap: 2px; }
.tp-corpo { overflow: auto; padding: 18px 22px; flex: 1; }
.tp-main { padding: 4px 6px; }
.tp-h1 { font-size: 26px; font-weight: 400; margin: 8px 0 14px; }
.tp-nome { border: 1px solid var(--line); border-radius: 8px; padding: 16px; text-align: center; color: var(--primary); font-size: 20px; margin-bottom: 14px; }
.tp-abas { margin-bottom: 0; }
.tp-painel { border: 1px solid var(--line); border-top: 0; padding: 16px 18px; border-radius: 0 0 8px 8px; }
.tp-tiles { display: flex; flex-wrap: wrap; justify-content: center; gap: 10px; margin: 6px 0 18px; }
.tp-tile { border: 1px solid var(--line); border-left: 3px solid var(--primary); background: #fff; border-radius: 6px; padding: 6px 12px; min-width: 140px; text-align: left; cursor: pointer; color: #666; font-size: 12px; }
.tp-tile b { font-size: 22px; color: var(--primary); margin-right: 2px; }
.tp-tile:hover { background: var(--primary-soft); }
.tp-filtro { width: 100%; margin-bottom: 8px; }
.tp-gcab { display: flex; justify-content: space-between; color: var(--primary); font-size: 17px; border-bottom: 1px solid var(--line); padding: 14px 0 4px; scroll-margin-top: 10px; }
.tp-linha { display: flex; align-items: center; gap: 12px; padding: 10px 8px; border-bottom: 1px solid var(--line); position: relative; border-radius: 6px; }
.tp-linha:hover { background: #f1eef8; }
.tp-cod { width: 80px; font-size: 11px; color: #777; display: flex; flex-direction: column; }
.tp-c { flex: 1; min-width: 0; }
.tp-tit { font-size: 16px; color: var(--text-strong); }
.tp-ref { font-size: 10px; font-style: italic; color: #d97706; }
.tp-ref.ok { color: #16a34a; }
.tp-info { font-size: 12px; color: #444; cursor: pointer; display: inline-flex; align-items: center; gap: 2px; }
.tp-info:hover, .tp-info.aberto { color: var(--primary); }
.tp-info svg { width: 13px; height: 13px; transition: transform .12s; } .tp-info.aberto svg { transform: rotate(90deg); }
.tp-det { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 4px 14px; font-size: 12px; padding: 6px 0 2px 14px; border-left: 2px dotted var(--line); margin: 4px 0 0 4px; }
.tp-preco { text-align: right; font-size: 18px; font-weight: 600; white-space: nowrap; }
.tp-rs { font-size: 10px; font-weight: 400; }
.tp-custo { font-size: 12px; font-weight: 400; color: #b91c1c; }
.tp-acoes { position: absolute; right: 8px; top: 8px; display: none; background: #fff; border-radius: 16px; box-shadow: 0 1px 6px rgba(0,0,0,.12); padding: 2px 6px; }
.tp-linha:hover .tp-acoes { display: flex; }
.tp-acoes .btn-ic, .tp-conj .btn-ic { width: auto; padding: 0 6px; font-size: 12px; gap: 4px; color: var(--primary); }
.tp-acoes svg, .tp-conj .btn-ic svg { width: 14px; height: 14px; }
.tp-ex { color: var(--bad) !important; }
.tp-conj { padding: 10px 12px; border-bottom: 1px solid var(--line); }
.tp-ctit { color: var(--primary); font-size: 17px; cursor: pointer; }
.tp-chip-esc { background: #555; color: #fff; margin: 4px 0; }
.tp-nome-modal { text-align: center; color: var(--primary); font-size: 20px; margin: -4px 0 12px; }
.tp-lbl { font-weight: 600; font-size: 12px; display: block; margin-top: 10px; }
.tp-radios { display: flex; flex-direction: column; gap: 4px; font-size: 13px; }
@media (max-width: 900px) { .tp-folha { left: 0; right: 0; top: 56px; } }

/* Atendimento (janela lateral) */
.at-cab { display: flex; align-items: center; gap: 14px; border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; }
.at-cab .avatar { width: 52px; height: 52px; font-size: 18px; }
.at-nome { font-size: 17px; font-weight: 600; }
.at-crono { text-align: right; } .at-crono b { font-size: 24px; font-weight: 400; letter-spacing: 1px; }
.at-linha { display: flex; gap: 10px; flex-wrap: wrap; margin: 10px 0; } .at-linha label { display: flex; flex-direction: column; } .at-linha select { height: 30px; min-width: 120px; }
.at-barra { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin: 6px 0 12px; }
.at-dd { position: relative; } .at-menu { display: none; position: absolute; right: 0; top: 100%; z-index: 5; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 10px 30px rgba(20,8,40,.18); padding: 8px; min-width: 220px; }
.at-dd:hover .at-menu, .at-dd:focus-within .at-menu { display: block; } .at-menu a { display: block; padding: 6px 8px; cursor: pointer; border-radius: 6px; } .at-menu a:hover { background: var(--primary-soft); }
.at-pap { min-width: 520px; } .at-pap-l { border: 1px solid var(--line); border-radius: 8px; margin-top: 8px; padding: 8px 12px; max-height: 260px; overflow: auto; }
.at-sessao { color: var(--primary); font-weight: 400; font-size: 20px; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.pl-item { display: flex; gap: 14px; padding: 12px; border-bottom: 1px solid var(--line); position: relative; border-radius: 8px; }
.pl-item:hover { background: #f1eef8; } .pl-data { display: flex; gap: 4px; align-items: center; min-width: 70px; } .pl-data b { font-size: 28px; } .pl-data span { font-size: 10px; line-height: 1.1; }
.pl-c { flex: 1; border-left: 2px solid var(--line); padding-left: 12px; } .pl-prof { color: var(--primary); font-size: 17px; } .pl-det { font-size: 13px; color: var(--primary); padding: 4px 0 6px 12px; border-left: 2px dotted var(--line); }
.pl-acoes { position: absolute; right: 10px; top: 10px; display: none; background: #fff; border-radius: 16px; box-shadow: 0 1px 6px rgba(0,0,0,.12); padding: 2px 6px; } .pl-item:hover .pl-acoes { display: flex; }
.pl-acoes .btn-ic { width: auto; padding: 0 6px; font-size: 12px; gap: 4px; color: var(--primary); }
/* Plano de Tratamento */
.pt { display: grid; grid-template-columns: 180px 1fr; gap: 16px; min-height: 380px; }
.pt-tit { background: #eef0f3; padding: 12px 16px; font-size: 20px; border-radius: 6px; margin-bottom: 12px; }
.pt-rap { margin: 8px 0; display: flex; gap: 4px; flex-wrap: wrap; }
.pt-cards { display: flex; flex-wrap: wrap; gap: 12px; } .pt-card { border: 1px solid var(--line); border-radius: 8px; width: 270px; padding: 10px; }
.pt-card-cab { display: flex; justify-content: space-between; color: #666; border-bottom: 1px solid var(--line); padding-bottom: 6px; margin-bottom: 6px; }
.pt-proc { display: flex; align-items: center; gap: 6px; background: #eef0f3; border-radius: 6px; padding: 6px 8px; margin-top: 4px; } .pt-proc a { flex: 1; cursor: pointer; } .pt-proc svg { width: 13px; height: 13px; }
.pt-atalhos { display: flex; gap: 6px; background: #f6f7f9; border: 1px solid var(--line); border-radius: 8px; padding: 8px; margin-bottom: 12px; }
.pt-arc { border-left: 3px solid #d6dcf5; padding: 6px 0 8px 12px; margin-bottom: 12px; } .pt-arc-t { background: #f6f7f9; border: 1px solid var(--line); border-radius: 6px; padding: 6px 12px; font-size: 11px; font-weight: 600; color: #555; }
.pt-arc-l { display: flex; justify-content: space-between; margin: 4px 0; } .pt-dentes { display: flex; justify-content: center; gap: 10px; }
.pt-grp { display: inline-flex; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; margin: 2px; }
.pt-grp button { border: 0; border-left: 1px solid var(--line); background: #fff; font-size: 11px; font-weight: 600; padding: 4px 9px; cursor: pointer; } .pt-grp button:first-child { border-left: 0; }
.pt-d.on { background: var(--primary); color: #fff; } .pt-r.on { background: #c2410c; color: #fff; } .pt-d.usado, .pt-r.usado { background: #bbb; color: #fff; cursor: default; }
.pt-outras { background: #f6f7f9; border: 1px solid var(--line); border-radius: 8px; padding: 8px 12px; } .pt-outras summary { color: var(--primary); font-weight: 600; cursor: pointer; padding: 4px 0; }
.pt-ol { display: flex; align-items: center; gap: 12px; padding: 6px 0; border-top: 1px dashed var(--line); } .pt-ot { width: 120px; text-align: right; font-size: 11px; font-weight: 600; color: #555; }
.pt-sel { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 12px; color: var(--primary); } .pt-sel a { cursor: pointer; margin-left: 2px; }
.pt-atal { display: flex; flex-wrap: wrap; gap: 3px; justify-content: center; margin-bottom: 8px; }
.pt-chip { border: 1px solid var(--line); background: #fff; border-radius: 10px; font-size: 11px; padding: 1px 7px; cursor: pointer; } .pt-chip.on { background: var(--primary); color: #fff; }
.sp-grade { display: grid; grid-template-columns: 180px 1fr; gap: 12px; max-height: 340px; } .sp-grade > div { overflow: auto; }
.pt-pitem { display: flex; align-items: center; gap: 6px; width: 100%; text-align: left; border: 1px solid var(--line); background: #f3f4f6; border-radius: 6px; padding: 6px 10px; margin-bottom: 4px; cursor: pointer; font-weight: 600; font-size: 13px; }
.pt-pitem.on { background: var(--primary); color: #fff; } .pt-pitem svg { width: 13px; height: 13px; }
/* Cadastrar Orçamento */
.orc-pac { display: flex; justify-content: space-between; color: var(--primary); font-size: 18px; margin-bottom: 8px; } .orc-pac .meta { font-size: 17px; }
.orc-corpo { min-height: 230px; } .orc-sit { background: #eef0f3; border-radius: 6px; text-align: center; padding: 6px; margin-top: 12px; display: flex; flex-direction: column; } .orc-sit b { font-size: 17px; font-weight: 400; color: #444; }
.orc-item { display: flex; align-items: center; gap: 8px; border-bottom: 1px solid var(--line); padding: 6px 0; } .orc-item.off { opacity: .55; }
.orc-mov { display: flex; flex-direction: column; } .orc-mov .btn-ic { height: 14px; } .orc-c { flex: 1; min-width: 0; } .orc-vl { width: 90px; text-align: right; }
.orc-tg input { display: none; } .orc-tg span { display: inline-block; width: 30px; height: 16px; border-radius: 8px; background: #ccc; position: relative; cursor: pointer; }
.orc-tg span::after { content: ''; position: absolute; left: 2px; top: 2px; width: 12px; height: 12px; border-radius: 50%; background: #fff; transition: left .12s; } .orc-tg input:checked + span { background: #65a30d; } .orc-tg input:checked + span::after { left: 16px; }
.orc-tot { display: flex; align-items: center; gap: 14px; background: #eef0f3; border-radius: 6px; padding: 8px 12px; margin-top: 10px; } .orc-tot > div { display: flex; flex-direction: column; flex: 1; text-align: center; } .orc-tot b { font-size: 17px; font-weight: 400; } .orc-tot b.pri { color: var(--primary); } .orc-tot small { font-size: 10px; }
.orc-parc input, .orc-parc select { height: 30px; } .orc-qtd { display: inline-flex; gap: 2px; }
.mc-modal .abas, .tp-abas, #at-abas { overflow: visible; flex-wrap: wrap; }
.orc-tot input.inp { height: 30px; padding: 0 8px; } .orc-tot > div > span { display: inline-flex; align-items: center; gap: 4px; justify-content: center; white-space: nowrap; }
.orc-qtd { display: inline-flex; align-items: center; gap: 4px; } .orc-qtd .inp { width: 56px !important; height: 30px; }
.orc-corpo .mc-gc > span { display: inline-flex; align-items: center; gap: 4px; } .orc-corpo .mc-gc > span > .inp { width: 64px !important; } .orc-corpo .mc-gc label { white-space: nowrap; }
/* Prontuário (cabeçalho igual ao ControleODONTO) */
.pr-topo { margin: 4px 0 12px; }
.pr-cab { display: flex; align-items: center; gap: 18px; background: linear-gradient(180deg, #f4f2f8, #eceaf2); border: 1px solid var(--line); border-radius: 10px; padding: 12px 18px; }
.pr-av { width: 92px; height: 92px; border-radius: 50%; background: linear-gradient(135deg, #a78bfa, var(--primary)); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 34px; font-weight: 600; flex: none; }
.pr-id { flex: 1; min-width: 0; } .pr-nome { font-size: 22px; font-weight: 600; color: #444; } .pr-id svg { width: 13px; height: 13px; vertical-align: -2px; }
.pr-bts { display: flex; gap: 8px; align-self: flex-end; } .pr-b { width: 38px; height: 38px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; }
.pr-b.ok { background: #22c55e; } .pr-b svg { width: 17px; height: 17px; }
.pr-ult { display: flex; align-items: center; gap: 20px; border: 1px solid var(--line); border-radius: 10px; padding: 10px 18px; margin-top: 10px; background: #fff; min-height: 62px; }
/* Último atendimento: rótulo pequeno sobre a data; Acessar e + num grupo só; telefone em selo à direita */
.pr-ult-info { display: flex; flex-direction: column; gap: 2px; min-width: 150px; }
.pr-ult-l { font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); }
.pr-ult-d { font-size: 14px; font-weight: 600; color: var(--text-strong); white-space: nowrap; }
.pr-ult-bts { display: inline-flex; align-items: stretch; }
.pr-ult-bts .btn { height: 34px; margin: 0; border-radius: 0; display: inline-flex; align-items: center; gap: 6px; }
.pr-ult-bts .btn:first-child { border-radius: 8px 0 0 8px; } .pr-ult-bts .btn:last-child { border-radius: 0 8px 8px 0; } .pr-ult-bts .btn:only-child { border-radius: 8px; }
.pr-ult-bts .btn + .btn { margin-left: -1px; }
.pr-ult-tel { margin-left: auto; display: inline-flex; align-items: center; gap: 6px; padding: 6px 14px; border-radius: 18px; background: var(--page); font-size: 13px; white-space: nowrap; }
.pr-ult-tel svg { width: 15px; height: 15px; color: var(--muted); }
.pr-sem-card { border: 0 !important; box-shadow: none !important; padding: 0 !important; background: transparent !important; }
.pac-l .avatar { width: 38px; height: 38px; } .pac-nome { font-weight: 600; color: var(--text-strong); cursor: pointer; } .pac-c { min-width: 110px; text-align: center; }
.lg-kpis { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 14px; } .lg-k { flex: 1; min-width: 120px; border: 1px solid var(--line); border-radius: 10px; padding: 10px; display: flex; flex-direction: column; align-items: center; } .lg-k b { font-size: 24px; } .lg-k span { font-size: 11px; color: #666; } .lg-k.ok b { color: var(--ok); } .lg-k.warn b { color: var(--warn); } .lg-k.bad b { color: var(--bad); }
/* Emissor de Prescrição / Solicitações */
.em-op { display: flex; gap: 14px; align-items: center; width: 100%; text-align: left; border: 1px solid var(--line); background: #fff; border-radius: 10px; padding: 14px; margin-bottom: 8px; cursor: pointer; }
.em-op:hover { border-color: var(--primary); background: var(--primary-soft); } .em-op > svg { width: 28px; height: 28px; color: var(--primary); flex: none; }
.em-lista { max-height: 60vh; overflow: auto; } .em-mod { border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; margin-bottom: 8px; background: #fff; }
.em-mod-t { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; } .em-it { border-left: 2px dotted var(--line); padding: 2px 0 2px 10px; margin-left: 4px; font-size: 13px; }
.em-row { display: grid; grid-template-columns: 1.4fr 1.2fr 1fr .6fr 28px; gap: 6px; margin-bottom: 6px; }
.at-mes { border: 1px solid var(--line); border-radius: 10px; margin-bottom: 12px; overflow: hidden; } .at-mes-c { display: flex; align-items: center; gap: 14px; padding: 10px 14px; border-bottom: 1px solid var(--line); }
.at-medias { display: flex; justify-content: flex-end; gap: 18px; padding: 6px 14px; background: #f6f7f9; } .at-medias div { display: flex; flex-direction: column; align-items: center; } .at-medias b { color: #65a30d; font-size: 13px; }
.at-hrs { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 14px; border-left: 2px dotted var(--line); padding-left: 10px; font-size: 13px; } .at-hrs div { display: flex; flex-direction: column; }
/* Conversas (caixas de entrada) */
.cv { display: grid; grid-template-columns: 300px 1fr; gap: 12px; min-height: 420px; } .cv-lista { border-right: 1px solid var(--line); overflow: auto; max-height: 65vh; }
.cv-it { display: block; padding: 8px 10px; border-bottom: 1px solid var(--line); cursor: pointer; } .cv-it:hover, .cv-it.ativo { background: var(--primary-soft); }
.cv-chat { display: flex; flex-direction: column; } .cv-msgs { flex: 1; overflow: auto; max-height: 58vh; padding: 8px; background: #f3f0f8; border-radius: 8px; }
.cv-m { max-width: 70%; background: #fff; border-radius: 10px; padding: 6px 10px; margin: 4px 0; box-shadow: 0 1px 2px rgba(0,0,0,.06); } .cv-m.eu { margin-left: auto; background: #e9dcff; }
.cv-env { display: flex; gap: 6px; margin-top: 8px; } .cv-env input { flex: 1; }
/* Painel de Gestão (pacientes) */
.sem-menu-lateral .mc-menu { display: none; } .sem-menu-lateral .mc-lado { grid-template-columns: 1fr !important; }
.pp-cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 14px; margin-bottom: 14px; }
.pp-card { border: 1px solid var(--line); border-radius: 10px; padding: 18px 12px; text-align: center; display: flex; flex-direction: column; gap: 4px; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
.pp-card b { font-size: 24px; font-weight: 400; color: var(--primary); } .pp-card span { color: #555; font-size: 13px; } .pp-sub { font-size: 11px; color: #666; } .pp-sub .ok { color: var(--ok); } .pp-sub .bad { color: var(--bad); } .pp-sub .warn { color: var(--warn); font-weight: 600; }
.pp-card.alerta-c { border-color: #fdba74; } .pp-card.bad-c b { color: #e05a2b; } .pp-card.topo b { color: var(--primary); }
.pp-seg { display: inline-flex; } .pp-bar { display: grid; grid-template-columns: 220px 1fr 60px; gap: 10px; align-items: center; margin: 4px 0; font-size: 13px; } .pp-bar div { background: #f1eef8; border-radius: 4px; height: 14px; } .pp-bar i { display: block; height: 100%; background: #7cb5ec; border-radius: 4px; } .pp-bar b { text-align: right; }
.pp-topo { display: flex; justify-content: space-between; align-items: flex-end; margin-bottom: 12px; flex-wrap: wrap; gap: 8px; }
.pp-box { background: #f6f7f9; border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; }
.pp-funil { display: flex; flex-direction: column; align-items: center; gap: 2px; margin: 10px 0; } .pp-f { width: 100%; display: flex; flex-direction: column; align-items: center; position: relative; } .pp-f i { display: block; height: 28px; clip-path: polygon(0 0, 100% 0, 92% 100%, 8% 100%); } .pp-f span { position: absolute; right: 2%; top: 5px; font-size: 12px; font-weight: 600; }
.pp-f { display: grid; grid-template-columns: 1fr 150px; align-items: center; gap: 8px; } .pp-f i { justify-self: center; } .pp-f span { position: static; text-align: left; color: #333; } .pp-cards { grid-template-columns: repeat(5, minmax(150px, 1fr)); } @media (max-width: 1100px) { .pp-cards { grid-template-columns: repeat(2, 1fr); } }
/* Gestão de Negócios */
.kb { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(230px, 1fr); gap: 10px; overflow-x: auto; padding-bottom: 6px; }
.kb-col { background: #f6f7f9; border: 1px solid var(--line); border-top: 3px solid; border-radius: 8px; padding: 8px; min-height: 200px; } .kb-cab { display: flex; justify-content: space-between; } .kb-n { text-align: right; margin: 4px 0 8px; border-bottom: 1px solid var(--line); padding-bottom: 6px; }
.kb-card { background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 8px; margin-bottom: 6px; cursor: grab; } .kb-card:hover { border-color: var(--primary); }
.ng-cab { margin-bottom: 10px; } .ng-at .ng-dt { min-width: 64px; display: flex; flex-direction: column; } .ng-at.imp { border-left: 3px solid var(--bad); }
.gc-ass { background: #f6f7f9; border-radius: 8px; padding: 8px 12px; margin-bottom: 10px; font-size: 13px; } .gc-ass svg { width: 14px; height: 14px; vertical-align: -2px; } .gc-doc { border: 1px solid var(--line); border-radius: 8px; padding: 16px; max-height: 45vh; overflow: auto; margin-top: 10px; background: #fff; }
.db-cartoes { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; margin-bottom: 14px; }
.db-cartao { padding: 14px 16px; text-align: center; position: relative; }
.db-cab { display: flex; align-items: center; gap: 6px; text-align: left; position: relative; }
.db-cab b { flex: 1; font-size: 15px; }
.db-cab > svg { width: 16px; height: 16px; color: var(--pri); }
.db-val { font-size: 22px; margin-top: 12px; }
.db-val.azul { color: #3b6fd0; } .db-val.verde { color: #6aa324; } .db-val.verm { color: #e04b2c; }
.db-sub { font-size: 11px; color: #888; } .db-sub b { color: var(--pri); }
.db-menu { position: absolute; right: 0; top: 26px; background: #fff; box-shadow: 0 4px 16px rgba(0,0,0,.15); border-radius: 6px; padding: 6px 0; z-index: 20; min-width: 150px; text-align: left; }
.db-menu a { display: block; padding: 6px 14px; font-size: 13px; color: #333; cursor: pointer; white-space: nowrap; } .db-menu a:hover { background: #f1edf8; } .db-menu a span { color: #999; } .db-menu hr { border: 0; border-top: 1px solid #eee; margin: 4px 0; }
.db-fluxo { position: relative; } .db-ftit { display: flex; align-items: center; border-bottom: 1px solid var(--line); margin-bottom: 6px; position: relative; } .db-ftit h2 { flex: 1; margin: 0 0 6px; }
.db-fcorpo { display: grid; grid-template-columns: 2fr 1fr; gap: 16px; align-items: start; }
.db-tiles { display: grid; gap: 10px; }
.db-tile { display: flex; justify-content: space-between; align-items: center; border: 1px solid var(--line); border-left: 4px solid; border-radius: 8px; padding: 8px 14px; } .db-tile span { font-weight: 600; } .db-tile b { font-size: 28px; font-weight: 400; }
.db-tile.verde { border-left-color: #4caf50; } .db-tile.verde b { color: #4caf50; } .db-tile.verm { border-left-color: #e53950; } .db-tile.verm b { color: #e53950; } .db-tile.azul { border-left-color: #3b8fe0; } .db-tile.azul b { color: #3b8fe0; } .db-tile.preto { border-left-color: #222; }
.db-tip { position: absolute; top: 10px; background: rgba(255,255,255,.96); border: 1px solid #ccc; border-radius: 4px; padding: 6px 10px; font-size: 12px; pointer-events: none; min-width: 130px; }
.db-sep { margin: 22px 0 10px; color: #777; font-size: 14px; } .db-sep svg { width: 14px; height: 14px; }
.db-fluxo:fullscreen { background: #fff; padding: 30px; }
@media (max-width: 900px) { .db-cartoes { grid-template-columns: 1fr 1fr; } .db-fcorpo { grid-template-columns: 1fr; } }
/* Fluxo na Clínica (cópia do ControleODONTO) */
.fx-opc { display: flex; gap: 6px; align-items: center; margin: -6px 0 12px; } .fx-opcs { display: inline-flex; gap: 6px; }
.fx-redondo { width: 36px; height: 36px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; display: inline-grid; place-items: center; cursor: pointer; box-shadow: 0 2px 6px rgba(60,20,100,.25); } .fx-redondo.verde { background: #3aa856; } .fx-redondo svg { width: 18px; height: 18px; }
.fx-inds { display: flex; flex-wrap: wrap; gap: 12px; margin-bottom: 14px; }
.fx-ind { flex: 0 0 calc(25% - 9px); display: flex; align-items: center; gap: 12px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 12px 16px; }
.fx-ind > svg { width: 34px; height: 34px; padding: 8px; border-radius: 8px; background: #f1edf8; color: var(--primary); }
.fx-ind b { display: block; font-size: 20px; } .fx-ind span { font-size: 10px; text-transform: uppercase; color: #666; letter-spacing: .3px; }
.fx-ind.ruim { background: #fdeeee; border-color: #f3c3c3; } .fx-ind.ruim b { color: #d32f2f; } .fx-ind.ruim > svg { background: #fbdcdc; color: #d32f2f; }
.fx-barra { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-bottom: 12px; }
.fx-chip { border: 1px solid var(--line); border-radius: 20px; padding: 5px 12px; font-size: 13px; cursor: pointer; background: #fff; display: inline-flex; gap: 6px; align-items: center; color: #333; }
.fx-chip.on { background: var(--primary); color: #fff; border-color: var(--primary); } .fx-chip i { font-style: normal; background: rgba(0,0,0,.12); border-radius: 10px; padding: 0 7px; font-size: 11px; } .fx-chip svg { width: 14px; height: 14px; }
.fx-board.kanban { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; align-items: start; }
.fx-col { background: #fff; border-radius: 10px; border-top: 3px solid var(--cc); box-shadow: 0 1px 3px rgba(30,10,60,.08); }
.fx-col.alvo { outline: 2px dashed var(--primary); background: #f6f1fd; }
.fx-ctit { display: flex; align-items: center; gap: 8px; padding: 10px 14px; border-bottom: 1px solid var(--line); position: relative; } .fx-ctit b { flex: 1; } .fx-ctit > svg { width: 17px; height: 17px; color: var(--cc); }
.fx-n { background: #eef1f8; border-radius: 10px; padding: 1px 10px; font-size: 12px; }
.fx-vmenu { border: 0; background: none; cursor: pointer; position: relative; padding: 0 2px; color: #888; } .fx-vmenu svg { width: 16px; height: 16px; }
.fx-pbadge, .fx-pb2 { font-style: normal; background: #d32f2f; color: #fff; border-radius: 10px; font-size: 9px; padding: 0 5px; } .fx-pbadge { position: absolute; top: -8px; left: -6px; }
.fx-dd { position: absolute; top: 38px; left: 8px; z-index: 30; background: #fff; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.15); padding: 6px; min-width: 210px; }
.fx-dd a { display: flex; align-items: center; gap: 8px; padding: 7px 10px; border-radius: 6px; cursor: pointer; font-size: 13px; color: #333; } .fx-dd a.on, .fx-dd a:hover { background: #f1edf8; color: var(--primary); } .fx-dd a svg { width: 14px; height: 14px; } .fx-pb2 { margin-left: auto; font-size: 11px; padding: 1px 8px; }
.fx-busca { position: relative; padding: 10px 12px 0; } .fx-busca svg { position: absolute; left: 22px; top: 20px; width: 14px; height: 14px; color: #aaa; } .fx-busca input { width: 100%; padding-left: 30px; }
.fx-profs { display: flex; gap: 6px; flex-wrap: wrap; padding: 8px 12px; background: #fafafa; border-bottom: 1px solid var(--line); }
.fx-profs a { border: 1px solid var(--line); border-radius: 14px; padding: 2px 10px; font-size: 12px; cursor: pointer; background: #fff; color: #444; } .fx-profs a.on { background: var(--primary); color: #fff; border-color: var(--primary); }
.fx-lista { list-style: none; margin: 0; padding: 10px; max-height: 62vh; overflow: auto; } .fx-lista ul { list-style: none; margin: 0; padding: 0; }
.fx-grupo { border: 1px solid var(--line); border-radius: 8px; padding: 8px; margin-bottom: 10px; } .fx-gtit { font-size: 11px; font-weight: 700; letter-spacing: .5px; text-transform: uppercase; color: #777; border-left: 3px solid var(--cc); padding-left: 8px; margin-bottom: 8px; }
.fx-card { display: flex; gap: 8px; border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; margin-bottom: 8px; background: #fff; }
.fx-card[draggable] { cursor: grab; } .fx-card.arrastando { opacity: .4; }
.fx-corpo { flex: 1; min-width: 0; } .fx-cab { font-size: 11px; color: #555; margin-bottom: 4px; }
.fx-encaixe { background: #e6efff; color: #3b6fd0; border-radius: 10px; font-size: 9px; padding: 1px 6px; font-weight: 600; }
.fx-lin { display: flex; gap: 10px; } .fx-esq { display: flex; flex-direction: column; align-items: center; gap: 4px; flex: 0 0 80px; }
.fx-av { width: 46px; height: 46px; border-radius: 50%; background: var(--c); color: #fff; display: grid; place-items: center; font-weight: 700; font-size: 17px; position: relative; cursor: pointer; } .fx-av > svg { width: 22px; height: 22px; }
.fx-ativo { position: absolute; right: -3px; bottom: -3px; width: 18px; height: 18px; border-radius: 50%; background: #3aa856; border: 2px solid #fff; display: grid; place-items: center; } .fx-ativo svg { width: 10px; height: 10px; color: #fff; }
.fx-hora { font-size: 11px; background: #f1f1f4; border-radius: 10px; padding: 1px 8px; white-space: nowrap; } .fx-hora b { color: #d32f2f; background: #fde3e3; border-radius: 8px; padding: 0 4px; }
.fx-falha { font-size: 10px; line-height: 1.15; text-align: center; color: #d32f2f; font-weight: 600; border: 1px solid #f3c3c3; border-radius: 12px; padding: 3px 8px; }
.fx-dados { flex: 1; min-width: 0; } .fx-nome { font-weight: 700; font-size: 15px; } .fx-sub { font-size: 11px; color: #444; } .fx-sub svg { width: 11px; height: 11px; vertical-align: -1px; }
.fx-novo { background: #fff3d6; color: #b07a00; font-size: 9px; font-weight: 700; border-radius: 10px; padding: 1px 7px; }
.fx-orc { display: flex; gap: 6px; align-items: center; font-size: 13px; color: #555; margin-top: 4px; cursor: pointer; } .fx-orc b { margin-left: auto; color: #333; } .fx-orc svg { width: 14px; height: 14px; }
.fx-orcs { font-size: 12px; background: #fafafa; border-radius: 6px; padding: 4px 8px; margin-top: 4px; } .fx-orcs div { display: flex; justify-content: space-between; gap: 6px; padding: 2px 0; }
.fx-obs { font-style: italic; font-size: 12px; color: #444; margin-top: 4px; }
.fx-btns { display: flex; flex-direction: column; gap: 6px; border-left: 1px solid var(--line); padding-left: 8px; }
.fx-b { width: 28px; height: 28px; border-radius: 50%; border: 1px solid var(--line); background: #fff; display: grid; place-items: center; cursor: pointer; color: var(--primary); } .fx-b svg { width: 14px; height: 14px; }
.fx-b.pri { background: var(--primary); color: #fff; border-color: var(--primary); } .fx-b.ok { color: #3aa856; } .fx-b.ok.cheio { background: #3aa856; color: #fff; border-color: #3aa856; } .fx-b.bad { color: #d32f2f; border-color: #f3c3c3; }
.fx-cts { display: grid; gap: 8px; } .fx-ct { display: flex; gap: 12px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; cursor: pointer; color: #333; } .fx-ct:hover { background: #faf8fd; }
.fx-ct > span { width: 34px; height: 34px; border-radius: 8px; display: grid; place-items: center; } .fx-ct div { flex: 1; } .fx-ct small { display: block; color: #888; font-size: 11px; } .fx-ct.off { opacity: .5; cursor: default; border-style: dashed; }
@media (max-width: 1100px) { .fx-board.kanban { grid-template-columns: 1fr; } .fx-ind { flex-basis: calc(50% - 6px); } }
/* Agendamentos (cópia do ControleODONTO) */
.ag-lembs { display: flex; flex-wrap: wrap; gap: 14px; margin-bottom: 14px; }
.ag-lemb { position: relative; width: 330px; background: linear-gradient(160deg, #6e3990, #3d1d5c); color: #fff; border-radius: 6px; padding: 12px 14px; box-shadow: 0 3px 10px rgba(40,10,70,.25); }
.ag-lemb > svg { position: absolute; left: 12px; top: 14px; width: 30px; height: 30px; opacity: .55; }
.ag-lemb > div { margin-left: 40px; } .ag-lemb b { font-size: 17px; display: block; line-height: 1.15; } .ag-lemb small { display: block; opacity: .75; font-size: 12px; } .ag-lemb i { display: block; font-size: 10px; opacity: .6; }
.ag-lemb p { margin: 10px 0 0; font-weight: 600; font-size: 13px; }
.ag-lacoes { position: absolute; right: 10px; top: 10px; display: none; gap: 4px; } .ag-lemb:hover .ag-lacoes { display: flex; }
.ag-lacoes button { border: 0; border-radius: 4px; background: #fff; color: var(--primary); font-size: 11px; padding: 2px 6px; cursor: pointer; display: inline-flex; gap: 3px; align-items: center; } .ag-lacoes svg { width: 12px; height: 12px; }
.ag-barra { display: flex; gap: 8px; align-items: center; margin-bottom: 10px; }
.ag-seg { display: inline-flex; background: #eceaf2; border-radius: 20px; padding: 3px; gap: 2px; }
.ag-seg label { display: inline-flex; align-items: center; gap: 5px; padding: 4px 12px; border-radius: 16px; font-size: 12px; color: #777; cursor: pointer; position: relative; } .ag-seg label svg { width: 14px; height: 14px; }
.ag-seg label.on { background: var(--primary); color: #fff; } .ag-seg i { position: absolute; top: -7px; right: -4px; background: #d32f2f; color: #fff; font-style: normal; font-size: 9px; border-radius: 10px; padding: 1px 5px; }
.ag-redondo { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; display: grid; place-items: center; cursor: pointer; } .ag-redondo svg { width: 17px; height: 17px; }
.ag-faixa { display: flex; align-items: center; gap: 2px; margin-bottom: 10px; overflow-x: auto; }
.ag-faixa a { flex: 1 0 52px; text-align: center; padding: 6px 2px; border-radius: 10px; cursor: pointer; color: #333; }
.ag-faixa a small { display: block; font-size: 9px; color: #999; text-transform: uppercase; } .ag-faixa a b { font-size: 18px; font-weight: 500; } .ag-faixa a.fds b { color: #d08a00; }
.ag-faixa a.on { background: var(--primary); color: #fff; } .ag-faixa a.on small, .ag-faixa a.on b { color: #fff; }
.ag-faixa .ag-hoje { flex: 0 0 auto; color: #888; padding: 0 10px; } .ag-seta { border: 0; background: none; color: #aaa; cursor: pointer; } .ag-seta svg { width: 18px; height: 18px; }
.ag-cal { display: flex; gap: 20px; align-items: flex-start; margin-bottom: 12px; } .ag-cal > .btn-ic { margin-top: 0; }
.ag-mes { flex: 1; text-align: center; } .ag-mes > b { font-size: 13px; color: #555; }
.ag-mgr { display: grid; grid-template-columns: repeat(7, 1fr); gap: 4px 0; margin-top: 8px; font-size: 12px; }
.ag-mgr .h { color: #bbb; font-size: 10px; } .ag-mgr a { cursor: pointer; border-radius: 50%; width: 28px; height: 28px; line-height: 28px; margin: 0 auto; color: #444; }
.ag-mgr a:hover { background: #f1edf8; } .ag-mgr a.on { background: var(--primary); color: #fff; } .ag-mgr a.hoje { font-weight: 700; outline: 1px solid var(--primary); }
.ag-rets { background: #fff; border-radius: 10px; padding: 6px 12px; }
.ag-ret { display: flex; align-items: center; gap: 14px; border-bottom: 1px solid var(--line); padding: 6px 0; }
.ag-rdata { display: flex; align-items: center; gap: 4px; width: 70px; } .ag-rdata b { font-size: 26px; color: #444; } .ag-rdata span { font-size: 9px; color: #777; line-height: 1.1; }
.ag-rtxt { flex: 1; } .ag-rtxt a { cursor: pointer; color: #222; font-weight: 600; } .ag-rtxt small { color: #999; font-size: 10px; } .ag-rtxt div { color: var(--primary); font-size: 13px; }
.ag-abas { margin-bottom: 0; }
.ag-painel { display: grid; grid-template-columns: 200px 1fr; background: #fff; border-radius: 0 10px 10px 10px; box-shadow: 0 1px 3px rgba(30,10,60,.06); min-height: 300px; }
.ag-lado { padding: 14px 10px; border-right: 1px solid var(--line); } .ag-lado hr { border: 0; border-top: 1px solid var(--line); margin: 8px 0; }
.ag-lado a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 8px; cursor: pointer; color: #444; font-size: 13px; }
.ag-lado a.on { background: #f1edf8; color: var(--primary); border-left: 3px solid var(--primary); } .ag-lado a > svg { width: 16px; height: 16px; color: var(--primary); }
.ag-lado a div { flex: 1; line-height: 1.1; } .ag-lado a small { display: block; font-size: 9px; color: #999; text-transform: uppercase; }
.ag-lado a i { font-style: normal; background: #ece4f6; color: var(--primary); border-radius: 10px; font-size: 11px; padding: 1px 8px; } .ag-lado a i.ok { background: #dcf3e2; color: #2f8f4a; font-size: 9px; }
.ag-av { width: 30px; height: 30px; border-radius: 50%; border: 2px solid var(--c); color: var(--c); display: inline-grid; place-items: center; font-weight: 700; font-size: 13px; flex: 0 0 auto; position: relative; background: #fff; } .ag-av svg { width: 14px; height: 14px; }
.ag-av.big { width: 52px; height: 52px; background: var(--c); color: #fff; border: 0; font-size: 19px; } .ag-av.big svg { width: 22px; height: 22px; }
.ag-main { padding: 14px 16px; min-width: 0; position: relative; }
.ag-mcab { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; } .ag-mcab h2 { flex: 1; margin: 0; font-weight: 400; font-size: 22px; } .ag-mcab h2 svg { width: 20px; height: 20px; }
.ag-ferr { display: flex; gap: 6px; align-items: center; position: relative; }
.ag-fpop { position: absolute; top: 34px; left: -40px; z-index: 30; background: #fff; border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,.18); padding: 10px 16px; width: 150px; }
.ag-fpop b { display: block; color: var(--primary); font-weight: 400; font-size: 15px; border-bottom: 1px solid var(--line); margin: 4px 0; } .ag-fpop label { display: block; font-size: 13px; }
.ag-grade { display: grid; grid-template-columns: 52px repeat(var(--n), minmax(140px, 1fr)); overflow-x: auto; }
.ag-ch { background: #f3f1f7; border-radius: 6px; margin: 0 3px 4px; text-align: center; padding: 6px; font-size: 12px; color: #555; }
.ag-dt { text-align: center; padding: 18px 0; border-top: 2px solid var(--primary); border-bottom: 1px solid var(--line); }
.ag-horas { position: relative; } .ag-horas span { position: absolute; right: 8px; font-size: 13px; color: #777; display: flex; align-items: center; } .ag-horas small { font-size: 9px; color: #bbb; }
.ag-col { position: relative; border-left: 1px solid var(--line); background-image: repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--alt) * 4 - 1px), #e6e3ec calc(var(--alt) * 4 - 1px), #e6e3ec calc(var(--alt) * 4)), repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--alt) - 1px), #f4f2f8 calc(var(--alt) - 1px), #f4f2f8 var(--alt)); cursor: copy; }
.ag-ev { position: absolute; left: 2px; right: 3px; border-radius: 3px; padding: 4px 8px; font-size: 11px; overflow: hidden; cursor: pointer; background: #eceaee; border-left: 4px solid #8a8790; color: #222; }
.ag-ev small { display: block; font-size: 9px; color: #555; } .ag-ev.simp { padding: 0 6px; line-height: 13px; white-space: nowrap; }
.ag-ev.CONFIRMADO { background: #c7ebd6; border-left-color: #15803d; } .ag-ev.EM_ESPERA { background: #fdebc8; border-left-color: #d97706; } .ag-ev.EM_ATENDIMENTO { background: #d4e6fb; border-left-color: #2563eb; }
.ag-ev.CONCLUIDO { background: #dbeafe; border-left-color: #3b8fe0; } .ag-ev.DESMARCADO { background: #fde2e2; border-left-color: #dc2626; text-decoration: line-through; opacity: .8; } .ag-ev.FALTA { background: #fdebd7; border-left-color: #d97706; opacity: .85; }
.ag-ev.comp { background: #ebe4fb; border: 1px dashed #8b6bd1; border-left: 3px dashed #4b2a8a; } .ag-ev.conv { box-shadow: inset 0 0 0 2px #16a34a; }
.ag-marca, .ag-rec { position: absolute; right: 4px; top: 3px; color: #8b6bd1; } .ag-marca svg, .ag-rec svg { width: 11px; height: 11px; } .ag-rec { right: 18px; color: #555; }
.ag-novo { background: #fff3d6; color: #b07a00; font-size: 9px; font-weight: 700; border-radius: 10px; padding: 0 6px; }
.ag-tip { position: absolute; z-index: 40; width: 160px; transform: translateY(-100%); background: #f3f3f5; border: 1px solid #ddd; border-radius: 4px; padding: 6px 8px; font-size: 12px; text-align: center; pointer-events: none; box-shadow: 0 2px 8px rgba(0,0,0,.12); }
.ag-menu { position: fixed; z-index: 60; background: #fff; border-radius: 10px; box-shadow: 0 6px 22px rgba(0,0,0,.18); padding: 8px; min-width: 170px; transform: translateY(-100%); }
.ag-menu a { display: flex; gap: 10px; align-items: center; padding: 7px 10px; border-radius: 6px; cursor: pointer; color: #333; font-size: 14px; } .ag-menu a:hover { background: #f5f2fa; } .ag-menu a svg { width: 16px; height: 16px; }
.ag-menu a.pri { color: var(--primary); } .ag-menu a.bad { color: #d32f2f; } .ag-menu hr { border: 0; border-top: 1px solid var(--line); margin: 4px 0; }
.ag-mapa { overflow-x: auto; } .ag-mapa table { border-collapse: collapse; width: 100%; font-size: 11px; }
.ag-mapa th { font-weight: 400; color: #555; padding: 2px; } .ag-mapa thead th b { display: block; font-size: 22px; font-weight: 400; } .ag-mapa thead th small { display: block; font-size: 9px; color: #aaa; } .ag-mapa th.q { font-size: 9px; color: #bbb; }
.ag-mapa tbody th { text-align: right; padding-right: 8px; font-size: 13px; } .ag-mapa tbody th small { font-size: 9px; color: #bbb; }
.ag-mapa td { border: 1px solid #eee; height: 30px; min-width: 26px; text-align: center; cursor: copy; color: #fff; font-size: 11px; } .ag-mapa td.busy { background: #6e3990; border-color: #fff; }
.ag-mapa td:nth-child(4n+1) { border-right: 1px solid #ccc; }
.ag-res { position: absolute; z-index: 20; background: #fff; border-radius: 8px; box-shadow: 0 6px 20px rgba(0,0,0,.18); width: 360px; padding: 6px; }
.ag-res a { display: flex; gap: 10px; align-items: center; padding: 6px 8px; border-radius: 6px; cursor: pointer; } .ag-res a:hover { background: #f5f2fa; } .ag-res small { display: block; color: #888; font-size: 11px; }
.ag-fl1 { display: grid; grid-template-columns: 1fr 160px; gap: 14px; margin-bottom: 12px; position: relative; } .ag-fl1 .inp { width: 100%; }
.ag-fl2 { display: grid; grid-template-columns: 1fr 180px; gap: 14px; background: #f3f2f6; border-radius: 8px; padding: 14px; }
.ag-pesq { display: grid; grid-template-columns: 160px 1fr; gap: 10px 14px; align-items: center; border: 1px solid var(--line); border-radius: 8px; padding: 14px; }
.ag-pesq > label { text-align: right; color: #666; font-size: 13px; } .ag-ops { display: grid; grid-template-columns: repeat(2, minmax(0, 260px)); gap: 4px 12px; font-size: 13px; }
.ag-relres { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-bottom: 14px; } .ag-relres td, .ag-relres th { padding: 3px 6px; font-size: 13px; }
.ag-reldia { background: #f3f2f6; border-radius: 6px; padding: 8px 12px; margin: 10px 0 6px; } .ag-reldia b { font-size: 18px; margin-right: 6px; } .ag-reldia span { float: right; color: #666; }
.ag-rl { display: flex; gap: 12px; align-items: flex-start; border-bottom: 1px solid var(--line); padding: 8px 4px; font-size: 13px; }
.ag-rchip { font-size: 9px; font-weight: 700; border-radius: 4px; padding: 2px 6px; background: #eee; color: #555; width: 92px; text-align: center; } .ag-rchip.ok { background: #dcf3e2; color: #15803d; } .ag-rchip.at { background: #dbeafe; color: #1d4ed8; } .ag-rchip.bad { background: #fde2e2; color: #b91c1c; } .ag-rchip.warn { background: #fdebd7; color: #b45309; } .ag-rchip.comp { background: #ebe4fb; color: #5b3aa0; }
.ag-rh { width: 50px; } .ag-rh small { display: block; color: #999; } .ag-rc { flex: 1; } .ag-ra { display: flex; gap: 4px; }
.ag-legenda { text-align: center; color: #888; font-size: 11px; margin: 18px 0 6px; line-height: 2; } .ag-legenda span { margin: 0 8px; } .ag-legenda svg { width: 12px; height: 12px; vertical-align: -2px; }
.ag-legenda i { display: inline-block; width: 18px; height: 9px; margin-right: 5px; vertical-align: 0; } .lg-tipo { background: linear-gradient(90deg, #6e3990, #3b8fe0); } .lg-comp { border-left: 3px solid #8b6bd1; } .lg-conv { border: 2px solid #16a34a; }
/* modal do agendamento */
.ag-modal { width: 680px; } .ag-modal header h3:empty + .btn-ic { margin-left: auto; } .ag-modal header { border-bottom: 0; padding-bottom: 0; }
.am-cab { display: flex; align-items: center; gap: 12px; padding: 0 4px 10px; position: relative; } .am-cab > div { flex: 1; } .am-cab b { font-size: 17px; } .am-cab small { display: block; color: #777; font-size: 12px; } .am-cab small svg { width: 12px; height: 12px; vertical-align: -1px; }
.am-cab.busca { gap: 8px; } .am-cab.busca .inp { flex: 1; } .am-cab #am-res { position: absolute; top: 40px; left: 0; }
.am-pres { width: 52px; height: 52px; border-radius: 50%; background: conic-gradient(#22a35a calc(var(--p) * 1%), #e5e7eb 0); display: grid; place-items: center; position: relative; text-align: center; }
.am-pres::before { content: ''; position: absolute; inset: 4px; background: #fff; border-radius: 50%; } .am-pres b { position: relative; font-size: 14px; color: #22a35a; } .am-pres small { position: absolute; bottom: -16px; font-size: 8px; color: #999; }
.am-abas { margin: 6px 0 10px; } .am-abas a svg { width: 14px; height: 14px; }
.am-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .am-box { border: 1px solid var(--line); border-radius: 8px; padding: 8px 10px; } .am-box.c2 { grid-column: span 2; }
.am-box > span { display: block; font-size: 10px; color: #888; letter-spacing: .4px; margin-bottom: 4px; } .am-box .inp { width: 100%; }
.am-procs { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 4px; } .am-procs a { border: 1px solid var(--line); border-radius: 6px; padding: 3px 9px; font-size: 12px; cursor: pointer; color: #444; } .am-procs a:hover { border-color: var(--primary); color: var(--primary); }
.am-cap { display: block; text-align: center; border: 1px dashed var(--primary); border-radius: 6px; padding: 6px; color: var(--primary); cursor: pointer; background: #f8f5fc; }
.am-tog { display: flex; gap: 20px; align-items: center; margin-top: 12px; }
.sw { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; } .sw input { display: none; } .sw i { width: 34px; height: 18px; border-radius: 10px; background: #ccc; position: relative; transition: .15s; }
.sw i::after { content: ''; position: absolute; left: 2px; top: 2px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: .15s; } .sw input:checked + i { background: var(--primary); } .sw input:checked + i::after { left: 18px; }
.am-pais { font-size: 12px; border: 1px solid var(--line); border-radius: 6px; padding: 5px 8px; white-space: nowrap; }
.am-avisar { display: inline-flex; background: #eee; border-radius: 14px; padding: 2px; } .am-avisar a { font-size: 11px; padding: 3px 9px; border-radius: 12px; cursor: pointer; color: #777; } .am-avisar a.on { background: #22a35a; color: #fff; } .am-avisar a[data-v="0"].on { background: #888; }
.am-tags { display: flex; flex-wrap: wrap; gap: 6px; } .am-tags a { border: 1px solid var(--line); border-radius: 6px; padding: 4px 10px; font-size: 12px; cursor: pointer; color: #444; } .am-tags a:hover { border-color: var(--primary); color: var(--primary); }
.btn.warn { color: #c2410c; border-color: #fdba74; background: #fff7ed; }
@media (max-width: 900px) { .ag-painel { grid-template-columns: 1fr; } .ag-lado { border-right: 0; border-bottom: 1px solid var(--line); } .ag-relres { grid-template-columns: 1fr; } .ag-modal { width: 96vw; } }
/* Controle de Retornos (cópia do ControleODONTO) */
.rt-item { display: flex; gap: 16px; align-items: flex-start; padding: 12px 10px; border-bottom: 1px solid var(--line); border-radius: 6px; }
.rt-item:hover { background: #f6f3fb; }
.rt-data { width: 92px; display: grid; grid-template-columns: auto auto; gap: 0 4px; align-items: center; justify-content: end; }
.rt-data b { font-size: 28px; font-weight: 400; color: #555; } .rt-data span { font-size: 9px; color: #888; line-height: 1.1; }
.rt-data i { grid-column: span 2; font-style: normal; font-size: 9px; font-weight: 700; color: #c62828; background: #fde3e3; border-radius: 10px; padding: 1px 6px; justify-self: center; }
.rt-c { flex: 1; } .rt-c small { display: block; font-size: 12px; color: #444; } .rt-c small span { color: #aaa; } .rt-c b { font-size: 17px; } .rt-c > div { font-size: 13px; }
.rt-obs { color: var(--primary); }
.rt-mais { display: inline-flex; align-items: center; gap: 2px; font-size: 13px; cursor: pointer; color: #333; margin-top: 2px; } .rt-mais svg { width: 13px; height: 13px; transition: .15s; } .rt-mais.aberto { color: var(--primary); } .rt-mais.aberto svg { transform: rotate(90deg); }
.rt-info { border-left: 2px dotted #999; margin: 4px 0 0 12px; padding-left: 14px; color: var(--primary); font-size: 13px; }
.rt-acoes { display: flex; gap: 6px; align-items: center; opacity: 0; transition: .1s; } .rt-item:hover .rt-acoes { opacity: 1; } .rt-acoes .btn-ic.bad { color: #d32f2f; }
.pp-lista a { display: flex; gap: 10px; align-items: center; padding: 6px 8px; border-radius: 6px; cursor: pointer; } .pp-lista a:hover { background: #f5f2fa; } .pp-lista small { display: block; color: #888; }
@media (hover: none) { .rt-acoes { opacity: 1; } }
/* Controle de Convênios (cópia do ControleODONTO) */
.cv-cad { display: inline-flex; gap: 0; align-items: center; position: relative; margin: -6px 0 10px; }
.cv-cad > .btn:first-child { border-radius: 6px 0 0 6px; } .cv-cad > #cv-dd { border-radius: 0 6px 6px 0; border-left: 0; padding: 0 6px; } .cv-cad > .btn-ic { margin-left: 6px; }
.cv-menu { position: absolute; top: 34px; left: 0; z-index: 30; background: #fff; border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,.15); padding: 6px; min-width: 260px; }
.cv-menu a { display: block; padding: 6px 10px; border-radius: 4px; cursor: pointer; color: #333; } .cv-menu a:hover { background: #f5f2fa; } .cv-menu .meta { display: block; padding: 6px 10px; font-size: 12px; } .cv-menu svg { width: 12px; height: 12px; }
/* Movimentações (cópia do ControleODONTO) */
.mv-res table { margin-bottom: 10px; } .mv-res th { font-weight: 500; color: #666; font-size: 12px; }
.mv-cards { display: grid; grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 10px; text-align: right; border-bottom: 1px solid var(--line); padding-bottom: 10px; margin-bottom: 10px; }
.mv-cards.c3 { grid-template-columns: repeat(3, minmax(0, 1fr)); background: #fafafa; padding: 10px; border-radius: 8px; }
.mv-cards > div { display: flex; flex-direction: column; gap: 2px; } .mv-cards small { color: #777; font-size: 11px; } .mv-cards > div > b { font-size: 18px; font-weight: 400; }
.mv-cards span { font-size: 11px; color: #666; } .mv-cards em { font-style: normal; display: block; font-size: 12px; } .mv-cards i { font-style: normal; font-size: 10px; color: #999; }
.mv-cards .ok, .mv-contr .ok { color: #4caf50; } .mv-cards .warn { color: #e08a00; } .mv-cards .bad { color: #d32f2f; } .mv-cards .pri, .mv-n .pri, .mv-profs .pri { color: #3b6fd0; }
.mv-contr { display: grid; grid-template-columns: 2fr 1fr; gap: 0; margin-bottom: 10px; border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.mv-profs { padding: 10px 12px; } .mv-profs div { display: flex; border-bottom: 1px solid #eee; padding: 4px 0; } .mv-profs div span { margin-left: auto; } .mv-profs small { color: #888; margin-left: 4px; }
.mv-ticket { background: #fbf7d9; display: flex; flex-direction: column; justify-content: center; align-items: center; } .mv-ticket b { font-size: 20px; color: #3b6fd0; } .mv-ticket small { color: #666; font-size: 12px; }
.mv-exc { text-align: right; font-size: 11px; color: #777; margin-bottom: 8px; } .mv-exc b { color: #d32f2f; }
.mv-graf { position: relative; background: #fafafa; border-radius: 8px; margin-bottom: 10px; }
.mv-grupo { display: flex; gap: 14px; align-items: flex-start; border-bottom: 1px solid var(--line); padding: 10px 4px; }
.mv-dia { width: 54px; text-align: center; } .mv-dia b { display: block; font-size: 17px; border-bottom: 1px solid #ccc; } .mv-dia small { font-size: 10px; color: #888; }
.mv-gc { flex: 1; font-size: 13px; } .mv-gc a { cursor: pointer; color: var(--primary); }
.mv-itens { margin-top: 6px; border-left: 2px dotted #aaa; padding-left: 10px; font-size: 12px; } .mv-itens > div { padding: 2px 0; }
.mv-n { text-align: right; display: flex; flex-direction: column; } .mv-n b { font-size: 17px; font-weight: 400; } .mv-n small { font-size: 11px; color: #777; } .mv-n .bad { color: #d32f2f; }
.mv-radios { display: flex; flex-direction: column; gap: 2px; font-size: 13px; } .mv-msgres { margin-bottom: 8px; }
@media (max-width: 1100px) { .mv-cards { grid-template-columns: repeat(2, 1fr); } .mv-cards.c3, .mv-contr { grid-template-columns: 1fr; } }
.mv-cards.c3 > div > span { display: inline-block; margin-left: 12px; } .mv-cards.c3 > div { display: block; } .mv-cards.c3 > div > small, .mv-cards.c3 > div > b { display: block; }
/* Procedimentos (cópia do ControleODONTO) */
.ag-painel.um { grid-template-columns: 1fr; }
.pr-res { display: flex; justify-content: flex-end; gap: 24px; text-align: right; border-bottom: 1px solid var(--line); padding-bottom: 8px; margin-bottom: 10px; }
.pr-res small { display: block; font-size: 11px; color: #777; } .pr-res b { font-size: 18px; font-weight: 400; } .pr-res .pri { color: #3b6fd0; }
.pr-bar { display: flex; flex-wrap: wrap; gap: 2px; border: 1px solid var(--line); border-bottom: 0; border-radius: 6px 6px 0 0; padding: 4px; background: #fafafa; } .pr-bar .btn-ic svg { width: 14px; height: 14px; }
.pr-ed { min-height: 130px; border: 1px solid var(--line); border-radius: 0 0 6px 6px; padding: 8px 10px; background: #fff; outline: none; } .pr-ed:focus { border-color: var(--primary); }
/* Consultar Remunerações (cópia do ControleODONTO) */
.rm-regra { font-size: 12px; margin-bottom: 8px; } .rm-regra .bad { color: #d32f2f; }
.rm-mes { font-weight: 400; color: var(--primary); margin: 14px 0 6px; } .rm-total { text-align: right; margin-top: 10px; font-size: 15px; }
.ag-mcab h2 .ag-av { vertical-align: middle; margin-right: 4px; } .ag-mcab h2 small { font-size: 11px; }
.rm-leao { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; }
.rm-lh { display: flex; align-items: center; gap: 8px; padding: 10px 12px; border-bottom: 1px solid var(--line); cursor: pointer; color: #555; font-weight: 600; font-size: 13px; background: #fafafa; }
.rm-lh small { font-weight: 400; color: #777; } .rm-lh span { margin-left: auto; font-weight: 400; } .rm-lh.on, .rm-lh:hover { color: #3b8fe0; }
.rm-li > div { display: grid; grid-template-columns: 100px 1fr 140px 120px; gap: 10px; padding: 6px 14px; border-bottom: 1px solid #f0f0f0; font-size: 13px; } .rm-li b { text-align: right; font-weight: 500; }
/* Gestão da Excelência (cópia do ControleODONTO) */
.ex-sub { font-weight: 400; margin: 6px 0 8px; } .ex-est { color: #f5b301; letter-spacing: 1px; }
.ex-kpis { display: grid; grid-template-columns: repeat(4, 1fr); text-align: center; margin: 10px 0 18px; }
.ex-kpis > div { padding: 10px; border-right: 1px solid var(--line); } .ex-kpis > div:last-child { border-right: 0; } .ex-kpis .dest { background: #eef0f4; border-radius: 6px; }
.ex-kpis b { display: block; } .ex-kpis span { display: block; font-size: 26px; font-weight: 700; } .ex-kpis small { color: #777; }
.ex-kpis .ok { color: #3aa856; } .ex-kpis .warn { color: #e08a00; } .ex-kpis .bad { color: #d32f2f; } .ex-kpis .cinza { color: #bbb; }
.ex-barras { display: flex; gap: 30px; align-items: flex-end; justify-content: center; min-height: 220px; border-bottom: 1px solid var(--line); padding: 10px; }
.ex-barras > div { display: flex; flex-direction: column; align-items: center; gap: 6px; width: 140px; } .ex-bv { width: 100%; background: #7dff7d; display: flex; align-items: flex-start; justify-content: center; font-weight: 700; color: #2b6b2b; min-height: 18px; }
.ex-nps { display: flex; align-items: center; justify-content: center; gap: 40px; flex-wrap: wrap; } .ex-leg div { display: flex; align-items: center; gap: 8px; font-size: 13px; margin: 6px 0; } .ex-leg i { width: 14px; height: 14px; border-radius: 3px; }
/* Compras e Estoque (cópia do ControleODONTO) */
.es-linha { display: flex; align-items: flex-start; gap: 10px; padding: 10px 8px; border-bottom: 1px solid var(--line); border-radius: 6px; }
.es-linha:hover { background: #f6f3fb; } .es-linha .es-c { flex: 1; min-width: 0; } .es-nome { font-size: 16px; cursor: pointer; color: #222; } .es-nome:hover { color: var(--primary); }
.es-un { width: 50px; text-align: center; font-size: 12px; color: #555; padding-top: 4px; }
.es-acoes { display: flex; gap: 6px; align-items: center; opacity: 0; transition: .1s; } .es-linha:hover .es-acoes, .es-compra:hover .es-acoes, .es-kit:hover .es-acoes { opacity: 1; } .es-acoes .bad { color: #d32f2f; }
.es-exp svg { transition: .15s; } .es-exp.aberto svg { transform: rotate(90deg); }
.es-doc { text-align: center; background: #f3f2f6; border-radius: 8px; padding: 16px; } .es-doc p { margin: 0 0 8px; color: #555; }
.es-fpainel { box-shadow: none; border: 1px solid var(--line); margin-top: 10px; }
.es-ficha { width: 100%; border: 1px solid var(--line); border-radius: 8px; border-collapse: separate; border-spacing: 0; } .es-ficha th { width: 180px; text-align: right; font-weight: 400; color: #666; font-size: 13px; padding: 10px 14px; border-bottom: 1px solid #f0f0f0; } .es-ficha td { padding: 10px 14px; border-bottom: 1px solid #f0f0f0; }
.es-dia { display: flex; align-items: center; gap: 4px; width: 80px; } .es-dia b { font-size: 26px; font-weight: 400; color: #555; } .es-dia span { font-size: 9px; color: #888; line-height: 1.1; }
.es-mov { display: flex; gap: 12px; align-items: flex-start; padding: 10px 6px; border-bottom: 1px solid var(--line); } .es-mov .es-c { flex: 1; } .es-mov > b { font-size: 17px; font-weight: 400; color: #3b6fd0; } .es-mov > b.meta { color: #aaa; text-decoration: line-through; }
.es-compra { display: flex; gap: 12px; align-items: flex-start; padding: 12px 8px; border-bottom: 1px solid var(--line); border-radius: 6px; } .es-compra:hover { background: #f6f3fb; } .es-compra .es-c { flex: 1; min-width: 0; } .es-compra.cancel { opacity: .55; }
.es-sit { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 9px; font-weight: 700; letter-spacing: .5px; border-radius: 4px; padding: 6px 3px; background: #eee; color: #555; } .es-sit.ok { background: #dcf3e2; color: #15803d; } .es-sit.bad { background: #fde2e2; color: #b91c1c; } .es-sit.warn { background: #fdebd7; color: #b45309; } .es-sit.info { background: #dbeafe; color: #1d4ed8; }
.es-sit.inline { writing-mode: initial; transform: none; padding: 2px 8px; margin-left: 6px; vertical-align: middle; }
.es-val { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 4px; } .es-val > b { font-size: 18px; font-weight: 400; color: #3b6fd0; } .es-val small { color: #aaa; font-size: 10px; }
.es-rsit { font-size: 11px; } .es-rsit.bad { color: #d32f2f; } .es-rsit.ok { color: #15803d; } .es-rsit.warn { color: #b45309; } .es-rsit.info { color: #1d4ed8; }
.es-kit { position: relative; border-bottom: 1px solid var(--line); padding: 10px 12px; } .es-kt { font-size: 17px; color: #3b6fd0; cursor: pointer; } .es-kitens { border-left: 2px solid #333; margin: 6px 0 0 4px; padding-left: 14px; font-size: 13px; } .es-kitens svg { width: 12px; height: 12px; color: #aaa; } .es-kit .es-acoes { position: absolute; right: 10px; top: 10px; }
.es-cont { display: flex; flex-wrap: wrap; gap: 8px; justify-content: center; margin: 10px 0; } .es-cont a { border: 1px solid var(--line); border-left: 3px solid #3b8fe0; border-radius: 6px; padding: 6px 12px; font-size: 12px; color: #555; cursor: pointer; background: #fff; }
.es-cont a b { font-size: 20px; color: #3b8fe0; margin-right: 4px; } .es-cont a.red { border-left-color: #d32f2f; } .es-cont a.red b { color: #d32f2f; } .es-cont a.on { background: #f1edf8; outline: 2px solid var(--primary); }
.es-venc td { color: #d32f2f; }
.es-h3 { margin: 18px 0 8px; font-weight: 500; color: var(--primary); } .es-cdados { background: #fafafa; border-radius: 8px; padding: 10px; margin-top: 10px; }
.es-totc { text-align: right; margin-top: 6px; font-size: 14px; }
.es-parc { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; margin-top: 8px; font-size: 13px; } .es-parc label { color: #666; }
.es-cacoes { display: flex; gap: 10px; justify-content: flex-end; margin: 18px 0 10px; border-top: 1px solid var(--line); padding-top: 12px; }
.lb-filtro { display: flex; flex-direction: column; gap: 4px; width: 200px; margin-bottom: 10px; } .lb-filtro label { font-size: 12px; font-weight: 600; }
.lb-card { border: 1px solid var(--line); border-radius: 8px; padding: 10px; margin-bottom: 8px; background: #fff; } .lb-top { display: flex; justify-content: space-between; margin-bottom: 4px; } .lb-card svg { width: 12px; height: 12px; vertical-align: -1px; }
.lb-prev { color: #d32f2f; font-size: 12px; margin-top: 4px; } .lb-sem { color: #d32f2f; font-size: 12px; margin-top: 4px; } .lb-acoes { display: flex; gap: 6px; justify-content: flex-end; margin-top: 6px; }

/* ---------- Gestão Financeira (EV-047) ---------- */
.fn-abas { margin-bottom: 0; } .fn-painel { background: #fff; border-radius: 0 10px 10px 10px; padding: 14px 16px; box-shadow: 0 1px 3px rgba(30,10,60,.06); }
.fn-painel.fn-max, .ag-painel.fn-max { position: fixed; inset: 8px; z-index: 55; overflow: auto; }
.ag-painel.fn-umacol { grid-template-columns: 1fr; }
.fn-lado a div { line-height: 1.2; } .fn-lado a small { font-size: 10px; text-transform: none; color: #888; } .fn-lado .fn-ltot { color: var(--primary); font-size: 12px; text-align: right; font-weight: 600; }
.fn-lado a small.ok { color: var(--ok); text-transform: uppercase; } .fn-lado a i.info { background: #e3f6ec; color: var(--ok); } .fn-lado a .ok { color: var(--ok); } .fn-lado a .bad { color: var(--bad); }
.fn-seg { display: inline-flex; background: #f0edf5; border-radius: 18px; padding: 3px; gap: 2px; flex-wrap: wrap; } .fn-seg a { padding: 4px 12px; border-radius: 14px; cursor: pointer; color: #666; font-size: 12px; display: inline-flex; gap: 5px; align-items: center; } .fn-seg a svg { width: 14px; height: 14px; }
.fn-seg a.on { background: var(--primary); color: #fff; font-weight: 600; } .fn-seg.sm a { padding: 2px 10px; font-size: 11px; }
.fn-barra { display: flex; justify-content: space-between; align-items: center; gap: 10px; margin-bottom: 8px; flex-wrap: wrap; }
.fn-grupos { background: #f7f6fa; border-radius: 8px; padding: 8px 12px; margin-bottom: 10px; } .fn-grupos h4 { margin: 0 0 6px; color: var(--primary); font-weight: 500; font-size: 15px; }
.fn-g { display: flex; justify-content: space-between; align-items: center; gap: 10px; padding: 4px 0; border-bottom: 1px solid #eee; font-size: 13px; } .fn-g small { color: #999; } .fn-g input { vertical-align: middle; }
.fn-tot { display: flex; justify-content: space-between; align-items: center; padding: 8px 0 2px; } .fn-totv { color: var(--primary); font-size: 20px; font-weight: 500; } .fn-tar { color: var(--primary); }
.fn-graf { margin: 8px 0 12px; } .fn-graf h4, .fn-card h4.c, .fn-card h5.c { text-align: center; font-weight: 400; margin: 4px 0 6px; font-size: 16px; } .fn-card h4.c small, .fn-card h5.c small { display: block; font-size: 11px; color: #888; }
.fn-svg { display: block; max-height: 320px; } .fn-leg { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; font-size: 12px; color: #444; margin-top: 4px; } .fn-leg i { display: inline-block; width: 10px; height: 10px; border-radius: 50%; margin-right: 5px; } .fn-leg.col { flex-direction: column; gap: 4px; align-items: flex-start; }
.fn-rosca { display: flex; align-items: center; justify-content: center; gap: 24px; flex-wrap: wrap; }
.fn-linha { display: flex; gap: 10px; align-items: flex-start; padding: 8px 6px; border-bottom: 1px solid var(--line); border-radius: 6px; position: relative; } .fn-linha:hover, .fn-linha.sel { background: #f6f3fb; }
.fn-dcol { width: 84px; flex: none; display: flex; flex-direction: column; gap: 3px; align-items: flex-start; } .fn-dcol .chip { font-size: 9px; height: 16px; }
.fn-dia { display: flex; align-items: center; gap: 4px; } .fn-dia b { font-size: 26px; font-weight: 400; color: #555; line-height: 1; } .fn-dia span { font-size: 9px; color: #888; line-height: 1.1; } .fn-dia .chip { margin-left: 4px; }
.fn-c { flex: 1; min-width: 0; font-size: 13px; color: #333; } .fn-nome { font-size: 16px; cursor: pointer; color: var(--primary); } .fn-tipo { color: #aaa; font-size: 11px; } .fn-c .chip { height: 17px; font-size: 9px; margin-left: 3px; }
.fn-v { text-align: right; min-width: 110px; display: flex; flex-direction: column; align-items: flex-end; } .fn-v span { font-size: 17px; color: #222; } .fn-v span.ok { color: var(--ok); } .fn-v span.bad { color: var(--bad); } .fn-v small { font-size: 11px; color: #888; } .fn-v .fn-mj { color: var(--ok); }
.fn-acoes { position: absolute; right: 8px; top: 6px; display: flex; gap: 4px; opacity: 0; transition: .1s; background: #fff; border-radius: 16px; padding: 2px 4px; box-shadow: 0 1px 4px rgba(0,0,0,.1); } .fn-linha:hover .fn-acoes { opacity: 1; }
.fn-obs { color: var(--info); font-size: 12px; margin-top: 4px; } .fn-neg { color: var(--bad); } .fn-pos { color: var(--ok); }
.fn-dgrupo { border-bottom: 1px solid var(--line); } .fn-dlin { display: flex; align-items: center; gap: 14px; padding: 8px 6px; } .fn-dlin > b { margin-left: auto; font-size: 17px; font-weight: 500; color: var(--primary); } .fn-desp div { font-size: 13px; } .fn-mais { background: var(--primary); color: #fff; border-radius: 6px; }
.fn-dits { padding-left: 20px; }
.fn-selbar { position: sticky; bottom: 0; background: var(--primary); color: #fff; padding: 8px 14px; border-radius: 10px; display: flex; gap: 12px; align-items: center; justify-content: flex-end; margin-top: 8px; } .fn-selbar .btn { background: #fff; color: var(--primary); }
.fn-menu { position: fixed; z-index: 80; background: #fff; border-radius: 10px; box-shadow: 0 6px 22px rgba(0,0,0,.18); padding: 8px; min-width: 210px; }
.fn-menu a { display: flex; gap: 10px; align-items: center; padding: 6px 10px; border-radius: 6px; cursor: pointer; color: #333; font-size: 13px; } .fn-menu a:hover { background: #f5f2fa; } .fn-menu a svg { width: 15px; height: 15px; }
.fn-menu a.pri { color: var(--primary); } .fn-menu a.bad { color: var(--bad); } .fn-menu a.off { opacity: .45; } .fn-menu hr { border: 0; border-top: 1px solid var(--line); margin: 4px 0; }
.fn-mabas { margin: 8px 0 10px; } .fn-mcab { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; border-bottom: 1px solid var(--line); padding-bottom: 6px; margin-bottom: 8px; } .fn-mcab b { font-size: 18px; color: var(--primary); font-weight: 500; } .fn-mcab span b { font-size: 18px; }
.fn-h3 { margin: 0 0 8px; font-weight: 400; color: var(--primary); font-size: 20px; }
.fn-quadro { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; background: #f2f1f5; border-radius: 8px; padding: 12px; margin-top: 10px; } .fn-qv > div { display: flex; justify-content: space-between; align-items: center; padding: 4px 0; } .fn-qv b { font-size: 14px; } .fn-saldo { color: var(--primary); font-size: 17px !important; } .fn-saldo.neg { color: var(--bad); }
.fn-ctit { display: flex; gap: 12px; align-items: center; padding: 8px; border-bottom: 1px solid var(--line); }
.fn-rep { margin-top: 6px; } .fn-erro { color: var(--bad); font-size: 11px; display: block; } .inp.erro { border-color: var(--bad); }
.fn-repbox { display: flex; gap: 12px; align-items: flex-end; background: #f2f1f5; border-radius: 8px; padding: 12px; flex-wrap: wrap; }
.fn-chq td { padding: 4px; } .fn-chrod { display: flex; gap: 14px; align-items: flex-end; background: #f2f1f5; border-radius: 8px; padding: 10px; margin-top: 10px; } .fn-chrod > div { display: flex; flex-direction: column; } .fn-chrod b { font-size: 18px; color: var(--primary); }
.fn-boleto { background: #f2f1f5; border-radius: 8px; padding: 10px; text-align: center; } .fn-boleto .ok { color: var(--ok); }
.fn-nftot td, .fn-nftot th { text-align: center; }
.fn-pesq { display: grid; grid-template-columns: 170px 1fr; gap: 10px 14px; align-items: center; border: 1px solid var(--line); border-radius: 10px; padding: 14px; } .fn-pesq > label { text-align: right; color: #555; } .fn-pesq > label small { display: block; font-size: 10px; color: #999; }
.fn-box { background: #f2f1f5; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; } .fn-box h5 { margin: 0 0 8px; color: #888; font-size: 11px; letter-spacing: .5px; } .fn-box .fn-pesq { border: 0; padding: 0; } .fn-box hr { border: 0; border-top: 1px solid #ddd; margin: 10px 0; }
.fn-ocorr { text-align: center; color: var(--primary); font-weight: 400; font-size: 20px; }
.fn-card { background: #f7f6fa; border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; } .fn-card h4 { margin: 0 0 8px; font-weight: 400; font-size: 18px; } .fn-card h4 small { font-size: 11px; color: #999; }
.fn-cartoes { display: grid; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); gap: 12px; margin: 10px 0; } .fn-cartoes.tres { grid-template-columns: repeat(3, 1fr); }
.fn-cartao { background: #fff; border-radius: 10px; padding: 14px; text-align: center; box-shadow: 0 1px 4px rgba(30,10,60,.08); display: flex; flex-direction: column; gap: 3px; border: 1px solid transparent; } .fn-cartao > b { font-size: 21px; font-weight: 400; color: #2b6cb9; } .fn-cartao span { color: #555; font-size: 13px; } .fn-cartao small { font-size: 10px; font-weight: 600; color: #2b6cb9; }
.fn-cartao.bok { border-color: #8fd19e; } .fn-cartao.bbad { border-color: #f3a39c; } .fn-cartao.sel { border-color: #2b6cb9; background: #eef4fc; } .fn-cartao b.ok { color: var(--ok); } .fn-cartao b.bad { color: var(--bad); } .fn-cartao b.warn { color: var(--warn); }
.fn-duas { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .fn-tres { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; } .fn-quatro { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
.fn-proj { text-align: center; padding: 40px 0; } .fn-proj b { display: block; font-size: 34px; font-weight: 400; color: #2b6cb9; } .fn-proj small { color: #2b6cb9; font-weight: 600; }
.fn-alertas { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; } .fn-alerta { padding: 6px 10px; border-radius: 6px; font-size: 12px; border: 1px solid; } .fn-alerta.bad { color: var(--bad); background: var(--bad-soft); border-color: #f5c2c2; } .fn-alerta.warn { color: var(--warn); background: var(--warn-soft); border-color: #f5d9a8; }
.fn-filtros { display: flex; gap: 8px; flex-wrap: wrap; } .fn-filtros select { width: 170px; } .fn-filtros2 { display: flex; gap: 12px; align-items: flex-end; flex-wrap: wrap; } .fn-filtros2 span { display: flex; flex-direction: column; gap: 3px; } .fn-sp { flex: 1; }
.fn-per { display: inline-flex; gap: 4px; align-items: center; } .fn-per select { width: 170px; } .fn-perd { display: inline-flex; gap: 4px; }
.fn-cmpcab { display: flex; align-items: center; gap: 14px; margin-bottom: 8px; } .fn-cmpcab h3 { margin: 0; font-weight: 400; font-size: 20px; } .fn-cmpcab select { width: 180px; }
.fn-metabox { display: flex; align-items: center; gap: 14px; } .fn-metabox select { width: 200px; }
.fn-metabar { display: flex; gap: 10px; align-items: center; margin-top: 8px; } .fn-metabar small { text-align: right; font-size: 10px; color: #555; width: 70px; } .fn-mb { flex: 1; height: 26px; background: #f5d0c3; position: relative; border-radius: 3px; }
.fn-mbr { height: 100%; background: #e0663a; border-radius: 3px; color: #fff; font-size: 11px; display: flex; justify-content: flex-end; align-items: center; padding-right: 6px; } .fn-mb i { position: absolute; top: -8px; bottom: -8px; border-left: 2px dashed #e0663a; } .fn-mb i b { position: absolute; left: 3px; top: 0; font-size: 9px; color: #e0663a; writing-mode: vertical-lr; font-style: normal; }
.fn-diasx { display: flex; justify-content: space-between; margin-left: 80px; font-size: 10px; color: #888; }
.fn-resumo { background: #fff; border-radius: 8px; padding: 8px 10px; } .fn-resumo h5 { margin: 0 0 6px; color: #999; font-size: 13px; font-weight: 500; }
.fn-acum { position: relative; height: 0; }
.fn-apagado td { color: #aaa; }
.fn-mesbox { border: 1px solid var(--line); border-radius: 8px; margin-bottom: 8px; background: #fff; } .fn-mescab { display: flex; align-items: center; gap: 8px; padding: 8px 12px; cursor: pointer; color: #333; } .fn-mescab b { font-weight: 600; } .fn-mesits { padding: 0 10px 8px; }
.fn-mesres { display: grid; grid-template-columns: auto 1fr 1fr 1fr 1fr; gap: 10px; align-items: center; padding: 8px 12px; background: #f7f6fa; } .fn-mesres div { display: flex; flex-direction: column; } .fn-mesres .r { text-align: right; align-items: flex-end; } .fn-mesres b { font-size: 18px; font-weight: 500; } .fn-mesres small { font-size: 10px; color: #888; }
.fn-mesmsg { display: flex; gap: 10px; align-items: center; justify-content: space-between; padding: 6px 12px; font-size: 12px; } .fn-sec { display: block; color: #999; margin: 10px 0 4px; font-size: 11px; }
.fn-cdia { border-top: 1px solid var(--line); padding: 4px 10px; } .fn-cdcab { display: flex; gap: 12px; align-items: center; } .fn-cesp { flex: 1; font-size: 12px; } .fn-cesp div { display: flex; justify-content: space-between; max-width: 520px; } .fn-csal { display: flex; flex-direction: column; align-items: flex-end; font-size: 11px; } .fn-csal b { font-size: 14px; }
.fn-ctr { display: flex; gap: 8px; align-items: center; border-bottom: 1px dotted #ddd; padding: 6px 0 6px 20px; } .fn-grip { color: #bbb; cursor: grab; }
.fn-botoes { display: flex; gap: 0; margin-top: 12px; } .fn-botoes .btn { border-radius: 0; } .fn-botoes .btn:first-child { border-radius: 8px 0 0 8px; } .fn-botoes .btn:last-child { border-radius: 0 8px 8px 0; }
.fn-fltop { display: grid; grid-template-columns: 1fr 1fr 1fr; text-align: center; border-bottom: 1px solid var(--line); padding-bottom: 8px; } .fn-fltop div { display: flex; flex-direction: column; } .fn-fltop div:last-child { text-align: right; align-items: flex-end; } .fn-fltop b { font-size: 20px; font-weight: 400; } .fn-fltop small { font-size: 11px; color: #888; }
.fn-fluxo td { vertical-align: middle; } .ok { color: var(--ok); } .bad { color: var(--bad); } .warn { color: var(--warn); } .pri { color: var(--primary); } .c { text-align: center; }
.fn-liq { border: 1px solid #999; border-radius: 10px; padding: 12px; margin-bottom: 14px; } .fn-liq.vermelho { border-color: var(--bad); } .fn-liq.amarelo { border-color: #f2a33a; } .fn-liq.verde { border-color: var(--ok); }
.fn-liq .btn.bad { background: var(--bad); color: #fff; } .fn-liq .btn.warn { background: #f2a33a; color: #222; } .fn-liq .btn.ok { background: var(--ok); color: #fff; }
.fn-liqres { background: #fff; border-radius: 10px; padding: 12px 16px; width: 360px; max-width: 100%; margin: 10px auto; box-shadow: 0 1px 4px rgba(0,0,0,.08); text-align: center; } .fn-liqres > small { display: block; color: #777; } .fn-liqres > b { font-size: 20px; font-weight: 400; display: block; margin-bottom: 6px; }
.fn-troco { display: flex; justify-content: space-between; align-items: center; background: #f2f1f5; border-radius: 8px; padding: 10px 14px; margin-bottom: 8px; }
.fn-n { text-align: right; color: #666; padding: 8px 0; } .fn-blocos { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; } .fn-bloco { background: #fff; border: 1px solid var(--line); }
.fn-dsep { background: #f2f1f5; text-align: center; padding: 6px; font-weight: 600; margin-top: 8px; } .fn-mini { font-size: 11px; } .fn-mini span { display: inline-block; width: 90px; text-align: right; margin-right: 4px; }
.fn-mov { padding: 8px 0; border-bottom: 1px solid var(--line); } .fn-mov .btn.off { opacity: .6; } .fn-chnum { writing-mode: vertical-lr; transform: rotate(180deg); background: #e8f7ee; color: var(--ok); font-size: 10px; padding: 4px 2px; border-radius: 4px; min-height: 50px; }
.fn-big { font-size: 22px; font-weight: 400; } .fn-bocab { display: flex; flex-direction: column; gap: 8px; }
.fn-piv { display: flex; flex-direction: column; gap: 6px; background: #f2f1f5; border-radius: 8px; padding: 10px; margin-bottom: 10px; } .fn-pivl { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; } .fn-pivl select { width: 180px; }
.fn-zona { display: flex; gap: 6px; align-items: center; min-height: 30px; border: 1px dashed #ccc; border-radius: 6px; padding: 3px 6px; flex-wrap: wrap; } .fn-zona small { color: #888; font-size: 10px; }
.fn-chip { background: #fff; border: 1px solid #ddd; border-radius: 12px; padding: 2px 10px; font-size: 12px; cursor: grab; } .fn-chip.fixo { cursor: default; color: #888; }
.fn-pivt { overflow: auto; max-height: 70vh; } .fn-pivtab th, .fn-pivtab td { white-space: nowrap; font-size: 12px; padding: 4px 8px; border: 1px solid #e3e0ea; } .fn-pivtab thead th { background: #eef0f6; } .fn-pivtab th.fn-pl { background: #f7f8fb; font-weight: 400; text-align: left; } .fn-pivtab td { position: relative; } .fn-pb { position: absolute; left: 0; top: 2px; bottom: 2px; opacity: .5; }
.fn-sub { background: #f2f1f5; font-weight: 600; padding: 6px 10px; } .fn-final { font-size: 18px; padding: 10px; } .fn-exl { padding-left: 24px; }
.fn-av { display: inline-flex; width: 34px; height: 34px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); align-items: center; justify-content: center; font-size: 13px; vertical-align: middle; }
.fn-elgrid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 8px; font-size: 12px; }
.fn-expl { display: flex; align-items: center; justify-content: center; gap: 10px; font-size: 18px; padding: 10px 0; flex-wrap: wrap; } .fn-expl span { display: flex; flex-direction: column; padding: 8px 14px; border-radius: 6px; color: #fff; } .fn-expl span b { font-size: 18px; } .fn-expl span small { font-size: 10px; }
.fn-expl .laranja { background: #d9822b; } .fn-expl .cinza { background: #e5e5e5; color: #333; } .fn-expl .azul { background: #1958a8; } .fn-expl span:not([class]) { background: #6e3990; }
.fn-analise li { margin: 6px 0; line-height: 1.5; } .fn-ops { display: flex; gap: 16px; }
@media (max-width: 900px) { .fn-duas, .fn-tres, .fn-quatro, .fn-cartoes.tres { grid-template-columns: 1fr; } .fn-pesq { grid-template-columns: 1fr; } .fn-pesq > label { text-align: left; } .fn-acoes { opacity: 1; position: static; } .fn-quadro { grid-template-columns: 1fr; } }

/* ---------- Menu da direita retrátil (botão no topo do menu; fica só com os ícones) ---------- */
#menu, #header, #main { transition: width .18s, right .18s, margin .18s; }
.menu-marca { position: relative; }
.menu-tg { position: absolute; top: 6px; left: 6px; z-index: 2; width: 30px; height: 30px; border: 0; border-radius: 8px; background: rgba(255,255,255,.1); color: #fff; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: .75; }
.menu-tg:hover { opacity: 1; background: rgba(255,255,255,.2); }
.menu-tg svg { width: 17px; height: 17px; }
html.menu-min { --menu-w: 64px; }
html.menu-min .menu-marca { height: 46px; }
html.menu-min .menu-marca img { display: none; }
html.menu-min .menu-tg { position: static; }
html.menu-min .menu-secoes { flex-direction: column; align-items: center; }
html.menu-min .menu-titulo, html.menu-min .menu-rodape, html.menu-min .menu-sep, html.menu-min #menu li a span { display: none; }
html.menu-min #menu ul { padding: 8px 0 0; }
html.menu-min #menu li a { justify-content: center; padding: 0; margin: 2px 8px; border-radius: 8px; }
html.menu-min #menu li a svg { width: 18px; height: 18px; }
/* trilho de atalhos (esquerda) retrátil */
#rail { transition: transform .18s; }
.rail-tg { color: var(--rail-icon); }
.rail-tg:hover { color: var(--primary); }
html.rail-min { --rail-w: 0px; }
html.rail-min #rail { transform: translateX(-100%); visibility: hidden; }

/* ---------- Login (tela cheia por cima da aplicação), primeiro acesso e menu do usuário ---------- */
.login-fundo { position: fixed; inset: 0; z-index: 1000; display: flex; align-items: center; justify-content: center; padding: 16px; background: radial-gradient(circle at 20% 10%, #8a4bb5 0, #6e3990 40%, #3b1d52 100%); overflow-y: auto; }
.login-cartao { width: 100%; max-width: 400px; background: var(--surface); border-radius: 16px; padding: 28px 28px 24px; box-shadow: 0 24px 60px rgba(30,10,60,.35); display: flex; flex-direction: column; gap: 12px; }
.login-cartao h1 { margin: 4px 0 0; font-size: 20px; font-weight: 600; color: var(--primary); }
.login-cartao > .meta { margin: 0; color: var(--muted); }
.login-logo { width: 120px; height: 72px; object-fit: cover; align-self: center; }
.login-campo { display: flex; flex-direction: column; gap: 4px; }
.login-campo span { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.login-campo input { height: 40px; border: 1px solid var(--line-strong); border-radius: 8px; padding: 0 12px; outline: 0; background: #fff; font-size: 14px; }
.login-campo input:focus { border-color: var(--primary); box-shadow: 0 0 0 3px rgba(110,57,144,.14); }
.login-btn { height: 42px; justify-content: center; font-size: 14px; }
.login-msg { color: var(--bad); min-height: 18px; font-weight: 500; }
.login-form-janela { display: flex; flex-direction: column; gap: 12px; min-width: 320px; }
html.sem-sessao #main, html.sem-sessao #menu, html.sem-sessao #rail, html.sem-sessao #header { visibility: hidden; }
.usuario { position: relative; }
.usuario-menu { position: absolute; top: 44px; right: 0; min-width: 220px; background: #fff; border-radius: 10px; box-shadow: 0 10px 30px rgba(30,10,60,.18); padding: 6px; z-index: 60; display: flex; flex-direction: column; }
.usuario-menu .um-cab { padding: 8px 10px; border-bottom: 1px solid var(--line); margin-bottom: 4px; display: flex; flex-direction: column; }
.usuario-menu a { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 6px; color: var(--text); cursor: pointer; }
.usuario-menu a:hover { background: var(--primary-soft); color: var(--primary); }

/* Janelas (modais) nunca passam da altura da tela: título e botões fixos, o miolo rola por dentro */
@media screen {
  .janela { max-height: calc(100vh - 80px); }
  .janela > header, .janela > footer { flex: none; }
  .janela > .corpo { flex: 1 1 auto; min-height: 0; overflow: auto; }
}

/* ---------- Orçamentos do paciente (aba do atendimento/prontuário): uma linha por orçamento, como no CO ---------- */
.orl-cab { display: flex; align-items: center; border-bottom: 1px solid var(--line-strong); padding-bottom: 12px; margin-bottom: 4px; }
.orl-cab h2 { margin: 0; font-size: 24px; font-weight: 400; } .orl-ferr { margin-left: auto; display: flex; gap: 4px; }
.orl { display: grid; grid-template-columns: 36px 90px 1fr auto; gap: 18px; padding: 14px 4px; border-bottom: 1px solid var(--line); }
.orl:last-child { border-bottom: 0; }
.orl-sit { border-radius: 6px; border: 1px solid; display: flex; align-items: center; justify-content: center; min-height: 120px; }
.orl-sit span { writing-mode: vertical-rl; transform: rotate(180deg); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.orl-sit.ok { background: var(--ok-soft); color: var(--ok); border-color: #b9e5c9; } .orl-sit.warn { background: var(--warn-soft); color: var(--warn); border-color: #f2d6a8; }
.orl-sit.bad { background: var(--bad-soft); color: var(--bad); border-color: #f3c1c1; }
.orl-data { display: flex; gap: 6px; align-items: flex-start; color: #444; } .orl-data b { font-size: 34px; font-weight: 600; line-height: 1; }
.orl-data span { font-size: 11px; line-height: 1.25; text-transform: uppercase; color: #777; padding-top: 3px; }
.orl-c { display: flex; flex-direction: column; gap: 2px; font-size: 14px; min-width: 0; }
.orl-prof { font-size: 19px; font-weight: 600; color: var(--text-strong); }
.orl-contrato { display: inline-block; background: #5f6270; color: #fff; border-radius: 12px; padding: 2px 12px; font-size: 11px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.orl-quando { font-size: 11px; color: #999; } .orl-tit { font-size: 11px; text-transform: uppercase; color: #444; margin-top: 2px; }
.orl-obs { color: #1f63b5; }
.orl-det summary { cursor: pointer; list-style: none; padding: 3px 0; } .orl-det summary::-webkit-details-marker { display: none; }
.orl-det summary::before { content: '›'; display: inline-block; width: 14px; font-weight: 700; transition: transform .15s; } .orl-det[open] summary::before { transform: rotate(90deg); }
.orl-item { display: flex; gap: 12px; padding: 2px 0 2px 14px; font-size: 13px; border-left: 2px dotted #bbb; margin-left: 4px; } .orl-item b { margin-left: auto; font-weight: 500; } .orl-item i { color: #777; font-style: normal; }
.orl-dir { display: flex; flex-direction: column; align-items: flex-end; justify-content: space-between; gap: 8px; }
.orl-valor { font-size: 22px; font-weight: 600; white-space: nowrap; padding-top: 30px; } .orl-valor small { font-size: 12px; font-weight: 400; color: #555; }
.orl-acoes { display: flex; gap: 4px; opacity: 0; transition: opacity .15s; } .orl:hover .orl-acoes { opacity: 1; }
@media (max-width: 900px) { .orl { grid-template-columns: 28px 70px 1fr; } .orl-dir { grid-column: 3; align-items: flex-start; } .orl-valor { padding-top: 0; } .orl-acoes { opacity: 1; } }
/* janela maximizada: ocupa a tela toda abaixo do cabeçalho (botão ⤢ na barra da janela) */
.tp-folha.max { top: var(--header-h); left: 0; right: 0; bottom: 0; border-radius: 0; }
.tp-folha.max > header { border-radius: 0; }

/* ---------- Tratamento do atendimento: uma linha por procedimento, como no CO ---------- */
.trl-lista { display: flex; flex-direction: column; gap: 6px; margin: 8px 0 12px; }
.trl { display: grid; grid-template-columns: 90px 1fr auto; gap: 16px; align-items: center; padding: 12px 14px; border: 1px solid var(--line); border-left: 3px solid var(--line-strong); border-radius: 8px; background: #fff; }
.trl:hover, .trl.sel { background: #f6f3fa; border-left-color: var(--primary); }
.trl.feito { border-left-color: var(--ok); }
.trl-data { display: flex; gap: 6px; align-items: flex-start; color: #444; } .trl-data b { font-size: 30px; font-weight: 600; line-height: 1; }
.trl-data span { font-size: 11px; line-height: 1.25; text-transform: uppercase; color: #777; padding-top: 2px; }
.trl-c { min-width: 0; }
.trl-nome { display: inline-flex; align-items: center; gap: 8px; cursor: pointer; } .trl-nome input { width: 16px; height: 16px; margin: 0; accent-color: var(--primary); }
.trl-nome span { font-size: 18px; color: var(--primary); }
.trl.feito .trl-nome span { color: var(--muted); text-decoration: line-through; }
.trl-sit { display: inline-block; margin-left: 10px; padding: 3px 12px; border-radius: 12px; background: #eef0f3; color: #555; font-size: 11px; font-weight: 600; letter-spacing: .04em; text-transform: uppercase; vertical-align: middle; }
.trl-sit.ok { background: var(--ok-soft); color: var(--ok); }
.trl-local { font-size: 12px; color: var(--muted); margin-left: 6px; }
.trl-ctr { font-size: 12px; color: #444; margin: 3px 0 0 24px; } .trl-ctr i { color: #666; }
.trl-acoes { opacity: 0; transition: opacity .15s; } .trl:hover .trl-acoes, .trl.sel .trl-acoes { opacity: 1; }
.trl-ok { width: 34px; height: 34px; border-radius: 50%; border: 0; background: var(--primary); color: #fff; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.trl-ok:hover { background: var(--primary-bright); }
@media (max-width: 900px) { .trl { grid-template-columns: 60px 1fr; } .trl-acoes { grid-column: 2; opacity: 1; } }

/* ---------- Mídias do Desenvolvimento Clínico ---------- */
.md-cab { display: flex; align-items: center; gap: 10px; margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line); }
.md-cab h3 { margin: 0; font-size: 16px; font-weight: 600; display: flex; align-items: center; gap: 8px; } .md-cab label.btn { margin-left: auto; cursor: pointer; }
.md-aviso { display: flex; align-items: center; gap: 6px; margin: 6px 0 10px; } .md-aviso svg { width: 15px; height: 15px; color: var(--ok); }
.md-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 12px; }
.md-it { border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: #fff; display: flex; flex-direction: column; position: relative; }
.md-prev { position: relative; display: flex; align-items: center; justify-content: center; height: 140px; background: #f4f2f8; color: var(--muted); overflow: hidden; }
.md-prev img, .md-prev video { width: 100%; height: 100%; object-fit: cover; }
.md-prev .md-ic svg { width: 40px; height: 40px; }
.md-play { position: absolute; width: 40px; height: 40px; border-radius: 50%; background: rgba(0,0,0,.55); color: #fff; display: flex; align-items: center; justify-content: center; }
.md-info { display: flex; flex-direction: column; gap: 1px; padding: 8px 10px; font-size: 11px; color: #666; min-width: 0; }
.md-info b { font-size: 12px; color: var(--text-strong); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .md-hash { font-family: ui-monospace, Consolas, monospace; font-size: 10px; color: #999; }
.md-acoes { position: absolute; top: 6px; right: 6px; display: flex; gap: 4px; opacity: 0; transition: opacity .15s; }
.md-acoes .btn-ic { background: rgba(255,255,255,.92); border-radius: 8px; } .md-it:hover .md-acoes { opacity: 1; }
@media (hover: none) { .md-acoes { opacity: 1; } }
.rx-itens { display: flex; flex-direction: column; gap: 4px; margin-top: 4px; font-size: 13px; } .rx-itens > div { border-left: 2px solid var(--line-strong); padding-left: 8px; }

/* ---------- Histórico de agendamentos do paciente ---------- */
.agh-filtros { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 4px 0 12px; }
.agh-f { border: 1px solid var(--line-strong); background: #fff; border-radius: 16px; padding: 4px 12px; font-size: 12px; cursor: pointer; color: #555; }
.agh-f b { margin-left: 4px; color: var(--text-strong); } .agh-f.on { background: var(--primary); border-color: var(--primary); color: #fff; } .agh-f.on b { color: #fff; }
.agh-comp { margin-left: auto; font-size: 12px; color: var(--muted); } .agh-comp b { font-size: 15px; margin-left: 4px; }
.agh-comp .ok { color: var(--ok); } .agh-comp .warn { color: var(--warn); } .agh-comp .bad { color: var(--bad); }
.agh-ano { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--muted); margin: 14px 0 6px; }
.agh { display: grid; grid-template-columns: 74px 54px 1fr auto; gap: 14px; align-items: center; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; margin-bottom: 6px; background: #fff; }
.agh.prox { border-color: #cdb6e0; background: var(--primary-soft); }
.agh-data { display: flex; gap: 6px; align-items: flex-start; } .agh-data b { font-size: 28px; font-weight: 600; line-height: 1; }
.agh-data span { font-size: 11px; line-height: 1.25; text-transform: uppercase; color: #777; padding-top: 2px; }
.agh-hora { font-size: 15px; font-weight: 600; display: flex; flex-direction: column; } .agh-hora small { font-size: 11px; font-weight: 400; color: var(--muted); }
.agh-c { min-width: 0; display: flex; flex-direction: column; gap: 2px; } .agh-tit b { font-size: 14px; }
.agh-meta { display: flex; flex-wrap: wrap; gap: 12px; font-size: 12px; color: #555; } .agh-meta span { display: inline-flex; align-items: center; gap: 5px; }
.agh-meta i { width: 9px; height: 9px; border-radius: 50%; display: inline-block; } .agh-meta svg { width: 13px; height: 13px; }
.agh-tempos { font-size: 12px; color: var(--ok); } .agh-obs { font-size: 12px; color: #1f63b5; font-style: italic; } .agh-motivo { font-size: 12px; color: var(--bad); }
.agh-sit { padding: 3px 12px; border-radius: 12px; font-size: 11px; font-weight: 600; letter-spacing: .03em; text-transform: uppercase; white-space: nowrap; background: #eef0f3; color: #555; }
.agh-sit.ok { background: var(--ok-soft); color: var(--ok); } .agh-sit.falta { background: var(--bad-soft); color: var(--bad); } .agh-sit.desm { background: #f1f1f1; color: #888; text-decoration: line-through; }
.agh-sit.ag { background: #e8f0fd; color: #2563eb; } .agh-sit.conf { background: #e0f4f8; color: var(--info); } .agh-sit.esp, .agh-sit.atd { background: var(--warn-soft); color: var(--warn); }
@media (max-width: 900px) { .agh { grid-template-columns: 60px 1fr auto; } .agh-hora { display: none; } }

/* ---------- Cancelar contrato ---------- */
.cc { display: flex; flex-direction: column; gap: 12px; }
.cc-res { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; } .cc-res > div { background: #f7f5fa; border-radius: 8px; padding: 8px 10px; display: flex; flex-direction: column; }
.cc-res small { font-size: 11px; color: var(--muted); } .cc-res b { font-size: 16px; } .cc-res b.warn { color: var(--warn); }
.cc-op { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; cursor: pointer; } .cc-op:has(input:checked) { border-color: var(--primary); background: var(--primary-soft); }
.cc-op input { margin-top: 3px; accent-color: var(--primary); }
.cc-parcial { margin: -4px 0 0 30px; display: flex; flex-direction: column; gap: 8px; } .cc-parcial.desliga { opacity: .4; pointer-events: none; }
.cc-procs { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 8px; max-height: 220px; overflow: auto; }
.cc-procs label { display: flex; align-items: center; gap: 8px; padding: 6px 10px; border-bottom: 1px solid var(--line); font-size: 13px; } .cc-procs label:last-child { border-bottom: 0; } .cc-procs label b { margin-left: auto; font-weight: 500; }
.cc-conta { background: #fafafa; border-radius: 8px; padding: 8px 12px; font-size: 13px; } .cc-linha { display: flex; justify-content: space-between; padding: 2px 0; }
.cc-linha.ok { color: var(--ok); } .cc-linha.warn { color: var(--warn); }
.cc-chk { display: flex; align-items: center; gap: 8px; font-size: 13px; flex-wrap: wrap; } .cc-mot { display: flex; flex-direction: column; gap: 4px; font-size: 13px; } .cc-mot i { color: var(--bad); font-style: normal; }
@media (max-width: 700px) { .cc-res { grid-template-columns: repeat(2, 1fr); } }

/* ---------- Impressão do orçamento (modelo do CO) ---------- */
.oi-opc { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 16px; } .oi-opc label { display: flex; gap: 8px; align-items: center; font-size: 13px; } .oi-opc input { accent-color: var(--primary); }
.oi-folha { font-size: 12px; line-height: 1.4; padding: 28px 40px; }
.oi-cab { display: flex; justify-content: space-between; align-items: flex-start; } .oi-cab img { height: 64px; } .oi-cab > div { text-align: right; font-size: 11px; color: #444; } .oi-cab b { font-size: 13px; color: #222; }
.oi-tit { text-align: right; margin: 6px 0 10px; } .oi-tit b { display: block; font-size: 17px; } .oi-tit i { font-size: 11px; color: #555; }
.oi-grade { width: 100%; border-collapse: collapse; margin-bottom: 8px; table-layout: fixed; } .oi-grade td { border: 1px solid #c9c9c9; padding: 3px 6px; vertical-align: top; overflow-wrap: anywhere; }
.oi-grade td.l2 { width: 50%; } .oi-grade td.l3 { width: 75%; } .oi-grade small { display: block; font-size: 9px; color: #666; } .oi-grade b { font-size: 12px; }
.oi-grade tr:first-child td { background: #f1f1f1; }
.oi-folha h3 { font-size: 14px; margin: 14px 0 6px; }
.oi-odonto { display: flex; justify-content: center; padding: 6px 0; } .oi-odonto .dente { cursor: default; }
.oi-itens, .oi-parc { width: 100%; border-collapse: collapse; } .oi-itens td, .oi-parc td { border-bottom: 1px solid #ddd; padding: 4px 6px; vertical-align: middle; }
.oi-n { width: 36px; text-align: center; background: #f1f1f1; color: #888; font-size: 13px; } .oi-itens small { display: block; font-size: 9px; color: #777; } .oi-itens b { font-size: 12px; }
.oi-obs { font-size: 10px; color: #555; font-style: italic; } .oi-parc { width: 60%; }
.oi-tot { width: 100%; border-collapse: collapse; margin-top: 8px; } .oi-tot td { border: 1px solid #c9c9c9; text-align: center; padding: 4px; width: 25%; } .oi-tot small { display: block; font-size: 10px; color: #555; } .oi-tot b { font-size: 13px; }
.oi-tot td.dest { background: #f1f1f1; text-align: right; } .oi-pont { font-size: 11px; margin: 6px 0 0; }
.oi-obs-txt { white-space: pre-wrap; border: 1px solid #ddd; padding: 8px; border-radius: 4px; }
.oi-assin { display: flex; justify-content: space-between; align-items: flex-end; margin-top: 50px; text-align: center; font-size: 11px; }
.oi-rod { margin-top: 24px; border-top: 1px solid #ccc; padding-top: 6px; font-size: 10px; color: #888; }
@media print { .oi-folha { padding: 0; max-width: none; } }
/* odontograma na impressão: dentes do orçamento em destaque */
.oi-odonto .dente { width: 30px; height: 38px; font-size: 10px; } .oi-odonto .dente.plan { background: #e9f8ee; border-color: var(--ok); font-weight: 700; }
.oi-leg { display: flex; justify-content: center; gap: 16px; font-size: 10px; color: #666; } .oi-leg i.pl { display: inline-block; width: 10px; height: 10px; border: 1px solid var(--ok); background: #e9f8ee; border-radius: 2px; vertical-align: middle; }
@media print { .oi-odonto .dente, .oi-odonto .dente.plan, .oi-leg i.pl { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* ---------- Contrato impresso ---------- */
.ct-folha { max-width: 800px; padding: 32px 48px; font-family: Georgia, "Times New Roman", serif; font-size: 12.5px; line-height: 1.55; color: #1d1d1d; }
.ct-cab { display: flex; justify-content: space-between; align-items: center; border-bottom: 2px solid var(--primary); padding-bottom: 10px; font-family: var(--font); }
.ct-cab img { height: 77px; } .ct-cab > div { text-align: right; font-size: 10.5px; color: #555; line-height: 1.4; } .ct-cab b { font-size: 12.5px; color: #222; }
.ct-tit { text-align: center; font-size: 16px; letter-spacing: .06em; text-transform: uppercase; margin: 18px 0 10px; font-family: var(--font); font-weight: 700; }
.ct-id { width: 100%; border-collapse: collapse; margin-bottom: 16px; font-family: var(--font); table-layout: fixed; }
.ct-id td { border: 1px solid #cfcfcf; padding: 4px 8px; background: #faf8fc; } .ct-id small { display: block; font-size: 9px; color: #777; text-transform: uppercase; letter-spacing: .04em; } .ct-id b { font-size: 12px; }
.ct-cl { margin: 0 0 12px; break-inside: auto; }
.ct-cl h3 { font-family: var(--font); font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--primary); margin: 14px 0 4px; padding-bottom: 2px; border-bottom: 1px solid #e3dcea; break-after: avoid; }
.ct-txt p { margin: 0 0 6px; text-align: justify; hyphens: auto; } .ct-txt table.tab { font-family: var(--font); font-size: 11px; margin: 6px 0; width: 100%; }
.ct-txt table.tab th { background: #f3f0f7; } .ct-txt table.tab td, .ct-txt table.tab th { border: 1px solid #ddd; padding: 3px 6px; }
.ct-local { text-align: right; margin: 22px 0 36px; }
.ct-assinaturas { display: grid; grid-template-columns: 1fr 1fr; gap: 42px 40px; break-inside: avoid; }
.ct-ass { display: flex; flex-direction: column; align-items: center; text-align: center; font-family: var(--font); font-size: 11px; } .ct-ass .ct-linha { width: 100%; border-top: 1px solid #333; margin-bottom: 4px; }
.ct-ass b { font-size: 11.5px; } .ct-ass span { color: #555; } .ct-ass small { font-size: 9.5px; color: #777; letter-spacing: .05em; margin-top: 2px; }
.ct-test { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; margin-top: 42px; break-inside: avoid; } .ct-test .ct-ass b { font-weight: 400; color: #666; }
@media print { .ct-folha { padding: 0; max-width: none; } .ct-cab { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
.ct-lista { margin: 4px 0 8px; padding-left: 26px; } .ct-lista li { margin: 2px 0; text-align: justify; padding-left: 4px; } .ct-lista li::marker { font-weight: 700; color: var(--primary); font-family: var(--font); }
.ct-fianca { border-left: 3px solid var(--primary); padding-left: 10px; }

/* ---------- Relacionamentos: papéis no contrato ---------- */
.rl-ajuda { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin: 6px 0 12px; font-size: 12px; color: #444; }
.rl-ajuda > div { background: #f7f5fa; border-radius: 8px; padding: 8px 10px; line-height: 1.45; } .rl-ajuda svg { width: 14px; height: 14px; vertical-align: -2px; color: var(--primary); }
.rl-lista { display: flex; flex-direction: column; gap: 6px; }
.rl-it { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 8px; padding: 10px 12px; } .rl-it.papel { border-left: 3px solid var(--primary); background: #fcfbfe; }
.rl-c { flex: 1; min-width: 0; } .rl-papeis { margin-top: 4px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; } .rl-papeis:empty { display: none; }
.rl-acoes { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; justify-content: flex-end; }
@media (max-width: 900px) { .rl-ajuda { grid-template-columns: 1fr; } .rl-it { flex-direction: column; align-items: flex-start; } }
.ct-cl h3 .ct-n { font-weight: 800; }
/* o logo.png é um quadrado com muita margem vazia (o desenho ocupa ~67% × 57%): mostra só o desenho, com 77px de altura */
.ct-cab .ct-logo { position: relative; overflow: hidden; flex: none; height: 77px; width: 91px; }
.ct-cab .ct-logo img { position: absolute; height: 135px; width: 135px; left: -22px; top: -29px; max-width: none; }
.oi-parc2 { display: grid; grid-template-columns: 1fr 1fr; gap: 0 24px; align-items: start; } .oi-parc2 .oi-parc { width: 100%; } .oi-parc td { white-space: nowrap; }
/* parcelas em colunas, compactas */
.oi-parcN { display: grid; gap: 0 14px; align-items: start; } .oi-parcN .oi-parc { width: 100%; font-size: 10px; }
.oi-parcN .oi-parc td { padding: 1px 4px; line-height: 1.3; } .oi-parcN .oi-n { width: 22px; font-size: 10px; } .oi-parcN .oi-esp { color: #666; max-width: 70px; overflow: hidden; text-overflow: ellipsis; }

/* ---------- WhatsApp no prontuário ---------- */
.wz-barra { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 4px 0 8px; } .wz-barra svg { width: 14px; height: 14px; vertical-align: -2px; color: var(--ok); }
.wz-acoes { margin-left: auto; display: flex; gap: 6px; align-items: center; }
.wz-chat { background: #efeae2; border-radius: 10px; padding: 12px; height: 560px; overflow-y: auto; display: flex; flex-direction: column; gap: 4px; }
.wz-dia { align-self: center; background: #fff; color: #555; font-size: 11px; padding: 3px 10px; border-radius: 8px; margin: 8px 0 4px; box-shadow: 0 1px 1px rgba(0,0,0,.08); text-transform: capitalize; }
.wz-m { display: flex; align-items: flex-start; gap: 6px; } .wz-m.eu { flex-direction: row-reverse; }
.wz-ck { padding-top: 6px; opacity: .35; } .wz-m:hover .wz-ck, .wz-m.sel .wz-ck { opacity: 1; } .wz-ck input { accent-color: var(--primary); }
.wz-b { max-width: 68%; background: #fff; border-radius: 8px; padding: 6px 9px 4px; box-shadow: 0 1px 1px rgba(0,0,0,.1); font-size: 13px; }
.wz-m.eu .wz-b { background: #d9fdd3; } .wz-m.sel .wz-b { outline: 2px solid var(--primary); }
.wz-t { white-space: pre-wrap; overflow-wrap: anywhere; } .wz-h { text-align: right; font-size: 10px; color: #777; margin-top: 2px; }
.wz-midia { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: #444; } .wz-midia svg { width: 14px; height: 14px; vertical-align: -2px; }
.wz-mb { display: flex; gap: 4px; align-items: center; } .wz-prev img, .wz-prev video { max-width: 260px; max-height: 260px; border-radius: 6px; display: block; } .wz-prev audio { width: 240px; }
.wz-mais { align-self: center; }
/* janela de WhatsApp no prontuário */
.wz-jan { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 12px; overflow: hidden; background: #efeae2; }
.wz-cab { display: flex; align-items: center; gap: 10px; padding: 8px 12px; background: #f0f2f5; border-bottom: 1px solid #e2e2e2; }
.wz-cab .avatar { width: 38px; height: 38px; font-size: 14px; } .wz-cn { display: flex; flex-direction: column; line-height: 1.25; } .wz-cn span, .wz-cn select { font-size: 12px; color: #667; }
.wz-cn select { border: 0; background: transparent; padding: 0; } .wz-cab-a { margin-left: auto; display: flex; gap: 6px; align-items: center; } .wz-cab-a .btn.on { background: var(--primary); color: #fff; border-color: var(--primary); }
.wz-pbar { display: flex; align-items: center; gap: 8px; padding: 6px 12px; background: var(--primary-soft); font-size: 12px; } .wz-pbar #wz-n { margin-right: auto; color: var(--primary); font-weight: 600; }
.wz-jan .wz-chat { border-radius: 0; height: 520px; }
.wz-q { border-left: 3px solid #06cf9c; background: rgba(0,0,0,.05); padding: 3px 6px; border-radius: 4px; font-size: 11px; color: #555; margin-bottom: 3px; max-height: 3.2em; overflow: hidden; }
.wz-h { display: flex; justify-content: flex-end; align-items: center; gap: 4px; } .wz-resp { border: 0; background: none; padding: 0; cursor: pointer; color: #999; opacity: 0; display: inline-flex; } .wz-resp svg { width: 13px; height: 13px; }
.wz-m:hover .wz-resp { opacity: 1; }
.wz-cit { display: flex; align-items: center; gap: 8px; background: #f0f2f5; padding: 6px 12px; border-top: 1px solid #e2e2e2; } .wz-cit > div { flex: 1; border-left: 3px solid #06cf9c; background: #fff; padding: 4px 8px; border-radius: 6px; font-size: 12px; display: flex; flex-direction: column; } .wz-cit span { color: #555; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.wz-comp { display: flex; align-items: flex-end; gap: 8px; padding: 8px 12px; background: #f0f2f5; } .wz-comp label.btn-ic { cursor: pointer; }
.wz-comp textarea { flex: 1; resize: none; border: 0; border-radius: 8px; padding: 9px 12px; font: inherit; font-size: 14px; max-height: 120px; outline: none; background: #fff; }
.wz-env { width: 40px; height: 40px; border-radius: 50%; border: 0; background: #00a884; color: #fff; display: inline-flex; align-items: center; justify-content: center; cursor: pointer; } .wz-env:disabled { opacity: .5; }
.wz-rod { padding: 4px 12px 6px; background: #f0f2f5; font-size: 11px; } .wz-rod svg { width: 12px; height: 12px; vertical-align: -2px; }

/* ---------- Notas Fiscais ---------- */
.nf-filtros { display: flex; flex-wrap: wrap; gap: 10px; align-items: flex-end; margin-bottom: 12px; } .nf-filtros label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--muted); }
.nf-filtros #nf-doc { width: 170px; } .nf-filtros #nf-nome { width: 220px; }
.nf-res { display: flex; gap: 20px; font-size: 13px; margin: 4px 0 8px; } .nf-desc { max-width: 260px; font-size: 12px; color: #555; }
.nf-form { display: flex; flex-direction: column; gap: 10px; } .nf-form label { display: flex; flex-direction: column; gap: 3px; font-size: 12px; color: var(--muted); } .nf-form .inp { width: 100%; }
.nf-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; } .nf-pac { font-size: 12px; min-height: 18px; } .nf-pac svg { width: 14px; height: 14px; vertical-align: -2px; } .nf-ok { color: var(--ok); }
.nf-form label.nf-prod { flex-direction: row; align-items: center; gap: 8px; color: #444; }
.df-atalhos { display: flex; gap: 6px; align-items: center; margin-bottom: 8px; } .df-baixar { margin-left: auto; display: flex; gap: 6px; } .df-canc td { color: #999; text-decoration: line-through; } .df-canc td .chip, .df-canc td a { text-decoration: none; }
.nf-filtros .nf-auto { position: relative; } .nf-filtros .nf-auto .ag-res { top: 100%; left: 0; margin-top: 4px; color: var(--text); }
.nf-tab .nf-canc { color: #b91c1c; } .nf-tab .nf-canc:hover { background: #fee2e2; }
.nf-canc-info { padding: 10px 12px; border-radius: 8px; background: #fef2f2; border: 1px solid #fecaca; font-size: 13px; }
.btn.nf-perigo { background: #b91c1c; color: #fff; border-color: #b91c1c; } .btn.nf-perigo:hover { filter: brightness(1.08); }
.nf-num { display: inline-block; padding: 1px 8px; border-radius: 999px; font-weight: 700; } .nf-num.ok { color: #15803d; background: #dcfce7; } .nf-num.canc { color: #b91c1c; background: #fee2e2; } .df-canc .nf-num { text-decoration: none; }
/* Receitas e atestados (prontuário › Histórico) */
.rxl-res { font-size: 12px; color: var(--muted); margin: 4px 0 8px; }
.rxl { display: flex; flex-direction: column; gap: 10px; }
.rxc { --rc: var(--primary); display: flex; gap: 14px; border: 1px solid var(--line); border-left: 4px solid var(--rc); border-radius: 10px; padding: 12px 14px; background: #fff; }
.rxc-atestado { --rc: #0369a1; } .rxc-orientacao { --rc: #0f766e; }
.rxc-dia { flex: none; width: 52px; text-align: center; color: var(--rc); line-height: 1.1; }
.rxc-dia b { display: block; font-size: 24px; font-weight: 700; } .rxc-dia span { font-size: 10.5px; font-weight: 600; letter-spacing: .04em; color: var(--muted); }
.rxc-corpo { flex: 1; min-width: 0; }
.rxc-top { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.rxc-tipo { display: inline-flex; align-items: center; gap: 5px; font-size: 11.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--rc); background: color-mix(in srgb, var(--rc) 11%, transparent); padding: 2px 9px; border-radius: 999px; }
.rxc-tipo svg, .rxc-esp svg { width: 13px; height: 13px; }
.rxc-esp { display: inline-flex; align-items: center; gap: 4px; font-size: 11px; font-weight: 700; color: #b91c1c; background: #fee2e2; padding: 2px 8px; border-radius: 999px; }
.rxc-tit { font-size: 13.5px; }
.rxc-acoes { margin-left: auto; display: flex; gap: 2px; }
.rxc-meds { margin: 10px 0 0; padding: 0; list-style: none; counter-reset: rx; display: flex; flex-direction: column; gap: 8px; }
.rxc-meds li { counter-increment: rx; position: relative; padding-left: 30px; }
.rxc-meds li::before { content: counter(rx); position: absolute; left: 0; top: 1px; width: 20px; height: 20px; border-radius: 50%; background: color-mix(in srgb, var(--rc) 12%, transparent); color: var(--rc); font-size: 11px; font-weight: 700; display: grid; place-items: center; }
.rxc-med { display: flex; flex-wrap: wrap; align-items: baseline; gap: 8px; } .rxc-med b { font-size: 14px; } .rxc-med span { font-size: 12px; color: var(--muted); }
.rxc-pos { display: flex; flex-wrap: wrap; gap: 6px 16px; margin-top: 3px; font-size: 12.5px; color: var(--text); }
.rxc-pos span { display: inline-flex; align-items: center; gap: 5px; } .rxc-pos svg, .rxc-rod svg { width: 13px; height: 13px; color: var(--muted); }
.rxc-obs { margin-top: 4px; font-size: 12px; color: var(--muted); font-style: italic; }
.rxc-txt { margin-top: 10px; font-size: 13px; white-space: pre-wrap; line-height: 1.45; max-height: 7.4em; overflow: hidden; } .rxc-txt.aberto { max-height: none; }
.rxc-mais { border: 0; background: none; color: var(--primary); font-size: 12px; padding: 2px 0; cursor: pointer; }
.rxc-rod { display: flex; align-items: center; gap: 6px 14px; flex-wrap: wrap; margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); font-size: 12px; color: var(--muted); }
.rxc-rod span { display: inline-flex; align-items: center; gap: 5px; }
.rxc-exames { --rc: #b45309; }
.at-form { display: flex; flex-direction: column; gap: 12px; } .at-form label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.at-form .at-l2 { display: grid; grid-template-columns: 2fr 1fr; gap: 12px; } .at-form .at-l3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 12px; }
.at-form .at-chk { flex-direction: row; align-items: center; gap: 8px; align-self: end; padding-bottom: 8px; color: var(--text); } .at-form .at-chk input { width: auto; }
.at-form textarea { height: auto; padding: 10px; line-height: 1.5; font-size: 13px; color: var(--text); }
.us-sens svg { width: 13px; height: 13px; color: #b91c1c; vertical-align: -2px; } .us-linha-sens td:first-child { border-left: 3px solid #fecaca; }
.nf-sel { margin-left: auto; display: flex; align-items: center; gap: 10px; } .nf-tab .nf-ck { width: 28px; text-align: center; } .nf-tab .nf-ck input { width: auto; cursor: pointer; }
.eq-login { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin: 12px 0 6px; } .eq-login > div { margin-right: auto; }
.eq-areas td { padding-top: 6px; padding-bottom: 6px; } .eq-antiga { margin-top: 14px; font-size: 13px; } .eq-antiga summary { cursor: pointer; color: var(--muted); }
.eq-bloq { display: flex; flex-wrap: wrap; gap: 4px; }
/* Baixa de procedimento e envio para o tablet */
.trl-barra { position: sticky; bottom: 0; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 14px; background: #fff; border: 1px solid var(--line); border-radius: 10px; box-shadow: 0 -4px 14px rgba(0,0,0,.05); }
.cp-form, .tb-form { display: flex; flex-direction: column; gap: 12px; } .cp-form label, .tb-form label { display: flex; flex-direction: column; gap: 4px; font-size: 12px; color: var(--muted); }
.cp-form textarea, .tb-form textarea { height: auto; padding: 10px; font-size: 13.5px; line-height: 1.5; color: var(--text); }
.cp-procs { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 10px; background: #f0fdf4; border: 1px solid #bbf7d0; font-size: 13.5px; } .cp-procs svg { width: 14px; height: 14px; color: #15803d; vertical-align: -2px; }
.cp-fotos-bloco { display: flex; flex-direction: column; gap: 8px; font-size: 13px; } .cp-fotos-bloco .btn, .tb-form label.btn { align-self: flex-start; flex-direction: row; color: var(--text); font-size: 13px; }
.tb-fotos { display: flex; flex-wrap: wrap; gap: 8px; } .tb-fotos > div { position: relative; } .tb-fotos img { width: 110px; height: 110px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); }
.tb-fotos .btn-ic { position: absolute; top: 3px; right: 3px; background: rgba(0,0,0,.55); color: #fff; border-radius: 50%; width: 24px; height: 24px; }
.cp-form .cp-tablet { flex-direction: row; align-items: flex-start; gap: 10px; padding: 10px 12px; border: 1px dashed var(--line-strong, #cbd5e1); border-radius: 10px; color: var(--text); font-size: 13px; } .cp-tablet input { width: auto; margin-top: 3px; }
.tb-form .tb-l2 { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.tb-hist { display: flex; flex-direction: column; gap: 6px; padding: 10px 12px; border-radius: 10px; background: var(--bg-soft, #f8f6fb); font-size: 13px; } .tb-hl { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
/* Jarvis: assistente no canto da tela */
#jarvis { position: fixed; right: calc(var(--menu-w, 0px) + 18px); bottom: 18px; z-index: 900; font-size: 13.5px; } #jarvis .jv-bolha[hidden] { display: none; }
#jarvis .jv-bolha { display: flex; align-items: center; gap: 6px; border: 0; border-radius: 999px; padding: 10px 16px 10px 12px; background: linear-gradient(135deg, var(--primary), #8b4fb0); color: #fff; font-weight: 600; box-shadow: 0 6px 20px rgba(110,57,144,.35); cursor: pointer; }
#jarvis .jv-bolha svg { width: 18px; height: 18px; }
#jarvis .jv-painel { width: 380px; height: min(560px, calc(100vh - 100px)); background: #fff; border: 1px solid var(--line); border-radius: 14px; box-shadow: 0 16px 50px rgba(0,0,0,.2); display: flex; flex-direction: column; overflow: hidden; }
#jarvis .jv-painel[hidden] { display: none; }
#jarvis header { display: flex; align-items: center; gap: 6px; padding: 10px 12px; background: linear-gradient(135deg, var(--primary), #8b4fb0); color: #fff; } #jarvis header b { display: flex; align-items: center; gap: 6px; } #jarvis header svg { width: 16px; height: 16px; }
#jarvis header .jv-sub { font-size: 11px; opacity: .8; margin-right: auto; } #jarvis header .btn-ic { color: #fff; }
#jarvis .jv-msgs { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 8px; background: #faf8fc; }
#jarvis .jv-m { max-width: 88%; padding: 8px 11px; border-radius: 12px; line-height: 1.45; word-wrap: break-word; } #jarvis .jv-m.eu { align-self: flex-end; background: var(--primary); color: #fff; border-bottom-right-radius: 4px; white-space: pre-wrap; }
#jarvis .jv-m.ele { align-self: flex-start; background: #fff; border: 1px solid var(--line); border-bottom-left-radius: 4px; } #jarvis .jv-li { display: block; padding-left: 4px; }
#jarvis .jv-vazio { margin: auto 6px; text-align: center; color: var(--muted); } #jarvis .jv-vazio span { display: block; margin-top: 8px; font-size: 12px; }
#jarvis .jv-card { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 8px; padding: 8px; border-radius: 8px; background: #fef9c3; border: 1px solid #fde68a; font-size: 12.5px; } #jarvis .jv-card svg { width: 14px; height: 14px; }
#jarvis .jv-card span { flex: 1 1 100%; } #jarvis .jv-card.feito { background: #dcfce7; border-color: #bbf7d0; } #jarvis .jv-card.descartado, #jarvis .jv-card.erro { background: #f3f4f6; border-color: #e5e7eb; } #jarvis .jv-card em { font-style: normal; font-weight: 600; }
#jarvis .jv-pensa { display: flex; gap: 4px; } #jarvis .jv-pensa i { width: 7px; height: 7px; border-radius: 50%; background: #b9a6c9; animation: jvp 1.2s infinite; } #jarvis .jv-pensa i:nth-child(2) { animation-delay: .2s; } #jarvis .jv-pensa i:nth-child(3) { animation-delay: .4s; }
@keyframes jvp { 0%, 100% { opacity: .3; } 50% { opacity: 1; } }
#jarvis .jv-comp { display: flex; gap: 6px; padding: 10px; border-top: 1px solid var(--line); } #jarvis .jv-comp textarea { flex: 1; resize: none; border: 1px solid var(--line); border-radius: 10px; padding: 8px 10px; font: inherit; max-height: 120px; }
@media print { #jarvis { display: none; } }
#jarvis .jv-anexos { display: flex; flex-wrap: wrap; gap: 6px; padding: 0 10px; } #jarvis .jv-anexos:empty { display: none; } #jarvis .jv-anexos > div { position: relative; margin-top: 8px; }
#jarvis .jv-anexos img { width: 64px; height: 64px; object-fit: cover; border-radius: 8px; border: 1px solid var(--line); } #jarvis .jv-anexos .btn-ic { position: absolute; top: -6px; right: -6px; width: 20px; height: 20px; border-radius: 50%; background: rgba(0,0,0,.6); color: #fff; }
#jarvis .jv-comp { align-items: flex-end; } #jarvis .jv-comp label.btn-ic { cursor: pointer; } #jarvis [data-mic].gravando { color: #fff; background: #dc2626; border-radius: 50%; animation: jvp 1s infinite; }
/* Movimentações › Contratos: resumo em 3 cartões com as fases em tabela alinhada */
.mvc { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-bottom: 10px; }
.mvc-card { background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; }
.mvc-tot { border-color: #c7d7f5; background: #f7faff; }
.mvc-cab { display: flex; flex-direction: column; gap: 2px; } .mvc-cab small { color: #777; font-size: 12px; } .mvc-cab small span { color: #999; }
.mvc-v { font-size: 24px; font-weight: 500; font-variant-numeric: tabular-nums; } .mvc-v.pri { color: #3b6fd0; }
.mvc-sub { display: flex; justify-content: space-between; align-items: baseline; font-size: 12.5px; color: #666; padding-top: 4px; } .mvc-sub b { font-weight: 500; font-variant-numeric: tabular-nums; color: var(--text); } .mvc-sub b.bad { color: #d32f2f; } .mvc-sub i { font-style: normal; color: #999; font-size: 11px; }
.mvf { display: flex; flex-direction: column; gap: 6px; border-top: 1px dashed var(--line); padding-top: 10px; }
.mvf-l { display: grid; grid-template-columns: minmax(78px, max-content) minmax(24px, 1fr) 42px max-content; align-items: center; gap: 8px; font-size: 12.5px; }
.mvf-v { white-space: nowrap; } .mvc-sub { gap: 10px; } .mvc-sub b { white-space: nowrap; } .mvc-sub span { min-width: 0; }
.mvf-l.zero { opacity: .5; }
.mvf-n { display: flex; align-items: center; gap: 6px; color: #555; } .mvf-n i { width: 8px; height: 8px; border-radius: 50%; flex: none; }
.mvf-b { height: 6px; background: #eef0f3; border-radius: 3px; overflow: hidden; } .mvf-b i { display: block; height: 100%; border-radius: 3px; }
.mvf-p { text-align: right; color: #666; font-variant-numeric: tabular-nums; } .mvf-v { text-align: right; font-weight: 500; font-variant-numeric: tabular-nums; }
@media (max-width: 1100px) { .mvc { grid-template-columns: 1fr; } }
.mvc.c4 { grid-template-columns: repeat(2, minmax(0, 1fr)); } @media (min-width: 1700px) { .mvc.c4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

/* Emissor NFS-e e certificado (Dados da Clínica › Dados NFSe › Certificados Digitais) */
.nfc-status { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 10px; }
.nfc-st { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; display: flex; flex-direction: column; gap: 2px; }
.nfc-st > span { font-size: 11px; text-transform: uppercase; letter-spacing: .4px; color: var(--muted); }
.nfc-st b { font-size: 15px; display: inline-flex; align-items: center; gap: 5px; } .nfc-st small { color: var(--muted); font-size: 12px; }
.nfc-st b.ok { color: var(--ok); } .nfc-st b.warn { color: var(--warn); } .nfc-st b.bad { color: var(--bad); }
.nfc-grade { display: grid; grid-template-columns: minmax(0, 1.4fr) minmax(280px, 1fr); gap: 14px; margin-top: 14px; align-items: start; }
@media (max-width: 1100px) { .nfc-grade { grid-template-columns: 1fr; } }
.nfc-card { padding: 16px 18px; display: flex; flex-direction: column; gap: 10px; }
.nfc-card h3 { margin: 0; font-size: 15px; display: flex; align-items: center; gap: 6px; } .nfc-card .meta { margin: 0; }
.nfc-tab { width: 100%; border-collapse: collapse; font-size: 13px; }
.nfc-tab td { padding: 7px 6px; border-bottom: 1px solid var(--line); vertical-align: middle; }
.nfc-tab td:first-child { color: var(--muted); width: 34%; } .nfc-tab td:last-child { text-align: right; white-space: nowrap; font-size: 12px; }
.nfc-ok { color: var(--ok); display: inline-flex; align-items: center; gap: 3px; } .nfc-dif { color: var(--bad); display: inline-flex; align-items: center; gap: 3px; font-weight: 600; }
.nfc-num { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 8px; font-size: 13px; }
.nfc-num > div { flex: 1; } .nfc-num.ok { background: var(--ok-soft); color: #166534; } .nfc-num.warn { background: var(--warn-soft); color: #92400e; }
.nfc-arq { position: relative; display: flex; align-items: center; gap: 12px; padding: 14px 16px; border: 2px dashed var(--line-strong); border-radius: 10px; cursor: pointer; background: var(--page); color: var(--primary); transition: .15s; }
.nfc-arq:hover, .nfc-arq.sobre { border-color: var(--primary); background: var(--primary-soft); }
.nfc-arq.ok { border-style: solid; border-color: var(--ok); background: var(--ok-soft); color: var(--ok); }
.nfc-arq input { position: absolute; inset: 0; opacity: 0; cursor: pointer; }
.nfc-arq > svg { width: 26px; height: 26px; flex: none; }
.nfc-arq span { display: flex; flex-direction: column; min-width: 0; } .nfc-arq span b { color: var(--text-strong); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.nfc-arq small { color: var(--muted); font-size: 12px; }
.nfc-campo { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; color: var(--muted); }
.nfc-senha { display: flex; gap: 6px; } .nfc-senha .inp { flex: 1; min-width: 0; }
.nfc-env { align-self: flex-start; }

/* Agenda: horário de funcionamento e disponibilidade da Equipe */
.ag-aviso { display: flex; align-items: center; flex-wrap: wrap; gap: 6px; background: var(--warn-soft); color: #92400e; border-radius: 8px; padding: 7px 12px; font-size: 12.5px; margin-bottom: 8px; }
.ag-aviso.suave { background: #f6f3fa; color: var(--muted); }
.ag-aviso svg { width: 15px; height: 15px; flex: none; } .ag-aviso a { color: var(--primary); cursor: pointer; text-decoration: underline; }
.ag-off { position: absolute; left: 0; right: 0; background: rgba(120, 112, 135, .1); pointer-events: none; }
.ag-ind { position: absolute; left: 0; right: 0; background: repeating-linear-gradient(135deg, rgba(220, 38, 38, .1) 0 6px, transparent 6px 12px); pointer-events: none; }
.ag-lado a.off { opacity: .5; }
/* Usuários e Acessos: bloco das funções especiais */
.us-sep td { background: var(--primary-soft); padding: 8px 10px; }
.tab th.us-th-acao { background: var(--primary-soft); }

/* Agenda › Filtrar: resumo do período em cartões e quebras com barra */
.ag-kpis { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin-bottom: 12px; }
.ag-kpi { --c: var(--primary); display: flex; gap: 10px; align-items: flex-start; background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 12px; }
.ag-kpi.ok { --c: #15803d; } .ag-kpi.at { --c: #2563eb; } .ag-kpi.comp { --c: #8b5cf6; } .ag-kpi.bad { --c: #dc2626; } .ag-kpi.warn { --c: #d97706; } .ag-kpi.novo { --c: #0891b2; }
.ag-kpi-ic { width: 30px; height: 30px; border-radius: 8px; display: grid; place-items: center; flex: none; background: color-mix(in srgb, var(--c) 12%, transparent); color: var(--c); }
.ag-kpi-ic svg { width: 16px; height: 16px; }
.ag-kpi > div { flex: 1; min-width: 0; display: grid; grid-template-columns: 1fr auto; align-items: baseline; row-gap: 2px; }
.ag-kpi b { font-size: 22px; font-weight: 600; color: var(--text-strong); line-height: 1.1; } .ag-kpi small { grid-column: 1 / -1; order: -1; font-size: 11px; color: var(--muted); text-transform: uppercase; letter-spacing: .3px; }
.ag-kpi em { font-style: normal; font-size: 12px; color: var(--c); font-weight: 600; }
.ag-kpi i { grid-column: 1 / -1; height: 4px; border-radius: 4px; background: linear-gradient(90deg, var(--c) var(--p), #eee9f3 var(--p)); }
.ag-quebras { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 10px; margin-bottom: 14px; }
.ag-quebra { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; }
.ag-quebra h4 { margin: 0 0 6px; font-size: 12px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); display: flex; align-items: center; gap: 6px; } .ag-quebra h4 svg { width: 14px; height: 14px; }
.ag-qb { display: grid; grid-template-columns: minmax(90px, 1.2fr) 1fr 36px 46px; align-items: center; gap: 8px; font-size: 13px; padding: 4px 0; }
.ag-qb span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ag-qb i { height: 6px; background: #eee9f3; border-radius: 6px; overflow: hidden; } .ag-qb i b { display: block; height: 100%; background: var(--primary); border-radius: 6px; }
.ag-qb strong { text-align: right; font-variant-numeric: tabular-nums; } .ag-qb em { font-style: normal; text-align: right; color: var(--muted); font-size: 12px; font-variant-numeric: tabular-nums; }
@media (min-width: 1100px) { .ag-kpis { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
.ag-kpi small { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.ag-kpi { padding: 10px; gap: 8px; }

/* Agenda › Filtrar: igual ao CO (contagem do dia, Informações Adicionais, botões com texto, selo ONTEM) */
.ag-reldia-sit { display: inline-flex; gap: 6px; flex-wrap: wrap; margin-left: 10px; }
.ag-reldia-sit em { font-style: normal; font-size: 11px; font-weight: 600; padding: 1px 8px; border-radius: 10px; background: #eee9f3; color: var(--muted); }
.ag-reldia-sit em.ok { background: #dcf3e2; color: #15803d; } .ag-reldia-sit em.at { background: #dbeafe; color: #1d4ed8; } .ag-reldia-sit em.bad { background: #fde2e2; color: #b91c1c; }
.ag-reldia-sit em.warn { background: #fdebd7; color: #b45309; } .ag-reldia-sit em.comp { background: #ede4fb; color: #6d28d9; }
.ag-info { margin-top: 4px; font-size: 12px; } .ag-info summary { cursor: pointer; color: var(--primary); width: fit-content; }
.ag-info ul { margin: 4px 0 0; padding-left: 16px; color: #444; } .ag-info li { margin: 1px 0; } .ag-info small { display: block; margin-top: 2px; }
.ag-rbtn { width: auto; padding: 0 8px; gap: 4px; font-size: 12px; color: var(--primary); }
.ag-lado a i.ontem { background: #fdf3e2; color: #b45309; }
.ag-reldia .ag-reldia-sit { float: none; color: inherit; }

/* Agenda › Filtrar › Pesquisar: formulário compacto */
.ag-pq { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; padding: 14px 16px; display: flex; flex-direction: column; gap: 12px; max-width: 980px; margin-bottom: 14px; }
.ag-pq-l1 { display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr); gap: 12px; }
.ag-pq-l2 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 900px) { .ag-pq-l1, .ag-pq-l2 { grid-template-columns: 1fr; } }
.ag-pq-c { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.ag-pq-c > span { font-size: 11px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); }
.ag-pq-c > span a { text-transform: none; letter-spacing: 0; color: var(--primary); cursor: pointer; margin-left: 6px; }
.ag-pq .inp { width: 100%; height: 34px; }
.ag-pq-per { display: flex; align-items: center; gap: 6px; } .ag-pq-per i { font-style: normal; color: var(--muted); font-size: 12px; }
.ag-pq-atalhos { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 2px; }
.ag-pq-atalhos a { font-size: 11.5px; padding: 2px 9px; border-radius: 12px; background: #f3eff8; color: var(--primary); cursor: pointer; }
.ag-pq-atalhos a:hover, .ag-pq-atalhos a.on { background: var(--primary); color: #fff; }
.ag-pq-ops { display: flex; flex-wrap: wrap; gap: 6px; }
.ag-pill { position: relative; cursor: pointer; } .ag-pill input { position: absolute; opacity: 0; pointer-events: none; }
.ag-pill b { display: inline-block; font-weight: 500; font-size: 12.5px; padding: 4px 11px; border-radius: 14px; border: 1px solid var(--line-strong); color: var(--muted); background: #fff; }
.ag-pill input:checked + b { background: var(--primary-soft); border-color: var(--primary); color: var(--primary); }
.ag-pq-acoes { display: flex; justify-content: flex-end; gap: 8px; border-top: 1px solid var(--line); padding-top: 10px; }

/* Administração › Confirmação de Agenda */
.cf-topo { display: flex; gap: 14px; align-items: center; padding: 14px 16px; border-radius: 10px; background: var(--warn-soft); border: 1px solid #f5d9a8; margin-bottom: 6px; }
.cf-topo.on { background: var(--ok-soft); border-color: #b7e4c7; } .cf-topo b { font-size: 15px; } .cf-topo .meta { margin-top: 2px; }
.cf-h { display: flex; align-items: center; gap: 8px; margin: 22px 0 8px; font-size: 15px; } .cf-h svg { width: 17px; height: 17px; color: var(--primary); }
.cf-card { padding: 14px 16px; }
.cf-rot { display: block; font-size: 11.5px; text-transform: uppercase; letter-spacing: .3px; color: var(--muted); margin: 8px 0 4px; } .cf-rot b { color: var(--text-strong); }
.cf-grid2 { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; } .cf-grid3 { display: grid; grid-template-columns: 1fr 1fr 2fr; gap: 6px; }
.cf-grid4 { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
@media (max-width: 1000px) { .cf-grid2, .cf-grid4, .cf-grid3 { grid-template-columns: 1fr; } }
.cf-gat { background: var(--surface); border: 1px solid var(--line); border-radius: 10px; margin-bottom: 10px; overflow: hidden; }
.cf-gat.off .cf-gat-corpo { opacity: .45; }
.cf-gat-cab { display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #faf8fd; border-bottom: 1px solid var(--line); flex-wrap: wrap; }
.cf-gat-cab b { font-size: 14px; } .cf-gat-q { margin-left: auto; display: flex; align-items: center; gap: 6px; font-size: 13px; color: var(--muted); }
.cf-gat-q .inp { width: auto; height: 30px; padding: 2px 6px; } .cf-gat-q input[type=number] { width: 54px; }
.cf-gat-corpo { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, 1fr); gap: 16px; padding: 4px 14px 14px; }
@media (max-width: 1000px) { .cf-gat-corpo { grid-template-columns: 1fr; } }
.cf-vars { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; } .cf-vars a { font-size: 11px; padding: 1px 7px; border-radius: 10px; background: #f3eff8; color: var(--primary); cursor: pointer; font-family: ui-monospace, monospace; }
.cf-vars a:hover { background: var(--primary); color: #fff; }
.cf-wa { background: #e5ddd5; border-radius: 10px; padding: 12px; min-height: 90px; }
.cf-wa-msg { background: #dcf8c6; border-radius: 8px 0 8px 8px; padding: 8px 10px 4px; font-size: 13px; line-height: 1.4; margin-left: 18%; box-shadow: 0 1px 1px rgba(0,0,0,.08); color: #111; }
.cf-wa-msg small { display: block; text-align: right; font-size: 10px; color: #6b7c6b; }
.cf-tipos { margin-top: 10px; font-size: 13px; } .cf-tipos summary { cursor: pointer; color: var(--primary); }
.cf-tipo { display: grid; grid-template-columns: 200px 1fr auto; gap: 6px; margin: 6px 0; align-items: start; }
.cf-teste { display: flex; align-items: center; gap: 8px; margin-top: 10px; flex-wrap: wrap; font-size: 13px; } .cf-teste .inp { max-width: 360px; }
.cf-radio { display: flex; align-items: center; gap: 6px; font-size: 13px; margin: 4px 0; }
.cf-excl { display: flex; flex-wrap: wrap; gap: 5px; }
.cf-salvar { display: flex; justify-content: flex-end; margin-top: 12px; }
.cf-simg { padding: 8px 0; border-top: 1px solid var(--line); } .cf-simg:first-child { border-top: 0; }
.cf-simm { margin: 4px 0 4px 10px; font-size: 13px; } .cf-simm summary { cursor: pointer; } .cf-simm .cf-wa { max-width: 420px; margin-top: 4px; }
.cf-sw { position: relative; display: inline-block; width: 36px; height: 20px; flex: none; } .cf-sw input { opacity: 0; width: 0; height: 0; }
.cf-sw i { position: absolute; inset: 0; background: #cfc8da; border-radius: 20px; transition: .15s; cursor: pointer; }
.cf-sw i::before { content: ''; position: absolute; width: 14px; height: 14px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: .15s; }
.cf-sw input:checked + i { background: var(--ok); } .cf-sw input:checked + i::before { transform: translateX(16px); }
.cf-sw.grande { width: 48px; height: 26px; } .cf-sw.grande i::before { width: 20px; height: 20px; } .cf-sw.grande input:checked + i::before { transform: translateX(22px); }
#cf textarea.inp { height: auto; min-height: 84px; resize: vertical; line-height: 1.4; } #cf .cf-tipo textarea.inp { min-height: 64px; }

/* Política de Mensagens › API oficial (Meta): conexão e modelos */
.mm-url { font-family: ui-monospace, monospace; font-size: 12px; background: #f6f3fa; border: 1px dashed var(--line-strong); border-radius: 8px; padding: 8px 10px; word-break: break-all; }
.mm-ajuda summary { cursor: pointer; display: flex; align-items: center; gap: 6px; color: var(--primary); } .mm-ajuda ol { margin: 8px 0 0; padding-left: 20px; font-size: 13px; line-height: 1.5; }
.mm-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 12px; }
.mm-card { padding: 12px 14px; display: flex; flex-direction: column; gap: 6px; } .mm-cab { display: flex; justify-content: space-between; gap: 8px; align-items: center; } .mm-cab b { word-break: break-all; }
.mm-acoes { display: flex; gap: 6px; justify-content: flex-end; margin-top: auto; }
.mm-btns { display: flex; flex-direction: column; gap: 3px; margin: 4px 0 0 18%; } .mm-btns span { background: #fff; color: #0a7cff; text-align: center; border-radius: 8px; padding: 6px; font-size: 13px; box-shadow: 0 1px 1px rgba(0,0,0,.08); }
.mm-form { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(260px, 1fr); gap: 18px; } @media (max-width: 900px) { .mm-form { grid-template-columns: 1fr; } }
.mm-form textarea.inp { height: auto; min-height: 120px; } .mm-cabp { font-weight: 600; font-size: 13px; margin: 0 0 4px 18%; }
#nm-map select { font-size: 12px; padding: 1px 4px; border: 1px solid var(--line-strong); border-radius: 6px; }
.cf-card textarea.inp { height: auto; min-height: 56px; }

/* Novo modelo (Meta): blocos com respiro, prévia fixa à direita */
.janela.nm-janela { width: min(980px, 96vw); }
.nm { display: grid; grid-template-columns: minmax(0, 1fr) 320px; gap: 28px; align-items: start; }
@media (max-width: 860px) { .nm { grid-template-columns: 1fr; } }
.nm-form { display: flex; flex-direction: column; gap: 22px; }
.nm-bloco { display: flex; flex-direction: column; gap: 10px; }
.nm-bloco h4 { display: flex; align-items: center; gap: 8px; margin: 0; font-size: 13.5px; font-weight: 600; color: var(--text-strong); }
.nm-bloco h4 span { width: 20px; height: 20px; border-radius: 50%; background: var(--primary-soft); color: var(--primary); font-size: 11px; display: grid; place-items: center; }
.nm-bloco h4 em { font-style: normal; font-weight: 400; font-size: 12px; color: var(--muted); margin-left: 2px; }
.nm-l2 { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); gap: 14px; }
.nm-l3 { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.nm-c { display: flex; flex-direction: column; gap: 5px; min-width: 0; }
.nm-c > span { font-size: 12px; color: var(--muted); }
.nm-c small, .nm-dica { font-size: 11.5px; color: var(--muted); line-height: 1.35; }
.nm .inp { width: 100%; height: 38px; }
.nm textarea.inp { height: auto; min-height: 118px; line-height: 1.5; padding: 10px 12px; resize: vertical; }
.nm-ins { display: flex; align-items: baseline; gap: 10px; }
.nm-ins > span { font-size: 11.5px; color: var(--muted); white-space: nowrap; }
.nm-ins > div { display: flex; flex-wrap: wrap; gap: 5px; }
.nm-ins a { font-size: 11.5px; padding: 2px 9px; border-radius: 12px; background: #f3eff8; color: var(--primary); cursor: pointer; }
.nm-ins a:hover { background: var(--primary); color: #fff; }
.nm-map { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 14px; padding: 12px 14px; background: #faf8fd; border: 1px solid var(--line); border-radius: 10px; }
.nm-map > span { grid-column: 1 / -1; font-size: 11.5px; color: var(--muted); }
.nm-map label { display: flex; align-items: center; gap: 8px; } .nm-map label b { font-family: ui-monospace, monospace; font-size: 12px; color: var(--primary); min-width: 38px; }
.nm-map .inp { height: 32px; font-size: 12.5px; }
.nm-opc summary { list-style: none; cursor: pointer; } .nm-opc summary::-webkit-details-marker { display: none; }
.nm-opc summary h4::after { content: '▾'; margin-left: auto; color: var(--muted); } .nm-opc[open] summary h4::after { content: '▴'; }
.nm-opc[open] summary { margin-bottom: 10px; }
.nm-prev { position: sticky; top: 0; display: flex; flex-direction: column; gap: 8px; }
.nm-prev-rot { font-size: 12px; color: var(--muted); } .nm-prev-rot em { font-style: normal; opacity: .7; }
.nm-prev .cf-wa { padding: 16px 14px; min-height: 180px; }
.nm-prev .cf-wa-msg { margin-left: 8%; font-size: 13.5px; line-height: 1.5; padding: 10px 12px 6px; }
.nm-prev .mm-btns { margin-left: 8%; gap: 5px; } .nm-prev .mm-cabp { margin-left: 8%; }
/* bolinha ativo/inativo na lateral das telas de configuração (Política de Mensagens) */
.mc-bol { width: 9px; height: 9px; border-radius: 50%; flex: none; background: #c9c6d1; margin: 0 2px; display: inline-block; }
.mc-bol.ok { background: #22c55e; box-shadow: 0 0 0 3px #dcfce7; }

/* Política de Mensagens › Respostas do paciente: blocos numerados com respiro */
.rp-intro { color: var(--muted); font-size: 13px; margin: -4px 0 16px; max-width: 860px; }
.rp { display: flex; flex-direction: column; gap: 14px; max-width: 920px; }
.rp-card { background: var(--surface); border: 1px solid var(--line); border-radius: 12px; padding: 16px 18px; gap: 12px; }
.rp-ops { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
@media (max-width: 760px) { .rp-ops, .rp-regras { grid-template-columns: 1fr !important; } }
.rp-op { display: flex; gap: 10px; align-items: flex-start; padding: 12px 14px; border: 1px solid var(--line-strong); border-radius: 10px; cursor: pointer; transition: .12s; background: #fff; }
.rp-op:hover { border-color: var(--primary); } .rp-op.on { border-color: var(--primary); background: var(--primary-soft); box-shadow: 0 0 0 1px var(--primary) inset; }
.rp-op input { margin-top: 3px; accent-color: var(--primary); }
.rp-op-c { display: flex; flex-direction: column; gap: 3px; } .rp-op-c b { font-size: 13.5px; color: var(--text-strong); }
.rp-op-c b em { font-style: normal; font-size: 10.5px; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; padding: 1px 7px; border-radius: 10px; background: #dcfce7; color: #15803d; margin-left: 4px; vertical-align: 1px; }
.rp-op-c small { font-size: 12px; color: var(--muted); line-height: 1.35; }
.rp-ok { color: #15803d; } .rp-no { color: #b91c1c; }
.rp-teste { display: flex; align-items: center; gap: 10px; padding: 10px 12px; background: #faf8fd; border: 1px dashed var(--line-strong); border-radius: 10px; }
.rp-teste > span:first-child { display: inline-flex; align-items: center; gap: 5px; font-size: 12.5px; color: var(--primary); font-weight: 600; white-space: nowrap; } .rp-teste svg { width: 15px; height: 15px; }
.rp-teste .inp { flex: 1; min-width: 0; height: 34px; background: #fff; } .rp-tr { white-space: nowrap; font-size: 12.5px; }
.rp-card textarea.inp { min-height: 58px; height: auto; line-height: 1.45; padding: 8px 11px; resize: vertical; }
.rp-card .inp { height: 38px; } .rp-card .nm-c { gap: 6px; }
.rp-regras { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px 14px; margin-bottom: 4px; } .rp-regras .rp-larga { grid-column: span 3; }
.rp-un { display: flex; align-items: center; gap: 8px; } .rp-un i { font-style: normal; font-size: 12px; color: var(--muted); }
.rp-sub { font-size: 12px; color: var(--muted); margin-top: 6px; display: block; }
.rp-salvar { display: flex; justify-content: flex-end; position: sticky; bottom: 0; padding: 10px 0 4px; background: linear-gradient(to top, var(--surface) 70%, transparent); }
.rp-regras { grid-template-columns: 150px 150px minmax(0, 1fr) 180px; } .rp-regras .rp-larga { grid-column: 1 / -1; }
.rp-regras .rp-un .inp { width: 80px; }
.rp-sub { margin-top: 10px; } .rp-sub b { color: var(--text-strong); font-weight: 600; }

/* Banco do Boleto: cartões com switch (um banco emite por vez) */
.bb-grade { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 14px; margin-top: 10px; }
.bb-card { border: 1px solid var(--borda, #e5e1ee); border-radius: 12px; padding: 16px; background: #fff; transition: border-color .15s, box-shadow .15s; }
.bb-card.on { border-color: #6d28d9; box-shadow: 0 0 0 3px rgba(109, 40, 217, .12); }
.bb-topo { display: flex; align-items: center; gap: 12px; }
.bb-topo > div { flex: 1; min-width: 0; }
.bb-sw { position: relative; width: 44px; height: 24px; flex: none; cursor: pointer; }
.bb-sw input { opacity: 0; width: 0; height: 0; }
.bb-sw span { position: absolute; inset: 0; background: #d4d0dc; border-radius: 24px; transition: background .15s; }
.bb-sw span::before { content: ''; position: absolute; width: 18px; height: 18px; left: 3px; top: 3px; background: #fff; border-radius: 50%; transition: transform .15s; box-shadow: 0 1px 3px rgba(0,0,0,.2); }
.bb-sw input:checked + span { background: #6d28d9; }
.bb-sw input:checked + span::before { transform: translateX(20px); }
.bb-sw input:disabled + span { opacity: .45; cursor: not-allowed; }
.bb-st { list-style: none; padding: 0; margin: 14px 0 0; display: grid; gap: 6px; font-size: 13px; }
.bb-st li { display: flex; align-items: center; gap: 6px; }
.bb-st li svg { width: 15px; height: 15px; flex: none; }
.bb-st .ok { color: #15803d; } .bb-st .warn { color: #b45309; } .bb-st .bad { color: #b91c1c; }
.bb-acoes { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 14px; }
.bo-filtros { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 4px 0 6px; }
.bo-filtros .ag-pill.on { background: #6d28d9; color: #fff; border-color: #6d28d9; }
.bo-filtros .ag-pill small { opacity: .7; margin-left: 2px; }
.pf-cab { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin: 4px 0 10px; }
.fn-nn { color: var(--meta, #6b6880); margin: 0 4px; font-size: 11px; }
/* Prontuário › Telefones */
.tl-ajuda { display: flex; gap: 8px; align-items: flex-start; background: #f6f3fd; border: 1px solid #e7e0f7; border-radius: 8px; padding: 10px 12px; font-size: 13px; color: #4b4560; margin: 4px 0 14px; line-height: 1.45; }
.tl-ajuda svg { width: 16px; height: 16px; flex: none; margin-top: 1px; color: var(--primary); }
.tl-linha { display: grid; grid-template-columns: 180px minmax(200px, 1fr) auto auto; gap: 14px; align-items: end; padding: 10px 0; border-bottom: 1px solid var(--line); }
.tl-linha:last-child { border-bottom: 0; }
.tl-c { display: flex; flex-direction: column; gap: 4px; } .tl-c > span { font-size: 11px; text-transform: uppercase; letter-spacing: .03em; color: #6b6880; font-weight: 600; }
.tl-c em { font-style: normal; text-transform: none; background: #ede9fe; color: var(--primary); border-radius: 6px; padding: 0 6px; margin-left: 4px; font-weight: 600; }
.tl-sw { display: flex; align-items: center; gap: 8px; height: 38px; cursor: pointer; font-size: 13px; color: #4b4560; white-space: nowrap; }
.tl-sw input { display: none; } .tl-sw i { width: 36px; height: 20px; border-radius: 20px; background: #d4d0dc; position: relative; transition: background .15s; flex: none; }
.tl-sw i::before { content: ''; position: absolute; width: 16px; height: 16px; left: 2px; top: 2px; border-radius: 50%; background: #fff; transition: transform .15s; box-shadow: 0 1px 2px rgba(0,0,0,.25); }
.tl-sw input:checked + i { background: #16a34a; } .tl-sw input:checked + i::before { transform: translateX(16px); }
.tl-acoes { display: flex; gap: 4px; height: 38px; align-items: center; } .tl-acoes .btn-ic.bad { color: #dc2626; }
@media (max-width: 760px) { .tl-linha { grid-template-columns: 1fr 1fr; } }
/* botão de WhatsApp no cabeçalho do prontuário */
.pr-b.pr-zap { background: #fff; color: #16a34a; border: 1.5px solid #bbf7d0; } .pr-b.pr-zap:hover { background: #f0fdf4; } .pr-b.pr-zap svg { width: 19px; height: 19px; }
/* Comprovante opcional no pagamento */
.fn-comp { display: flex; align-items: center; gap: 10px; margin-top: 12px; padding: 10px 12px; border: 1px dashed #cfc7e6; border-radius: 8px; background: #faf8ff; font-size: 13px; color: #4b4560; cursor: pointer; flex-wrap: wrap; }
.fn-comp svg { width: 16px; height: 16px; color: var(--primary); } .fn-comp small { color: #8a85a0; } .fn-comp input { font-size: 12px; margin-left: auto; }
/* Painel de Gestão Financeira › Visão Geral — medidas e cores do CO */
.pf-box .pf-per { display: flex; flex-direction: column; gap: 4px; } .pf-box .pf-per > label { font-size: 12px; font-weight: 700; color: #333; }
.pf-box .fn-filtros select, .pf-box .fn-per select { height: 30px; font-size: 12.5px; }
.pf-cartoes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; margin: 14px 0; }
.pf-c { background: #fff; border-radius: 8px; height: 96px; box-sizing: border-box; padding: 12px 8px; text-align: center; display: flex; flex-direction: column; justify-content: center; gap: 3px; box-shadow: 0 1px 5px rgba(20,20,40,.07); border: 1px solid transparent; }
.pf-c > b { font-size: 19px; font-weight: 400; color: #3c78b4; white-space: nowrap; } .pf-c > small { font-size: 9.5px; font-weight: 700; color: #2b5fa0; } .pf-c > span { font-size: 13px; color: #555; }
.pf-c.ok { border-color: #9fd8aa; } .pf-c.alerta { border-color: #f2b58e; }
.pf-duas { display: grid; grid-template-columns: 1.75fr 1fr; gap: 16px; margin-bottom: 16px; }
.pf-bloco { background: #eceef2; border-radius: 8px; padding: 14px 18px; margin-bottom: 16px; } .pf-duas .pf-bloco { margin-bottom: 0; }
.pf-bloco > h4 { margin: 0 0 8px; font-size: 19px; font-weight: 400; color: #333; } .pf-bloco > h4 small { font-size: 11px; color: #888; }
.pf-proj { text-align: center; padding: 36px 0 20px; } .pf-proj b { display: block; font-size: 36px; font-weight: 400; color: #3c78b4; } .pf-proj small { color: #2b5fa0; font-weight: 700; font-size: 11px; }
.pf-vendas { display: grid; grid-template-columns: 1fr 1fr; gap: 8px 24px; border-top: 1px solid #dcdfe5; padding-top: 10px; }
.pf-vendas h5 { text-align: center; margin: 6px 0 0; font-size: 14px; font-weight: 500; color: #333; } .pf-vendas h5 small { display: block; font-size: 11.5px; color: #666; font-weight: 400; margin-top: 2px; }
@media (max-width: 1100px) { .pf-cartoes { grid-template-columns: repeat(3, minmax(0, 1fr)); } .pf-duas, .pf-vendas { grid-template-columns: 1fr; } }
/* Parecer Jarvis (no lugar do Parecer ZaiONe) */
.pf-btjarvis { border-color: #d9c8f0; color: #5b2d82; }
.pf-parecer { background: #f4f2f8; border: 1px solid #e3dcef; border-radius: 10px; padding: 14px 18px; margin: 0 0 14px; }
.pf-pcab { display: flex; align-items: baseline; gap: 8px; margin-bottom: 8px; } .pf-pcab b { font-size: 17px; color: #2b2638; display: inline-flex; gap: 6px; align-items: center; } .pf-pcab b svg { color: #e2a50b; width: 17px; height: 17px; } .pf-pcab small { color: #888; font-size: 11px; }
.pf-panalisou { font-size: 12px; color: #555; margin-bottom: 8px; display: flex; gap: 6px; align-items: center; flex-wrap: wrap; } .pf-panalisou span { background: #fff; border: 1px solid #e3dcef; border-radius: 6px; padding: 1px 8px; font-weight: 600; color: #5b2d82; }
.pf-presumo { font-size: 13.5px; line-height: 1.55; color: #2b2638; margin: 6px 0 10px; } .pf-pprio { font-size: 13px; line-height: 1.5; margin: 6px 0; color: #333; } .pf-pprio b { color: #5b2d82; }
.pf-pcarrega { display: flex; align-items: center; gap: 10px; justify-content: center; padding: 26px; color: #777; font-size: 13px; } .pf-pcarrega svg { width: 22px; height: 22px; color: #8b5cf6; animation: pfgira 1.6s linear infinite; }
@keyframes pfgira { to { transform: rotate(360deg); } }
.pf-prod { margin-top: 8px; color: #888; }

/* Contas a Receber › Cartões (maquininha Saúde Service) */
.ct-sub { font-size: 14px; margin: 14px 0 6px; display: flex; align-items: center; gap: 6px; color: var(--primary); }
.ct-sub svg { width: 16px; height: 16px; }
.cv-res { display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: 6px; margin-top: 4px; max-height: 220px; overflow: auto; }
.cv-res:empty { display: none; }
.cv-res a { padding: 6px 10px; cursor: pointer; }
.cv-res a:hover { background: var(--primary-soft); }
