/* Shared by the main site points center and /app sponsorship dialog. */
#studio-app ~ #modals .modal-mask:has(.points-center) { position:fixed; inset:0; display:flex; align-items:center; justify-content:center; padding:20px; }
#studio-app ~ #modals .modal:has(.points-center) { position:relative; box-sizing:border-box; width:min(680px,100%); max-height:88vh; overflow-y:auto; padding:24px; border:1px solid #a8bed340; border-radius:12px; background:#0b131e; color:var(--text,#e4edf9); }
#studio-app ~ #modals .member-close { width:30px; height:30px; cursor:pointer; }
#studio-app ~ #modals .member-close svg { width:18px; height:18px; }
.points-redemption .redeem-row { display:flex; gap:8px; }
.points-redemption input { flex:1; min-width:0; padding:12px; border:1px solid #a8bed340; border-radius:6px; background:#07121e; color:var(--text,#e4edf9); font:inherit; font-size:13px; }
.points-redemption button { flex:none; padding:10px 18px; border:1px solid #ddbf8d; border-radius:6px; color:#251d10; background:#ddbf8d; cursor:pointer; }
.points-redemption button:disabled { opacity:.5; cursor:default; }
.sponsor-periods { min-width:0; margin:0 0 22px; padding:0; border:0; }
.sponsor-periods legend { padding:0; margin-bottom:12px; font-size:13px; font-weight:600; color:var(--text,#e4edf9); }
.sponsor-period-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.sponsor-period-options label { display:flex; align-items:center; gap:9px; min-width:0; padding:13px 12px; border:1px solid #a8bed330; border-radius:7px; background:#a7c4ee06; cursor:pointer; }
.sponsor-period-options label:has(input:checked) { border-color:#ddbf8d; background:#c7ac8018; box-shadow:inset 0 0 0 1px #ddbf8d; }
.sponsor-period-options input { flex:none; width:15px; height:15px; margin:0; accent-color:#ddbf8d; }
.sponsor-period-options span { min-width:0; display:flex; flex-direction:column; gap:5px; }
.sponsor-period-options b { color:var(--text,#e4edf9); font-size:13px; line-height:1.5; }
.sponsor-period-options small { color:#dfc89f; font-size:11px; }
.sponsor-period-options input:focus-visible { outline:2px solid #bcd5ff; outline-offset:4px; }
.sponsor-periods .sponsor-caption { margin:12px 0 0; }
.plan-periods[data-plan-period-note] { color:var(--text-2,#a2b0c5); font-size:12px; line-height:1.7; }
.sponsor-section { margin-top:28px; padding-top:24px; border-top:1px solid #a8bed328; color:var(--text,#e4edf9); }
.sponsor-section-head>span { color:#c7ac80; font:11px/1.5 'Segoe UI',sans-serif; letter-spacing:1.5px; }
.sponsor-section h3 { margin:6px 0 12px; font-size:18px; line-height:1.5; }
.sponsor-caption { color:var(--text-2,#a2b0c5); font-size:12px; line-height:1.8; margin:10px 0 16px; }
.sponsor-feature-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.sponsor-feature-grid article { padding:16px; border:1px solid #a8bed320; border-radius:8px; background:#a7c4ee05; }
.sponsor-feature-grid h4 { margin:0 0 8px; font-size:13px; color:var(--text,#e4edf9); }
.sponsor-feature-grid p { margin:0; font-size:12px; line-height:1.8; color:var(--text-2,#a2b0c5); }
.sponsor-rate { display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; }
.sponsor-rate>strong { font-size:24px; color:#ead1a3; }
.sponsor-rate>strong span { font-weight:400; padding:0 5px; }
.sponsor-rate>span { font-size:12px; color:var(--text-2,#a2b0c5); }
.sponsor-discounts { display:flex; flex-wrap:wrap; gap:8px; margin-top:16px; }
.sponsor-discounts span { border:1px solid #c7ac8040; background:#c7ac8009; color:#dfc89f; padding:6px 10px; border-radius:5px; font-size:12px; }
.sponsor-amounts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:8px; }
.sponsor-amounts button { display:flex; flex-direction:column; align-items:center; gap:7px; padding:14px 6px; border:1px solid #a8bed330; background:#a7c4ee06; color:var(--text,#e4edf9); border-radius:7px; cursor:pointer; font:inherit; }
.sponsor-amounts button b { font-size:18px; }
.sponsor-amounts button span { font-size:11px; color:var(--text-2,#a2b0c5); }
.sponsor-amounts button[aria-pressed="true"] { border-color:#e7c78d; background:#c7ac8018; box-shadow:inset 0 0 0 1px #e7c78d; }
.sponsor-custom { display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:16px 0; font-size:12px; color:var(--text-2,#a2b0c5); }
.sponsor-custom label { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.sponsor-custom input { width:110px; padding:9px 10px; border:1px solid #a8bed340; border-radius:5px; background:#0b131e; color:#e4edf9; font:inherit; }
.sponsor-quote { display:flex; flex-wrap:wrap; justify-content:space-between; gap:12px; padding:16px; border:1px solid #c7ac8033; background:#c7ac8009; border-radius:7px; font-size:13px; line-height:1.6; }
.sponsor-quote strong { color:#ead1a3; font-size:21px; }
.sponsor-quote del { color:var(--text-2,#a2b0c5); margin-right:6px; }
.sponsor-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:16px; }
.sponsor-actions button { padding:10px 16px; min-height:42px; border:1px solid #b8cdea66; border-radius:5px; background:#a7c4ee0c; color:#c9d9ed; cursor:pointer; font:inherit; font-size:13px; }
.sponsor-actions button:disabled { opacity:.45; cursor:default; }
.sponsor-wechat { margin-top:16px; padding:16px; border:1px solid #5a9bd833; border-radius:8px; background:#5a9bd80b; }
.sponsor-extra [hidden] { display:none; }
.sponsor-wechat-media>div { min-width:0; overflow-wrap:anywhere; }
.sponsor-wechat-media { display:flex; align-items:flex-start; gap:16px; }
.sponsor-wechat img { width:320px; height:320px; flex:none; object-fit:contain; border-radius:6px; background:#fff; padding:6px; box-sizing:border-box; }
.sponsor-wechat h4 { margin:0 0 8px; font-size:14px; color:var(--text,#e4edf9); }
.sponsor-wechat p { margin:6px 0 0; color:var(--text-2,#a2b0c5); font-size:12px; line-height:1.8; }
.sponsor-wechat p strong { color:#ead1a3; font-size:17px; }
.sponsor-extra :focus-visible,.points-center :focus-visible { outline:2px solid #bcd5ff; outline-offset:3px; }
.points-balance { display:flex; flex-direction:column; gap:6px; padding:24px 0; color:var(--text-2,#a2b0c5); font-size:13px; }
.points-balance strong { font-size:42px; color:var(--text,#e4edf9); line-height:1.2; }
.points-checkin { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:12px; background:#c7ac800c; border:1px solid #c7ac8033; padding:18px; border-radius:8px; }
.points-checkin h3 { margin:0 0 7px; font-size:16px; }
.points-checkin p { margin:0; color:var(--text-2,#a2b0c5); font-size:12px; line-height:1.8; }
.points-checkin button { white-space:nowrap; }
.points-ledger-row { display:flex; align-items:center; flex-wrap:wrap; gap:10px; padding:13px 0; border-bottom:1px solid #a8bed320; font-size:12px; }
.points-ledger-row>div { flex:1; min-width:150px; }
.points-ledger-row b { font-weight:500; }
.points-ledger-row small { display:block; margin-top:5px; color:var(--text-2,#a2b0c5); line-height:1.6; }
.points-ledger-row>span { color:var(--text-2,#a2b0c5); }
.points-in { color:#8dd9b3; }
.points-center [hidden] { display:none; }
@media(max-width:520px) {
  .sponsor-period-options { gap:6px; }
  .sponsor-period-options label { padding:11px 7px; gap:6px; }
  .sponsor-period-options b { font-size:12px; }
  .sponsor-feature-grid { grid-template-columns:1fr; }
  .sponsor-amounts { grid-template-columns:repeat(3,minmax(0,1fr)); }
  .sponsor-rate>strong { font-size:21px; }
  .sponsor-actions>button { flex:1 1 180px; }
  .sponsor-wechat-media { flex-direction:column; }
  .sponsor-wechat img { width:min(320px,100%); height:auto; aspect-ratio:1; align-self:center; }
}
