.points-page{max-width:620px;padding-top:20px;padding-bottom:120px}.points-back{min-height:48px;margin-bottom:18px}.points-page h1{margin-bottom:20px}.points-page h2{font-size:19px}.points-wallet{padding:24px;border:1px solid var(--line);border-radius:24px;background:linear-gradient(125deg,#f8d9e8,#eee3f7);margin-bottom:28px}.points-wallet h2{font-size:38px;margin:10px 0}.points-wallet p{margin:8px 0}.points-wallet summary,.points-rules summary{min-height:48px;display:flex;align-items:center;cursor:pointer;gap:12px}.points-wallet summary::after,.points-rules summary::after{content:'＋';margin-left:auto}details[open]>summary::after{content:'−'}.points-recharge>p{font-size:14px;margin:10px 0 16px}#points-plans{border:0;padding:0;margin:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}.points-sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.points-plan{position:relative;display:flex;flex-direction:column;gap:7px;padding:20px 14px;min-height:136px;border:1px solid var(--line-2);border-radius:20px;background:var(--surface);cursor:pointer}.points-plan input{position:absolute;top:14px;right:12px;width:18px;height:18px;accent-color:var(--accent)}.points-plan strong{font-size:26px;padding-right:20px}.points-plan small{color:var(--muted);font-size:12px}.points-plan:has(:checked){background:var(--accent-soft);border:2px solid var(--accent);padding:19px 13px}.points-plan:focus-within{outline:3px solid var(--accent);outline-offset:3px}.points-selection{padding:16px 0;line-height:1.8;font-size:14px}.points-pay{width:100%;min-height:52px}.points-note{color:var(--muted);font-size:13px!important;line-height:1.7}.points-rules{padding:20px;border:1px solid var(--line);border-radius:20px;background:var(--surface);margin:24px 0}.points-rules p{font-size:14px;line-height:1.8}.points-history h2{margin-bottom:16px}.points-empty{padding:26px 16px;text-align:center;background:var(--surface);border:1px dashed var(--line-2);border-radius:20px;color:var(--muted)}.points-entry{padding:16px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:12px}.points-entry small{display:block;color:var(--muted);margin-top:6px}.points-entry b{white-space:nowrap}
.points-bonus{align-self:flex-start;background:#a13766;color:white;border-radius:999px;padding:5px 10px;font-size:13px;font-style:normal;font-weight:700;margin-bottom:4px}.points-bonus.neutral{background:#f6e8f0;color:#81536a}.points-plan strong{padding-right:0}.points-plan input{top:22px}.points-plan{min-height:200px}
.points-order{padding:16px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.points-order small{display:block;color:var(--muted);margin-bottom:12px}.points-order .btn{min-height:48px;margin:4px 8px 4px 0}.points-order p{font-weight:600}
.points-rules label{display:block;margin:16px 0}.points-rules input,.points-rules select{display:block;width:100%;box-sizing:border-box;min-height:48px;padding:12px;margin-top:8px}.points-rules>.btn,.points-rules details>.btn{min-height:48px;margin:8px 8px 8px 0}.points-rules [role=status]{overflow-wrap:anywhere}.points-rules input[hidden]{display:none}
/* Keep the mobile wallet compact without shrinking touch targets. */
@media(max-width:640px){
 .points-page{padding-top:12px;padding-bottom:96px}
 .points-back{margin-bottom:12px}
 .points-page h1{margin-bottom:16px}
 .points-wallet{padding:18px;margin-bottom:20px}
 .points-wallet h2{margin:6px 0}
 .points-wallet p{margin:4px 0}
 #points-plans{gap:10px}
 .points-plan{min-height:176px;padding:16px 12px;gap:6px}
 .points-plan:has(:checked){padding:15px 11px}
 .points-plan input{top:18px}
 .points-selection{padding:12px 0}
 .points-rules{padding:16px;margin:16px 0}
 .points-history h2{margin-bottom:12px}
 .points-entry,.points-order{padding:12px 0}
 .points-order small{margin-bottom:4px}
}
