/* ============================================================
   ABA PONTO — reaproveita as classes do sistema e das abas Protocolos/Contratos
   ============================================================ */
#view-ponto{background:var(--paper); min-height:0;}
.pt-tabs-bar{display:flex; gap:10px; align-items:center; padding:12px 32px; border-bottom:1px solid var(--line); background:var(--white); overflow-x:auto;}
.pt-cnt:not(:empty){display:inline-block; min-width:18px; margin-left:6px; padding:0 5px; border-radius:9px; background:var(--stamp-red); color:#fff; font-size:10.5px; font-weight:700; text-align:center; line-height:17px;}
#pt-body{flex:1; overflow-y:auto; padding:20px 32px 40px; min-height:0;}
.pt-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:16px; align-items:start; max-width:1100px;}
.pt-grid.cfg{grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);}
.pt-card{background:var(--white); border:1px solid var(--line); border-radius:6px; padding:18px;}
.pt-card h4{margin:0 0 12px; font-family:'Poppins',sans-serif; font-size:14px; color:var(--ink);}
.pt-mudo{font-size:12px; color:var(--gray-blue); font-weight:400;}
.pt-aviso{background:#FBEEDC; color:#8A5A1F; border-radius:4px; padding:8px 12px; font-size:12.5px; margin:8px 0;}
.pt-aviso.bad{background:#F7E6E4; color:var(--stamp-red);}

.pt-bater{text-align:center;}
.pt-data{font-size:13px; color:var(--gray-blue); text-transform:capitalize;}
.pt-relogio{font-family:'Poppins',sans-serif; font-size:52px; font-weight:600; color:var(--ink); letter-spacing:.02em; font-variant-numeric:tabular-nums; margin:4px 0 10px;}
.pt-botao{width:100%; border:0; border-radius:10px; padding:18px; background:var(--ink); color:#fff; font-family:'Inter',sans-serif; font-size:17px; cursor:pointer; box-shadow:0 8px 20px -10px rgba(21,46,110,.6);}
.pt-botao b{font-weight:700;}
.pt-botao:hover:not(:disabled){filter:brightness(1.12);}
.pt-botao:disabled{opacity:.45; cursor:not-allowed;}
.pt-botao:focus-visible{outline:3px solid var(--gold); outline-offset:2px;}
.pt-hoje{display:grid; grid-template-columns:repeat(auto-fit,minmax(110px,1fr)); gap:8px; margin:16px 0 10px;}
.pt-bat{border:1px solid var(--line); border-radius:6px; padding:8px; background:var(--paper); text-align:center;}
.pt-bat span{display:block; font-size:11px; color:var(--gray-blue);}
.pt-bat b{font-family:'Poppins',sans-serif; font-size:18px; color:var(--ink); font-variant-numeric:tabular-nums;}
.pt-bat.aj{border-style:dashed;}
.pt-nums{display:grid; grid-template-columns:repeat(3,1fr); gap:8px;}
.pt-nums div{background:var(--paper); border-radius:6px; padding:10px; text-align:center;}
.pt-nums b{display:block; font-family:'Poppins',sans-serif; font-size:20px; color:var(--ink); font-variant-numeric:tabular-nums;}
.pt-nums span{font-size:11.5px; color:var(--gray-blue);}
.pt-nums .ok b{color:var(--status-done);} .pt-nums .bad b{color:var(--stamp-red);}
.pt-acts{display:flex; gap:6px; flex-wrap:wrap; margin-top:14px;}
.pt-ajl{list-style:none; margin:0; padding:0; display:grid; gap:8px;}
.pt-ajl li{display:grid; grid-template-columns:auto 1fr; gap:10px; align-items:start; font-size:13px;}
.pt-st{display:inline-block; font-size:10.5px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; border-radius:9px; padding:2px 8px; white-space:nowrap;}
.pt-st.pendente{background:#FBEEDC; color:#9A5B0E;} .pt-st.aprovado{background:var(--status-done-light); color:var(--status-done);} .pt-st.recusado{background:#F7E6E4; color:var(--stamp-red);}

.pt-comp{text-align:center;}
.pt-ok{width:56px; height:56px; border-radius:50%; background:var(--status-done-light); color:var(--status-done); display:grid; place-items:center; font-size:28px; font-weight:700; margin:4px auto 8px;}
.pt-comp h3{margin:0;}
.pt-comp-hora{font-family:'Poppins',sans-serif; font-size:40px; font-weight:600; color:var(--ink); margin:4px 0;}
.pt-tipos{display:grid; gap:6px;}
.ct-modal select{width:100%; padding:10px 12px; border:1px solid var(--line); border-radius:2px; background:var(--paper); font-family:'Inter',sans-serif; font-size:14px; color:var(--ink);}

.pt-resumo-hoje{display:flex; gap:10px 14px; align-items:center; flex-wrap:wrap; margin-bottom:14px;}
.pt-resumo-hoje .pt-aviso{margin:0;}
.pt-lista{display:flex; flex-direction:column; gap:8px;}
.pt-row{grid-template-columns:minmax(0,1.2fr) 150px minmax(0,1.5fr) auto;}
.pt-row-aj{grid-template-columns:minmax(0,1fr) minmax(0,1.5fr) auto;}
.pt-row .meta.bad{color:var(--stamp-red); font-weight:600;}
.pt-sit{display:inline-flex; align-items:center; gap:6px; font-size:12px; font-weight:600; padding:3px 10px; border-radius:12px; white-space:nowrap;}
.pt-sit::before{content:""; width:7px; height:7px; border-radius:50%; background:currentColor;}
.pt-sit.trab{background:var(--status-done-light); color:var(--status-done);} .pt-sit.int{background:#FBEEDC; color:#9A5B0E;}
.pt-sit.saiu{background:#E4E9F4; color:var(--ink);} .pt-sit.aus{background:var(--paper-dark); color:var(--gray-blue);} .pt-sit.abon{background:#F3E4D0; color:#8A5A1F;}
.pt-bats{display:flex; gap:5px; flex-wrap:wrap;}
.pe-b{display:inline-block; font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12px; background:var(--paper); border:1px solid var(--line); border-radius:4px; padding:1px 6px; margin:1px 3px 1px 0;}
.pe-b.aj{border-style:dashed; border-color:#C9A15E;}

.pt-tab-wrap{overflow-x:auto; background:var(--white); border:1px solid var(--line); border-radius:6px;}
table.pt-mes{width:100%; border-collapse:collapse; font-size:13px;}
table.pt-mes th{text-align:left; font-size:11px; letter-spacing:.05em; text-transform:uppercase; color:var(--gray-blue); padding:10px; border-bottom:1px solid var(--line); white-space:nowrap;}
table.pt-mes td{padding:8px 10px; border-bottom:1px solid var(--line);}
table.pt-mes .n{text-align:right; font-variant-numeric:tabular-nums;} table.pt-mes .neg{color:var(--stamp-red);}
.pt-in{padding:6px 8px; border:1px solid var(--line); border-radius:3px; background:var(--paper); font-family:'Inter',sans-serif; font-size:13px; color:var(--ink); max-width:100%;}
.pt-ips, .pt-fer{list-style:none; margin:0 0 10px; padding:0; display:grid; gap:6px;}
.pt-ips li, .pt-fer li{display:flex; gap:10px; align-items:center; font-size:13px;}
.pt-ips code{flex:1; font-family:ui-monospace,Menlo,Consolas,monospace;}
.pt-fer li span{font-variant-numeric:tabular-nums; color:var(--gray-blue); min-width:80px;}
.pt-fer li .mini-btn{margin-left:auto;}
.pt-dias{display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px;}
.pt-dias .ct-chk{padding:5px 8px;}
.pt-periodos{display:grid; gap:6px; margin-bottom:10px; font-size:13px;}
.pt-periodos .pt-mudo{display:inline-block; width:52px;}
.pt-fer-add{display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px;}
.pt-fer-add #pt-fer-n{flex:1; min-width:160px;}

/* espelho */
.pt-esp-h{display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:flex-start; margin-bottom:12px; padding-right:28px;}
.pt-esp-nav{display:flex; gap:4px; align-items:center;}
.pt-esp-nav input{padding:6px 8px; border:1px solid var(--line); border-radius:3px; font-family:'Inter',sans-serif;}
.pt-esp-tab{overflow-x:auto;}
table.pe-tab{width:100%; border-collapse:collapse; font-size:12.5px;}
table.pe-tab th{text-align:left; font-size:10.5px; letter-spacing:.05em; text-transform:uppercase; color:var(--gray-blue); padding:6px; border-bottom:1px solid var(--line); white-space:nowrap;}
table.pe-tab td{padding:5px 6px; border-bottom:1px solid #EEF1F6; vertical-align:top;}
table.pe-tab .n{text-align:right; font-variant-numeric:tabular-nums; white-space:nowrap;}
table.pe-tab .neg{color:var(--stamp-red);}
table.pe-tab .dt{white-space:nowrap; font-variant-numeric:tabular-nums;} table.pe-tab .dt span{color:var(--gray-blue); font-size:11px;}
table.pe-tab tr.fds td{background:#F7F8FB;}
table.pe-tab tr.falta td.dt{color:var(--stamp-red); font-weight:600;}
table.pe-tab tfoot td{font-weight:700; border-top:2px solid var(--line); border-bottom:0; padding-top:8px;}
table.pe-tab .ob{font-size:11.5px; color:var(--gray-blue);}
.pe-bad{color:var(--stamp-red);} .pe-warn{color:#9A5B0E;} .pe-vazio{color:#B7BFCF;}
.pt-esp-ass{margin-top:14px; display:grid; gap:8px;}
.pe-ass{display:flex; gap:12px; align-items:center; border:1px solid var(--line); border-radius:6px; padding:8px 12px; font-size:12.5px;}
.pe-ass.ok{border-color:var(--status-done); background:#F3FAF5;}
.pe-ass img{height:46px; max-width:140px; object-fit:contain;}
.pe-ass span{color:var(--gray-blue); font-size:11.5px;}
.pe-ass-no{font-size:12.5px; color:var(--gray-blue); margin:0;}
.pt-assinar{margin-top:14px;}

@media (max-width:760px){
  #view-ponto{min-width:0; overflow-x:hidden;}
  .pt-tabs-bar{padding:10px 12px;}
  #pt-body{padding:14px 12px 30px;}
  .pt-grid, .pt-grid.cfg{grid-template-columns:1fr;}
  .pt-relogio{font-size:44px;}
  .pt-row, .pt-row-aj{grid-template-columns:1fr auto;}
  .pt-row .pt-bats{grid-column:1/-1;}
  .pt-row .pr-acts, .pt-row-aj .pr-acts{grid-column:1/-1; justify-content:flex-start;}
  .pt-row-aj > div:nth-child(2){grid-column:1/-1;}
}

.pt-func .pt-in{width:100%; min-width:0;}
.pt-func td:nth-child(3){width:110px;} .pt-func td:nth-child(4){width:150px;}
.pt-func input[type=date]{min-width:130px;}
.pt-card .pt-tab-wrap{border:0;}
.pt-salvo{outline:2px solid var(--status-done) !important; background:var(--status-done-light) !important; transition:background .2s;}
