﻿/* =====================================================================
 * Tema no layout do mydhas: barra azul-marinho com menu em pÃ­lulas (ativo verde-Ã¡gua), moldura branca arredondada,
 * menu lateral em cartÃ£o (item ativo azul-marinho), cartÃµes com borda verde-Ã¡gua, campos em pÃ­lula, fonte menor.
 * Carregado DEPOIS do CSS principal (sobrepÃµe sÃ³ a aparÃªncia; a estrutura das telas Ã© a mesma).
 * ===================================================================== */
:root{
  --navy:#1e2a44; --navy-hover:#2a3858; --navy-2:#26334f;
  --teal:#1fc3a4; --teal-dark:#14a88c; --teal-borda:#a9e6da; --teal-claro:#e8f8f4;
  --orange:#1e2a44; --orange-dark:#141d31;          /* "cor principal" dos botÃµes/realces = azul-marinho, como no mydhas */
  --page-bg:#f5f7fa; --border:#e3e8ef; --border-strong:#cfd8e3; --text:#1e2a44; --text-muted:#5b6b82;
}
html,body{background:var(--navy) !important;font-size:13px}

/* ---------- barra superior ---------- */
.app-header{height:60px;background:var(--navy);padding:0 22px;gap:18px;box-shadow:none}
.app-logo{min-width:170px;font-size:15px}
.app-nav{gap:6px}
.app-nav button{color:#e6ebf3;font-size:12.5px;font-weight:600;padding:7px 12px;border-radius:999px}
.app-nav button:hover{background:var(--navy-hover);color:#fff}
.app-nav button.active{background:var(--teal);color:#fff;box-shadow:0 2px 8px rgba(31,195,164,.35)}
.app-nav button i{font-size:15px}
.app-user{background:var(--navy-2);border:1px solid #3a4867;border-radius:999px;padding:5px 14px 5px 6px;font-weight:700;font-size:11.5px;text-transform:uppercase;letter-spacing:.02em}
.app-user .av{background:var(--teal);width:26px;height:26px}

/* ---------- moldura branca e menu lateral em cartÃ£o ---------- */
.app-body{padding-top:60px;background:transparent}
.app-body::before{content:"";position:fixed;top:60px;left:10px;right:10px;bottom:10px;background:#fff;border-radius:12px;z-index:0}
.sidebar{top:70px;left:20px;bottom:20px;width:240px;border:1px solid var(--teal-borda);border-radius:10px;padding:14px 10px;z-index:5;background:#fff}
.sidebar h4{font-size:15px;text-transform:none;letter-spacing:0;color:var(--text);font-weight:600;margin:2px 0 14px 12px}
.sidebar button{font-size:12.5px;color:var(--text);padding:8px 12px;border-radius:9px;font-weight:500;margin-bottom:2px}
.sidebar button i{color:var(--navy);font-size:16px}
.sidebar button:hover{background:var(--teal-claro)}
.sidebar button.active{background:var(--navy);color:#fff;box-shadow:0 2px 6px rgba(30,42,68,.25)}
.main-content{position:relative;z-index:1;margin-left:270px;padding:10px 26px 30px 6px;background:transparent}

/* ---------- tÃ­tulo da pÃ¡gina em cartÃ£o + cartÃµes com borda verde-Ã¡gua ---------- */
.page-head{background:#fff;border:1px solid var(--teal-borda);border-radius:8px;padding:12px 16px;margin-bottom:10px;min-height:52px}
.page-head h2{font-size:13.5px;font-weight:700;letter-spacing:0}
.page-head p{font-size:11.5px}
.panel-card,.filter-bar,.doc-card,.tr-card,.rel-card,.card{border-color:var(--teal-borda) !important;border-radius:8px;box-shadow:none}
.filter-bar .f label,.f label{font-size:11px;font-weight:700;color:var(--text);text-transform:none;letter-spacing:0}

/* ---------- campos em pÃ­lula ---------- */
.f input:not([type=checkbox]):not([type=radio]),.f select,.filter-bar .f input,.filter-bar .f select,.f textarea{
  border-radius:999px;border:1px solid var(--border-strong);height:32px;font-size:12px;padding:0 13px;background:#fff}
.f textarea{border-radius:12px;height:auto;padding:8px 13px}
.f input:disabled,.f select:disabled{background:#e9edf2;color:#7b889b}
.f input:focus,.f select:focus,.filter-bar .f input:focus,.filter-bar .f select:focus{border-color:var(--teal);box-shadow:0 0 0 3px rgba(31,195,164,.15)}
input[type=checkbox],input[type=radio]{accent-color:var(--teal)}

/* ---------- botÃµes ---------- */
.btn{border-radius:999px !important;font-size:12px;font-weight:600}
.btn.primary{background:var(--navy) !important;border-color:var(--navy) !important;color:#fff !important}
.btn.primary:hover{background:var(--navy-hover) !important}
.btn.ghost{border-color:var(--border-strong)}
.btn.ghost:hover{border-color:var(--teal);color:var(--teal-dark)}
.btn-add{border-radius:999px;border-color:var(--navy);color:var(--navy)}
.tag.verde{background:var(--teal-claro);color:var(--teal-dark)}

/* o cadastro de colaborador em pÃ¡gina cheia continua cobrindo tudo */
#modal-novo.cf-pw{z-index:200}

/* ===================================================================== DOCUMENTOS ===================================================================== */
.doc-abas{display:flex;gap:6px;margin:0 0 10px}
.doc-abas button{border:1px solid var(--teal-borda);background:#fff;border-radius:999px;padding:7px 14px;font:inherit;font-size:12px;font-weight:600;color:var(--text);cursor:pointer;display:flex;gap:6px;align-items:center}
.doc-abas button.ativo{background:var(--navy);border-color:var(--navy);color:#fff}
.doc-card{background:#fff;border:1px solid var(--teal-borda);border-radius:8px;padding:14px 16px;margin-bottom:10px}
.doc-card h4{margin:0 0 12px;font-size:12.5px;color:var(--text)}
.doc-vazio{color:var(--text-muted);font-size:12px;text-align:center;padding:18px 6px}
.doc-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-bottom:10px}
.doc-kpi{background:#fff;border:1px solid var(--teal-borda);border-radius:10px;padding:14px;display:flex;gap:12px;align-items:center}
.doc-kpi>i{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;font-size:20px;background:#eef2f8;color:var(--navy);flex:none}
.doc-kpi.ok>i{background:var(--teal-claro);color:var(--teal-dark)}.doc-kpi.warn>i{background:#fff4e0;color:#c77700}.doc-kpi.info>i{background:#eaf1ff;color:#2f5fd0}
.doc-kpi small{display:block;font-size:11px;color:var(--text-muted)}.doc-kpi b{font-size:22px;color:var(--text)}.doc-kpi em{display:block;font-style:normal;font-size:10.5px;color:var(--text-muted)}
.doc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.doc-grid .doc-card{margin:0}
.doc-rosca{--p:0;width:150px;height:150px;border-radius:50%;margin:4px auto 10px;background:conic-gradient(var(--teal) calc(var(--p)*1%), #ffe2b3 0);display:grid;place-items:center}
.doc-rosca>div{width:104px;height:104px;border-radius:50%;background:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center}
.doc-rosca b{font-size:24px}.doc-rosca small{font-size:11px;color:var(--text-muted)}
.doc-leg{display:flex;gap:6px;align-items:center;justify-content:center;font-size:11.5px;color:var(--text-muted)}
.doc-leg span{width:10px;height:10px;border-radius:3px;display:inline-block;margin-left:8px}.doc-leg .ok{background:var(--teal)}.doc-leg .warn{background:#ffc766}
.doc-barras{display:flex;align-items:flex-end;gap:5px;height:150px;padding-top:6px}
.doc-barras>div{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}
.doc-barras i{width:100%;background:linear-gradient(180deg,var(--teal),var(--teal-dark));border-radius:5px 5px 2px 2px;min-height:2px}
.doc-barras small{font-size:9.5px;color:var(--text-muted)}
.doc-linha{display:flex;align-items:center;gap:10px;font-size:12px;padding:5px 0}
.doc-linha>span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.doc-linha small{color:var(--text-muted)}
.doc-linha b.warn{background:#fff4e0;color:#c77700;border-radius:999px;padding:1px 9px}
.doc-linha.link,.doc-tab tr.link{cursor:pointer}.doc-linha.link:hover span{color:var(--teal-dark)}
.doc-prog{width:110px;height:7px;border-radius:99px;background:#edf1f6;overflow:hidden;flex:none}.doc-prog i{display:block;height:100%;background:var(--teal);border-radius:99px}
.doc-rec{display:flex;gap:10px;align-items:center;padding:6px 0;border-bottom:1px solid #f0f3f7}
.doc-rec img,.doc-semfoto{width:40px;height:40px;border-radius:10px;object-fit:cover;background:#eef2f8;flex:none;display:grid;place-items:center;color:#9aa7b8}
.doc-rec div{flex:1;min-width:0}.doc-rec b{font-size:12px;display:block}.doc-rec small{display:block;font-size:10.5px;color:var(--text-muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.doc-tab{width:100%;border-collapse:collapse;font-size:12px}
.doc-tab th{text-align:left;font-size:11px;color:var(--text-muted);font-weight:700;padding:8px;border-bottom:1px solid var(--border)}
.doc-tab td{padding:8px;border-bottom:1px solid #f0f3f7;vertical-align:middle}.doc-tab td small{display:block;color:var(--text-muted);font-size:10.5px}
.doc-tab tr.link:hover td{background:#f7fbfa}
.doc-mini{width:44px;height:44px;border-radius:10px;object-fit:cover}
.btn.sm{height:28px;padding:0 10px;font-size:11.5px}
.doc-det-cab{display:flex;gap:10px;align-items:center}.doc-det-cab h3{margin:0;font-size:14px}.doc-det-cab small{color:var(--text-muted);font-size:11px}
.doc-passos{display:flex;align-items:center;gap:10px;margin:0 0 10px;padding:10px 14px;background:#fff;border:1px solid var(--teal-borda);border-radius:8px}
.doc-passos>div{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:600;color:var(--text-muted)}
.doc-passos>div span{width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#eef2f8;font-size:11.5px}
.doc-passos>div.ativo{color:var(--text)}.doc-passos>div.ativo span{background:var(--navy);color:#fff}.doc-passos>div.feito span{background:var(--teal);color:#fff}
.doc-passos .lin{flex:0 0 40px;height:2px;background:#e3e8ef}
.doc-rodape{display:flex;justify-content:space-between;gap:10px}
.doc-fonte{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}
.doc-fonte button{border:1px solid var(--border-strong);border-radius:12px;background:#fff;padding:14px;text-align:left;cursor:pointer;font:inherit;display:grid;grid-template-columns:auto 1fr;column-gap:12px}
.doc-fonte button i{grid-row:span 2;font-size:26px;color:var(--navy)}.doc-fonte button b{font-size:13px}.doc-fonte button small{color:var(--text-muted);font-size:11px}
.doc-fonte button.ativo{border-color:var(--teal);background:var(--teal-claro)}
.doc-drop{border:2px dashed var(--teal-borda);border-radius:12px;padding:30px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;color:var(--text-muted);text-align:center}
.doc-drop i{font-size:34px;color:var(--teal)}.doc-drop b{color:var(--text);font-size:13px}.doc-drop.sobre{background:var(--teal-claro)}
.doc-edit-barra{display:flex;gap:4px;flex-wrap:wrap;border:1px solid var(--border-strong);border-bottom:0;border-radius:10px 10px 0 0;padding:6px;background:#f8fafc}
.doc-edit-barra button{border:0;background:none;border-radius:7px;padding:5px 8px;cursor:pointer;font:inherit;font-size:12px;color:var(--text);display:flex;gap:5px;align-items:center}
.doc-edit-barra button:hover{background:#e8edf3}
.doc-editor,.doc-html{min-height:320px;border:1px solid var(--border-strong);border-radius:0 0 10px 10px;padding:16px;outline:none;background:#fff;font-size:13px;line-height:1.5;width:100%;box-sizing:border-box}
.doc-html{font-family:Consolas,monospace;font-size:12px;resize:vertical}
.doc-prev{width:100%;height:480px;border:1px solid var(--border);border-radius:10px;background:#fff}
.doc-pos-html{display:flex;flex-direction:column;gap:8px;margin-bottom:12px}
.doc-pdf-barra{display:flex;align-items:center;gap:8px;margin-bottom:10px;font-size:12px}.doc-pdf-barra small{color:var(--text-muted)}
.doc-pdf-area{background:#eef2f6;border-radius:10px;padding:16px;overflow:auto;max-height:70vh;text-align:center}
.doc-pdf-pag{position:relative;display:inline-block;cursor:crosshair;box-shadow:0 2px 10px rgba(0,0,0,.12);user-select:none}
.doc-pdf-pag canvas{display:block;max-width:100%}
.doc-box{position:absolute;border:2px dashed var(--teal-dark);background:rgba(31,195,164,.16);border-radius:6px;display:grid;place-items:center;pointer-events:none}
.doc-box span{font-size:11px;font-weight:700;color:var(--teal-dark)}
.doc-sel{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:12px}
.doc-filtros{grid-template-columns:repeat(4,minmax(0,1fr)) !important}
.doc-sel-acoes{display:flex;gap:8px;align-items:center;margin:10px 0}.doc-sel-acoes small{color:var(--text-muted);margin-left:auto}
.doc-sel-lista{max-height:420px;overflow:auto;border:1px solid var(--border);border-radius:10px}
.doc-pes{display:flex;gap:10px;align-items:center;padding:8px 12px;border-bottom:1px solid #f0f3f7;cursor:pointer;font-size:12px}
.doc-pes span{flex:1;min-width:0}.doc-pes b{display:block}.doc-pes small{color:var(--text-muted);font-size:10.5px}
.doc-pes em{font-style:normal;font-size:10px;background:#fff4e0;color:#c77700;border-radius:99px;padding:2px 8px}
.doc-pes.sel{background:var(--teal-claro)}
.doc-sel-dir{border:1px dashed var(--border-strong);border-radius:10px;padding:12px;min-height:200px}
.doc-sel-dir h4{margin:0 0 10px;font-size:12px}.doc-sel-dir h4 b{background:var(--navy);color:#fff;border-radius:99px;padding:1px 9px;margin-left:6px}
.doc-chip{display:inline-flex;align-items:center;gap:6px;background:var(--teal-claro);color:var(--teal-dark);border-radius:99px;padding:4px 6px 4px 11px;font-size:11.5px;margin:0 6px 6px 0;font-weight:600}
.doc-chip i{cursor:pointer;font-size:13px}
.fp-pub{margin-top:10px;border:1px solid var(--teal-borda);background:#f7fcfb;border-radius:10px;padding:10px 12px}
.fp-pub b{display:block;margin-bottom:6px}.fp-pub small{color:var(--text-muted)}
@media (max-width:1200px){ .doc-grid{grid-template-columns:repeat(2,minmax(0,1fr))} .doc-kpis{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:860px){ .sidebar{display:none} .main-content{margin-left:0;padding:10px 20px} .doc-grid,.doc-sel,.doc-fonte{grid-template-columns:1fr} .doc-filtros{grid-template-columns:1fr 1fr !important} }
/* Ã¡rea principal nunca passa da tela (tabelas largas rolam dentro do cartÃ£o) */
.main-content{max-width:calc(100vw - 290px);overflow-x:hidden}
.doc-card{overflow-x:auto}
@media (max-width:860px){ .main-content{max-width:100vw} }
/* documentos: buscar e baixar em lote */
.doc-busca-f{grid-template-columns:repeat(5,minmax(0,1fr)) !important}
.doc-busca-bt{flex-direction:row !important;align-items:flex-end;gap:8px}
.doc-busca-acoes{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:10px;font-size:12px}
.doc-busca-acoes>span{margin-right:auto}
@media (max-width:1200px){ .doc-busca-f{grid-template-columns:repeat(3,minmax(0,1fr)) !important} }
@media (max-width:860px){ .doc-busca-f{grid-template-columns:1fr 1fr !important} }

/* ===================================================================== RELATÃ“RIOS E ESPELHO (tela e impressÃ£o) ===================================================================== */
.rp{font-size:11.5px;color:#1e2a44;font-family:'Inter',Arial,Helvetica,sans-serif;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rel-saida{border-color:var(--teal-borda) !important;border-radius:10px;background:#f7f9fc !important}
.rp .folha{background:#fff;border:1px solid #d6efe9;border-radius:12px;padding:0 0 16px;margin-bottom:22px;overflow:hidden;box-shadow:0 1px 3px rgba(30,42,68,.06)}
.rp .rp-topo{display:flex;justify-content:space-between;align-items:center;gap:16px;background:#1e2a44;color:#fff;padding:12px 16px;border-bottom:4px solid #1fc3a4}
.rp .rp-marca b{display:block;font-size:15px;letter-spacing:.06em}
.rp .rp-marca span{display:inline-block;margin-top:5px;background:#1fc3a4;color:#fff;border-radius:999px;padding:2px 11px;font-size:11px;font-weight:700}
.rp .rp-emp{text-align:right;max-width:60%}.rp .rp-emp b{display:block;font-size:12.5px}.rp .rp-emp span{display:block;font-size:10px;opacity:.82;margin-top:1px}
.rp .rp-info{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:12px 14px;border:1px solid #e3e8ef;border-radius:10px;overflow:hidden;background:#fff}
.rp .rp-info div{padding:6px 10px;border-right:1px solid #eef1f5;border-bottom:1px solid #eef1f5;min-width:0}
.rp .rp-info small{display:block;font-size:8.8px;text-transform:uppercase;letter-spacing:.07em;color:#6b7a90;font-weight:700}
.rp .rp-info b{display:block;font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rp .rp-info .g2{grid-column:span 2}.rp .rp-info .g4{grid-column:1/-1;border-bottom:0}
.rp .rp-info .nome b{font-size:13.5px;color:#0f766e}
.rp table{width:100%;border-collapse:separate;border-spacing:0;border:1px solid #e3e8ef;border-radius:10px;overflow:hidden;margin-bottom:10px;background:#fff}
.rp .folha table{width:calc(100% - 28px);margin:0 14px 10px}
.rp th,.rp td{border:0;border-bottom:1px solid #eef1f5;padding:4px 6px;font-size:10.8px;text-align:center;white-space:nowrap}
.rp td.esq,.rp th.esq{text-align:left}
.rp thead th,.rp table tr:first-child th:not(.grupo-tit){background:#1e2a44;color:#fff;font-weight:700;font-size:9.8px;text-transform:uppercase;letter-spacing:.03em;border-bottom:0}
.rp tbody tr:nth-child(even) td{background:#f8fafc}
.rp tbody tr:hover td{background:#eefaf7}
.rp tfoot th{background:#e8f8f4;color:#0f766e;border-top:2px solid #1fc3a4;border-bottom:0;font-size:11px}
.rp tr.fds td{background:#f1f4f9 !important}
.rp tr.st-falta td{background:#fdecec !important}.rp tr.st-falta td.faixa{color:#b91c1c}
.rp tr.st-feriado td{background:#eef4ff !important}.rp tr.st-feriado td.faixa{color:#1d4ed8}
.rp tr.st-ferias td{background:#e8f8f4 !important}.rp tr.st-ferias td.faixa{color:#0f766e}
.rp tr.st-afastamento td{background:#fff6e5 !important}.rp tr.st-afastamento td.faixa{color:#b45309}
.rp tr.st-desligado td{background:#f1f1f1 !important;color:#6b7280}
.rp tr.abon td{background:#f0fdf4 !important}.rp tr.abon td.faixa{color:#047857}
.rp tr.st-folga td.faixa,.rp tr.st-descanso td.faixa{color:#64748b}
.rp .faixa{font-weight:800;letter-spacing:.1em;font-size:10px}
.rp .fm{color:#dc2626;font-weight:800}.rp .inc{color:#2563eb;font-weight:700}
.rp .rp-leg{display:flex;flex-wrap:wrap;gap:5px 14px;margin:0 14px 8px;font-size:9.8px;color:#6b7a90}
.rp .rp-leg span{display:inline-flex;align-items:center;gap:5px}
.rp .rp-leg i{width:11px;height:11px;border-radius:3px;display:inline-block;border:1px solid #d6dde6}
.rp .rp-sec{margin:14px 14px 7px;font-size:10.5px;font-weight:800;text-transform:uppercase;letter-spacing:.07em;color:#1e2a44;display:flex;align-items:center;gap:8px}
.rp .rp-sec::before{content:"";width:4px;height:14px;border-radius:2px;background:#1fc3a4}
.rp .resumo{display:grid;grid-template-columns:repeat(auto-fill,minmax(165px,1fr));gap:8px;border:0;padding:0;margin:0 14px 8px}
.rp .resumo div{display:flex;flex-direction:column;justify-content:space-between;gap:2px;border:1px solid #e3e8ef;border-left:4px solid #1fc3a4;border-radius:8px;padding:6px 10px;background:#fff}
.rp .resumo div span{font-size:9.3px;color:#6b7a90;font-weight:700;text-transform:uppercase;letter-spacing:.03em;white-space:normal}
.rp .resumo div b{font-size:14px;color:#1e2a44;font-variant-numeric:tabular-nums}
.rp .resumo b.neg{color:#dc2626 !important}.rp .resumo b.pos{color:#059669 !important}
.rp .resumo.bh div:last-child{border-left-color:#1e2a44;background:#f5f7fb}
.rp .assin{display:flex;justify-content:space-around;margin:40px 14px 2px;font-size:10.5px}
.rp .assin div{border-top:1.5px solid #1e2a44;width:40%;text-align:center;padding-top:5px;font-weight:700}
.rp .assin div small{display:block;font-weight:400;color:#6b7a90;font-size:9.5px}
/* tÃ­tulos, grupos e subtotais dos outros relatÃ³rios */
.rp h3.titulo{background:#1e2a44;color:#fff;border-bottom:4px solid #1fc3a4;border-radius:10px;padding:11px 16px;text-align:left;font-size:14px;letter-spacing:.05em;margin:0 0 12px}
.rp .grupo-tit{background:#e8f8f4 !important;color:#0f766e !important;font-weight:800;text-align:left;border-bottom:2px solid #1fc3a4 !important;font-size:11px !important;text-transform:none !important;letter-spacing:0 !important}
.rp tr.sub td{background:#f5f7fb !important;border-top:2px solid #cfd8e3;font-weight:700}
.rp .neg{color:#dc2626}.rp .pos{color:#059669}
.rp > .resumo{margin:0 0 12px}
.rp .rp-tag{display:inline-block;border-radius:999px;padding:1px 9px;font-weight:700;font-size:10px;background:#eef2f8;color:#1e2a44}
.rp .rp-tag[class*="t-falta"]{background:#fdecec;color:#b91c1c}
.rp .rp-tag[class*="t-atraso"],.rp .rp-tag[class*="t-saida"]{background:#fff6e5;color:#b45309}
.rp .rp-tag[class*="t-hora-extra"],.rp .rp-tag[class*="t-extra"]{background:#e8f8f4;color:#0f766e}
.rp .rp-tag[class*="t-diverg"],.rp .rp-tag[class*="t-sem-jornada"],.rp .rp-tag[class*="t-batida"]{background:#eef4ff;color:#1d4ed8}
@media print{ .rp .folha{border:0;border-radius:0;box-shadow:none;margin:0} .rp tbody tr:hover td{background:inherit} }
/* cadastro > mensagens para o app */
.msg-nova{display:grid;grid-template-columns:1.4fr 1fr 0.8fr 1fr 1fr auto;gap:10px 12px;align-items:end;margin-bottom:10px}
.msg-nova textarea{width:100%;border:1px solid var(--border-strong);border-radius:12px;padding:8px 12px;font:inherit;font-size:12.5px;resize:vertical}
.msg-bt{justify-content:flex-end}
.msg-it{display:flex;gap:10px;align-items:center;justify-content:space-between;border:1px solid var(--teal-borda);border-left:4px solid var(--teal);border-radius:10px;padding:8px 12px;margin-bottom:6px;background:#fff}
.msg-it b{display:block;font-size:12.5px;white-space:pre-wrap}.msg-it small{display:block;color:var(--text-muted);font-size:11px;margin-top:2px}
.msg-it.off{opacity:.55;border-left-color:#cbd5e1}
.msg-vazio{color:var(--text-muted);font-size:12px;padding:6px 0}
@media (max-width:1000px){ .msg-nova{grid-template-columns:1fr 1fr} }


/* ===== Locais de registro (mapa) ===== */
.loc-f{grid-template-columns:2fr 1.4fr 1.4fr 1fr 1fr auto;align-items:end}
.loc-bt{display:flex;align-items:end}
.loc-grid{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:14px;align-items:start}
.loc-lista{max-height:calc(100vh - 250px);overflow:auto;padding:10px}
.loc-tit{font-size:12.5px;color:#64748b;margin:2px 4px 8px}
.loc-pes{display:block;width:100%;text-align:left;border:1px solid #e3e8ef;background:#fff;border-radius:10px;padding:9px 11px;margin-bottom:6px;cursor:pointer;position:relative}
.loc-pes:hover{border-color:#1fc3a4}.loc-pes.ativo{border-color:#1fc3a4;background:#e8f8f4}
.loc-pes b{display:block;font-size:13px;padding-right:56px}.loc-pes small{display:block;color:#64748b;font-size:11.5px;margin-top:2px}
.loc-cont{position:absolute;right:10px;top:9px;font-size:12px;color:#0f766e;font-weight:600}
.loc-mapa-card{padding:12px}
.loc-cab{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:center;margin-bottom:10px}
.loc-cab b{font-size:15px;color:#1e2a44}.loc-cab small{display:block;color:#64748b;font-size:12px}
.loc-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:12px;color:#475569}.loc-leg i{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:4px;vertical-align:-1px}
#loc-mapa{height:460px;border-radius:12px;overflow:hidden;border:1px solid #e3e8ef;z-index:0}
.loc-ic span{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);color:#fff;font-size:11px;font-weight:700;box-shadow:0 2px 6px rgba(0,0,0,.3);border:2px solid #fff}
.loc-ic span b{transform:rotate(45deg);line-height:1}.loc-ic{background:none;border:0}
.loc-pontos{margin-top:12px;max-height:320px;overflow:auto}
.loc-tab td small{display:block;color:#64748b}
.loc-hr{border:1px solid #e3e8ef;background:#f5f7fa;color:#94a3b8;border-radius:8px;padding:4px 8px;margin:2px 4px 2px 0;font-size:12.5px;font-weight:600;cursor:default}
.loc-hr.com{background:#e8f8f4;color:#0f766e;border-color:#b7eadf;cursor:pointer}.loc-hr.com:hover{background:#1fc3a4;color:#fff}
.loc-hr.ass{background:#eef2ff;color:#4f46e5;border-color:#c7d2fe}
.loc-hr i{font-size:12px;margin-right:2px}
@media (max-width:1000px){.loc-grid{grid-template-columns:1fr}.loc-lista{max-height:260px}.loc-f{grid-template-columns:1fr 1fr}}

/* ===== Cerca virtual (locais + cadastro) ===== */
.loc-f{grid-template-columns:2fr 1.4fr 1.4fr 1fr 1fr auto auto}
.loc-fora{display:flex;align-items:center;gap:6px;white-space:nowrap;font-size:13px;height:40px}
.loc-bt .btn + .btn{margin-left:6px}
.loc-vermelho,.loc-fora-n{color:#dc2626;font-style:normal;font-weight:700}
.loc-hr.com.fora{background:#fee2e2;color:#b91c1c;border-color:#fecaca}.loc-hr.com.fora:hover{background:#ef4444;color:#fff}
.loc-cerca-info{color:#475569}
.cerca-box{display:grid;grid-template-columns:minmax(0,1fr) 240px;gap:12px}
.cerca-mapa{height:300px;border-radius:12px;border:1px solid #e3e8ef;overflow:hidden;z-index:0}
.cerca-lado{display:flex;flex-direction:column;gap:8px}
.cerca-lado .f{margin:0}
.cerca-info{font-size:12px;color:#64748b;line-height:1.45}
@media (max-width:900px){.cerca-box{grid-template-columns:1fr}}

/* ===== Bases: monitor de funcionários ===== */
.adm-monitor{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin-bottom:12px}
.adm-monitor div{background:#f5f7fa;border:1px solid #e3e8ef;border-radius:12px;padding:10px 14px}
.adm-monitor b{display:block;font-size:22px;color:#1e2a44}.adm-monitor small{color:#64748b;font-size:12px}

/* ===== Listas com busca (selbusca.js) ===== */
.sb-painel{position:fixed;z-index:9999;display:flex;flex-direction:column;background:#fff;border:1px solid #d8e0ea;border-radius:12px;box-shadow:0 18px 40px rgba(15,23,42,.18),0 2px 6px rgba(15,23,42,.08);overflow:hidden;animation:sbEntra .12s ease}
@keyframes sbEntra{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.sb-topo{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid #eef2f7;background:#f8fafc}
.sb-topo i{color:#64748b;font-size:16px}
.sb-busca{flex:1;border:0;outline:0;background:transparent;font:inherit;font-size:13.5px;color:#1e2a44;padding:4px 0;min-width:0}
.sb-cont{font-size:11px;color:#94a3b8;white-space:nowrap}
.sb-lista{overflow-y:auto;padding:4px;flex:1;min-height:0}
.sb-it{padding:7px 10px;border-radius:8px;font-size:13px;color:#1e2a44;cursor:pointer;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-it.ativo{background:#e8f8f4;color:#0f766e}
.sb-it.sel{font-weight:700;background:#1e2a44;color:#fff}
.sb-it.sel.ativo{background:#23365a}
.sb-it.vazio{color:#94a3b8}
.sb-it.off{opacity:.45;cursor:not-allowed}
.sb-grupo{padding:8px 10px 4px;font-size:10.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#64748b}
.sb-nada{padding:14px;text-align:center;color:#94a3b8;font-size:13px}
.sb-lista::-webkit-scrollbar{width:8px}.sb-lista::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:8px}

/* ===== Cadastro de pessoa dentro da área de conteúdo (menu de cima e lateral continuam visíveis) ===== */
#modal-novo.cf-pw{position:fixed;top:60px;left:270px;right:0;bottom:0;inset:60px 0 0 270px;z-index:4;background:transparent}
#modal-novo.cf-pw .box{position:absolute;inset:0;background:var(--page-bg,#f4f6fa)}
#modal-novo.cf-pw.cf-min{display:none!important}
@media (max-width:900px){ #modal-novo.cf-pw{inset:60px 0 0 0} }
.cad-atalho{position:fixed;right:22px;bottom:22px;z-index:50;display:flex;align-items:center;gap:10px;padding:11px 16px;border:0;border-radius:999px;cursor:pointer;
  background:#1e2a44;color:#fff;font:inherit;font-size:13px;box-shadow:0 10px 26px rgba(15,23,42,.3)}
.cad-atalho i{font-size:18px;color:#1fc3a4}.cad-atalho small{margin-left:4px;padding:3px 9px;border-radius:999px;background:#1fc3a4;color:#0f1624;font-weight:800;font-size:11px;text-transform:uppercase}
.cad-atalho:hover{background:#23365a}

/* ===== Interruptores (toggle) no lugar das caixinhas, nos formulários (tabelas e listas de seleção continuam com caixinha) ===== */
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos]){
  appearance:none;-webkit-appearance:none;position:relative;width:38px!important;height:22px!important;min-width:38px;margin:0 8px 0 0;flex-shrink:0;
  border-radius:999px;background:#d7dee8;border:0;cursor:pointer;vertical-align:middle;transition:background .18s;outline:none}
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos])::after{
  content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(15,23,42,.25);transition:transform .18s}
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos]):checked{background:#1fc3a4}
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos]):checked::after{transform:translateX(16px)}
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos]):focus-visible{box-shadow:0 0 0 3px rgba(31,195,164,.3)}
:is(#modal-novo, .view, .cad-dialog) input[type=checkbox]:not(table input):not(.sem-switch):not(.adm-chks input):not([data-bchk]):not([data-todos]):disabled{opacity:.5;cursor:not-allowed}

/* ===== Marca MYDHAS LITE ===== */
#brand-nome{display:flex;flex-direction:column;line-height:1.1;letter-spacing:.04em;font-weight:800}
#brand-nome .brand-base{font-size:10.5px;font-weight:500;letter-spacing:0;opacity:.7;margin-top:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:200px}
.logo-img{background:none!important;box-shadow:none!important}
.logo-img img{width:100%;height:100%;object-fit:contain}

/* ===== Botão Registrar ponto no menu superior (como no mydhas) ===== */
.app-nav .nav-registrar{margin-left:10px;background:#1fc3a4!important;color:#0f1624!important;border-radius:999px;padding:7px 16px;font-weight:700;box-shadow:0 4px 12px rgba(31,195,164,.35)}
.app-nav .nav-registrar i{color:#0f1624!important}
.app-nav .nav-registrar:hover{background:#2ee0bd!important}
.app-nav .nav-registrar.active{outline:2px solid #fff;outline-offset:2px}

/* ===== Cadastro de pessoa no estilo mydhas (cartões com borda verde-água, cabeçalho com Salvar) ===== */
#modal-novo.cf-pw .box{padding:12px 18px 18px;overflow:auto}
#modal-novo.cf-pw .cf-topo{position:sticky;top:0;z-index:3;display:flex;align-items:center;gap:12px;flex-wrap:nowrap;margin:0 0 14px;padding:12px 16px!important;max-width:none!important;
  background:#fff;border:1px solid #b5ece2;border-radius:10px;box-shadow:0 2px 8px rgba(30,42,68,.05)}
#modal-novo.cf-pw .cf-voltar{width:34px;height:34px;border:0;border-radius:8px;background:none;color:#1e2a44;cursor:pointer;display:grid;place-items:center;font-size:20px}
#modal-novo.cf-pw .cf-voltar:hover{background:#eef2f7}
#modal-novo.cf-pw .cf-tit{flex:1;min-width:0;display:flex;align-items:baseline;gap:10px}
#modal-novo.cf-pw .cf-tit h2{margin:0;font-size:16px;font-weight:700;color:#1e2a44;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#modal-novo.cf-pw .cf-tit small{font-size:11.5px;color:#94a3b8;text-transform:none;letter-spacing:0;white-space:nowrap}
#modal-novo.cf-pw .pw-acoes-topo{display:flex;gap:8px;align-items:center}
#modal-novo.cf-pw .cf-tudo{height:34px;font-size:12.5px;padding:0 12px}
#modal-novo.cf-pw .cf-salvar-topo{height:36px;padding:0 18px;border-radius:999px;background:#1e2a44;color:#fff;font-weight:700;border:0;display:flex;align-items:center;gap:8px}
#modal-novo.cf-pw .cf-salvar-topo:hover{background:#23365a}
#modal-novo.cf-pw .cf-salvar-topo i{font-size:18px}
#modal-novo.cf-pw .box-foot{display:none!important}
#modal-novo.cf-pw .box-body{max-width:none!important;padding:0!important;overflow:visible}
#modal-novo.cf-pw .cf-bloco{border:1px solid #b5ece2;border-radius:10px;margin-bottom:14px;box-shadow:none}
#modal-novo.cf-pw .cf-bloco-cab{padding:12px 18px}
#modal-novo.cf-pw .cf-bloco-cab .n{background:#e8f8f4;color:#0f766e;width:28px;height:28px;font-size:13px}
#modal-novo.cf-pw .cf-bloco-cab .tx b{font-size:14px;color:#1e2a44}
#modal-novo.cf-pw .cf-bloco.aberto .cf-bloco-cab{border-bottom:1px solid #d9f4ee}
#modal-novo.cf-pw .cf-bloco-corpo{padding:16px 22px 6px}
/* bloco 1 como no mydhas: dados em 2 colunas e a imagem à direita */
#modal-novo.cf-pw .cf-bloco.aberto .cf-g-0{grid-template-columns:minmax(0,1fr) 230px}
#modal-novo.cf-pw .cf-g-0>[data-px="foto"]{order:9!important;border:1px dashed #cbd5e1;border-radius:10px;padding:14px;align-self:start;background:#fbfdfe}
#modal-novo.cf-pw .cf-g-0>section.fs:not([data-px]) .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
#modal-novo.cf-pw section.fs h4{border:0;color:#94a3b8;font-size:11px;letter-spacing:.06em}
/* campos arredondados (pílula), rótulos pequenos e escuros */
#modal-novo.cf-pw .f label{font-size:12px!important;font-weight:600;color:#334155!important;margin-bottom:5px}
#modal-novo.cf-pw .f input:not([type=checkbox]):not([type=radio]),#modal-novo.cf-pw .f select,#modal-novo.cf-pw .f textarea{height:38px!important;font-size:13.5px!important;border-radius:999px!important;border:1px solid #d6dde6!important;padding:0 16px!important;background:#fff!important}
#modal-novo.cf-pw .f textarea{height:auto!important;border-radius:14px!important;padding:10px 16px!important}
#modal-novo.cf-pw .f input:focus,#modal-novo.cf-pw .f select:focus{border-color:#1fc3a4!important;box-shadow:0 0 0 3px rgba(31,195,164,.15)!important;outline:0}
#modal-novo.cf-pw .btn-add{height:38px!important;min-width:38px!important;border-radius:999px!important}
@media (max-width:1100px){ #modal-novo.cf-pw .cf-bloco.aberto .cf-g-0{grid-template-columns:1fr} #modal-novo.cf-pw .cf-g-0>[data-px="foto"]{order:0!important} }

/* fechamento: histórico de fechamentos por empresa */
.fp-hist-topo{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:10px;font-size:13.5px}
.fp-hist{border:1px solid var(--border);border-radius:10px;overflow:auto;background:var(--surface,#fff)}
.fp-hist table{width:100%;border-collapse:collapse;font-size:13px}
.fp-hist th{text-align:left;padding:9px 12px;background:var(--bg,#f6f8fa);color:var(--text-muted);font-weight:600;white-space:nowrap}
.fp-hist td{padding:8px 12px;border-top:1px solid var(--border);white-space:nowrap}
.fp-hist tr.atual td{background:rgba(245,158,11,.08)}
/* rotinas: progresso flutuante (recálculo de feriado) */
.rot-flutuante{position:fixed;right:18px;bottom:18px;z-index:9000;width:min(420px,calc(100vw - 32px));background:var(--surface,#fff);border:1px solid var(--border);border-radius:12px;padding:12px 14px;box-shadow:0 8px 30px rgba(0,0,0,.18)}
/* ponto diário */
.pd-barra{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px}
.pd-nav{display:flex;gap:4px;align-items:center}.pd-nav input{flex:1;min-width:0}
.pd-lote{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:12px 0;padding:8px 10px;border:1px solid var(--border);border-radius:10px}
.pd-lote [data-nsel]{color:var(--text-muted);font-size:13px;margin-right:auto}
.pd-resumo{font-size:13.5px;margin-bottom:8px}
.pd-tab{border:1px solid var(--border);border-radius:10px;overflow:auto}
.pd-tab table{width:100%;border-collapse:collapse;font-size:13px}
.pd-tab th{text-align:left;padding:8px 10px;color:var(--text-muted);font-weight:600;white-space:nowrap;position:sticky;top:0;background:var(--surface,#fff)}
.pd-tab td{padding:7px 10px;border-top:1px solid var(--border);vertical-align:middle}
.pd-tab td small{display:block;color:var(--text-muted);font-size:11.5px}
.pd-tab tr.pend td{background:rgba(239,68,68,.05)}
.pd-bat{min-width:260px}
.pd-chip{border:1px solid var(--border);background:var(--surface,#fff);border-radius:999px;padding:3px 9px;margin:2px;font:600 12.5px inherit;cursor:pointer;color:var(--text)}
.pd-chip sup{font-size:9px;margin-left:1px}
.pd-chip.t-I{border-color:#02CCCB;color:#0b8f8e}.pd-chip.t-D{text-decoration:line-through;opacity:.55}.pd-chip.t-F{border-style:dashed;color:#d97706}
.pd-inc{width:84px;height:28px;border:1px dashed var(--border);border-radius:999px;padding:0 10px;font-size:12.5px;margin:2px;background:transparent;color:var(--text)}
.pd-ev{max-width:340px}.pd-evt{display:inline-block;margin:2px;padding:2px 8px;border-radius:6px;background:rgba(2,204,203,.09);font-size:12px}
.pd-evt.o-abono{background:rgba(13,148,136,.16)}.pd-evt.o-lancamento{background:rgba(245,158,11,.14)}
.pd-erro{color:var(--red)}
/* programação de abonos */
.pa-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media (max-width:900px){.pa-col{grid-template-columns:1fr}}
.pa-datas{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px;max-height:220px;overflow:auto}
.pa-chip{display:inline-flex;align-items:center;gap:4px;padding:3px 4px 3px 10px;border-radius:999px;border:1px solid var(--border);font-size:12.5px}
.pa-chip.passou{background:rgba(245,158,11,.10)}.pa-chip button{border:none;background:none;cursor:pointer;font-size:15px;color:var(--text-muted);padding:0 6px}
.pa-pes{display:grid;gap:4px;max-height:320px;overflow:auto;margin-top:8px;border:1px solid var(--border);border-radius:8px;padding:8px}
/* barra lateral recolhível (seta no topo; recolhida = só ícones) */
.sidebar{transition:width .18s ease}
.main-content{transition:margin-left .18s ease,max-width .18s ease}
.sidebar .side-toggle{justify-content:flex-end;gap:6px;color:var(--text-muted);font-size:12px;margin-bottom:6px;padding:6px 10px}
.sidebar .side-toggle span{display:none}
.sidebar .side-toggle i{color:var(--text-muted)}
body.menu-mini .sidebar{width:64px;padding:12px 8px;overflow-x:hidden}
body.menu-mini .sidebar h4{display:none}
body.menu-mini .sidebar .side-group{margin-bottom:10px;padding-bottom:8px;border-bottom:1px solid var(--border)}
body.menu-mini .sidebar button{font-size:0;justify-content:center;padding:9px 0;gap:0}
body.menu-mini .sidebar button i{font-size:18px}
body.menu-mini .main-content{margin-left:94px;max-width:calc(100vw - 114px)}
/* ===== celular / tablet (até 1024 px): menu de cima só com ícones (rola para o lado) e barra lateral só com ícones ===== */
@media (max-width:1024px){
  .app-header{padding:0 10px;gap:8px}
  #brand-nome,#user-name,#status{display:none!important}
  .app-logo{min-width:0!important;width:auto!important;flex-shrink:0}
  .app-nav{display:flex!important;flex:1;min-width:0;overflow-x:auto;scrollbar-width:none;gap:4px}
  .app-nav::-webkit-scrollbar{display:none}
  .app-nav button,.app-nav .nav-registrar{font-size:0!important;padding:8px 10px!important;flex-shrink:0;margin-left:0!important}
  .app-nav button i{font-size:18px!important}
  .sidebar{display:block!important;transform:none!important;top:68px;left:6px;bottom:6px;width:52px;padding:8px 5px;overflow-x:hidden;z-index:60;transition:width .18s ease}
  .sidebar h4{display:none}
  .sidebar .side-group{margin-bottom:8px;padding-bottom:6px;border-bottom:1px solid var(--border)}
  .sidebar button{font-size:0!important;justify-content:center!important;padding:9px 0!important;gap:0!important}
  .sidebar button i{font-size:18px}
  .main-content{margin-left:62px!important;max-width:calc(100vw - 62px)!important;padding:10px 10px 24px!important}
  body.menu-aberto .sidebar{width:236px;padding:10px 8px;box-shadow:0 12px 40px rgba(15,22,36,.35)}
  body.menu-aberto .sidebar h4{display:block}
  body.menu-aberto .sidebar .side-group{border-bottom:0}
  body.menu-aberto .sidebar button{font-size:13px!important;justify-content:flex-start!important;padding:9px 12px!important;gap:10px!important}
  body.menu-aberto .sidebar .side-toggle{justify-content:flex-end!important}
}
/* cadastro de pessoa: ocupa toda a área (também com a barra recolhida / celular), voltar azul, setas e busca no topo */
body.menu-mini #modal-novo.cf-pw{inset:60px 0 0 94px}
@media (max-width:1024px){ #modal-novo.cf-pw{inset:60px 0 0 62px!important} #modal-novo.cf-pw .box{padding:10px 10px 18px} }
#modal-novo.cf-pw .cf-voltar{background:var(--teal,#1fc3a4);color:#fff;border-radius:10px;width:36px;height:36px;font-size:19px;flex-shrink:0;box-shadow:0 2px 8px rgba(31,195,164,.35)}
#modal-novo.cf-pw .cf-voltar:hover{background:#19ad92}
#modal-novo.cf-pw .cf-nav{display:flex;gap:4px;flex-shrink:0}
#modal-novo.cf-pw .cf-nav button{width:32px;height:32px;border:1px solid #d6dde6;border-radius:8px;background:#fff;color:#1e2a44;cursor:pointer;display:grid;place-items:center;font-size:17px}
#modal-novo.cf-pw .cf-nav button:hover:not(:disabled){border-color:#1fc3a4;color:#0f766e}
#modal-novo.cf-pw .cf-nav button:disabled{opacity:.35;cursor:default}
#modal-novo.cf-pw .cf-busca{position:relative;flex:0 1 300px;min-width:150px}
#modal-novo.cf-pw .cf-busca>i{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:#94a3b8;font-size:16px}
#modal-novo.cf-pw .cf-busca input{width:100%;height:36px;border:1px solid #d6dde6;border-radius:999px;padding:0 14px 0 34px;font:inherit;font-size:13px;background:#fff}
#modal-novo.cf-pw .cf-busca input:focus{outline:0;border-color:#1fc3a4;box-shadow:0 0 0 3px rgba(31,195,164,.15)}
#modal-novo.cf-pw .cf-sug{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:20;background:#fff;border:1px solid #d6dde6;border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.16);padding:6px;max-height:340px;overflow:auto}
#modal-novo.cf-pw .cf-sug button{display:block;width:100%;text-align:left;border:0;background:none;padding:8px 10px;border-radius:8px;cursor:pointer;font:inherit}
#modal-novo.cf-pw .cf-sug button:hover{background:#eef7f5}
#modal-novo.cf-pw .cf-sug b{display:block;font-size:13px;color:#1e2a44}
#modal-novo.cf-pw .cf-sug small{font-size:11.5px;color:#94a3b8}
#modal-novo.cf-pw .cf-sug .vazio{padding:10px;color:#94a3b8;font-size:12.5px}
@media (max-width:700px){ #modal-novo.cf-pw .cf-topo{flex-wrap:wrap} #modal-novo.cf-pw .cf-busca{order:9;flex:1 1 100%} #modal-novo.cf-pw .cf-tudo{display:none} }
/* todos os botões de voltar / lista no mesmo verde-água da seleção do menu superior */
.cad-head .voltar,.view [data-voltar],.view [data-pw-voltar],.view [data-sair],#modal-novo.cf-pw .cf-voltar{background:var(--teal,#1fc3a4)!important;color:#fff!important;border-color:var(--teal,#1fc3a4)!important;box-shadow:0 2px 8px rgba(31,195,164,.35)}
.cad-head .voltar i,.view [data-voltar] i,.view [data-pw-voltar] i,.view [data-sair] i{color:#fff!important}
.cad-head .voltar:hover,.view [data-voltar]:hover,.view [data-pw-voltar]:hover,.view [data-sair]:hover,#modal-novo.cf-pw .cf-voltar:hover{background:#19ad92!important;border-color:#19ad92!important}
/* tratamento: ver / editar o horário do dia (abre por cima) */
.tr-hor-ver{border:0;background:rgba(31,195,164,.12);color:#0f766e;width:22px;height:22px;border-radius:6px;margin-left:6px;cursor:pointer;display:inline-grid;place-items:center;font-size:13px;vertical-align:middle}
.tr-hor-ver:hover{background:#1fc3a4;color:#fff}
.tr-hor-link{border:0;background:none;color:#0f766e;cursor:pointer;font:inherit;font-size:12px;font-weight:600;padding:0 4px}
.tr-hor-link:hover{text-decoration:underline}
/* janela de cadastro por cima (atalho): a margem interna conta dentro da largura (não corta à direita) */
.cad-popup-caixa{box-sizing:border-box;max-width:100%}
.cad-popup-caixa .cad-sec{max-width:100%;box-sizing:border-box}
/* horário: opções (compensa atraso, flexível único) numa linha limpa */
.hor-opcao .ck{display:flex;align-items:center;gap:10px;padding:8px 12px;border:1px solid var(--border);border-radius:10px;background:#fff;width:fit-content;max-width:100%}
.hor-opcao .ck input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px;margin:0;accent-color:#1fc3a4;appearance:auto;-webkit-appearance:checkbox}
.hor-opcao .ck input[type=checkbox]::after{content:none!important}
.hor-opcao .ck input:disabled+span{opacity:.5}
.hor-opcao .ck b{font-size:13px;color:#1e2a44}
.hor-opcao .ck small{font-size:12px}
/* ===================== EPI / MATERIAIS ===================== */
.epi-foto{width:54px;height:54px;border-radius:12px;background:#eef7f5;color:#0f766e;display:inline-grid;place-items:center;font-size:24px;overflow:hidden;flex-shrink:0;border:1px solid #d6efe9}
.epi-foto.pq{width:40px;height:40px;font-size:18px;border-radius:9px}
.epi-foto img{width:100%;height:100%;object-fit:contain;background:#fff}
.epi-busca-pessoa{position:relative;display:flex;align-items:center;gap:10px;padding:14px 18px}
.epi-busca-pessoa>i{font-size:22px;color:#1fc3a4}
.epi-busca-pessoa input{flex:1;height:48px;border:1px solid #d6dde6;border-radius:999px;padding:0 20px;font:inherit;font-size:16px}
.epi-busca-pessoa input:focus{outline:0;border-color:#1fc3a4;box-shadow:0 0 0 3px rgba(31,195,164,.15)}
.epi-sug{position:absolute;left:12px;right:12px;top:calc(100% - 4px);z-index:30;background:#fff;border:1px solid #d6dde6;border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.16);padding:6px;max-height:360px;overflow:auto}
.epi-sug button{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:0;background:none;padding:9px 10px;border-radius:8px;cursor:pointer;font:inherit}
.epi-sug button:hover{background:#eef7f5}.epi-sug b{display:block;font-size:13.5px;color:#1e2a44}.epi-sug small{font-size:12px;color:#94a3b8}.epi-sug .vazio{padding:10px;color:#94a3b8}
.epi-pessoa-cab{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:14px}
.epi-pessoa-cab h3{margin:0;font-size:18px;color:#1e2a44}.epi-pessoa-cab small{display:block;color:#64748b;margin:2px 0 6px}
.epi-av{width:64px;height:64px;border-radius:50%;overflow:hidden;background:#eef7f5;display:grid;place-items:center;font-size:28px;color:#0f766e;box-shadow:0 0 0 3px #1fc3a4}
.epi-av img{width:100%;height:100%;object-fit:cover}
.epi-modos{margin-left:auto;display:flex;gap:6px;background:#f1f5f9;padding:4px;border-radius:999px}
.epi-modos button{border:0;background:none;padding:8px 16px;border-radius:999px;font:inherit;font-weight:600;font-size:13px;color:#475569;cursor:pointer}
.epi-modos button.on{background:#1fc3a4;color:#fff;box-shadow:0 2px 8px rgba(31,195,164,.35)}
.epi-itens{display:grid;gap:8px}
.epi-item{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;background:#fff;cursor:pointer}
.epi-item:has(input[type=checkbox]:checked){border-color:#1fc3a4;background:#f3fcfa}
.epi-item.vencida{border-left:4px solid #ef4444}
.epi-item input[type=checkbox]{width:22px;height:22px;accent-color:#1fc3a4;flex-shrink:0;appearance:auto;-webkit-appearance:checkbox}
.epi-item input[type=checkbox]::after{content:none!important}
.epi-item-tx{flex:1;min-width:0}.epi-item-tx b{display:block;font-size:14px;color:#1e2a44}.epi-item-tx small{color:#64748b;font-size:12px}
.epi-qtd{width:70px;height:38px;border:1px solid #d6dde6;border-radius:10px;text-align:center;font:inherit;font-size:15px}
.epi-item select{height:38px;border:1px solid #d6dde6;border-radius:10px;font:inherit;font-size:12.5px;max-width:220px}
.epi-add{position:relative;display:flex;align-items:center;gap:8px;margin-top:10px;padding:8px 12px;border:1px dashed #cbd5e1;border-radius:12px}
.epi-add input{flex:1;border:0;outline:0;font:inherit;font-size:13.5px;background:transparent}
.epi-add .epi-sug{left:0;right:0;top:100%}
.epi-rodape{display:flex;align-items:flex-end;gap:12px;flex-wrap:wrap;margin-top:16px;padding-top:14px;border-top:1px solid #e2e8f0}
.epi-rodape .f{min-width:200px}
.epi-grande{margin-left:auto;height:52px!important;padding:0 26px!important;font-size:16px!important;border-radius:999px!important}
.epi-cam .epi-cam-msg{position:absolute;left:0;right:0;bottom:10px;text-align:center;color:#fff;font-size:13px;text-shadow:0 1px 3px rgba(0,0,0,.7)}
.epi-cam{position:relative;background:#0f1624;border-radius:14px;overflow:hidden;aspect-ratio:4/3}
.epi-cam video{width:100%;height:100%;object-fit:cover}
.epi-cam-passos{display:flex;gap:8px;margin-bottom:10px}.epi-cam-passos span{padding:5px 12px;border-radius:999px;background:#f1f5f9;font-size:12.5px;color:#64748b}
.epi-cam-passos span.on{background:#1fc3a4;color:#fff}
.epi-cam-fotos{display:flex;gap:10px;margin-top:10px}.epi-cam-fotos>div{width:120px}.epi-cam-fotos img{width:120px;height:90px;object-fit:cover;border-radius:8px}
.epi-cam-fotos small{display:block;font-size:11px;color:#64748b}
.epi-ok{text-align:center}.epi-ok i{font-size:56px;color:#1fc3a4}.epi-ok p{font-size:14px}
.epi-mat-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:14px}
@media (max-width:1000px){.epi-mat-grid{grid-template-columns:1fr}}
.epi-foto-box{display:flex;flex-direction:column;gap:10px}
.epi-foto-grande{height:220px;border-radius:12px;background:#f8fafc;border:1px solid #e2e8f0;display:flex;flex-direction:column;align-items:center;justify-content:center;color:#94a3b8;font-size:40px;overflow:hidden}
.epi-foto-grande small{font-size:12px}.epi-foto-grande span{width:100%;height:100%}.epi-foto-grande img{width:100%;height:100%;object-fit:contain}
.epi-drop{border:2px dashed #a9e6da;border-radius:12px;padding:12px;font-size:12.5px;color:#475569;background:#f6fdfb;display:grid;gap:8px}
.epi-drop.sobre{background:#e8f8f4;border-color:#1fc3a4}
.epi-drop-l{display:flex;gap:6px}.epi-drop-l input{flex:1;height:34px;border:1px solid #d6dde6;border-radius:8px;padding:0 10px;font:inherit;font-size:12px}
.epi-foto-bts{display:flex;gap:8px;flex-wrap:wrap}.epi-foto-bts label{cursor:pointer}
.epi-ca-card{border:1px solid #b5ece2;background:#f6fdfb;border-radius:12px;padding:10px 12px;display:grid;gap:4px}
.epi-ca-card.venc{border-color:#fecaca;background:#fef2f2}.epi-ca-card b{color:#1e2a44}.epi-ca-card small{font-size:12px}
.epi-pl{display:flex;align-items:center;gap:10px;padding:8px 0;border-bottom:1px solid #f1f5f9;flex-wrap:wrap}
.epi-pl b{flex:1;min-width:160px;font-size:13px;color:#1e2a44}.epi-pl input{width:90px;height:34px;border:1px solid #d6dde6;border-radius:8px;padding:0 8px;font:inherit}
.epi-pl label{font-size:12px;color:#64748b;display:flex;align-items:center;gap:6px}
.epi-cargos{display:grid;gap:2px;max-height:420px;overflow:auto}
.epi-lanc{max-height:50vh;overflow:auto;margin:10px 0}
.epi-trans-pessoa{position:relative}.epi-trans-pessoa .epi-sug{left:0;right:0;top:100%}
.epi-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:10px;margin-bottom:14px}
.epi-card{border:1px solid #e2e8f0;background:#fff;border-radius:14px;padding:14px;text-align:left;cursor:pointer;font:inherit;display:flex;flex-direction:column;gap:4px}
.epi-card b{font-size:26px;color:#1e2a44;font-variant-numeric:tabular-nums}.epi-card span{font-size:12px;color:#64748b}
.epi-card.vermelho{border-color:#fecaca;background:#fef2f2}.epi-card.vermelho b{color:#dc2626}
.epi-card.laranja{border-color:#fde68a;background:#fffbeb}.epi-card.laranja b{color:#d97706}
.epi-card.azul{border-color:#b5ece2;background:#f3fcfa}.epi-card.azul b{color:#0f766e}
.epi-link{cursor:pointer}.epi-link:hover{background:#f8fafc}
.epi-caepi{display:block;margin-top:10px}
.data-table .neg,.epi-card .neg,b.neg{color:#dc2626}.data-table .pos{color:#059669}
@media (max-width:700px){.epi-modos{margin-left:0;width:100%;justify-content:space-between}.epi-item{flex-wrap:wrap}.epi-grande{width:100%;margin-left:0}}
.epi-pend{border:1px solid #fde68a;background:#fffbeb;border-radius:12px;padding:10px 12px;margin-bottom:12px;display:grid;gap:8px}
.epi-pend>b{color:#92400e;font-size:13.5px}
.epi-pend-l{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.epi-pend-l>span{flex:1;min-width:200px;font-size:13px}.epi-pend-l small{display:block;color:#94a3b8;font-size:11.5px}
.epi-conf{display:grid;gap:10px}
.epi-conf-op{display:flex;align-items:center;gap:12px;padding:12px 14px;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer}
.epi-conf-op:has(input:checked){border-color:#1fc3a4;background:#f3fcfa}
.epi-conf-op input{width:18px;height:18px;accent-color:#1fc3a4;appearance:auto;-webkit-appearance:radio}
.epi-conf-op input::after{content:none!important}
.epi-conf-op>i{font-size:26px;color:#0f766e}.epi-conf-op b{display:block;color:#1e2a44}.epi-conf-op small{color:#64748b;font-size:12px}
/* cadastro de pessoa: marcação gestor de materiais (EPI) */
#modal-novo .epi-gestor-ck{grid-column:1/-1;margin-top:10px;padding:10px 12px;border:1px dashed #a9e6da;border-radius:10px;background:#f6fdfb}
#modal-novo .epi-gestor-ck .ck{display:flex;align-items:center;gap:10px}
#modal-novo .epi-gestor-ck input[type=checkbox]{width:18px!important;height:18px!important;min-width:18px;appearance:auto;-webkit-appearance:checkbox;accent-color:#1fc3a4}
#modal-novo .epi-gestor-ck input[type=checkbox]::after{content:none!important}
#modal-novo .epi-gestor-ck b{color:#1e2a44}

/* EPI > Movimentos: filtros e baixar termos em lote */
.epi-filtros{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-bottom:12px}
.epi-filtros .f{flex:1 1 180px;min-width:150px}.epi-filtros .f.curto{flex:0 1 160px}
.epi-filtros .acoes{display:flex;gap:6px}
.epi-lote{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;margin-bottom:10px;border-radius:10px;background:#f6fdfb;border:1px solid #d6efe9;font-size:13px;color:#475569}
.epi-lote-bts{display:flex;gap:8px;flex-wrap:wrap}
.epi-lote .btn:disabled{opacity:.45;cursor:not-allowed}

/* câmera da entrega de EPI: câmera da frente como espelho (igual ao ponto); a foto salva não é espelhada */
.epi-cam video.espelho{transform:scaleX(-1)}

/* EPI: quadro de assinatura do termo */
.epi-ass{position:relative;height:220px;border:2px dashed #a9e6da;border-radius:14px;background:#fff;touch-action:none}
.epi-ass canvas{position:absolute;inset:0;width:100%;height:100%;cursor:crosshair;touch-action:none}
.epi-ass .lin{position:absolute;left:24px;right:24px;bottom:46px;border-top:1.5px solid #94a3b8;pointer-events:none}
.epi-ass small{position:absolute;left:24px;bottom:22px;color:#94a3b8;font-size:12px;pointer-events:none}

/* rodapé da moldura: a lista some na borda de baixo da moldura branca (não passa por cima da faixa escura) */
.app-body::after{content:"";position:fixed;left:0;right:0;bottom:0;height:10px;background:var(--navy,#1e2a44);z-index:30;pointer-events:none}
.main-content{padding-bottom:40px}

/* EPI: botão de download de relatório (Excel / PDF) */
.btn.epi-baixar{width:40px;padding:0;justify-content:center}
.btn.epi-baixar i{font-size:18px}
.epi-baixar-menu{position:fixed;z-index:9000;background:#fff;border:1px solid var(--border,#e5e9f0);border-radius:12px;box-shadow:0 12px 32px rgba(15,23,42,.16);padding:6px;min-width:230px}
.epi-baixar-menu small{display:block;padding:6px 10px 4px;color:#64748b;font-size:11px;text-transform:uppercase;letter-spacing:.05em}
.epi-baixar-menu button{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:0;background:none;border-radius:8px;cursor:pointer;font:inherit;font-size:13.5px;color:var(--text,#1e293b);text-align:left}
.epi-baixar-menu button:hover{background:#f1f5f9}.epi-baixar-menu button i{font-size:18px;color:#1fc3a4}

/* menu de cima: nomes em uma linha só ("Materiais e EPIs", "API OK"); em telas menores aperta o espaçamento */
.app-nav button,#status{white-space:nowrap}
@media (max-width:1560px){ .app-nav{gap:2px} .app-nav button{padding:7px 9px;font-size:12px} .app-nav .nav-registrar{margin-left:6px;padding:7px 12px} }
@media (max-width:1380px){ .app-nav button i{display:none} .app-nav .nav-registrar i{display:inline} }

/* ===== ASSISTENTE (chat com IA local) ===== */
.ia-bt{position:fixed;left:24px;bottom:24px;z-index:55;display:flex;align-items:center;gap:8px;padding:11px 16px;border:0;border-radius:999px;cursor:pointer;
  background:linear-gradient(135deg,#1e2a44,#26334f);color:#fff;font:inherit;font-size:13px;font-weight:700;box-shadow:0 10px 26px rgba(15,23,42,.3)}
.ia-bt i{font-size:18px;color:#1fc3a4}.ia-bt.aberto{background:#1fc3a4;color:#0f1624}.ia-bt.aberto i{color:#0f1624}
.ia-painel{position:fixed;left:24px;bottom:80px;z-index:9100;width:min(420px,calc(100vw - 32px));height:min(620px,calc(100vh - 120px));display:flex;flex-direction:column;
  background:#fff;border:1px solid #d6efe9;border-radius:16px;box-shadow:0 20px 50px rgba(15,23,42,.25);overflow:hidden}
.ia-painel[hidden]{display:none}
.ia-painel header{display:flex;align-items:center;gap:6px;padding:12px 14px;background:#1e2a44;color:#fff;border-bottom:3px solid #1fc3a4}
.ia-painel header div{flex:1}.ia-painel header b{display:flex;align-items:center;gap:6px;font-size:14px}.ia-painel header b i{color:#1fc3a4}
.ia-painel header small{display:block;font-size:11px;color:#a9b6cc;margin-top:2px}
.ia-painel header button{border:0;background:rgba(255,255,255,.08);color:#fff;width:32px;height:32px;border-radius:8px;cursor:pointer;font-size:16px}
.ia-msgs{flex:1;overflow-y:auto;padding:14px;background:#f6f8fb;display:flex;flex-direction:column;gap:10px}
.ia-m{max-width:88%;padding:10px 12px;border-radius:14px;font-size:13.5px;line-height:1.5;word-wrap:break-word}
.ia-m.eu{align-self:flex-end;background:#1fc3a4;color:#0f1624;border-bottom-right-radius:4px}
.ia-m.ia{align-self:flex-start;background:#fff;border:1px solid #e3e8ef;border-bottom-left-radius:4px;color:#1e293b}
.ia-m code{background:#eef7f5;padding:1px 5px;border-radius:4px;font-size:12px}
.ia-li{display:flex;gap:6px;margin:2px 0}.ia-li span{color:#0f766e;font-weight:700;min-width:16px}
.ia-acao{align-self:stretch;border-radius:12px;padding:10px 12px;font-size:13px}
.ia-acao.nav{background:#e8f8f4;color:#0f766e;border:1px solid #b7eadf}
.ia-acao.conf{background:#fff7e6;border:1px solid #f5c26b}.ia-acao.conf b{display:flex;align-items:center;gap:6px;color:#92400e}
.ia-acao.conf p{margin:6px 0}.ia-acao.conf details{font-size:11.5px;color:#64748b}.ia-acao.conf pre{white-space:pre-wrap;max-height:140px;overflow:auto;background:#fff;padding:6px;border-radius:6px}
.ia-acao.feita{background:#ecfdf5;border-color:#a7f3d0}.ia-acao.erro{background:#fef2f2;border-color:#fecaca}.ia-acao.cancelada{opacity:.7}
.ia-acao-bts{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}
.ia-vazio{text-align:center;color:#64748b;padding:24px 10px}.ia-vazio i{font-size:34px;color:#1fc3a4}.ia-vazio p{font-size:13px;line-height:1.5}
.ia-pensando{display:flex;gap:4px;padding:12px 14px}.ia-pensando span{width:7px;height:7px;border-radius:50%;background:#94a3b8;animation:iaP 1s infinite}
.ia-pensando span:nth-child(2){animation-delay:.15s}.ia-pensando span:nth-child(3){animation-delay:.3s}
@keyframes iaP{0%,80%,100%{opacity:.3;transform:translateY(0)}40%{opacity:1;transform:translateY(-3px)}}
.ia-sug{display:flex;flex-wrap:wrap;gap:6px;padding:0 14px 8px;background:#f6f8fb}
.ia-sug button{border:1px solid #b7eadf;background:#fff;color:#0f766e;border-radius:999px;padding:5px 10px;font:inherit;font-size:12px;cursor:pointer}
.ia-painel form{display:flex;gap:8px;padding:10px;border-top:1px solid #e3e8ef;background:#fff}
.ia-painel textarea{flex:1;resize:none;border:1px solid #d6dde6;border-radius:12px;padding:9px 12px;font:inherit;font-size:13.5px;max-height:120px}
.ia-painel textarea:focus{outline:0;border-color:#1fc3a4}
.ia-painel form button{width:42px;border:0;border-radius:12px;background:#1e2a44;color:#fff;font-size:17px;cursor:pointer}
@media (max-width:700px){ .ia-bt span{display:none} .ia-bt{left:14px;bottom:14px;padding:12px} .ia-painel{left:8px;bottom:70px} }
.ia-li div{flex:1;min-width:0}
.ia-pensando small{margin-left:8px;color:#94a3b8;font-size:11.5px;align-self:center}
