/* ── Ponto ── */
.btn-novo { display: inline-flex; align-items: center; gap: 6px; justify-content: center; }
.btn-novo .ms { font-size: 18px; }
.ponto-filtros { display: flex; flex-wrap: wrap; align-items: flex-start; gap: 8px; margin: 16px 0 8px; }
.ponto-filtros .tf { width: 150px; }
.ponto-filtros .btn-novo, .ponto-filtros .btn-contorno { height: 56px; }
.ponto-filtros .btn-contorno { margin-left: 8px; }
.ponto-tabela-wrap { border: 1px solid #E0E0E0; border-radius: 8px; overflow-x: auto; background: #fff; }
.ponto-tab { border-collapse: collapse; width: 100%; min-width: 1000px; font-size: 12px; }
.ponto-tab th { background: var(--verde-escuro); color: #fff; font-weight: 400; text-align: left; padding: 8px 6px; white-space: nowrap; }
.ponto-tab th:first-child { border-top-left-radius: 8px; }
.ponto-tab td { padding: 6px; border-bottom: 1px solid #EEE; vertical-align: middle; }
.ponto-tab tr.grupo td { border-top: 3px solid var(--verde-escuro); }
.ponto-tab .p-obs { max-width: 260px; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.ponto-tab .p-ic { width: 46px; text-align: center; padding: 0; }
.p-hora { display: inline-flex; align-items: center; gap: 3px; }
.p-mini { display: inline-grid; place-items: center; width: 22px; height: 22px; border-radius: 50%; }
.p-mini .ms { font-size: 13px; }
button.p-mini:hover { background: rgba(0, 0, 0, .06); }
.p-cartao { background: #fff; border: 1px solid #EEE; border-radius: 10px; padding: 12px; margin-bottom: 8px; display: flex; flex-direction: column; gap: 6px; }
.p-campo { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; }
.p-info { background: #E3F2FD; color: #1565C0; border-radius: 6px; padding: 8px; font-size: 12px; }
.p-foto { width: min(280px, 100%); height: 280px; object-fit: cover; border-radius: 10px; }
.btn-icone { text-decoration: none; }
