/* ===== Tratamento de ponto ===== */
.tr-topo{background:#fff;border:1px solid var(--border);border-radius:12px;padding:12px 16px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px}
.tr-topo .titulo{font-weight:800;font-size:15px}
.tr-avatar{width:46px;height:46px;border-radius:10px;background:var(--panel-2);display:flex;align-items:center;justify-content:center;color:var(--text-muted);font-size:24px;overflow:hidden;flex-shrink:0}
.tr-avatar img{width:100%;height:100%;object-fit:cover}
.tr-nav{border:none;background:none;font-size:20px;color:var(--text-muted);cursor:pointer;padding:4px 6px;border-radius:8px}
.tr-nav:hover:not(:disabled){background:var(--panel-2);color:var(--orange)}
.tr-nav:disabled{opacity:.3;cursor:not-allowed}
.tr-nome{min-width:220px}
.tr-nome b{display:block;font-size:14px}
.tr-nome small{color:var(--text-muted);font-size:11.5px}
.tr-topo .periodo{display:flex;gap:8px;align-items:flex-end;margin-left:auto;flex-wrap:wrap}
.tr-topo .periodo .f{min-width:140px}
.tr-topo .periodo input{height:36px}

.tr-dash{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:10px;margin-bottom:12px}
.tr-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:10px 12px}
.tr-card span{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tr-card b{font-size:18px;font-weight:800}
.tr-card.vermelho b{color:var(--red)}.tr-card.verde b{color:var(--green)}.tr-card.azul b{color:var(--blue)}
.tr-card.alerta{border-color:#fde68a;background:#fffbeb}

.tr-acoes{background:#fff;border:1px solid var(--border);border-radius:12px;padding:10px 12px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center;margin-bottom:12px}
.tr-acoes button{border:1px solid var(--border-strong);background:#fff;border-radius:999px;padding:7px 14px;font-family:inherit;font-size:12.5px;font-weight:600;cursor:pointer;display:flex;align-items:center;gap:6px;color:var(--text)}
.tr-acoes button:hover:not(:disabled){border-color:var(--orange);color:var(--orange)}
.tr-acoes button:disabled{opacity:.4;cursor:not-allowed}
.tr-acoes button.escuro{background:var(--navy);color:#fff;border-color:var(--navy)}
.tr-acoes button.escuro:hover:not(:disabled){background:var(--navy-hover);color:#fff}
.tr-acoes button.primario{background:var(--orange);color:#fff;border-color:var(--orange)}
.tr-acoes .sel-info{font-size:12px;color:var(--text-muted);align-self:center;margin-right:6px}

.tr-grade{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:auto;max-height:calc(100vh - 330px)}
.tr-grade table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px}
.tr-grade th{position:sticky;top:0;background:#f8fafc;z-index:2;font-size:11px;text-transform:uppercase;color:var(--text-muted);font-weight:700;padding:9px 8px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}
.tr-grade th.esq,.tr-grade td.esq{text-align:left}
.tr-grade td{padding:7px 8px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}
.tr-grade tr.sel td{background:#eff6ff}
.tr-grade tr:hover td{background:#f8fafc}
.tr-grade tr.sel:hover td{background:#e0ecff}
.tr-grade td .dsem{font-weight:600}
.tr-grade td small{display:block;color:var(--text-muted);font-size:11px}
.tr-grade input[type=checkbox]{width:16px;height:16px;accent-color:var(--orange);cursor:pointer}
.tr-st{font-size:18px}
.tr-st.ok{color:var(--green)}.tr-st.alerta{color:var(--warn)}.tr-st.falta{color:var(--red)}.tr-st.folga{color:#ec4899}
.tr-st.feriado{color:#22c55e}.tr-st.ferias{color:var(--blue)}.tr-st.afastamento{color:#a855f7}.tr-st.desligado{color:#64748b}.tr-st.nao_calculado{color:#94a3b8}
.tr-det{border:none;background:none;cursor:pointer;color:var(--text-muted);font-size:16px}
.tr-det:hover{color:var(--orange)}
.tr-link{color:var(--orange);cursor:pointer;font-weight:600;text-decoration:none}
.tr-link:hover{text-decoration:underline}

.tr-marca{display:inline-block;min-width:44px;padding:3px 6px;border-radius:6px;cursor:pointer;font-variant-numeric:tabular-nums}
.tr-marca:hover{background:var(--panel-2)}
.tr-marca.I{color:#1d4ed8;font-weight:700}
.tr-marca.F{color:var(--red);font-weight:800}
.tr-marca.D{color:#94a3b8;text-decoration:line-through}
.tr-marca sup{font-size:9px;color:#b45309;margin-left:1px}
.tr-vazio{color:#cbd5e1;cursor:pointer;display:inline-block;min-width:44px;padding:3px 6px;border-radius:6px}
.tr-vazio:hover{background:#eff6ff;color:var(--orange)}
.tr-faixa{display:block;border-radius:999px;color:#fff;font-weight:700;font-size:12px;padding:5px 10px;text-align:center}
.tr-faixa.folga{background:#ec4899}.tr-faixa.falta{background:#ef4444}.tr-faixa.feriado{background:#4ade80}
.tr-faixa.ferias{background:#3b82f6}.tr-faixa.afastamento{background:#a855f7}.tr-faixa.desligado{background:#64748b}
.tr-ev{font-variant-numeric:tabular-nums}
.tr-inline{width:62px;height:28px;border:1px solid var(--orange);border-radius:6px;text-align:center;font-family:inherit;font-size:13px;outline:none;box-shadow:0 0 0 3px rgba(37,99,235,.15)}
tr.tr-detalhe td{background:#fafbfc!important;text-align:left;padding:10px 16px;white-space:normal}
.tr-detalhe .grupo{display:inline-block;vertical-align:top;margin-right:28px;min-width:220px}
.tr-detalhe h5{margin:0 0 6px;font-size:11px;text-transform:uppercase;color:var(--text-muted)}
.tr-detalhe li{font-size:12.5px;margin:2px 0}

.tr-menu{position:fixed;z-index:1070;background:#fff;border:1px solid var(--border);border-radius:10px;box-shadow:0 10px 30px rgba(15,23,42,.18);padding:6px;min-width:190px}
.tr-menu button{display:flex;width:100%;gap:8px;align-items:center;border:none;background:none;padding:8px 10px;border-radius:7px;font-family:inherit;font-size:13px;cursor:pointer;text-align:left;color:var(--text)}
.tr-menu button:hover{background:var(--panel-2)}
.tr-menu .cab{font-size:11px;color:var(--text-muted);padding:4px 10px 6px;border-bottom:1px solid var(--border);margin-bottom:4px}

.tr-modal{position:fixed;inset:0;background:rgba(15,23,42,.45);display:none;align-items:center;justify-content:center;z-index:1060}
.tr-modal.aberto{display:flex}
.tr-modal .caixa{background:#fff;border-radius:14px;padding:20px 22px;width:min(520px,94vw);max-height:90vh;overflow:auto;box-shadow:0 20px 50px rgba(0,0,0,.25)}
.tr-modal h3{margin:0 0 4px;font-size:16px}
.tr-modal .sub{color:var(--text-muted);font-size:12.5px;margin:0 0 14px}
.tr-modal .f{margin-bottom:10px}
.tr-modal .botoes{display:flex;gap:8px;justify-content:flex-end;margin-top:14px}
.tr-busca-lista{max-height:50vh;overflow:auto;border:1px solid var(--border);border-radius:8px;margin-top:8px}
.tr-busca-lista div{padding:9px 12px;border-bottom:1px solid var(--border);cursor:pointer;font-size:13px}
.tr-busca-lista div:hover{background:#eff6ff}
.tr-busca-lista small{color:var(--text-muted)}
.tr-aviso-motor{background:#fffbeb;border:1px solid #fde68a;color:#92400e;border-radius:10px;padding:9px 12px;font-size:12.5px;margin-bottom:12px;display:flex;gap:8px;align-items:center}

.tr-marca.S{color:#047857;font-weight:700;border:1.5px dashed #10b981;background:#ecfdf5}
.tr-sugbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:13px}
.tr-sugbar i.ti-bulb{font-size:20px}
.tr-sugbar span{flex:1;min-width:240px}

/* ===== Fechamento de período ===== */
.fp-lista{display:grid;grid-template-columns:repeat(auto-fill,minmax(360px,1fr));gap:14px}
.fp-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:12px}
.fp-card.vencido{border-color:#fcd34d;box-shadow:0 0 0 3px rgba(245,158,11,.12)}
.fp-cab{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.fp-cab small{display:block;color:var(--text-muted);font-size:12px;margin-top:2px}
.fp-periodo{background:var(--panel-2);border-radius:10px;padding:10px 12px}
.fp-periodo span{display:block;font-size:11px;text-transform:uppercase;color:var(--text-muted);font-weight:700}
.fp-periodo b{font-size:17px}.fp-periodo small{display:block;color:var(--text-muted);font-size:12px}
.fp-acoes{display:flex;gap:8px;flex-wrap:wrap}
.fp-prog .barra{height:8px;background:var(--panel-2);border-radius:999px;overflow:hidden}
.fp-prog .barra i{display:block;height:100%;background:var(--orange);transition:width .4s}
.fp-prog small{font-size:12px;color:var(--text-muted)}
.fp-erros{font-size:12px;color:var(--red)}.fp-erros div{margin:3px 0}
.tr-periodo-fechado{background:#fef2f2;border:1px solid #fecaca;color:#991b1b;border-radius:10px;padding:9px 12px;font-size:12.5px;margin-bottom:12px;display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.fp-bh{display:flex;flex-direction:column;gap:6px;border:1px solid var(--border);border-radius:10px;padding:10px 12px;background:var(--panel-header)}.fp-bh small{color:var(--text-muted)}
/* tratamento coletivo */
.col-resumo{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:4px 0 10px}
.col-resumo .chip{border:1px solid var(--border);background:#fff;border-radius:999px;padding:6px 12px;font-size:13px;cursor:pointer;display:inline-flex;gap:6px;align-items:center;color:var(--c,var(--text))}
.col-resumo .chip.on{background:var(--c,#1e293b);color:#fff;border-color:transparent}.col-resumo .chip b{font-weight:800}
.col-info{margin-left:auto;color:var(--text-muted);font-size:13px}
.col-barra{display:flex;gap:8px;flex-wrap:wrap;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;padding:8px 10px;margin-bottom:10px;position:sticky;top:0;z-index:5}
.col-barra [data-nsel]{font-weight:700;font-size:13px;margin-right:6px}
.col-prog{flex:1 1 220px;min-width:180px}.col-prog .barra{height:6px;background:var(--panel-2);border-radius:4px;overflow:hidden}.col-prog .barra i{display:block;height:100%;width:0;background:var(--orange);transition:width .2s}.col-prog small{color:var(--text-muted)}
.col-tab{width:100%;border-collapse:collapse;font-size:13px}
.col-tab th{background:var(--panel-header);text-align:center;padding:8px;border-bottom:1px solid var(--border);position:sticky;top:0}
.col-tab td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:center;white-space:nowrap}
.col-tab .esq{text-align:left}.col-tab small{color:var(--text-muted)}.col-tab .vazio{padding:30px;color:var(--text-muted)}
.col-tab tr:hover td{background:#f8fafc}.col-tab .btn.mini{height:28px;padding:0 8px}
.col-tag{color:var(--c);font-weight:600;display:inline-flex;gap:5px;align-items:center}
.fp-datas{margin:8px 0 4px;max-width:360px}.fp-dica{min-height:22px;font-size:12.5px;color:var(--text-muted)}.fp-dica .aviso{margin:4px 0}
/* edição direta na grade */
.tr-grade td.tr-edit{cursor:pointer;text-decoration:underline dotted;text-underline-offset:3px}
.tr-grade td.tr-edit:hover{background:#eff6ff;color:var(--orange)}
.tr-grade td.tr-diasel{cursor:pointer;user-select:none}.tr-grade td.tr-diasel:hover{background:#eff6ff}
.tr-inline-lg{width:190px !important;text-align:left !important}
.tr-marca{cursor:pointer;user-select:none}
.tr-grade.tr-recarregando{opacity:.55;pointer-events:none;transition:opacity .15s}
.tr-grade tr.tr-flash td{animation:trFlash 1.8s ease-out}
@keyframes trFlash{0%{background:#fde68a}100%{background:transparent}}
.tr-grade td.tr-selcel{cursor:pointer;padding:6px 10px}.tr-grade td.tr-selcel:hover{background:#eff6ff}.tr-grade td.tr-selcel input{width:18px;height:18px;cursor:pointer}

/* ---------- tudo em linha por dia: batidas em pares E/S e eventos em chips ---------- */
.tr-grade th.tr-e,.tr-grade td.tr-e{border-left:1px solid #eef2f7}
.tr-grade th.tr-s,.tr-grade td.tr-s{background-clip:padding-box}
.tr-grade td.tr-evclk{cursor:pointer;color:#1d4ed8;font-weight:700}
.tr-grade td.tr-evclk:hover{background:#eff6ff;text-decoration:underline}
.tr-grade td.tr-outros{white-space:nowrap}
.tr-evchip{display:inline-flex;align-items:center;gap:5px;margin:1px 4px 1px 0;padding:2px 8px 2px 3px;border-radius:999px;background:#eef4ff;border:1px solid #dbe8fd;color:#1e3a8a;font-size:11.5px;cursor:pointer}
.tr-evchip i{font-style:normal;background:#dbeafe;color:#1d4ed8;border-radius:999px;padding:0 6px;font-size:10.5px;font-weight:700}
.tr-evchip b{font-variant-numeric:tabular-nums}
.tr-evchip:hover{background:#dbeafe;border-color:#93c5fd}

/* sugestão: batida repetida que será desconsiderada */
.tr-marca.SD{text-decoration:line-through;color:#b91c1c;background:#fee2e2;border-color:#fecaca}
.tr-sug-ok td:first-child{box-shadow:inset 3px 0 0 #1fc3a4}
.tr-sug-desvio td:first-child{box-shadow:inset 3px 0 0 #f59e0b}

.tr-pin{font-size:10px;text-decoration:none;margin-right:1px;vertical-align:1px}

.tr-faixa.abonado{background:#0d9488}

.tr-aviso-fechado{display:flex;gap:10px;align-items:flex-start;padding:10px 14px;margin:0 0 10px;border-radius:10px;background:#fff7ed;border:1px solid #fed7aa;color:#7c2d12;font-size:13px;line-height:1.45}
.tr-aviso-fechado i{font-size:18px;color:#ea580c;margin-top:1px}
