/* Refund form, using the approved account/finance modal identity. */
.stack-game-theme .modal-shell:has(.sb-refund-dialog) { align-items:safe center; padding-top:max(78px,calc(env(safe-area-inset-top) + 72px)); }
.stack-game-theme .modal-card.sb-refund-dialog { width:min(450px,calc(100vw - 32px)); }
.stack-game-theme .sb-refund-dialog [hidden] { display:none!important; }
.stack-game-theme .sb-refund-dialog .modal-copy h3 { margin-top:8px; font-size:34px; }
.stack-game-theme .sb-refund-dialog .modal-copy>p { margin-top:9px; font-size:12px; line-height:1.6; }
.refund-progress { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin:22px 0; padding:0; list-style:none; }
.refund-progress li { position:relative; display:flex; flex-direction:column; align-items:center; gap:6px; color:#747d8a; font:500 10px/1.4 var(--sb-font); }
.refund-progress li:not(:last-child)::after { content:""; position:absolute; top:10px; left:calc(50% + 14px); right:calc(-50% + 14px); height:1px; background:#dce1e5; }
.refund-progress li.is-complete::after { background:#a3c8b1; }
.refund-progress li>span { position:relative; z-index:1; display:grid; flex:none; place-items:center; width:22px; height:22px; border:1px solid #d5dbe1; border-radius:50%; background:#fff; color:#747d8a; font-size:10px; font-weight:650; }
.refund-progress li.is-current { color:#1b5033; font-weight:650; }
.refund-progress li.is-complete>span { border-color:#237546; background:#237546; color:#fff; }
.refund-progress li.is-current>span { border-color:#237546; color:#1b623a; box-shadow:none; }
.stack-game-theme .sb-refund-dialog .refund-form { display:grid; gap:13px; margin:0; }
.refund-field-pair { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr); gap:10px; }
.stack-game-theme .sb-refund-dialog .sb-finance-field>span,.refund-value-group>legend { color:#566376; font:650 12px/1.5 var(--sb-font); }
.stack-game-theme .sb-refund-dialog .sb-finance-field input,.stack-game-theme .sb-refund-dialog .sb-finance-field select,.stack-game-theme .sb-refund-dialog .sb-finance-field textarea { width:100%; min-width:0; min-height:48px; padding:11px 12px; border:1px solid #e0e5ec; border-radius:14px; background:#eef1f5; color:var(--sb-ink); font:600 16px/1.5 var(--sb-font); box-shadow:none; }
.stack-game-theme .sb-refund-dialog .sb-finance-field textarea { min-height:96px; resize:vertical; }
.stack-game-theme .sb-refund-dialog .sb-finance-field :is(input,textarea)::placeholder { color:#65758a; opacity:1; }
.stack-game-theme .sb-refund-dialog .sb-finance-field textarea:focus { outline:2px solid #2f7ae5; outline-offset:2px; }
.stack-game-theme .sb-refund-dialog .sb-finance-field select { padding-right:36px; appearance:none; background:#eef1f5 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%236a7589' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.sb-refund-dialog select:invalid { color:#65758a!important; }
.refund-bank-picker { position:relative; min-width:0; }
.stack-game-theme .sb-refund-dialog .refund-bank-trigger { display:flex; align-items:center; gap:10px; width:100%; min-width:0; min-height:52px; padding:8px 12px; border:1px solid #e0e5ec; border-radius:14px; background:#eef1f5; color:var(--sb-ink); font:600 16px/1.5 var(--sb-font); text-align:left; box-shadow:none; }
.refund-bank-trigger.is-placeholder #refundBankValue { color:#65758a; }
#refundBankValue { flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.refund-bank-trigger-icon { display:grid; flex:none; place-items:center; width:30px; height:30px; border-radius:9px; background:#e5ebf4; color:#6d809a; }
.refund-bank-trigger:not(.is-placeholder) .refund-bank-trigger-icon { background:#e1f2e7; color:#27834b; }
.refund-bank-trigger svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.refund-bank-trigger .refund-bank-chevron { flex:none; color:#7d8da4; transition:transform .15s; }
.refund-bank-trigger[aria-expanded=true] .refund-bank-chevron { transform:rotate(180deg); }
.refund-bank-trigger[aria-expanded=true] { outline:2px solid #2f7ae5; outline-offset:2px; }
.refund-bank-trigger[aria-invalid=true] { outline:2px solid #c52a47; outline-offset:2px; }
.refund-bank-menu { --refund-bank-rise:-4px; position:absolute; z-index:9; top:calc(100% + 8px); left:0; right:0; display:flex; flex-direction:column; gap:8px; padding:8px; overflow:hidden; border:1px solid #d7e2ef; border-radius:18px; background:#fff; box-shadow:0 14px 36px #10264f30,0 2px 6px #10264f0d; animation:refund-bank-open .16s ease-out; }
.refund-bank-menu.is-above { --refund-bank-rise:4px; top:auto; bottom:calc(100% + 8px); }
.refund-bank-search { display:flex; flex:none; align-items:center; gap:8px; min-height:42px; padding:0 10px; border:1px solid #e0e5ec; border-radius:11px; background:#eef1f5; }
.refund-bank-search>svg { flex:none; width:18px; height:18px; fill:none; stroke:#7b8da7; stroke-width:1.8; stroke-linecap:round; }
.stack-game-theme .sb-refund-dialog .refund-bank-search input { width:100%; min-width:0; min-height:40px; margin:0; padding:8px 0; border:0; border-radius:0; background:transparent; color:#253c64; font:500 16px/1.5 var(--sb-font); box-shadow:none; outline:none; }
.refund-bank-search:focus-within { border-color:#2f7ae5; box-shadow:0 0 0 1px #2f7ae5; }
.refund-bank-list { position:relative; min-height:32px; margin:0; padding:0 2px 0 0; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; scrollbar-color:#c3cfdf transparent; }
.refund-bank-list,.refund-bank-group>ul { list-style:none; }
.refund-bank-group { margin:0; padding:0; }
.refund-bank-group>ul { margin:0; padding:0; }
.refund-bank-group+.refund-bank-group { margin-top:10px; }
.refund-bank-group-title { display:block; padding:5px 8px 7px; color:#8290a5; font:750 9px/1.5 var(--sb-font); letter-spacing:.7px; text-transform:uppercase; }
.refund-bank-option { display:flex; align-items:center; gap:10px; min-height:44px; margin:2px 0; padding:7px 8px; border:1px solid transparent; border-radius:11px; color:#2b405f; font:600 13px/1.5 var(--sb-font); cursor:pointer; user-select:none; touch-action:pan-y; }
.refund-bank-mark { display:grid; flex:none; place-items:center; width:28px; height:28px; border-radius:8px; background:#edf2f8; color:#6c7e98; font:800 9px/1 var(--sb-font); letter-spacing:.3px; }
.refund-bank-name { flex:1; min-width:0; }
.refund-bank-check { display:grid; flex:none; place-items:center; width:18px; height:18px; border-radius:50%; background:#2da65b; color:#fff; font-size:12px; visibility:hidden; }
.refund-bank-option.is-active { border-color:#dce5f2; background:#f1f5fb; }
.refund-bank-option[aria-selected=true] { border-color:#b3dfc0; background:#e9f7ee; color:#19703b; }
.refund-bank-option[aria-selected=true] .refund-bank-mark { background:#d5eedf; color:#247043; }
.refund-bank-option[aria-selected=true] .refund-bank-check { visibility:visible; }
.stack-game-theme .sb-refund-dialog .refund-bank-other { display:flex; flex:none; align-items:center; gap:10px; min-height:42px; margin:0; padding:10px 8px 4px; border:0; border-top:1px solid #e5ebf3; border-radius:0; background:transparent; color:#516d8f; font:650 12px/1.5 var(--sb-font); text-align:left; }
.refund-bank-other svg { flex:none; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; }
.refund-bank-other.is-selected { color:#19703b!important; }
.refund-bank-empty { padding:20px 8px; color:#75849b; font:500 12px/1.6 var(--sb-font); text-align:center; }
@keyframes refund-bank-open { from { opacity:0; transform:translateY(var(--refund-bank-rise)); } to { opacity:1; transform:translateY(0); } }
@media (hover:hover) { .refund-bank-option:hover { background:#f1f5fb; }.refund-bank-option[aria-selected=true]:hover { background:#e9f7ee; } }
.sb-refund-dialog input::placeholder { font-size:14px; }
.sb-refund-dialog :is(input,select):focus { outline:2px solid #2f7ae5; outline-offset:2px; }
.refund-value-group { display:grid; min-width:0; gap:9px; margin:0; padding:0; border:0; text-align:left; }
.refund-value-group>legend { margin-bottom:7px; padding:0; }
.refund-amount-options { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px; }
.stack-game-theme .refund-amount-options button { min-height:40px; padding:8px; border:1px solid #e0e5ec; border-radius:12px; background:#f2f4f7; color:#40546c; font:750 13px/1.3 var(--sb-font); }
.stack-game-theme .refund-amount-options button.is-selected { border-color:#8ed69c; background:#e7f8eb; color:#12763a; }
.refund-field-error { color:#b92340; font:500 11px/1.5 var(--sb-font); }
.stack-game-theme .sb-refund-dialog .modal-primary { min-height:50px; margin-top:5px; gap:12px; padding:15px 16px; font-size:13px; letter-spacing:1px; }
.sb-refund-dialog .modal-primary svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round; }
.stack-game-theme .sb-refund-dialog h4 { margin:0; color:var(--sb-ink); font:800 23px/1.2 var(--sb-font); letter-spacing:-.5px; outline:none; }
.stack-game-theme .sb-refund-dialog .refund-step-copy { margin:8px 0 0; color:#60718b; font:500 12px/1.65 var(--sb-font); }
.refund-face-stage { position:relative; width:min(230px,100%); height:250px; margin:20px auto 12px; overflow:hidden; border:1px solid #d5e2f0; border-radius:28px; background:radial-gradient(ellipse at 50% 40%,#fff,#e4edf8); isolation:isolate; }
.refund-face-placeholder { position:absolute; inset:0; width:100%; height:100%; }
.refund-face-stage video { position:absolute; inset:0; z-index:1; width:100%; height:100%; object-fit:cover; transform:scaleX(-1); pointer-events:none; }
.refund-face-stage.has-camera .refund-face-placeholder { visibility:hidden; }
.refund-face-oval { position:absolute; z-index:2; top:22px; bottom:28px; left:34px; right:34px; border:2px solid #52bc79; border-radius:48%; box-shadow:0 0 0 80px #17324d0d; }
.refund-camera-tag { position:absolute; z-index:4; right:0; bottom:10px; left:0; color:#46627e; font:700 9px/1.4 var(--sb-font); letter-spacing:1px; text-transform:uppercase; }
.refund-face-stage.has-camera .refund-camera-tag { color:#fff; text-shadow:0 1px 4px #000; }
.stack-game-theme .sb-refund-dialog .refund-face-status { min-height:32px; margin:0 0 8px; color:#61728b; font:500 11px/1.5 var(--sb-font); }
.stack-game-theme .sb-refund-dialog .refund-camera-button { display:flex; align-items:center; justify-content:center; gap:8px; width:100%; min-height:38px; margin-bottom:10px; padding:8px 0; border:0; background:none; color:#4e6684; font:650 11px/1.4 var(--sb-font); }
.refund-camera-button svg { width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.stack-game-theme .sb-refund-dialog .refund-back { min-height:40px; margin-top:12px; padding:8px 12px; border:0; background:none; color:#61728b; font:650 11px/1.5 var(--sb-font); }
.sb-refund-dialog :is(.refund-back,.refund-camera-button):disabled { opacity:.55; cursor:wait; }
.refund-processing { padding:22px 0 32px; }
.refund-loading { width:min(300px,100%); margin:24px auto 0; }
.refund-loading-label { display:flex; justify-content:space-between; gap:12px; margin-bottom:9px; color:#4c627b; font:600 11px/1.5 var(--sb-font); }
.refund-loading-label>span:last-child { color:#13743a; font-weight:800; font-variant-numeric:tabular-nums; }
.refund-loading progress { display:block; appearance:none; width:100%; height:10px; overflow:hidden; border:0; border-radius:999px; background:#dce9e2; }
.refund-loading progress::-webkit-progress-bar { background:#dce9e2; border-radius:999px; }
.refund-loading progress::-webkit-progress-value { border-radius:999px; background:linear-gradient(90deg,#12aa4d,#46db76); }
.refund-loading progress::-moz-progress-bar { border-radius:999px; background:linear-gradient(90deg,#12aa4d,#46db76); }
.refund-approval-ring { position:relative; display:grid; place-items:center; width:88px; height:88px; margin:0 auto 23px; border-radius:50%; }
.refund-approval-ring { background:#e5f6eb; }
.stack-game-theme .sb-refund-dialog .refund-approval-ring img { position:absolute; inset:0; display:block; width:100%; height:100%; border-radius:inherit; object-fit:cover; }
.refund-approval-ring::before { content:""; position:absolute; inset:-6px; border:3px solid #d3eadb; border-top-color:#20b95b; border-right-color:#20b95b; border-radius:50%; animation:refund-spin .8s linear infinite; }
.stack-game-theme .modal-shell:has(.sb-refund-dialog[data-refund-current=done]) { padding-top:max(24px,env(safe-area-inset-top)); }
.stack-game-theme .modal-card.sb-refund-dialog[data-refund-current=done] { padding:28px 24px 22px; border:1px solid #e0e4e8; border-radius:12px; background:#fff; box-shadow:0 20px 60px #06152b33; text-align:left; }
.sb-refund-dialog[data-refund-current=done] .sb-ball-badge { display:none; }
.stack-game-theme .sb-refund-dialog[data-refund-current=done] .modal-close { top:12px; right:12px; width:30px; height:30px; border-radius:8px; background:#f3f5f6; color:#68727d; font-size:21px; }
.stack-game-theme .sb-refund-dialog[data-refund-current=done] .modal-copy h3 { max-width:calc(100% - 26px); margin:0; color:#20272f; font:700 26px/1.2 var(--sb-font); letter-spacing:-.7px; text-align:left; text-wrap:initial; }
.stack-game-theme .sb-refund-dialog[data-refund-current=done] .modal-copy>p { margin-top:8px; color:#68717c; font:400 13px/1.55 var(--sb-font); }
.refund-result { margin:0; padding:18px; border:1px solid #e0e4e8; border-radius:12px; background:#fff; text-align:left; }
.refund-result dt { color:#626d78; font:500 12px/1.5 var(--sb-font); }
.refund-result dd { margin:0; color:#27323c; font:600 13px/1.5 var(--sb-font); overflow-wrap:anywhere; }
.refund-result-total dd { margin-top:4px; color:#174d30; font-size:32px; font-weight:700; letter-spacing:-.8px; font-variant-numeric:tabular-nums; }
.refund-result-bank { display:flex; align-items:baseline; justify-content:space-between; gap:16px; margin-top:14px; padding-top:14px; border-top:1px solid #e8ebee; }
.refund-result-bank dt { flex:none; }
.refund-result-bank dd { text-align:right; }
.refund-deadline { display:flex; align-items:flex-start; gap:9px; margin:18px 0; text-align:left; }
.refund-deadline>svg { flex:none; width:18px; height:18px; margin-top:1px; fill:none; stroke:#64716d; stroke-width:1.6; stroke-linecap:round; stroke-linejoin:round; }
.stack-game-theme .sb-refund-dialog .refund-deadline p { margin:0; color:#36413c; font:400 12px/1.6 var(--sb-font); }
.refund-deadline strong { font-weight:650; }
.stack-game-theme .sb-refund-dialog .refund-deadline .refund-deadline-copy { margin-top:3px; color:#6a747b; font-size:11px; }
.refund-guidance { padding:13px 14px; border-left:3px solid #d3a342; border-radius:0 6px 6px 0; background:#fcfaf4; text-align:left; }
.stack-game-theme .sb-refund-dialog .refund-guidance h5 { margin:0; color:#554321; font:650 13px/1.5 var(--sb-font); }
.stack-game-theme .sb-refund-dialog .refund-guidance p { margin:6px 0 0; color:#675a41; font:400 12px/1.7 var(--sb-font); }
.stack-game-theme .sb-refund-dialog .refund-acknowledgement { display:flex; align-items:flex-start; gap:10px; min-height:44px; margin:18px 0 14px; padding:3px 0; border:0; border-radius:0; background:none; color:#4c5761; font:400 12px/1.6 var(--sb-font); text-align:left; cursor:pointer; user-select:none; -webkit-tap-highlight-color:transparent; }
.stack-game-theme .sb-refund-dialog .refund-acknowledgement input[type=checkbox] { appearance:none; flex:none; width:18px; height:18px; min-height:18px; margin:1px 0 0; padding:0; border:1.5px solid #a8b2bb; border-radius:4px; background:#fff; box-shadow:none; cursor:pointer; }
.stack-game-theme .sb-refund-dialog .refund-acknowledgement input[type=checkbox]:checked { border-color:#237546; background:#237546 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m5 12 4 4 10-10' fill='none' stroke='white' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/15px 15px no-repeat; }
.refund-acknowledgement input:focus-visible { outline:2px solid #2f7ae5; outline-offset:3px; }
.stack-game-theme .sb-refund-dialog [data-refund-confirm] { min-height:48px; margin:0; padding:12px 16px; border-radius:10px; background:#237546; color:#fff; font-size:14px; font-weight:650; letter-spacing:0; text-transform:none; box-shadow:none; }
.stack-game-theme .sb-refund-dialog [data-refund-confirm]:active { transform:translateY(1px); }
.stack-game-theme .sb-refund-dialog [data-refund-confirm]:disabled { background:#e8ebed; color:#737d86; box-shadow:none; filter:none; opacity:1; cursor:not-allowed; transform:none; }
.stack-game-theme .sb-refund-dialog .refund-request-status { margin:16px 0 0; padding-top:14px; border-top:1px solid #e8ebee; color:#717b84; font:400 11px/1.6 var(--sb-font); }
@keyframes refund-spin { to { transform:rotate(360deg); } }
@media (max-width:460px) {
 .refund-face-stage { width:min(200px,100%); height:210px; margin-top:16px; margin-bottom:10px; }
 .refund-face-oval { top:18px; bottom:24px; left:30px; right:30px; }
 .sb-refund-dialog[data-refund-current=face] .refund-progress { margin-block:16px; }
}
@media (max-width:360px) { .refund-field-pair { grid-template-columns:minmax(0,1fr); }.refund-progress li { gap:4px; font-size:9px; }.refund-progress li>span { width:20px; height:20px; }.stack-game-theme .sb-refund-dialog .modal-copy h3 { font-size:30px; } }
@media (prefers-reduced-motion:reduce) { .sb-refund-dialog * { animation:none!important; transition:none!important; } }
