Files
kate522 505d9156fe fix(vip): 收敛 /user/vip/ 积分入口与购买卡的上下间距
档位卡继承 .aksrt-panel 的 margin-bottom:20px 且此前未在卡片容器内重置,
与积分兑换入口自身的 margin-top:12px 叠加成 32px 视觉间距(无入口时与
more 说明叠加成 35px),偏离 12–16px 的区块节奏。在 .uc-vip-level-cards
内清零继承底距:卡片行与入口间距 = 12px(与容器 gap 一致),无入口时
与 more 说明间距 = 15px(mt15)。

node --test 420 项通过。
2026-09-23 14:36:31 +08:00

1420 lines
32 KiB
CSS
Raw Permalink 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;
}
/* 档位卡继承自 .aksrt-panel 的 20px 底距会在卡片行与下方元素(积分兑换入口 /
more 说明)之间叠加成 32px/35px 的过大间距;弹性容器内清零,行内间距由
gap 负责,块间间距统一由各块自身 margin-top(12–16px 节奏)控制。 */
.uc-vip-tab .uc-vip-level-cards .uc-vip-level-card {
margin-bottom: 0;
}
.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;
}
}