/* Praxis Dialyse · módulo hospitalar · Ponto v2 (aba hd_ponto, terminal em tela cheia e página /ponto do celular). Prefixo hpt-. */
.hpt { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.hpt-corpo { display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.hpt-abas { max-width: 100%; }
.hpt-h3 { margin: 0 0 8px; font-size: 1rem; display: flex; gap: 8px; align-items: baseline; flex-wrap: wrap; }
.hpt-sep { margin-top: 14px; }
.hpt-nota { margin: 8px 0 0; font-size: .86rem; }
.hpt-cresce { flex: 1 1 auto; }
.hpt-grande { font-size: 1.1rem; padding: 14px 18px; width: 100%; margin-top: 6px; }
.hpt-mes { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 8px; }
.hpt-aviso { background: #fff4dc; border: 1px solid #f1d08a; color: #7a4b00; border-radius: 8px; padding: 8px 10px; margin: 6px 0; font-size: .9rem; }
.hpt-erro-g { color: #b8321f; font-weight: 600; min-height: 1.2em; margin: 4px 0; }
.hpt-kpis { margin: 0 0 10px; grid-template-columns: repeat(auto-fit, minmax(130px, 1fr)); }

/* três passos */
.hpt-tres { list-style: none; counter-reset: hpt; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 10px; }
.hpt-tres li { counter-increment: hpt; display: flex; flex-direction: column; gap: 2px; padding: 10px 12px 10px 46px; position: relative; border: 1px solid var(--linha, #dfe6e4); border-radius: 10px; background: var(--sup, #fff); min-width: 0; }
.hpt-tres li::before { content: counter(hpt); position: absolute; left: 12px; top: 10px; width: 24px; height: 24px; border-radius: 50%; background: var(--pri, #0e3b3c); color: #fff; font-weight: 700; display: flex; align-items: center; justify-content: center; font-size: .85rem; }
.hpt-tres span { font-size: .9rem; color: var(--aco, #56676f); }

/* texto legal */
.hpt-legal { border: 1px solid var(--linha, #dfe6e4); border-radius: 10px; padding: 8px 12px; background: var(--sup, #fff); }
.hpt-legal summary { cursor: pointer; font-weight: 700; }
.hpt-legal p { margin: 8px 0; font-size: .9rem; }

/* listas de marcações */
.hpt-lista { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hpt-marc { display: flex; align-items: center; gap: 10px; border: 1px solid var(--linha, #dfe6e4); border-left: 4px solid var(--ok, #157347); border-radius: 8px; padding: 8px 10px; min-width: 0; flex-wrap: wrap; }
.hpt-marc-at { border-left-color: #d79a1c; background: #fffaf0; }
.hpt-marc-h { display: flex; flex-direction: column; font-variant-numeric: tabular-nums; min-width: 64px; }
.hpt-marc-h b { font-size: 1.05rem; }
.hpt-marc-q { display: flex; flex-direction: column; gap: 2px; flex: 1 1 200px; min-width: 0; overflow-wrap: anywhere; }
.hpt-marc-pills { display: flex; flex-wrap: wrap; gap: 4px 6px; align-items: center; }
.hpt-cad { border-radius: 8px; padding: 8px 10px; margin: 6px 0; font-size: .92rem; }
.hpt-cad-ok { background: #e6f4ec; border: 1px solid #9fd0b2; color: #0f5b33; }
.hpt-cad-mal { background: #fdecea; border: 1px solid #f0b2a9; color: #8a2414; }

/* configuração */
.hpt-radios { border: 0; padding: 0; margin: 0 0 6px; display: flex; flex-direction: column; gap: 6px; }
.hpt-radios label { display: flex; gap: 8px; align-items: center; justify-content: flex-start; text-align: left; font-weight: 400; }
.hpt-radios input, .hpt-chk input { width: auto !important; flex: none; margin: 0; }
.hpt-chk { display: flex; gap: 10px; align-items: flex-start; margin: 10px 0; }
.hpt-chk input { margin-top: 4px; flex: none; }
.hpt-chk span { display: flex; flex-direction: column; min-width: 0; }
.hpt-chk small { color: var(--aco, #56676f); font-weight: 400; }

/* comprovante (gaveta e celular) */
.hpt-comp { text-align: center; display: flex; flex-direction: column; gap: 2px; align-items: center; padding: 8px 0; }
.hpt-comp p { margin: 2px 0; }
.hpt-comp-nome { font-size: 1.2rem; font-weight: 700; }
.hpt-comp-tipo { font-size: 1rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: var(--ok, #157347); }
.hpt-comp-hora { font-size: 2.4rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }

/* folha impressa */
.hpt-folha td { height: 26px; }
.hpt-f-dia { white-space: nowrap; vertical-align: top; }
.hpt-f-h { white-space: nowrap; color: #888; }
.hpt-f-inst { font-size: .9rem; }

/* ---------- Terminal de ponto (tela cheia) ---------- */
body.hpt-term-aberto { overflow: hidden; }
.hpt-term { position: fixed; inset: 0; z-index: 9000; background: #0e3b3c; color: #fff; display: flex; flex-direction: column; overflow-y: auto; overflow-x: hidden; font-size: 18px; }
.hpt-term button { font: inherit; cursor: pointer; }
.hpt-t-cab { display: flex; align-items: center; gap: 12px; padding: 12px 18px; background: rgb(0 0 0 / .18); flex-wrap: wrap; }
.hpt-t-id { display: flex; flex-direction: column; flex: 1 1 200px; min-width: 0; }
.hpt-t-id b { font-size: 1.15rem; }
.hpt-t-id small { opacity: .8; font-size: .85rem; }
.hpt-t-rel { font-size: 1.8rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.hpt-t-sair { background: transparent; color: #fff; border: 1px solid rgb(255 255 255 / .5); border-radius: 8px; padding: 6px 12px; font-size: .9rem !important; }
.hpt-t-corpo { flex: 1 1 auto; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; padding: 20px; align-items: center; }
.hpt-t-qr { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.hpt-t-qrbox { background: #fff; border-radius: 18px; padding: 14px; width: min(100%, 62vh, 460px); aspect-ratio: 1; display: flex; align-items: center; justify-content: center; color: #13262e; }
.hpt-t-qrbox svg { width: 100%; height: 100%; display: block; }
.hpt-t-semqr { text-align: center; padding: 10px; }
.hpt-t-semqr b { font-size: 1.2rem; }
.hpt-t-barra { width: min(100%, 460px); height: 8px; border-radius: 99px; background: rgb(255 255 255 / .2); overflow: hidden; }
.hpt-t-barra i { display: block; height: 100%; width: 100%; background: #7fe0a8; transition: width 1s linear; }
.hpt-t-legenda { margin: 0; opacity: .85; font-size: .9rem; }
.hpt-t-lado { display: flex; flex-direction: column; gap: 14px; min-width: 0; }
.hpt-t-lado h2 { margin: 0; font-size: 1.6rem; }
.hpt-t-lado h3 { margin: 6px 0 4px; font-size: 1rem; opacity: .85; }
.hpt-passos { margin: 0; padding-left: 1.3em; display: flex; flex-direction: column; gap: 8px; font-size: 1.1rem; }
.hpt-t-grande { background: #fff; color: #0e3b3c; border: 0; border-radius: 14px; padding: 16px 18px; font-size: 1.1rem !important; line-height: 1.3; text-align: center; width: 100%; box-shadow: 0 6px 18px rgb(0 0 0 / .2); }
.hpt-t-grande b { font-size: 1.3rem; }
.hpt-t-ok { background: #7fe0a8; }
.hpt-t-nota { opacity: .85; font-size: .95rem; margin: 4px 0; }
.hpt-t-off { background: #fff4dc; color: #7a4b00; border-radius: 10px; padding: 10px 12px; font-size: .95rem; margin: 6px 0; }
.hpt-t-erro { color: #ffd0c8; font-weight: 600; min-height: 1.2em; margin: 6px 0 0; display: block; }
.hpt-t-filabox { background: rgb(255 255 255 / .12); border-radius: 10px; padding: 10px 12px; display: flex; flex-direction: column; gap: 4px; font-size: .95rem; }
.hpt-t-mini { background: transparent; color: #fff; border: 1px solid rgb(255 255 255 / .6); border-radius: 6px; padding: 2px 8px; font-size: .8rem !important; margin-left: 6px; }
.hpt-t-ult { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 4px; }
.hpt-t-ult li { display: flex; gap: 10px; align-items: baseline; background: rgb(255 255 255 / .08); border-radius: 8px; padding: 6px 10px; min-width: 0; }
.hpt-t-ult span { font-variant-numeric: tabular-nums; font-weight: 700; }
.hpt-t-ult b { flex: 1 1 auto; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.hpt-t-passo { flex: 1 1 auto; padding: 18px; display: flex; flex-direction: column; gap: 14px; max-width: 980px; width: 100%; margin: 0 auto; box-sizing: border-box; }
.hpt-t-topo { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
.hpt-t-topo h2 { margin: 0; font-size: 1.5rem; display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.hpt-t-volta { background: transparent; color: #fff; border: 1px solid rgb(255 255 255 / .5); border-radius: 10px; padding: 8px 14px; }
.hpt-t-tipo { background: #7fe0a8; color: #0e3b3c; border-radius: 99px; padding: 2px 12px; font-size: 1rem; text-transform: uppercase; letter-spacing: .04em; }
.hpt-t-tipo.hpt-saida { background: #ffd27a; }
.hpt-t-busca { font: inherit; font-size: 1.2rem; padding: 12px 14px; border-radius: 12px; border: 0; width: 100%; box-sizing: border-box; color: #13262e; }
.hpt-t-nomes { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 10px; }
.hpt-t-nome { background: #fff; color: #13262e; border: 0; border-radius: 12px; padding: 14px; text-align: left; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.hpt-t-nome b { font-size: 1.1rem; overflow-wrap: anywhere; }
.hpt-t-nome small { color: #56676f; }
.hpt-t-pin { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px; align-items: start; }
.hpt-t-cam { display: flex; flex-direction: column; gap: 6px; align-items: center; min-width: 0; }
.hpt-t-cam video { width: 100%; max-width: 420px; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 14px; background: #082526; transform: scaleX(-1); }
.hpt-t-teclado { display: flex; flex-direction: column; align-items: center; gap: 10px; min-width: 0; }
.hpt-t-teclado > p { margin: 0; }
.hpt-pontos { display: flex; gap: 12px; }
.hpt-pontos i { width: 18px; height: 18px; border-radius: 50%; border: 2px solid #fff; }
.hpt-pontos i.on { background: #fff; }
.hpt-teclas { display: grid; grid-template-columns: repeat(3, 76px); gap: 10px; }
.hpt-tecla { height: 64px; border-radius: 14px; border: 0; background: #fff; color: #0e3b3c; font-size: 1.5rem !important; font-weight: 700; }
.hpt-tecla-s { background: rgb(255 255 255 / .75); font-size: 1.1rem !important; }
.hpt-t-feito { align-items: center; text-align: center; justify-content: center; }
.hpt-t-feito p { margin: 2px 0; }
.hpt-t-check { width: 96px; height: 96px; border-radius: 50%; background: #7fe0a8; color: #0e3b3c; font-size: 3.4rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
.hpt-t-quem { font-size: 1.5rem; font-weight: 700; }
.hpt-t-hora { font-size: 3.4rem; font-weight: 800; font-variant-numeric: tabular-nums; line-height: 1.1; }
.hpt-t-feito .hpt-t-grande { max-width: 360px; margin-top: 10px; }
@media (max-width: 760px) {
  .hpt-term { font-size: 16px; }
  .hpt-t-corpo, .hpt-t-pin { grid-template-columns: minmax(0, 1fr); padding: 14px; gap: 16px; }
  .hpt-t-rel { font-size: 1.3rem; }
  .hpt-t-qrbox { width: min(100%, 360px); }
  .hpt-teclas { grid-template-columns: repeat(3, 68px); }
  .hpt-t-hora { font-size: 2.6rem; }
}

/* ---------- página /ponto do celular (sem o CSS do app) ---------- */
body.hpt-pg { margin: 0; font-family: system-ui, -apple-system, "Segoe UI", sans-serif; background: #e8efec; color: #13262e; font-size: 16px; }
body.hpt-pg main { max-width: 520px; margin: 0 auto; padding: 14px 12px 40px; display: flex; flex-direction: column; gap: 12px; box-sizing: border-box; }
.hpt-pg * { box-sizing: border-box; }
.hpt-cx { background: #fff; border-radius: 14px; padding: 16px; box-shadow: 0 6px 20px rgb(12 58 59 / .10); display: flex; flex-direction: column; gap: 8px; }
.hpt-cx h1 { font-size: 1.3rem; margin: 0; overflow-wrap: anywhere; }
.hpt-cx p { margin: 0; }
.hpt-marca { font-size: .8rem; font-weight: 700; color: #1d7a43; text-transform: uppercase; letter-spacing: .06em; }
.hpt-mut { color: #56676f; font-size: .9rem; }
.hpt-err { color: #b8321f; font-weight: 600; min-height: 1.1em; }
.hpt-form { display: flex; flex-direction: column; gap: 10px; }
.hpt-form label { display: flex; flex-direction: column; gap: 4px; font-weight: 600; font-size: .92rem; }
.hpt-form input, .hpt-form select { font: inherit; padding: 12px; border: 1px solid #b9c7c4; border-radius: 10px; width: 100%; }
.hpt-bt { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; border-radius: 12px; font: inherit; font-weight: 700; cursor: pointer; border: 2px solid #b9c7c4; background: #e3ebe9; color: #13262e; width: 100%; padding: 8px 14px; text-align: center; }
.hpt-bt[disabled] { opacity: .6; }
.hpt-pri { background: #0e3b3c; color: #fff; border-color: #0e3b3c; }
.hpt-bt-g { min-height: 68px; font-size: 1.15rem; }
.hpt-bts { display: flex; gap: 10px; }
.hpt-cel-tipo { align-self: flex-start; background: #d9f3e4; color: #0f5b33; border-radius: 99px; padding: 4px 14px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; }
.hpt-cel-tipo.hpt-saida { background: #fff0cf; color: #7a4b00; }
.hpt-cel-local { font-weight: 600; }
.hpt-cel-rel { font-size: 2.2rem; font-weight: 800; font-variant-numeric: tabular-nums; }
.hpt-cel-foto { display: flex; align-items: center; gap: 12px; }
.hpt-cel-foto img, .hpt-cel-semfoto { width: 76px; height: 76px; border-radius: 50%; object-fit: cover; flex: none; background: #eef3f1; display: flex; align-items: center; justify-content: center; font-size: 2rem; }
.hpt-check { width: 64px; height: 64px; border-radius: 50%; background: #1d7a43; color: #fff; font-size: 2.2rem; font-weight: 800; display: flex; align-items: center; justify-content: center; }
@media print {
  body.hpt-pg { background: #fff; }
  body.hpt-pg .hpt-bts, body.hpt-pg .hpt-bt { display: none !important; }
  body.hpt-pg .hpt-cx { box-shadow: none; border: 1px solid #ccc; }
}

/* Ponto oficial (REP-P, Portaria 671) */
.hpt-sit { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 6px; }
.hpt-sit li { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; align-items: start; border: 1px solid var(--linha, #dfe6e4); border-left: 4px solid var(--ok, #157347); border-radius: 8px; padding: 8px 10px; min-width: 0; }
.hpt-sit li.hpt-sit-cliente { border-left-color: #d79a1c; background: #fffaf0; }
.hpt-sit li.hpt-sit-klugwerk { border-left-color: #7a8a92; background: #f5f7f8; }
.hpt-sit li > span { grid-row: span 2; }
.hpt-sit b { font-size: .92rem; overflow-wrap: anywhere; }
.hpt-sit small { grid-column: 2; font-size: .8rem; }
.hpt-pes { display: flex; align-items: center; gap: 8px; border: 1px solid var(--linha, #dfe6e4); border-radius: 8px; padding: 8px 10px; flex-wrap: wrap; min-width: 0; }
.hpt-pes-q { display: flex; flex-direction: column; flex: 1 1 180px; min-width: 0; }
.hpt-marc-bts { display: flex; gap: 6px; align-items: center; flex-wrap: wrap; margin-left: auto; }
.hpt-rep { display: grid; grid-template-columns: auto 1fr; gap: 2px 10px; margin: 8px 0; font-size: .86rem; text-align: left; }
.hpt-rep dt { font-weight: 700; }
.hpt-rep dd { margin: 0; min-width: 0; overflow-wrap: anywhere; }
.hpt-hash { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: .78rem; word-break: break-all; }
.hpt-cad ul { margin: 6px 0 0; padding-left: 18px; }
