/* Scoped, theme-friendly: no hard-coded body foreground/background, no global selectors. */
.bsos-station,.bsos-goal,.bsos-wall { color:inherit; font:inherit; max-width:940px; margin:1.25rem auto 2rem; box-sizing:border-box; }
.bsos-station *, .bsos-wall *, .bsos-goal * { box-sizing:border-box; }
.bsos-station { --bsos-gold:#d89412; --bsos-line:color-mix(in srgb, currentColor 21%, transparent); --bsos-panel:color-mix(in srgb, currentColor 5%, transparent); border:1px solid var(--bsos-line); border-radius:20px; padding:clamp(16px,4vw,34px); background:var(--bsos-panel); }
.bsos-heading { display:flex; gap:16px; align-items:flex-start; }
.bsos-heading h2 { color:inherit; font-size:clamp(1.4rem,4.4vw,2.1rem); line-height:1.2; margin:0 0 10px; }
.bsos-heading p { color:inherit; opacity:.84; line-height:1.6; margin:0; }
.bsos-radio-icon { font-size:clamp(32px,6vw,45px); }
.bsos-station .bsos-goal { margin:24px 0; }
.bsos-goal { padding:17px; border:1px solid var(--bsos-line, color-mix(in srgb, currentColor 22%, transparent)); border-radius:14px; background:var(--bsos-panel, color-mix(in srgb, currentColor 4%, transparent)); }
.bsos-goal-head { display:flex; gap:12px; flex-wrap:wrap; align-items:center; justify-content:space-between; margin-bottom:12px; font-size:.94rem; }
.bsos-meter { position:relative; height:22px; overflow:hidden; border-radius:20px; background:repeating-linear-gradient(90deg,#203a4b 0 10%,#294553 10% 20%); border:1px solid #8e9ca1; }
.bsos-meter-bar { position:absolute; inset:0 auto 0 0; background:linear-gradient(90deg,#88af55 5%,#b7cb52 65%,#e3a021 88%,#ef5f39 100%); border-radius:18px; transition:width .3s; }
.bsos-meter-needle { position:absolute; top:-4px; width:4px; height:30px; background:#fff; border:1px solid #29313a; transform:translateX(-50%); filter:drop-shadow(0 0 2px #111); }
.bsos-meter-scale { display:flex; justify-content:space-between; gap:5px; font-size:.76rem; font-weight:700; margin:7px 0; }
.bsos-progress-copy,.bsos-small { opacity:.8; font-size:.82rem; margin:10px 0 0; }
.bsos-form { display:block; }
.bsos-period { display:flex; gap:8px; margin:12px 0 19px; flex-wrap:wrap; }
.bsos-period label { cursor:pointer; display:flex; gap:8px; align-items:center; border:1px solid var(--bsos-line); padding:9px 15px; border-radius:999px; }
.bsos-amounts { border:0; margin:0 0 20px; padding:0; min-width:0; }
.bsos-amounts legend { margin:0 0 10px; font-weight:700; }
.bsos-amount-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:9px; }
.bsos-choice { display:block; position:relative; cursor:pointer; }
.bsos-choice input { position:absolute; width:100%; height:100%; opacity:0; inset:0; cursor:pointer; }
.bsos-choice span { display:block; text-align:center; padding:12px 4px; border:1px solid var(--bsos-line); border-radius:10px; font-weight:700; }
.bsos-choice small {display:block;font-size:.7rem;font-weight:500;opacity:.85;line-height:1.15;margin-top:5px;}
.bsos-choice input:checked+span { outline:2px solid var(--bsos-gold); outline-offset:1px; background:color-mix(in srgb, var(--bsos-gold) 15%, transparent); }
.bsos-choice input:focus-visible+span { outline:3px solid currentColor; }
.bsos-custom { display:block; margin:15px 0 0; }
.bsos-custom[hidden] { display:none; }
.bsos-custom input { margin-left:10px; max-width:180px; }
.bsos-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:13px 16px; }
.bsos-fields label,.bsos-custom { font-size:.95rem; font-weight:600; }
.bsos-fields input,.bsos-fields select,.bsos-custom input { width:100%; min-width:0; max-width:100%; margin-top:6px; padding:10px 12px; border:1px solid var(--bsos-line); color:inherit; background:var(--bsos-panel); border-radius:8px; font:inherit; }
.bsos-fields select option { color:#111; background:#fff; }
.bsos-check { display:flex; align-items:flex-start; gap:10px; margin:18px 0; font-size:.9rem; line-height:1.5; }
.bsos-check input { margin:4px 0 0; flex:0 0 auto; width:17px; height:17px; accent-color:#b87c0b; }
.bsos-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:15px; }
.bsos-button { appearance:none; font:inherit; font-weight:700; border:1px solid transparent; cursor:pointer; border-radius:10px; padding:13px 20px; background:#8b5700; color:#fff; min-height:48px; flex:1 1 190px; }
.bsos-button.bsos-paypal { background:#153d76; color:#fff; }
.bsos-button:hover { filter:brightness(1.1); }
.bsos-button:focus-visible { outline:3px solid currentColor; outline-offset:3px; }
.bsos-button:disabled { opacity:.45; cursor:not-allowed; }
.bsos-notice { background:var(--bsos-panel, color-mix(in srgb, currentColor 6%, transparent)); border-left:4px solid var(--bsos-gold,#d89412); padding:14px; margin:18px 0; }
.bsos-message { margin-top:12px; font-size:.91rem; }
.bsos-message.bsos-error { color:#b42c22; }
.bsos-hp {position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;left:-9999px!important;}
.bsos-wall { padding:20px; border-radius:15px; border:1px solid color-mix(in srgb,currentColor 20%,transparent); }
.bsos-wall h3 { margin:0 0 16px; color:inherit; }
.bsos-wall-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px; }
.bsos-supporter { border:1px solid color-mix(in srgb,currentColor 18%,transparent); border-radius:12px;padding:14px; background:color-mix(in srgb,currentColor 4%,transparent); overflow-wrap:anywhere; }
.bsos-supporter span { color:#c78d20; margin-right:7px; }
.bsos-supporter strong,.bsos-supporter small { display:block; }
.bsos-supporter small { opacity:.8; font-size:.75rem; margin-top:4px; }
.bsos-badge { display:inline-block; border:1px solid #c78d20; padding:4px 9px; border-radius:100px; font-size:.8rem; color:inherit; background:color-mix(in srgb,#c78d20 13%,transparent); }
@media(max-width:640px) {
 .bsos-station { border-radius:12px; padding:14px; }
 .bsos-heading { gap:10px; }
 .bsos-fields { grid-template-columns:1fr; }
 .bsos-amount-grid { grid-template-columns:repeat(3,minmax(0,1fr)); }
 .bsos-period label { flex:1; justify-content:center; }
 .bsos-amounts legend { font-size:.92rem; }
 .bsos-choice span { min-height:65px; padding:11px 4px; }
 .bsos-choice small { font-size:.68rem; }
 .bsos-button { flex-basis:100%; }
 .bsos-goal { padding:12px; }
}
@media(prefers-reduced-motion:reduce){ .bsos-meter-bar {transition:none;} }
