/* ppi-book.css — the self-serve pre-purchase-inspection booking card.
   Lives beside ppi-book.js and is mounted on every PPI surface (service page, cost page,
   sample report, listing-check tool, the five city x PPI pages).
   Light theme only. Inputs are 16px so iOS never zooms. Tap targets >= 44px. */

.ppb{background:#fff;border:1px solid rgba(0,0,0,.1);border-radius:16px;box-shadow:0 4px 16px rgba(0,0,0,.06),0 1px 3px rgba(0,0,0,.06);padding:22px;max-width:560px}
@media(min-width:640px){.ppb{padding:28px}}
.ppb *{box-sizing:border-box}
.ppb__badge{display:inline-block;font-size:11.5px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:#1E56A0;background:#EBF2FC;border:1px solid rgba(30,86,160,.18);border-radius:100px;padding:5px 12px;margin-bottom:12px}
.ppb__h{font-size:21px;font-weight:800;letter-spacing:-.02em;color:#000;margin:0 0 6px;line-height:1.2}
.ppb__sub{font-size:14.5px;color:#0A0A0A;line-height:1.6;margin:0 0 14px}
.ppb__price{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;background:#F4F7FC;border:1px solid #D8E2F0;border-radius:12px;padding:14px 16px;margin:0 0 18px}
.ppb__price b{font-size:22px;font-weight:800;color:#1E56A0;letter-spacing:-.02em}
.ppb__price span{font-size:13.5px;color:#1A1A1A;line-height:1.5;flex:1;min-width:180px}

.ppb__field{display:flex;flex-direction:column;gap:6px;margin-bottom:14px}
.ppb__field label{font-size:12px;font-weight:700;color:#1A1A1A;letter-spacing:.04em;text-transform:uppercase}
.ppb__field input,.ppb__field textarea{width:100%;min-height:46px;padding:12px 14px;border:1.5px solid #E2E8F0;border-radius:11px;background:#fff;font-size:16px;color:#000;outline:none;transition:border-color .16s,box-shadow .16s;-webkit-appearance:none;appearance:none}
.ppb__field textarea{min-height:76px;resize:vertical;line-height:1.5}
.ppb__field input:focus,.ppb__field textarea:focus{border-color:#1E56A0;box-shadow:0 0 0 4px rgba(30,86,160,.09)}
.ppb__field input.ppb--bad,.ppb__field textarea.ppb--bad{border-color:#DC2626;box-shadow:0 0 0 4px rgba(220,38,38,.08)}
.ppb__hint{font-size:12.5px;color:#1A1A1A;line-height:1.5}
.ppb__row{display:grid;grid-template-columns:1fr;gap:14px}
@media(min-width:520px){.ppb__row{grid-template-columns:1fr 1fr}}
.ppb__err{font-size:13px;font-weight:700;color:#B91C1C;line-height:1.45}

.ppb__chips{display:flex;flex-wrap:wrap;gap:8px}
.ppb__chip{min-height:44px;padding:10px 15px;border:1.5px solid #E2E8F0;border-radius:100px;background:#fff;font-size:14px;font-weight:700;color:#1A1A1A;cursor:pointer;transition:all .16s}
.ppb__chip:hover{border-color:#1E56A0;color:#1E56A0}
.ppb__chip[aria-pressed="true"]{background:#1E56A0;border-color:#1E56A0;color:#fff}

.ppb__go{width:100%;min-height:54px;margin-top:6px;padding:16px;background:#1E56A0;color:#fff;border:none;border-radius:12px;font-size:16.5px;font-weight:800;letter-spacing:-.01em;cursor:pointer;box-shadow:0 4px 14px rgba(30,86,160,.24);transition:background .18s,transform .18s}
.ppb__go:hover{background:#164785;transform:translateY(-1px)}
.ppb__go:disabled{opacity:.6;cursor:default;transform:none}
.ppb__note{font-size:12.5px;color:#1A1A1A;line-height:1.55;margin:12px 0 0;text-align:center}
.ppb__note a{color:#1E56A0;font-weight:700}

/* ── success / slot picker ── */
.ppb__ok{text-align:left}
.ppb__okh{font-size:20px;font-weight:800;color:#000;letter-spacing:-.02em;margin:0 0 8px;line-height:1.25}
.ppb__okp{font-size:14.5px;color:#0A0A0A;line-height:1.65;margin:0 0 16px}
.ppb__okp b{color:#000}
.ppb__slots{margin:0 0 18px}
.ppb__slab{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#1E56A0;margin-bottom:10px}
.ppb__srow{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:14px}
.ppb__slot{min-height:44px;padding:10px 14px;border:1.5px solid #D8E2F0;border-radius:11px;background:#fff;font-size:14px;font-weight:700;color:#000;cursor:pointer;transition:all .16s}
.ppb__slot:hover{border-color:#1E56A0}
.ppb__slot[aria-pressed="true"]{background:#1E56A0;border-color:#1E56A0;color:#fff}
.ppb__lock{min-height:52px;width:100%;padding:15px;background:#16A34A;color:#fff;border:none;border-radius:12px;font-size:16px;font-weight:800;cursor:pointer}
.ppb__lock:disabled{opacity:.6;cursor:default}
.ppb__booked{background:rgba(22,163,74,.07);border:1px solid rgba(22,163,74,.28);border-radius:12px;padding:16px 18px}
.ppb__booked h4{font-size:16.5px;font-weight:800;color:#15803D;margin:0 0 8px}
.ppb__booked p{font-size:14px;color:#0A0A0A;line-height:1.6;margin:0 0 8px}
.ppb__booked a{color:#1E56A0;font-weight:700}
.ppb__notice{font-size:13.5px;font-weight:700;color:#8A5416;background:rgba(212,135,42,.09);border:1px solid rgba(212,135,42,.28);border-radius:10px;padding:11px 13px;margin-bottom:12px;line-height:1.5}

.ppb__hand{border-top:1px solid rgba(0,0,0,.1);padding-top:16px;margin-top:4px}
.ppb__hbtns{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 0}
.ppb__hb{flex:1 1 180px;min-height:50px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 16px;border-radius:12px;font-size:15px;font-weight:800;text-decoration:none;text-align:center}
.ppb__hb--sms{background:#1E56A0;color:#fff}
.ppb__hb--wa{background:#0F7A43;color:#fff}
.ppb__hb--copy{background:#fff;color:#1E56A0;border:1.5px solid rgba(30,86,160,.3)}

/* ── seller-permission block (the friction killer) ── */
.ppb-seller{background:#fff;border:1px solid rgba(0,0,0,.1);border-left:4px solid #D4872A;border-radius:14px;padding:20px 22px;max-width:720px;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.ppb-seller h3{font-size:18px;font-weight:800;color:#000;margin:0 0 8px;letter-spacing:-.02em}
.ppb-seller p{font-size:14.5px;color:#0A0A0A;line-height:1.65;margin:0 0 12px}
.ppb-seller a{color:#1E56A0;font-weight:700}
.ppb-seller__msg{background:#F4F7FC;border:1px solid #D8E2F0;border-radius:11px;padding:14px 16px;font-size:14.5px;color:#000;line-height:1.6;white-space:pre-wrap;margin:0 0 12px}
.ppb-seller__done{font-size:13.5px;font-weight:800;color:#15803D;margin:10px 0 0}

/* ── fee-credit terms block (the thing that turns a $120 inspection into a $700+ repair) ── */
.ppb-credit{background:#F4F7FC;border:1px solid #D8E2F0;border-left:4px solid #16A34A;border-radius:14px;padding:20px 22px;max-width:720px}
.ppb-credit h3{font-size:19px;font-weight:800;color:#000;margin:0 0 8px;letter-spacing:-.02em}
.ppb-credit p{font-size:14.5px;color:#0A0A0A;line-height:1.65;margin:0 0 12px}
.ppb-credit ul{list-style:none;margin:0 0 12px;padding:0;display:grid;gap:8px}
.ppb-credit li{position:relative;padding:10px 14px 10px 34px;background:#fff;border:1px solid #D8E2F0;border-radius:10px;font-size:14.5px;color:#0A0A0A;line-height:1.55}
.ppb-credit li::before{content:'✓';position:absolute;left:13px;top:10px;color:#16A34A;font-weight:800}
.ppb-credit li b,.ppb-credit p b{color:#000}
.ppb-credit__no{font-size:13.5px;color:#1A1A1A}
.ppb-credit a{color:#1E56A0;font-weight:700}

/* ── findings → negotiation number → booked repair ── */
.ppn{max-width:760px}
.ppn__h{font-size:21px;font-weight:800;letter-spacing:-.02em;color:#000;margin:0 0 6px;line-height:1.2}
.ppn__sub{font-size:14.5px;color:#0A0A0A;line-height:1.6;margin:0 0 16px}
.ppn__sub a{color:#1E56A0;font-weight:700}
.ppn__groups{display:grid;gap:14px;margin-bottom:16px}
.ppn__g{border:1px solid #E2E8F0;border-radius:12px;padding:12px 14px;background:#fff}
.ppn__g--heavy{border-color:rgba(212,135,42,.35);background:rgba(212,135,42,.05)}
.ppn__gh{font-size:12px;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:#1E56A0;margin-bottom:8px}
.ppn__g--heavy .ppn__gh{color:#8A5416}
.ppn__it{display:flex;align-items:center;gap:10px;min-height:44px;padding:7px 4px;cursor:pointer;border-bottom:1px solid rgba(0,0,0,.05)}
.ppn__it:last-child{border-bottom:none}
.ppn__it input{width:20px;height:20px;flex:none;accent-color:#1E56A0;cursor:pointer}
.ppn__t{flex:1;font-size:14.5px;color:#000;line-height:1.4}
.ppn__b{font-size:13.5px;font-weight:800;color:#1E56A0;white-space:nowrap}
.ppn__g--heavy .ppn__b{color:#8A5416}
.ppn__empty{font-size:14px;color:#1A1A1A;margin:0}
.ppn__num{display:flex;flex-wrap:wrap;gap:10px;align-items:baseline;background:#EBF2FC;border:1px solid rgba(30,86,160,.2);border-radius:12px;padding:16px 18px;margin-bottom:12px}
.ppn__num b{font-size:26px;font-weight:800;color:#1E56A0;letter-spacing:-.02em}
.ppn__num span{flex:1;min-width:200px;font-size:14px;color:#0A0A0A;line-height:1.55}
.ppn__note{font-size:13.5px;color:#1A1A1A;line-height:1.6;margin:0 0 12px}
.ppn__refuse{background:rgba(212,135,42,.08);border:1px solid rgba(212,135,42,.3);border-radius:12px;padding:14px 16px;font-size:14px;color:#0A0A0A;line-height:1.65;margin-bottom:12px}
.ppn__refuse a{color:#1E56A0;font-weight:700}
.ppn__refuse b{color:#000}
.ppn__book{border-top:1px solid rgba(0,0,0,.1);margin-top:18px;padding-top:16px}
.ppn__bp{font-size:14px;color:#0A0A0A;line-height:1.6;margin:0 0 12px}
.ppn__bp a{color:#1E56A0;font-weight:700}
.ppn__form{border-top:1px solid rgba(0,0,0,.1);margin-top:18px;padding-top:18px}
.ppn__fh{font-size:18px;font-weight:800;color:#000;margin:0 0 6px}
.ppn__fp{font-size:14px;color:#0A0A0A;line-height:1.6;margin:0 0 14px}
.ppr__after:not(:empty){margin-top:18px;border-top:1px solid rgba(0,0,0,.1);padding-top:16px}
