/* Apresentação de tela compartilhada por AIH, APAC e urgência. Sem dependências externas. */
:root {
    color-scheme: light;
    --primary: #245a93;
    --primary-hover: #194875;
    --primary-light: #eaf2fb;
    --on-primary: #ffffff;
    --accent: #245a93;
    --bg-page: #eef2f7;
    --bg-card: #ffffff;
    --bg-subtle: #f5f7fb;
    --text-main: #223247;
    --text-muted: #53647b;
    --border: #d6dfea;
    --control-border: #8292a9;
    --border-focus: #245a93;
    --success: #14734c;
    --success-bg: #eaf7ef;
    --danger: #a92332;
    --danger-bg: #fff0f1;
    --warning-text: #85511b;
    --warning-bg: #fff5df;
    --shadow: 0 3px 14px rgb(29 48 76 / 5%);
    --shadow-popover: 0 10px 28px rgb(29 48 76 / 15%);
    --radius: 20px;
    --radius-control: 12px;
    --space-1: 4px;
    --space-2: 8px;
    --space-3: 12px;
    --space-4: 16px;
    --space-5: 24px;
    --space-6: 32px;
    --control-height: 40px;
    --page-width: 1024px;
    --font-small: .875rem;
    --font-body: 1rem;
    --font-title: 1.125rem;
}
body.dark-mode {
    color-scheme: dark;
    --primary: #83b9f4;
    --primary-hover: #add3fc;
    --primary-light: #20354f;
    --on-primary: #10233c;
    --accent: #83b9f4;
    --bg-page: #101a28;
    --bg-card: #192638;
    --bg-subtle: #213146;
    --text-main: #edf3fc;
    --text-muted: #b0bfd3;
    --border: #384b64;
    --control-border: #738197;
    --border-focus: #83b9f4;
    --success: #7ad6a5;
    --success-bg: #153428;
    --danger: #ffadb5;
    --danger-bg: #3c222b;
    --warning-text: #f4cd87;
    --warning-bg: #3b3020;
    --shadow: 0 3px 16px rgb(0 0 0 / 12%);
    --shadow-popover: 0 10px 28px rgb(0 0 0 / 35%);
}
* { box-sizing: border-box; }
html { font-size: 100%; }
body {
    margin: 0;
    padding: var(--space-6) var(--space-5);
    background: var(--bg-page);
    color: var(--text-main);
    font: var(--font-body)/1.55 'Segoe UI', system-ui, -apple-system, sans-serif;
}
:where(button, input, select, textarea) { font: inherit; }
button, input, select, textarea, .form-field, .qualcid-proc-conteudo { min-width: 0; }
button, h1, h2, h3, h4, p { overflow-wrap: anywhere; }
h1, h2, h3, h4, p { margin: 0; }
.header, .hub-navegacao, main, .card-historico, footer {
    width: 100%;
    max-width: var(--page-width);
    margin-inline: auto;
}
.icone { width: 20px; height: 20px; flex-shrink: 0; vertical-align: -.2em; pointer-events: none; }
.icone-container { display: inline-flex; order: -1; pointer-events: none; }
.icon-sprite { position: absolute; width: 0; height: 0; overflow: hidden; pointer-events: none; }
.icone--sun, body.dark-mode .icone--moon { display: none; }
body.dark-mode .icone--sun { display: inline-block; }
.header { display: flex; justify-content: space-between; align-items: center; gap: var(--space-4); margin-bottom: var(--space-5); }
.logo-box { min-width: 0; flex: 1 1 0; }
.logo-title { display: flex; align-items: center; width: 176px; max-width: 100%; height: 44px; padding: 2px 8px; margin-left: -8px; line-height: 1; }
.logo-marca { display: block; width: 160px; height: auto; max-width: 100%; object-fit: contain; }
.logo-subtitle { margin-top: var(--space-1); color: var(--text-muted); font-size: var(--font-small); }
.btn-theme { flex-shrink: 0; }
.hub-navegacao {
    display: flex;
    gap: var(--space-2);
    padding: var(--space-2);
    margin-bottom: var(--space-5);
    background: var(--bg-card);
    border: 1px solid var(--border);
    border-radius: var(--radius);
    box-shadow: var(--shadow);
}
.btn-aba { flex: 1 1 0; border-color: transparent; background: transparent; color: var(--text-muted); padding: var(--space-3); }
.btn-aba.ativa { background: var(--primary-light); color: var(--primary); border-color: var(--primary); font-weight: 700; }
form, #blocoUrgenciaForm { margin: 0; padding: 0; }
.form-section, .card-historico, #painelPreviaUrgencia {
    padding: 16px;
    border: 1px solid var(--border);
    border-radius: var(--radius);
    background: var(--bg-card);
    box-shadow: none;
    margin-bottom: var(--space-4);
}
.secao-titulo {
    display: flex;
    align-items: center;
    gap: 10px;
    padding-bottom: 12px;
    margin-bottom: 14px;
    border-bottom: 1px solid var(--border);
    font-size: var(--font-title);
    line-height: 1.45;
    font-weight: 600;
    color: var(--text-main);
}
.secao-titulo .icone { box-sizing:content-box; width:22px; height:22px; padding:10px; margin:0; border-radius:12px; color:var(--acao-complementar-texto); background:var(--acao-complementar-fundo); }
.secao-titulo-texto { min-width: 0; flex: 1; }
.secao-titulo .label-hint { font-size: var(--font-small); font-weight: 400; }
.secao-titulo-datas { align-items: center; flex-wrap: wrap; }
label { display: block; margin: 12px 0 4px; font-size: var(--font-small); font-weight: 500; line-height: 1.5; }
.form-section > label:first-of-type { margin-top: 0; }
.label-hint, .cns-orientacao, .field-note, .examples-label, .history-note { color: var(--text-muted); font-size: var(--font-small); font-weight: 400; }
p.label-hint, .cns-orientacao, .field-note { margin: var(--space-2) 0 var(--space-4); }
:where(input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]), select, textarea) {
    display: block;
    width: 100%;
    min-height: var(--control-height);
    padding: 8px 12px;
    border: 1px solid var(--control-border);
    border-radius: var(--radius-control);
    color: var(--text-main);
    background: var(--bg-card);
    font-size: var(--font-small);
    line-height: 1.4;
}
select { padding-right: 28px; }
textarea { resize: vertical; min-height: 80px; }
input::placeholder, textarea::placeholder { color: var(--text-muted); opacity: 1; }
input:read-only, textarea:read-only { background: var(--bg-subtle); }
.text-uppercase { text-transform: uppercase; }
.cns-opcao { display: flex; align-items: center; gap: var(--space-3); min-height: 44px; margin: var(--space-2) 0 0; cursor: pointer; }
input[type="checkbox"], input[type="radio"] { width: 20px; height: 20px; margin: 0; flex-shrink: 0; accent-color: var(--primary); }
.cns-orientacao { margin-top: 0; }
.form-row, .action-group { display: flex; flex-wrap: wrap; gap: 12px; }
.form-field { flex: 1 1 220px; }
.form-field--wide { flex-grow: 3; }
.form-field--compact { flex: 1 1 110px; }
/* Reorganização exclusiva de tela da AIH. A APAC mantém os campos compartilhados na disposição anterior. */
.aih-grade, .aih-campo { display: contents; }
.aih-subtitulo, .urg-subtitulo, .estabelecimento-subtitulo { display:block; color:var(--text-muted); font-size:13px; font-weight:400; margin-top:4px; }
.aih-campo > label, .urg-campo > label, .form-field > label { margin:0 0 4px; }
body:not(.modulo-aih) :is(.aih-nomeEstabelecimento, .aih-nomePaciente, .aih-nomeProfissional) > label:first-child { margin-top: 0; }
body.modulo-aih .aih-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px 16px; align-items: end; }
body.modulo-aih .aih-grade .form-row { display: contents; }
body.modulo-aih .aih-grade .form-field, body.modulo-aih .aih-campo { display: flex; flex-direction: column; min-width: 0; grid-column: span 6; }
body.modulo-aih .aih-grade-estabelecimento .aih-nomeEstabelecimento { grid-column: span 8; }
body.modulo-aih .aih-grade-estabelecimento .aih-cnesEstabelecimento { grid-column: span 4; }
body.modulo-aih .aih-grade-paciente .aih-nomePaciente { grid-column: span 7; align-self: start; }
body.modulo-aih .aih-grade-paciente .aih-cnsPaciente { grid-column: span 5; }
body.modulo-aih .aih-grade-paciente .form-field:has(#dataNascimento), body.modulo-aih .aih-grade-paciente .form-field:has(#sexoPaciente) { grid-column: span 3; }
body.modulo-aih .aih-grade-paciente .form-field:has(#municipioResidencia) { grid-column: span 8; }
body.modulo-aih .aih-grade-paciente .form-field:has(#uf), body.modulo-aih .aih-grade-paciente .form-field:has(#cep) { grid-column: span 2; }
body.modulo-aih .aih-grade .cns-opcao { flex-direction: row; margin: 4px 0 0; min-height: 28px; font-weight: 400; }
body.modulo-aih .aih-grade .cns-orientacao { margin: 0; font-size: .75rem; }
body.modulo-aih .aih-grade-diagnostico .aih-diagnosticoInicial, body.modulo-aih .aih-grade-diagnostico .aih-descricaoProcedimento { grid-column: span 8; }
body.modulo-aih .aih-grade-diagnostico .aih-buscaCidPrincipal, body.modulo-aih .aih-grade-diagnostico .aih-buscaCodigoProcedimento { grid-column: span 4; }
body.modulo-aih .aih-grade-profissional .form-field { grid-column: span 3; }
body.modulo-aih .aih-grade-profissional .aih-nomeProfissional { grid-column: span 4; }
body.modulo-aih .aih-grade-profissional .aih-dataSolicitacao { grid-column: span 2; }
body.modulo-aih #blocoAih textarea { min-height: 80px; }
body.modulo-aih #blocoAih .painel-qualcid { margin-top: 12px; }
body.modulo-aih .btn-limpar-paciente { margin-right: auto; }
@media (max-width: 720px) {
    body.modulo-aih .aih-grade { grid-template-columns: minmax(0, 1fr); }
    body.modulo-aih #formClinCod .aih-grade :is(.form-field, .aih-campo) { grid-column: 1 / -1; }
}
.campo-com-botao { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.campo-com-botao input { flex: 1 1 140px; min-width: 0; }
.campo-com-botao .btn-horario-inline { flex-shrink: 0; white-space: nowrap; padding: 0 var(--space-3); }
.contador { color: var(--text-muted); font-size: var(--font-small); text-align: right; margin-top: var(--space-1); font-variant-numeric: tabular-nums; }
.contador.limite { color: var(--danger); font-weight: 700; }
button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
    min-height: 40px;
    max-width: 100%;
    padding: 8px 12px;
    border: 1px solid var(--control-border);
    border-radius: var(--radius-control);
    background: var(--bg-card);
    color: var(--primary);
    font-size: var(--font-small);
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
    white-space: normal;
    cursor: pointer;
    transition: background-color .15s ease, border-color .15s ease;
}
button:enabled:hover { background: var(--primary-light); border-color: var(--primary); }
button:enabled:active { background: var(--bg-subtle); }
:is(button, input, select, textarea, a):focus-visible { outline: 3px solid var(--border-focus); outline-offset: 3px; }
input:focus, select:focus, textarea:focus { border-color: var(--border-focus); }
button:disabled, input:disabled, select:disabled, textarea:disabled { background: var(--bg-subtle); color: var(--text-muted); border-color: var(--border); cursor: not-allowed; }
.btn-gerar, .btn-buscar-qualcid { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.btn-gerar:enabled:hover, .btn-buscar-qualcid:enabled:hover { background: var(--primary-hover); border-color: var(--primary-hover); }
.btn-gerar { flex: 1 1 250px; }
.btn-imprimir, .btn-editar-urgencia { background: var(--bg-card); color: var(--primary); border-color: var(--control-border); }
.btn-imprimir:enabled:hover, .btn-editar-urgencia:enabled:hover { background: var(--primary-light); border-color: var(--primary); }
.btn-remover, .btn-acao-perfil-del, .btn-limpar-urgencia { background: var(--bg-card); color: var(--danger); border-color: var(--danger); }
.btn-remover:enabled:hover, .btn-acao-perfil-del:enabled:hover, .btn-limpar-urgencia:enabled:hover { background: var(--danger-bg); border-color: var(--danger); }
.link-limpar { display: flex; width: fit-content; margin: var(--space-3) auto; background: transparent; border-color: transparent; color: var(--danger); font-weight: 400; }
.link-limpar:enabled:hover { background: var(--danger-bg); border-color: var(--danger); }
.form-actions, .botoes-dinamicos, .botoes-previa { margin-top: var(--space-4); gap: var(--space-3); }
.botoes-dinamicos { display: flex; flex-wrap: wrap; }
.botoes-previa { display: flex; flex-direction: column; }
.action-group > button { flex: 1 1 220px; }
.btn-gerar-urgencia { width: auto; }
#containerBotaoUrgencia { gap: 10px; }
#containerBotaoUrgencia > button { flex: 0 1 auto; }
#containerBotaoUrgencia > .btn-limpar-paciente { margin-right: auto; }
@media (max-width: 760px) {
    #containerBotaoUrgencia > button { flex: 1 1 100%; margin-right: 0; }
}
.bloco-perfil-hospital, .bloco-secundario, .bloco-transferencia-box { background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-4); margin: var(--space-4) 0; }
.profile-toolbar, .profile-actions { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.profile-toolbar { justify-content: space-between; margin-bottom: var(--space-3); }
.profile-toolbar label { margin: 0; color: var(--text-main); }
.profile-actions { margin-left: auto; }
.bloco-secundario-titulo { font-size: var(--font-body); font-weight: 600; color: var(--text-main); }
.autocomplete-container { position: relative; min-width: 0; }
.autocomplete-items {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 20;
    max-height: min(320px, 50dvh);
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: var(--space-1);
    border: 1px solid var(--control-border);
    border-radius: var(--radius-control);
    background: var(--bg-card);
    box-shadow: var(--shadow-popover);
}
.autocomplete-items:empty { display: none; }
.autocomplete-items button { display: block; width: 100%; padding: var(--space-3); margin: var(--space-1) 0; border-color: transparent; text-align: left; color: var(--text-main); font-weight: 400; }
.autocomplete-items button:focus-visible { outline-offset: -3px; background: var(--primary-light); }
.painel-qualcid { background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-4); }
.qualcid-topo { margin-bottom: var(--space-4); }
.qualcid-marca { display: flex; align-items: flex-start; gap: var(--space-3); }
.qualcid-marca > span { color: var(--primary); flex-shrink: 0; }
.qualcid-marca > span .icone { width: 24px; height: 24px; margin-top: 2px; }
.qualcid-marca h3 { font-size: var(--font-title); color: var(--text-main); line-height: 1.45; }
.qualcid-marca p { color: var(--text-muted); font-size: var(--font-small); margin-top: var(--space-1); }
.qualcid-busca-row { display: flex; gap: var(--space-3); margin-bottom: var(--space-4); }
.qualcid-busca-row input { flex: 1 1 0; }
.btn-buscar-qualcid { flex-shrink: 0; }
.examples-label { margin-bottom: var(--space-2); font-weight: 600; }
.qualcid-chips { display: flex; flex-wrap: wrap; gap: var(--space-2); }
.qualcid-chip { padding: 8px 12px; border-radius: 24px; font-weight: 400; color: var(--text-main); }
.qualcid-resultado-card { background: var(--bg-card); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-4); margin-top: var(--space-4); }
.central-cid-status { color: var(--text-muted); font-size: var(--font-small); padding-bottom: var(--space-3); }
.central-cid-titulo, .qualcid-doenca-destaque { font-size: var(--font-body); color: var(--text-main); margin: var(--space-3) 0; font-weight: 600; }
.qualcid-doenca-destaque { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.central-cid-lista { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); }
.central-cid-opcao { align-items: flex-start; justify-content: flex-start; text-align: left; color: var(--text-main); padding: var(--space-3); }
.central-cid-codigo { color: var(--primary); flex-shrink: 0; }
.central-cid-nome { overflow-wrap: anywhere; font-weight: 400; }
.central-cid-opcao.selecionado { background: var(--success-bg); border: 2px solid var(--success); padding: 11px; }
.central-cid-opcao.selecionado .central-cid-codigo { color: var(--success); }
.central-cid-procedimentos { border-top: 1px solid var(--border); margin-top: var(--space-4); padding-top: var(--space-2); }
.cid-picker-selecao { padding: var(--space-4); margin-top: var(--space-4); border: 1px solid var(--primary); border-radius: var(--radius-control); background: var(--primary-light); }
.cid-picker-selecao > p { color: var(--text-muted); font-size: var(--font-small); }
.cid-picker-selecao [role="status"] { display: block; overflow-wrap: anywhere; }
.cid-picker-acoes { display: flex; flex-wrap: wrap; gap: var(--space-2); margin-top: var(--space-3); }
.cid-picker .autocomplete-items { position: static; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--space-2); margin-top: var(--space-2); max-height: 400px; overflow-y: auto; z-index: auto; }
.cid-picker .autocomplete-items:empty { display: none; }
.cid-picker .autocomplete-items button { display: flex; gap: var(--space-2); align-items: flex-start; margin: 0; }
.cid-picker-optar, .opcoes-exclusivas { border: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--space-4); margin-bottom: var(--space-4); }
.cid-picker-optar legend, .opcoes-exclusivas legend { font-weight: 600; margin-bottom: var(--space-2); }
.cid-picker-optar label, .opcoes-exclusivas label { display: inline-flex; align-items: center; gap: var(--space-2); }
.atestado-erro { color: var(--danger); background: var(--danger-bg); padding: var(--space-3); border-radius: var(--radius-control); margin-bottom: var(--space-3); }
#atTextoPrevia { min-height: 380px; }
.central-cid-mensagem, .qualcid-subtitulo-procs { color: var(--text-muted); font-size: var(--font-small); margin-bottom: var(--space-3); }
.qualcid-itens-lista, .lista-historico { display: grid; gap: var(--space-3); }
.qualcid-linha-proc { display: flex; align-items: center; gap: var(--space-4); padding: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-control); background: var(--bg-card); }
.qualcid-linha-proc:hover { border-color: var(--primary); }
.qualcid-proc-conteudo { flex: 1 1 0; }
.qualcid-nome-proc { display: block; white-space: normal; overflow-wrap: anywhere; font-size: var(--font-small); color: var(--text-main); margin-top: var(--space-2); }
.qualcid-cod-proc { font-family: Consolas, 'Courier New', monospace; color: var(--primary); font-size: var(--font-small); font-weight: 700; }
.qualcid-bullet { display: none; }
.qualcid-btn-usar { flex-shrink: 0; background: var(--primary-light); border-color: var(--primary); }
.badge-grupo, .qualcid-badge-cidsug, .badge-historico, .history-type { display: inline-block; background: var(--primary-light); color: var(--primary); padding: 3px 8px; border-radius: 5px; font-size: var(--font-small); font-weight: 600; }
.badge-grupo { margin-left: var(--space-2); }
.qualcid-aviso-sucesso, #mensagemErro, #urgMensagemErro, #urgAvisoCopiado, .alerta-anti-glosa, .info-panel { padding: var(--space-4); border-radius: var(--radius-control); font-size: var(--font-small); line-height: 1.6; }
.qualcid-aviso-sucesso { display: none; color: var(--success); background: var(--success-bg); border: 1px solid var(--success); margin-top: var(--space-4); }
.campo-selecionado { border-color: var(--success); background: var(--success-bg); }
:is(input, select, textarea).campo-invalido { border: 2px solid var(--danger); background: var(--danger-bg); }
#mensagemErro { display: none; }
#mensagemErro, #urgMensagemErro { color: var(--danger); background: var(--danger-bg); border: 1px solid var(--danger); margin: var(--space-4) 0; }
.alerta-anti-glosa { color: var(--warning-text); background: var(--warning-bg); border: 1px solid var(--warning-text); margin: var(--space-4) 0; }
.alert-content { display: flex; align-items: flex-start; gap: var(--space-3); }
.alert-title { font-weight: 700; margin-bottom: var(--space-1); }
.alert-item { margin-top: var(--space-1); }
.info-panel, #urgAvisoCopiado { background: var(--primary-light); color: var(--primary); border: 1px solid var(--border); margin-bottom: var(--space-4); }
.info-panel-title { font-size: var(--font-body); font-weight: 700; display: flex; align-items: center; gap: var(--space-2); }
.info-panel-description { font-size: var(--font-small); color: var(--text-muted); margin-top: var(--space-1); }
.legenda-obrigatorios { display: flex; width: 100%; align-items: center; gap: var(--space-2); font-size: calc(var(--font-small) + 2px); color: var(--primary); background: var(--primary-light); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-1) var(--space-3); margin-bottom: var(--space-4); line-height: 1.5; font-weight: 500; }
.legenda-obrigatorios .icone { color: var(--primary); flex-shrink: 0; }
.campo-obrigatorio, .legenda-asterisco { font-weight: 800; font-size: 1.15em; line-height: 1; }
.legenda-obrigatorios .legenda-asterisco { color: var(--primary); }
.urg-rodape-box { color: var(--text-muted); background: var(--bg-subtle); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-4); margin-top: var(--space-4); font-size: var(--font-small); white-space: pre-wrap; overflow-wrap: anywhere; }
#urgTextoPrevia, #urgTextoCopiaManual { font: var(--font-small)/1.7 Consolas, 'Courier New', monospace; }
.historico-topo { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
.historico-toggle { justify-content: flex-start; text-align: left; border-color: transparent; color: var(--text-main); padding-inline: 0; }
.historico-toggle:enabled:hover { border-color: transparent; }
.history-actions { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); }
#iconeSetaHistorico { color: var(--text-muted); font-size: var(--font-small); font-weight: 600; }
#corpoHistorico { padding-top: var(--space-4); }
.history-note { margin-top: var(--space-4); }
.empty-state { padding: var(--space-4); text-align: center; color: var(--text-muted); font-size: var(--font-small); }
.item-historico { display: flex; align-items: center; gap: var(--space-4); border: 1px solid var(--border); border-radius: var(--radius-control); padding: var(--space-4); }
.item-historico-info { flex: 1 1 0; min-width: 0; overflow-wrap: anywhere; }
.history-heading { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); }
.history-heading small, .history-description { color: var(--text-muted); font-size: var(--font-small); }
.history-description { margin-top: var(--space-1); }
.history-cid { color: var(--primary); font-weight: 600; }
.btn-restaurar-hist { flex-shrink: 0; }
footer { padding: var(--space-3) var(--space-2); color: var(--text-muted); font-size: var(--font-small); text-align: center; }
footer p + p { margin-top: var(--space-1); }
@media (max-width: 760px) {
    body { padding: var(--space-5) var(--space-4); }
    .hub-navegacao { flex-wrap: wrap; }
    .btn-aba { flex-basis: 220px; }
    .central-cid-lista { grid-template-columns: 1fr; }
    .cid-picker .autocomplete-items { grid-template-columns: 1fr; }
    .qualcid-linha-proc { flex-wrap: wrap; gap: var(--space-3); }
    .qualcid-proc-conteudo { flex-basis: 100%; }
    .qualcid-btn-usar { width: 100%; }
}
@media (max-width: 520px) {
    body { padding: var(--space-4) var(--space-3); }
    .header { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: start; gap: var(--space-3); }
    .btn-theme { margin-left: auto; }
    .form-section, .card-historico, #painelPreviaUrgencia { padding: var(--space-4); }
    .btn-aba { flex-basis: 100%; justify-content: flex-start; text-align: left; }
    .form-row { gap: 12px; }
    .form-field, .form-field--compact { flex-basis: 100%; }
    .qualcid-busca-row { flex-wrap: wrap; }
    .qualcid-busca-row input, .btn-buscar-qualcid { flex-basis: 100%; }
    .profile-actions { margin-left: 0; width: 100%; }
    .profile-actions button { flex: 1 1 140px; }
    .item-historico { flex-wrap: wrap; }
    .item-historico-info, .btn-restaurar-hist { flex-basis: 100%; }
    .historico-toggle { flex-wrap: wrap; }
    .secao-titulo { flex-wrap: wrap; }
}
@media (prefers-reduced-motion: reduce) {
    button { transition: none; }
}
@media (forced-colors: active) {
    .btn-aba.ativa, .central-cid-opcao.selecionado { outline: 2px solid Highlight; }
}

/* Folha A4 Oficial de Atestado Médico (Prévia em Tela) */
.at-folha-container {
    width: 100%;
    margin: var(--space-4) auto;
    display: flex;
    justify-content: center;
    background: var(--bg-subtle, #f1f5f9);
    padding: var(--space-4);
    border-radius: var(--radius-md, 8px);
    overflow-x: auto;
}
.at-folha {
    width: 100%;
    max-width: 210mm;
    min-height: 270mm;
    background: #ffffff;
    color: #111827;
    border: 1px solid #cbd5e1;
    border-radius: 4px;
    box-shadow: 0 4px 20px rgba(0, 0, 0, 0.12);
    padding: 16mm 18mm;
    box-sizing: border-box;
    font-family: 'Segoe UI', Arial, sans-serif;
    display: flex;
    flex-direction: column;
}
.at-folha-cabecalho {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 8px;
}
.at-folha-simbolo {
    display: flex;
    align-items: center;
}
.at-folha-servico {
    font-size: 11px;
    font-weight: 600;
    color: #4b5563;
    letter-spacing: 0.5px;
    margin: 0;
}
.at-folha-divisor {
    border-top: 2.5px solid #134e4a;
    margin: 10px 0 20px 0;
}
.at-folha-titulos {
    text-align: center;
    margin-bottom: 24px;
}
.at-folha-titulo {
    font-size: 24px;
    font-weight: 800;
    color: #134e4a;
    letter-spacing: 1.5px;
    margin: 0 0 6px 0;
}
.at-folha-subtitulo {
    font-size: 11px;
    font-weight: 600;
    color: #537177;
    letter-spacing: 1.5px;
    margin: 0;
}
.at-folha-corpo {
    margin-top: 18px;
    font-size: 15px;
    line-height: 2.3;
    color: #111827;
}
.at-folha-paragrafo {
    margin: 0;
}
.at-campo-slot {
    display: inline-flex;
    flex-direction: column;
    vertical-align: bottom;
    text-align: center;
    margin: 0 4px;
    line-height: 1;
}
.at-campo-valor {
    border-bottom: 1.5px solid #111827;
    font-weight: 600;
    color: #111827;
    padding: 0 6px 2px 6px;
    min-height: 20px;
    font-size: 15px;
}
.at-campo-legenda {
    font-size: 9px;
    font-weight: 700;
    color: #4b5563;
    text-transform: uppercase;
    letter-spacing: 0.5px;
    padding-top: 3px;
}
.at-folha-cid-caixa {
    margin-top: 24px;
    border: 1.5px solid #cbd5e1;
    border-left: 4.5px solid #134e4a;
    border-radius: 6px;
    padding: 12px 16px;
    background: #f8fafc;
}
.at-folha-cid-linha {
    font-size: 14px;
    color: #111827;
    margin: 0 0 8px 0;
}
.at-folha-cid-nota {
    font-size: 10.5px;
    line-height: 1.4;
    color: #64748b;
    margin: 0;
}
.at-folha-local-data {
    margin: 32px 0 20px 0;
    text-align: center;
    font-size: 14px;
}
.at-folha-assinaturas {
    display: flex;
    justify-content: space-between;
    gap: 48px;
    margin-top: 48px;
}
.at-assinatura-bloco {
    flex: 1;
    text-align: center;
}
.at-assinatura-linha {
    border-top: 1.5px solid #111827;
    margin-bottom: 8px;
}
.at-assinatura-titulo {
    font-weight: 700;
    font-size: 13px;
    color: #111827;
    margin: 0 0 4px 0;
}
.at-assinatura-subtitulo {
    font-size: 10px;
    color: #64748b;
    margin: 0;
}
.at-folha-rodape {
    margin-top: auto;
    padding-top: 20px;
    display: flex;
    justify-content: space-between;
    font-size: 10.5px;
    color: #64748b;
}


/* Organização da APAC; os cards aprovados da AIH permanecem inalterados. */
body.modulo-apac .aih-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px 16px; align-items: end; }
body.modulo-apac .aih-grade .form-row { display: contents; }
body.modulo-apac .aih-grade .form-field, body.modulo-apac .aih-campo { display: flex; flex-direction: column; min-width: 0; grid-column: span 6; }
body.modulo-apac .aih-grade-estabelecimento .aih-nomeEstabelecimento { grid-column: span 8; }
body.modulo-apac .aih-grade-estabelecimento .aih-cnesEstabelecimento { grid-column: span 4; }
body.modulo-apac .aih-grade-paciente .aih-nomePaciente { grid-column: span 7; align-self: start; }
body.modulo-apac .aih-grade-paciente .aih-cnsPaciente { grid-column: span 5; }
body.modulo-apac .aih-grade-paciente .form-field:has(#dataNascimento), body.modulo-apac .aih-grade-paciente .form-field:has(#sexoPaciente) { grid-column: span 3; }
body.modulo-apac .aih-grade-paciente .form-field:has(#municipioResidencia) { grid-column: span 8; }
body.modulo-apac .aih-grade-paciente .form-field:has(#uf), body.modulo-apac .aih-grade-paciente .form-field:has(#cep) { grid-column: span 2; }
body.modulo-apac .aih-grade .cns-opcao { flex-direction: row; margin: 4px 0 0; min-height: 28px; font-weight: 400; }
body.modulo-apac .aih-grade .cns-orientacao { margin: 0; font-size: .75rem; }
body.modulo-apac .aih-grade-diagnostico .aih-diagnosticoInicial, body.modulo-apac .aih-grade-diagnostico .aih-descricaoProcedimento { grid-column: span 8; }
body.modulo-apac .aih-grade-diagnostico .aih-buscaCidPrincipal, body.modulo-apac .aih-grade-diagnostico .aih-buscaCodigoProcedimento { grid-column: span 4; }
body.modulo-apac .aih-grade-profissional .form-field { grid-column: span 3; }
body.modulo-apac .aih-grade-profissional .aih-nomeProfissional { grid-column: span 4; }
body.modulo-apac .aih-grade-profissional .aih-dataSolicitacao { grid-column: span 2; }
body.modulo-apac #blocoAih textarea { min-height: 80px; }
body.modulo-apac #blocoAih .painel-qualcid { margin-top: 12px; }
body.modulo-apac .btn-limpar-paciente { margin-right: auto; }
@media (max-width: 720px) {
    body.modulo-apac .aih-grade { grid-template-columns: minmax(0, 1fr); }
    body.modulo-apac #formClinCod .aih-grade :is(.form-field, .aih-campo) { grid-column: 1 / -1; }
}
body.modulo-apac #blocoApac textarea { min-height: 80px; }
body.modulo-apac #blocoApac .painel-apac { margin-top: 12px; }
body.modulo-apac #apacDiagnosticoProcedimento .cid-picker { background: transparent; border: 0; padding: 0; margin: 0; }
body.modulo-apac #apacDiagnosticoProcedimento .cid-picker { display: grid; grid-template-columns: 2fr 1fr; gap: 12px 16px; align-items: start; }
body.modulo-apac #apacDiagnosticoProcedimento .cid-picker label { margin: 0 0 6px; }
body.modulo-apac #apacDiagnosticoProcedimento .cid-picker-selecao { grid-column: 1 / -1; }
body.modulo-apac .apac-grade-procedimento { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 16px; align-items: end; }
body.modulo-apac .apac-grade-procedimento > .field-note { grid-column: 1 / -1; margin: 8px 0 0; }
body.modulo-apac .apac-grade-procedimento label { margin: 0 0 6px; }
body.modulo-apac .apac-grade-procedimento .form-row { margin: 0; }
body.modulo-apac .apac-secundarios { border-top: 1px solid var(--border); margin-top: 16px; padding-top: 12px; }
body.modulo-apac .apac-secundarios h3 { font-size: var(--font-small); }
/* Apenas as ações inferiores e a barra do histórico da AIH/APAC. */
:is(#containerBotaoAih, #containerBotaoApac) { gap: 10px; }
:is(#containerBotaoAih, #containerBotaoApac) > button { flex: 0 1 auto; }
:is(#containerBotaoAih, #containerBotaoApac) > .btn-limpar-paciente { margin-right: auto; }
#cardHistoricoLaudos { padding: 0; margin-top: 12px; }
#cardHistoricoLaudos .historico-toggle { width: 100%; padding: 10px 16px; gap: 10px; border-radius: var(--radius-card); }
#cardHistoricoLaudos #iconeSetaHistorico { margin-left: auto; font-size: 0; }
#cardHistoricoLaudos #iconeSetaHistorico::after { content: ''; display: block; width: 8px; height: 8px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
#cardHistoricoLaudos [aria-expanded="true"] #iconeSetaHistorico::after { transform: rotate(225deg); }
#cardHistoricoLaudos #corpoHistorico { padding: 0 16px 16px; }
#cardHistoricoLaudos .history-actions { justify-content: flex-end; margin-bottom: 12px; }
@media (max-width: 760px) {
 body.modulo-apac .apac-grade-procedimento { grid-template-columns: minmax(0, 1fr); }
 body.modulo-apac #apacDiagnosticoProcedimento .cid-picker { grid-template-columns: minmax(0, 1fr); }
 :is(#containerBotaoAih, #containerBotaoApac) > button { flex: 1 1 100%; margin-right: 0; }
 #cardHistoricoLaudos .historico-toggle { font-size: .8125rem; padding-inline: 12px; }
}

/* Urgência: o mesmo padrão de cards, cabeçalhos e campos da AIH/APAC. */
body.modulo-urgencia .urg-grade { display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 12px 16px; align-items: start; }
body.modulo-urgencia .urg-grade .form-row { display: contents; }
body.modulo-urgencia .urg-grade :is(.form-field, .urg-campo) { display: flex; flex-direction: column; min-width: 0; grid-column: span 6; }
body.modulo-urgencia .urg-grade .cns-opcao { flex-direction: row; margin: 4px 0 0; min-height: 28px; font-weight: 400; }
body.modulo-urgencia .urg-grade .cns-orientacao { margin: 0; font-size: .75rem; }
body.modulo-urgencia .urg-grade-unidade .urg-unidade-nome { grid-column: span 8; }
body.modulo-urgencia .urg-grade-unidade .urg-campo:not(.urg-unidade-nome) { grid-column: span 4; }
body.modulo-urgencia .urg-grade-paciente .urg-paciente-nome { grid-column: span 7; }
body.modulo-urgencia .urg-grade-paciente .urg-paciente-cns { grid-column: span 5; }
body.modulo-urgencia .urg-grade-paciente .form-field { grid-column: span 3; }
body.modulo-urgencia .urg-grade-destino .urg-campo { grid-column: span 4; }
body.modulo-urgencia :is(.urg-grade-destino, .urg-grade-profissional) { align-items: end; }
body.modulo-urgencia .urg-grade-paciente .form-field { align-self: end; }
body.modulo-urgencia .urg-grade-afericao { align-items: end; }
body.modulo-urgencia .urg-grade-afericao > button { grid-column: span 6; justify-self: end; }
body.modulo-urgencia .urg-grade-diagnostico > .urg-campo { grid-column: span 8; }
body.modulo-urgencia .urg-grade-diagnostico > .cid-picker { grid-column: span 4; background: transparent; border: 0; padding: 0; margin: 0; min-width: 0; }
body.modulo-urgencia .urg-grade-diagnostico > .cid-picker > label { margin-top: 0; }
body.modulo-urgencia .urg-grade-diagnostico > .cid-picker > label, body.modulo-urgencia .urg-grade-diagnostico > .urg-campo > label { min-height: 42px; }
body.modulo-urgencia .urg-manchester { border: 0; padding: 0; margin: 0 0 12px; min-width: 0; }
body.modulo-urgencia .urg-manchester legend { font-size: var(--font-small); font-weight: 600; margin-bottom: 6px; }
body.modulo-urgencia .urg-manchester-opcoes { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; }
body.modulo-urgencia .urg-risco { min-width: 0; padding: 9px 8px; border: 2px solid transparent; font-size: .75rem; color: #fff; }
body.modulo-urgencia .urg-risco-vermelho { background: #c62828; }
body.modulo-urgencia .urg-risco-laranja { background: #ff9800; color: #192534; }
body.modulo-urgencia .urg-risco-amarelo { background: #fdd835; color: #192534; }
body.modulo-urgencia .urg-risco-verde { background: #238636; }
body.modulo-urgencia .urg-risco-azul { background: #1464c0; }
body.modulo-urgencia .urg-risco:enabled:hover { filter: brightness(.92); border-color: var(--text-main); }
body.modulo-urgencia .urg-risco[aria-pressed="true"] { outline: 2px solid var(--text-main); outline-offset: 2px; border-color: currentColor; font-weight: 800; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 720px) {
 body.modulo-urgencia .urg-grade { grid-template-columns: minmax(0, 1fr); }
 body.modulo-urgencia #blocoUrgenciaForm .urg-grade > :is(.urg-campo, .cid-picker, button), body.modulo-urgencia .urg-grade .form-field { grid-column: 1 / -1; }
 body.modulo-urgencia .urg-manchester-opcoes { grid-template-columns: repeat(2, minmax(0, 1fr)); }
 body.modulo-urgencia .urg-risco:last-child { grid-column: 1 / -1; }
}

/* Atestados: mesmos cabeçalhos e ações da AIH, sem alterar a folha A4. */
body.modulo-atestados #containerBotaoAtestado { gap: 10px; }
body.modulo-atestados #containerBotaoAtestado > button { flex: 0 1 auto; }
body.modulo-atestados #containerBotaoAtestado > .btn-limpar-paciente { margin-right: auto; }
@media (max-width: 760px) {
 body.modulo-atestados #containerBotaoAtestado > button { flex: 1 1 100%; margin-right: 0; }
}

body.modulo-atestados #formAtestado .form-field > label { margin: 0 0 6px; }
body.modulo-atestados #formAtestado label:has(> #atCpfNaoApresentado) { display: flex; align-items: center; gap: 8px; margin: 4px 0 0; min-height: 28px; font-weight: 400; }
@media (max-width: 720px) { body.modulo-atestados #formAtestado .form-section { padding: 16px; } }

/* Prescrição: o app tem rolagem própria (os modais dele ficam visíveis), ocupando a altura útil abaixo do cabeçalho. */
.frame-prescricao { display: block; width: 100%; height: calc(100dvh - var(--altura-cabecalho-prescricao, 150px)); min-height: 480px; border: 0; background: transparent; }

/* Procedimento SIGTAP na Urgência (um, o mesmo da AIH); ver js/urgencia-procedimento-ui.js. */
#cidTrocarUrgencia { display:none; } /* só "Remover" na Urgência */
.urg-procedimento { margin-top:12px; }
.urg-proc-titulo { display:flex; align-items:center; gap:8px; margin:0 0 4px; font-weight:600; font-size:13.5px; }
.urg-proc-cid { font-weight:400; color:var(--text-muted); }
.urg-proc-lista { max-height:170px; overflow:auto; padding:4px; border:1px solid var(--border); border-radius:9px; }
.urg-proc-item { display:flex; align-items:center; gap:7px; min-width:0; margin:0; padding:3px 6px; border-radius:6px; font-size:12px; font-weight:400; line-height:1.3; cursor:pointer; }
.urg-proc-item.marcado { background:var(--primary-light); }
.urg-proc-item input { flex:none; width:14px; height:14px; margin:0; }
.urg-proc-codigo { flex:none; font-family:ui-monospace,Consolas,monospace; font-weight:700; }
.urg-proc-nome { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.urg-proc-selo { flex:none; padding:0 5px; border-radius:7px; background:var(--success-bg); color:var(--success); font-size:10.5px; font-weight:600; }
.urg-proc-vazio { margin:2px 4px; font-size:12px; color:var(--text-muted); }
.urg-proc-vazio.aviso { padding:6px 8px; border-radius:7px; background:var(--warning-bg); color:var(--warning-text); }
.urg-proc-remover { margin-left:auto; padding:2px 8px; min-height:0; font-size:12px; }
.urg-proc-remover[hidden] { display:none; }
.urg-procedimento .autocomplete-container { margin-top:6px; }
.urg-procedimento #urgProcBusca { height:34px; font-size:13px; }
.urg-proc-nota { margin:4px 0 0; font-size:11px; color:var(--text-muted); }
