:root{
  --azul:#1f5fae; --azul-esc:#163f73; --azul-claro:#e8f0fb; --texto:#1b2430; --cinza:#5d6878; --linha:#dfe5ee;
  --fundo:#f6f8fb; --branco:#fff; --verde:#1f8a4c; --verde-claro:#e5f5ec; --vermelho:#c0392b; --vermelho-claro:#fdecea;
  --amarelo-claro:#fff6dc; --raio:12px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;background:var(--fundo);color:var(--texto);font-size:16px;line-height:1.45}
a{color:var(--azul)}
button,input,select,textarea{font:inherit}
.hidden{display:none!important}
header.top{background:var(--azul);color:#fff;padding:12px 16px;display:flex;align-items:center;gap:12px;flex-wrap:wrap}
header.top .marca{font-weight:700;font-size:18px;letter-spacing:.2px}
header.top .marca span{font-weight:400;opacity:.85}
header.top .dir{margin-left:auto;display:flex;gap:8px;align-items:center;flex-wrap:wrap;font-size:14px}
header.top button{background:transparent;border:1px solid rgba(255,255,255,.6);color:#fff;border-radius:8px;padding:6px 10px;cursor:pointer}
main{max-width:1180px;margin:0 auto;padding:16px}
main.estreito{max-width:520px}
.card{background:var(--branco);border:1px solid var(--linha);border-radius:var(--raio);padding:16px;margin-bottom:14px}
.card h2{margin:0 0 10px;font-size:18px;color:var(--azul-esc)}
.card h3{margin:14px 0 8px;font-size:16px;color:var(--azul-esc)}
.muted{color:var(--cinza);font-size:14px}
label{display:block;font-size:14px;color:var(--cinza);margin:10px 0 4px}
input,select,textarea{width:100%;padding:10px 12px;border:1px solid #c9d3e0;border-radius:8px;background:#fff;color:var(--texto)}
input:focus,select:focus,textarea:focus{outline:2px solid var(--azul);outline-offset:1px;border-color:var(--azul)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:0;border-radius:10px;padding:10px 16px;cursor:pointer;background:var(--azul);color:#fff;font-weight:600;text-decoration:none}
.btn:hover{background:var(--azul-esc)}
.btn.sec{background:var(--azul-claro);color:var(--azul-esc)}
.btn.sec:hover{background:#d7e4f7}
.btn.perigo{background:var(--vermelho)}
.btn.peq{padding:6px 10px;font-size:14px;border-radius:8px}
.btn[disabled]{opacity:.55;cursor:default}
.btn.grande{width:100%;font-size:22px;padding:22px;border-radius:16px}
.btn.entrada{background:var(--verde)}
.btn.saida{background:var(--vermelho)}
.linha{display:flex;gap:10px;flex-wrap:wrap;align-items:end}
.linha>*{flex:1 1 160px}
.linha>.auto{flex:0 0 auto}
.aviso{border-radius:10px;padding:10px 12px;margin:10px 0;font-size:15px}
.aviso.ok{background:var(--verde-claro);color:#0f5530}
.aviso.erro{background:var(--vermelho-claro);color:#7a1d14}
.aviso.atencao{background:var(--amarelo-claro);color:#6b4d00}
.aviso.info{background:var(--azul-claro);color:var(--azul-esc)}
.grande-num{font-size:30px;font-weight:700;color:var(--azul-esc)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:12px;margin-bottom:14px}
.kpi{background:#fff;border:1px solid var(--linha);border-radius:var(--raio);padding:12px 14px}
.kpi .v{font-size:22px;font-weight:700;color:var(--azul-esc)}
.kpi .l{font-size:13px;color:var(--cinza)}
.tabela-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch}
table{border-collapse:collapse;width:100%;font-size:14px;background:#fff}
th,td{border-bottom:1px solid var(--linha);padding:7px 8px;text-align:left;vertical-align:top}
th{background:var(--azul-claro);color:var(--azul-esc);font-weight:600;white-space:nowrap}
td.n,th.n{text-align:right;white-space:nowrap}
tr.total td{font-weight:700;background:#f1f5fb}
tr.verificar td{background:#fff3f1}
tr.aberta td{background:#eefaf2}
tr.clicavel{cursor:pointer}
tr.clicavel:hover td{background:#f3f7fd}
.tag{display:inline-block;border-radius:999px;padding:1px 8px;font-size:12px;font-weight:600;white-space:nowrap}
.tag.aberta{background:var(--verde-claro);color:#0f5530}
.tag.fechada{background:#eef1f5;color:#465263}
.tag.verificar{background:var(--vermelho-claro);color:#8a2016}
.tag.importado{background:#f1edfb;color:#4b3a85}
.tag.qr{background:var(--azul-claro);color:var(--azul-esc)}
.tag.manual{background:var(--amarelo-claro);color:#6b4d00}
nav.tabs{display:flex;gap:4px;flex-wrap:wrap;background:#fff;border-bottom:1px solid var(--linha);padding:0 12px;position:sticky;top:0;z-index:5}
nav.tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 10px;cursor:pointer;color:var(--cinza);font-weight:600}
nav.tabs button.ativo{color:var(--azul);border-color:var(--azul)}
dialog{border:0;border-radius:14px;padding:0;max-width:560px;width:calc(100% - 24px);box-shadow:0 10px 40px rgba(0,0,0,.25)}
dialog::backdrop{background:rgba(20,30,45,.45)}
dialog .cab{padding:14px 16px;border-bottom:1px solid var(--linha);font-weight:700;color:var(--azul-esc)}
dialog .corpo{padding:4px 16px 16px;max-height:70vh;overflow:auto}
dialog .pe{padding:12px 16px;border-top:1px solid var(--linha);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap}
.check{display:flex;align-items:center;gap:8px;margin-top:12px}
.check input{width:auto}
.resultado{text-align:center;padding:24px 8px}
.resultado .ic{font-size:64px;line-height:1}
.resultado .hora{font-size:44px;font-weight:800;color:var(--azul-esc);margin:6px 0}
.spinner{display:inline-block;width:18px;height:18px;border:3px solid rgba(255,255,255,.4);border-top-color:#fff;border-radius:50%;animation:gira .8s linear infinite}
@keyframes gira{to{transform:rotate(360deg)}}
.toast{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);background:var(--texto);color:#fff;padding:10px 16px;border-radius:10px;z-index:50;font-size:14px;max-width:calc(100% - 32px)}
.doc-print{background:#fff}
.doc-print h1{font-size:20px;color:var(--azul-esc);margin:0 0 4px}
@media print{
  header.top,nav.tabs,.nao-imprimir{display:none!important}
  body{background:#fff}
  main{max-width:none;padding:0}
  .card{border:0;padding:0}
  th{background:#e8eef7!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  table{font-size:11px}
}
/* ---- gestão simplificada */
nav.tabs{align-items:center}
.mesnav{margin-left:auto;display:flex;align-items:center;gap:4px;font-weight:700;color:var(--azul-esc)}
.mesnav span{min-width:150px;text-align:center;text-transform:capitalize}
.mesnav button{border:1px solid var(--linha)!important;border-radius:8px;background:#fff;padding:4px 12px!important;font-size:18px;color:var(--azul-esc)!important;cursor:pointer}
.titulo-sec{font-size:18px;color:var(--azul-esc);margin:20px 0 10px}
.atencao-card{border-color:#f3c2bb;background:#fffaf9}
.contador{display:inline-block;background:var(--vermelho);color:#fff;border-radius:999px;font-size:13px;padding:1px 9px;vertical-align:2px;margin-left:4px}
.lista-acoes{display:flex;flex-direction:column;gap:8px}
.acao{display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:#fff;border:1px solid var(--linha);border-radius:10px;padding:10px 12px}
.acao-txt{flex:1 1 260px;min-width:0}
.acao-v{font-size:18px;color:var(--azul-esc);white-space:nowrap}
.acao-bts{display:flex;gap:6px;flex-wrap:wrap}
.motivo{color:#8a2016;font-size:14px}
.chips{display:flex;flex-wrap:wrap;gap:8px}
.chip{background:var(--verde-claro);color:#0f5530;border-radius:999px;padding:6px 12px;font-size:14px}
.grelha{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px}
.inst-card{border:1px solid var(--linha);border-radius:12px;padding:14px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;background:#fff}
.inst-nome{font-weight:700;color:var(--azul-esc)}
.inst-val{font-size:24px;font-weight:800;color:var(--texto)}
.dia{margin-bottom:12px}
.dia-cab{font-weight:700;color:var(--azul-esc);margin:14px 0 6px;text-transform:capitalize}
.turno{display:flex;width:100%;align-items:center;gap:12px;flex-wrap:wrap;text-align:left;background:#fff;border:1px solid var(--linha);border-radius:10px;padding:10px 12px;margin-bottom:6px;cursor:pointer;font:inherit;color:inherit}
.turno:hover{border-color:var(--azul)}
.turno.verificar{border-color:#f3c2bb;background:#fffaf9}
.turno.aberta{border-color:#bfe5cd;background:#f4fbf7}
.t-hora{font-weight:700;min-width:110px;font-variant-numeric:tabular-nums}
.t-quem{flex:1 1 200px;display:flex;flex-direction:column;min-width:0}
.t-h{color:var(--cinza);font-variant-numeric:tabular-nums}
.subnav{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:14px}
.subnav button{border:1px solid var(--linha);background:#fff;border-radius:999px;padding:8px 14px;cursor:pointer;font-weight:600;color:var(--cinza)}
.subnav button.ativo{background:var(--azul);border-color:var(--azul);color:#fff}
details summary{cursor:pointer;color:var(--azul);font-weight:600;margin:12px 0 4px}
@media (max-width:640px){.mesnav{margin-left:0;width:100%;justify-content:center;padding:6px 0}}
/* ---- leitor de QR code */
.btn.ler{width:100%;font-size:20px;padding:18px;border-radius:16px;gap:10px}
.leitor{position:relative;background:#000;border-radius:16px;overflow:hidden;aspect-ratio:3/4;max-height:70vh;margin:0 auto}
.leitor video{width:100%;height:100%;object-fit:cover;display:block}
.leitor .mira{position:absolute;inset:18% 14%;border:4px solid rgba(255,255,255,.9);border-radius:18px;box-shadow:0 0 0 2000px rgba(0,0,0,.35)}
.leitor .dica{position:absolute;left:0;right:0;bottom:12px;text-align:center;color:#fff;font-weight:600;text-shadow:0 1px 3px #000;padding:0 12px}
/* ---- escalas */
.escala-wrap{overflow:auto;max-height:72vh;border:1px solid var(--linha);border-radius:10px;background:#fff}
table.escala{border-collapse:separate;border-spacing:0;font-size:12px;width:auto;background:#fff}
.escala th,.escala td{border-right:1px solid var(--linha);border-bottom:1px solid var(--linha);padding:2px;text-align:center;min-width:34px;vertical-align:middle}
.escala th{padding:4px 2px;line-height:1.15;position:sticky;top:0;z-index:2}
.escala th small{font-weight:500;opacity:.8}
.escala th.hoje{background:var(--azul);color:#fff}
.escala .nome{position:sticky;left:0;background:#fff;text-align:left;white-space:nowrap;font-weight:600;min-width:120px;padding:4px 8px;z-index:1}
.escala th.nome{z-index:3;background:var(--azul-claro)}
.escala td.fds{background:#ece7d9}
.escala th.fds{background:#ddd5bf}
.escala td.cel{height:34px;cursor:pointer}
.escala td.cel:hover{outline:2px solid var(--azul);outline-offset:-2px}
.escala td.indisp{background:#c00000}
.escala tr.eu td.nome{background:var(--amarelo-claro)}
.tira-prof{border:0;background:none;color:var(--cinza);cursor:pointer;padding:0 6px 0 0;font-size:12px;opacity:.45}
.tira-prof:hover,.tira-prof[data-armed="1"]{opacity:1;color:var(--vermelho)}
.tira-prof[data-armed="1"]{font-weight:700}
.lista-check{max-height:50vh;overflow:auto;border:1px solid var(--linha);border-radius:8px;padding:4px 10px}
.lista-check .check{margin:6px 0}
.vazio-esc{text-align:center;padding:24px 12px}
.escala td.cel:hover,.escala td.tot{white-space:nowrap;padding:0 8px;color:var(--azul-esc);font-weight:600}
.ch{display:block;border-radius:4px;padding:1px 3px;font-weight:700;color:#1b2430;margin:1px 0;font-size:12px;line-height:1.35;white-space:nowrap}
.ch.falta{outline:2px solid var(--vermelho);outline-offset:-1px;color:var(--vermelho)}
.legenda{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:13px;margin-top:10px}
.leg{display:flex;align-items:center;gap:6px}
.leg .ch{display:inline-block;min-width:22px}
.pincel{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.pincel button{border:2px solid transparent;border-radius:8px;padding:5px 10px;font-weight:700;cursor:pointer;font:inherit;font-weight:700;font-size:14px}
.pincel button.ativo{border-color:var(--azul-esc);box-shadow:0 0 0 2px #fff inset}
.pincel .sep{width:1px;height:26px;background:var(--linha);margin:0 4px}
.estado-esc{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.tipos-ed td{padding:4px}
.tipos-ed input{padding:6px 8px}
.qr-box{text-align:center}
.qr-box svg{width:240px;height:auto}
.cel-linha{display:flex;align-items:center;gap:8px;border:1px solid var(--linha);border-radius:8px;padding:6px 10px;margin:6px 0}
.cel-linha .ch{display:inline-block}
.msg-wa{white-space:pre-wrap;font-size:13px;background:var(--fundo);border-radius:8px;padding:8px;margin:6px 0}
@media print{
  @page{size:A4 landscape;margin:8mm}
  .escala-wrap{overflow:visible;max-height:none;border:0}
  .escala{font-size:8px}.escala th,.escala td{min-width:0;padding:1px}.escala .nome{min-width:0}
  .ch{font-size:8px;padding:0 1px}
  .escala td.fds,.escala th.fds,.escala td.indisp,.ch{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
@media print{.so-imprimir{display:block!important}}
.prox{display:flex;gap:10px;align-items:center;border-bottom:1px solid var(--linha);padding:8px 0}
.prox:last-child{border-bottom:0}
.prox .qd{min-width:92px;font-weight:700;color:var(--azul-esc);text-transform:capitalize}
.prox .ch{display:inline-block;min-width:30px;text-align:center}
.prox.hoje .qd::after{content:" · hoje";color:var(--verde);font-weight:600}
