/* DR-76: direção Malha aprovada. Fontes locais; nenhum pedido a serviço de fontes. */
:root {
  --paper:#E7EAEF; --card:#FFFFFF; --field:#FFFFFF;
  --ink:#1B2447; --ink-2:#3D4867; --ink-3:#56607A;
  --line:#D8DDE5; --line-strong:#BAC1CD; --control:#768093;
  --navy:#0C1023; --on-navy:#FFFFFF; --on-navy-2:#C8D3EA;
  --action:#F58220; --on-action:#241002; --action-hover:#E86F12;
  --error-bg:#FEF2F2; --error-text:#991B1B;
  --info-bg:#E1ECFB; --info-text:#1D4ED8;
  --grid:rgba(27,36,71,.06); --grid-navy:rgba(169,198,232,.06);
  --font:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  --clinica:#386EBE; --sobre-clinica:#FFFFFF;
  --suf-bg:#FF7A12; --suf-ink:#0C1023;
  --horario-bg:#1767E8; --horario-ink:#FFFFFF;
  --orcamento-bg:#00B874; --orcamento-ink:#0C1023;
  --chanfro:polygon(0 0,calc(100% - 12px) 0,100% 12px,100% 100%,12px 100%,0 calc(100% - 12px));
  --chanfro-sm:polygon(0 0,calc(100% - 7px) 0,100% 7px,100% 100%,7px 100%,0 calc(100% - 7px));
  --movimento-duracao:200ms; --movimento-curva:ease-out; --movimento-card-y:-3px; --altura-topo:40px;
  color-scheme:light;
}
:root[data-theme="escuro"] {
  --paper:#0B0F1C; --card:#131A2B; --field:#0F1524;
  --ink:#E7EBF3; --ink-2:#BAC4D8; --ink-3:#A7B1C7;
  --line:#273046; --line-strong:#485570; --control:#71809E;
  --navy:#070A16; --on-navy:#FFFFFF; --on-navy-2:#C8D3EA;
  --action:#F58220; --on-action:#241002; --action-hover:#FF9A43;
  --error-bg:#341B24; --error-text:#FECACA;
  --info-bg:#12233D; --info-text:#93C5FD;
  --grid:rgba(169,198,232,.045); --grid-navy:rgba(169,198,232,.05);
  --suf-bg:#FF7A12; --suf-ink:#0C1023;
  --horario-bg:#1767E8; --horario-ink:#FFFFFF;
  --orcamento-bg:#00B874; --orcamento-ink:#0C1023;
  color-scheme:dark;
}
* {box-sizing:border-box}
[hidden] {display:none!important}
html {min-width:0;scrollbar-color:var(--control) var(--paper)}
body {margin:0;min-width:0;background:linear-gradient(var(--grid) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,var(--grid) 1px,transparent 1px) 0 0/24px 24px,var(--paper);color:var(--ink);font:400 14px/1.5 var(--font);font-variant-numeric:tabular-nums}
h1,h2,h3,p {margin:0}
h1,h2,h3 {text-wrap:balance}
h1 {font-size:26px;line-height:1.2;letter-spacing:-.025em;font-weight:800}
h2 {font-size:17px;line-height:1.3;font-weight:700}
h3 {font-size:15px;line-height:1.3;margin-top:12px}
button,input,select,textarea {font:inherit;color:inherit;max-width:100%}
button {touch-action:manipulation}
button,a {text-underline-offset:3px}
button:disabled {cursor:default}
input,select,textarea {min-width:0;border:1px solid var(--control);background:var(--field);padding:8px 12px;min-height:40px;line-height:22px;caret-color:var(--ink);border-radius:0}
input::placeholder,textarea::placeholder {color:var(--ink-3);opacity:1}
::selection {background:var(--action);color:var(--on-action)}
:focus-visible {outline:3px solid var(--action);outline-offset:3px}
.pular {position:fixed;top:8px;left:8px;z-index:100;transform:translateY(-200%);padding:10px;background:var(--card);color:var(--ink)}
.pular:focus {transform:none}
.wrap {max-width:1240px;margin:0 auto;padding-inline:max(16px,env(safe-area-inset-left,0px));width:100%;min-width:0}
.mudo,.vazio {color:var(--ink-3);font-size:13px}
.vazio {padding:7px 0;line-height:1.6;max-width:60ch}
.carregando {padding:48px 24px;color:var(--ink-3);text-align:center}
.btn {display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--control);background:var(--card);color:var(--ink);padding:6px 14px;min-height:36px;line-height:20px;font-weight:600;cursor:pointer;transition:background-color var(--movimento-duracao) var(--movimento-curva),color var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
.btn:focus-visible {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
@media (hover:hover) { .btn:hover:not(:disabled) {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)} }
.btn-pri {background:var(--action);border-color:var(--action);color:var(--on-action);clip-path:var(--chanfro-sm)}
.btn:disabled {opacity:.65}
.link {border:0;padding:4px 0;background:transparent;color:var(--info-text);text-decoration:underline;cursor:pointer;text-align:left}
.link:focus-visible {color:var(--ink)}
@media (hover:hover) { .link:hover {color:var(--ink)} }
.campo {display:flex;flex-direction:column;gap:5px;min-width:0}
.campo label {font-size:12px;font-weight:600;color:var(--ink-2)}
.erro,.informacao {padding:10px 12px;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.erro {background:var(--error-bg);color:var(--error-text);border:1px solid currentColor}
.informacao {background:var(--info-bg);color:var(--info-text)}
.linha-acoes {display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:12px;color:var(--ink-3)}
.login {min-height:100svh;display:flex;align-items:center;justify-content:center;padding:48px 20px;background:linear-gradient(var(--grid-navy) 1px,transparent 1px) 0 0/28px 28px,linear-gradient(90deg,var(--grid-navy) 1px,transparent 1px) 0 0/28px 28px,radial-gradient(700px 500px at 50% 40%,rgba(56,110,190,.3),transparent 70%),#0C1023;color:#FFFFFF}
.login-col {width:min(380px,100%);display:flex;flex-direction:column;align-items:center;gap:24px;min-width:0}
.login-marca {display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center}
.login-marca h1 {font-size:30px;font-weight:800;letter-spacing:-.025em}
.login-marca p {color:#C8D3EA;font-size:13px;max-width:36ch}
.cartao {width:100%;background:var(--card);color:var(--ink);clip-path:var(--chanfro);padding:26px;display:flex;flex-direction:column;gap:15px;box-shadow:0 12px 34px rgba(0,0,0,.3)}
.cartao h2 {font-size:20px}
.cartao .btn-pri {min-height:44px}
@media (hover:hover) { .cartao .btn-pri:hover {background:var(--action-hover);border-color:var(--action-hover);color:var(--on-action)} }
.login-rodape {font-size:12px;color:#C8D3EA;text-align:center;max-width:38ch}
/* DR-150: reserva visual sem imagens; formulário à direita no desktop. */
.login-entrada {display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,520px);padding:0}
.login-visual {grid-column:1;min-height:100svh}
.login-acesso {grid-column:2;min-height:100svh;display:flex;align-items:center;justify-content:center;padding:48px 40px;background:var(--paper);color:var(--ink)}
.login-entrada .login-marca {color:var(--ink)}
.login-entrada .login-marca p,.login-entrada .login-rodape {color:var(--ink-3)}
.topo {background:linear-gradient(var(--grid-navy) 1px,transparent 1px) 0 0/24px 24px,linear-gradient(90deg,var(--grid-navy) 1px,transparent 1px) 0 0/24px 24px,var(--navy);color:var(--on-navy);border-bottom:3px solid var(--clinica)}
.topo .wrap {display:flex;align-items:center;gap:14px;padding-block:13px;flex-wrap:wrap}
.nome-marca {font-size:15px;color:var(--on-navy-2);margin-right:auto;letter-spacing:-.015em}
.seletor {display:flex;flex-direction:column;gap:5px;max-width:100%;min-width:0}
.contexto-clinica {display:flex;align-items:center;gap:8px;min-width:0;max-width:100%}
.configuracoes-topo {display:flex;align-items:center;gap:6px}
.seletor label {font-size:12px;color:var(--on-navy-2)}
.caixa {display:flex;align-items:center;gap:8px;background:rgba(255,255,255,.07);border:0;box-shadow:inset 0 0 0 2px var(--clinica);padding:0 10px;height:40px;min-height:40px;min-width:220px;max-width:100%;clip-path:var(--chanfro-sm)}
.caixa i {width:10px;height:10px;border-radius:50%;background:var(--clinica);flex:none}
.clinica-logo {width:28px;height:28px;object-fit:contain;flex:0 0 28px}
.caixa select {background:transparent;border:0;color:#FFFFFF;font-weight:700;flex:1;min-width:0;padding:0;height:40px}
.caixa select option {color:#1B2447;background:#FFFFFF}
.usuario {display:flex;align-items:center;gap:8px;font-size:13px;min-width:0}
.usuario b {max-width:18ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.av {width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:#386EBE;color:#FFFFFF;font-size:12px;font-weight:700;clip-path:var(--chanfro-sm);flex:none}
.acoes-topo {display:flex;gap:6px;flex-wrap:wrap}
.icone-acao {display:none}
.btn-escuro {background:transparent;border:1px solid #71809E;color:#FFFFFF;min-height:36px;padding:6px 11px;cursor:pointer;transition:background-color var(--movimento-duracao) var(--movimento-curva),color var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
.btn-escuro:focus-visible:not(:disabled) {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
@media (hover:hover) { .btn-escuro:hover:not(:disabled) {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)} }
.btn-escuro:disabled {opacity:.65}
.corpo {padding-block:26px 64px;display:flex;flex-direction:column;gap:20px}
.saud {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px}
.grade {display:grid;grid-template-columns:minmax(0,1fr) 350px;gap:17px;align-items:start}
.col {display:flex;flex-direction:column;gap:17px;min-width:0}
.painel {background:var(--card);border:1px solid color-mix(in srgb,var(--clinica) 55%,var(--line-strong));padding:17px;display:flex;flex-direction:column;gap:13px;min-width:0;box-shadow:0 18px 46px -26px color-mix(in srgb,var(--clinica) 45%,transparent)}
.painel-cab {display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap}
.eu {flex-direction:row;flex-wrap:wrap;align-items:center;gap:14px;color:#FFFFFF;border:0;clip-path:var(--chanfro);background:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/16px 16px,linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/16px 16px,radial-gradient(420px 220px at 0 0,rgba(255,255,255,.06),transparent 70%),color-mix(in srgb,var(--clinica) 35%,#0C1023)}
.eu .av {width:44px;height:44px;font-size:15px;background:#FFFFFF;color:#1B2447}
.dados {display:flex;flex-direction:column;gap:3px;min-width:0;flex:1 1 170px}
.dados small {color:#FFFFFF;font-size:12px}
.chips {display:flex;flex-wrap:wrap;gap:6px}
.chip {font-size:12px;border:1px solid rgba(255,255,255,.5);background:rgba(12,16,35,.18);padding:3px 9px;border-radius:999px;color:#FFFFFF}
.sistemas {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr));gap:12px}
.sis {--sis:#386EBE;position:relative;overflow:hidden;isolation:isolate;padding:15px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;text-align:left;color:#FFFFFF;min-height:172px;border:1px solid color-mix(in srgb,var(--sis) 70%,#FFFFFF);background:linear-gradient(150deg,color-mix(in srgb,var(--sis) 55%,#0C1023),color-mix(in srgb,var(--sis) 40%,#0C1023));box-shadow:inset 0 1px 0 rgba(255,255,255,.4);opacity:1}
.sis::before {content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,rgba(255,255,255,.12),rgba(255,255,255,.03) 38%,transparent 52%);z-index:0}
.sis>* {position:relative;z-index:1}
.sis .ic {width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.16);clip-path:var(--chanfro-sm)}
.nome-sis {display:flex;flex-direction:column;gap:1px;line-height:1.15}
.nome-sis small {font-size:12px;font-weight:600}
.nome-sis b {font-size:22px;font-weight:800;letter-spacing:-.025em}
.selo {font-size:12px;display:inline-flex;align-items:center;gap:5px;color:inherit;border:1px solid currentColor;padding:3px 8px;border-radius:999px;margin-top:auto;max-width:100%;text-wrap:balance}
.sis[data-sistema="suf"] {--sis-fundo:var(--suf-bg);--sis-texto:var(--suf-ink)}
.sis[data-sistema="horario"] {--sis-fundo:var(--horario-bg);--sis-texto:var(--horario-ink)}
.sis[data-sistema="orcamento"] {--sis-fundo:var(--orcamento-bg);--sis-texto:var(--orcamento-ink)}
.sis[data-sistema="suf"],.sis[data-sistema="horario"],.sis[data-sistema="orcamento"] {background:var(--sis-fundo);color:var(--sis-texto)}
.sis.fora {border-style:dashed}
.sis.fora::before,.sis.sem-acesso::before {display:none}
.sis.sem-acesso {filter:grayscale(1);background:#475067;color:#FFFFFF;border-color:#71809E}
.cad-lista {display:flex;flex-direction:column}
.cad-lista button {display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;background:transparent;border:0;border-top:1px solid var(--line);padding:10px 8px;text-align:left;color:var(--ink);opacity:1}
.cad-lista button:first-child {border-top:0}
.cad-lista .cont {width:48px;min-height:31px;display:flex;align-items:center;justify-content:center;flex:none;background:var(--paper);color:var(--ink-3);border:1px solid var(--line-strong);clip-path:var(--chanfro-sm);font-size:17px}
.cad-lista button>span:first-child {min-width:0;display:flex;flex-direction:column;gap:2px}
.cad-lista b {font-size:13px;font-weight:600}
.cad-lista small {font-size:12px;color:var(--ink-3)}
.aviso-sessao {display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;background:var(--info-bg);color:var(--info-text);border:1px solid currentColor;padding:14px 16px}
.aviso-sessao p {font-size:13px;margin-top:3px}
.aviso-sessao .btn {flex:none}
.aviso-internet {margin:16px;max-width:1100px;font-size:13px;overflow-wrap:anywhere}
.tema {position:fixed;right:calc(14px + env(safe-area-inset-right,0px));bottom:calc(14px + env(safe-area-inset-bottom,0px));z-index:50;width:36px;height:36px;display:inline-flex;align-items:center;justify-content:center;background:var(--card);color:var(--ink-3);border:1px solid var(--line-strong);clip-path:var(--chanfro-sm);cursor:pointer}
.tema:focus-visible {background:var(--clinica);color:var(--sobre-clinica)}
@media (hover:hover) { .tema:hover {background:var(--clinica);color:var(--sobre-clinica)} }
.mensagem {position:fixed;bottom:58px;right:14px;left:14px;max-width:620px;margin-left:auto;z-index:60;padding:13px 16px;background:var(--card);color:var(--ink);border:1px solid var(--control);box-shadow:0 8px 30px rgba(0,0,0,.18);overflow-wrap:anywhere}
.aviso-ambiente {padding:7px 16px;background:var(--info-bg);color:var(--info-text);text-align:center;font-size:12px}
.abas {display:flex;flex-wrap:wrap;gap:7px;border-bottom:1px solid var(--line);padding-bottom:12px}
.abas button {padding:6px 13px;min-height:36px;line-height:20px;background:var(--card);border:1px solid var(--line-strong);cursor:pointer}
.abas button[aria-current="page"] {background:var(--clinica);color:var(--sobre-clinica);border-color:var(--clinica)}
.abas button:not(:disabled):focus-visible {background:var(--clinica);color:var(--sobre-clinica);border-color:var(--clinica)}
@media (hover:hover) { .abas button:not(:disabled):hover {background:var(--clinica);color:var(--sobre-clinica);border-color:var(--clinica)} }
.form-grade {display:flex;flex-direction:column;gap:13px;max-width:760px;margin-block:8px 18px}
.campos-permissao,.regra-cargo {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.regra-cargo {padding-block:12px;border-bottom:1px solid var(--line)}
.form-grade>.btn {align-self:flex-start}
.chave-mfa {display:block;margin-top:8px;overflow-wrap:anywhere;font-size:16px;letter-spacing:.04em;font-weight:600;padding:12px;background:var(--paper);color:var(--ink)}
.pedido {padding:9px 0;border-bottom:1px solid var(--line);font-size:13px}
@media (max-width:1100px) {
  .topo .wrap {flex-wrap:nowrap}
  .nome-marca {display:none}
  .contexto-clinica {flex:1;min-width:0}
  .seletor {flex:1;min-width:0}
  .caixa {min-width:0}
  .configuracoes-topo {flex:none;white-space:nowrap}
  .usuario {flex:none}
  .usuario b {max-width:12ch}
  .acoes-topo {flex:none;flex-wrap:nowrap}
}
@media (max-width:980px) {.grade {grid-template-columns:minmax(0,1fr)} .nome-marca {display:none} .usuario {margin-left:auto}}
@media (max-width:800px) {
  .login-entrada {display:block;background:var(--paper)}
  .login-visual {display:none}
  .login-acesso {padding:32px 24px}
}
@media (max-width:600px) {
  /* O controle ocupa o fim da página; não atravessa textos ou selos ao rolar. */
  .tema {position:static;display:flex;margin-left:auto;margin-right:max(14px,env(safe-area-inset-right,0px));margin-bottom:max(14px,env(safe-area-inset-bottom,0px))}
  .topo .wrap {gap:8px;padding-block:8px;flex-wrap:wrap}
  .contexto-clinica {flex:1 1 100%}
  .configuracoes-topo {width:44px;min-height:44px;padding:0;justify-content:center;flex:none}
  .configuracoes-topo .rotulo-acao {display:none}
  .topo-logo {display:none}
  .seletor {flex:1 1 100px;min-width:0}
  .seletor label {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
  .caixa {min-width:0;min-height:44px;padding-inline:8px;gap:6px}
  .caixa select {font-size:16px}
  .usuario {margin-left:0;gap:0;flex:none}
  .usuario b {display:none}
  .usuario .av {width:32px;height:32px}
  .acoes-topo {margin-left:0;gap:4px;flex-wrap:nowrap;flex:none}
  .acoes-topo .btn-escuro {display:flex;align-items:center;justify-content:center;width:44px;min-height:44px;padding:0;flex:none}
  .acoes-topo .rotulo-acao {display:none}
  .acoes-topo .icone-acao {display:block}
  .corpo {padding-block:14px 48px;gap:12px}
  .grade,.col {gap:12px}
  .saud h1 {font-size:20px}
  .saud [data-contexto] {display:none}
  .painel {padding:12px;gap:10px}
  .painel-cab .mudo {display:none}
  .painel-sistemas {order:1}
  .painel-demandas {order:2}
  .eu {gap:8px}
  .eu>.av {display:none}
  .dados {flex-basis:100%}
  .chips {gap:4px}
  .chip {font-size:12px;padding:2px 7px}
  .sistemas {grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
  .sis {display:grid;grid-template-columns:28px minmax(0,1fr);grid-template-rows:auto auto;gap:6px 8px;padding:12px;min-height:108px;align-items:start}
  .sis .ic {width:28px;height:28px}
  .nome-sis {min-width:0;overflow-wrap:anywhere}
  .nome-sis small {font-size:12px}
  .nome-sis b {font-size:18px}
  .selo {grid-column:1/-1;justify-self:start;margin-top:0;font-size:12px;line-height:1.3;padding:2px 6px}
  .cad-lista button {min-height:50px}
  .login {padding:32px 16px}
  .login-entrada {padding:0}
  .login-acesso {padding:24px 16px}
  .login-entrada .login-marca,.login-entrada .login-rodape {display:none}
  .cartao {padding:22px}
  .campos-permissao,.regra-cargo {grid-template-columns:minmax(0,1fr)}
  .form-grade>.btn {align-self:stretch}
}
/* Em telas estreitas, cada sistema usa uma linha larga em vez de esmagar texto.
   O selo pode mudar inteiro de posição, mas seu conteúdo continua em uma linha. */
@media (max-width:420px) {
  .sistemas {grid-template-columns:minmax(0,1fr)}
  .sis {display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;padding:10px;min-height:64px;overflow:visible}
  .sis .ic {flex:0 0 28px}
  .nome-sis {min-width:max-content;overflow-wrap:normal;word-break:normal;hyphens:none;flex:1 0 auto}
  .nome-sis b {white-space:nowrap}
  .selo {white-space:nowrap;text-wrap:nowrap;flex:0 0 auto;max-width:none;margin-left:auto}
}
@media (prefers-reduced-motion:reduce) {*,*::before,*::after {animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important} .entrada-tela {animation:none!important;opacity:1!important} .sis {transform:none!important}}
/* Parte 4 · cadastros. A prévia aprovada define a malha, cores e densidade. */
.cadastros {display:flex;flex-direction:column;gap:14px;min-width:0}
.cadastros :is(h1,h2,h3,button,b,small,p,td) {overflow-wrap:anywhere}
.cadastros h1 {font-size:24px}
.cadastros h3 {margin-top:0}
.cadastros .painel {padding:16px;gap:12px}
.cad-trilha {display:flex;align-items:center;gap:7px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3)}
.cad-trilha .cad-voltar {min-height:36px;padding:6px 12px;margin-right:5px}
.cad-link {padding:2px 0;background:transparent;border:0;color:var(--info-text);text-align:left;font-weight:600;cursor:pointer;min-height:36px;line-height:20px}
.cad-link:focus-visible {text-decoration:underline;text-underline-offset:3px}
@media (hover:hover) { .cad-link:hover {text-decoration:underline;text-underline-offset:3px} }
.cad-card-texto {display:none}
.cad-menu {display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
.cad-menu button {display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:4px;min-height:44px;padding:6px 10px;min-width:0;border-color:var(--line-strong);font-size:12px;text-align:left}
.cad-menu button[aria-current="true"] {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
.cad-somente-consulta {filter:grayscale(1);color:var(--ink-3)}
.cad-lista button.cad-somente-consulta {color:var(--ink-3)}
.cad-menu button.cad-somente-consulta[aria-current="true"] {filter:none;background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
.cad-somente-consulta b {display:flex;align-items:center;gap:6px}
.cad-somente-consulta b svg {flex:none}
.cad-contagem {font-size:18px;line-height:1;font-weight:600}
.cad-barra {display:flex;flex-wrap:wrap;gap:8px;align-items:end}
.cad-barra .campo {flex:0 1 190px}
.cad-barra .campo:first-child {flex-basis:230px}
.cad-barra input,.cad-barra select {width:100%;min-height:40px;padding:8px 10px}
.cad-barra>.btn {font-size:12px;padding:6px 11px;min-height:36px}
.cad-colunas {position:relative;max-width:100%}
.cad-colunas summary {list-style:none;font-size:12px;min-height:36px}
.cad-colunas summary::-webkit-details-marker {display:none}
.cad-colunas-pop {position:absolute;top:44px;right:0;z-index:15;min-width:200px;max-width:calc(100vw - 48px);padding:8px;display:flex;flex-direction:column;gap:5px;background:var(--card);border:1px solid var(--control);box-shadow:0 12px 30px rgba(0,0,0,.2)}
.cad-colunas-pop .btn {justify-content:flex-start;min-height:36px;font-size:12px}
.cad-colunas-pop [aria-pressed="true"] {background:var(--info-bg);color:var(--info-text)}
.cad-rolagem {overflow-x:auto;min-width:0}
.cad-tab {width:100%;border-collapse:collapse;font-size:13px}
.cad-tab th {text-align:left;vertical-align:bottom;font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);border-bottom:1px solid var(--line-strong)}
.cad-th {border:0;background:transparent;color:inherit;font:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer;min-height:36px;padding:6px 10px;line-height:20px;text-align:left;width:100%}
.cad-tab [aria-sort="ascending"] .cad-th::after {content:" ↑"}
.cad-tab [aria-sort="descending"] .cad-th::after {content:" ↓"}
.cad-tab td {border-bottom:1px solid var(--line);padding:2px 10px;height:41px;min-height:40px;vertical-align:middle;line-height:1.35}
.cad-tab td:first-child {font-weight:600;min-width:150px}
.cad-tab tbody tr:focus-within {background:color-mix(in srgb,var(--clinica) 8%,transparent)}
@media (hover:hover) { .cad-tab tbody tr:hover {background:color-mix(in srgb,var(--clinica) 8%,transparent)} }
.cad-grade2 {display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:16px;align-items:start}
.cad-cab-ficha {display:flex;gap:12px;align-items:center;flex-wrap:wrap}
.cad-cab-ficha .av {width:44px;height:44px;font-size:15px;background:var(--clinica);color:var(--sobre-clinica)}
.cad-quem {flex:1 1 180px;min-width:0}
.cad-acoes {display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.cad-acoes .btn {font-size:12px;min-height:36px;padding:6px 10px}
.cad-selo {display:inline-flex;font-size:12px;padding:3px 8px;border:1px solid var(--line-strong);background:var(--paper);color:var(--ink-2);border-radius:99px}
.cad-dados {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 16px}
.cad-dado {display:flex;flex-direction:column;gap:2px;min-width:0}
.cad-dado b {font-size:14px;font-weight:600;overflow-wrap:anywhere}
.cad-rotulo {font-size:12px;font-weight:600;letter-spacing:.045em;text-transform:uppercase;color:var(--ink-3)}
.cad-abas {display:flex;flex-wrap:wrap;gap:6px}
.cad-abas .btn {min-height:36px;padding:6px 12px;font-size:12px}
.cad-abas [aria-current="page"] {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
.cad-abas button:disabled {border-style:dashed}
.cad-form {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;min-width:0}
.cad-form input:not([type="checkbox"]):not([type="color"]),.cad-form select,.cad-form textarea {width:100%}
.cad-form textarea {min-height:74px;resize:vertical}
.cad-form>.cad-opcoes,.cad-form>.cad-vigencia,.cad-form>.cad-aviso-cpf,.cad-form>.cad-turnos,.cad-form>.cad-acoes,.cad-form>.erro,.cad-form>.mudo {grid-column:1/-1}
.cad-form .campo:has(input[type="checkbox"]) {flex-direction:row;align-items:center;gap:10px}
.cad-form .campo:has(input[type="checkbox"]) label {order:2}
.cad-form .campo:has(input[type="checkbox"]) input {width:18px;height:18px;accent-color:var(--clinica)}
.cad-vinculo {padding:12px;border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;min-width:0}
.cad-vinculo h3 {font-size:14px}
.cad-opcoes {margin:0;padding:12px;border:1px solid var(--line-strong);display:flex;gap:10px;flex-wrap:wrap;min-width:0}
.cad-opcoes>.cad-vinculo {flex:1 1 220px}
.cad-opcoes legend,.cad-vigencia legend,.cad-turno legend {padding-inline:6px;font-size:13px;font-weight:600}
.cad-toggle {display:flex;gap:8px;align-items:center;font-size:13px;padding:4px}
.cad-toggle input {width:17px;height:17px;accent-color:var(--clinica)}
.cad-aviso {padding:12px;background:var(--info-bg);color:var(--info-text);border:1px solid currentColor;font-size:13px;line-height:1.5;overflow-wrap:anywhere}
.cad-aviso.cad-aviso,.cad-vigencia {border-color:var(--control)}
.cad-aviso.cad-erro {background:var(--error-bg);color:var(--error-text)}
.cad-aviso-cpf,.cad-vigencia {margin:0;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:12px;padding:12px;background:var(--info-bg);color:var(--info-text)}
.cad-turnos {display:flex;flex-direction:column;gap:14px}
.cad-turno {margin:0;min-width:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;padding:12px;border:1px solid var(--line-strong)}
.cad-turno input,.cad-turno select {width:100%}
.cad-agenda {width:100%;border-collapse:collapse;table-layout:fixed;font-size:12px;line-height:1.3}
.cad-agenda th {font-size:12px;font-weight:600;color:var(--ink-3);padding:5px 2px;text-align:center}
.cad-agenda th:first-child {width:50px}
.cad-agenda td {border:1px solid var(--line-strong);padding:4px 2px;height:36px;text-align:center;overflow-wrap:anywhere;vertical-align:middle}
.cad-agenda b,.cad-agenda small {display:block}
.cad-agenda small {color:var(--error-text);font-size:12px;margin-top:2px}
.cad-agenda .cad-vago {color:var(--ink-3)}
.cad-agenda .cad-fora {background:var(--paper);color:var(--ink-3)}
.cad-agenda .cad-ocupado {background:var(--info-bg);color:var(--info-text)}
.cad-slot {width:100%;padding:3px 1px;border:0;min-height:30px;overflow-wrap:normal;word-break:normal;background:transparent;color:var(--ink-3);font-size:12px;cursor:pointer}
.cad-slot[aria-pressed="true"] {background:var(--clinica);color:var(--sobre-clinica);font-weight:700}
.cad-tabela-plano {display:flex;flex-direction:column;gap:10px;padding-top:8px;border-top:1px solid var(--line-strong)}
.cad-grupo-metodos {border:1px solid var(--line);min-width:0}
.cad-grupo-metodos summary {cursor:pointer;min-height:44px;padding:10px 12px;font-weight:600}
.cad-grupo-metodos[open] summary {border-bottom:1px solid var(--line)}
.cad-metodos {display:flex;flex-direction:column;gap:10px;padding:12px}
.cad-metodo {display:flex;flex-wrap:wrap;gap:6px 14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.cad-metodo>b {flex:1 0 100%;font-size:14px}
.cad-metodo>.btn {margin-left:auto;font-size:12px;min-height:36px;padding:6px 10px}
.cad-calculo {display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;align-items:end}
.cad-calculo input,.cad-calculo select {width:100%}
.cad-calculo output {grid-column:1/-1;background:var(--info-bg);color:var(--info-text);padding:12px;border:1px solid var(--control);line-height:1.5;font-weight:600}
.cad-modal-fundo {position:fixed;inset:0;background:rgba(7,10,22,.75);z-index:80;display:flex;align-items:center;justify-content:center;padding:12px}
.cad-modal {width:min(780px,100%);max-height:calc(100dvh - 24px);overflow:auto;min-width:0;background:var(--card);color:var(--ink);border:1px solid var(--control);padding:18px;display:flex;flex-direction:column;gap:14px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.cad-modal>.cad-acoes {justify-content:space-between}
@media (max-width:1200px) {.cad-menu {grid-template-columns:repeat(4,minmax(0,1fr))}.cad-menu button {min-height:44px;flex-direction:row;align-items:center;justify-content:space-between}.cad-contagem {font-size:15px}}
@media (max-width:900px) {.cad-grade2 {grid-template-columns:minmax(0,1fr)}.cad-calculo {grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:640px) {
 .cadastros {gap:10px}.cadastros h1 {font-size:21px}.cadastros .painel {padding:12px;gap:10px}
 .cad-menu {grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}.cad-menu button {min-height:44px;padding:6px 9px;font-size:12px}
 .cad-barra .campo,.cad-barra .campo:first-child {flex:1 1 100%}.cad-barra>.btn,.cad-colunas {flex:1 1 40%}.cad-colunas summary {width:100%}
 .cad-tab thead {display:none}.cad-tab,.cad-tab tbody,.cad-tab tr,.cad-tab td {display:block}.cad-tab tr {display:flex;flex-wrap:wrap;gap:3px 12px;border-bottom:1px solid var(--line);padding:9px 2px}.cad-tab td {border:0;height:auto;min-height:0;padding:0;font-size:14px;color:var(--ink-2);max-width:100%}.cad-tab td:first-child {flex:1 0 100%;min-width:0;color:var(--ink)}.cad-tab td:not(:first-child)::before {content:attr(data-l) ": ";font-size:12px;color:var(--ink-3)}
 .cad-tab .cad-link {min-height:44px;font-size:14px}.cad-tab td:first-child::before {display:none}
 .cad-form {grid-template-columns:minmax(0,1fr);gap:12px}.cad-form input,.cad-form select,.cad-form textarea {font-size:16px}
 .cad-form>.cad-acoes .btn {flex:1 1 40%;min-height:44px}.cad-dados {gap:10px 12px}.cad-dado b {font-size:13px}
 .cad-cab-ficha {gap:9px}.cad-cab-ficha>.cad-acoes {flex-basis:100%}.cad-cab-ficha .av {width:36px;height:36px;font-size:12px}.cad-cab-ficha .cad-quem {flex-basis:170px}
 .cad-abas {gap:5px}.cad-abas .btn {flex:1 1 42%;padding:7px 8px;min-height:40px;font-size:12px}
 .cad-agenda {font-size:12px}.cad-agenda th {font-size:12px}.cad-agenda th:first-child {width:40px}.cad-agenda td {height:34px;padding:3px 1px}.cad-slot {font-size:12px;overflow-wrap:normal;word-break:normal}.cad-agenda small {font-size:12px}
 .cad-calculo {grid-template-columns:repeat(2,minmax(0,1fr))}.cad-turno {grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.cad-turno>.btn {grid-column:1/-1}
 .cad-modal {padding:12px;gap:10px}.cad-modal h2 {font-size:16px}
}

/* Parte 5: Horário Clínico. O DOM controlado não comprova estas geometrias. */
.horario,.hor-backdrop {--hor-accent:var(--clinica,#386EBE)}
.horario {padding:10px 0 28px;min-width:0;color:var(--ink)}
.horario h1 {font-size:clamp(23px,2.4vw,32px);letter-spacing:-.04em;margin:0}
.horario h2,.horario h3 {margin:0;font-weight:700}
.hor-heading {display:flex;align-items:center;gap:14px;margin-bottom:22px}
.hor-heading>div {flex:1;min-width:0}
.hor-eyebrow {font-size:12px;letter-spacing:.09em;text-transform:uppercase;color:var(--ink-2);margin:0 0 4px}
.hor-muted {color:var(--ink-2);font-size:12px;margin:5px 0;line-height:1.5}
.hor-primary {background:var(--hor-accent);border-color:var(--hor-accent);color:var(--sobre-clinica,#fff);font-weight:700;min-height:44px}
.hor-tabs {display:flex;align-items:center;border-bottom:1px solid var(--line);gap:6px;margin-bottom:18px;flex-wrap:wrap}
.hor-tabs button {min-height:44px;border:0;border-bottom:3px solid transparent;border-radius:0;padding:9px 14px;background:transparent;color:var(--ink-2)}
.hor-tabs [aria-current=page] {border-color:var(--hor-accent);color:var(--ink);font-weight:700}
.hor-filters {display:flex;align-items:flex-end;flex-wrap:wrap;gap:10px;padding:14px;background:var(--card);border:1px solid var(--line);border-radius:0}
.hor-field {display:flex;flex-direction:column;gap:5px;min-width:0;font-size:12px;font-weight:600;color:var(--ink-2);flex:1 1 130px}
.hor-field input,.hor-field select,.hor-field textarea {font-size:13px;color:var(--ink);background:var(--paper);border:1px solid var(--control);border-radius:0;padding:8px 9px;line-height:22px;min-height:40px;width:100%;min-width:0}
.hor-field:has(input[type=checkbox]) {flex-direction:row;align-items:center;flex:0 1 auto;gap:7px;min-height:36px}
.hor-field input[type=checkbox] {min-height:20px;width:18px;flex:none;accent-color:var(--hor-accent)}
.hor-summary {display:flex;align-items:center;gap:18px;margin:14px 0 10px;flex-wrap:wrap}
.hor-summary p:first-child {flex:1}
.hor-pager {display:flex;justify-content:flex-end;align-items:center;gap:12px;margin:12px 0;font-size:12px;color:var(--ink-2)}
.hor-pager .btn {min-height:36px;font-size:12px}
.hor-grid {display:grid;gap:0 8px;min-width:0;align-items:start;grid-template-columns:37px repeat(var(--hor-column-count),minmax(0,1fr))}
.hor-column {display:grid;grid-template-rows:var(--hor-row-tracks);min-width:0;border-inline:1px solid var(--line);border-radius:0;overflow:hidden;background:var(--card)}
.hor-column-title {display:block;width:100%;text-align:left;min-height:36px;padding:6px 10px 2px;border:0;color:var(--ink);background:transparent;font-size:13px;font-weight:700;overflow-wrap:anywhere}
.hor-specialty {display:block;min-height:28px;padding:0 10px 9px;color:var(--ink-2);font-size:12px;line-height:1.4}
.hor-time-row {display:flex;min-height:0;border-top:1px solid var(--line);position:relative}
.hor-time-row>time {padding:9px 3px;flex:0 0 37px;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.hor-cell {min-width:0;min-height:0;flex:1;padding:2px;display:flex;flex-direction:column;gap:2px;overflow:auto;background:color-mix(in srgb,var(--paper) 55%,transparent)}
.hor-free {display:block;min-height:36px;width:100%;border:0;border-radius:0;background:transparent;color:var(--ink-3);font-size:12px;text-align:center}
.hor-free:not(:disabled):focus-visible {border-color:var(--hor-accent);color:var(--ink);background:var(--card)}
@media (hover:hover) { .hor-free:not(:disabled):hover {border-color:var(--hor-accent);color:var(--ink);background:var(--card)} }
.hor-event {width:100%;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;text-align:left;overflow-wrap:normal;border:1px solid color-mix(in srgb,var(--hor-accent) 35%,var(--line));border-left:3px solid var(--hor-accent);background:color-mix(in srgb,var(--hor-accent) 10%,var(--card));color:var(--ink);padding:3px 6px;border-radius:0;min-height:36px;flex-shrink:0;touch-action:pan-y}
.hor-event strong {font-size:12px;line-height:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hor-event span,.hor-event small {font-size:12px;line-height:14px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.hor-reserva {border-left-color:#B8872D;background:color-mix(in srgb,#B8872D 10%,var(--card))}
.hor-trava {border-left-color:#9C6575;background:color-mix(in srgb,#9C6575 10%,var(--card))}
.hor-continuacao {font-size:12px;color:var(--ink-3);padding:8px}
.hor-external {display:flex;flex-wrap:wrap;gap:8px}
.hor-unavailable {padding:7px 10px;border:1px solid var(--line);color:var(--ink-2);background:var(--paper);border-radius:0;font-size:12px}
.hor-week>h2 {margin:18px 0;font-size:18px}
.hor-week-grid {display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:8px;min-width:0}
.hor-week-day {min-width:0;background:var(--card);border:1px solid var(--line);border-radius:0;overflow:hidden}
.hor-week-day>h3 {font-size:12px;padding:12px;border-bottom:1px solid var(--line)}
.hor-week-slot {min-height:var(--hor-slot-height,43.2px);border-bottom:1px solid var(--line);padding:2px;display:grid;grid-template-columns:37px minmax(0,1fr);gap:2px;align-content:start}
.hor-week-slot>time {font-size:12px;color:var(--ink-2);grid-column:1;grid-row:1}
.hor-week-slot>:not(time) {grid-column:2}
.hor-week-slot .hor-free {min-height:36px}
.hor-rooms {display:grid;align-items:start;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}
.hor-rooms>h2 {grid-column:1/-1}
.hor-room {background:var(--card);padding:16px;border:1px solid var(--line);border-radius:0;display:flex;flex-direction:column;gap:10px;min-width:0}
.hor-room h3 {font-size:14px}
.hor-notices {margin-top:14px}
.hor-warning {padding:12px;background:color-mix(in srgb,#C18C2F 10%,var(--card));border:1px solid #C18C2F;border-radius:0;color:var(--ink);font-size:12px}
.hor-mobile-nav {display:none}
.hor-backdrop {position:fixed;inset:0;background:rgba(7,13,27,.55);backdrop-filter:blur(3px);z-index:90;display:flex;align-items:center;justify-content:center;padding:24px}
.hor-dialog {background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:0;width:min(680px,100%);max-height:calc(100dvh - 48px);overflow-y:auto;box-shadow:0 24px 80px rgba(0,0,0,.3);padding:22px}
.hor-dialog-head {display:flex;gap:12px;align-items:center;justify-content:space-between;margin-bottom:18px}
.hor-dialog h2 {font-size:21px;letter-spacing:-.03em}
.hor-dialog h3 {font-size:12px;color:var(--ink-2);margin:14px 0 5px}
.hor-profile-value {font-size:14px;margin:4px 0;line-height:1.5;white-space:pre-wrap;overflow-wrap:anywhere}
.hor-form {display:flex;gap:14px;flex-wrap:wrap;align-items:flex-end}
.hor-form>.hor-field {flex:1 1 calc(50% - 14px)}
.hor-form>p,.hor-form>fieldset {flex:1 0 100%}
.hor-form>button[type=submit] {margin-left:auto;min-width:130px}
.hor-participants,.hor-copies {display:flex;gap:8px 16px;flex-wrap:wrap;border:1px solid var(--line);border-radius:0;padding:10px 12px}
.hor-participants legend,.hor-copies legend {font-size:12px;color:var(--ink-2);padding:0 5px}
.hor-form-error {color:var(--danger,#B73F55);font-size:12px}
@media (max-width:1024px) {
 .hor-filters {gap:8px}.hor-field {flex-basis:120px}.hor-grid {gap:5px}.hor-column-title {font-size:12px;padding:10px 8px 4px}.hor-specialty {padding-inline:8px;font-size:12px}.hor-time-row>time {flex-basis:31px;font-size:12px}.hor-cell {padding:3px}.hor-event {padding:3px 5px}.hor-week-grid {grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:639px) {
 .horario {padding-bottom:95px}.hor-heading {margin-bottom:14px;gap:10px}.hor-heading h1 {font-size:25px}.hor-heading>.hor-btn {font-size:12px;padding:8px}.hor-tabs {display:none}.hor-heading [data-hor-fab] {position:fixed;right:18px;bottom:82px;border-radius:0;box-shadow:0 5px 20px rgba(0,0,0,.22);z-index:55;padding:14px 18px}.hor-filters {padding:12px;border-radius:0}.hor-filters>.hor-field {flex:1 1 calc(50% - 10px)}.hor-filters>.hor-field:has([name=busca]) {flex-basis:100%}.hor-apply {width:100%}.hor-summary {gap:6px;font-size:12px}.hor-summary p {font-size:12px}.hor-pager {justify-content:space-between;gap:8px}.hor-grid {grid-template-columns:minmax(0,1fr)}.hor-column-title {font-size:15px;padding:15px 14px 5px}.hor-specialty {font-size:12px;padding:0 14px 12px}.hor-time-row>time {flex-basis:48px;font-size:12px;padding:13px 8px}.hor-cell {padding:6px}.hor-event {padding:10px}.hor-event strong {font-size:13px}.hor-event span,.hor-event small {font-size:12px}.hor-free {font-size:12px}.hor-week-grid {grid-template-columns:minmax(0,1fr)}.hor-week-day>h3 {font-size:14px}.hor-week-slot {flex-direction:row;align-items:stretch;min-height:68px}.hor-week-slot>time {flex:0 0 42px;padding-top:10px}.hor-week-slot>.hor-free,.hor-week-slot>.hor-event {flex:1;min-width:0}.hor-rooms {grid-template-columns:minmax(0,1fr)}.hor-mobile-nav {display:flex;position:fixed;bottom:0;left:0;right:0;padding:8px max(8px,env(safe-area-inset-left)) calc(8px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--card);z-index:50;justify-content:space-around;gap:4px}.hor-mobile-nav button {flex:1;min-width:0;border:0;background:transparent;color:var(--ink-2);font-size:12px;min-height:44px;padding:9px 4px}.hor-mobile-nav [aria-current=page] {color:var(--hor-accent);font-weight:700;background:color-mix(in srgb,var(--hor-accent) 9%,transparent);border-radius:0}.hor-backdrop {padding:0;align-items:flex-end}.hor-dialog {width:100%;max-height:92dvh;border-radius:0;padding:18px 16px calc(20px + env(safe-area-inset-bottom))}.hor-dialog::before {content:'';display:block;width:36px;height:4px;background:var(--line);border-radius:0;margin:-8px auto 16px}.hor-dialog h2 {font-size:20px}.hor-form>.hor-field {flex-basis:100%}
}

.hor-participants>.hor-field {flex:1 1 100%}
.hor-participant-options {display:flex;flex-wrap:wrap;gap:6px 14px;flex:1 1 100%;max-height:230px;overflow-y:auto}

.hor-frame-title {font-size:14px;color:var(--ink-2);margin:22px 0 10px!important}
.hor-search-results {display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}
.hor-search-results button {text-align:left;white-space:normal;overflow-wrap:anywhere;min-height:44px}

/* Correção 1: retorno do arraste e navegação semanal. */
.hor-event.arrastando {position:relative;z-index:80;pointer-events:none;opacity:.85;box-shadow:0 8px 24px #0004}
.hor-dica {position:fixed;z-index:100;pointer-events:none;background:var(--ink);color:var(--card);padding:8px 12px;border-radius:0;font-size:13px;font-weight:600;box-shadow:0 3px 12px #0003}
.hor-week-nav {display:flex;align-items:center;justify-content:center;gap:18px;margin:14px 0}
.hor-day-tabs {display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.hor-day-tabs button {flex:1;font-size:12px;padding:6px 8px}
.hor-day-tabs [aria-current=date] {background:var(--hor-accent);color:white}
@media (max-width:639px) {
 .horario {padding-bottom:calc(170px + env(safe-area-inset-bottom))}
 .hor-heading [data-hor-fab] {width:56px;height:56px;padding:0;font-size:30px;display:flex;align-items:center;justify-content:center;bottom:calc(78px + env(safe-area-inset-bottom))}
 .hor-pager {padding-right:0;min-height:56px;flex-wrap:nowrap;gap:6px}
 .hor-pager .btn {padding:8px;min-width:0;white-space:nowrap}
 .hor-pager>span {min-width:0;text-align:center;white-space:nowrap}
 .hor-day-tabs button {flex:1 1 28%;font-size:12px}
}

.hor-column:has(.arrastando) {overflow:visible;position:relative;z-index:79}

/* Horário móvel aprovado: listas e agenda individual (DR-473). */
@media (max-width:639px){
 :root[data-theme="escuro"] .hor-mobile{--hor-mobile-ok:#34D399;--hor-mobile-ok-bg:#0E2A20;--hor-mobile-ok-line:#1F5A44}
 .hor-mobile{display:flex;flex-direction:column;gap:10px;padding:12px 0 calc(90px + env(safe-area-inset-bottom));min-width:0}
 .hor-mobile-title{display:flex;align-items:baseline;justify-content:space-between;gap:8px}.hor-mobile .hor-mobile-title h1{font-size:21px;letter-spacing:normal}
 .hor-mobile-badge{border:1px solid var(--info-text);background:var(--info-bg);color:var(--info-text);border-radius:0;padding:3px 9px;font-size:12px;font-weight:600;white-space:nowrap}
 .hor-mobile-back{align-self:flex-start;min-height:44px}.hor-mobile>p{margin:0;font-size:12.5px}
 .hor-mobile-panel{display:flex;flex-direction:column;gap:10px;padding:12px;background:var(--card);border:1px solid color-mix(in srgb,var(--clinica) 55%,var(--line-strong));min-width:0;box-shadow:0 0 0 1px color-mix(in srgb,var(--clinica) 22%,transparent),0 18px 46px -14px color-mix(in srgb,var(--clinica) 40%,transparent)}
 .hor-mobile-panel h2{font-size:16px}.hor-mobile-panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}.hor-mobile-panel-head>span{font-size:12px}
 .hor-mobile-field{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:600;color:var(--ink-2);min-width:0}.hor-mobile-field input,.hor-mobile-field select{width:100%;min-width:0;min-height:44px;padding:0 10px;border:1px solid var(--control);background:var(--field,var(--card));color:var(--ink);font:400 14px var(--font)}
 .hor-mobile-week{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.hor-mobile-week button{width:44px;min-height:44px;padding:0;border:1px solid var(--control);background:var(--card);color:var(--ink);font-size:22px;cursor:pointer}.hor-mobile-week b{font-size:14px;font-weight:600}
 .hor-mobile-bottom{position:fixed;bottom:0;left:0;right:0;z-index:50;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0;background:var(--card);border-top:1px solid var(--line-strong);padding-bottom:env(safe-area-inset-bottom);box-shadow:0 -8px 24px -16px #0006}.hor-mobile-bottom button{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:44px;border:0;background:transparent;color:var(--ink-3);font-size:12px;font-weight:600;cursor:pointer}.hor-mobile-bottom button[aria-current=page]{color:var(--clinica);box-shadow:inset 0 3px 0 var(--clinica)}
 .hor-mobile-totals{display:flex;flex-wrap:wrap;font-size:13px;color:var(--ink-2);margin:0}.hor-mobile-how{font-size:12.5px;color:var(--ink-2);line-height:1.45}.hor-mobile-how summary{cursor:pointer;font-weight:600;color:var(--ink);min-height:32px;display:flex;align-items:center}.hor-mobile-how p{margin:0}
 .hor-mobile-list{display:flex;flex-direction:column;gap:8px}.hor-mobile-person{box-sizing:border-box;width:100%;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;padding:12px;border:1px solid var(--line);background:var(--card);color:var(--ink);text-align:left;cursor:pointer;min-width:0}.hor-mobile-person:focus-visible{outline:2px solid var(--clinica);outline-offset:2px}
 .hor-mobile-name{display:flex;flex-direction:column;gap:1px;min-width:0}.hor-mobile-name b{font-size:15px;font-weight:600;line-height:1.25;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.hor-mobile-name small{color:var(--ink-3);font-size:12.5px}.hor-mobile-arrow{color:var(--ink-3);font-size:22px;line-height:1}
 .hor-mobile-counts{grid-column:1/-1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px}.hor-mobile-counts>span{display:flex;flex-direction:column;gap:3px;padding:7px 8px;background:var(--paper);min-width:0}.hor-mobile-counts b{font:600 19px/1 var(--font-dados,var(--font))}.hor-mobile-counts small{font-size:12px;line-height:1.2;color:var(--ink-2)}.hor-mobile-counts [data-hor-contagem=livres]{color:var(--hor-mobile-ok,#126E35)}
 .hor-mobile-bar{grid-column:1/-1;height:5px;background:var(--hor-mobile-ok-bg,#ECFDF3);box-shadow:inset 0 0 0 1px var(--hor-mobile-ok-line,#A7DFC0);position:relative;overflow:hidden}.hor-mobile-bar i{position:absolute;inset:0 auto 0 0;background:var(--clinica)}
 .hor-mobile-person.hor-mobile-child{grid-template-columns:minmax(0,1fr) auto auto}.hor-mobile-child .hor-mobile-arrow{grid-column:3;grid-row:1}.hor-mobile-occupied{display:flex;align-items:baseline;gap:5px;white-space:nowrap}.hor-mobile-child .hor-mobile-occupied{grid-column:2;grid-row:1}.hor-mobile-occupied>span{display:flex;gap:5px;align-items:baseline}.hor-mobile-occupied b{font-size:22px;font-weight:600}.hor-mobile-occupied small{font-size:12px;color:var(--ink-2)}
 .hor-mobile-days{display:grid;grid-template-columns:repeat(var(--hor-days),minmax(0,1fr));gap:4px}.hor-mobile-days button{min-height:44px;border:1px solid var(--line-strong);background:var(--card);color:var(--ink);cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;min-width:0;padding:2px;font-size:12px}.hor-mobile-days b{font-size:12px;white-space:nowrap}.hor-mobile-days [aria-current=date]{background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica,#fff)}
 .hor-mobile-day-list{display:flex;flex-direction:column;gap:6px}.hor-mobile-slot{display:grid;grid-template-columns:46px minmax(0,1fr);gap:8px}.hor-mobile-slot>time{font-size:12.5px;font-weight:600;color:var(--ink-3);padding-top:14px;text-align:right}.hor-mobile-cell{min-height:50px;border:1px solid var(--line);background:var(--card);display:flex;flex-direction:column;gap:6px;min-width:0}.hor-mobile-cell>p{margin:0;padding:12px 10px;font-size:13px}.hor-mobile-free{border-style:dashed}.hor-mobile-outside{background:repeating-linear-gradient(45deg,var(--error-bg) 0 6px,transparent 6px 12px);color:var(--error-text)}
 .hor-mobile-event{width:100%;min-width:0;min-height:56px;padding:8px 10px;display:flex;flex-direction:column;gap:3px;align-items:flex-start;justify-content:center;text-align:left;border:0;border-left:4px solid var(--clinica);background:color-mix(in srgb,var(--clinica) 16%,var(--card));color:var(--ink);cursor:pointer;overflow-wrap:normal;word-break:normal}.hor-mobile-event b{font-size:14px;line-height:1.25;font-weight:600}.hor-mobile-event small{font-size:12px;color:var(--ink-2)}.hor-mobile-reserva{background:var(--info-bg);border:1px dashed var(--info-text)}.hor-mobile-trava{background:repeating-linear-gradient(135deg,var(--line) 0 4px,transparent 4px 9px);border-left-color:var(--ink-3)}
 .hor-mobile-note{font-size:12px;color:var(--ink-3);border-top:1px dashed var(--line-strong);padding-top:10px;margin:0}.hor-mobile-data{display:grid;grid-template-columns:1fr;gap:5px;margin:14px 0}.hor-mobile-data dt{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}.hor-mobile-data dd{margin:0 0 8px;font-size:14px}.hor-mobile-detail>.btn{width:100%;min-height:44px}
}

/* Correção 12: eixo compartilhado e contratos visuais D1–D11. */
.hor-time-axis {display:grid;grid-template-rows:var(--hor-row-tracks);min-width:0}
.hor-axis-heading {font-size:12px;color:var(--ink-3);display:flex;align-items:center}
.hor-axis-time {font-size:12px;color:var(--ink-3);padding-top:6px;border-top:1px solid var(--line)}
.hor-column-heading {min-width:0;overflow:auto}
.hor-rooms>.btn {align-self:start;justify-self:start}
.cad-slot-curto {display:none}
@media (max-width:639px) {
 :is(button,a[href],input:not([type="hidden"]),select,textarea,summary) {min-height:44px!important;min-width:44px!important}
 .caixa {height:44px}.caixa select {height:44px}
 .tema {width:44px;height:44px}
 .cad-slot-longo {display:none}.cad-slot-curto {display:inline}
 /* O botão conserva o nome acessível e ocupa todo o cartão; a cópia visual
    fica no fluxo para nomes longos reservarem a própria altura. */
 .cad-tab .cad-cartao {position:relative;min-height:44px}
 .cad-tab .cad-cartao td:first-child {min-height:20px}
 .cad-tab .cad-card-texto {display:block;font-size:14px;font-weight:400;line-height:20px}
 .cad-tab .cad-card-nome {position:absolute;inset:0;width:100%;height:100%;display:flex;align-items:flex-start;padding:9px 2px;z-index:1;font-size:14px;font-weight:400;line-height:20px}
 .cad-tab .cad-card-nome span {position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 .cad-tab .cad-card-nome:focus-visible {outline:2px solid var(--info-text);outline-offset:-2px}
 .cad-tab .cad-cartao [data-cad-coluna="especialidades"] {flex-basis:100%}
 .cad-tab .cad-cartao [data-cad-coluna="atende_em"] {flex-basis:100%;order:1}
 .cad-tab .cad-cartao [data-cad-coluna="ocupados"] {order:1}
 .cad-lista-criancas tr {display:grid;grid-template-columns:minmax(0,1fr) auto;gap:3px 8px}
 .cad-lista-criancas td {grid-column:1/-1;min-width:0}
 .cad-lista-criancas [data-cad-coluna="unidade_atendimento_id"] {grid-column:1/-1;order:1}
 .cad-lista-criancas [data-cad-coluna="planos"] {grid-column:1;order:1}
 .cad-lista-criancas [data-cad-coluna="cadastro_iniciado"] {grid-column:2;order:1}
 .cad-lista-criancas [data-cad-coluna="cadastro_iniciado"]::before {display:none}
 :root[data-theme="escuro"] .hor-mobile-bottom button[aria-current=page] {color:color-mix(in srgb,var(--clinica) 45%,#fff);box-shadow:inset 0 3px 0 color-mix(in srgb,var(--clinica) 45%,#fff)}
}

#titulo-acessos,#titulo-analise,#titulo-mfa,#titulo-negado {font-size:17px;line-height:1.3;font-weight:700;letter-spacing:normal}

/* Correção 14: DR-486–490; estado de navegação apenas nesta tela. */
.cad-unidade-abas [aria-selected="true"] {background:var(--clinica);border-color:var(--clinica);color:var(--sobre-clinica)}
.cad-unidade-abas button:focus-visible {outline:2px solid var(--info-text);outline-offset:2px}
.cad-paginacao {display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:12px}
.hor-rooms {display:block}
.hor-rooms-toolbar {display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}
.hor-room-column h3.hor-column-title {margin:0}
.hor-slot-list {display:grid;gap:8px}
.hor-week-count {grid-column:2;min-width:0;width:100%;font-size:12px;padding:4px;min-height:36px}
@media (max-width:639px) {
 .hor-mobile-list {gap:6px}
 .hor-mobile-person {padding:8px 10px;gap:6px}
 .hor-mobile-counts {grid-template-columns:1.25fr 1.25fr 1fr .85fr}
 .hor-mobile-counts>span {flex-direction:row;align-items:baseline;gap:4px;padding:4px 2px}
 .hor-mobile-counts b {font-size:16px;flex-shrink:0}
 .hor-mobile-counts small {font-size:12px;min-width:0}
 .cad-lista-criancas tr {grid-template-columns:repeat(2,minmax(0,1fr))}
 .cad-lista-criancas [data-cad-coluna="cadastro_iniciado"]::before {display:inline}
}

/* Correção 15: rótulos inteiros, largura intrínseca e contagem compartilhada em Salas. */
.hor-room-column .hor-cell {overflow:visible}
.hor-room-column .hor-column-heading {overflow:visible}
.hor-room-count {display:block;min-height:36px;font-size:12px;line-height:1.1;padding:4px}
.hor-room-count span {display:block;font-size:12px;line-height:1.1}
/* Correção 17, DR-510: C2 medida e escolhida, valores literais do artefato. */
@media(max-width:639px) {
 .hor-mobile-counts {grid-template-columns:minmax(min-content,1fr) minmax(min-content,1.75fr) minmax(min-content,1.5fr) minmax(min-content,1fr);gap:4px}
 .hor-mobile-counts>span {flex-direction:row;align-items:baseline;gap:4px;padding:4px 0;min-width:0}
 .hor-mobile-counts b {flex:0 0 auto;font-size:16px}
 .hor-mobile-counts small {min-width:min-content;white-space:normal;overflow-wrap:normal;word-break:normal;font-size:12px}
 .hor-mobile-counts>span:not(:first-child) small {white-space:nowrap}
}

/* Correção 16: DR-503–506, variantes locais. Medidas finais dependem de Chrome. */
.hor-unit-week-grid {grid-template-columns:44px repeat(var(--hor-week-days),minmax(0,1fr));gap:8px;align-items:start}
.hor-unit-week-grid>.hor-week-day {display:grid;grid-template-rows:var(--hor-row-tracks);border:0}
.hor-unit-week-grid>.hor-week-day>h3 {margin:0;display:flex;align-items:center;padding:8px;border:1px solid var(--line)}
.hor-unit-week-grid .hor-week-slot {box-sizing:border-box;height:var(--hor-week-row-height,76px);min-height:0;grid-template-columns:minmax(0,1fr);padding:var(--hor-week-row-padding,4px);gap:var(--hor-week-row-gap,2px);overflow:hidden;border:1px solid var(--line);border-top:0}
.hor-unit-week-grid .hor-week-slot>:not(time) {grid-column:1}
.hor-week-event {box-sizing:border-box;gap:2px;padding:4px 6px;height:var(--hor-week-card-height,58px);min-height:58px}
.hor-week-event>span {min-height:14px}
.hor-unit-week-grid .hor-week-count {box-sizing:border-box;height:var(--hor-week-count-height,36px);min-height:36px;white-space:nowrap}
.hor-unit-week-grid .hor-continuacao {box-sizing:border-box;height:var(--hor-week-count-height,36px);line-height:20px;padding:8px}
.hor-room-frame {min-width:0;max-width:100%;overflow-x:auto;margin-top:8px}
.hor-room-grid {width:max-content;grid-template-columns:37px repeat(var(--hor-column-count),clamp(180px,20vw,240px));gap:0 8px}
.hor-room-column .hor-column-heading {display:flex;flex-direction:column;align-items:stretch;padding:4px 6px;gap:2px}
.hor-room-column h3.hor-column-title {padding:0;min-height:20px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hor-room-column [data-hor-acao="editar-sala"] {min-height:44px;width:100%;padding:4px 8px;text-align:left}
@media (max-width:639px) {
 .hor-mobile-profession {display:flex;align-items:baseline;gap:6px;min-width:0}
 .hor-mobile-specialty {min-width:0;flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
 .hor-mobile-registration {min-width:0;flex:0 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
}

/* Correção 17, DR-511: alternativa A escolhida após medida externa, 01/11/2026. */
@media (max-width:639px) {
 .hor-mobile [data-hor-lista="terapeutas"] .hor-mobile-person:not(.hor-mobile-child) .hor-mobile-profession {display:flex;flex-direction:column;align-items:stretch;gap:4px;min-width:0;width:100%;max-width:100%;height:auto;max-height:none;overflow:visible}
 .hor-mobile [data-hor-lista="terapeutas"] .hor-mobile-person:not(.hor-mobile-child) .hor-mobile-profession > .hor-mobile-specialty {flex:0 1 auto;width:100%;min-width:0;max-width:100%;font-size:12.5px;line-height:1.5;white-space:pre-wrap;word-break:normal;overflow-wrap:normal;overflow:visible;text-overflow:clip}
 .hor-mobile [data-hor-lista="terapeutas"] .hor-mobile-person:not(.hor-mobile-child) .hor-mobile-profession > .hor-mobile-registration {flex:0 1 auto;width:100%;min-width:0;max-width:100%;font-size:12.5px;line-height:1.5;white-space:break-spaces;word-break:normal;overflow-wrap:anywhere;overflow:visible;text-overflow:clip}
 .hor-mobile [data-hor-lista="terapeutas"] .hor-mobile-person:not(.hor-mobile-child) .hor-mobile-profession > .hor-mobile-specialty:empty {display:none}
 .hor-mobile [data-hor-lista="terapeutas"] .hor-mobile-person:not(.hor-mobile-child) .hor-mobile-profession > .hor-mobile-registration:empty {display:none}
}

/* C18 · DR515–518: ajustes somente de apresentação; padrões provisórios R28 A/B/A. */
.acesso-conta {display:flex;flex-direction:column;gap:8px;min-width:0;flex:0 1 auto}
.acesso-conta-linha {display:flex;align-items:center;justify-content:space-between;gap:8px;height:44px;white-space:nowrap;font-size:12.5px;min-width:0}
.acesso-conta-linha [data-acesso-contagem] {min-width:0}
.acesso-conta-botao {font-size:12.5px;padding-inline:10px;flex:none}
.acesso-conta-detalhes {min-width:0}
.eu.acesso-fechado {padding:8px;gap:8px}
.eu.acesso-fechado .dados {gap:0}

/* Alinhar a faixa dos controles; o rótulo permanece acima do seletor. */
.topo .wrap {align-items:flex-end}
.contexto-clinica {align-items:flex-end}
.contexto-clinica>[data-configuracoes-local] {display:flex;align-items:center;min-height:var(--altura-topo)}
.configuracoes-topo {height:40px;min-height:40px;padding-block:0}
.nome-marca {display:flex;align-items:center;min-height:var(--altura-topo)}
.usuario,.acoes-topo {align-items:center;min-height:var(--altura-topo)}
.topo-logo {align-self:flex-end;margin-block-end:calc((var(--altura-topo) - 30px)/2)}
@media (max-width:1100px) { .nome-marca {display:none} }
@media (max-width:980px) {
 :root {--altura-topo:44px}
 .caixa,.caixa select,.configuracoes-topo {height:44px;min-height:44px}
}
@media (max-width:639px) {
 .eu.acesso-fechado {padding:4px;gap:4px}
 .acesso-conta {flex:1 1 100%}
}

/* Cores existentes preservadas; apenas o tempo/propriedades ficam explícitos. */
.link,.tema,.abas button,.cad-link {transition:background-color var(--movimento-duracao) var(--movimento-curva),color var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
.cad-tab tbody tr {transition:background-color var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
#app :where(button:not(:disabled):not([aria-disabled="true"]):not(.btn):not(.btn-escuro):not(.sis):not(.hor-free),a[href]:not([aria-disabled="true"]),summary):not(:where(.abas *)) {cursor:pointer;transition:background-color var(--movimento-duracao) var(--movimento-curva),color var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
#app :where(button:not(:disabled):not([aria-disabled="true"]):not(.btn):not(.btn-escuro):not(.sis):not(.hor-free),a[href]:not([aria-disabled="true"]),summary):not(:where(.abas *)):focus-visible {background-color:color-mix(in srgb,var(--clinica) 8%,transparent);border-color:var(--clinica);color:var(--ink)}
.cad-lista button:not(:disabled):focus-visible .cont {background-color:var(--sobre-clinica);border-color:var(--clinica);color:var(--clinica)}
@media (hover:hover) {
 #app :where(button:not(:disabled):not([aria-disabled="true"]):not(.btn):not(.btn-escuro):not(.sis):not(.hor-free),a[href]:not([aria-disabled="true"]),summary):not(:where(.abas *)):hover {background-color:color-mix(in srgb,var(--clinica) 8%,transparent);border-color:var(--clinica);color:var(--ink)}
 .cad-lista button:not(:disabled):hover .cont {background-color:var(--sobre-clinica);border-color:var(--clinica);color:var(--clinica)}
}

@keyframes entrada-tela {from {opacity:0} to {opacity:1}}
.entrada-tela {animation:entrada-tela var(--movimento-duracao) var(--movimento-curva)}
/* A reserva estática absorve a subida de3px sem invadir os12px entre cards. */
.sistemas {column-gap:12px;row-gap:calc(12px - var(--movimento-card-y))}
.sis {transition:transform var(--movimento-duracao) var(--movimento-curva),border-color var(--movimento-duracao) var(--movimento-curva)}
.sis.pronto:not(:disabled) {cursor:pointer}
.sis:disabled {cursor:default}
.sis:not(:disabled):focus-visible {border-color:var(--sis)}
@media (hover:hover) {
 .sis.pronto:not(:disabled):hover {border-color:var(--sis)}
 .sis:disabled:hover {border-color:var(--sis)}
}
@media (prefers-reduced-motion:no-preference) {
 .sis.pronto:not(:disabled):focus-visible {transform:translateY(var(--movimento-card-y));border-color:var(--sis)}
 @media (hover:hover) {
  .sis.pronto:not(:disabled):hover {transform:translateY(var(--movimento-card-y));border-color:var(--sis)}
 }
}
