/* Buffer Coupons – Scratch Rewards · Apple-style UI */
.bsr-app{
  --p:var(--bsr-primary,#FF5A1F);
  --p2:color-mix(in srgb,var(--p) 70%,#7c3aed);
  --bg:#f2f2f7;--card:#fff;--card2:#fff;--text:#1c1c1e;--sub:#6e6e73;--line:rgba(60,60,67,.14);
  --fill:rgba(118,118,128,.12);--glass:rgba(242,242,247,.72);--green:#34c759;--red:#ff3b30;
  --shadow:0 1px 2px rgba(0,0,0,.04),0 8px 24px rgba(0,0,0,.06);
  --ease:cubic-bezier(.32,.72,0,1);
  font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display","Inter","Segoe UI",Roboto,Helvetica,Arial,sans-serif;
  color:var(--text);background:var(--bg);font-size:16px;line-height:1.4;
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  position:relative;min-height:100vh;min-height:100dvh;text-align:left;
}
@media (prefers-color-scheme:dark){
  .bsr-app{--bg:#000;--card:#1c1c1e;--card2:#2c2c2e;--text:#f5f5f7;--sub:#98989f;--line:rgba(84,84,88,.6);
    --fill:rgba(118,118,128,.24);--glass:rgba(0,0,0,.7);--shadow:0 0 0 1px rgba(255,255,255,.05)}
}
html.bsr-lock,html.bsr-lock body{overflow:hidden}
body.bsr-body{margin:0;background:#f2f2f7}
@media (prefers-color-scheme:dark){body.bsr-body{background:#000}}

/* reset theme styles inside the app */
.bsr-app *,.bsr-app *::before,.bsr-app *::after{box-sizing:border-box}
.bsr-app button{font:inherit;color:inherit;background:none;border:0;padding:0;margin:0;cursor:pointer;text-transform:none;letter-spacing:normal;
  box-shadow:none;min-height:0;min-width:0;line-height:inherit;border-radius:0;-webkit-tap-highlight-color:transparent;width:auto;height:auto;text-align:inherit}
.bsr-app input,.bsr-app select,.bsr-app textarea{font:inherit;color:var(--text);margin:0;box-shadow:none;-webkit-appearance:none;appearance:none}
.bsr-app img{max-width:100%;border:0;box-shadow:none}
.bsr-app h1,.bsr-app h2,.bsr-app h3,.bsr-app h4,.bsr-app p{margin:0;padding:0;color:inherit;font-family:inherit;text-transform:none;letter-spacing:-.01em}
.bsr-app a{color:var(--p)}
.bsr-app :focus-visible{outline:3px solid color-mix(in srgb,var(--p) 55%,transparent);outline-offset:2px}

.bsr-view{max-width:520px;margin:0 auto;min-height:100vh;min-height:100dvh;padding-bottom:calc(32px + env(safe-area-inset-bottom))}
.bsr-screen{animation:bsrIn .45s var(--ease) both}
.bsr-screen.wallet{animation-duration:.3s}
@keyframes bsrIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.bsr-boot{display:flex;align-items:center;justify-content:center;min-height:60vh}
.bsr-spin{width:28px;height:28px;border-radius:50%;border:3px solid var(--fill);border-top-color:var(--p);animation:bsrSpin .8s linear infinite;display:inline-block}
@keyframes bsrSpin{to{transform:rotate(360deg)}}

/* ---------- auth ---------- */
.bsr-auth{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column;padding:calc(56px + env(safe-area-inset-top)) 24px 24px;position:relative}
.bsr-back{position:absolute;top:calc(12px + env(safe-area-inset-top));left:12px;width:44px;height:44px;border-radius:50%!important;display:flex!important;align-items:center;justify-content:center;color:var(--p)!important}
.bsr-back:active{background:var(--fill)!important}
.bsr-auth-head{text-align:center;margin:12px 0 32px}
.bsr-auth-head h1{font-size:30px;font-weight:700;letter-spacing:-.025em;margin-top:18px}
.bsr-auth-head p{color:var(--sub);margin-top:8px;font-size:16px}
.bsr-auth-ic{width:76px;height:76px;margin:0 auto;border-radius:22px;display:flex;align-items:center;justify-content:center;color:#fff;
  background:linear-gradient(145deg,var(--p),var(--p2));box-shadow:0 10px 30px color-mix(in srgb,var(--p) 35%,transparent)}
.bsr-logo{display:block;object-fit:contain;background:#fff;border-radius:22%}
.bsr-logo.lg{width:84px;height:84px;margin:0 auto;border-radius:24px;box-shadow:var(--shadow);padding:8px}
.bsr-logo.sm{width:32px;height:32px;border-radius:9px}
.bsr-logo-ph{display:flex!important;align-items:center;justify-content:center;color:#fff;background:linear-gradient(145deg,var(--p),var(--p2))!important;padding:0!important}
.bsr-logo.sm.bsr-logo-ph svg{width:20px;height:20px}
.bsr-auth-body{flex:1}
.bsr-foot{text-align:center;color:var(--sub);font-size:13px;padding-top:24px}

.bsr-form{display:flex;flex-direction:column;gap:14px}
.bsr-phone{display:flex;align-items:center;height:58px;background:var(--card);border-radius:16px;padding:0 18px;box-shadow:var(--shadow);border:1px solid var(--line)}
.bsr-phone span{font-weight:600;padding-right:14px;margin-right:14px;border-right:1px solid var(--line);line-height:26px}
.bsr-phone input{flex:1;border:0!important;background:transparent!important;font-size:19px!important;letter-spacing:.06em;outline:0;padding:0!important;height:100%;min-width:0}
.bsr-btn{display:flex!important;align-items:center;justify-content:center;gap:8px;width:100%!important;height:54px!important;border-radius:16px!important;
  background:var(--p)!important;color:#fff!important;font-size:17px!important;font-weight:600!important;text-decoration:none!important;
  transition:transform .15s,opacity .2s;position:relative}
.bsr-btn:active{transform:scale(.97)}
.bsr-btn:disabled{opacity:.55}
.bsr-btn.ghost{background:var(--fill)!important;color:var(--p)!important}
.bsr-btn.danger{color:var(--red)!important}
.bsr-btn.is-busy{color:transparent!important}
.bsr-btn.is-busy::after{content:"";position:absolute;width:22px;height:22px;border-radius:50%;border:2.5px solid rgba(255,255,255,.4);border-top-color:#fff;animation:bsrSpin .7s linear infinite}
.bsr-btn.ghost.is-busy::after{border-color:var(--fill);border-top-color:var(--p)}
.bsr-link{display:block!important;margin:22px auto 0!important;color:var(--p)!important;font-weight:600;font-size:16px;padding:8px 12px!important}
.bsr-link:disabled{color:var(--sub)!important;font-weight:500}

/* PIN / OTP */
.bsr-pin{position:relative;display:block;max-width:300px;margin:0 auto}
.bsr-pin.long{max-width:360px}
.bsr-pin-in{position:absolute;inset:0;width:100%;height:100%;opacity:0;z-index:2;font-size:16px!important;caret-color:transparent;border:0}
.bsr-pin-boxes{display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:12px}
.bsr-pin.long .bsr-pin-boxes{gap:8px}
.bsr-pin-boxes span{height:64px;border-radius:16px;background:var(--card);box-shadow:var(--shadow);border:2px solid transparent;display:flex;align-items:center;justify-content:center;
  font-size:28px;font-weight:600;transition:border-color .15s,transform .15s;position:relative}
.bsr-pin.long .bsr-pin-boxes span{height:56px;border-radius:14px;font-size:24px}
.bsr-pin-boxes span.c{border-color:var(--p)}
.bsr-pin-boxes span.c::before{content:"";width:2px;height:28px;background:var(--p);animation:bsrBlink 1s steps(1) infinite}
.bsr-pin.masked .bsr-pin-boxes span.f::after{content:"";width:16px;height:16px;border-radius:50%;background:var(--text);animation:bsrPop .2s var(--ease)}
.bsr-pin:not(.masked) .bsr-pin-boxes span.f{animation:bsrPop .2s var(--ease)}
@keyframes bsrBlink{50%{opacity:0}}
@keyframes bsrPop{from{transform:scale(.5)}to{transform:none}}
.bsr-pin.shake .bsr-pin-boxes{animation:bsrShake .45s}
@keyframes bsrShake{20%,60%{transform:translateX(-10px)}40%,80%{transform:translateX(10px)}}
.bsr-test{background:color-mix(in srgb,#ffcc00 22%,var(--card));border-radius:12px;padding:10px 14px;text-align:center;margin-bottom:18px;font-size:14px}

/* form fields */
.tall .bsr-auth-head{margin-bottom:22px}
.bsr-field{display:flex;flex-direction:column;gap:6px}
.bsr-label{font-size:13px;color:var(--sub);font-weight:500;padding-left:4px}
.bsr-label i,.bsr-toggle-row i{color:var(--red);font-style:normal}
.bsr-field input,.bsr-field select,.bsr-field textarea{width:100%;background:var(--card)!important;border:1px solid var(--line)!important;border-radius:14px!important;
  padding:14px 16px!important;font-size:16px!important;outline:0;min-height:52px;height:auto}
.bsr-field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1.5l5 5 5-5' fill='none' stroke='%238e8e93' stroke-width='2'/%3E%3C/svg%3E")!important;
  background-repeat:no-repeat!important;background-position:right 16px center!important;padding-right:40px!important}
.bsr-field input:focus,.bsr-field select:focus,.bsr-field textarea:focus{border-color:var(--p)!important;box-shadow:0 0 0 4px color-mix(in srgb,var(--p) 15%,transparent)!important}
.bsr-choices{display:flex;flex-wrap:wrap;gap:8px}
.bsr-choice{position:relative}
.bsr-choice input{position:absolute;opacity:0;pointer-events:none}
.bsr-choice span{display:block;padding:10px 16px;border-radius:20px;background:var(--card);border:1px solid var(--line);font-size:15px;cursor:pointer;transition:.15s}
.bsr-choice input:checked+span{background:var(--p);color:#fff;border-color:var(--p)}
.bsr-choice input:focus-visible+span{outline:3px solid color-mix(in srgb,var(--p) 55%,transparent)}
.bsr-toggle-row{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--card);border-radius:14px;padding:12px 16px;border:1px solid var(--line)}
.bsr-switch{width:51px!important;height:31px!important;border-radius:16px!important;background:var(--fill)!important;position:relative;flex:0 0 51px;cursor:pointer;transition:background .2s;border:0!important}
.bsr-switch::after{content:"";position:absolute;top:2px;left:2px;width:27px;height:27px;border-radius:50%;background:#fff;box-shadow:0 2px 6px rgba(0,0,0,.2);transition:transform .25s var(--ease)}
.bsr-switch:checked{background:var(--green)!important}
.bsr-switch:checked::after{transform:translateX(20px)}
.bsr-consent{display:flex;gap:12px;align-items:flex-start;font-size:14px;color:var(--sub);padding:4px}
.bsr-consent input{width:24px!important;height:24px!important;flex:0 0 24px;border-radius:7px!important;border:2px solid var(--line)!important;background:var(--card)!important;position:relative;cursor:pointer;margin-top:1px}
.bsr-consent input:checked{background:var(--p)!important;border-color:var(--p)!important}
.bsr-consent input:checked::after{content:"";position:absolute;left:6px;top:2px;width:6px;height:11px;border:solid #fff;border-width:0 2.5px 2.5px 0;transform:rotate(45deg)}

/* ---------- wallet ---------- */
.bsr-top{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;
  background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);border-bottom:.5px solid var(--line)}
.bsr-top-brand{display:flex;align-items:center;gap:10px;font-weight:700;font-size:17px;letter-spacing:-.01em}
.bsr-icon-btn{width:38px;height:38px;border-radius:50%!important;background:var(--fill)!important;display:flex!important;align-items:center;justify-content:center;color:var(--p)!important}
.bsr-hero{margin:16px;border-radius:26px;padding:24px 22px;color:#fff;position:relative;overflow:hidden;min-height:150px;display:flex;align-items:center;
  background:linear-gradient(135deg,var(--p),var(--p2));box-shadow:0 16px 40px color-mix(in srgb,var(--p) 30%,transparent)}
.bsr-hero-txt{position:relative;z-index:2}
.bsr-amt{font-size:44px;font-weight:800;letter-spacing:-.035em;line-height:1}
.bsr-amt-l{opacity:.9;margin-top:6px;font-weight:500}
.bsr-pill{display:inline-block;margin-top:14px;background:rgba(255,255,255,.22);border-radius:20px;padding:6px 12px;font-size:13px;font-weight:600;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.bsr-hero-art{position:absolute;right:-10px;top:0;bottom:0;width:48%}
.bsr-hero-art span{position:absolute;border-radius:50%;background:rgba(255,255,255,.14)}
.bsr-hero-art .b1{width:160px;height:160px;right:-30px;top:-40px}
.bsr-hero-art .b2{width:90px;height:90px;right:70px;bottom:-30px}
.bsr-hero-art .b3{width:40px;height:40px;right:40px;top:30px;background:rgba(255,255,255,.25)}
.bsr-hero-art svg{position:absolute;right:28px;top:50%;width:84px;height:84px;color:#fff;transform:translateY(-50%) rotate(-10deg);filter:drop-shadow(0 8px 16px rgba(0,0,0,.18))}
.bsr-hero-art svg rect[fill="#fff"]{fill:var(--p)}

.bsr-seg{display:flex;margin:4px 16px 0;background:var(--fill);border-radius:10px;padding:2px}
.bsr-seg button{flex:1;height:34px;border-radius:8px!important;font-size:14px;font-weight:600;color:var(--text)!important;transition:background .2s,box-shadow .2s;text-align:center}
.bsr-seg button b{font-weight:500;color:var(--sub);margin-left:4px}
.bsr-seg button.on{background:var(--card)!important;box-shadow:0 3px 8px rgba(0,0,0,.12),0 3px 1px rgba(0,0,0,.04)!important}
.bsr-chips{display:flex;gap:8px;overflow-x:auto;padding:14px 16px 0;scrollbar-width:none}
.bsr-chips::-webkit-scrollbar{display:none}
.bsr-chips button{flex:0 0 auto;padding:7px 14px;border-radius:18px!important;background:var(--card)!important;border:1px solid var(--line)!important;font-size:14px;font-weight:500;white-space:nowrap}
.bsr-chips button.on{background:var(--text)!important;color:var(--bg)!important;border-color:var(--text)!important}

.bsr-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;padding:16px}
.bsr-tile{position:relative;aspect-ratio:1/1;width:100%!important;border-radius:22px!important;overflow:hidden;display:block!important;background:var(--card)!important;
  box-shadow:var(--shadow);transition:transform .2s var(--ease)}
.bsr-tile:active{transform:scale(.96)}
.bsr-tile-new{background:var(--p)!important}
.bsr-cover-img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.bsr-cover-pat{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;
  background:radial-gradient(circle at 20% 20%,rgba(255,255,255,.22) 0 8%,transparent 9%),radial-gradient(circle at 80% 30%,rgba(255,255,255,.16) 0 6%,transparent 7%),
  radial-gradient(circle at 70% 85%,rgba(255,255,255,.18) 0 9%,transparent 10%),radial-gradient(circle at 15% 80%,rgba(255,255,255,.12) 0 5%,transparent 6%),
  linear-gradient(140deg,color-mix(in srgb,var(--p) 80%,#fff),var(--p) 45%,var(--p2))}
.bsr-cover-ic svg{width:56px;height:56px;filter:drop-shadow(0 6px 12px rgba(0,0,0,.2));animation:bsrFloat 3s ease-in-out infinite}
.bsr-cover-ic svg rect[fill="#fff"]{fill:var(--p)}
@keyframes bsrFloat{50%{transform:translateY(-5px) rotate(-4deg)}}
.bsr-tile-new::after{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.35) 50%,transparent 70%);
  transform:translateX(-100%);animation:bsrShine 3.2s ease-in-out infinite}
@keyframes bsrShine{60%,100%{transform:translateX(100%)}}
.bsr-tile-cta{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;align-items:center;gap:5px;white-space:nowrap;
  background:rgba(255,255,255,.92);color:#1c1c1e;font-size:13px;font-weight:600;padding:6px 12px;border-radius:16px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.bsr-tile-rev{text-align:left!important;padding:16px!important}
.bsr-tile-logo{width:30px;height:30px;border-radius:8px;object-fit:contain;background:#fff;margin-bottom:10px;display:block;box-shadow:0 0 0 1px var(--line)}
.bsr-tile-title{display:block;font-size:24px;font-weight:700;letter-spacing:-.03em;line-height:1.1}
.bsr-tile-from{display:block;color:var(--sub);font-size:13px;margin-top:4px;line-height:1.3;max-height:2.6em;overflow:hidden}
.bsr-ticket{position:absolute;right:-6px;bottom:-4px;width:58%;height:auto;pointer-events:none}
.bsr-tile .bsr-badge{position:absolute;top:12px;right:12px;font-style:normal;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;
  background:rgba(0,0,0,.72);color:#fff;padding:4px 8px;border-radius:8px;z-index:3}
.bsr-tile .bsr-badge.ok{background:var(--green)}
.bsr-tile.is-exp{filter:grayscale(1);opacity:.55}
.bsr-tile.is-exp::after{display:none}
.bsr-tile.is-used .bsr-tile-title{opacity:.6}
.bsr-empty{display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--sub);padding:60px 24px;text-align:center}
.bsr-empty svg{width:60px;height:60px;color:var(--fill);margin-bottom:8px}
.bsr-empty b{color:var(--text);font-size:18px}

/* ---------- overlay ---------- */
.bsr-ov{position:fixed;inset:0;z-index:99999;opacity:0;transition:opacity .3s}
.bsr-ov.open{opacity:1}
.bsr-ov-bg{position:absolute;inset:0;background:rgba(0,0,0,.62);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
.bsr-x{position:absolute!important;z-index:5;top:calc(14px + env(safe-area-inset-top));right:14px;width:40px;height:40px;border-radius:50%!important;
  background:rgba(255,255,255,.16)!important;color:#fff!important;display:flex!important;align-items:center;justify-content:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
.bsr-ov-scroll{position:relative;z-index:2;height:100%;overflow-y:auto;-webkit-overflow-scrolling:touch;display:flex;flex-direction:column;pointer-events:none}
.bsr-ov-scroll>*{pointer-events:auto}
.bsr-stage{flex:1 0 auto;display:flex;align-items:center;justify-content:center;padding:calc(70px + env(safe-area-inset-top)) 20px 24px;min-height:62%;transition:min-height .45s var(--ease),padding .45s var(--ease);pointer-events:none}
.bsr-ov.has-sheet .bsr-stage{min-height:0;padding-top:calc(64px + env(safe-area-inset-top));padding-bottom:20px}
.bsr-big{pointer-events:auto;position:relative;width:min(76vw,310px);aspect-ratio:1/1;border-radius:28px;background:#fff;color:#1c1c1e;overflow:hidden;
  box-shadow:0 30px 60px rgba(0,0,0,.35);transform:scale(.85);transition:transform .5s var(--ease)}
.bsr-ov.open .bsr-big{transform:none}
.bsr-ov.has-sheet .bsr-big{transform:scale(.86)}
.bsr-big.is-exp{filter:grayscale(1)}
.bsr-big-in{position:absolute;inset:0}
.bsr-big-load{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.bsr-face{position:absolute;inset:0;padding:24px;text-align:left}
.bsr-face-logo{width:40px;height:40px;border-radius:10px;object-fit:contain;margin-bottom:14px;box-shadow:0 0 0 1px rgba(0,0,0,.08);display:block}
.bsr-face-title{font-size:38px;font-weight:800;letter-spacing:-.035em;line-height:1.05}
.bsr-face-from{font-size:18px;color:#3a3a3c;margin-top:6px}
.bsr-codechip{display:inline-flex!important;align-items:center;gap:10px;margin-top:16px!important;background:#f2f2f7!important;color:#1c1c1e!important;
  padding:9px 14px!important;border-radius:22px!important;font-size:17px;font-weight:600;letter-spacing:.02em;position:relative;z-index:2}
.bsr-face .bsr-ticket{width:52%}
.bsr-canvas{position:absolute;inset:0;width:100%;height:100%;touch-action:none;cursor:grab;z-index:3;transition:opacity .45s,transform .45s}
.bsr-canvas.gone{opacity:0;transform:scale(1.08)}
.bsr-hint{position:absolute;z-index:4;left:50%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:6px;pointer-events:none;
  background:rgba(0,0,0,.55);color:#fff;padding:9px 14px;border-radius:20px;font-size:14px;font-weight:600;transition:opacity .3s;white-space:nowrap;
  -webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:bsrNudge 1.6s ease-in-out infinite}
.bsr-hint.hide{opacity:0}
@keyframes bsrNudge{50%{transform:translate(calc(-50% + 6px),calc(-50% - 3px))}}
.bsr-confetti{position:fixed;inset:0;width:100%;height:100%;pointer-events:none;z-index:6}

/* bottom sheet */
.bsr-sheet-wrap{width:100%;max-width:520px;margin:0 auto;transform:translateY(100%);transition:transform .5s var(--ease)}
.bsr-sheet-wrap.in{transform:none}
.bsr-sheet{background:var(--card);border-radius:28px 28px 0 0;padding:10px 22px calc(28px + env(safe-area-inset-bottom));min-height:40vh;box-shadow:0 -10px 40px rgba(0,0,0,.2)}
.bsr-grab{width:38px;height:5px;border-radius:3px;background:var(--fill);margin:0 auto 18px}
.bsr-sh-brand{display:flex;align-items:center;gap:10px;font-weight:600;margin-bottom:12px}
.bsr-sh-brand img{width:36px;height:36px;border-radius:50%;object-fit:contain;background:#fff;box-shadow:0 0 0 1px var(--line)}
.bsr-sheet h2{font-size:24px;font-weight:700;letter-spacing:-.025em;line-height:1.2}
.bsr-sh-name{color:var(--sub);margin-top:6px!important}
.bsr-sh-img{width:100%;border-radius:18px;margin-top:16px;display:block}
.bsr-sh-lbl{font-size:14px;font-weight:600;margin:20px 0 8px}
.bsr-codebar{display:flex;align-items:center;background:var(--fill);border-radius:16px;padding:6px 6px 6px 16px;gap:10px}
.bsr-codebar span{flex:1;font-family:ui-monospace,"SF Mono",Menlo,monospace;font-size:17px;font-weight:600;letter-spacing:.04em;word-break:break-all;user-select:all;-webkit-user-select:all}
.bsr-copy-btn{background:var(--p)!important;color:#fff!important;font-weight:600;padding:10px 20px!important;border-radius:12px!important;flex:0 0 auto}
.bsr-sh-row{display:flex;justify-content:space-between;gap:12px;padding:16px 0;border-bottom:.5px solid var(--line);margin-top:8px}
.bsr-sh-row span{color:var(--sub)}
.bsr-sec{padding:16px 0;border-bottom:.5px solid var(--line)}
.bsr-sec h4{font-size:15px;font-weight:700;margin-bottom:6px}
.bsr-rich{color:var(--sub);font-size:15px;line-height:1.5}
.bsr-rich p{margin:0 0 8px}.bsr-rich ul,.bsr-rich ol{margin:0 0 8px;padding-left:20px}.bsr-rich li{margin:3px 0}
.bsr-terms{padding:16px 0;border-bottom:.5px solid var(--line)}
.bsr-terms summary{font-weight:700;font-size:15px;cursor:pointer;list-style:none;display:flex;justify-content:space-between}
.bsr-terms summary::-webkit-details-marker{display:none}
.bsr-terms summary::after{content:"";width:8px;height:8px;border:solid var(--sub);border-width:0 2px 2px 0;transform:rotate(45deg);margin:4px 4px 0 0;transition:transform .2s}
.bsr-terms[open] summary::after{transform:rotate(-135deg);margin-top:8px}
.bsr-terms .bsr-rich{margin-top:10px}
.bsr-sh-actions{display:flex;flex-direction:column;gap:10px;margin-top:22px}
.bsr-used-note{display:flex;align-items:center;justify-content:center;gap:6px;color:var(--green);font-weight:600;padding:12px}
.bsr-exp-banner{margin-top:14px;background:color-mix(in srgb,var(--red) 12%,transparent);color:var(--red);border-radius:12px;padding:10px 14px;font-weight:600;font-size:14px}

/* profile sheet */
.bsr-ov.profile .bsr-ov-scroll{justify-content:flex-end}
.bsr-ov.profile .bsr-sheet-wrap{transform:translateY(100%)}
.bsr-ov.profile.open .bsr-sheet-wrap{transform:none}
.bsr-profile{padding-top:10px;display:flex;flex-direction:column;gap:16px}
.bsr-profile .bsr-grab{margin-bottom:4px}
.bsr-prof-head{display:flex;align-items:center;gap:14px}
.bsr-prof-head b{display:block;font-size:20px;letter-spacing:-.02em}
.bsr-prof-head span:not(.bsr-avatar){color:var(--sub);font-size:14px}
.bsr-avatar{width:56px;height:56px;border-radius:50%;display:flex;align-items:center;justify-content:center;color:#fff;background:linear-gradient(145deg,var(--p),var(--p2));flex:0 0 56px}
.bsr-avatar svg{width:28px;height:28px}

/* alert + toast */
.bsr-alert-wrap{position:fixed;inset:0;z-index:100001;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.35);opacity:0;transition:opacity .2s}
.bsr-alert-wrap.open{opacity:1}
.bsr-alert{width:270px;border-radius:14px;background:var(--glass);-webkit-backdrop-filter:saturate(180%) blur(30px);backdrop-filter:saturate(180%) blur(30px);text-align:center;overflow:hidden;
  transform:scale(1.1);transition:transform .2s}
.bsr-alert-wrap.open .bsr-alert{transform:none}
.bsr-alert b{display:block;padding:18px 16px 4px;font-size:17px}
.bsr-alert p{font-size:13px;padding:0 16px 18px!important}
.bsr-alert-btns{display:flex;border-top:.5px solid var(--line)}
.bsr-alert-btns button{flex:1;height:44px;color:var(--p)!important;font-size:17px;text-align:center}
.bsr-alert-btns button+button{border-left:.5px solid var(--line)!important}
.bsr-alert-btns .strong{font-weight:600}
.bsr-toast{position:fixed;left:50%;top:calc(16px + env(safe-area-inset-top));transform:translate(-50%,-140%);z-index:100002;max-width:calc(100% - 32px);
  background:rgba(28,28,30,.92);color:#fff;padding:12px 18px;border-radius:16px;font-size:15px;font-weight:500;text-align:center;
  -webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);box-shadow:0 8px 30px rgba(0,0,0,.25);transition:transform .4s var(--ease);pointer-events:none}
.bsr-toast.show{transform:translate(-50%,0)}
.bsr-toast.err{background:rgba(215,0,21,.94)}

@media (min-width:700px){.bsr-auth{min-height:auto;padding-top:80px}}
@media (prefers-reduced-motion:reduce){.bsr-app *,.bsr-app *::after{animation:none!important;transition:none!important}}
.bsr-phone input:focus-visible{outline:0}
.bsr-phone:focus-within{border-color:var(--p);box-shadow:0 0 0 4px color-mix(in srgb,var(--p) 15%,transparent)}
.bsr-top-act{display:flex;gap:8px}
.bsr-install{display:flex;align-items:center;gap:12px;margin:12px 16px 0;padding:12px 10px 12px 12px;background:var(--card);border-radius:18px;box-shadow:var(--shadow);animation:bsrIn .4s var(--ease) both}
.bsr-install .bsr-logo{width:44px;height:44px;border-radius:11px;flex:0 0 44px}
.bsr-install p{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.bsr-install p b{font-size:15px}
.bsr-install p span{font-size:13px;color:var(--sub)}
.bsr-install-btn{background:var(--p)!important;color:#fff!important;font-weight:600;font-size:14px;padding:8px 16px!important;border-radius:16px!important;flex:0 0 auto}
.bsr-install-x{color:var(--sub)!important;padding:4px!important;flex:0 0 auto}
.bsr-install-x svg{width:18px;height:18px}
.bsr-steps{display:flex;flex-direction:column;gap:18px}
.bsr-steps-head{text-align:center}
.bsr-steps-head h2{margin-top:14px!important}
.bsr-steps-head p{color:var(--sub);margin-top:6px!important}
.bsr-steps ol{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.bsr-steps li{display:flex;align-items:center;gap:14px;background:var(--fill);border-radius:14px;padding:12px 14px;font-size:15px}
.bsr-steps li>span{width:36px;height:36px;border-radius:10px;background:var(--card);color:var(--p);display:flex;align-items:center;justify-content:center;flex:0 0 36px}
.bsr-steps-note{font-size:13px;color:var(--sub);text-align:center}
.bsr-count{text-align:center;color:var(--sub);font-size:14px;margin-top:14px!important}
.bsr-auth-head p b{color:var(--text)}
