
:root{
  --fundo:#14263a; --cartao:#1f3b57; --texto:#f2f5f8; --suave:#9fb3c8; --ok:#2e9e5b; --erro:#d9534f;
  --painel:#f4f6f9; --linha:#d6dde5; --tinta:#1b2733; --tinta2:#5b6b7b; --azul:#1f5f99;
  font-family:"Segoe UI",system-ui,-apple-system,Roboto,Arial,sans-serif;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--painel);color:var(--tinta)}
body.escuro{background:var(--fundo);color:var(--texto)}
.hidden{display:none!important}
button{font:inherit;cursor:pointer}
input,select,textarea{font:inherit}

/* ---------- relógio ---------- */
#kiosk{min-height:100vh;display:flex;flex-direction:column;align-items:center;padding:28px 16px 0}
#k-empresa{color:var(--suave);font-size:20px;text-align:center}
#k-hora{font-size:clamp(64px,13vw,128px);font-weight:700;letter-spacing:2px;line-height:1.05;margin-top:8px;font-variant-numeric:tabular-nums}
#k-data{color:var(--suave);font-size:22px}
.k-cartao{background:var(--cartao);border-radius:14px;padding:28px 36px;margin-top:28px;display:grid;grid-template-columns:1fr 1fr;gap:10px 20px;width:min(520px,100%)}
.k-cartao label{font-size:16px}
.k-cartao input{font-size:30px;padding:8px;text-align:center;border-radius:8px;border:2px solid transparent;width:100%}
.k-cartao input:focus{outline:none;border-color:#6fb3ff}
#k-registrar{grid-column:1/3;margin-top:10px;background:var(--ok);color:#fff;border:0;border-radius:8px;padding:14px;font-size:20px;font-weight:700}
#k-registrar:disabled{opacity:.6}
#k-msg{margin-top:26px;font-size:24px;font-weight:700;text-align:center;max-width:1000px;min-height:32px}
#k-det{margin-top:6px;color:var(--suave);font-size:17px;text-align:center;max-width:1000px}
#k-rodape{margin-top:auto;width:100%;display:flex;gap:10px;align-items:center;padding:12px 4px;font-size:12px;color:var(--suave);flex-wrap:wrap}
#k-rodape .esp{flex:1}
#k-rodape button{background:var(--cartao);color:var(--suave);border:1px solid #33506d;border-radius:6px;padding:6px 12px;font-size:12px}
.alerta-txt{color:#ff8b85;font-weight:600}

/* ---------- painéis ---------- */
.overlay{position:fixed;inset:0;background:var(--painel);color:var(--tinta);overflow:auto;z-index:10}
.setup-box{max-width:980px;margin:5vh auto;padding:0 16px}
.setup-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px;margin-top:16px}
.login-box{max-width:400px;margin:14vh auto;background:#fff;border:1px solid var(--linha);border-radius:12px;padding:28px}
h1,h2,h3{margin:0 0 10px}
h1{font-size:22px} h2{font-size:18px} h3{font-size:15px}
.muted{color:var(--tinta2);font-size:13px}
.campo{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}
.campo label{font-size:13px;color:var(--tinta2)}
.campo input,.campo select,.campo textarea{padding:7px 9px;border:1px solid #b9c4cf;border-radius:6px;background:#fff;color:var(--tinta)}
.linha{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-end}
.linha .campo{margin-bottom:0}
.btn{background:var(--azul);color:#fff;border:0;border-radius:6px;padding:8px 14px;display:inline-block}
.btn.sec{background:#fff;color:var(--azul);border:1px solid var(--azul)}
.btn.perigo{background:#fff;color:#b3261e;border:1px solid #b3261e}
.btn.peq{padding:3px 8px;font-size:12px}
.adm-topo{position:sticky;top:0;background:#fff;border-bottom:1px solid var(--linha);display:flex;align-items:center;gap:12px;padding:8px 16px;z-index:2;flex-wrap:wrap}
.adm-topo .esp{flex:1}
.adm-topo select{padding:6px 8px;border:1px solid #b9c4cf;border-radius:6px;max-width:320px}
.abas{display:flex;gap:2px;flex-wrap:wrap}
.abas button{background:none;border:0;border-bottom:3px solid transparent;padding:8px 11px;color:var(--tinta2)}
.abas button.ativa{color:var(--azul);border-bottom-color:var(--azul);font-weight:600}
.adm-corpo{padding:16px;max-width:1200px;margin:0 auto}
.caixa{background:#fff;border:1px solid var(--linha);border-radius:10px;padding:16px;margin-bottom:14px}
.grade2{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(280px,1fr);gap:14px}
@media (max-width:860px){.grade2{grid-template-columns:1fr}}
table.lista{width:100%;border-collapse:collapse;font-size:13px}
table.lista th{text-align:left;background:#eef2f6;padding:6px 8px;border-bottom:1px solid var(--linha);font-weight:600;white-space:nowrap}
table.lista td{padding:5px 8px;border-bottom:1px solid #edf0f3;vertical-align:top}
table.lista tr.sel td{background:#e6f0fa}
table.lista tr.click{cursor:pointer}
table.lista tr.click:hover td{background:#f3f7fb}
.tag{display:inline-block;padding:1px 7px;border-radius:10px;font-size:11px;background:#e6edf4;color:#33475b}
.tag.red{background:#fde7e6;color:#a32020}
.tag.amb{background:#fff1d6;color:#8a5300}
.tag.grn{background:#e2f4e9;color:#1e6b3e}
.kpis{display:flex;gap:10px;flex-wrap:wrap;margin:8px 0}
.kpi{border:1px solid var(--linha);border-radius:8px;padding:8px 12px;min-width:130px}
.kpi b{display:block;font-size:20px}
.kpi span{font-size:12px;color:var(--tinta2)}
.aviso{background:#fff6e0;border:1px solid #f0d28a;color:#6b4a00;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.erro-box{background:#fdeceb;border:1px solid #f1b5b1;color:#8c1d18;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.ok-box{background:#e8f6ee;border:1px solid #a9dcbc;color:#1e5b36;border-radius:8px;padding:10px 12px;font-size:13px;margin-bottom:12px}
table.lista th.num,table.lista td.num{text-align:right;white-space:nowrap}
table.lista tr.total td{border-top:2px solid var(--linha);background:#f7f9fb}
.prev-grade{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.prev-grade label{display:flex;flex-direction:column;font-size:11px;color:var(--tinta2);gap:2px}
.prev-grade input{padding:4px 2px;border:1px solid #b9c4cf;border-radius:5px;font-size:12px;min-width:0}
.ger-pag h1{font-size:14pt;margin:0 0 2px}.ger-sub{font-size:8pt;margin:0 0 8px}.ger-emp{font-size:10pt;margin:10px 0 4px}
.ger-pag table{width:100%;border-collapse:collapse;font-size:8pt}.ger-pag th{background:#dde5ee;-webkit-print-color-adjust:exact;print-color-adjust:exact;text-align:left;padding:2px 5px;border:0.5px solid #9aa5b1}
.ger-pag td{padding:2px 5px;border:0.5px solid #9aa5b1}.ger-pag .num{text-align:right}.ger-pag .tag{border:0;background:none;color:#a32020;padding:0}
ol.passos{margin:6px 0 0 18px;padding:0;font-size:13px;line-height:1.6}

/* ---------- modal ---------- */
.modal{position:fixed;inset:0;background:rgba(10,20,30,.55);display:flex;align-items:center;justify-content:center;z-index:50;padding:16px}
.modal-box{background:#fff;color:var(--tinta);border-radius:10px;padding:20px;width:min(460px,100%);box-shadow:0 10px 40px rgba(0,0,0,.3);max-height:90vh;overflow:auto}
.modal-box p{white-space:pre-line;font-size:14px}
.modal-acoes{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}

/* ---------- impressão ---------- */
#print{display:none}
@media print{
  @page{size:A4 landscape;margin:7mm}
  body{background:#fff!important}
  #kiosk,.overlay,.modal{display:none!important}
  #print{display:block;color:#000;font-family:Arial,Helvetica,sans-serif}
}
.esp-pag{page-break-after:always;break-after:page}
.esp-pag:last-child{page-break-after:auto;break-after:auto}
.esp-pag h1{font-size:15pt;margin:0 0 4px}
.esp-cab{width:100%;border:1px solid #888;border-collapse:collapse;font-size:7.5pt;margin-bottom:4px}
.esp-cab td{padding:2px 5px}
.esp-tab{width:100%;border-collapse:collapse;font-size:7.2pt}
.esp-tab th{background:#1f3b57;color:#fff;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:2px 3px;font-weight:700}
.esp-tab td{border:0.5px solid #9aa5b1;padding:0.5px 3px;text-align:center;height:13.4px}
.esp-tab td.obs{text-align:left;font-size:6.3pt;width:38%}
.esp-tab tr.df td{background:#eef1f4;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.esp-tab tr.tot td{background:#dde5ee;font-weight:700;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.esp-tab td.alerta{color:#a32020}
.esp-baixo{display:flex;gap:10px;margin-top:5px;align-items:flex-start}
.esp-sem{border-collapse:collapse;font-size:7pt}
.esp-sem th{background:#dde5ee;-webkit-print-color-adjust:exact;print-color-adjust:exact;padding:1px 6px;border:0.5px solid #9aa5b1}
.esp-sem td{border:0.5px solid #9aa5b1;padding:1px 6px;text-align:center}
.esp-res{border:1px solid #888;padding:4px 8px;font-size:7.6pt;line-height:1.45;flex:1}
.esp-nota{font-size:6.3pt;margin-top:4px;line-height:1.3}
.esp-ass{display:flex;justify-content:space-between;margin-top:26px;font-size:7.5pt}
.esp-ass div{width:38%;border-top:0.7px solid #000;text-align:center;padding-top:2px}
.esp-rod{font-size:6.3pt;margin-top:3px}

/* ---------- versão on-line ---------- */
.centro{min-height:100vh;display:flex;align-items:center;justify-content:center;color:var(--suave)}
.msg-erro{color:#b3261e;font-size:13px;min-height:18px;margin:4px 0 10px}
.faixa-erro{width:100%;background:#7a1f1b;color:#fff;text-align:center;padding:8px;border-radius:8px;margin-bottom:10px}
#k-msg.ok{color:#4cd389}#k-msg.erro{color:#ff8b85}
#k-comprovante{margin-top:14px;background:#fff;color:#111;border-radius:8px;padding:10px 16px;font:13px/1.5 "Courier New",monospace;text-align:center;max-width:420px}
.qr{width:180px;margin:8px 0}.qr svg{width:100%;height:auto;display:block}
hr.sep{border:0;border-top:1px solid var(--linha);margin:14px 0}
code{background:#eef2f6;padding:2px 6px;border-radius:4px;font-size:13px}
textarea{width:100%;padding:7px 9px;border:1px solid #b9c4cf;border-radius:6px;font:inherit;resize:vertical}
#p-usuario{font-size:12px}
.btn:disabled{opacity:.55;cursor:not-allowed}
a.btn{text-decoration:none}