Files
wordpress-theme-aksrt/assets/css/routes/user-center/credits.css
T
kate522 2801a89c1f fix(vip): 在 /user/vip/ 档位购买卡下方补充积分兑换会员入口
参考主题 zibpay_user_page_tab_content_vip:非会员 + 积分兑换会员开启 +
有可兑换套餐时,在两张档位购买卡下方输出全宽入口横条(points-color 图标
+ 标题 + 立即兑换 badg),点击经 data-aksrt-vip-points-open 打开 wp_footer
静态兑换弹窗,与会员购买弹窗内入口共用同一弹窗。

- aksrt-vip.php 新增 aksrt_get_vip_points_exchange_entry_html(),门控与
  弹窗壳同源(取服务端 catalog),已是会员不展示(对齐参考主题契约)
- vip-tab.php 在卡片区之后输出入口;credits.css 补 .uc-vip-points-entry
  表面样式(与档位卡同一变量体系,暗色自适应)
- pay-vip.js 改文档级委托承接 data-aksrt-vip-points-open,一处绑定覆盖
  静态页面横条与弹窗内按钮;移除 bindModalUi 内的重复分支
- 契约测试更新为双入口(11 项),node --test 420 项通过,php -l 通过

未写数据迁移;未做真实视觉效果验收。
2026-09-23 14:30:54 +08:00

1414 lines
31 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/**
* User Center — assets (wallet + points) legacy parity
*/
/* The asset cards and the records card are sibling surfaces, not one nested card. */
.uc-content #panel-credits.dashboard-panel {
margin: 0;
padding: 0;
border: 0;
border-radius: 0;
background: transparent;
box-shadow: none;
}
/* Dual asset row — layout only (no outer mega-card). Desktop: 1 row; mobile: 2 rows. */
.uc-assets-row {
display: grid;
grid-template-columns: minmax(0, 1fr);
gap: 12px;
margin-bottom: 10px;
background: transparent;
border: 0;
box-shadow: none;
}
.uc-assets-row--dual {
grid-template-columns: repeat(2, minmax(0, 1fr));
grid-template-rows: auto;
gap: 10px;
}
.uc-assets-row--dual > .uc-assets-col {
display: contents;
}
.uc-assets-row--dual > .uc-assets-col:first-child > .uc-asset-card {
grid-column: 1;
}
.uc-assets-row--dual > .uc-assets-col:last-child > .uc-asset-card {
grid-column: 2;
}
.uc-assets-row--dual > .uc-assets-col > .uc-asset-card {
grid-row: 1;
}
.uc-assets-col {
min-width: 0;
display: flex;
flex-direction: column;
gap: 10px;
}
@media (max-width: 767px) {
.uc-assets-row--dual {
grid-template-columns: 1fr;
grid-template-rows: none;
}
.uc-assets-row--dual > .uc-assets-col {
display: flex;
grid-column: auto;
grid-row: auto;
}
.uc-assets-row--dual > .uc-assets-col > .uc-asset-card {
grid-column: auto;
grid-row: auto;
}
.uc-asset-card__body {
flex-direction: column;
align-items: flex-start;
}
}
/* One surface per asset (wallet / points) — never nest inside another card shell */
.uc-asset-card {
min-width: 0;
display: flex;
flex-direction: column;
background: var(--main-bg-color, var(--surface-1, #fff));
border-radius: var(--main-radius, 8px);
box-shadow: 0 0 10px var(--main-shadow, rgba(116, 116, 116, 0.08));
border: 1px solid var(--color-line-soft, rgba(0, 0, 0, 0.06));
padding: 16px 20px;
margin-bottom: 0;
}
/* Amount keeps its row; actions wrap below as a whole when space runs out. */
.uc-asset-card__body {
flex-wrap: wrap;
row-gap: 10px;
}
.uc-asset-card__head {
margin-bottom: 8px;
}
.uc-asset-card__title {
font-weight: 600;
color: var(--main-color, #4e5358);
}
.uc-asset-card__amount {
flex: none;
max-width: 100%;
white-space: nowrap;
font-variant-numeric: tabular-nums;
overflow: hidden;
text-overflow: ellipsis;
font-size: 1.75rem;
line-height: 1.2;
}
.uc-asset-card__mark {
font-size: 12px;
margin-right: 2px;
}
.uc-asset-card__actions .but {
min-width: 4.2em;
}
.uc-asset-card__link {
display: inline-flex;
align-items: center;
margin-top: auto;
padding-top: 8px;
background: none;
border: 0;
padding-right: 0;
padding-bottom: 0;
padding-left: 0;
cursor: pointer;
}
.uc-asset-card__link:hover {
color: var(--focus-color, #f04494);
}
/* Sidebar mini dual cards (legacy) */
.uc-asset-mini {
gap: 8px;
}
.uc-asset-mini__card {
display: block;
background: var(--muted-bg-color, #f3f4f6);
border-radius: 6px;
padding: 10px 12px;
text-decoration: none;
color: inherit;
transition: background 0.15s;
}
.uc-asset-mini__card:hover {
background: var(--color-line-soft, rgba(0, 0, 0, 0.06));
}
.uc-asset-mini__label {
margin-bottom: 6px;
}
.c-blue-2 {
color: #3b82f6;
}
.c-yellow {
color: #eab308;
}
.c-green {
color: #16a34a;
}
.col-ml6 {
margin-left: -6px;
}
.col-ml6 > * {
margin-left: 6px;
}
/* ===== 余额充值弹窗 — Zibll balance-charge modal parity =====
.zib-widget 基础卡样式与 .vip-product/.vip-tag 的 Zibll 原值仅在充值表单内生效
(vip-modal.css 在全局以同类名覆盖了它们,这里按 Zibll main.css 5962/5928/5990 回位)。 */
/* 弹窗壳静止态必须隐藏。Zibll 无此问题:它的 bootstrap 无 .modal 基础规则,
且弹窗壳由 refresh_modal JS 按需创建;本主题是服务端静态输出,若不在此
显式隐藏,main.css 的 .flex{display:flex}(后加载、与 bootstrap 的
.modal{display:none} 同特异性)会让弹窗永久 display:flex 铺满全屏,
叠加 .fade 的 opacity:0 形成隐形遮罩,拦截整页点击。 */
.modal[data-aksrt-charge-modal] {
display: none;
}
/* 打开态必须是 flex(而非 bootstrap 的内联 display:block):无头 Chrome
对 Zibll 真实 CSS 的几何实证显示,display:block 下 .modal.flex
.modal-dialog{margin:0} 使对话框顶在左上角;flex 下由壳上的 .flex.jc
(align-items:center;justify-content:center)双轴居中——Zibll 生产环境
即此形态(其 jQuery .show() 对 computed≠none 的壳是空操作,内联
display 从未写入)。 */
.modal[data-aksrt-charge-modal].in {
display: flex;
}
/* 购买积分弹窗壳与充值弹窗同构(服务端静态输出 .modal.flex.jc.fade),
静止态同样必须显式隐藏,否则 .flex 工具类会使其铺满全屏形成隐形遮罩,
拦截整页点击(2026-09-18 实测回归)。打开态由 initPointsPay 的内联
display:flex 驱动,关闭撤除内联样式后即回到隐藏规则。 */
.modal[data-aksrt-points-pay-modal] {
display: none;
}
.modal[data-aksrt-points-pay-modal].in {
display: flex;
}
.balance-charge-form .zib-widget {
clear: both;
background-color: var(--main-bg-color);
padding: 15px;
box-shadow: 0 0 10px var(--main-shadow);
border-radius: var(--main-radius);
margin-bottom: 20px;
}
.balance-charge-form .vip-product {
border: 1px solid var(--main-border-color);
box-shadow: none;
background-color: var(--main-bg-color);
min-width: 66px;
min-height: 65px;
display: inline-flex;
flex-direction: column;
justify-content: space-evenly;
align-items: center;
margin: 8px;
font-weight: normal;
gap: 10px;
padding: 15px 4px 10px;
cursor: pointer;
transition: 0.15s;
position: relative;
overflow: unset;
border-radius: var(--mini-radius);
}
.balance-charge-form .vip-product.active {
border-color: var(--focus-color);
background: var(--focus-color-opacity05);
box-shadow: none;
}
.balance-charge-form .vip-product.active::before {
content: '\f058';
/* 本主题打包的是 FA5(族名 'Font Awesome 5 Free',solid 字形需 900),
Zibll 遗留的 FA4 族名在本主题不存在 → 豆腐块(被误认破图)。 */
font: normal normal 900 16px/1 'Font Awesome 5 Free';
color: var(--focus-color);
position: absolute;
left: 3px;
top: 3px;
font-size: 18px;
}
.balance-charge-form .vip-product .vip-tag {
position: absolute;
font-size: 12px;
padding: 1px 5px;
border-radius: 100px;
right: -14px;
top: -10px;
transform: scale(0.9);
background: var(--this-bg);
color: var(--this-color);
line-height: 1.4;
width: auto;
z-index: 1;
}
/* Modal shell */
.uc-modal {
position: fixed;
inset: 0;
z-index: 1100;
display: none;
align-items: center;
justify-content: center;
padding: 16px;
}
.uc-modal.is-open,
.uc-modal:not([hidden]) {
display: flex;
}
.uc-modal[hidden] {
display: none !important;
}
.uc-modal__overlay {
position: absolute;
inset: 0;
background: rgba(0, 0, 0, 0.45);
}
.uc-modal__dialog {
position: relative;
z-index: 1;
width: 100%;
max-width: 420px;
max-height: 85vh;
overflow: auto;
background: var(--main-bg-color, #fff);
border-radius: 12px;
padding: 18px 18px 20px;
box-shadow: 0 12px 40px rgba(0, 0, 0, 0.2);
}
.uc-modal__close {
position: absolute;
top: 10px;
right: 12px;
border: 0;
background: transparent;
font-size: 18px;
cursor: pointer;
color: #999;
}
.uc-modal__title {
margin: 0 0 14px;
font-size: 17px;
font-weight: 700;
}
.uc-modal__desc {
margin-bottom: 12px;
}
body.uc-modal-open {
overflow: hidden;
}
.btn-block {
display: block;
width: 100%;
}
.but.jb-blue,
.but.b-blue-2 {
background: #3b82f6;
color: #fff;
border: 0;
border-radius: 4px;
padding: 0.45em 1em;
cursor: pointer;
}
.but.c-blue-2.hollow,
.but.c-green.hollow {
background: transparent;
border: 1px solid currentColor;
border-radius: 4px;
padding: 0.4em 0.9em;
cursor: pointer;
}
.but.c-blue-2 {
color: #3b82f6;
}
.but.c-green {
color: #16a34a;
}
/* Transfer search results */
.uc-transfer-results {
margin-top: 8px;
max-height: 200px;
overflow: auto;
}
.uc-transfer-user {
display: flex;
align-items: center;
gap: 8px;
width: 100%;
padding: 8px;
border: 0;
background: var(--muted-bg-color, #f5f5f5);
border-radius: 6px;
margin-bottom: 6px;
cursor: pointer;
text-align: left;
}
.uc-transfer-user:hover {
background: var(--color-primary-soft, rgba(240, 68, 148, 0.08));
}
.uc-transfer-user__avatar {
width: 36px;
height: 36px;
border-radius: 50%;
object-fit: cover;
}
.uc-transactions--wallet {
margin-bottom: 20px;
margin-top: 12px;
}
/* Asset records sit in their own card below the wallet and points cards. */
.uc-asset-tabs {
margin: 0;
padding: 20px;
background: var(--surface-1, #fff);
border: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
border-radius: var(--main-radius, var(--radius, 8px));
box-shadow: 0 1px 4px rgba(15, 23, 42, 0.04);
}
@media (max-width: 480px) {
.uc-asset-tabs {
padding: 14px;
}
}
.uc-asset-tabs__nav {
display: flex;
gap: 18px;
list-style: none;
margin: 0 0 12px;
padding: 0 0 10px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,.06));
}
.uc-asset-tabs__nav li a {
display: inline-block;
padding: 4px 0;
color: var(--muted-color, #777);
text-decoration: none;
font-weight: 700;
border-bottom: 2px solid transparent;
}
.uc-asset-tabs__nav li.active a,
.uc-asset-tabs__nav li a:hover {
color: var(--focus-color, #f04494);
border-bottom-color: var(--focus-color, #f04494);
}
.uc-asset-tabs__content .tab-pane[hidden] {
display: none !important;
}
.uc-asset-tabs__content .tab-pane.is-active {
display: block;
}
.uc-content #panel-credits .uc-transactions {
background: transparent;
border: 0;
border-radius: 0;
}
.uc-content #panel-credits .uc-transactions__header,
.uc-content #panel-credits .uc-transactions__item {
padding-left: 0;
padding-right: 0;
}
.uc-content .widget-title {
font-size: 15px;
font-weight: 600;
color: var(--color-ink);
margin: 0 0 14px;
padding-bottom: 10px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
}
.uc-content .widget-title::before {
content: '';
position: static;
display: inline-block;
width: 3px;
height: 14px;
background: var(--color-primary);
border-radius: 2px;
margin-right: 8px;
vertical-align: middle;
}
/* 积分流水 */
.uc-transactions {
background: var(--surface-1);
border-radius: var(--main-radius, var(--radius, 8px));
border: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
overflow: hidden;
}
.uc-transactions__header {
padding: 16px 20px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
}
.uc-transactions__title {
margin: 0;
font-size: 15px;
font-weight: 600;
color: var(--color-ink);
display: flex;
align-items: center;
gap: 8px;
}
.uc-transactions__title i {
font-size: 13px;
color: var(--color-primary);
}
.uc-transactions__list {
display: flex;
flex-direction: column;
}
.uc-transactions__item {
display: flex;
align-items: center;
gap: 12px;
padding: 14px 20px;
border-bottom: 1px solid var(--color-line-soft, rgba(0,0,0,0.04));
transition: background-color 0.15s;
}
.uc-transactions__item:last-child {
border-bottom: none;
}
.uc-transactions__item:hover {
background: var(--surface-2);
}
.uc-transactions__icon {
width: 36px;
height: 36px;
border-radius: 10px;
display: flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
font-size: 14px;
}
.uc-transactions__icon.is-positive {
background: rgba(34, 197, 94, 0.1);
color: #22c55e;
}
.uc-transactions__icon.is-negative {
background: rgba(239, 68, 68, 0.1);
color: #ef4444;
}
.uc-transactions__info {
flex: 1;
min-width: 0;
}
.uc-transactions__reason {
font-size: 14px;
font-weight: 500;
color: var(--color-ink);
line-height: 1.4;
}
.uc-transactions__time {
font-size: 12px;
color: var(--color-ink-4);
margin-top: 2px;
}
.uc-transactions__amount {
text-align: right;
flex-shrink: 0;
}
.uc-transactions__delta {
display: block;
font-size: 15px;
font-weight: 700;
font-variant-numeric: tabular-nums;
line-height: 1.3;
}
.uc-transactions__delta.is-positive {
color: #22c55e;
}
.uc-transactions__delta.is-negative {
color: #ef4444;
}
.uc-transactions__balance {
display: block;
font-size: 11px;
color: var(--color-ink-4);
margin-top: 2px;
}
/* 空状态 */
.uc-transactions__empty {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
padding: 40px 20px;
text-align: center;
}
.uc-transactions__empty-icon {
width: 48px;
height: 48px;
border-radius: 50%;
background: var(--surface-2);
display: flex;
align-items: center;
justify-content: center;
margin-bottom: 12px;
font-size: 20px;
color: var(--color-ink-4);
}
.uc-transactions__empty p {
font-size: 14px;
color: var(--color-ink-4);
margin: 0;
}
/* ==================== VIP 会员开通 ==================== */
.uc-vip-card {
position: relative;
border-radius: var(--radius);
overflow: hidden;
margin-bottom: 16px;
box-shadow: 0 4px 20px rgba(245, 158, 11, 0.18);
}
.uc-vip-card__bg {
position: absolute;
inset: 0;
background: linear-gradient(135deg, #f59e0b 0%, #f97316 55%, #ef4444 100%);
z-index: 0;
}
.uc-vip-card--active .uc-vip-card__bg {
background: linear-gradient(135deg, #0ea5e9 0%, #6366f1 55%, #8b5cf6 100%);
}
.uc-vip-card__content {
position: relative;
z-index: 1;
padding: 22px;
color: #fff;
}
.aksrt-vip-level-icon {
display: inline-block;
width: 1.4em;
height: 1.4em;
object-fit: contain;
vertical-align: middle;
}
.uc-vip-level-card .aksrt-vip-level-icon {
width: auto;
height: 1.3em;
}
.uc-vip-card__header {
display: flex;
align-items: center;
gap: 12px;
margin-bottom: 12px;
}
.uc-vip-card__icon {
width: 42px;
height: 42px;
border-radius: 12px;
display: inline-flex;
align-items: center;
justify-content: center;
background: rgba(255,255,255,0.18);
font-size: 18px;
}
.uc-vip-card__label {
display: block;
font-size: 16px;
font-weight: 700;
}
.uc-vip-card__status {
display: inline-block;
margin-top: 4px;
font-size: 12px;
opacity: 0.9;
padding: 2px 8px;
border-radius: 999px;
background: rgba(255,255,255,0.16);
}
.uc-vip-card__status--active {
background: rgba(16, 185, 129, 0.25);
}
.uc-vip-card__benefits {
display: flex;
flex-wrap: wrap;
gap: 8px 12px;
font-size: 12px;
opacity: 0.95;
}
.uc-vip-card__benefit i { margin-right: 4px; }
.uc-vip-card__desc {
margin: 12px 0 0;
font-size: 12px;
opacity: 0.85;
line-height: 1.5;
}
.uc-vip-shop {
background: var(--surface-1, #fff);
border: 1px solid var(--color-line-soft, rgba(0,0,0,0.06));
border-radius: var(--radius, 10px);
padding: 16px 18px 18px;
margin-bottom: 20px;
}
.uc-vip-shop__title {
display: flex;
align-items: center;
gap: 8px;
font-size: 15px;
font-weight: 700;
color: var(--color-ink, #111);
margin-bottom: 14px;
}
.uc-vip-shop__title i { color: #f59e0b; }
.uc-vip-shop__group { margin-bottom: 16px; }
.uc-vip-shop__group-title {
font-size: 13px;
font-weight: 600;
color: var(--color-ink-2, #374151);
margin-bottom: 10px;
display: flex;
align-items: center;
gap: 8px;
}
.uc-vip-shop__badge {
font-size: 11px;
font-weight: 600;
color: #047857;
background: #ecfdf5;
border-radius: 999px;
padding: 2px 8px;
}
.uc-vip-shop__grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
gap: 10px;
}
.uc-vip-shop__item {
appearance: none;
border: 1px solid var(--color-line, #e5e7eb);
background: var(--surface-0, #fafafa);
border-radius: 12px;
padding: 14px 12px;
text-align: left;
cursor: pointer;
display: flex;
flex-direction: column;
gap: 4px;
transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
color: inherit;
font: inherit;
}
.uc-vip-shop__item:hover {
border-color: #f59e0b;
box-shadow: 0 8px 20px rgba(245, 158, 11, 0.12);
transform: translateY(-1px);
}
.uc-vip-shop__item.is-loading {
opacity: 0.65;
pointer-events: none;
}
.uc-vip-shop__item-title {
font-size: 14px;
font-weight: 700;
color: var(--color-ink, #111);
}
.uc-vip-shop__item-days {
font-size: 12px;
color: var(--color-ink-3, #6b7280);
}
.uc-vip-shop__item-price {
margin-top: 6px;
font-size: 18px;
font-weight: 800;
color: #dc2626;
}
.uc-vip-shop__item-cta {
margin-top: 8px;
font-size: 12px;
font-weight: 600;
color: #b45309;
}
.uc-vip-shop__tip {
margin: 10px 0 0;
font-size: 12px;
color: var(--color-ink-3, #6b7280);
min-height: 1.2em;
}
.uc-vip-shop__tip.is-error { color: #dc2626; }
.uc-vip-shop__empty {
font-size: 13px;
color: var(--color-ink-3, #6b7280);
margin: 0 0 16px;
}
.uc-vip-shop__note {
margin: 0 0 12px;
font-size: 12px;
color: var(--color-ink-3, #6b7280);
line-height: 1.5;
}
.uc-vip-shop__item {
position: relative;
}
.uc-vip-shop__item-tag {
position: absolute;
top: 8px;
right: 8px;
font-size: 10px;
font-weight: 700;
color: #92400e;
background: #fef3c7;
border-radius: 999px;
padding: 2px 6px;
}
.uc-vip-shop__item-show {
display: inline-block;
margin-left: 6px;
font-size: 12px;
font-weight: 500;
color: #9ca3af;
text-decoration: line-through;
}
.uc-vip-shop--points {
border-color: rgba(16, 185, 129, 0.25);
}
.uc-vip-shop__balance {
font-size: 13px;
font-weight: 600;
color: #047857;
margin: 0 0 10px;
}
.uc-vip-shop__item.is-disabled {
opacity: 0.55;
cursor: not-allowed;
}
.uc-vip-shop__item.is-disabled:hover {
transform: none;
box-shadow: none;
border-color: var(--color-line, #e5e7eb);
}
/* Card-pass redeem modal inputs (universal modal in credits-wallet.php) */
.uc-card-pass__input {
display: block;
width: 100%;
margin: 0 0 8px;
padding: 9px 12px;
border: 1px solid #e5e7eb;
border-radius: 8px;
font-size: 13px;
box-sizing: border-box;
}
.uc-card-pass__btn {
display: inline-flex;
align-items: center;
justify-content: center;
min-height: 36px;
padding: 0 14px;
border: 0;
border-radius: 8px;
background: #2563eb;
color: #fff;
font-size: 13px;
font-weight: 600;
cursor: pointer;
}
.uc-card-pass__btn:hover { background: #1d4ed8; }
.uc-card-pass__btn:disabled { opacity: .6; cursor: not-allowed; }
/* Modal redeem action sits on the right */
.uc-card-pass-actions {
display: flex;
justify-content: flex-end;
margin-top: 2px;
}
/* Withdraw history + pending foot */
.uc-asset-card__foot {
margin-top: auto;
padding-top: 8px;
border-top: 1px dashed var(--muted-border-color, rgba(0,0,0,.08));
}
.uc-asset-card__head-action {
background: none;
border: 0;
cursor: pointer;
}
.uc-withdraw-history-modal__dialog {
max-width: min(860px, calc(100vw - 32px));
overflow: hidden;
}
.uc-withdraw-history {
width: 100%;
}
.uc-withdraw-history__item {
display: flex;
align-items: center;
gap: 12px;
min-width: 0;
padding: 10px 0;
border-bottom: 1px solid var(--muted-border-color, rgba(0,0,0,.08));
white-space: nowrap;
}
.uc-withdraw-history__item:last-child {
border-bottom: 0;
}
.uc-withdraw-history__status {
flex: 0 0 72px;
width: 72px;
}
.uc-withdraw-history__amount {
flex: 0 0 230px;
width: 230px;
min-width: 0;
overflow: hidden;
text-align: right;
text-overflow: ellipsis;
white-space: nowrap;
font-weight: 700;
}
.uc-withdraw-history__net {
margin-left: 4px;
color: var(--muted-2-color, #9aa1a8);
font-size: .78em;
font-weight: 400;
}
.uc-withdraw-history__number,
.uc-withdraw-history__meta {
min-width: 0;
overflow: hidden;
text-overflow: ellipsis;
}
.uc-withdraw-history__number {
flex: 1 1 190px;
}
.uc-withdraw-history__meta {
flex: 0 1 190px;
}
.uc-withdraw-history__pagination {
display: flex;
justify-content: center;
align-items: center;
flex-wrap: wrap;
gap: 6px;
margin-top: 14px;
}
.uc-withdraw-history__page {
min-width: 34px;
height: 32px;
padding: 0 8px;
border: 1px solid var(--muted-border-color, rgba(0,0,0,.12));
border-radius: 6px;
background: transparent;
color: inherit;
cursor: pointer;
}
.uc-withdraw-history__page:hover:not(:disabled),
.uc-withdraw-history__page.is-current {
border-color: var(--focus-color, #3b82f6);
background: var(--focus-color, #3b82f6);
color: #fff;
}
.uc-withdraw-history__page:disabled {
cursor: not-allowed;
opacity: .45;
}
@media (max-width: 640px) {
.uc-withdraw-history-modal__dialog {
max-width: calc(100vw - 20px);
padding-left: 12px;
padding-right: 12px;
}
.uc-withdraw-history__item {
flex-wrap: wrap;
align-items: flex-start;
gap: 8px;
font-size: 12px;
white-space: normal;
}
.uc-withdraw-history__status {
flex: 0 0 auto;
width: auto;
}
.uc-withdraw-history__amount {
flex: 0 0 auto;
width: auto;
min-width: 66px;
text-align: left;
overflow: visible;
text-overflow: clip;
white-space: normal;
}
.uc-withdraw-history__status {
align-self: center;
}
.uc-withdraw-history__number,
.uc-withdraw-history__meta {
flex: 1 1 100%;
overflow: visible;
text-overflow: clip;
white-space: normal;
overflow-wrap: anywhere;
}
.uc-withdraw-history__number {
flex-basis: 100%;
}
.uc-withdraw-history__meta {
flex-basis: 100%;
}
}
/* Points tasks tab */
.uc-points-tasks .border-bottom,
.uc-points-date .border-bottom,
.uc-withdraw-history__item.border-bottom {
border-bottom: 1px solid var(--muted-border-color, rgba(0,0,0,.08));
}
.uc-points-tasks button,
.uc-points-date button {
background: none;
border: 0;
cursor: pointer;
padding: 0;
}
.uc-points-tasks__meta {
display: flex;
flex-direction: column;
align-items: flex-end;
gap: 2px;
}
.uc-points-tasks__action {
display: inline-flex;
align-items: center;
text-decoration: none;
color: var(--muted-color, #8b9198);
background: none;
border: 0;
cursor: pointer;
padding: 0;
line-height: 1.4;
}
.uc-points-tasks__action:hover {
color: var(--focus-color, #f04494);
}
.focus-color { color: var(--focus-color, #f59e0b); }
/* 用户中心「我的徽章」弹窗样式已迁至 assets/css/frontend/medal.css(legacy medal 风格)。 */
.uc-points-tasks__row.is-done { opacity: .72; }
.uc-points-tasks__progress-bar {
height: 6px;
border-radius: 999px;
background: rgba(127,127,127,.16);
overflow: hidden;
}
.uc-points-tasks__progress-bar > span {
display: block;
height: 100%;
background: linear-gradient(90deg, #22c55e, #16a34a);
}
/* VIP tab — legacy 我的会员 (scoped; no dependence on homepage-only utilities) */
.uc-vip-tab {
min-width: 0;
}
/* Top profile card — legacy .user-content-myvip 1:1 */
.uc-vip-tab .user-content-myvip {
position: relative;
display: flex;
align-items: center;
gap: 20px;
padding: 18px 20px;
margin-bottom: 16px;
overflow: hidden;
z-index: 0;
}
.uc-vip-tab .user-content-myvip > .flex2,
.uc-vip-tab .user-content-myvip > .flex4,
.uc-vip-tab .user-content-myvip > .uc-vip-profile,
.uc-vip-tab .user-content-myvip > .uc-vip-state {
position: relative;
z-index: 1;
min-width: 0;
}
.uc-vip-tab .user-content-myvip .flex2,
.uc-vip-tab .user-content-myvip .uc-vip-profile {
flex: 2 1 0;
}
.uc-vip-tab .user-content-myvip .flex4,
.uc-vip-tab .user-content-myvip .uc-vip-state {
flex: 4 1 0;
}
/* Crown watermark — legacy .user-content-myvip .vip-img.abs-right */
.uc-vip-tab .user-content-myvip .vip-img,
.uc-vip-tab .user-content-myvip .vip-img.abs-right {
position: absolute;
right: -10px;
top: 50%;
transform: translateY(-50%);
font-size: 160px;
line-height: 1;
opacity: 0.15;
pointer-events: none;
z-index: 0;
color: currentColor;
}
.uc-vip-tab .user-content-myvip .vip-img i {
font-size: inherit;
line-height: 1;
}
/* Left user box */
.uc-vip-tab .uc-vip-userbox {
display: flex;
align-items: center;
min-width: 0;
}
.uc-vip-tab .uc-vip-userbox .mr20 {
margin-right: 20px;
}
.uc-vip-tab .uc-vip-userbox .shrink0 {
flex-shrink: 0;
}
/* avatar-md = 55×55 circle (legacy --this-size: 55px) */
.uc-vip-tab .user-content-myvip .avatar-img {
position: relative;
display: inline-block;
flex-shrink: 0;
--this-size: 55px;
width: var(--this-size);
height: var(--this-size);
line-height: 0;
}
.uc-vip-tab .user-content-myvip .avatar-img.avatar-md {
--this-size: 55px;
}
.uc-vip-tab .user-content-myvip .avatar-img .avatar,
.uc-vip-tab .user-content-myvip .avatar-img img {
display: block;
width: 100% !important;
height: 100% !important;
max-width: none;
border-radius: 50%;
object-fit: cover;
aspect-ratio: 1 / 1;
}
.uc-vip-tab .uc-vip-userbox .name {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 4px;
line-height: 1.35;
min-width: 0;
}
.uc-vip-tab .uc-vip-userbox .name .display-name,
.uc-vip-tab .uc-vip-userbox .name a {
font-weight: 700;
color: inherit;
text-decoration: none;
}
.uc-vip-tab .uc-vip-userbox .desc {
max-width: 100%;
line-height: 1.45;
}
.uc-vip-tab .em12 { font-size: 1.2em; }
.uc-vip-tab .em16 { font-size: 1.6em; line-height: 1.2; }
.uc-vip-tab .em09 { font-size: 0.9em; }
.uc-vip-tab .mt6 { margin-top: 6px; }
.uc-vip-tab .mr10 { margin-right: 10px; }
.uc-vip-tab .mr3 { margin-right: 3px; }
.uc-vip-tab .ml6 { margin-left: 6px; }
.uc-vip-tab .font-bold { font-weight: 700; }
.uc-vip-tab .c-red { color: #ff5473; }
.uc-vip-tab .min-w-0 { min-width: 0; }
.uc-vip-tab .text-ellipsis {
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
max-width: 100%;
}
/* Right status column — legacy my_vip_box */
.uc-vip-status,
.uc-vip-tab .uc-vip-status.flex.xx {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
}
.uc-vip-status .flex.ac {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 6px;
}
.uc-vip-status .badg {
display: inline-flex;
align-items: center;
gap: 4px;
width: auto;
max-width: 100%;
}
.uc-vip-level-cards {
display: flex;
flex-wrap: wrap;
gap: 12px;
align-items: stretch;
}
.uc-vip-level-card {
position: relative;
flex: 1 1 240px;
min-width: 0;
padding: 20px 16px 18px;
overflow: hidden;
text-align: center;
box-sizing: border-box;
}
/* Defensive: modal stylesheet also styles .pay-vip-info; keep UC cards independent */
.uc-vip-tab .uc-vip-level-card.pay-vip-info {
display: block;
background: var(--main-bg-color, var(--surface-1, #fff));
border: 1px solid var(--color-line-soft, rgba(0, 0, 0, 0.06));
box-shadow: var(--shadow-sm);
border-radius: var(--radius, 10px);
padding: 16px;
}
.uc-vip-level-card.level-1 {
background: linear-gradient(180deg, rgba(246, 196, 83, 0.16), rgba(255, 255, 255, 0.02)) !important;
}
.uc-vip-level-card.level-2 {
background: linear-gradient(180deg, rgba(142, 68, 173, 0.12), rgba(255, 255, 255, 0.02)) !important;
}
.uc-vip-level-card .vip-baicon {
display: none;
}
.uc-vip-level-card__inner {
position: relative;
z-index: 1;
display: flex;
flex-direction: column;
align-items: center;
min-height: 100%;
}
/* Level icon sits inline at the left of the name; its size tracks the name text. */
.uc-vip-level-card .v-iconbox {
display: block;
width: 100%;
margin-bottom: 10px;
text-align: center;
}
.uc-vip-level-card .v-icon {
display: inline-flex;
align-items: center;
justify-content: center;
flex: 0 0 auto;
width: auto;
height: auto;
border-radius: 0;
background: transparent !important;
color: inherit;
font-size: 1em;
line-height: 1;
}
.uc-vip-level-card.level-1 .v-icon,
.uc-vip-level-card.level-2 .v-icon {
background: transparent !important;
}
.uc-vip-level-card .v-name {
display: inline-flex;
align-items: center;
gap: 6px;
font-size: 16px;
line-height: 1.3;
font-weight: 700;
}
.uc-vip-level-card .v-desc {
margin-top: 2px;
}
/* Equity is admin HTML — no forced bullets; only keep vertical flow */
.uc-vip-tab .uc-vip-level-card .v-equity,
.uc-vip-tab .pay-vip-info .v-equity {
display: block !important;
list-style: none !important;
margin: 12px auto 16px !important;
padding: 0 !important;
max-width: 240px;
width: 100%;
text-align: left;
font-size: 13px;
line-height: 1.55;
color: var(--muted-2-color, #888);
flex: 1 1 auto;
}
.uc-vip-tab .uc-vip-level-card .v-equity > li,
.uc-vip-tab .pay-vip-info .v-equity > li {
display: block !important;
margin: 0 0 8px !important;
padding: 0 !important;
list-style: none !important;
white-space: normal !important;
word-break: break-word;
float: none !important;
width: auto !important;
}
.uc-vip-tab .uc-vip-level-card .v-equity > li:last-child,
.uc-vip-tab .pay-vip-info .v-equity > li:last-child {
margin-bottom: 0 !important;
}
/* Explicitly kill any leftover decorative bullets */
.uc-vip-tab .uc-vip-level-card .v-equity > li::before,
.uc-vip-tab .uc-vip-level-card .v-equity > li::after,
.uc-vip-tab .pay-vip-info .v-equity > li::before,
.uc-vip-tab .pay-vip-info .v-equity > li::after {
content: none !important;
display: none !important;
}
/* Non-list equity HTML (p/br/div) */
.uc-vip-tab .uc-vip-level-card .v-equity > p,
.uc-vip-tab .pay-vip-info .v-equity > p {
margin: 0 0 8px;
}
.uc-vip-tab .uc-vip-level-card .v-equity > p:last-child,
.uc-vip-tab .pay-vip-info .v-equity > p:last-child {
margin-bottom: 0;
}
.uc-vip-cta {
display: inline-flex !important;
align-items: center;
justify-content: center;
gap: 8px;
min-width: 160px;
padding: 10px 18px !important;
border: 0;
text-decoration: none;
font-weight: 600;
margin-top: auto;
}
.uc-vip-cta > i {
margin: 0 !important;
line-height: 1;
}
/* 积分兑换会员入口(参考主题用户中心 VIP 页 1:1:两张档位购买卡下方的全宽横条,
左侧 points-color 图标 + 「积分兑换会员」,右侧「立即兑换」badg + 右箭头;
结构与配色由 zibll 工具类(flex/ac/jsb/flex1/em12/c-yellow/badg)承担,
此处只提供与 .uc-vip-level-card 同一变量体系的表面与间距)。 */
.uc-vip-points-entry {
margin-top: 12px;
padding: 12px 16px;
border-radius: var(--radius, 10px);
background: var(--main-bg-color, var(--surface-1, #fff));
box-shadow: var(--shadow-sm);
color: inherit;
text-decoration: none;
}
.uc-vip-points-entry:hover,
.uc-vip-points-entry:focus {
text-decoration: none;
}
.uc-vip-points-entry .icon {
flex: 0 0 auto;
}
.uc-vip-assets-entry {
gap: 12px;
}
.uc-vip-tab .mt15 {
margin-top: 15px;
}
.uc-vip-tab .font-bold {
font-weight: 700;
}
.jb-vip1 {
background: linear-gradient(25deg, #eabe7b 10%, #f5e3c7 70%, #edc788 100%);
color: #866127;
border: none;
}
.jb-vip2 {
background: linear-gradient(317deg, #4d4c4c 30%, #7b7b7b 70%, #5f5c5c 100%);
color: #ddd;
border: none;
}
/* Light theme contrast for VIP badges/status */
html:not(.dark):not(.theme-dark) .uc-vip-level-card.level-1 .v-name {
color: #6b4e16;
}
html:not(.dark):not(.theme-dark) .uc-vip-level-card.level-2 .v-name {
color: #4c3a7a;
}
@media (max-width: 767px) {
.uc-vip-level-cards {
flex-direction: column;
}
.uc-vip-level-card {
flex: 1 1 auto;
}
.uc-vip-points-entry {
padding: 12px 14px;
}
.uc-vip-tab .user-content-myvip {
padding: 14px 16px;
gap: 12px;
flex-wrap: wrap;
}
/* legacy: hide-sm on left profile column on mobile */
.uc-vip-tab .user-content-myvip .hide-sm,
.uc-vip-tab .user-content-myvip .uc-vip-profile.hide-sm {
display: none !important;
}
.uc-vip-tab .user-content-myvip .flex4,
.uc-vip-tab .user-content-myvip .uc-vip-state {
flex: 1 1 100%;
}
.uc-vip-tab .user-content-myvip .vip-img {
font-size: 110px;
opacity: 0.12;
}
}
@media (min-width: 768px) {
.uc-vip-tab .user-content-myvip .hide-sm {
display: block;
}
}