:root{--fundo:#f4f6f5;--cartao:#fff;--texto:#1d2a26;--suave:#5f6f69;--linha:#dfe6e3;--verde:#1f6f5c;--verde2:#e3f1ec;
--vermelho:#c0392b;--amarelo:#fff6dd;--raio:16px;--sombra:0 1px 3px rgba(0,0,0,.06),0 4px 16px rgba(0,0,0,.04);
--seg-topo:env(safe-area-inset-top,0px);--seg-baixo:env(safe-area-inset-bottom,0px)}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
[hidden]{display:none!important}
#col-detalhe{display:flex;flex-direction:column;gap:14px}
html,body{margin:0;height:100%;background:var(--fundo);color:var(--texto);font:16px/1.45 "Segoe UI",system-ui,-apple-system,Roboto,sans-serif}
body{min-height:100dvh}
button{font:inherit;border:0;border-radius:12px;padding:.75em 1.2em;cursor:pointer;background:var(--verde2);color:var(--verde);font-weight:600;min-height:44px}
button.principal{background:var(--verde);color:#fff}button.perigo{background:var(--vermelho);color:#fff}
button:disabled{opacity:.5;cursor:default}
button.grande{width:100%;padding:1em;font-size:1.1em}
input,select,textarea{font:inherit;font-size:16px;border:1px solid var(--linha);border-radius:12px;padding:.7em .9em;background:#fff;color:var(--texto);width:100%;min-height:44px}
textarea{min-height:5.5em;resize:vertical}
label{font-size:.85em;color:var(--suave);display:block;margin:.8em 0 .3em}
.cartao{background:var(--cartao);border-radius:var(--raio);box-shadow:var(--sombra);padding:1.2em 1.4em}
.tela{display:none;min-height:100dvh}.tela.ativa{display:flex}
.centro{align-items:center;justify-content:center;padding:16px}
.marca{font-weight:800;letter-spacing:.08em;color:var(--verde);font-size:1.3em;display:flex;align-items:center;gap:.4em}
.marca img{width:30px;height:30px;border-radius:8px}
.topo{display:flex;align-items:center;gap:10px;padding:calc(10px + var(--seg-topo)) 16px 10px;background:#fff;border-bottom:1px solid var(--linha);flex-wrap:wrap;position:sticky;top:0;z-index:5}
.topo .esp,.esp{flex:1}.suave{color:var(--suave);font-size:.9em}.erro{color:var(--vermelho);font-size:.9em;min-height:1.2em}
.coluna{flex-direction:column;width:100%}
.grade{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:18px;padding:18px;max-width:1200px;width:100%;margin:0 auto;align-items:start}
h2{margin:.1em 0 .6em;font-size:1.15em}h3{margin:1em 0 .3em;font-size:.8em;color:var(--suave);text-transform:uppercase;letter-spacing:.06em}
.lista>div{padding:.75em .4em;border-bottom:1px solid var(--linha);cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:8px;border-radius:10px}
.lista>div:hover,.lista>div.sel{background:var(--verde2)}
.lista .nome{font-weight:600}.lista small{color:var(--suave)}
.etiqueta{font-size:.78em;padding:.2em .7em;border-radius:99px;background:var(--verde2);color:var(--verde);white-space:nowrap}
.etiqueta.aviso{background:var(--amarelo);color:#8a5a00}
.voltar-movel{display:none}
@media(max-width:760px){
  .grade{grid-template-columns:1fr;padding:10px;gap:10px}
  .grade.detalhe #col-lista{display:none}.grade:not(.detalhe) #col-detalhe{display:none}
  .voltar-movel{display:inline-block}
  .esconde-movel{display:none!important}
}
.roteiro{background:#f7fbf9;border:1px solid var(--verde2);border-radius:12px;padding:.6em .9em;white-space:pre-wrap}

/* ---------- chamada ---------- */
.chamada{flex-direction:column;height:100dvh;width:100%;background:#0b1210;color:#e8f0ed;overflow:hidden}
.chamada .palco{flex:1;display:grid;grid-template-columns:1fr 340px;min-height:0}
.chamada.sem-lado .palco{grid-template-columns:1fr}.chamada.sem-lado .lado{display:none}
.video{position:relative;background:#000;min-height:0;overflow:hidden}
.video video.remoto{width:100%;height:100%;object-fit:contain;background:#000;display:block}
.video video.local{position:absolute;right:12px;top:calc(12px + var(--seg-topo));width:24%;max-width:220px;min-width:96px;border-radius:12px;border:2px solid rgba(255,255,255,.7);transform:scaleX(-1);background:#222;z-index:2}
.aviso-sala{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:24px;color:#cfe0da;gap:.6em;font-size:1.05em}
.aviso-sala .pulso{width:14px;height:14px;border-radius:50%;background:#4cc29a;animation:p 1.4s infinite}
@keyframes p{0%{box-shadow:0 0 0 0 rgba(76,194,154,.6)}100%{box-shadow:0 0 0 18px rgba(76,194,154,0)}}
.faixa{position:absolute;left:50%;top:calc(12px + var(--seg-topo));transform:translateX(-50%);background:rgba(0,0,0,.6);padding:.35em .9em;border-radius:99px;font-size:.85em;z-index:3;white-space:nowrap}
.faixa:empty{display:none}
.legenda{position:absolute;left:4%;right:4%;bottom:16px;text-align:center;color:#fff;font-size:clamp(1.05em,2.6vw,1.35em);text-shadow:0 1px 4px #000;z-index:2}
.legenda span{background:rgba(0,0,0,.6);padding:.2em .55em;border-radius:8px;line-height:1.75;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.lado{background:#fff;color:var(--texto);overflow:auto;padding:16px}
.controles{display:flex;align-items:center;justify-content:center;gap:14px;padding:12px 12px calc(14px + var(--seg-baixo));background:#121b18;flex-wrap:wrap}
.redondo{width:58px;height:58px;min-height:0;border-radius:50%;padding:0;display:inline-flex;align-items:center;justify-content:center;background:#24322e;color:#fff;font-size:0;position:relative}
.redondo svg{width:26px;height:26px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.redondo.off{background:#e9eeec;color:#1d2a26}
.redondo.desligar{background:var(--vermelho);width:66px}
.redondo .rot{position:absolute;top:100%;margin-top:4px;font-size:11px;color:#9fb3ac;white-space:nowrap;font-weight:500}
.controles .grupo{display:flex;flex-direction:column;align-items:center;gap:4px}
.controles .grupo small{font-size:11px;color:#9fb3ac}
.nivel{width:70px;height:6px;background:#2c3b37;border-radius:3px;overflow:hidden}.nivel i{display:block;height:100%;width:0;background:#4cc29a;transition:width .08s}
.convite{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff;color:var(--texto);border-radius:18px;padding:18px;width:min(92%,420px);z-index:4;box-shadow:0 10px 40px rgba(0,0,0,.4)}
.convite .codigo{font-size:1.7em;font-weight:800;letter-spacing:.12em;text-align:center;color:var(--verde);margin:.2em 0}
.convite .botoes{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:10px}
.whats{background:#25d366;color:#fff}
.info{display:flex;align-items:center;gap:10px;padding:calc(8px + var(--seg-topo)) 14px 8px;background:#121b18;font-size:.92em}
.info .esp{flex:1}
.ponto{width:9px;height:9px;border-radius:50%;background:#e0a800;display:inline-block}.ponto.ok{background:#4cc29a}.ponto.mal{background:#e05a4b}

/* ---------- prévia (paciente) ---------- */
.previa{position:relative;width:100%;aspect-ratio:4/3;background:#111;border-radius:14px;overflow:hidden;margin:.6em 0}
.previa video{width:100%;height:100%;object-fit:cover;transform:scaleX(-1)}
.previa .nivel{position:absolute;left:12px;bottom:12px;width:40%;background:rgba(0,0,0,.4)}
.passos{display:flex;gap:6px;margin:.2em 0 .8em}.passos i{flex:1;height:4px;border-radius:2px;background:var(--linha)}.passos i.ok{background:var(--verde)}
.dica{background:#f7fbf9;border-radius:12px;padding:.7em .9em;font-size:.92em;color:var(--suave);display:flex;gap:.6em;align-items:flex-start}

/* ---------- registro ---------- */
.campo{margin-bottom:.4em}.registro textarea{min-height:6em}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.35);display:none;align-items:center;justify-content:center;padding:16px;z-index:20}
.modal.ativa{display:flex}.modal .cartao{width:100%;max-width:440px}
.linha{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.transcricao p{margin:.35em 0}.transcricao b{color:var(--verde)}
.so-impressao{display:none}
@media print{
  body{background:#fff}.topo,.nao-imprime,#t-painel,#t-chamada,#t-entrar{display:none!important}
  .tela{min-height:0}#t-registro{display:block!important}.cartao{box-shadow:none;padding:0}
  textarea{border:0;padding:0;min-height:0;height:auto;overflow:visible;resize:none}
  .so-impressao{display:block}
}
@media(max-width:760px){.video video.remoto{object-fit:cover}}

.lado #c-conversa{max-height:45vh;overflow:auto;border-top:1px solid var(--linha);padding-top:4px}

/* ---------- navegação principal ---------- */
.nav-principal{display:flex;gap:4px;margin-left:12px}
.nav-principal button{background:transparent;color:var(--suave);display:flex;align-items:center;gap:.4em;padding:.55em .9em;font-weight:600}
.nav-principal button.sel{background:var(--verde2);color:var(--verde)}
.vista{width:100%;max-width:1200px;margin:0 auto;padding:16px}
.vista .grade{padding:0}
@media(max-width:760px){
  .nav-principal{position:fixed;left:0;right:0;bottom:0;margin:0;background:#fff;border-top:1px solid var(--linha);z-index:30;
    justify-content:space-around;padding:4px 4px calc(4px + var(--seg-baixo))}
  .nav-principal button{flex-direction:column;gap:2px;font-size:20px;padding:.3em .2em;flex:1;border-radius:10px;min-height:52px}
  .nav-principal button span{font-size:11px}
  #t-painel{padding-bottom:76px}
  .vista{padding:10px}
}
/* ---------- abas da ficha ---------- */
.abas{display:flex;gap:4px;overflow-x:auto;border-bottom:1px solid var(--linha);margin:.6em -4px 1em;padding:0 4px;scrollbar-width:none}
.abas button{background:transparent;color:var(--suave);border-radius:10px 10px 0 0;white-space:nowrap;padding:.6em .9em;border-bottom:3px solid transparent}
.abas button.sel{color:var(--verde);border-bottom-color:var(--verde)}
.grupo-form{border:1px solid var(--linha);border-radius:12px;padding:.4em .9em;margin-bottom:10px}
.grupo-form summary{cursor:pointer;font-weight:600;padding:.4em 0}
.campos{display:grid;grid-template-columns:1fr 1fr;gap:4px 14px}
.campos label,.grupo-form label{font-size:.82em}
.campos .cheio{grid-column:1/-1}
@media(max-width:600px){.campos{grid-template-columns:1fr}}
/* ---------- agenda ---------- */
.ag-semana{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin:12px 0}
.ag-semana button{display:flex;flex-direction:column;align-items:center;padding:.4em 0;background:#f4f6f5;color:var(--texto);font-weight:500;gap:0;min-height:58px}
.ag-semana button small{font-size:.72em;color:var(--suave);text-transform:capitalize}
.ag-semana button b{font-size:1.15em}
.ag-semana button i{font-style:normal;font-size:.7em;color:var(--verde);min-height:1em}
.ag-semana button.hoje{outline:2px solid var(--verde2)}
.ag-semana button.sel{background:var(--verde);color:#fff}.ag-semana button.sel small,.ag-semana button.sel i{color:#dff}
.ag-lista{margin-top:10px}
.ag-item,.fin-item{display:grid;grid-template-columns:70px 1fr auto;gap:10px;align-items:center;padding:.7em .2em;border-bottom:1px solid var(--linha)}
.ag-hora{display:flex;flex-direction:column}.ag-hora b{font-size:1.15em}.ag-hora small,.fin-item small{color:var(--suave)}
.ag-quem{display:flex;flex-direction:column;gap:2px;min-width:0}.ag-quem a,.fin-desc a{color:var(--texto);font-weight:600;text-decoration:none}
.ag-quem small{color:var(--suave)}
.ag-acoes{display:flex;gap:6px}
.ag-menu{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;padding:4px 0 2px}
.riscado .ag-quem a{text-decoration:line-through;color:var(--suave)}
/* ---------- financeiro ---------- */
.fin-cartoes{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px;margin:12px 0}
.fin-cartao{background:#f4f6f5;border-radius:12px;padding:.7em .9em;display:flex;flex-direction:column}
.fin-cartao small{color:var(--suave);font-size:.8em}.fin-cartao b{font-size:1.25em}
.fin-cartao.aviso{background:var(--amarelo)}.fin-cartao.pos b{color:var(--verde)}.fin-cartao.neg b{color:var(--vermelho)}
.fin-item{grid-template-columns:110px 1fr auto}.fin-item>div:first-child{display:flex;flex-direction:column}
.fin-item.despesa b{color:var(--vermelho)}
.fin-desc{min-width:0;font-size:.95em}
@media(max-width:600px){.fin-item{grid-template-columns:90px 1fr}.fin-item .ag-acoes{grid-column:1/-1}}

/* ---------- ficha de anamnese ---------- */
.ficha .pergunta{padding:.8em 0;border-bottom:1px solid var(--linha)}
.ficha .pergunta.pendente{background:#fff5f4;border-radius:10px;padding:.8em .6em}
.ficha .enunciado{font-weight:600;margin-bottom:.35em}.ficha .obrig{color:var(--vermelho)}
.ficha .desc{display:block;color:var(--suave);margin-bottom:.4em}
.ficha .opcoes{display:flex;flex-direction:column;gap:6px}
.ficha .op{display:flex;gap:.6em;align-items:center;margin:0;border:1px solid var(--linha);border-radius:10px;padding:.55em .7em;color:var(--texto);font-size:.95em;cursor:pointer}
.ficha .op input{width:20px;height:20px;min-height:0;flex:none}
.ficha .op:has(input:checked){border-color:var(--verde);background:var(--verde2)}
.ficha .escala>div{display:flex;flex-wrap:wrap;gap:6px;margin:.3em 0}
.ficha .escala label{margin:0;display:flex;flex-direction:column;align-items:center;font-size:.85em;color:var(--texto);border:1px solid var(--linha);border-radius:10px;padding:.35em .55em;min-width:40px;cursor:pointer}
.ficha .escala label:has(input:checked){border-color:var(--verde);background:var(--verde2)}
.ficha .escala input{min-height:0;width:18px;height:18px}
.ficha .escala small{color:var(--suave)}
.ficha .grade-q{overflow-x:auto}
.ficha .grade-q table{border-collapse:collapse;font-size:.85em;min-width:100%}
.ficha .grade-q th{font-weight:500;color:var(--suave);padding:.3em .25em;text-align:center}
.ficha .grade-q td{border-top:1px solid var(--linha);padding:.35em .25em;text-align:center}
.ficha .grade-q td:first-child{text-align:left;min-width:140px}
.ficha .grade-q input{width:20px;height:20px;min-height:0}
.ficha .falta:empty{display:none}
.secao-ficha h2:empty{display:none}
