/* /player 完整展示层。独立于后台样式；原业务状态仍使用 hidden/disabled。 */
.player-ui {
  --pc-bg:#0B0F14; --pc-sidebar:#080C11; --pc-card:#121923; --pc-hover:#192330;
  --pc-text:#F3F5F7; --pc-body:#C3CCD7; --pc-muted:#8995A7; --pc-accent:#70D7FF;
  --pc-on-accent:#06131A; --pc-line:rgba(255,255,255,.08); --pc-control-line:#394657;
  --pc-error:#FFB4B4; --pc-success:#A3D9C3; --pc-motion:160ms;
  --pc-s1:8px; --pc-s2:12px; --pc-s3:16px; --pc-s4:24px; --pc-s5:32px;

  /* 可切换表面色；默认值保持原登录页。 */
  --pc-control-hover:#66768C;
  --pc-control-pressed:#253344;
  --pc-primary-hover:#A1E5FF;
  --pc-primary-pressed:#56B7DE;
  --pc-disabled-text:#A6B1C1;
  --pc-disabled-bg:#202A37;
  --pc-disabled-line:#334152;
  --pc-placeholder:#9AA6B7;
  --pc-selected-bg:#16303E;
  --pc-error-line:#70454D;
  --pc-error-bg:#2D1D25;
  --pc-success-bg:#172B27;
  --pc-success-line:#395E51;
  --pc-tag-line:#3D4C5E;
  --pc-current-line:#4E849D;
  --pc-current-bg:#142733;
  --pc-claimed-bg:#14231F;
  --pc-track:#2A3544;
  --pc-wheel-rim:#405165;
  --pc-wheel-label-line:#59697C;
  --pc-wheel-center-line:#415369;
  margin:0; min-height:100dvh; color-scheme:dark; background:var(--pc-bg); color:var(--pc-body);
  font:400 14px/1.6 "Segoe UI","PingFang SC","Microsoft YaHei",system-ui,sans-serif;
  overflow-wrap:anywhere; scrollbar-color:#455264 var(--pc-bg);
}
.player-ui *, .player-ui *::before, .player-ui *::after {box-sizing:border-box}
/* 保证原脚本的 hidden 不被布局 display 覆盖。 */
/* 暂时隐藏幸运抽奖入口及内容；保留原 DOM、事件、接口和数据，便于恢复。 */
.player-ui [hidden],
.player-ui [data-player-tab="lucky-wheel"],
.player-ui #player-tab-lucky-wheel {display:none!important}
.player-ui ::selection {background:#70D7FF30;color:var(--pc-text)}
.player-ui :where(h1,h2,h3,h4,p,dl,dd) {margin:0}
.player-ui :where(h1,h2,h3,h4,b,strong) {color:var(--pc-text)}
.player-ui :where(h1,h2,h3,h4) {font-weight:600;line-height:1.4;text-wrap:pretty}
.player-ui :where(b,strong) {font-weight:600}
.player-ui :where(h3) {font-size:20px}
.player-ui :where(h4) {font-size:16px}
.player-ui :where(small) {color:var(--pc-muted);font-size:12px}
.player-ui :where(a) {color:var(--pc-accent);text-underline-offset:4px}
.player-ui :where(button,input,select,textarea) {font:inherit;max-width:100%;min-width:0}
.player-ui :where(button) {min-height:44px;padding:10px 16px;border:1px solid var(--pc-control-line);border-radius:8px;background:transparent;color:var(--pc-body);cursor:pointer;font-weight:500;line-height:1.5;white-space:normal;overflow-wrap:anywhere;transition:background-color var(--pc-motion),border-color var(--pc-motion),color var(--pc-motion)}
.player-ui :where(button):hover:not(:disabled) {background:var(--pc-hover);border-color:var(--pc-control-hover);color:var(--pc-text)}
.player-ui :where(button):active:not(:disabled) {background:var(--pc-control-pressed)}
.player-ui :where(input,select,textarea) {width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--pc-control-line);border-radius:8px;background:var(--pc-bg);color:var(--pc-text);font-size:14px;line-height:1.5;caret-color:var(--pc-accent);accent-color:var(--pc-accent)}
.player-ui :where(textarea) {resize:vertical;min-height:144px}
.player-ui ::placeholder {color:var(--pc-placeholder);opacity:1}
.player-ui :where(label) {display:grid;gap:8px;font-weight:500}
.player-ui :where(button,a,summary,input,select,textarea):focus-visible {outline:2px solid var(--pc-accent);outline-offset:4px}
.player-ui :where(.player-login-submit,.player-product-buy-button,.player-product-detail footer button,#player-recharge-button,#player-exchange-button,#player-sign-in-button,.player-privilege-card button,[data-claim-recharge-tier],#player-recharge-detail-claim,#player-role-confirm-submit,#player-role-binding-submit,#player-legacy-recharge-submit,.player-ticket-form button[type=submit]) {background:var(--pc-accent);color:var(--pc-on-accent);border-color:transparent;font-weight:600}
.player-ui :where(.player-login-submit,.player-product-buy-button,.player-product-detail footer button,#player-recharge-button,#player-exchange-button,#player-sign-in-button,.player-privilege-card button,[data-claim-recharge-tier],#player-recharge-detail-claim,#player-role-confirm-submit,#player-role-binding-submit,#player-legacy-recharge-submit,.player-ticket-form button[type=submit]):hover:not(:disabled) {background:var(--pc-primary-hover);color:var(--pc-on-accent);border-color:transparent}
.player-ui :where(.player-product-buy-button,#player-recharge-button,#player-exchange-button):active:not(:disabled) {background:var(--pc-primary-pressed)}
.player-ui :where(button,input,select,textarea):disabled {opacity:1;cursor:not-allowed;color:var(--pc-disabled-text);background:var(--pc-disabled-bg);border-color:var(--pc-disabled-line)}
.player-ui .player-icon-defs {position:absolute;width:0;height:0;overflow:hidden;pointer-events:none}
.player-ui .player-icon {width:20px;height:20px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}

/* 品牌栏、精简导航、顶部角色区、扁平主内容。 */
.player-ui .player-app {width:min(1536px,calc(100% - 64px));margin:auto;padding-bottom:32px}
.player-ui .player-app-head {display:flex;justify-content:space-between;align-items:center;gap:24px;min-height:80px;padding:16px 0;border-bottom:1px solid var(--pc-line)}
.player-ui .player-app-brand {display:flex;align-items:center;gap:12px;min-width:0;text-decoration:none;color:var(--pc-text)}
.player-ui .player-app-brand>span,.player-ui .player-login-seal {display:grid;place-items:center;width:36px;height:36px;flex-shrink:0;border:1px solid #475363;border-radius:8px;background:var(--pc-card);color:var(--pc-text);font-size:18px;font-weight:600}
.player-ui .player-app-brand b {font-size:17px;font-weight:600}
.player-ui .player-app-brand small {display:block;font-size:10px;letter-spacing:.16em}
.player-ui .player-app-account {display:flex;align-items:center;gap:16px;font-size:13px}
.player-ui .player-app-account>span {max-width:240px}
.player-ui .player-app-account button {min-height:40px;padding:8px 12px;font-size:13px}
.player-ui .player-workspace {display:grid;grid-template-columns:216px minmax(0,1fr);gap:32px;align-items:start;padding-top:24px}
.player-ui .player-side-card {position:sticky;top:24px;min-width:0;padding:12px 8px;background:var(--pc-sidebar);border:1px solid var(--pc-line);border-radius:12px}
.player-ui .player-mobile-menu {display:none}
.player-ui .player-side-nav {display:grid;gap:4px}
.player-ui .player-side-nav button {position:relative;display:flex;align-items:center;gap:12px;width:100%;min-height:46px;padding:10px 12px;border:0;color:#AFBBCB;text-align:left;font-size:14px;font-weight:400}
.player-ui .player-side-nav b {color:inherit;font-weight:500}
.player-ui .player-side-nav small,.player-ui .player-side-nav em {display:none}
.player-ui .player-side-nav .player-icon {width:18px;height:18px}
.player-ui .player-side-nav button:hover:not(:disabled) {background:#121B26}
.player-ui .player-side-nav button.active {background:var(--pc-hover);color:var(--pc-text)}
.player-ui .player-side-nav button.active::before {content:"";position:absolute;left:-1px;top:14px;bottom:14px;width:2px;border-radius:2px;background:var(--pc-accent)}
.player-ui .player-side-nav button.active .player-icon {color:var(--pc-accent)}
.player-ui .player-content-column {min-width:0;display:grid;gap:32px}
.player-ui .player-context-card {min-width:0;padding:20px 24px 16px;border:1px solid var(--pc-line);border-radius:12px;background:#0F151E}
.player-ui .player-context-grid {display:grid;grid-template-columns:minmax(160px,.9fr) minmax(0,1fr) minmax(180px,.9fr);gap:24px;align-items:center}
.player-ui .player-side-zone {font-size:12px;color:var(--pc-muted)}
.player-ui .player-side-state {margin-top:8px;font-size:12px;color:var(--pc-body)}
.player-ui .player-side-profile {min-width:0}
.player-ui .player-side-profile h1 {font-size:18px;margin:4px 0;overflow-wrap:anywhere}
.player-ui .player-side-profile p {font-size:12px;color:var(--pc-muted)}
.player-ui .player-role-binding-state {display:flex;flex-wrap:wrap;align-items:center;gap:12px;justify-content:space-between;min-width:0}
.player-ui .player-role-binding-state>div {min-width:0;flex:1 1 80px}
.player-ui .player-role-binding-state :is(small,b) {display:block}
.player-ui .player-role-binding-state b {margin-top:4px;font-size:14px}
.player-ui .player-role-binding-state button {padding:10px 12px;font-size:13px}
.player-ui .player-side-note {display:flex;flex-wrap:wrap;gap:4px 16px;margin-top:16px;padding-top:12px;border-top:1px solid var(--pc-line);font-size:12px;color:var(--pc-muted)}
.player-ui .player-side-note b {color:var(--pc-body);font-weight:500}
.player-ui .player-agent-qq-card {display:flex;flex-wrap:wrap;align-items:center;gap:8px 16px;margin-top:12px;padding-top:12px;border-top:1px solid var(--pc-line)}
.player-ui .player-agent-qq-card p {font-size:12px;color:var(--pc-muted)}
.player-ui .player-agent-qq-card button {margin-left:auto;font-size:13px}
.player-ui .player-status {margin-top:16px;padding:12px 16px;border:1px solid #3B5368;border-radius:8px;background:#152330;color:#C3DCEB;font-size:13px}
.player-ui .player-status.error {border-color:var(--pc-error-line);background:var(--pc-error-bg);color:var(--pc-error)}
.player-ui .player-main-card,.player-ui .player-tab-panel {min-width:0}
.player-ui .player-content-title {display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:24px}
.player-ui .player-content-title h2 {margin:0 0 8px;font-size:30px;line-height:1.25;letter-spacing:-.02em}
.player-ui .player-content-title p {max-width:72ch;color:var(--pc-muted);font-size:14px;line-height:1.7}
.player-ui .player-content-title>button {flex-shrink:0}
/* 原有英文装饰眉题保留于模板，不再重复占用视觉层级。 */
.player-ui :where(.player-content-title,.player-product-detail>header,.player-activity-card>header)>div>small,
.player-ui :where(.player-recharge-card>header,.player-exchange-card>header,dialog>section>header)>small {display:none}

/* 商品卡片完全使用原始动态字段及按钮条件。 */
.player-ui .player-product-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.player-ui .player-product-item {min-width:0;display:flex;flex-direction:column;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-card);transition:border-color var(--pc-motion),background-color var(--pc-motion)}
.player-ui .player-product-item:hover {border-color:#3A4859;background:#151E29}
.player-ui .player-product-item.expanded {border-color:#4C5E72}
.player-ui .player-product-summary {flex:1;display:flex;flex-direction:column;gap:24px;padding:24px;min-width:0}
.player-ui .player-product-heading {display:flex;align-items:flex-start;gap:16px}
.player-ui .player-product-icon {width:26px;height:26px;margin-top:2px;color:#A8B6C8}
.player-ui .player-product-copy {min-width:0}
.player-ui .player-product-copy h3 {font-size:18px;font-weight:600;margin-bottom:8px}
.player-ui .player-product-copy p {color:var(--pc-body);font-size:14px;line-height:1.7}
.player-ui .player-product-facts {display:flex;flex-wrap:wrap;gap:8px 16px;color:var(--pc-muted);font-size:12px}
.player-ui .player-product-facts span {padding-right:16px;border-right:1px solid #344052}
.player-ui .player-product-facts span:last-child {padding-right:0;border:0}
.player-ui .player-product-actions {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:auto;padding-top:20px;border-top:1px solid var(--pc-line)}
.player-ui .player-product-price {min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:8px}
.player-ui .player-product-price strong {font:500 28px/1.3 ui-monospace,"SFMono-Regular",Consolas,monospace;letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.player-ui .player-product-price small {font-size:12px}
.player-ui .player-product-buttons {display:flex;flex-wrap:wrap;align-items:center;gap:8px;max-width:100%;margin-left:auto}
.player-ui .player-product-detail-button {border-color:transparent;color:var(--pc-body);padding:10px 12px}
.player-ui .player-product-buy-button {min-width:104px}
.player-ui .player-product-detail {padding:20px 24px;border-top:1px solid var(--pc-line);background:#0F151D;border-radius:0 0 12px 12px}
.player-ui .player-product-detail>header {display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 16px;margin-bottom:16px}
.player-ui .player-product-detail>header>span {font-size:12px;color:var(--pc-muted)}
.player-ui .player-product-rewards {display:grid;gap:8px}
.player-ui .player-product-reward {display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--pc-line)}
.player-ui .player-product-reward>i {display:grid;place-items:center;width:36px;height:36px;border:1px solid #415269;border-radius:8px;color:var(--pc-body);font-style:normal}
.player-ui .player-product-reward.quality-3>i {border-color:#547A6A}
.player-ui .player-product-reward.quality-4>i {border-color:#756C91}
.player-ui .player-product-reward:is(.quality-5,.quality-6)>i {border-color:#8B806B}
.player-ui .player-product-reward :is(b,small) {display:block}
.player-ui .player-product-reward small {margin-top:4px}
.player-ui .player-product-reward em {max-width:112px;font-size:13px;font-style:normal;color:var(--pc-text);font-variant-numeric:tabular-nums}
.player-ui .player-product-detail footer {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:20px}
.player-ui .player-product-detail footer strong {font-size:22px;font-variant-numeric:tabular-nums}
.player-ui .player-product-detail footer small {font-size:12px}
.player-ui .player-product-reward-empty {padding:16px 0;color:var(--pc-muted)}

/* 横向余额概览与两个独立操作模块。 */
.player-ui .player-wallet-card {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:24px;padding:24px 32px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-card)}
.player-ui .player-balance-caption {display:flex;align-items:center;gap:16px}
.player-ui .player-balance-caption>svg {width:28px;height:28px;color:var(--pc-muted)}
.player-ui .player-balance-caption small {color:var(--pc-body);font-size:14px}
.player-ui .player-balance-caption p {color:var(--pc-muted);font-size:12px;margin-top:8px}
.player-ui .player-balance-value {display:flex;flex-wrap:wrap;align-items:baseline;gap:12px;min-width:0;font:500 44px/1.2 ui-monospace,"SFMono-Regular",Consolas,monospace;font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.player-ui .player-balance-value span {min-width:0}
.player-ui .player-balance-value em {font:400 13px/1.6 "Microsoft YaHei",sans-serif;color:var(--pc-muted)}
.player-ui .player-wallet-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:24px}
.player-ui :is(.player-recharge-card,.player-exchange-card) {min-width:0;display:flex;flex-direction:column;gap:24px;padding:24px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-card)}
.player-ui :is(.player-recharge-card,.player-exchange-card) h3 {font-size:20px}
.player-ui .player-wallet-actions {display:flex;flex-direction:column;flex:1;gap:20px;min-width:0}
.player-ui .player-wallet-actions label {font-size:14px}
.player-ui :is(.player-payment-method-picker,.player-payment-channel-picker) {display:grid;gap:8px}
.player-ui :is(.player-payment-method-picker,.player-payment-channel-picker)>div {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(136px,100%),1fr));gap:8px}
.player-ui :is(.player-payment-method-picker,.player-payment-channel-picker) button.active {border-color:var(--pc-accent);background:var(--pc-selected-bg);color:var(--pc-text)}
.player-ui .player-wallet-actions>button {width:100%;margin-top:auto}
.player-ui .player-exchange-recipient {padding:16px 0;color:var(--pc-muted);font-size:13px;line-height:1.8;border-top:1px solid var(--pc-line)}

/* 共用状态与其他已有功能的完整深色适配。 */
.player-ui .player-empty-card {grid-column:1/-1;padding:32px 24px;border:1px dashed #394657;border-radius:12px;background:#0F151D;color:#9AA7B8;text-align:center}
.player-ui .player-empty-card small {font-size:13px;color:inherit}
.player-ui .form-message {display:none;padding:12px 16px;border:1px solid var(--pc-error-line);border-radius:8px;color:var(--pc-error);background:var(--pc-error-bg)}
.player-ui .form-message.show {display:block}
.player-ui .form-message.success {background:var(--pc-success-bg);color:var(--pc-success);border-color:var(--pc-success-line)}
.player-ui .error-text {color:var(--pc-error)}
.player-ui .success-text {color:var(--pc-success)}
.player-ui .toast {position:fixed;z-index:50;left:50%;bottom:24px;transform:translateX(-50%);width:max-content;max-width:calc(100% - 32px);padding:12px 20px;border:1px solid #4A6074;border-radius:8px;background:#1B2B39;color:var(--pc-text);visibility:hidden;opacity:0;transition:opacity var(--pc-motion);pointer-events:none}
.player-ui .toast.show {visibility:visible;opacity:1}
.player-ui .toast.error {background:var(--pc-error-bg);color:var(--pc-error);border-color:var(--pc-error-line)}
.player-ui :is(.player-activity-card,.player-privilege-card,.player-recharge-tier,.player-wheel-card,.player-prize-probability,.player-ticket-form,.player-ticket-list,.player-legacy-recharge-card) {min-width:0;padding:24px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-card)}
.player-ui :is(.player-activity-card,.player-recharge-tier)>header {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:24px}
.player-ui :is(.player-activity-card,.player-recharge-tier)>header>span {color:var(--pc-body);font-size:12px;padding:4px 8px;border:1px solid var(--pc-tag-line);border-radius:4px}
.player-ui .player-activity-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.player-ui .sign-in-only-grid {grid-template-columns:minmax(0,1fr)}
.player-ui .player-sign-in-days {display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}
.player-ui .player-sign-day {display:grid;gap:8px;padding:16px 12px;border:1px solid var(--pc-line);border-radius:8px}
.player-ui .player-sign-day.current {border-color:var(--pc-current-line);background:var(--pc-current-bg)}
.player-ui .player-sign-day.claimed {background:var(--pc-claimed-bg)}
.player-ui .player-sign-day em {font-style:normal;font-size:12px;color:var(--pc-muted)}
.player-ui .player-activity-card footer {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--pc-line)}
.player-ui .player-activity-card footer p {flex:1 1 260px;font-size:13px}
.player-ui .player-activity-history {margin-top:32px}
.player-ui .player-activity-history h3 {font-size:18px;margin-bottom:16px}
.player-ui .player-activity-history-row {display:grid;grid-template-columns:minmax(100px,.6fr) minmax(0,1fr) auto;gap:16px;padding:16px 0;border-bottom:1px solid var(--pc-line);font-size:13px}
.player-ui .player-activity-history-row :is(b,small) {display:block}
.player-ui .player-activity-history-row em {font-style:normal}
.player-ui .player-recharge-progress-card {display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:16px;padding:24px;border:1px solid var(--pc-line);border-radius:12px;background:var(--pc-card)}
.player-ui .player-recharge-progress-card :is(small,b) {display:block}
.player-ui .player-recharge-progress-card b {margin:8px 0;font-size:32px;font-weight:500;font-variant-numeric:tabular-nums}
.player-ui .player-recharge-progress-card p {color:var(--pc-muted);font-size:13px}
.player-ui .player-recharge-tier-list {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin-top:24px}
.player-ui .player-recharge-tier h3 {margin-top:4px;font-size:24px;font-variant-numeric:tabular-nums}
.player-ui .player-recharge-tier p {margin-top:16px}
.player-ui .player-tier-progress {height:4px;background:var(--pc-track);overflow:hidden;border-radius:2px}
.player-ui .player-tier-progress i {display:block;height:100%;background:var(--pc-accent)}
.player-ui .player-recharge-tier-actions {display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:24px}
.player-ui .player-privilege-role {display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 16px;padding-bottom:16px;border-bottom:1px solid var(--pc-line)}
.player-ui .player-privilege-role :is(span,em) {font-size:12px;font-style:normal;color:var(--pc-muted)}
.player-ui .player-privilege-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr));gap:16px;margin-top:24px}
.player-ui .player-privilege-card {display:flex;flex-direction:column;gap:20px}
.player-ui .player-privilege-card header small {display:none}
.player-ui .player-privilege-card header h3 {margin-bottom:8px}
.player-ui .player-privilege-card header span {font-size:12px;color:var(--pc-muted)}
.player-ui .player-privilege-price {font-size:28px;color:var(--pc-text);font-variant-numeric:tabular-nums}
.player-ui .player-privilege-price small {margin-left:8px}
.player-ui .player-privilege-reward {padding-top:16px;border-top:1px solid var(--pc-line);line-height:1.8}
.player-ui .player-privilege-meta {display:grid;gap:8px;font-size:12px;color:var(--pc-muted)}
.player-ui .player-privilege-card button {margin-top:auto}
.player-ui .player-lottery-layout {display:grid;grid-template-columns:minmax(0,1.2fr) minmax(240px,.8fr);align-items:start;gap:16px}
.player-ui .player-lottery-meta {display:flex;flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:16px}
.player-ui .player-prize-probability h3 {margin-bottom:16px;font-size:18px}
.player-ui .player-prize-row {display:flex;justify-content:space-between;align-items:flex-start;gap:12px;padding:16px 0;border-bottom:1px solid var(--pc-line)}
.player-ui .player-prize-row :is(b,small) {display:block}
.player-ui .player-prize-row small {margin-top:4px}
.player-ui .player-prize-row em {font-style:normal;font-variant-numeric:tabular-nums}
.player-ui .player-prize-row.unavailable {color:var(--pc-muted);border-bottom-style:dashed}
.player-ui .player-prize-row.unavailable b {color:var(--pc-muted);font-weight:400}
/* 转盘保持原 --label-angle 与 JS 旋转几何，只调整表面表现。 */
.player-ui .player-wheel-stage {width:min(100%,470px);aspect-ratio:1;position:relative;display:grid;place-items:center;margin:auto;padding:18px}
.player-ui .player-wheel-stage:has(>.player-empty-card) {width:100%;aspect-ratio:auto;padding:0;min-height:160px}
.player-ui .player-wheel-stage>.player-empty-card {width:100%}
.player-ui .player-wheel-disc {width:100%;height:100%;position:relative;border:8px solid var(--pc-wheel-rim);border-radius:50%;transform:rotate(0deg);overflow:hidden;filter:saturate(var(--pc-wheel-saturation,.15))}
.player-ui .player-wheel-label {width:0;height:0;position:absolute;left:50%;top:50%;transform:rotate(var(--label-angle));transform-origin:center}
.player-ui .player-wheel-label>span {width:102px;min-height:49px;position:absolute;left:-51px;top:-178px;display:grid;place-items:center;align-content:center;gap:4px;padding:8px;border:1px solid var(--pc-wheel-label-line);border-radius:8px;background:var(--pc-card);text-align:center}
.player-ui .player-wheel-label b {width:100%;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.player-ui .player-wheel-label small {font-size:10px}
.player-ui .player-wheel-label.unavailable>span {border-style:dashed}
.player-ui .player-wheel-label.unavailable b {color:var(--pc-muted);font-weight:400}
.player-ui .player-wheel-label.winner>span {outline:3px solid #FFF;outline-offset:2px}
.player-ui .player-wheel-pointer {z-index:2;width:0;height:0;position:absolute;left:50%;top:4px;transform:translateX(-50%);border-left:16px solid transparent;border-right:16px solid transparent;border-top:38px solid var(--pc-accent)}
.player-ui .player-wheel-center {z-index:3;width:112px;height:112px;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;align-content:center;gap:4px;border:4px solid var(--pc-wheel-center-line);border-radius:50%;background:var(--pc-sidebar)}
.player-ui .player-wheel-center button {min-height:40px;padding:8px;font-size:12px}
.player-ui .player-wheel-center small {font-size:10px}
.player-ui .player-orders-page>div>h3 {margin:24px 0 8px;font-size:18px}
.player-ui .player-orders-page>div:first-child>h3 {margin-top:0}
.player-ui .player-order-row {display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 0;border-bottom:1px solid var(--pc-line)}
.player-ui .player-order-row :is(b,small) {display:block}
.player-ui .player-order-row b {font-size:16px;margin-bottom:8px}
.player-ui .player-order-row em {color:var(--pc-text);font-size:16px;font-style:normal;font-variant-numeric:tabular-nums}
.player-ui .player-ticket-layout {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.player-ui :is(.player-ticket-form,.player-ticket-list) {display:grid;gap:20px}
.player-ui .player-ticket-item {padding:16px 0;border-bottom:1px solid var(--pc-line)}
.player-ui .player-ticket-item :is(header,footer) {display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px 16px}
.player-ui .player-ticket-item :is(small,footer) {font-size:12px;color:var(--pc-muted)}
.player-ui .player-ticket-item small {display:block;margin-top:4px}
.player-ui .player-ticket-item p {margin:16px 0}
.player-ui .player-ticket-item em {font-style:normal}
.player-ui .player-legacy-recharge-card>header {display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between}
.player-ui .player-legacy-recharge-card>header>span {font-size:13px}
.player-ui .player-legacy-recharge-metrics {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}
.player-ui .player-legacy-recharge-metrics b {display:block;margin-top:8px;font-size:22px;font-variant-numeric:tabular-nums}
.player-ui .player-legacy-recharge-card dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.player-ui .player-legacy-recharge-card dt {font-size:12px;color:var(--pc-muted)}
.player-ui .player-legacy-recharge-card footer {display:flex;flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;padding-top:20px;border-top:1px solid var(--pc-line)}
.player-ui .player-legacy-recharge-card footer p {flex:1 1 240px;color:var(--pc-muted);font-size:13px}

/* 原有弹窗与登录界面的完整主题适配。 */
.player-ui dialog {width:min(600px,calc(100% - 32px));max-height:calc(100dvh - 32px);padding:0;overflow-y:auto;border:1px solid #3D4C5F;border-radius:12px;background:var(--pc-card);color:var(--pc-body)}
.player-ui dialog::backdrop {background:#05080DC4}
.player-ui dialog>section {position:relative;padding:32px}
.player-ui dialog header {padding-right:40px;margin-bottom:24px}
.player-ui dialog h2 {font-size:24px;margin-bottom:8px}
.player-ui dialog header p {font-size:14px;color:var(--pc-body);line-height:1.7}
.player-ui dialog .close {position:absolute;right:16px;top:16px;width:40px;min-height:40px;padding:0;font-size:24px;border-color:transparent}
.player-ui dialog dl {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0}
.player-ui dialog dt {color:var(--pc-muted);font-size:12px;margin-bottom:4px}
.player-ui dialog dd {color:var(--pc-text);font-size:15px}
.player-ui dialog dl>.wide,.player-ui .player-role-confirm-target>div:last-child {grid-column:1/-1}
.player-ui .player-role-confirm-action {display:grid;gap:8px;padding:20px 0;border-top:1px solid var(--pc-line);border-bottom:1px solid var(--pc-line)}
.player-ui .player-role-confirm-action b {font-size:16px}
.player-ui .player-role-binding-message {color:var(--pc-error);margin-top:12px;font-size:13px}
.player-ui dialog footer {display:flex;flex-wrap:wrap;gap:12px;margin-top:24px}
.player-ui dialog footer button {flex:1}
.player-ui .player-auth {min-height:100dvh;display:grid;place-items:center;padding:24px}
.player-ui .player-login-card {width:min(420px,100%);padding:32px;background:var(--pc-card);border:1px solid var(--pc-line);border-radius:12px}
.player-ui .player-login-card header {display:flex;align-items:center;gap:16px;margin-bottom:16px}
.player-ui .player-login-card header small {display:none}
.player-ui .player-login-card h1 {font-size:28px}
.player-ui .player-login-card>p {color:var(--pc-muted);margin-bottom:24px}
.player-ui .player-login-card form {display:grid;gap:20px}
.player-ui .player-login-card footer {margin-top:24px;padding-top:20px;border-top:1px solid var(--pc-line);font-size:13px;color:var(--pc-muted)}
.player-ui .player-login-card footer a {margin-left:8px}

@media(min-width:1600px) {
  .player-ui .player-product-list {grid-template-columns:repeat(3,minmax(0,1fr))}
  .player-ui .player-product-actions {align-items:flex-start;flex-direction:column}
  .player-ui .player-product-buttons {width:100%;justify-content:space-between;margin:0}
}
@media(max-width:1180px) {
  .player-ui .player-app {width:calc(100% - 48px)}
  .player-ui .player-workspace {grid-template-columns:208px minmax(0,1fr);gap:24px}
  .player-ui .player-product-list,.player-ui .player-wallet-grid,.player-ui .player-lottery-layout,.player-ui .player-ticket-layout {grid-template-columns:minmax(0,1fr)}
}
@media(max-width:900px) {
  .player-ui .player-app {width:calc(100% - 32px)}
  .player-ui .player-workspace {grid-template-columns:minmax(0,1fr);gap:24px;padding-top:16px}
  .player-ui .player-side-card {position:static;padding:0}
  .player-ui .player-mobile-menu {display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:52px;padding:12px 16px;cursor:pointer;list-style:none}
  .player-ui .player-mobile-menu::-webkit-details-marker {display:none}
  .player-ui .player-mobile-menu>span:first-child {display:flex;flex-wrap:wrap;align-items:baseline;gap:12px}
  .player-ui .player-mobile-menu b {font-size:14px;font-weight:500}
  .player-ui .player-mobile-menu small {font-size:12px}
  .player-ui .player-menu-chevron {width:16px;height:16px;transition:transform var(--pc-motion)}
  .player-ui details[open] .player-menu-chevron {transform:rotate(180deg)}
  .player-ui .player-sidebar-content {padding:8px;border-top:1px solid var(--pc-line)}
  .player-ui .player-side-nav {grid-template-columns:repeat(2,minmax(0,1fr))}
  .player-ui .player-content-column {gap:24px}
  .player-ui .player-context-card {padding:16px 20px}
}
@media(max-width:600px) {
  .player-ui .player-app {width:calc(100% - 24px);padding-bottom:24px}
  .player-ui .player-app-head {gap:12px;min-height:76px}
  .player-ui .player-app-brand {gap:8px}
  .player-ui .player-app-brand b {font-size:15px}
  .player-ui .player-app-brand small {font-size:9px}
  .player-ui .player-app-brand>span {width:32px;height:36px}
  .player-ui .player-app-account {flex-direction:column;align-items:flex-end;gap:4px;font-size:12px}
  .player-ui .player-app-account>span {max-width:116px}
  .player-ui .player-app-account button {min-height:40px;padding:8px 12px}
  .player-ui .player-side-nav button {padding:10px 8px;gap:8px;font-size:13px}
  .player-ui .player-context-card {padding:16px}
  .player-ui .player-context-grid {grid-template-columns:minmax(0,1fr) minmax(0,.92fr);gap:12px;align-items:start}
  .player-ui .player-context-zone {grid-column:1/-1;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end}
  .player-ui .player-side-state {margin:0 0 12px;max-width:96px}
  .player-ui .player-side-profile h1 {font-size:16px}
  .player-ui .player-side-profile p {margin-top:4px}
  .player-ui .player-role-binding-state {display:grid;gap:8px;justify-content:stretch}
  .player-ui .player-role-binding-state>div {display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px}
  .player-ui .player-role-binding-state b {margin-top:0}
  .player-ui .player-role-binding-state button {width:100%;min-height:42px;padding:8px;font-size:12px}
  .player-ui .player-side-note {gap:4px 12px}
  .player-ui .player-content-title {flex-wrap:wrap;gap:12px}
  .player-ui .player-content-title h2 {font-size:28px}
  .player-ui .player-product-summary {padding:20px;gap:20px}
  .player-ui .player-product-heading {gap:12px}
  .player-ui .player-product-copy h3 {font-size:17px}
  .player-ui .player-product-actions {flex-direction:column;align-items:stretch;gap:16px}
  .player-ui .player-product-buttons {margin:0;justify-content:space-between}
  .player-ui .player-product-buy-button {flex:1;max-width:70%}
  .player-ui .player-product-detail {padding:20px}
  .player-ui .player-product-reward {gap:8px;grid-template-columns:32px minmax(0,1fr) auto}
  .player-ui .player-product-reward>i {width:32px}
  .player-ui .player-product-reward em {max-width:84px}
  .player-ui .player-wallet-card {padding:24px;gap:20px}
  .player-ui .player-balance-value {width:100%;font-size:40px}
  .player-ui .player-wallet-grid {gap:16px;margin-top:16px}
  .player-ui :is(.player-recharge-card,.player-exchange-card,.player-activity-card,.player-privilege-card,.player-recharge-tier,.player-wheel-card,.player-prize-probability,.player-ticket-form,.player-ticket-list,.player-legacy-recharge-card) {padding:20px}
  .player-ui .player-recharge-tier-list,.player-ui .player-activity-grid {grid-template-columns:minmax(0,1fr)}
  .player-ui .player-sign-in-days {grid-template-columns:repeat(2,minmax(0,1fr))}
  .player-ui .player-activity-history-row {grid-template-columns:minmax(0,1fr);gap:8px}
  .player-ui .player-order-row {align-items:flex-start;flex-direction:column;gap:12px}
  .player-ui .player-legacy-recharge-card dl {grid-template-columns:minmax(0,1fr)}
  .player-ui .player-wheel-stage {width:min(100%,340px);padding:12px}
  .player-ui .player-wheel-disc {border-width:6px}
  .player-ui .player-wheel-label>span {width:72px;min-height:40px;left:-36px;top:-126px;padding:4px}
  .player-ui .player-wheel-label b {font-size:10px}
  .player-ui .player-wheel-center {width:88px;height:88px;border-width:3px}
  .player-ui .player-wheel-center button {padding:8px 4px}
  .player-ui .player-wheel-center small {font-size:9px}
  .player-ui dialog {width:calc(100% - 24px);max-height:calc(100dvh - 24px)}
  .player-ui dialog>section {padding:24px 20px}
  .player-ui dialog h2 {font-size:22px}
  .player-ui dialog dl {grid-template-columns:minmax(0,1fr)}
  .player-ui .player-login-card {padding:24px}
}
@media(prefers-reduced-motion:reduce) {
  .player-ui {--pc-motion:0s}
  /* 原转盘设置 inline transition；只缩短动画，不更改抽奖状态和结果。 */
  .player-ui .player-wheel-disc {transition-duration:.01ms!important}
}
