:root{
  /* paleta do site da Prefeitura de Nazaria (nazaria.pi.gov.br) */
  --laranja:#f16b35; --laranja-esc:#d2541f; --laranja-claro:#fdeee6;
  --verde:#16734a; --verde-esc:#0e5235; --verde-claro:#e8f3ee;
  --navy:#102a43;
  --azul:#1f6fb0; --azul-claro:#e7f0f8;
  --amarelo:#9a6a00; --amarelo-claro:#fbf1d8;
  --vermelho:#ca0000; --vermelho-claro:#fbe9e9;
  --cinza-pg:#f4f6f7; --surface:#fff; --texto:#1b2530; --texto-sec:#5a6672; --borda:#e3e7ea;
  --radius:12px; --radius-sm:8px; --sombra:0 1px 2px rgba(16,40,28,.06),0 4px 16px rgba(16,40,28,.05);
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;font-family:var(--font);color:var(--texto);background:var(--cinza-pg);line-height:1.55}
button{font-family:inherit}
.hidden{display:none!important}

header.brasao{background:var(--verde-esc);color:#fff;padding:13px 22px;display:flex;align-items:center;gap:14px;border-bottom:4px solid var(--laranja)}
.brasao .escudo{width:42px;height:42px;flex:0 0 auto}
.logo-wrap{background:#fff;border-radius:10px;padding:6px 12px;display:flex;align-items:center;flex:0 0 auto}
.logo-img{height:64px;width:auto;display:block}
.logo-wrap .escudo{width:56px;height:56px}
.brasao h1{font-size:17px;margin:0;font-weight:600}
.brasao p{margin:1px 0 0;font-size:12px;color:#bfe0d0}
.brasao .right{margin-left:auto;display:flex;align-items:center;gap:14px}
.brasao .sistema{text-align:right}
.brasao .sistema strong{font-size:14px;font-weight:600;display:block}
.brasao .sistema span{font-size:11px;color:#bfe0d0}
.userchip{display:flex;align-items:center;gap:9px;background:rgba(255,255,255,.12);padding:5px 10px;border-radius:999px}
.userchip .av{width:30px;height:30px;border-radius:50%;background:#bfe0d0;color:var(--verde-esc);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:13px}
.userchip small{display:block;font-size:11px;color:#bfe0d0;line-height:1.2}
.userchip b{font-size:13px;font-weight:600}
.userchip button{margin-left:6px;background:none;border:0;color:#bfe0d0;cursor:pointer;font-size:18px;line-height:1}

/* Menu lateral (sidebar). No celular vira gaveta aberta pelo botão ☰ do cabeçalho. */
.shell{display:flex;align-items:flex-start;min-height:calc(100vh - 94px)}
.shell main{flex:1 1 auto;min-width:0}
nav.tabs{flex:0 0 228px;position:sticky;top:0;align-self:flex-start;max-height:100vh;overflow-y:auto;
  background:var(--surface);border-right:1px solid var(--borda);min-height:calc(100vh - 94px);
  padding:14px 10px;display:flex;flex-direction:column;gap:2px}
nav.tabs button{border:0;background:none;font-size:14px;color:var(--texto-sec);padding:10px 14px;cursor:pointer;
  text-align:left;border-radius:var(--radius-sm);border-left:3px solid transparent;font-weight:500;transition:background .15s,color .15s}
nav.tabs button:hover{color:var(--laranja-esc);background:var(--laranja-claro)}
nav.tabs button:focus-visible{outline:2px solid var(--laranja);outline-offset:-2px}
nav.tabs button.ativo{color:var(--laranja-esc);background:var(--laranja-claro);border-left-color:var(--laranja);font-weight:600}
.menu-btn{background:rgba(255,255,255,.12);border:0;color:#fff;font-size:22px;line-height:1;width:42px;height:42px;
  border-radius:var(--radius-sm);cursor:pointer;flex:0 0 auto}
.menu-fundo{display:none}
@media (min-width: 901px){ .menu-btn{display:none!important} }
@media (max-width: 900px){
  nav.tabs{position:fixed;top:0;left:0;bottom:0;z-index:60;width:260px;max-height:none;min-height:0;
    padding-top:max(16px,env(safe-area-inset-top));box-shadow:4px 0 24px rgba(16,40,28,.18);
    transform:translateX(-105%);transition:transform .2s ease}
  body.menu-aberto nav.tabs{transform:none}
  body.menu-aberto .menu-fundo{display:block;position:fixed;inset:0;z-index:55;background:rgba(16,40,28,.35)}
}
@media (max-width: 480px){ .brasao .titulo{display:none} }

main{max-width:1040px;margin:0 auto;padding:24px 20px 60px}
.view-head{margin:0 0 18px}
.view-head h2{font-size:20px;margin:0;font-weight:600;color:var(--verde-esc)}
.view-head p{margin:4px 0 0;color:var(--texto-sec);font-size:14px}

.toolbar{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;margin-bottom:18px}
.field{display:flex;flex-direction:column;gap:4px;min-width:0}
.field label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;color:var(--texto-sec)}
.field select,.field input{font-family:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--borda);border-radius:var(--radius-sm);background:var(--surface);min-width:160px;color:var(--texto)}

.btn{border:0;font-size:14px;font-weight:600;padding:10px 16px;border-radius:var(--radius-sm);cursor:pointer;background:var(--laranja);color:#fff;transition:.15s}
.btn:hover{background:var(--laranja-esc)}
.btn:disabled{background:#d8dde1;color:#8a929a;cursor:default}
.btn.ghost{background:var(--surface);border:1px solid var(--borda);color:var(--texto)}
.btn.ghost:hover{border-color:var(--laranja);color:var(--laranja-esc);background:var(--surface)}

.grid{display:grid;gap:14px}
.grid.cards{grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
.grid.metrics{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.grid.forms{grid-template-columns:repeat(auto-fit,minmax(300px,1fr));align-items:start}

.card{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);padding:16px;box-shadow:var(--sombra)}
.vaga{display:flex;flex-direction:column;gap:9px}
.vaga .ubs{font-size:12px;color:var(--laranja-esc);font-weight:600}
.vaga h3{margin:0;font-size:16px;font-weight:600;color:var(--verde-esc)}
.vaga .esp{font-size:13px;color:var(--texto-sec)}
.vaga .quando{font-size:14px;background:var(--verde-claro);color:var(--verde-esc);padding:8px 11px;border-radius:var(--radius-sm);font-weight:500}
.vaga .btn{margin-top:auto}

.panel{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);box-shadow:var(--sombra);padding:20px;margin-bottom:18px}
.panel h3{margin:0 0 14px;font-size:15px;font-weight:600;color:var(--verde-esc)}
.panel .field{margin-bottom:12px}
.panel .field input,.panel .field select{width:100%;min-width:0}

.lista{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);box-shadow:var(--sombra);overflow:hidden}
.lista .row{display:flex;align-items:center;gap:14px;padding:14px 18px;border-top:1px solid var(--borda)}
.lista .row:first-child{border-top:0}
.lista .row .who{flex:1;min-width:0}
.lista .row .who b{font-size:15px;font-weight:600}
.lista .row .who small{display:block;color:var(--texto-sec);font-size:13px}
.lista .row .when{font-size:13px;color:var(--texto-sec);text-align:right;white-space:nowrap}

.badge{font-size:12px;font-weight:600;padding:4px 10px;border-radius:999px;white-space:nowrap}
.b-AGENDADO{background:var(--azul-claro);color:var(--azul)}
.b-CONFIRMADO{background:var(--verde-claro);color:var(--verde-esc)}
.b-REALIZADO{background:#e9eef2;color:#37474f}
.b-FALTA{background:var(--vermelho-claro);color:var(--vermelho)}
.b-CANCELADO{background:#f0eeea;color:#6b6258}
.b-PROXIMO{background:var(--verde);color:#fff}
.b-PRIORIDADE{background:#fff3da;color:#9a6a00;border:1px solid #f0d693}
/* Status de senha (histórico de chamadas) */
.b-CHAMADA{background:var(--azul-claro);color:var(--azul)}
.b-EM_ATENDIMENTO{background:#fff3da;color:#9a6a00}
.b-FINALIZADA{background:#e9eef2;color:#37474f}
.b-CANCELADA{background:#f0eeea;color:#6b6258}
/* Conexão WhatsApp (QR de pareamento em Configurações) */
.wpp-qr{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.wpp-qr img{width:260px;height:260px;image-rendering:pixelated;border:1px solid var(--borda);border-radius:12px;background:#fff;padding:8px}
.wpp-ok{background:var(--verde-claro);color:var(--verde-esc);border:1px solid var(--verde);border-radius:10px;padding:12px 14px;font-weight:600}
/* Botão "Chamar" do profissional após chamar (feedback) */
button.ok{background:var(--verde-claro)!important;color:var(--verde-esc)!important;border-color:var(--verde)!important}
.lista .row.proximo{background:var(--verde-claro);border-left:4px solid var(--verde)}
.lista .row .pos{width:28px;flex:0 0 auto;text-align:center;font-weight:700;color:var(--verde-esc);font-size:15px}

.grid.prof-cards{grid-template-columns:repeat(auto-fill,minmax(380px,1fr));align-items:start}
.prof-card{padding:0;overflow:hidden}
.prof-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;padding:13px 16px;border-bottom:1px solid var(--borda);background:var(--verde-claro)}
.prof-head h3{margin:0;font-size:15px;color:var(--verde-esc)}
.prof-head small{color:var(--texto-sec);font-size:12px}
.prof-cont{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;font-size:11px;color:var(--texto-sec);text-align:right}
.prof-cont span{white-space:nowrap}
.prof-lista{display:flex;flex-direction:column}
.pac{display:flex;align-items:center;gap:10px;padding:10px 14px;border-top:1px solid var(--borda);flex-wrap:wrap}
.pac:first-child{border-top:0}
.pac.proximo{background:var(--verde-claro);border-left:4px solid var(--verde)}
.pac-info{display:flex;align-items:center;gap:10px;flex:1;min-width:150px}
.pac .pos{width:20px;flex:0 0 auto;text-align:center;font-weight:700;color:var(--verde-esc);font-size:14px}
.pac .who b{font-size:14px}
.pac .who small{display:block;color:var(--texto-sec);font-size:12px}
.pac-tags{display:flex;gap:6px;flex-wrap:wrap;align-items:center}

/* Escala */
.esc-bar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--borda);border-radius:var(--radius-sm);overflow:hidden;background:var(--surface)}
.seg button{border:0;background:none;font-size:13px;font-weight:600;color:var(--texto-sec);padding:9px 14px;cursor:pointer;border-right:1px solid var(--borda)}
.seg button:last-child{border-right:0}
.seg button.ativo{background:var(--verde-esc);color:#fff}
/* Segmentado em largura cheia (ex.: Tipo de senha): 3 botões iguais, clicáveis */
.seg.full{display:flex;width:100%}
.seg.full button{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:11px 8px;font-size:14px;line-height:1.15;transition:background .12s}
.seg.full button:hover:not(.ativo){background:var(--cinza-cl,#f1f5f9)}
.seg.full button small{font-size:11px;font-weight:500;opacity:.85}
.seg.full button.ativo small{opacity:.95}
.esc-nav{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.esc-nav b{font-size:15px;text-transform:capitalize;min-width:170px;text-align:center}
.esc-nav button:not(.btn){width:32px;height:32px;border:1px solid var(--borda);background:var(--surface);border-radius:var(--radius-sm);cursor:pointer;font-size:18px;line-height:1;color:var(--texto)}
.esc-nav button:not(.btn):hover{border-color:var(--verde);color:var(--verde-esc)}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.cal-wd{text-align:center;font-size:11px;font-weight:600;color:var(--texto-sec);text-transform:uppercase;padding:4px 0}
.cal-cell{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius-sm);min-height:104px;padding:6px;cursor:pointer;transition:.12s;display:flex;flex-direction:column;gap:4px}
.cal-cell:hover{border-color:var(--verde);box-shadow:var(--sombra)}
.cal-cell.vazio{background:transparent;border:0;cursor:default}
.cal-num{font-size:12px;font-weight:600;color:var(--texto-sec)}
/* chip do turno: horario + NOME COMPLETO (quebra de linha; sem cortar com reticencias) */
.cal-turno{font-size:11px;border-radius:5px;padding:3px 6px;font-weight:600;display:flex;flex-direction:column;line-height:1.18;border-left:3px solid transparent}
.cal-turno .ct-hr{font-size:9px;font-weight:700;opacity:.85;letter-spacing:.02em}
.cal-turno .ct-nm{font-weight:600;white-space:normal;word-break:break-word}
.cal-mais{font-size:10px;color:var(--texto-sec);font-weight:600}
.sem-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;align-items:start}
.sem-col{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius-sm);overflow:hidden;min-height:80px}
.sem-head{background:var(--verde-claro);color:var(--verde-esc);font-size:12px;font-weight:600;text-align:center;padding:6px}
.sem-turno{padding:7px 8px;border-top:1px solid var(--borda);font-size:12px;border-left:3px solid transparent}
.sem-turno b{display:block}
.sem-turno span{display:block;font-weight:600}
.sem-turno small{color:var(--texto-sec)}
/* cor por turno: manha (verde) / tarde (ambar); destaque do proprio turno */
.t-manha{background:var(--verde-claro);color:var(--verde-esc);border-left-color:var(--verde)}
.t-tarde{background:#fff4e3;color:#a85d00;border-left-color:#e8920c}
.t-meu{outline:2px solid var(--verde);outline-offset:-2px;box-shadow:0 0 0 1px var(--verde) inset}
.esc-leg{display:flex;gap:8px;align-items:center;margin:2px 0 12px;flex-wrap:wrap}
.esc-leg .lg{font-size:11px;font-weight:600;padding:2px 9px;border-radius:999px;border-left:3px solid transparent}
.esc-leg .lg.t-meu{background:var(--surface);color:var(--texto);outline:2px solid var(--verde)}
.row-meu{outline:2px solid var(--verde);outline-offset:-2px;border-radius:var(--radius-sm)}
.esc-rep{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--texto-sec);margin:6px 0 10px}
.dias-sem{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:12px}
.dias-sem label{display:flex;align-items:center;gap:5px;font-size:13px}

/* Prontuario */
textarea{font-family:inherit;font-size:14px;padding:9px 11px;border:1px solid var(--borda);border-radius:var(--radius-sm);width:100%;resize:vertical;color:var(--texto);background:var(--surface)}
.tp-item{display:flex;gap:8px;margin-bottom:8px;flex-wrap:wrap}
.tp-item .it-tipo{font-size:13px;padding:7px 9px;border:1px solid var(--borda);border-radius:var(--radius-sm);background:var(--surface)}
.tp-item .it-desc{flex:1;min-width:160px;font-size:13px;padding:7px 9px;border:1px solid var(--borda);border-radius:var(--radius-sm)}
.tp-item .it-rm{border:1px solid var(--borda);background:var(--surface);border-radius:var(--radius-sm);width:32px;cursor:pointer;font-size:16px}
.tp-item .it-rm:hover{border-color:var(--vermelho);color:var(--vermelho)}
.tp-acoes{display:flex;gap:8px;flex-wrap:wrap;margin-top:6px}
.badge.tag-totem{background:#e8f0fe;color:#1a56b3;border:1px solid #aac4f0}
.uni-checks{display:flex;flex-wrap:wrap;gap:6px 14px;padding:4px 0}
.uni-chk{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;color:var(--texto)}
.uni-chk input{width:auto;min-width:0}

/* Aviso de envio suspenso (anti-flood/banimento) */
.aviso-susp{background:var(--amarelo-claro,#fff7e0);border:1px solid var(--amarelo,#e8b800);
  color:#7a5b00;border-radius:var(--radius-sm);padding:12px 14px;margin-bottom:16px;font-size:13px;line-height:1.5}
.aviso-susp code{background:rgba(0,0,0,.07);padding:1px 5px;border-radius:4px;font-size:12px}

/* ---- Autocomplete CID-10 ---- */
.cid-wrap{position:relative}
.cid-sug{position:absolute;z-index:40;left:0;right:0;top:calc(100% + 2px);background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius-sm);box-shadow:var(--sombra);max-height:260px;overflow:auto}
.cid-sug.hidden{display:none}
.cid-op{padding:8px 11px;font-size:13px;cursor:pointer;border-bottom:1px solid var(--borda)}
.cid-op:last-child{border-bottom:0}
.cid-op:hover{background:var(--verde-claro)}
.cid-op b{color:var(--verde-esc);margin-right:6px}
.cid-empty{padding:10px 11px;font-size:13px;color:var(--texto-sec)}

/* ---- Modal de documento (receita / atestado) ---- */
.doc-modal-bg{position:fixed;inset:0;background:rgba(15,30,20,.5);display:flex;align-items:center;justify-content:center;z-index:120;padding:20px}
.doc-modal{background:var(--surface);border-radius:var(--radius);box-shadow:var(--sombra);width:min(820px,100%);max-height:92vh;display:flex;flex-direction:column;overflow:hidden}
.doc-modal-head{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--borda)}
.doc-modal-head small{color:var(--texto-sec);font-weight:400;margin-left:6px}
.doc-x{border:0;background:transparent;font-size:24px;line-height:1;cursor:pointer;color:var(--texto-sec)}
.doc-x:hover{color:var(--vermelho)}
.doc-ctrls{display:flex;gap:18px;flex-wrap:wrap;padding:12px 18px;background:var(--cinza-pg);border-bottom:1px solid var(--borda)}
.doc-ctl{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--texto)}
.doc-ctl input[type=number]{padding:6px 8px;border:1px solid var(--borda);border-radius:var(--radius-sm)}
.doc-page{overflow:auto;padding:28px 34px;margin:0;background:#fff;color:#111;font-family:Georgia,"Times New Roman",serif;line-height:1.55;outline:none}
.doc-page:focus{box-shadow:inset 0 0 0 2px var(--verde-claro)}
.doc-page .doc-h{text-align:center}
.doc-page .doc-h h2{margin:0;font-size:18px}
.doc-page .doc-sub{font-size:13px;color:#333}
.doc-page h3{text-align:center;letter-spacing:.08em;margin:18px 0}
.doc-page hr{border:0;border-top:1px solid #999;margin:14px 0}
.doc-page ol.doc-meds{margin:14px 0;padding-left:22px}
.doc-page ol.doc-meds li{margin:8px 0}
.doc-page .assin{margin-top:54px;text-align:center}
.doc-page .rod{margin-top:24px;text-align:center;font-size:12px;color:#555}
.doc-modal-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 18px;border-top:1px solid var(--borda)}

.lista .row input,.lista .row select{font-family:inherit;font-size:13px;padding:7px 9px;border:1px solid var(--borda);border-radius:var(--radius-sm);background:var(--surface);color:var(--texto);min-width:90px}
.acoes{display:flex;gap:6px;flex-wrap:wrap}
.acoes button{border:1px solid var(--borda);background:var(--surface);font-size:12px;font-weight:600;padding:7px 11px;border-radius:var(--radius-sm);cursor:pointer;color:var(--texto)}
.acoes button:hover{border-color:var(--laranja);color:var(--laranja-esc)}
.acoes button.danger:hover{border-color:var(--vermelho);color:var(--vermelho)}

.metric{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);padding:18px;box-shadow:var(--sombra)}
.metric .lab{font-size:13px;color:var(--texto-sec)}
.metric .num{font-size:28px;font-weight:700;margin-top:4px;color:var(--verde-esc)}
.metric .num.alerta{color:var(--vermelho)}

table.tbl{width:100%;border-collapse:collapse;font-size:13px}
table.tbl th{text-align:left;color:var(--texto-sec);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.5px;padding:10px 12px;border-bottom:1px solid var(--borda)}
table.tbl td{padding:11px 12px;border-bottom:1px solid var(--borda);vertical-align:top}
table.tbl code{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--texto-sec)}
.tbl-wrap{overflow-x:auto}
.cfg-row{display:flex;gap:12px;align-items:flex-start;padding:14px 0;border-bottom:1px solid var(--borda);cursor:pointer}
.cfg-row input{margin-top:3px;width:18px;height:18px;flex:none}
.cfg-row .cfg-txt{display:flex;flex-direction:column;gap:3px}
.cfg-row .cfg-txt small{color:var(--texto-sec);font-size:12px}
table.tbl-papeis{min-width:640px}
table.tbl-papeis td:nth-child(3),table.tbl-papeis td:nth-child(4){max-width:280px}

.empty{padding:26px;text-align:center;color:var(--texto-sec);font-size:14px}
.muted{color:var(--texto-sec);font-size:13px}

.auth-wrap{max-width:420px;margin:50px auto;padding:0 16px}
.auth-card{background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);box-shadow:var(--sombra);padding:26px}
.auth-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:1px solid var(--borda)}
.auth-tabs button{flex:1;border:0;background:none;font-size:14px;font-weight:600;color:var(--texto-sec);padding:10px;cursor:pointer;border-bottom:3px solid transparent}
.auth-tabs button.ativo{color:var(--laranja-esc);border-bottom-color:var(--laranja)}
.auth-card .field{margin-bottom:14px}
.auth-card .field input,.auth-card .field select{width:100%}
.auth-card .btn{width:100%;margin-top:6px}
.auth-err{background:var(--vermelho-claro);color:var(--vermelho);font-size:13px;padding:10px 12px;border-radius:var(--radius-sm);margin-bottom:14px}
.auth-demo{margin-top:16px;padding-top:14px;border-top:1px dashed var(--borda);display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.auth-demo span{font-size:12px;color:var(--texto-sec);width:100%}
.auth-demo button{flex:1;min-width:90px;border:1px solid #f3c9b4;background:var(--laranja-claro);color:var(--laranja-esc);font-size:13px;font-weight:600;padding:9px 10px;border-radius:var(--radius-sm);cursor:pointer}
.auth-demo button:hover{background:var(--laranja);color:#fff;border-color:var(--laranja)}
.auth-hint{margin-top:16px;font-size:12px;color:var(--texto-sec);text-align:center;line-height:1.6}

.toast{position:fixed;left:50%;bottom:26px;transform:translateX(-50%) translateY(20px);background:var(--verde-esc);color:#fff;padding:12px 20px;border-radius:999px;font-size:14px;font-weight:500;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 6px 24px rgba(16,42,28,.3);z-index:30;max-width:90%}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast.err{background:var(--vermelho)}

/* ============================================================
   Mobile-first / PWA — login e telas do cidadão
   ============================================================ */
/* Respeita o notch quando instalado (standalone) */
header.brasao{padding-top:max(13px,env(safe-area-inset-top));
  padding-left:max(22px,env(safe-area-inset-left));
  padding-right:max(22px,env(safe-area-inset-right))}
main{padding-bottom:calc(60px + env(safe-area-inset-bottom))}

@media (max-width: 640px){
  /* Cabeçalho compacto: some o bloco institucional da direita, logo menor */
  header.brasao{gap:10px;padding:10px 14px;padding-top:max(10px,env(safe-area-inset-top))}
  .brasao h1{font-size:15px;line-height:1.2}
  .brasao p{font-size:11px}
  .logo-img{height:40px}
  .logo-wrap{padding:5px 8px}
  .brasao .right{gap:8px}
  .brasao .sistema{display:none}              /* evita aperto no topo */
  .userchip b{max-width:90px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

  nav.tabs button{padding:13px 14px;font-size:15px}

  main{padding:16px 14px calc(48px + env(safe-area-inset-bottom))}
  .view-head h2{font-size:18px}

  /* Inputs 16px = iOS não dá zoom ao focar; campos ocupam a largura */
  .field{width:100%}
  .field select,.field input,textarea{font-size:16px;min-width:0;width:100%}
  .toolbar{gap:12px}
  .toolbar .btn{width:100%}                    /* botão de ação cheio no mobile */

  /* Botões com alvo de toque confortável */
  .btn{padding:13px 16px;min-height:46px}
  .acoes button{padding:10px 12px}

  /* Vagas (Agendar): uma por linha, respiro maior */
  .grid.cards{grid-template-columns:1fr}

  /* Meus agendamentos: deixa status/ações quebrarem para a 2ª linha */
  .lista .row{flex-wrap:wrap;gap:8px 10px;padding:14px}
  .lista .row .who{flex:1 1 100%}
  .lista .row .when{text-align:left}
  .lista .row .acoes{flex:1 1 100%}
  .lista .row .acoes button{flex:1}

  /* Profissional — prontuário: botões de ação cheios e itens 16px (sem zoom iOS) */
  .panel > .btn{width:100%}
  .panel > .btn + .btn{margin-top:8px}
  .tp-item{gap:8px;flex-wrap:nowrap}
  .tp-item .it-tipo,.tp-item .it-desc{font-size:16px;min-width:0}
  .tp-item .it-desc{flex:1}
  .tp-item .it-rm{flex:0 0 auto}

  /* Login: card encosta nas bordas e respira no topo */
  .auth-wrap{margin:18px auto 24px;padding:0 14px}
  .auth-card{padding:20px}
  .auth-demo button{flex:1 1 calc(50% - 8px)}
}

/* Telas muito estreitas */
@media (max-width: 360px){
  .brasao h1{font-size:14px}
  .auth-demo button{flex:1 1 100%}
}

/* Quando instalado como app, esconde a dica de demo por padrão? mantemos visível. */
@media (display-mode: standalone){
  .brasao .sistema{display:none}
}

/* ---------------- Fila de encaminhamentos ---------------- */
.grid.enc-cols{grid-template-columns:minmax(0,1.25fr) minmax(300px,1fr);align-items:start}
.enc-row{cursor:pointer}
.enc-row:hover{background:var(--cinza-pg)}
.enc-row:focus-visible{outline:2px solid var(--laranja);outline-offset:-2px}
.enc-row.enc-sel{background:var(--laranja-claro);box-shadow:inset 4px 0 0 var(--laranja)}
.enc-sinal{display:inline-block;flex:0 0 auto;width:12px;height:12px;border-radius:50%;vertical-align:middle;margin-right:2px}
.enc-VERDE{background:var(--verde)}
.enc-AMARELO{background:#e0a100}
.enc-VERMELHO{background:var(--vermelho);box-shadow:0 0 0 3px var(--vermelho-claro)}
.enc-NEUTRO{background:var(--borda)}
.enc-num-amarelo{color:var(--amarelo)!important}
.badge.enc-pri{border:1px solid var(--borda);background:var(--surface);color:var(--texto-sec)}
.badge.enc-pri-URGENTE{background:var(--vermelho-claro);color:var(--vermelho);border-color:transparent}
.badge.enc-pri-PRIORITARIO{background:var(--amarelo-claro);color:var(--amarelo);border-color:transparent}
.enc-acoes{display:grid;gap:14px}
.enc-acao{display:grid;gap:8px;padding-top:14px;border-top:1px dashed var(--borda)}
.enc-acao:first-child{border-top:0;padding-top:0}
.enc-acao .field{margin-bottom:0}
.enc-acao .btn{justify-self:start}
.btn.ghost.enc-perigo:hover{border-color:var(--vermelho);color:var(--vermelho)}
.enc-tempo{list-style:none;margin:0;padding:0 0 0 18px;border-left:2px solid var(--borda)}
.enc-tempo li{position:relative;padding:0 0 14px}
.enc-tempo li:last-child{padding-bottom:0}
.enc-tempo li::before{content:"";position:absolute;left:-24px;top:5px;width:10px;height:10px;border-radius:50%;background:var(--verde);box-shadow:0 0 0 3px var(--surface)}
.enc-tempo b{display:block;font-size:14px;font-weight:600}
.enc-tempo small{color:var(--texto-sec);font-size:13px}
.grid.enc-cards{grid-template-columns:repeat(auto-fill,minmax(300px,1fr));align-items:start}
.enc-card{display:grid;gap:12px}
.enc-card h3{margin:0;font-size:17px;color:var(--verde-esc)}
.enc-card-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.enc-passos{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;counter-reset:passo}
.enc-passos li{font-size:11px;color:var(--texto-sec);text-align:center;padding-top:10px;border-top:4px solid var(--borda)}
.enc-passos li.feito{border-color:var(--verde);color:var(--verde-esc)}
.enc-passos li.atual{border-color:var(--laranja);color:var(--texto);font-weight:700}
.enc-destaque{margin:0;font-size:15px;line-height:1.45}
.enc-aviso{margin:0;padding:10px 12px;border-radius:var(--radius-sm);background:var(--amarelo-claro);color:#5c4000;font-size:14px;line-height:1.45}
@media (max-width: 900px){
  .grid.enc-cols{grid-template-columns:1fr}
}

/* ---- Busca ativa (linhas de cuidado por equipe) ---- */
.ba-aviso{margin:0 0 18px;padding:10px 14px;border-left:4px solid var(--amarelo);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:var(--amarelo-claro);color:#5c4000;font-size:13.5px;line-height:1.45}
.ba-aviso:empty{display:none}
.grid.ba-linhas{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:18px;align-items:stretch}
.ba-card{display:grid;gap:4px;align-content:start;text-align:left;font:inherit;color:var(--texto);background:var(--surface);border:1px solid var(--borda);border-radius:var(--radius);box-shadow:var(--sombra);padding:16px 16px 14px}
.ba-card.ba-clicavel{cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.ba-card.ba-clicavel:hover{border-color:var(--laranja);transform:translateY(-2px);box-shadow:0 6px 20px rgba(16,40,28,.10)}
.ba-card.ba-clicavel:focus-visible{outline:2px solid var(--laranja);outline-offset:2px}
.ba-card.ba-sel{border-color:var(--laranja);box-shadow:inset 0 4px 0 var(--laranja),var(--sombra)}
.ba-tit{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--texto-sec)}
.ba-num{font-size:34px;font-weight:700;line-height:1.1;font-variant-numeric:tabular-nums}
.ba-txt-VERDE{color:var(--verde)}
.ba-txt-AMARELO{color:var(--amarelo)}
.ba-txt-VERMELHO{color:var(--vermelho)}
.ba-txt-NEUTRO{color:var(--texto-sec)}
.ba-sub{font-size:13px;color:var(--texto-sec)}
.ba-barra{height:6px;border-radius:3px;background:var(--borda);overflow:hidden;margin:6px 0 4px}
.ba-fill{display:block;height:100%;width:100%;transform-origin:left center;border-radius:3px}
.ba-fill.ba-VERDE{background:var(--verde)}
.ba-fill.ba-AMARELO{background:#e0a100}
.ba-fill.ba-VERMELHO{background:var(--vermelho)}
.ba-pend{font-size:14px}
.ba-regra,.ba-restrito{font-size:12px;color:var(--texto-sec);line-height:1.35}
.ba-restrito{font-style:italic}
.ba-rolagem{overflow-x:auto}
.ba-tab{width:100%;border-collapse:collapse;font-size:14px;min-width:640px}
.ba-tab th,.ba-tab td{padding:10px 8px;border-top:1px solid var(--borda);text-align:center;vertical-align:middle}
.ba-tab thead th{border-top:0;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--texto-sec)}
.ba-tab th[scope=row],.ba-tab thead th:first-child{text-align:left}
.ba-tab th[scope=row] b{display:block;font-weight:600}
.ba-tab th[scope=row] small{display:block;font-weight:400;color:var(--texto-sec);font-size:12px}
.ba-tab small{display:block;color:var(--texto-sec);font-size:11.5px;margin-top:2px}
.ba-sem-equipe th[scope=row] b{color:var(--amarelo)}
.ba-cel{display:inline-block;font:inherit;background:none;border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 8px}
button.ba-cel{cursor:pointer}
button.ba-cel:hover{border-color:var(--laranja);background:var(--laranja-claro)}
button.ba-cel:focus-visible{outline:2px solid var(--laranja);outline-offset:1px}
.ba-chip{display:inline-block;min-width:58px;padding:3px 8px;border-radius:999px;font-weight:700;font-size:13px;font-variant-numeric:tabular-nums}
.ba-chip-VERDE{background:var(--verde-claro);color:var(--verde-esc)}
.ba-chip-AMARELO{background:var(--amarelo-claro);color:var(--amarelo)}
.ba-chip-VERMELHO{background:var(--vermelho-claro);color:var(--vermelho)}
.ba-vazio{color:var(--borda)}
.ba-oculto{color:var(--texto-sec);font-size:13px;font-style:italic;cursor:help}
.ba-total{font-weight:700;font-variant-numeric:tabular-nums}
.ba-legenda{margin:12px 0 0;font-size:12px}
.lista .row.ba-pac{flex-wrap:wrap}
.ba-pac .who{flex:1 1 260px}
.ba-ultima{color:var(--texto)!important}
.ba-fone{font-weight:600;color:var(--verde-esc);text-decoration:none;white-space:nowrap}
a.ba-fone:hover{text-decoration:underline}
.ba-sem-fone{font-weight:400;color:var(--texto-sec);font-style:italic}
.ba-form{flex:1 1 100%;display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end;padding-top:12px;border-top:1px dashed var(--borda)}
.ba-form .field{margin-bottom:0}
.ba-form .ba-obs{flex:1 1 240px}
.ba-form .ba-obs input{width:100%}
@media (prefers-reduced-motion: reduce){.ba-card.ba-clicavel{transition:none}.ba-card.ba-clicavel:hover{transform:none}}
