/* Birthday party request + payment pages (2026-10-25). Builds on family-account.css. */
.party-page{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:48px;align-items:start}
.party-page>footer{grid-column:1/-1}
.party-intro{position:sticky;top:24px}
.party-facts{list-style:none;padding:0;margin:24px 0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.party-facts li{background:#fff;border:1px solid #dedbd5;border-radius:8px;padding:14px}
.party-facts b{display:block;font-size:24px;letter-spacing:-.02em}
.party-facts span{font-size:13px;color:#5d6066}
.party-steps{padding-left:22px;line-height:1.6}
.party-steps li{margin:8px 0}
.party-form h2,.party-done h2{margin-top:0}
.party-form fieldset{border:0;padding:0;margin:0 0 8px}
.party-form legend{font-weight:800;text-transform:uppercase;letter-spacing:.1em;font-size:12px;color:#bd1020;margin:8px 0 4px}
.party-form label{display:block;font-weight:700;font-size:14px}
.party-form input,.party-form select,.party-form textarea{display:block;width:100%;font:inherit;padding:11px 12px;margin:6px 0 16px;border:1px solid #888;border-radius:5px;background:#fff}
.party-form textarea{resize:vertical}
.party-form :is(input,select,textarea):focus-visible{outline:3px solid #1664ba;outline-offset:1px}
.party-form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.party-form .check{display:flex;gap:10px;align-items:flex-start;font-weight:400;margin:4px 0 14px}
.party-form .check input{width:auto;margin:4px 0 0}
.party-form .hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.party-total{font-size:18px;font-weight:800;margin:6px 0}
.party-form [aria-invalid=true]{border-color:#c0101e;background:#fff6f6}
#partyStatus,#payStatus{min-height:1.5em}
#partyStatus.error,#payStatus.error{color:#b00d1b;font-weight:700}
.party-done{border-top-color:#1a7f37}
.party-pay{max-width:640px;margin:0 auto;display:block}
.party-summary{list-style:none;padding:0;margin:18px 0;border-top:1px solid #e5e2dc}
.party-summary li{display:flex;justify-content:space-between;gap:16px;padding:11px 0;border-bottom:1px solid #e5e2dc}
.party-summary li span:first-child{color:#5d6066}
.party-summary li span:last-child{font-weight:700;text-align:right}
.pay-state{border-radius:6px;padding:14px 16px;margin:12px 0;font-weight:700}
.pay-state.good{background:#e9f6ec;border:1px solid #9ccfa8}
.pay-state.warn{background:#fff2d9;border:1px solid #c99742}
@media (max-width:820px){.party-page{grid-template-columns:1fr;gap:12px}.party-intro{position:static}.party-form .row{grid-template-columns:1fr;gap:0}.party-facts{grid-template-columns:1fr 1fr 1fr}.party-facts b{font-size:19px}}
@media (max-width:420px){.party-facts{grid-template-columns:1fr}.entry{padding:22px}}
