

                  /* 积分页控件（2026-10-01 用户要求「按钮做好看一些」）：开关照站内 .guard-title-toggle 那套
                     胶囊 + 滑块，只作用在本页；返回键做成圆角胶囊。全用站内 token，深浅色自动跟随。 */
                  #pointsHubBody .pt-row { display: flex; align-items: center; justify-content: space-between; gap: 12px;
                    padding: 13px 15px; margin-bottom: 18px; border: 1px solid var(--c-border);
                    border-radius: var(--radius-md); background: color-mix(in srgb, var(--c-accent) 6%, transparent); }
                  #pointsHubBody .pt-sw { position: relative; flex: 0 0 auto; width: 62px; height: 30px; padding: 0; border: 0;
                    border-radius: 99px; background: #D5CFC7; cursor: pointer;
                    transition: background .22s var(--ease-out-quart, ease); }
                  #pointsHubBody .pt-sw::after { content: ''; position: absolute; top: 4px; left: 4px; width: 22px; height: 22px;
                    border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3);
                    transition: translate .22s var(--ease-out-quart, ease); }
                  #pointsHubBody .pt-sw[aria-checked="true"] { background: var(--c-accent); }
                  #pointsHubBody .pt-sw[aria-checked="true"]::after { translate: 32px 0; }
                  #pointsHubBody .pt-sw:hover { filter: brightness(1.04); }
                  #pointsHubBody .pt-sw:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 3px; }
                  #pointsHubBody .pt-sw-txt { min-width: 40px; text-align: right; font-size: .76em; font-weight: 700;
                    color: var(--c-text-muted); transition: color .2s; }
                  #pointsHubBody .pt-sw-wrap[data-on="1"] .pt-sw-txt { color: var(--c-accent-deep); }
                  #pointsHubBody .pt-back { display: inline-flex; align-items: center; gap: 5px; padding: 7px 14px; font: inherit;
                    font-size: .82em; font-weight: 600; cursor: pointer; border-radius: 99px;
                    border: 1px solid var(--c-border); background: var(--c-bg-card); color: var(--c-text-secondary);
                    transition: border-color .18s, color .18s, translate .18s; }
                  #pointsHubBody .pt-back:hover { border-color: var(--c-accent); color: var(--c-accent-deep); translate: 0 -1px; }
                  #pointsHubBody .pt-back:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
                  #pointsHubBody .pt-invite { display: flex; align-items: center; justify-content: space-between; gap: 12px;
                    flex-wrap: wrap; padding: 13px 15px; margin: 14px 0 18px; border-radius: var(--radius-md);
                    border: 1px dashed color-mix(in srgb, var(--c-accent) 45%, transparent);
                    background: color-mix(in srgb, var(--c-accent) 5%, transparent); }
                  #pointsHubBody .pt-code { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 1.06em;
                    letter-spacing: .14em; color: var(--c-accent-deep); }
                  #pointsHubBody .pt-copy { padding: 6px 13px; font: inherit; font-size: .78em; font-weight: 700; cursor: pointer;
                    border-radius: 99px; color: var(--c-accent-deep);
                    border: 1px solid color-mix(in srgb, var(--c-accent) 45%, transparent);
                    background: color-mix(in srgb, var(--c-accent) 10%, transparent);
                    transition: background .18s, translate .18s; }
                  #pointsHubBody .pt-copy:hover { background: color-mix(in srgb, var(--c-accent) 20%, transparent); translate: 0 -1px; }
                  #pointsHubBody .pt-copy:focus-visible { outline: 2px solid var(--c-accent); outline-offset: 2px; }
                  #pointsHubBody .pt-invite-note { flex: 1 0 100%; font-size: .74em; color: var(--c-text-muted); }
                  /* 积分提醒开关的两栏（2026-10-23 重建）：左标题+说明，右「已开启/已关闭」+ 开关 */
                  #pointsHubBody .pt-row-tx { display: flex; flex-direction: column; gap: 3px; min-width: 0; }
                  #pointsHubBody .pt-row-tx b { font-size: .9em; font-weight: 700; color: var(--c-text); }
                  #pointsHubBody .pt-row-tx span { font-size: .74em; color: var(--c-text-muted); }
                  #pointsHubBody .pt-sw-side { display: inline-flex; align-items: center; gap: 10px; flex: 0 0 auto; }
                  /* ── 积分页精修（2026-10-23，纸质账本方向）：hero / 带图标的来路卡 / 账本式明细 ── */
                  #pointsHubBody .pt-hero { display: flex; align-items: center; justify-content: space-between; gap: 14px;
                    flex-wrap: wrap; padding: 4px 2px 22px; margin-bottom: 18px; border-bottom: 1px solid var(--c-border); }
                  /* 左列 = 标签 + 大数字 + 一行副文；充值按钮贴在右边（2026-10-31 用户要求）。
                     margin-left:auto 让它在窄屏换行后也仍然靠右，而不是掉到左边。 */
                  #pointsHubBody .pt-hero-main { flex: 1 1 180px; min-width: 0; }
                  #pointsHubBody .pt-hero-buy { flex: none; margin-top: 0; margin-left: auto; }
                  #pointsHubBody .pt-hero-label { font-size: .74em; font-weight: 600; letter-spacing: .16em; color: var(--c-text-muted); }
                  #pointsHubBody .pt-hero-num { display: flex; align-items: baseline; gap: 8px; margin-top: 8px; }
                  #pointsHubBody .pt-hero-num b { font-family: 'Noto Serif SC', serif; font-size: clamp(2.3em, 6vw, 3.2em);
                    font-weight: 700; line-height: 1.02; letter-spacing: -.02em; color: var(--c-text);
                    font-variant-numeric: tabular-nums; }
                  #pointsHubBody .pt-hero-unit { font-size: .86em; font-weight: 600; color: var(--c-text-muted); }
                  #pointsHubBody .pt-hero-sub { margin: 9px 0 0; font-size: .76em; color: var(--c-text-muted); }
                  /* 小节标题 + 向右延伸的发丝线（账本味道） */
                  #pointsHubBody .pt-h { display: flex; align-items: center; gap: 12px; margin: 24px 0 12px;
                    font-size: .86em; font-weight: 700; color: var(--c-text); }
                  #pointsHubBody .pt-h::after { content: ''; flex: 1 1 auto; height: 1px; background: var(--c-border); }
                  /* 充值记录（2026-10-31）：标题右侧「全部订单 ›」放到发丝线之后（order 让线夹在中间） */
                  #pointsHubBody .pt-h::after { order: 1; }
                  #pointsHubBody .pt-h-more { order: 2; padding: 0; border: none; background: none;
                    font: inherit; font-size: .92em; font-weight: 600; color: var(--c-accent-deep); cursor: pointer;
                    white-space: nowrap; }
                  #pointsHubBody .pt-h-more:hover { text-decoration: underline; text-underline-offset: 3px; }
                  /* 「充值记录」标题本身是开关：默认收起（用户 2026-10-31 要求），点标题展开 */
                  #pointsHubBody .pt-h-toggle { order: 0; display: inline-flex; align-items: center; gap: 7px;
                    padding: 0; border: none; background: none; font: inherit; color: inherit; cursor: pointer; }
                  #pointsHubBody .pt-h-count { font-size: .86em; font-weight: 600; color: var(--c-text-muted);
                    font-variant-numeric: tabular-nums; }
                  #pointsHubBody .pt-h-chev { font-size: .92em; color: var(--c-text-muted);
                    transition: transform .18s var(--ease-out-quart); }
                  #pointsHubBody .pt-h-toggle[aria-expanded="true"] .pt-h-chev { transform: rotate(90deg); }
                  /* 充值行：非「已到账」的分数压暗；待支付那行给一个「去支付」 */
                  #pointsHubBody .pt-ledg-right b.dim { color: var(--c-text-muted); }
                  #pointsHubBody .pt-rech-go { padding: 0; border: none; background: none; font: inherit;
                    color: var(--c-accent-deep); cursor: pointer; text-decoration: underline; text-underline-offset: 2px; }
                  /* 积分来路：带图标的小卡片 */
                  #pointsHubBody .pt-tiles { display: grid; grid-template-columns: repeat(auto-fill, minmax(152px, 1fr));
                    gap: 10px; margin: 0 0 4px; }
                  #pointsHubBody .pt-tile { display: flex; flex-direction: column; gap: 2px; padding: 12px 13px;
                    border: 1px solid var(--c-border); border-radius: var(--radius-md); background: var(--c-bg-card); }
                  #pointsHubBody .pt-tile-ico { width: 30px; height: 30px; display: grid; place-items: center;
                    margin-bottom: 7px; border-radius: 10px; font-size: 1.02em; line-height: 1;
                    background: color-mix(in srgb, var(--c-accent) 9%, transparent); }
                  #pointsHubBody .pt-tile-name { font-size: .75em; font-weight: 600; color: var(--c-text-muted); }
                  #pointsHubBody .pt-tile-pts { font-family: 'Noto Serif SC', serif; font-size: 1.36em; font-weight: 700;
                    line-height: 1.2; color: var(--c-accent-deep); font-variant-numeric: tabular-nums; }
                  #pointsHubBody .pt-tile-pts.neg { color: var(--c-danger); }
                  #pointsHubBody .pt-tile-sub { font-size: .72em; color: var(--c-text-muted); }
                  /* 管理员给的：淡强调底 + 招牌图标，一眼能认出来（名字仍写「额外积分」） */
                  #pointsHubBody .pt-tile.is-extra { background: color-mix(in srgb, var(--c-accent) 7%, var(--c-bg-card));
                    border-color: color-mix(in srgb, var(--c-accent) 30%, var(--c-border)); }
                  /* 最近明细：账本行（左图标 / 中两行 / 右两行） */
                  #pointsHubBody .pt-ledger { margin: 0 0 4px; border: 1px solid var(--c-border);
                    border-radius: var(--radius-md); background: var(--c-bg-card); overflow: hidden; }
                  #pointsHubBody .pt-ledg { display: grid; grid-template-columns: 30px minmax(0, 1fr) auto;
                    align-items: center; gap: 10px; padding: 11px 14px; border-bottom: 1px solid #F0EFED; }
                  #pointsHubBody .pt-ledg:last-child { border-bottom: 0; }
                  #pointsHubBody .pt-ledg-ico { width: 28px; height: 28px; display: grid; place-items: center;
                    border-radius: 9px; font-size: .86em; line-height: 1;
                    background: color-mix(in srgb, var(--c-accent) 8%, transparent); }
                  #pointsHubBody .pt-ledg-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
                  #pointsHubBody .pt-ledg-main b { font-size: .84em; font-weight: 600; color: var(--c-text); }
                  #pointsHubBody .pt-ledg-main span { font-size: .74em; color: var(--c-text-muted);
                    white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
                  #pointsHubBody .pt-ledg-right { display: flex; flex-direction: column; align-items: flex-end; gap: 2px; }
                  #pointsHubBody .pt-ledg-right b { font-size: .88em; font-weight: 700; color: var(--c-accent-deep);
                    font-variant-numeric: tabular-nums; }
                  #pointsHubBody .pt-ledg-right b.neg { color: var(--c-danger); }
                  #pointsHubBody .pt-ledg-right span { font-size: .7em; color: var(--c-text-muted);
                    font-variant-numeric: tabular-nums; }
                  #pointsHubBody .pt-empty { grid-column: 1 / -1; padding: 18px 14px; font-size: .8em;
                    color: var(--c-text-muted); text-align: center; border: 1px dashed var(--c-border);
                    border-radius: var(--radius-md); }
                  html.dark #pointsHubBody .pt-ledg { border-bottom-color: #3A3532; }
                  html.dark #pointsHubBody .pt-tile-ico,
                  html.dark #pointsHubBody .pt-ledg-ico { background: rgba(255,255,255,.06); }
                
