/* ── Tokens (mesma identidade visual do sistema anterior) ───────────── */
*{box-sizing:border-box;margin:0;padding:0}
:root{
  --bg:#07111F;--surf:#0D1E33;--surf2:#112240;--bd:rgba(0,176,204,.14);
  --acc:#00B4CC;--ok:#05D0A0;--warn:#F5C842;--crit:#EF4F6A;--pur:#A259FF;
  --txt:#D9EAF5;--sub:#7AAEC5;--mut:#4A7090;--dim:#2E4A60;
  --hdr-bg:#060E1A;--inp-bg:rgba(255,255,255,.04);--inp-bd:rgba(0,176,204,.18);
  --fonte:'DM Sans',system-ui,sans-serif;--titulo:'Syne',var(--fonte);
  --raio:10px;--sombra:0 8px 30px rgba(0,0,0,.35);
}
[data-theme="light"]{
  --bg:#F0F4F8;--surf:#FFFFFF;--surf2:#E8EFF6;--bd:rgba(0,100,160,.15);
  --acc:#005F8F;--ok:#047857;--warn:#B45309;--crit:#C53030;--pur:#6D28D9;
  --txt:#0D1B2A;--sub:#3D6070;--mut:#6080A0;--dim:#8AAAC0;
  --hdr-bg:#0A1929;--inp-bg:#FFFFFF;--inp-bd:rgba(0,95,143,.25);
  --sombra:0 8px 30px rgba(0,30,60,.12);
}
html,body{height:100%}
body{font-family:var(--fonte);background:var(--bg);color:var(--txt);font-size:14px;line-height:1.45;-webkit-font-smoothing:antialiased}
a{color:var(--acc)}
h1,h2,h3{font-family:var(--titulo);letter-spacing:-.01em}
h1{font-size:22px}h2{font-size:17px}h3{font-size:14px}

/* ── Cabeçalho ──────────────────────────────────────────────────────── */
#hdr{display:flex;align-items:center;gap:18px;height:52px;padding:0 20px;background:var(--hdr-bg);border-bottom:1px solid var(--bd);position:sticky;top:0;z-index:50}
#hdr .marca{font-family:var(--titulo);font-weight:800;font-size:18px;color:#fff;text-decoration:none;letter-spacing:.02em}
#hdr .marca span{color:var(--acc)}
#hdr-nav{display:flex;gap:4px;flex:1;overflow-x:auto}
#hdr-nav a{color:#9DBBD0;text-decoration:none;padding:6px 10px;border-radius:7px;font-size:13px;white-space:nowrap}
#hdr-nav a:hover{background:rgba(255,255,255,.06);color:#fff}
#hdr-nav a.ativo{background:rgba(0,180,204,.15);color:#fff}
#hdr-usuario{display:flex;align-items:center;gap:10px;color:#9DBBD0;font-size:12px}
#hdr-usuario b{color:#fff;font-weight:600}

/* ── Layout ─────────────────────────────────────────────────────────── */
#app{padding:20px;max-width:1400px;margin:0 auto}
.tela-hdr{display:flex;align-items:center;gap:12px;margin-bottom:18px;flex-wrap:wrap}
.tela-hdr h1{flex:1}
.grid{display:grid;gap:14px}
.grid-2{grid-template-columns:repeat(auto-fit,minmax(320px,1fr))}
.grid-3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{background:var(--surf);border:1px solid var(--bd);border-radius:var(--raio);padding:16px}
.card h2,.card h3{margin-bottom:10px}
.mut{color:var(--mut)}.sub{color:var(--sub)}.tsm{font-size:12px}.txs{font-size:11px}
.ok{color:var(--ok)}.warn{color:var(--warn)}.crit{color:var(--crit)}
.linha{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.espaco{flex:1}
.vazio{padding:40px;text-align:center;color:var(--mut)}

/* ── Formulários ────────────────────────────────────────────────────── */
label{display:block;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--sub);margin-bottom:4px}
.campo{margin-bottom:12px}
input,select,textarea{width:100%;font:inherit;color:var(--txt);background:var(--inp-bg);border:1px solid var(--inp-bd);border-radius:7px;padding:8px 10px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(0,180,204,.15)}
input[aria-invalid="true"],select[aria-invalid="true"]{border-color:var(--crit)}
.erro-campo{color:var(--crit);font-size:11px;margin-top:3px}
textarea{min-height:80px;resize:vertical}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:0 14px}

/* ── Botões ─────────────────────────────────────────────────────────── */
.btn{display:inline-flex;align-items:center;gap:6px;font:inherit;font-weight:600;font-size:13px;padding:8px 14px;border-radius:8px;border:1px solid transparent;cursor:pointer;background:var(--acc);color:#04111C;text-decoration:none}
.btn:hover{filter:brightness(1.08)}
.btn:disabled{opacity:.5;cursor:not-allowed}
.btn-sec{background:transparent;border-color:var(--inp-bd);color:var(--txt)}
.btn-sec:hover{background:rgba(255,255,255,.05)}
.btn-perigo{background:var(--crit);color:#fff}
.btn-sm{padding:5px 10px;font-size:12px}
.btn-ghost{background:transparent;color:var(--sub);border-color:transparent}

/* ── Tabelas ────────────────────────────────────────────────────────── */
.tabela-wrap{overflow-x:auto}
table{width:100%;border-collapse:collapse;font-size:13px}
th{text-align:left;font-size:10px;letter-spacing:.07em;text-transform:uppercase;color:var(--sub);padding:8px 10px;border-bottom:1px solid var(--bd)}
td{padding:9px 10px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}
tr.clicavel{cursor:pointer}
tr.clicavel:hover td{background:rgba(0,180,204,.06)}

/* ── Badges ─────────────────────────────────────────────────────────── */
.badge{display:inline-block;padding:2px 8px;border-radius:20px;font-size:11px;font-weight:600;border:1px solid}
.badge-ok{color:var(--ok);border-color:var(--ok)}
.badge-warn{color:var(--warn);border-color:var(--warn)}
.badge-crit{color:var(--crit);border-color:var(--crit)}
.badge-mut{color:var(--mut);border-color:var(--dim)}

/* ── Toast e modal ──────────────────────────────────────────────────── */
#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%) translateY(20px);opacity:0;pointer-events:none;background:var(--surf2);color:var(--txt);border:1px solid var(--bd);border-left:4px solid var(--ok);padding:10px 16px;border-radius:8px;box-shadow:var(--sombra);transition:.2s;z-index:200;max-width:90vw}
#toast.on{opacity:1;transform:translateX(-50%) translateY(0)}
#toast.erro{border-left-color:var(--crit)}
#toast.aviso{border-left-color:var(--warn)}
#modal-bg{position:fixed;inset:0;background:rgba(0,0,0,.65);display:flex;align-items:center;justify-content:center;z-index:100;padding:16px}
#modal-bg[hidden]{display:none}
#modal-box{background:var(--surf);border:1px solid var(--bd);border-radius:12px;padding:20px;width:min(640px,100%);max-height:90vh;overflow:auto;box-shadow:var(--sombra)}
#modal-box h2{margin-bottom:14px}
.modal-acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}

/* ── Login ──────────────────────────────────────────────────────────── */
.login{min-height:calc(100vh - 52px);display:flex;align-items:center;justify-content:center}
.login .card{width:min(380px,100%)}
.login h1{margin-bottom:4px}
.login .mut{margin-bottom:18px}

/* ── Utilidades ─────────────────────────────────────────────────────── */
.sp{width:22px;height:22px;border:3px solid var(--bd);border-top-color:var(--acc);border-radius:50%;animation:gira .8s linear infinite;display:inline-block}
@keyframes gira{to{transform:rotate(360deg)}}
.carregando{display:flex;justify-content:center;align-items:center;gap:10px;padding:40px;color:var(--sub)}
.hdr-perfil{color:inherit;text-decoration:none}
.hdr-perfil:hover b{color:var(--acc)}
.contador{font-size:18px;font-family:var(--titulo)}
.filtros{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:0 12px;align-items:end;margin-bottom:14px}
.filtros .campo{margin-bottom:10px}
.paginacao{display:flex;align-items:center;gap:10px;justify-content:flex-end;margin-top:12px;color:var(--sub);font-size:12px}
.avatar{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:50%;background:rgba(0,180,204,.18);color:var(--acc);font-weight:700;font-size:13px;flex:none}
tr.inativo td{opacity:.55}
pre.detalhe{white-space:pre-wrap;word-break:break-word;font-size:11px;background:var(--surf2);border:1px solid var(--bd);border-radius:7px;padding:8px 10px;max-height:240px;overflow:auto;margin-top:6px}
.cartao-canal{cursor:pointer;user-select:none;border:1px solid var(--bd);border-radius:var(--raio);padding:14px;background:var(--surf);transition:.15s}
.cartao-canal:hover{border-color:var(--acc)}
.cartao-canal.ativo{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
.cartao-canal .estado{font-weight:600;font-size:12px}
.cartao-canal.ativo .estado{color:var(--ok)}
.cartao-canal.ocupado{opacity:.6;pointer-events:none}
/* ── Pacientes ──────────────────────────────────────────────────────── */
.avatar-g{width:72px;height:72px;font-size:28px}
img.pac-foto{object-fit:cover;padding:0;background:var(--surf2)}
.pac-cab{display:flex;gap:16px;align-items:center;margin-bottom:14px}
.pac-foto-bloco{display:flex;gap:16px;align-items:center;margin-bottom:8px}
.abas{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--bd);margin-bottom:14px}
.aba{padding:8px 12px;border-radius:8px 8px 0 0;color:var(--sub);text-decoration:none;font-size:13px;border:1px solid transparent;border-bottom:none}
.aba:hover{background:rgba(255,255,255,.04);color:var(--txt)}
.aba.ativa{background:var(--surf);border-color:var(--bd);color:var(--txt);font-weight:600}
h3.secao{margin:18px 0 10px;padding-top:12px;border-top:1px solid var(--bd)}
.borda-ok{border-color:var(--ok)!important}
.borda-aviso{border-color:var(--warn)!important}
.cam-video{width:100%;border-radius:8px;background:#000;transform:scaleX(-1)}
.dedup-par{margin-bottom:10px}
.dedup-lados{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:10px;margin-top:10px}
.dedup-lado{border:1px solid var(--bd);border-radius:8px;padding:10px;background:var(--surf2)}
.merge-linha{display:grid;grid-template-columns:140px 1fr 1fr;gap:8px;align-items:stretch;margin-bottom:6px;font-size:12px}
.merge-rotulo{color:var(--sub);align-self:center}
.merge-valor{border:1px solid var(--bd);border-radius:7px;padding:6px 8px;word-break:break-word}
.merge-valor.clicavel{cursor:pointer}
.merge-valor.clicavel:hover{border-color:var(--acc)}
.merge-valor.escolhido{border-color:var(--ok);box-shadow:inset 0 0 0 1px var(--ok)}
.zona-arquivo{display:block;border:2px dashed var(--inp-bd);border-radius:var(--raio);padding:24px;text-align:center;cursor:pointer;text-transform:none;letter-spacing:0;font-size:14px;color:var(--txt)}
.zona-arquivo:hover,.zona-arquivo.arrastando{border-color:var(--acc);background:rgba(0,180,204,.05)}
.barra{height:8px;border-radius:4px;background:var(--surf2);overflow:hidden;margin:8px 0 4px}
.barra-cheia{height:100%;width:0;background:var(--acc);transition:width .2s}
@media (max-width:600px){.merge-linha{grid-template-columns:1fr}.pac-cab,.pac-foto-bloco{flex-wrap:wrap}}
@media (max-width:600px){#app{padding:14px}#hdr{padding:0 12px;gap:10px}}
@media print{#hdr,#toast,#modal-bg,.nao-imprimir{display:none!important}body{background:#fff;color:#000}#app{padding:0;max-width:none}}
