/* Client-facing pages (booking, forms, check-in, pay, links, portal, terms).
   PackOffice tokens by default; book.html / f.html swap in the trainer's own
   colour as --accent (with --on-accent picked for contrast). */
:root{--night:#0F1E36;--night-3:#22365C;--gold:#C8A24A;--gold-d:#A9852F;--gold-soft:#F6EFDC;--ivory:#FAF8F3;--ink:#1B2333;--muted:#5C6575;--line:#E7E2D6;--ok:#2F8F6B;--ok-soft:#E5F3EC;
  --brand:var(--night);--accent:var(--gold);--on-accent:var(--night);--accent-soft:var(--gold-soft)}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;background:var(--ivory);color:var(--ink);line-height:1.55;-webkit-font-smoothing:antialiased;margin:0}
h1,h2,h3{font-family:'Plus Jakarta Sans','Inter',sans-serif;font-weight:800;color:var(--brand);letter-spacing:-.02em}
a{color:var(--night-3);text-underline-offset:2px}
.wrap{max-width:760px;margin:0 auto;padding:24px 16px 64px}
.wrap.narrow{max-width:540px}
.card-x{background:#fff;border:1px solid var(--line);border-radius:16px;padding:22px;margin-bottom:14px;box-shadow:0 1px 2px rgba(15,30,54,.04),0 6px 18px -10px rgba(15,30,54,.12)}
.card-x h2{font-size:1.1rem;margin-bottom:12px}
.btn-brand{background:var(--accent);color:var(--on-accent);border:none;border-radius:12px;padding:12px 22px;font-weight:700;font-size:1rem;min-height:46px;transition:filter .15s,transform .1s}
.btn-brand:hover,.btn-brand:focus{background:var(--accent);color:var(--on-accent);filter:brightness(1.06)}
.btn-brand:active{transform:scale(.99)}
.btn-brand:disabled{background:var(--accent);color:var(--on-accent);opacity:.6}
.btn-outline-dark{border-radius:10px;border-color:#CFC8B8;color:var(--ink)}
.btn-outline-dark:hover{background:var(--brand);border-color:var(--brand)}
.btn-dark{background:var(--brand);border-color:var(--brand);border-radius:10px}
.form-control,.form-select{border-radius:10px;border-color:#DCD6C8;font-size:16px;padding:10px 12px}
.form-control:focus,.form-select:focus{border-color:var(--accent);box-shadow:0 0 0 .2rem rgba(200,162,74,.22)}
.form-check-input:checked{background-color:var(--brand);border-color:var(--brand)}
.tiny{font-size:.82rem;color:var(--muted)}
.logo{width:60px;height:60px;border-radius:16px;object-fit:cover;background:#fff;border:1px solid var(--line)}
.hero{width:100%;max-height:230px;object-fit:cover;border-radius:16px;margin-bottom:16px;display:block}
.svc{border:2px solid var(--line);border-radius:14px;padding:13px 15px;cursor:pointer;margin-bottom:9px;background:#fff;transition:border-color .15s,background .15s}
.svc:hover{border-color:#D9CBA2}
.svc.on{border-color:var(--accent);background:var(--accent-soft)}
.slot{display:inline-block;border:1px solid #D6CFBF;border-radius:10px;padding:8px 12px;margin:3px;cursor:pointer;font-size:.9rem;background:#fff;font-variant-numeric:tabular-nums;min-width:74px;text-align:center}
.slot:hover{border-color:var(--accent)}
.slot.on{background:var(--brand);color:#fff;border-color:var(--brand)}
.day{font-weight:700;margin-top:12px;font-size:.88rem;color:var(--ink)}
.places{font-size:.74rem;border-radius:20px;padding:2px 9px;background:var(--ok-soft);color:#1E6B4F;font-weight:600;white-space:nowrap}
.places.few{background:#FDF3E1;color:#8A5A12}.places.full{background:#EFEDE8;color:var(--muted)}
.row-x{display:flex;justify-content:space-between;gap:10px;padding:11px 0;border-bottom:1px solid #F0ECE3;flex-wrap:wrap}
.row-x:last-child{border-bottom:none}
.badge{border-radius:99px;font-weight:600;padding:.35em .7em}
.badge-paid,.badge-completed,.badge-succeeded{background:var(--ok-soft)!important;color:#1E6B4F}
.badge-sent,.badge-partially_paid,.badge-time_offered{background:#FDF3E1!important;color:#8A5A12}
.badge-scheduled{background:#E3EEF9!important;color:#21507F}
.badge-cancelled,.badge-late_cancelled,.badge-void{background:#EFEDE8!important;color:var(--muted)}
.badge-overdue{background:#FDECE4!important;color:#9A3412}
.footer{text-align:center;margin-top:22px;font-size:.78rem;color:var(--muted)}
.footer a{color:inherit}
.footer img{height:14px;vertical-align:-2px;margin-right:4px;opacity:.7}
.due{font-size:2rem;font-weight:800;font-family:'Plus Jakarta Sans';color:var(--brand);font-variant-numeric:tabular-nums}
table.inv{width:100%;font-size:.92rem;border-collapse:collapse}
table.inv td,table.inv th{padding:8px 4px;border-bottom:1px solid #F0ECE3;text-align:right}
table.inv td:first-child,table.inv th:first-child{text-align:left}
table.inv th{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.draft{background:#FFF7D6;border:1px solid #F5D77A;border-radius:10px;padding:12px 16px;font-size:.85rem}
.prose p,.prose li{line-height:1.65;font-size:.96rem}
.prose h2{font-size:1.12rem;margin-top:1.8em}
.spinner{width:22px;height:22px;border:3px solid var(--line);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;display:inline-block;vertical-align:middle}
@keyframes spin{to{transform:rotate(360deg)}}
body.embed .wrap{padding-top:8px}body.embed .footer{display:none}
@media (max-width:575.98px){.card-x{padding:18px;border-radius:14px}.wrap{padding:16px 12px 48px}}
