Add NativeUi helper + native-ui.css (tokens mirror the SPA Naive UI theme) and move the pay center, orders, products, coupons, charge cards, income, withdrawals, tickets, invite codes, VIP, verify, messages and report/ban pages onto shared header, stat cards, cards, filters, badges and empty states. Remove inline styles and dead helpers; split PayChargeCards into sibling traits to stay under the file size limit. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
50 lines
3.3 KiB
CSS
50 lines
3.3 KiB
CSS
/*
|
|
* 邀请码管理(users.php?page=aksrt_invite_codes)页面专属样式。
|
|
*
|
|
* 共享外壳/卡片/表格/徽标由 native-ui.css 承载;这里只留列表排序箭头、
|
|
* 添加/导出表单的行布局与按钮组切换、复制提示 toast 等本页独有交互样式。
|
|
* 仅在 users_page_aksrt_invite_codes 入队,规则限定在 .aksrt-inv-page 下。
|
|
*/
|
|
|
|
/* 排序箭头:默认弱化,悬停加强。 */
|
|
.aksrt-inv-page .orderby-but { position: relative; display: inline-block; margin-left: 4px; }
|
|
.aksrt-inv-page .orderby-but > a { opacity: .4; position: absolute; transform: translateY(-3px); transition: .3s; }
|
|
.aksrt-inv-page .orderby-but > a + a { transform: translateY(6px); }
|
|
.aksrt-inv-page .orderby-but:hover a { opacity: .6; }
|
|
.aksrt-inv-page .orderby-but > a:hover { opacity: 1; }
|
|
|
|
/* 复制邀请码:指针反馈。 */
|
|
.aksrt-inv-page .aksrt-inv-code { cursor: pointer; }
|
|
|
|
/* 三视图切换链接(列表 / 添加 / 导出):贴合页头下方。 */
|
|
.aksrt-inv-page .aksrt-inv-switch-views { margin: -8px 0 12px; display: flex; flex-wrap: wrap; gap: 6px; }
|
|
.aksrt-inv-page .aksrt-inv-switch-views .page-title-action { display: inline-flex; align-items: center; gap: 4px; }
|
|
|
|
/* 选项字段布局:左标题右控件,行间分隔线。 */
|
|
.aksrt-inv-page .aksrt-inv-field { display: flex; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid var(--an-border-soft); }
|
|
.aksrt-inv-page .aksrt-inv-field:last-child { border-bottom: 0; }
|
|
.aksrt-inv-page .aksrt-inv-field > label { flex: 0 0 170px; color: var(--an-text); font-weight: 600; padding-top: 4px; }
|
|
.aksrt-inv-page .aksrt-inv-field > .aksrt-inv-control { flex: 1; min-width: 0; }
|
|
.aksrt-inv-page .aksrt-inv-field .description { display: block; margin-top: 4px; }
|
|
|
|
/* 添加方式按钮组(二选一)。 */
|
|
.aksrt-inv-page .aksrt-inv-btnset label { display: inline-block; margin-right: -1px; padding: 4px 14px; color: var(--an-text-2); background: #fff; border: 1px solid var(--an-border); cursor: pointer; }
|
|
.aksrt-inv-page .aksrt-inv-btnset label:first-child { border-radius: var(--an-radius-sm) 0 0 var(--an-radius-sm); }
|
|
.aksrt-inv-page .aksrt-inv-btnset label:last-child { border-radius: 0 var(--an-radius-sm) var(--an-radius-sm) 0; }
|
|
.aksrt-inv-page .aksrt-inv-btnset input { display: none; }
|
|
.aksrt-inv-page .aksrt-inv-btnset label.on { color: #fff; background: var(--an-primary); border-color: var(--an-primary); }
|
|
|
|
/* 开关式复选 / 奖励字段行 / 单位后缀。 */
|
|
.aksrt-inv-page .aksrt-inv-switch { display: inline-flex; align-items: center; gap: 6px; cursor: pointer; }
|
|
.aksrt-inv-page .aksrt-inv-switch input { margin: 0; }
|
|
.aksrt-inv-page .aksrt-inv-rewards { display: flex; flex-wrap: wrap; gap: 12px; }
|
|
.aksrt-inv-page .aksrt-inv-radios { margin-top: 8px; }
|
|
.aksrt-inv-page .aksrt-inv-radios label + label { margin-left: 12px; font-weight: 400; }
|
|
.aksrt-inv-page .aksrt-inv-viptime { margin-top: 8px; }
|
|
.aksrt-inv-page .aksrt-inv-mini { width: 80px; }
|
|
.aksrt-inv-page .aksrt-inv-unit { margin-left: 4px; color: var(--an-muted); }
|
|
.aksrt-inv-page .aksrt-inv-textarea { resize: both; }
|
|
|
|
/* 复制成功悬浮提示。 */
|
|
.aksrt-inv-toast { position: fixed; top: 42px; left: 50%; transform: translateX(-50%); display: none; padding: 8px 22px; color: #fff; font-size: 13px; background: rgba(0, 0, 0, .75); border-radius: 4px; z-index: 100100; }
|