.private-account { --muted: #506571; --line: #dcded6; }
.private-account main { max-width:1180px; padding-top:42px; }
.private-account h1 { margin:4px 0 18px; font-size:clamp(2.1rem,4vw,3.1rem); font-weight:400; }
.private-account h2 { font:600 1.35rem/1.3 system-ui,sans-serif; margin:0 0 12px; }
.private-account p { line-height:1.55; }
.account-heading,.account-session { display:flex; justify-content:space-between; align-items:center; gap:20px; }
.eyebrow { font-size:.75rem; letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.free-badge { padding:16px 22px; background:#e6eddd; border-radius:16px; display:flex; gap:24px; align-items:center; font-size:.9rem; }
.free-badge strong { font-size:1.6rem; white-space:nowrap; }
.private-account .intro { max-width:870px; font-size:1.12rem; margin:0 0 14px; }
.privacy-note { color:var(--muted); font-size:.9rem; max-width:930px; }
.auth-area { display:flex; flex-wrap:wrap; gap:16px 32px; padding:18px 0; border-bottom:1px solid var(--line); }
.auth-area details[open] { flex-basis:100%; }
.auth-area summary { cursor:pointer; text-underline-offset:5px; }
.account-session { border-block:1px solid var(--line); padding:12px 0; }
.private-account .quiet { color:#102a36; background:transparent; border:1px solid #b8c2bc; padding:10px 14px; font-size:.93rem; }
.people-section { padding:32px 0; }
.people-section>p { font-size:.94rem; color:var(--muted); }
.people-grid { display:flex; flex-wrap:wrap; gap:12px; margin:22px 0 16px; }
.person { position:relative; border:2px solid transparent; border-radius:17px; padding:19px 16px 13px; min-height:99px; width:180px; box-sizing:border-box; cursor:grab; user-select:none; }
.person.is-selected { border-color:#688879; }
.person.is-unselected { opacity:.65; }
.person label { display:block; padding-right:28px; font-weight:600; cursor:pointer; overflow-wrap:anywhere; }
.private-account .person input[type=checkbox] { position:absolute; top:14px; right:12px; width:19px; height:19px; accent-color:#2f5a49; margin:0; cursor:pointer; }
.person small { display:block; font-size:.72rem; margin-top:13px; overflow-wrap:anywhere; }
.private-account .person .remove-person { position:absolute; right:6px; bottom:4px; border:0; background:none; color:var(--muted); padding:4px 8px; font-size:1.1rem; }
.private-account .person-form { display:flex; align-items:end; flex-wrap:wrap; gap:12px; padding:0; background:transparent; border:0; }
.person-form label { flex:0 1 315px; font-size:.88rem; }
.private-account .person-form input { background:#fffdf8; margin-top:7px; }
.private-account .add-person { border-style:dashed; min-height:46px; }
.choice-layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(250px,1fr); gap:42px; padding:28px 0; border-top:1px solid var(--line); }
.price-note { margin-top:0; color:var(--muted); font-size:.85rem; }
.table-scroll { overflow-x:auto; border:1px solid var(--line); border-radius:17px; background:#fffdf8; }
.private-account table { width:100%; border-collapse:separate; border-spacing:0; min-width:430px; }
.private-account th,.private-account td { padding:0; border:0; border-bottom:1px solid #e5e6df; text-align:center; vertical-align:top; }
.private-account thead th { font-size:.8rem; padding:17px 8px; background:#eff0e8; font-weight:600; }
.private-account tbody th { width:31%; padding:22px 14px; text-align:left; font-size:.92rem; font-weight:500; }
.private-account td { width:23%; border-left:1px solid #e5e6df; }
.private-account tr:last-child>* { border-bottom:0; }
.private-account .price-choice { width:100%; height:100%; min-height:102px; border:0; border-radius:0; background:transparent; color:#102a36; padding:17px 6px 12px; display:flex; flex-direction:column; align-items:center; gap:5px; font-size:1.06rem; }
.private-account .price-choice:hover,.private-account .price-choice:focus-visible { background:#eef4ec; }
.private-account .price-choice.has-people { background:#f2f6ef; }
.price-choice.drag-over { outline:3px dashed #537663; outline-offset:-4px; }
.private-account .price-choice:disabled { opacity:1; color:#7b888a; cursor:default; }
.price-choice small { font-size:.68rem; color:var(--muted); }
.chips { display:flex; gap:4px; flex-wrap:wrap; justify-content:center; }
.person-chip { display:inline-block; padding:3px 7px; border-radius:7px; color:#18342c; font-size:.72rem; max-width:105px; overflow-wrap:anywhere; }
.purchase-help { padding-top:2px; }
.purchase-help ol { padding-left:24px; margin:18px 0; }
.purchase-help li { padding:0 0 14px 8px; font-size:.94rem; line-height:1.6; }
.purchase-help li::marker { color:#648073; }
.minimum-note { border-left:3px solid #9eaf88; padding-left:15px; font-size:.93rem; }
.muted { color:var(--muted); font-size:.87rem; }
.summary { border-top:1px solid var(--line); padding:28px 0; display:grid; grid-template-columns:1fr auto; gap:6px 20px; }
.summary output { font-size:2.3rem; font-weight:500; white-space:nowrap; }
.summary #coverage { grid-column:1/-1; color:#796123; font-size:.9rem; }
.private-account #checkout { grid-column:1/-1; padding:22px; display:flex; gap:22px; flex-wrap:wrap; align-items:center; }
#checkout>label { flex:1 1 200px; font-size:.9rem; }
#checkout>div { flex:1 1 290px; font-size:.85rem; }
#checkout>div p { margin:5px 0; }
#legal-links { display:flex; flex-wrap:wrap; gap:16px; }
.private-account #buy { font-size:1rem; }
.private-account button:disabled { cursor:not-allowed; opacity:.5; }
.private-account #message:empty,.private-account #coverage:empty,.private-account #local-warning:empty { display:none; }
.private-account #issued { overflow-wrap:anywhere; }
.private-account #purchase-details { margin:16px 0; }
.private-account .purchase-history { min-width:680px; }
.private-account .purchase-history td { width:auto; padding:14px 12px; font-size:.88rem; overflow-wrap:anywhere; }
@media(max-width:800px) { .choice-layout { grid-template-columns:1fr; gap:22px; } .purchase-help { grid-row:1; } .purchase-help ol { margin:12px 0; } .purchase-help li { padding-bottom:8px; } .account-heading { align-items:start; } .free-badge { flex-direction:column; gap:3px; padding:13px; text-align:center; } }
@media(max-width:480px) { .private-account main { padding-top:20px; } .person { width:calc(50% - 6px); } .account-heading { flex-wrap:wrap; } .free-badge { flex-direction:row; gap:12px; } .summary output { font-size:1.8rem; } .private-account #checkout { padding:15px; } .private-account #buy { width:100%; } }
