2858 lines
67 KiB
CSS
2858 lines
67 KiB
CSS
/* =============================================
|
||
全局 Reset & 变量
|
||
============================================= */
|
||
:root {
|
||
--bg: #f4f5f7;
|
||
--sidebar-bg: #ffffff;
|
||
--card-bg: #ffffff;
|
||
--border: #e8eaed;
|
||
--text: #1a1d23;
|
||
--text-sub: #6b7280;
|
||
--text-muted: #9ca3af;
|
||
--accent: #0bc4e3;
|
||
--accent-2: #1677ff;
|
||
--accent-green: #52c41a;
|
||
--accent-red: #ff4d4f;
|
||
--accent-gold: #faad14;
|
||
--sidebar-w: 13vw;
|
||
--titlebar-h: 4vh;
|
||
--radius: 10px;
|
||
--shadow: 0 2px 12px rgba(0,0,0,.07);
|
||
}
|
||
|
||
* { margin:0; padding:0; box-sizing:border-box; outline:none; }
|
||
|
||
html { width:100%; height:100%; font-size: calc(12px + 0.3vw); }
|
||
|
||
body {
|
||
font-family: 'Microsoft YaHei', 'PingFang SC', sans-serif;
|
||
background: var(--bg);
|
||
color: var(--text);
|
||
width: 100%;
|
||
height: 100%;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
font-size: 1rem;
|
||
}
|
||
|
||
.app-shell {
|
||
flex: 1;
|
||
min-height: 0;
|
||
width: 100%;
|
||
height: 100%;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
background: var(--bg);
|
||
}
|
||
|
||
/* =============================================
|
||
顶部标题栏
|
||
============================================= */
|
||
.titlebar {
|
||
height: clamp(30px, 4vh, 44px);
|
||
background: #ffffff;
|
||
border-bottom: 1px solid var(--border);
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
padding: 0 1vw 0 1.2vw;
|
||
flex-shrink: 0;
|
||
user-select: none;
|
||
-webkit-app-region: drag;
|
||
}
|
||
|
||
.titlebar-left {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
}
|
||
|
||
.titlebar-logo {
|
||
width: 22px; height: 22px;
|
||
object-fit: contain;
|
||
display: block;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.titlebar-title {
|
||
font-size: 16px;
|
||
color: var(--text);
|
||
font-weight: 700;
|
||
letter-spacing: .5px;
|
||
}
|
||
|
||
.titlebar-title em {
|
||
font-style: italic;
|
||
color: #1677ff;
|
||
}
|
||
|
||
.titlebar-btns {
|
||
display: flex;
|
||
gap: 6px;
|
||
-webkit-app-region: no-drag;
|
||
}
|
||
|
||
.tb-btn {
|
||
width: 28px;
|
||
height: 22px;
|
||
border: none;
|
||
border-radius: 5px;
|
||
background: transparent;
|
||
color: var(--text-sub);
|
||
font-size: 13px;
|
||
cursor: pointer;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
transition: all 0.15s;
|
||
line-height: 1;
|
||
}
|
||
|
||
.tb-btn:hover { background: #f0f0f0; }
|
||
.tb-close:hover { background: #ff4d4f; color: #fff; }
|
||
.tb-min:hover { background: #e8eaed; }
|
||
|
||
/* =============================================
|
||
app-body:标题栏下方整体
|
||
============================================= */
|
||
.app-body {
|
||
flex: 1;
|
||
display: flex;
|
||
overflow: hidden;
|
||
min-height: 0;
|
||
}
|
||
|
||
/* =============================================
|
||
侧边栏
|
||
============================================= */
|
||
.sidebar {
|
||
width: 230px;
|
||
background: var(--sidebar-bg);
|
||
border-right: 1px solid var(--border);
|
||
display: flex;
|
||
flex-direction: column;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.logo {
|
||
padding: 22px 20px 18px;
|
||
border-bottom: 1px solid var(--border);
|
||
display: flex;
|
||
justify-content: center;
|
||
align-items: center;
|
||
}
|
||
|
||
.logo-text {
|
||
font-size: 20px;
|
||
font-weight: 400;
|
||
color: var(--text);
|
||
letter-spacing: 1px;
|
||
}
|
||
|
||
.logo-em {
|
||
font-style: italic;
|
||
font-weight: 800;
|
||
color: #1677ff;
|
||
font-size: 26px;
|
||
margin-right: 1px;
|
||
}
|
||
|
||
.nav {
|
||
flex: 1;
|
||
padding: 16px 10px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 8px;
|
||
}
|
||
|
||
.nav-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 14px;
|
||
padding: 0 16px;
|
||
height: 54px;
|
||
min-height: 54px;
|
||
box-sizing: border-box;
|
||
cursor: pointer;
|
||
color: var(--text-sub);
|
||
text-decoration: none;
|
||
font-size: 15px;
|
||
position: relative;
|
||
border-radius: 10px;
|
||
transition: background 0.15s, color 0.15s, transform 0.18s cubic-bezier(.34,1.56,.64,1);
|
||
transform-origin: center;
|
||
}
|
||
|
||
/* emoji 图标 */
|
||
.nav-icon {
|
||
font-size: 20px;
|
||
line-height: 1;
|
||
flex-shrink: 0;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
|
||
/* hover:整个按钮轻微放大 */
|
||
.nav-item:hover {
|
||
background: #F0F6FC;
|
||
color: var(--text);
|
||
transform: scale(1.03);
|
||
}
|
||
|
||
/* active:背景 + 蓝色文字 + 左侧蓝条 */
|
||
.nav-item.active {
|
||
background: #F0F6FC;
|
||
color: #1677ff;
|
||
font-weight: 600;
|
||
transform: scale(1);
|
||
border-left: 5px solid #1677ff;
|
||
padding-left: 11px;
|
||
}
|
||
|
||
/* 非active时左边透明占位,保持宽度一致 */
|
||
.nav-item:not(.active) {
|
||
border-left: 5px solid transparent;
|
||
padding-left: 11px;
|
||
}
|
||
|
||
/* 删除::before,改用border-left实现 */
|
||
.nav-item.active::before {
|
||
display: none;
|
||
}
|
||
|
||
/* =============================================
|
||
主内容区 & 页面切换
|
||
============================================= */
|
||
.main {
|
||
flex: 1;
|
||
overflow: hidden;
|
||
position: relative;
|
||
min-width: 0;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
|
||
.page {
|
||
flex: 1;
|
||
width: 100%;
|
||
overflow-y: auto;
|
||
padding: 24px;
|
||
display: none;
|
||
min-height: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
.page.active { display: flex; flex-direction: column; }
|
||
|
||
/* 皮肤库、美化库不需要 padding,各自控制 */
|
||
#page-skins.active,
|
||
#page-beauty.active {
|
||
padding: 0;
|
||
}
|
||
|
||
/* 工具箱、设置页用 block 滚动 */
|
||
#page-settings.active,
|
||
#page-tools.active {
|
||
display: block;
|
||
overflow-y: auto;
|
||
padding: 0;
|
||
}
|
||
|
||
.page::-webkit-scrollbar { width: 5px; }
|
||
.page::-webkit-scrollbar-track { background: transparent; }
|
||
.page::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 3px; }
|
||
|
||
/* =============================================
|
||
通用卡片
|
||
============================================= */
|
||
.card {
|
||
background: var(--card-bg);
|
||
border-radius: var(--radius);
|
||
border: 1px solid var(--border);
|
||
padding: 20px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.card-title {
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
color: var(--text);
|
||
margin-bottom: 14px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 6px;
|
||
}
|
||
|
||
/* =============================================
|
||
主页布局
|
||
============================================= */
|
||
.home-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
grid-template-rows: auto 1fr;
|
||
gap: 16px;
|
||
width: 100%;
|
||
align-content: start;
|
||
}
|
||
|
||
/* 欢迎横幅 */
|
||
.welcome-banner {
|
||
grid-column: 1 / -1;
|
||
background: linear-gradient(135deg, #0bc4e3 0%, #1677ff 100%);
|
||
border-radius: var(--radius);
|
||
padding: 22px 28px;
|
||
color: #fff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
}
|
||
|
||
.welcome-title {
|
||
font-size: 22px;
|
||
font-weight: 700;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
}
|
||
|
||
.welcome-sub {
|
||
margin-top: 6px;
|
||
font-size: 13px;
|
||
opacity: .85;
|
||
}
|
||
|
||
.welcome-actions {
|
||
display: flex;
|
||
gap: 10px;
|
||
}
|
||
|
||
.btn {
|
||
padding: 8px 16px;
|
||
border-radius: 6px;
|
||
font-size: 13px;
|
||
cursor: pointer;
|
||
border: none;
|
||
font-family: inherit;
|
||
transition: all 0.15s;
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 5px;
|
||
}
|
||
|
||
.btn-primary { background: var(--accent-2); color: #fff; }
|
||
.btn-primary:hover { background: #0958d9; }
|
||
.btn-white { background: rgba(255,255,255,.9); color: var(--accent-2); }
|
||
.btn-white:hover { background: #fff; }
|
||
.btn-outline { background: transparent; border: 1px solid var(--border); color: var(--text-sub); }
|
||
.btn-outline:hover { border-color: var(--accent); color: var(--accent); }
|
||
.btn-danger { background: #fff0f0; border: 1px solid #ffccc7; color: var(--accent-red); }
|
||
.btn-danger:hover { background: #ffccc7; }
|
||
|
||
/* =============================================
|
||
主页 - 账号信息卡
|
||
============================================= */
|
||
.account-card {}
|
||
|
||
.account-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 10px 0;
|
||
border-bottom: 1px solid var(--border);
|
||
font-size: 13px;
|
||
}
|
||
|
||
.account-row:last-child { border-bottom: none; }
|
||
|
||
.account-label { color: var(--text-sub); }
|
||
.account-value { color: var(--text); font-weight: 500; }
|
||
.account-value.blue { color: var(--accent-2); }
|
||
.account-value.green { color: var(--accent-green); }
|
||
|
||
.account-actions {
|
||
display: flex;
|
||
gap: 10px;
|
||
margin-top: 16px;
|
||
}
|
||
|
||
/* 状态徽章 */
|
||
.badge {
|
||
display: inline-block;
|
||
padding: 2px 9px;
|
||
border-radius: 20px;
|
||
font-size: 11px;
|
||
font-weight: 600;
|
||
}
|
||
|
||
.badge-green { background: #f6ffed; color: var(--accent-green); border: 1px solid #b7eb8f; }
|
||
.badge-red { background: #fff1f0; color: var(--accent-red); border: 1px solid #ffa39e; }
|
||
|
||
/* =============================================
|
||
主页 - 游戏状态卡
|
||
============================================= */
|
||
.game-status-card .status-row {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
padding: 10px 0;
|
||
border-bottom: 1px solid var(--border);
|
||
font-size: 13px;
|
||
}
|
||
|
||
.game-status-card .status-row:last-child { border-bottom: none; }
|
||
|
||
.status-icon {
|
||
width: 36px;
|
||
height: 36px;
|
||
border-radius: 8px;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 18px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.status-icon.blue { background: #e6f4ff; }
|
||
.status-icon.green { background: #f6ffed; }
|
||
.status-icon.gold { background: #fffbe6; }
|
||
|
||
.status-info { flex: 1; }
|
||
.status-info .s-label { color: var(--text-muted); font-size: 12px; }
|
||
.status-info .s-value { color: var(--text); font-weight: 600; margin-top: 1px; }
|
||
|
||
/* =============================================
|
||
主页 - 新闻资讯卡(右下角)
|
||
============================================= */
|
||
.news-card {
|
||
grid-column: 2;
|
||
grid-row: 2;
|
||
}
|
||
|
||
.news-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 8px;
|
||
}
|
||
|
||
.news-more {
|
||
font-size: 12px;
|
||
color: var(--accent-2);
|
||
cursor: pointer;
|
||
text-decoration: none;
|
||
}
|
||
|
||
/* 新闻列表可滚动区域,最多显示8条,支持鼠标滚轮 */
|
||
.news-list-scroll {
|
||
max-height: 320px;
|
||
overflow-y: auto;
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #d1d5db transparent;
|
||
}
|
||
.news-list-scroll::-webkit-scrollbar { width: 4px; }
|
||
.news-list-scroll::-webkit-scrollbar-thumb { background: #d1d5db; border-radius: 2px; }
|
||
|
||
.news-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
padding: 11px 8px;
|
||
border-bottom: 1px solid var(--border);
|
||
border-radius: 6px;
|
||
cursor: pointer;
|
||
transition: background 0.15s, transform 0.22s cubic-bezier(.25,.46,.45,.94);
|
||
}
|
||
.news-item:last-child { border-bottom: none; }
|
||
.news-item:hover {
|
||
background: #f0f6ff;
|
||
transform: translateY(-2px);
|
||
}
|
||
.news-item:hover .news-title { color: var(--accent-2); }
|
||
|
||
/* 标签:新闻/视频/公告 */
|
||
.news-tag {
|
||
flex-shrink: 0;
|
||
font-size: 11px;
|
||
padding: 1px 6px;
|
||
border: 1px solid;
|
||
border-radius: 3px;
|
||
font-weight: 500;
|
||
line-height: 18px;
|
||
}
|
||
|
||
.news-thumb {
|
||
width: 96px;
|
||
height: 60px;
|
||
border-radius: 6px;
|
||
object-fit: cover;
|
||
flex-shrink: 0;
|
||
background: #e8eaed;
|
||
}
|
||
|
||
.news-content { flex: 1; min-width: 0; }
|
||
|
||
.news-title {
|
||
flex: 1;
|
||
min-width: 0;
|
||
font-size: 13px;
|
||
color: var(--text);
|
||
overflow: hidden;
|
||
white-space: nowrap;
|
||
text-overflow: ellipsis;
|
||
transition: color 0.15s;
|
||
}
|
||
|
||
.news-date {
|
||
flex-shrink: 0;
|
||
font-size: 12px;
|
||
color: var(--text-muted);
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.news-thumb {
|
||
width: 96px;
|
||
height: 60px;
|
||
border-radius: 6px;
|
||
object-fit: cover;
|
||
flex-shrink: 0;
|
||
background: #e8eaed;
|
||
}
|
||
|
||
.news-content { flex: 1; min-width: 0; }
|
||
|
||
.news-title {
|
||
font-size: 13px;
|
||
color: var(--text);
|
||
line-height: 1.5;
|
||
overflow: hidden;
|
||
display: -webkit-box;
|
||
-webkit-line-clamp: 2;
|
||
-webkit-box-orient: vertical;
|
||
transition: color 0.15s;
|
||
font-weight: 500;
|
||
}
|
||
|
||
.news-date {
|
||
font-size: 12px;
|
||
color: var(--text-muted);
|
||
margin-top: 4px;
|
||
}
|
||
|
||
/* =============================================
|
||
皮肤库 - 英雄列表页
|
||
============================================= */
|
||
.skins-toolbar {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
margin-bottom: 10px;
|
||
flex-wrap: nowrap;
|
||
gap: 10px;
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 10px 16px;
|
||
box-shadow: var(--shadow);
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.role-tabs {
|
||
display: flex;
|
||
gap: 6px;
|
||
flex-wrap: wrap;
|
||
flex: 1;
|
||
}
|
||
|
||
.role-tab {
|
||
width: 88px;
|
||
height: 40px;
|
||
border-radius: 20px;
|
||
font-size: 14px;
|
||
cursor: pointer;
|
||
border: 1.5px solid #e8eaed;
|
||
background: #ffffff;
|
||
color: #6b7280;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 5px;
|
||
transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), border-color 0.15s, color 0.15s, box-shadow 0.15s;
|
||
white-space: nowrap;
|
||
flex-shrink: 0;
|
||
user-select: none;
|
||
}
|
||
.role-tab span:first-child {
|
||
font-size: 18px;
|
||
line-height: 1;
|
||
}
|
||
.role-tab-icon {
|
||
font-size: 18px;
|
||
line-height: 1;
|
||
}
|
||
.role-tab:hover {
|
||
transform: scale(1.06);
|
||
border-color: #c0c8d8;
|
||
color: var(--text);
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
|
||
}
|
||
.role-tab.active {
|
||
background: #ffffff;
|
||
color: #1677ff;
|
||
border-color: #1677ff;
|
||
border-width: 2px;
|
||
font-weight: 600;
|
||
transform: scale(1);
|
||
box-shadow: none;
|
||
}
|
||
|
||
/* 右侧:英雄数 + 搜索框 */
|
||
.champ-search-box {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.champ-count {
|
||
font-size: 14px;
|
||
color: var(--text-muted);
|
||
white-space: nowrap;
|
||
padding-left: 12px;
|
||
border-left: 1px solid var(--border);
|
||
}
|
||
.champ-count-num {
|
||
color: var(--accent-2);
|
||
font-weight: 600;
|
||
}
|
||
|
||
.search-input {
|
||
width: 240px;
|
||
height: 40px;
|
||
padding: 0 14px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 8px;
|
||
font-size: 14px;
|
||
font-family: inherit;
|
||
outline: none;
|
||
color: var(--text-sub);
|
||
background: #f5f6f8;
|
||
transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
|
||
}
|
||
.search-input::placeholder { color: #b0b8c4; }
|
||
.search-input:focus {
|
||
background: #fff;
|
||
border-color: #1677FF;
|
||
box-shadow: 0 0 0 2px rgba(22,119,255,0.12);
|
||
}
|
||
|
||
/* 英雄网格 */
|
||
/* 英雄网格 - 自适应,随窗口宽度变化 */
|
||
.champ-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(clamp(80px, 9vw, 160px), 1fr));
|
||
gap: clamp(8px, 1vw, 16px);
|
||
padding: 0 4px; /* 防止卡片阴影被裁切 */
|
||
}
|
||
|
||
.champ-card {
|
||
border-radius: 12px;
|
||
overflow: hidden; /* hidden防止图片超出圆角 */
|
||
cursor: pointer;
|
||
background: var(--card-bg);
|
||
border: 1.5px solid transparent;
|
||
box-shadow: 0 2px 8px rgba(0,0,0,.08);
|
||
transition: box-shadow 0.3s ease, transform 0.3s cubic-bezier(.25,.46,.45,.94), border-color 0.2s;
|
||
transform: translateZ(0);
|
||
will-change: transform;
|
||
}
|
||
|
||
.champ-card:hover {
|
||
box-shadow: 0 10px 28px rgba(0,0,0,.18);
|
||
transform: translateY(-6px) scale(1.03);
|
||
border-color: rgba(22,119,255,0.3);
|
||
}
|
||
|
||
/* 图片单独包一层限制溢出 */
|
||
.champ-card .champ-img-wrap {
|
||
border-radius: 0; /* 父级已有overflow:hidden,不需要再单独设圆角 */
|
||
overflow: hidden;
|
||
width: 100%;
|
||
aspect-ratio: 1;
|
||
position: relative;
|
||
}
|
||
|
||
/* hover 时底部渐变黑色遮罩 */
|
||
.champ-card .champ-img-wrap::after {
|
||
content: '';
|
||
position: absolute;
|
||
bottom: 0; left: 0; right: 0;
|
||
height: 50%;
|
||
background: linear-gradient(to top, rgba(0,0,0,0.55) 0%, transparent 100%);
|
||
opacity: 0;
|
||
transition: opacity 0.25s ease;
|
||
pointer-events: none;
|
||
border-radius: 0;
|
||
}
|
||
|
||
.champ-card:hover .champ-img-wrap::after {
|
||
opacity: 1;
|
||
}
|
||
|
||
.champ-card img {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
display: block;
|
||
transition: transform 0.3s cubic-bezier(.34,1.56,.64,1);
|
||
}
|
||
|
||
.champ-card:hover img {
|
||
transform: scale(1.12);
|
||
}
|
||
|
||
.champ-card .champ-name {
|
||
text-align: center;
|
||
font-size: 12px;
|
||
padding: 7px 4px 10px; /* 底部留白10px */
|
||
color: var(--text);
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
background: var(--card-bg);
|
||
border-radius: 0;
|
||
}
|
||
|
||
/* =============================================
|
||
皮肤详情页 - 对齐参考项目
|
||
============================================= */
|
||
|
||
/* 顶部信息栏 */
|
||
.sp-info-bar {
|
||
flex-shrink: 0;
|
||
width: auto; /* 配合 margin: 0 16px 使用,不用 width:100% 避免溢出 */
|
||
height: clamp(46px, 6vh, 62px);
|
||
background: var(--card-bg);
|
||
border: 1px solid var(--border);
|
||
border-radius: 12px;
|
||
display: flex; align-items: center; justify-content: space-between;
|
||
padding: 0 clamp(12px, 1.5vw, 22px);
|
||
margin-bottom: 10px;
|
||
box-sizing: border-box;
|
||
}
|
||
.sp-info-left { display: flex; align-items: center; gap: 14px; }
|
||
.sp-info-avatar {
|
||
width: 38px; height: 38px;
|
||
border-radius: 50%; object-fit: cover;
|
||
background: var(--border); border: 2px solid var(--border);
|
||
}
|
||
.sp-info-name { font-size: 17px; font-weight: 700; color: var(--text); }
|
||
.sp-info-sub {
|
||
font-size: 12px; color: var(--text-sub);
|
||
background: var(--bg);
|
||
border: 1px solid var(--border);
|
||
border-radius: 12px; padding: 3px 10px;
|
||
margin-left: 4px;
|
||
}
|
||
.sp-info-right { display: flex; align-items: center; gap: 10px; }
|
||
.sp-info-count {
|
||
display: flex; align-items: center; gap: 6px;
|
||
padding: 4px 12px;
|
||
background: rgba(22,93,255,0.08);
|
||
border: 1.5px solid rgba(22,93,255,0.2);
|
||
border-radius: 20px;
|
||
font-size: 12px; font-weight: 600; color: var(--accent-2);
|
||
}
|
||
.sp-info-count svg { width: 14px; height: 14px; fill: var(--accent-2); flex-shrink: 0; }
|
||
.sp-back-btn {
|
||
display: flex; align-items: center; gap: 5px;
|
||
height: 30px; padding: 0 12px;
|
||
border: 1.5px solid var(--border); border-radius: 7px;
|
||
background: var(--bg); color: var(--text);
|
||
font-size: 12px; font-weight: 600; cursor: pointer;
|
||
transition: all 0.15s;
|
||
}
|
||
.sp-back-btn svg { width: 15px; height: 15px; fill: var(--text); }
|
||
.sp-back-btn:hover { background: var(--accent-2); color: #fff; border-color: var(--accent-2); }
|
||
.sp-back-btn:hover svg { fill: #fff; }
|
||
|
||
/* 大图画布区域 */
|
||
.sp-canvas {
|
||
flex-shrink: 0;
|
||
width: auto; /* 配合 margin: 0 16px 使用 */
|
||
height: clamp(360px, 52vh, 660px);
|
||
position: relative;
|
||
background: #0a0e14; border-radius: 14px;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
justify-content: flex-end;
|
||
}
|
||
/* 大图铺满整个canvas */
|
||
.sp-bg-img {
|
||
position: absolute;
|
||
inset: 0; width: 100%; height: 100%;
|
||
object-fit: cover;
|
||
object-position: center 15%; /* 让人物上半身/脸部更完整显示 */
|
||
display: block;
|
||
transition: opacity 0.35s ease, transform 0.6s cubic-bezier(.25,.46,.45,.94);
|
||
transform-origin: center top;
|
||
}
|
||
.sp-canvas:hover .sp-bg-img {
|
||
transform: scale(1.04);
|
||
}
|
||
.sp-bg-loading {
|
||
position: absolute; inset: 0; z-index: 5;
|
||
background: rgba(10,14,20,0.65);
|
||
display: flex; align-items: center; justify-content: center;
|
||
opacity: 0; pointer-events: none; transition: opacity .2s;
|
||
}
|
||
.sp-bg-loading.show { opacity: 1; }
|
||
|
||
/* ── 炫彩圆点行:右上角,从右滑入 ── */
|
||
.sp-chroma-row {
|
||
position: absolute; top: 12px; right: 12px;
|
||
display: flex; align-items: center; gap: 6px;
|
||
flex-wrap: nowrap; z-index: 20;
|
||
background: rgba(10,14,30,0.7);
|
||
padding: 7px 12px; border-radius: 22px;
|
||
backdrop-filter: blur(6px);
|
||
border: 1px solid rgba(255,255,255,0.15);
|
||
transform: translateX(20px); opacity: 0;
|
||
transition: transform 0.32s cubic-bezier(.34,1.56,.64,1), opacity 0.25s ease;
|
||
}
|
||
.sp-chroma-row.visible { transform: translateX(0); opacity: 1; }
|
||
|
||
.sp-chroma-dot {
|
||
width: 20px; height: 20px; border-radius: 50%;
|
||
cursor: pointer; flex-shrink: 0;
|
||
border: 2px solid rgba(255,255,255,0.3);
|
||
transition: transform 0.18s, border-color 0.18s, box-shadow 0.18s;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.5);
|
||
}
|
||
.sp-chroma-dot:hover { transform: scale(1.3); border-color: #fff; }
|
||
.sp-chroma-dot.active {
|
||
border-color: #fff;
|
||
box-shadow: 0 0 0 2.5px rgba(255,255,255,0.45);
|
||
transform: scale(1.2);
|
||
}
|
||
|
||
/* ── 炫彩预览卡片:右上角,蓝色边框,从右滑入 ── */
|
||
.sp-chroma-card-name {
|
||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
|
||
/* 底部信息条 */
|
||
.sp-bottom-bar {
|
||
position: absolute; bottom: 0; left: 0; right: 0; z-index: 8;
|
||
background: linear-gradient(0deg, rgba(0,0,0,0.92) 0%, rgba(0,0,0,0.55) 70%, transparent 100%);
|
||
padding-top: 60px;
|
||
}
|
||
.sp-name-box {
|
||
display: flex; flex-direction: column; align-items: flex-start;
|
||
padding: 0 20px 10px;
|
||
}
|
||
.sp-skin-name {
|
||
font-size: 26px; font-weight: 700; color: #fff;
|
||
text-shadow: 0 2px 10px rgba(0,0,0,0.7);
|
||
line-height: 1.2; margin-bottom: 5px;
|
||
}
|
||
.sp-skin-desc {
|
||
font-size: 12px; color: rgba(255,255,255,0.72);
|
||
line-height: 1.65; max-width: 55%;
|
||
display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical;
|
||
overflow: hidden;
|
||
}
|
||
.sp-action-row { display: flex; gap: 10px; margin-top: 14px; }
|
||
.sp-btn-apply {
|
||
height: 40px; padding: 0 22px;
|
||
background: var(--accent-2); color: #fff;
|
||
border: none; border-radius: 7px;
|
||
font-size: 13px; font-weight: 700; cursor: pointer;
|
||
transition: transform 0.3s cubic-bezier(.25,.46,.45,.94), background 0.15s, box-shadow 0.3s;
|
||
}
|
||
.sp-btn-apply:hover {
|
||
background: #0958d9;
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 8px 20px rgba(22,119,255,0.45);
|
||
}
|
||
.sp-btn-apply:active { transform: translateY(-1px); }
|
||
|
||
.sp-btn-career {
|
||
height: 40px; padding: 0 22px;
|
||
background: rgba(255,255,255,0.12); color: #fff;
|
||
border: 1.5px solid rgba(255,255,255,0.35); border-radius: 7px;
|
||
font-size: 13px; font-weight: 700; cursor: pointer;
|
||
backdrop-filter: blur(6px);
|
||
transition: transform 0.3s cubic-bezier(.25,.46,.45,.94), background 0.15s, box-shadow 0.3s;
|
||
}
|
||
.sp-btn-career:hover {
|
||
background: rgba(255,255,255,0.22);
|
||
transform: translateY(-4px);
|
||
box-shadow: 0 8px 20px rgba(0,0,0,0.25);
|
||
}
|
||
.sp-btn-career:active { transform: translateY(-1px); }
|
||
|
||
/* 缩略图横向滚动行 */
|
||
.sp-thumb-row {
|
||
display: flex; align-items: center;
|
||
background: rgba(0,0,0,0.55);
|
||
padding: 10px 0; gap: 0;
|
||
}
|
||
.sp-arrow-btn {
|
||
flex-shrink: 0; width: 36px; height: 36px; border-radius: 50%;
|
||
background: rgba(255,255,255,0.15); border: none;
|
||
display: flex; align-items: center; justify-content: center;
|
||
cursor: pointer; margin: 0 8px;
|
||
transition: background 0.2s, transform 0.2s;
|
||
}
|
||
.sp-arrow-btn svg { width: 20px; height: 20px; fill: #fff; }
|
||
.sp-arrow-btn:hover { background: var(--accent-2); transform: scale(1.1); }
|
||
.sp-thumb-scroll {
|
||
flex: 1; min-width: 0; height: 160px; overflow: hidden; position: relative;
|
||
}
|
||
.sp-thumb-track {
|
||
display: flex; gap: 8px;
|
||
padding: 8px 8px;
|
||
height: 100%; align-items: flex-start;
|
||
box-sizing: border-box;
|
||
transition: transform 0.4s cubic-bezier(0.4,0,0.2,1);
|
||
will-change: transform;
|
||
cursor: grab; user-select: none;
|
||
flex-wrap: wrap;
|
||
}
|
||
.sp-thumb-track.dragging { cursor: grabbing; transition: none; }
|
||
|
||
/* 单个缩略图 - 对齐参考图白色卡片 */
|
||
.sp-thumb {
|
||
flex-shrink: 0;
|
||
width: 100%;
|
||
border-radius: 10px;
|
||
overflow: hidden;
|
||
cursor: pointer;
|
||
border: 1.5px solid transparent;
|
||
position: relative;
|
||
background: #ffffff;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.08);
|
||
transition: border-color 0.18s, box-shadow 0.18s;
|
||
display: flex; flex-direction: column;
|
||
}
|
||
.sp-thumb:hover img { transform: scale(1.1); }
|
||
.sp-thumb:hover .sp-thumb-img-wrap::after { opacity: 1; }
|
||
.sp-thumb.active {
|
||
border-color: #1E88D8;
|
||
box-shadow: 0 0 0 1px rgba(30,136,216,0.2);
|
||
}
|
||
.sp-thumb.active .sp-thumb-name { color: #1E88D8; }
|
||
|
||
/* 图片容器 */
|
||
.sp-thumb-img-wrap {
|
||
position: relative; overflow: hidden;
|
||
border-radius: 8px 8px 0 0;
|
||
aspect-ratio: 1; width: 100%;
|
||
}
|
||
.sp-thumb-img-wrap::after {
|
||
content: "";
|
||
position: absolute; inset: 0;
|
||
background: linear-gradient(to top, rgba(0,0,0,0.45) 0%, transparent 60%);
|
||
opacity: 0; transition: opacity 0.22s ease;
|
||
pointer-events: none;
|
||
}
|
||
.sp-thumb img {
|
||
width: 100%; height: 100%;
|
||
object-fit: cover; object-position: center top;
|
||
display: block;
|
||
transition: transform 0.28s cubic-bezier(.34,1.56,.64,1);
|
||
}
|
||
.sp-thumb-name {
|
||
background: #fff;
|
||
padding: 5px 5px 6px;
|
||
font-size: 11px; font-weight: 400; color: #333333;
|
||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
text-align: center;
|
||
border-top: 1px solid rgba(0,0,0,0.05);
|
||
transition: color 0.18s;
|
||
}
|
||
|
||
/* 角标 */
|
||
.sp-thumb-corner {
|
||
position: absolute; top: 5px; right: 5px;
|
||
min-width: 24px; height: 24px;
|
||
background: #1890ff; border-radius: 7px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
padding: 0 4px; z-index: 4;
|
||
box-shadow: 0 2px 6px rgba(24,144,255,0.5);
|
||
}
|
||
.sp-thumb-corner span {
|
||
font-size: 13px; font-weight: 800; color: #fff; line-height: 1;
|
||
}
|
||
.sp-thumb-quest {
|
||
position: absolute; top: 5px; right: 5px;
|
||
padding: 5px 4px;
|
||
background: #e53935;
|
||
border-radius: 5px; z-index: 4;
|
||
writing-mode: vertical-rl;
|
||
text-orientation: upright;
|
||
letter-spacing: 1px;
|
||
}
|
||
.sp-thumb-quest span { font-size: 11px; font-weight: 700; color: #fff; line-height: 1; }
|
||
|
||
/* =============================================
|
||
/* =============================================
|
||
Toast 通知框 - 顶部居中,支持多个叠加
|
||
============================================= */
|
||
#toast-container {
|
||
position: fixed;
|
||
top: 16px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
z-index: 99999;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 8px;
|
||
pointer-events: none;
|
||
white-space: nowrap;
|
||
}
|
||
|
||
.toast {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
background: #ffffff;
|
||
border-radius: 14px;
|
||
box-shadow: 0 4px 16px rgba(0,0,0,0.10);
|
||
border-left: 4px solid #52c41a;
|
||
padding: 13px 22px 13px 16px;
|
||
pointer-events: auto;
|
||
position: relative;
|
||
overflow: hidden;
|
||
animation: toastIn 0.38s cubic-bezier(.34,1.56,.64,1) forwards;
|
||
}
|
||
.toast.err { border-left-color: #1677ff; }
|
||
.toast.leaving { animation: toastOut 0.28s ease forwards; }
|
||
|
||
@keyframes toastIn {
|
||
from { opacity: 0; transform: translateY(-16px) scale(0.94); }
|
||
to { opacity: 1; transform: translateY(0) scale(1); }
|
||
}
|
||
@keyframes toastOut {
|
||
from { opacity: 1; transform: translateY(0) scale(1); }
|
||
to { opacity: 0; transform: translateY(-10px) scale(0.96); }
|
||
}
|
||
|
||
.toast-icon {
|
||
width: 32px; height: 32px;
|
||
border-radius: 50%;
|
||
display: flex; align-items: center; justify-content: center;
|
||
flex-shrink: 0;
|
||
font-size: 17px; font-weight: 700;
|
||
background: #f0fff4;
|
||
color: #52c41a;
|
||
}
|
||
.toast.err .toast-icon {
|
||
background: #e8f4ff;
|
||
color: #1677ff;
|
||
font-style: italic;
|
||
}
|
||
|
||
.toast-body {
|
||
font-size: 15px;
|
||
font-weight: 400;
|
||
color: #969696;
|
||
line-height: 1.4;
|
||
}
|
||
|
||
.toast-bar {
|
||
position: absolute;
|
||
bottom: 0; left: 0;
|
||
height: 3px;
|
||
background: #52c41a;
|
||
animation: toastBar 2.6s linear forwards;
|
||
}
|
||
.toast.err .toast-bar { background: #1677ff; }
|
||
|
||
@keyframes toastBar {
|
||
from { width: 100%; }
|
||
to { width: 0%; }
|
||
}
|
||
|
||
.loading-spin {
|
||
display: flex; justify-content: center; align-items: center;
|
||
height: 120px; color: var(--text-muted); gap: 10px; font-size: 13px;
|
||
}
|
||
.loading-spin::before {
|
||
content: ''; width: 18px; height: 18px;
|
||
border: 2px solid #e8eaed; border-top-color: var(--accent);
|
||
border-radius: 50%; animation: spin .7s linear infinite; flex-shrink: 0;
|
||
}
|
||
@keyframes spin { to { transform: rotate(360deg); } }
|
||
|
||
.placeholder-page {
|
||
display: flex; flex-direction: column;
|
||
align-items: center; justify-content: center;
|
||
height: 60vh; color: var(--text-muted); gap: 12px;
|
||
}
|
||
.placeholder-page svg { width: 60px; height: 60px; fill: #d1d5db; }
|
||
.placeholder-page p { font-size: 15px; }
|
||
|
||
/* 皮肤库页面 */
|
||
#page-skins {
|
||
padding: 0;
|
||
gap: 0;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
#page-skins:not(.active) { display: none !important; }
|
||
|
||
/* =============================================
|
||
皮肤详情 - 炫彩 wrap(圆点+卡片,右上角整体)
|
||
============================================= */
|
||
.sp-chroma-wrap {
|
||
position: absolute; z-index: 999;
|
||
display: flex; flex-direction: column; align-items: flex-end; gap: 6px;
|
||
transform: translateX(30px); opacity: 0;
|
||
transition: transform 0.38s cubic-bezier(.34,1.56,.64,1), opacity 0.28s ease;
|
||
pointer-events: none;
|
||
}
|
||
.sp-chroma-wrap.visible {
|
||
transform: translateX(0); opacity: 1;
|
||
pointer-events: auto;
|
||
}
|
||
|
||
/* 炫彩卡片:点击圆点后弹出 */
|
||
.sp-chroma-card {
|
||
width: 200px;
|
||
background: rgba(8,12,28,0.88);
|
||
backdrop-filter: blur(16px);
|
||
border: 1.5px solid rgba(255,255,255,0.18);
|
||
border-radius: 12px;
|
||
overflow: hidden;
|
||
opacity: 0; pointer-events: none;
|
||
transform: translateY(-8px) scale(0.95);
|
||
transition: opacity 0.22s ease, transform 0.25s cubic-bezier(.34,1.56,.64,1);
|
||
position: relative;
|
||
z-index: 25;
|
||
}
|
||
.sp-chroma-card.visible {
|
||
opacity: 1 !important;
|
||
pointer-events: auto;
|
||
transform: translateY(0) scale(1) !important;
|
||
}
|
||
|
||
/* 皮肤图标网格(大图下方,独立滚动) */
|
||
.sp-skin-grid-wrap {
|
||
flex: 1;
|
||
width: auto; /* 配合 margin: 0 16px 使用 */
|
||
min-height: 0;
|
||
background: #ffffff;
|
||
border-radius: 12px;
|
||
border: 1px solid var(--border);
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.06);
|
||
margin-top: 10px;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 顶部固定间距(不随滚动消失) */
|
||
.sp-skin-grid-wrap::before {
|
||
content: '';
|
||
display: block;
|
||
height: 14px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.sp-skin-grid-inner {
|
||
overflow-y: auto;
|
||
overflow-x: hidden;
|
||
flex: 1;
|
||
padding: 0 14px 14px;
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #c5c8d0 transparent;
|
||
}
|
||
.sp-skin-grid-inner::-webkit-scrollbar { width: 5px; }
|
||
.sp-skin-grid-inner::-webkit-scrollbar-thumb { background: #c5c8d0; border-radius: 3px; }
|
||
|
||
.sp-skin-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(130px, 1fr));
|
||
gap: 10px;
|
||
}
|
||
|
||
|
||
/* 英雄网格外层卡片(和皮肤详情的 sp-skin-grid-wrap 一致) */
|
||
.champ-grid-card {
|
||
flex: 1;
|
||
min-height: 0;
|
||
margin: 0 16px 16px;
|
||
background: #ffffff;
|
||
border-radius: 14px;
|
||
border: 1px solid var(--border);
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.06);
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 英雄列表滚动容器 */
|
||
.champ-grid-scroll {
|
||
flex: 1;
|
||
min-height: 0;
|
||
overflow-y: scroll; /* 始终显示滚动条 */
|
||
overflow-x: hidden;
|
||
padding: 14px 14px 14px 14px;
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #8c9096 transparent;
|
||
}
|
||
.champ-grid-scroll::-webkit-scrollbar { width: 6px; }
|
||
.champ-grid-scroll::-webkit-scrollbar-track {
|
||
background: rgba(0,0,0,0.04);
|
||
border-radius: 3px;
|
||
}
|
||
.champ-grid-scroll::-webkit-scrollbar-thumb {
|
||
background: #c5c8d0;
|
||
border-radius: 3px;
|
||
min-height: 40px;
|
||
}
|
||
.champ-grid-scroll::-webkit-scrollbar-thumb:hover { background: #8c9096; }
|
||
|
||
/* 底部占位 */
|
||
.champ-grid::after {
|
||
content: '';
|
||
display: block;
|
||
height: 16px;
|
||
grid-column: 1 / -1;
|
||
}
|
||
|
||
/* 职业筛选标签 */
|
||
.role-tabs {
|
||
display: flex;
|
||
gap: 8px;
|
||
flex-wrap: wrap;
|
||
flex: 1;
|
||
}
|
||
|
||
/* 加载中 Toast */
|
||
.toast-loading {
|
||
border-left-color: #1677ff;
|
||
}
|
||
.toast-spinner {
|
||
width: 20px; height: 20px;
|
||
border-radius: 50%;
|
||
border: 2.5px solid #e8f4ff;
|
||
border-top-color: #1677ff;
|
||
flex-shrink: 0;
|
||
animation: spin .7s linear infinite;
|
||
}
|
||
|
||
/* =============================================
|
||
美化库
|
||
============================================= */
|
||
#page-beauty {
|
||
padding: 0;
|
||
overflow: hidden;
|
||
display: flex;
|
||
flex-direction: column;
|
||
flex: 1;
|
||
min-height: 0;
|
||
}
|
||
#page-beauty > * { box-sizing: border-box; width: 100%; }
|
||
#page-beauty:not(.active) { display: none !important; }
|
||
|
||
.beauty-wrap {
|
||
display: flex;
|
||
flex-direction: column;
|
||
flex: 1;
|
||
min-height: 0;
|
||
height: 100%; /* 确保撑满父容器 */
|
||
overflow: hidden;
|
||
}
|
||
|
||
/* 顶部分类Tab */
|
||
.beauty-tabs {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 10px;
|
||
padding: 10px 16px;
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
flex-shrink: 0;
|
||
flex-wrap: nowrap;
|
||
margin: 14px 16px 10px; /* 左右16px,和皮肤库toolbar一致 */
|
||
box-shadow: var(--shadow);
|
||
}
|
||
|
||
.beauty-tab {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
gap: 6px;
|
||
padding: 0;
|
||
width: 104px;
|
||
height: 40px;
|
||
border-radius: 20px;
|
||
border: 1.5px solid #e8eaed;
|
||
background: #fff;
|
||
color: #6b7280;
|
||
font-size: 14px;
|
||
cursor: pointer;
|
||
transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), border-color 0.15s, color 0.15s, box-shadow 0.15s;
|
||
white-space: nowrap;
|
||
flex-shrink: 0;
|
||
user-select: none;
|
||
}
|
||
.beauty-tab:hover {
|
||
transform: scale(1.06);
|
||
border-color: #c0c8d8;
|
||
color: var(--text);
|
||
box-shadow: 0 2px 8px rgba(0,0,0,0.08);
|
||
}
|
||
.beauty-tab.active {
|
||
font-weight: 600;
|
||
border-width: 2px;
|
||
transform: scale(1);
|
||
box-shadow: none;
|
||
}
|
||
|
||
.beauty-total {
|
||
font-size: 14px;
|
||
color: var(--text-muted);
|
||
white-space: nowrap;
|
||
padding-left: 12px;
|
||
border-left: 1px solid var(--border);
|
||
flex-shrink: 0;
|
||
background: none;
|
||
border-radius: 0;
|
||
height: auto;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 4px;
|
||
}
|
||
.beauty-total-num {
|
||
color: var(--accent-2);
|
||
font-weight: 600;
|
||
}
|
||
|
||
/* 图片网格滚动容器 */
|
||
.beauty-grid-wrap {
|
||
flex: 1;
|
||
min-height: 0;
|
||
overflow-y: auto;
|
||
overflow-x: hidden;
|
||
padding: 0 16px 14px 16px; /* 左右16px,和皮肤库一致 */
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #c5c8d0 transparent;
|
||
}
|
||
.beauty-grid-wrap::-webkit-scrollbar { width: 5px; }
|
||
.beauty-grid-wrap::-webkit-scrollbar-thumb { background: #c5c8d0; border-radius: 3px; }
|
||
|
||
.beauty-grid {
|
||
display: grid;
|
||
grid-template-columns: repeat(auto-fill, minmax(clamp(110px, 10vw, 180px), 1fr));
|
||
gap: clamp(8px, 1vw, 14px);
|
||
padding-top: 14px;
|
||
padding-bottom: 14px;
|
||
align-content: start; /* 有几行就占几行,不拉伸撑满 */
|
||
}
|
||
|
||
/* 图片缺失时的提示覆盖层 */
|
||
.beauty-card-img-wrap.img-missing {
|
||
background: #f5f6f8;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
}
|
||
.beauty-img-missing-tip {
|
||
display: none;
|
||
font-size: 12px;
|
||
color: #9ca3af;
|
||
text-align: center;
|
||
pointer-events: none;
|
||
}
|
||
.beauty-card-img-wrap.img-missing .beauty-img-missing-tip {
|
||
display: block;
|
||
}
|
||
[data-theme="dark"] .beauty-card-img-wrap.img-missing {
|
||
background: #252840;
|
||
}
|
||
[data-theme="dark"] .beauty-img-missing-tip {
|
||
color: #565e7a;
|
||
}
|
||
|
||
/* 界面(jm)宽屏:横向比例 16:5,自适应列 */
|
||
.beauty-grid-wide {
|
||
grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
|
||
}
|
||
|
||
.beauty-img-wide {
|
||
aspect-ratio: 16/5 !important;
|
||
}
|
||
|
||
/* 单个美化卡片 - 和sp-thumb完全一致 */
|
||
.beauty-card {
|
||
border-radius: 10px;
|
||
overflow: hidden;
|
||
cursor: pointer;
|
||
border: 1.5px solid transparent;
|
||
position: relative;
|
||
background: #ffffff;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.08);
|
||
transition: border-color 0.18s, box-shadow 0.18s;
|
||
display: flex;
|
||
flex-direction: column;
|
||
transform: translateZ(0);
|
||
will-change: transform;
|
||
}
|
||
.beauty-card:hover {
|
||
border-color: #1E88D8;
|
||
box-shadow: 0 0 0 1px rgba(30,136,216,0.2);
|
||
}
|
||
.beauty-card:hover .beauty-card-img-wrap img {
|
||
transform: scale(1.1);
|
||
}
|
||
|
||
.beauty-card-img-wrap {
|
||
position: relative;
|
||
overflow: hidden;
|
||
border-radius: 8px 8px 0 0;
|
||
aspect-ratio: 1;
|
||
width: 100%;
|
||
background: #f8f8f8;
|
||
transform: translateZ(0); /* 强制GPU渲染,修复overflow:hidden在缩放时失效 */
|
||
}
|
||
|
||
.beauty-card-img-wrap img {
|
||
width: 100%;
|
||
height: 100%;
|
||
object-fit: cover;
|
||
object-position: center;
|
||
display: block;
|
||
transition: transform 0.28s cubic-bezier(.34,1.56,.64,1);
|
||
}
|
||
|
||
.beauty-card-name {
|
||
background: #fff;
|
||
padding: 5px 5px 6px;
|
||
font-size: 11px;
|
||
font-weight: 400;
|
||
color: #333333;
|
||
white-space: nowrap;
|
||
overflow: hidden;
|
||
text-overflow: ellipsis;
|
||
text-align: center;
|
||
border-top: 1px solid rgba(0,0,0,0.05);
|
||
transition: color 0.18s;
|
||
}
|
||
.beauty-card:hover .beauty-card-name { color: #1E88D8; }
|
||
.beauty-card.active .beauty-card-name { color: #1E88D8; }
|
||
|
||
/* 底部操作栏 */
|
||
.beauty-footer {
|
||
flex-shrink: 0;
|
||
padding: 12px 20px;
|
||
background: #fff;
|
||
border-top: 1px solid var(--border);
|
||
display: flex;
|
||
align-items: center;
|
||
}
|
||
|
||
.beauty-clear-btn {
|
||
height: 40px;
|
||
padding: 0 28px;
|
||
background: #1677ff;
|
||
color: #fff;
|
||
border: none;
|
||
border-radius: 8px;
|
||
font-size: 14px;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: transform 0.3s cubic-bezier(.25,.46,.45,.94), box-shadow 0.3s;
|
||
}
|
||
.beauty-clear-btn:hover {
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 20px rgba(22,119,255,0.4);
|
||
}
|
||
|
||
/* 界面(jm)宽屏网格 — 已在上方统一定义,此处删除重复规则 */
|
||
|
||
/* =============================================
|
||
使用指南卡片
|
||
============================================= */
|
||
.guide-header {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
margin-bottom: 14px;
|
||
}
|
||
|
||
.guide-list {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 10px;
|
||
margin-bottom: 14px;
|
||
}
|
||
|
||
.guide-item {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 8px;
|
||
font-size: 13px;
|
||
flex-wrap: wrap;
|
||
}
|
||
|
||
.guide-num {
|
||
width: 20px;
|
||
height: 20px;
|
||
border-radius: 50%;
|
||
background: #1677ff;
|
||
color: #fff;
|
||
font-size: 12px;
|
||
font-weight: 700;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.guide-text {
|
||
color: var(--text);
|
||
flex: 1;
|
||
}
|
||
|
||
.guide-link {
|
||
color: #1677ff;
|
||
font-size: 12px;
|
||
text-decoration: none;
|
||
white-space: nowrap;
|
||
flex-shrink: 0;
|
||
}
|
||
.guide-link:hover { text-decoration: underline; }
|
||
|
||
.guide-disclaimer {
|
||
background: #fffbe6;
|
||
border: 1px solid #ffe58f;
|
||
border-left: 3px solid #faad14;
|
||
border-radius: 4px;
|
||
padding: 10px 12px;
|
||
font-size: 12px;
|
||
color: #666;
|
||
line-height: 1.7;
|
||
margin-bottom: 14px;
|
||
}
|
||
|
||
.guide-footer {
|
||
display: flex;
|
||
gap: 10px;
|
||
}
|
||
|
||
.guide-btn-manual {
|
||
flex: 1;
|
||
height: 36px;
|
||
border: 1px solid var(--border);
|
||
border-radius: 6px;
|
||
background: #fff;
|
||
color: var(--text-sub);
|
||
font-size: 13px;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s, color 0.15s;
|
||
}
|
||
.guide-btn-manual:hover { border-color: #1677ff; color: #1677ff; }
|
||
|
||
.guide-btn-service {
|
||
flex: 1;
|
||
height: 36px;
|
||
border: none;
|
||
border-radius: 6px;
|
||
background: #52c41a;
|
||
color: #fff;
|
||
font-size: 13px;
|
||
font-weight: 600;
|
||
cursor: pointer;
|
||
transition: background 0.15s, transform 0.2s;
|
||
}
|
||
.guide-btn-service:hover { background: #389e0d; transform: translateY(-1px); }
|
||
|
||
/* =============================================
|
||
美化下载圆形进度弹窗
|
||
============================================= */
|
||
#beauty-progress-modal {
|
||
position: fixed;
|
||
top: 0;
|
||
left: 0;
|
||
right: 0;
|
||
bottom: 0;
|
||
z-index: 999999;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
background: rgba(0,0,0,0.5);
|
||
backdrop-filter: blur(6px);
|
||
}
|
||
#beauty-progress-modal.hidden { display: none; }
|
||
|
||
.beauty-progress-box {
|
||
background: #fff;
|
||
border-radius: 24px;
|
||
padding: 36px 44px 28px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
align-items: center;
|
||
gap: 18px;
|
||
box-shadow: 0 24px 64px rgba(0,0,0,0.22);
|
||
min-width: 260px;
|
||
}
|
||
|
||
.beauty-progress-ring-wrap {
|
||
position: relative;
|
||
width: 160px;
|
||
height: 160px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.beauty-progress-ring-wrap svg {
|
||
position: absolute;
|
||
top: 0; left: 0;
|
||
width: 160px; height: 160px;
|
||
transform: rotate(-90deg);
|
||
filter: drop-shadow(0 0 8px rgba(22,119,255,0.4));
|
||
z-index: 2;
|
||
pointer-events: none;
|
||
}
|
||
|
||
.beauty-progress-ring-bg {
|
||
fill: none;
|
||
stroke: #eef2ff;
|
||
stroke-width: 5;
|
||
}
|
||
|
||
.beauty-progress-ring-bar {
|
||
fill: none;
|
||
stroke: url(#progressGrad);
|
||
stroke-width: 5;
|
||
stroke-linecap: round;
|
||
transition: stroke-dashoffset 0.45s cubic-bezier(.4,0,.2,1);
|
||
}
|
||
|
||
.beauty-progress-img {
|
||
position: absolute;
|
||
top: 8px;
|
||
left: 8px;
|
||
width: 144px;
|
||
height: 144px;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
object-position: center center;
|
||
background: #f0f0f0;
|
||
z-index: 1;
|
||
}
|
||
|
||
/* 百分比放在圆圈底部,不挡图片主体 */
|
||
.beauty-progress-pct {
|
||
position: absolute;
|
||
bottom: 10px;
|
||
left: 0; right: 0;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
font-size: 14px;
|
||
font-weight: 700;
|
||
color: #fff;
|
||
text-shadow: 0 1px 4px rgba(0,0,0,0.8), 0 0 8px rgba(0,0,0,0.5);
|
||
z-index: 3;
|
||
}
|
||
|
||
.beauty-progress-label {
|
||
font-size: 14px;
|
||
color: var(--text-sub);
|
||
text-align: center;
|
||
max-width: 220px;
|
||
line-height: 1.6;
|
||
font-weight: 500;
|
||
}
|
||
.beauty-progress-speed {
|
||
font-size: 12px;
|
||
color: var(--text-muted);
|
||
margin-top: -10px;
|
||
}
|
||
|
||
|
||
/* =============================================
|
||
设置页面
|
||
============================================= */
|
||
#page-settings {
|
||
padding: 0;
|
||
overflow-y: auto;
|
||
scrollbar-width: thin;
|
||
scrollbar-color: #c5c8d0 transparent;
|
||
}
|
||
#page-settings::-webkit-scrollbar { width: 5px; }
|
||
#page-settings::-webkit-scrollbar-thumb { background: #c5c8d0; border-radius: 3px; }
|
||
|
||
.settings-wrap {
|
||
width: 100%;
|
||
padding: 14px 16px 40px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 16px;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 顶部标题区 —— 白色底,和美化库Tab栏一致 */
|
||
.settings-header {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 14px;
|
||
background: #ffffff;
|
||
border: 1px solid var(--border);
|
||
border-radius: var(--radius);
|
||
padding: 10px 16px;
|
||
box-shadow: var(--shadow);
|
||
}
|
||
.settings-header-icon {
|
||
width: 40px; height: 40px;
|
||
border-radius: 10px;
|
||
background: #e6f4ff;
|
||
display: flex; align-items: center; justify-content: center;
|
||
flex-shrink: 0;
|
||
}
|
||
.settings-header-title {
|
||
font-size: 15px; font-weight: 700; color: var(--text);
|
||
}
|
||
.settings-header-sub {
|
||
font-size: 12px; color: var(--text-muted); margin-top: 2px;
|
||
}
|
||
|
||
/* 主体区 */
|
||
.settings-body {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 18px;
|
||
}
|
||
|
||
/* 各分区块 */
|
||
.settings-section {
|
||
background: #fff;
|
||
border: 1px solid var(--border);
|
||
border-radius: 14px;
|
||
overflow: hidden;
|
||
box-shadow: 0 2px 10px rgba(0,0,0,0.06);
|
||
}
|
||
|
||
.settings-section-title {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
padding: 16px 20px 14px;
|
||
font-size: 15px;
|
||
font-weight: 700;
|
||
color: var(--text);
|
||
border-bottom: 1px solid var(--border);
|
||
background: #fafbfc;
|
||
}
|
||
|
||
.settings-section-icon {
|
||
width: 30px; height: 30px;
|
||
border-radius: 8px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.settings-section-badge {
|
||
font-size: 11px;
|
||
font-weight: 700;
|
||
padding: 2px 8px;
|
||
border-radius: 20px;
|
||
letter-spacing: .5px;
|
||
margin-left: auto;
|
||
}
|
||
.badge-cn {
|
||
background: linear-gradient(90deg, #fa541c, #fa8c16);
|
||
color: #fff;
|
||
}
|
||
.badge-global {
|
||
background: linear-gradient(90deg, #1677ff, #36cfc9);
|
||
color: #fff;
|
||
}
|
||
|
||
/* 清理残留卡 */
|
||
.settings-clean-card {
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: space-between;
|
||
gap: 20px;
|
||
padding: 20px 22px;
|
||
flex-wrap: wrap;
|
||
}
|
||
.settings-clean-info { flex: 1; min-width: 0; }
|
||
.settings-clean-title {
|
||
font-size: 14px; font-weight: 600; color: var(--text); margin-bottom: 6px;
|
||
}
|
||
.settings-clean-desc {
|
||
font-size: 13px; color: var(--text-sub); line-height: 1.6; margin-bottom: 10px;
|
||
}
|
||
.settings-clean-tags { display: flex; gap: 8px; flex-wrap: wrap; }
|
||
.settings-tag {
|
||
font-size: 13px;
|
||
padding: 6px 14px;
|
||
border-radius: 20px;
|
||
font-weight: 600;
|
||
}
|
||
.tag-warn { background: #fffbe6; color: #d46b08; border: 1px solid #ffe58f; }
|
||
.tag-safe { background: #f6ffed; color: #389e0d; border: 1px solid #b7eb8f; }
|
||
|
||
.settings-clean-btn {
|
||
flex-shrink: 0;
|
||
display: flex; align-items: center; gap: 7px;
|
||
height: 44px; padding: 0 22px;
|
||
background: linear-gradient(135deg, #ff4d4f, #ff7a45);
|
||
color: #fff; border: none; border-radius: 10px;
|
||
font-size: 14px; font-weight: 700; cursor: pointer;
|
||
box-shadow: 0 4px 14px rgba(255,77,79,0.38);
|
||
transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.25s;
|
||
}
|
||
.settings-clean-btn:hover {
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 22px rgba(255,77,79,0.5);
|
||
}
|
||
.settings-clean-btn:active { transform: translateY(-1px); }
|
||
|
||
/* 复选框组 */
|
||
.settings-checks-group {
|
||
display: flex;
|
||
gap: 32px;
|
||
padding: 18px 22px 22px;
|
||
}
|
||
|
||
.settings-check-label {
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 12px;
|
||
cursor: pointer;
|
||
user-select: none;
|
||
}
|
||
|
||
/* 自定义方框 —— 放大版 */
|
||
.settings-check-box {
|
||
width: 28px;
|
||
height: 28px;
|
||
border-radius: 7px;
|
||
border: 2px solid #d1d5db;
|
||
background: #fff;
|
||
display: flex;
|
||
align-items: center;
|
||
justify-content: center;
|
||
flex-shrink: 0;
|
||
transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 勾选状态 */
|
||
.settings-check-box.checked {
|
||
background: #1677ff;
|
||
border-color: #1677ff;
|
||
box-shadow: 0 3px 10px rgba(22,119,255,0.4);
|
||
}
|
||
|
||
/* 勾选后显示 ✓ */
|
||
.settings-check-box.checked::after {
|
||
content: '';
|
||
width: 7px;
|
||
height: 12px;
|
||
border: 2.5px solid #fff;
|
||
border-top: none;
|
||
border-left: none;
|
||
transform: rotate(45deg) translateY(-1px);
|
||
display: block;
|
||
}
|
||
|
||
/* hover */
|
||
.settings-check-label:hover .settings-check-box {
|
||
border-color: #1677ff;
|
||
}
|
||
|
||
.settings-check-text {
|
||
font-size: 15px;
|
||
font-weight: 600;
|
||
color: var(--text);
|
||
}
|
||
|
||
/* 复选框行右侧红色提示 */
|
||
.settings-check-tip {
|
||
margin-left: auto;
|
||
font-size: 13px;
|
||
font-weight: 500;
|
||
color: #ff4d4f;
|
||
background: #fff1f0;
|
||
border: 1px solid #ffccc7;
|
||
border-radius: 8px;
|
||
padding: 6px 14px;
|
||
line-height: 1.5;
|
||
align-self: center;
|
||
}
|
||
|
||
/* 分隔线(清理卡片内) */
|
||
.settings-divider {
|
||
height: 1px;
|
||
background: var(--border);
|
||
margin: 0 22px;
|
||
}
|
||
|
||
/* =============================================
|
||
工具箱页面
|
||
============================================= */
|
||
.tools-wrap {
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 16px;
|
||
padding: 14px 16px 40px;
|
||
width: 100%;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 主布局:左2列功能卡 + 右段位卡 */
|
||
.tools-main-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr minmax(22vw, 380px);
|
||
gap: clamp(10px, 1.2vw, 18px);
|
||
align-items: stretch;
|
||
width: 100%;
|
||
}
|
||
|
||
/* 左侧容器 —— 透明传递,让 tools-grid 直接参与 main-grid 布局 */
|
||
.tools-left {
|
||
display: flex;
|
||
flex-direction: column;
|
||
min-height: 0;
|
||
}
|
||
|
||
/* 左侧 2列功能卡网格,撑满左侧高度 */
|
||
.tools-grid {
|
||
display: grid;
|
||
grid-template-columns: 1fr 1fr;
|
||
grid-template-rows: 1fr 1fr;
|
||
gap: 14px;
|
||
flex: 1;
|
||
}
|
||
|
||
/* 单个功能卡片 */
|
||
.tools-card {
|
||
background: #fff;
|
||
border: 1px solid var(--border);
|
||
border-radius: 16px;
|
||
padding: 26px 24px;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 18px;
|
||
box-shadow: 0 2px 10px rgba(0,0,0,0.06);
|
||
transition: box-shadow 0.3s ease, transform 0.3s cubic-bezier(.25,.46,.45,.94);
|
||
cursor: default;
|
||
box-sizing: border-box;
|
||
min-height: 130px;
|
||
}
|
||
.tools-card:hover {
|
||
box-shadow: 0 10px 28px rgba(0,0,0,0.13);
|
||
transform: translateY(-6px);
|
||
}
|
||
|
||
.tools-card-icon {
|
||
width: 60px; height: 60px;
|
||
border-radius: 16px;
|
||
display: flex; align-items: center; justify-content: center;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
.tools-card-info { flex: 1; min-width: 0; }
|
||
.tools-card-title {
|
||
font-size: 17px; font-weight: 700; color: var(--text); margin-bottom: 6px;
|
||
}
|
||
.tools-card-desc { font-size: 13px; color: var(--text-muted); }
|
||
|
||
/* 开关 toggle */
|
||
.tools-toggle {
|
||
flex-shrink: 0;
|
||
width: 46px; height: 26px;
|
||
border-radius: 13px;
|
||
background: #e0e0e0;
|
||
position: relative;
|
||
cursor: pointer;
|
||
transition: background 0.25s;
|
||
}
|
||
.tools-toggle.on { background: #1677ff; }
|
||
.tools-toggle-dot {
|
||
position: absolute;
|
||
top: 3px; left: 3px;
|
||
width: 20px; height: 20px;
|
||
border-radius: 50%;
|
||
background: #fff;
|
||
box-shadow: 0 1px 4px rgba(0,0,0,0.2);
|
||
transition: left 0.25s cubic-bezier(.34,1.56,.64,1);
|
||
}
|
||
.tools-toggle.on .tools-toggle-dot { left: 23px; }
|
||
|
||
/* 段位修改卡片 —— 右侧,和左侧等高 */
|
||
.tools-rank-card {
|
||
background: #fff;
|
||
border: 1px solid var(--border);
|
||
border-radius: 16px;
|
||
box-shadow: 0 2px 10px rgba(0,0,0,0.06);
|
||
overflow: hidden;
|
||
transition: box-shadow 0.3s ease, transform 0.3s cubic-bezier(.25,.46,.45,.94);
|
||
display: flex;
|
||
flex-direction: column;
|
||
}
|
||
.tools-rank-card:hover {
|
||
box-shadow: 0 10px 28px rgba(0,0,0,0.13);
|
||
transform: translateY(-6px);
|
||
}
|
||
.tools-rank-title {
|
||
display: flex; align-items: center; gap: 10px;
|
||
padding: 14px 20px;
|
||
font-size: 15px; font-weight: 700; color: var(--text);
|
||
border-bottom: 1px solid var(--border);
|
||
background: #fafbfc;
|
||
}
|
||
.tools-rank-body {
|
||
padding: 18px 20px 20px;
|
||
display: flex;
|
||
flex-direction: column;
|
||
gap: 14px;
|
||
flex: 1;
|
||
justify-content: center;
|
||
}
|
||
.tools-rank-row {
|
||
display: flex; gap: 14px;
|
||
}
|
||
.tools-rank-field {
|
||
flex: 1;
|
||
display: flex; flex-direction: column; gap: 7px;
|
||
}
|
||
.tools-rank-field-full { width: 100%; }
|
||
.tools-rank-label {
|
||
font-size: 12px; font-weight: 600; color: var(--text-sub);
|
||
}
|
||
|
||
/* 段位下拉 */
|
||
.tools-select-wrap {
|
||
position: relative;
|
||
}
|
||
.tools-select {
|
||
width: 100%; height: 42px;
|
||
padding: 0 36px 0 14px;
|
||
border-radius: 10px;
|
||
border: 1.5px solid var(--border);
|
||
background: #f5f6f8;
|
||
font-size: 14px; font-weight: 600;
|
||
font-family: inherit;
|
||
color: var(--text);
|
||
outline: none;
|
||
appearance: none; -webkit-appearance: none;
|
||
cursor: pointer;
|
||
transition: border-color 0.15s, background 0.15s, box-shadow 0.15s;
|
||
}
|
||
.tools-select:focus {
|
||
background: #fff;
|
||
border-color: #1677ff;
|
||
box-shadow: 0 0 0 3px rgba(22,119,255,0.10);
|
||
}
|
||
.tools-select-arrow {
|
||
position: absolute; right: 12px; top: 50%;
|
||
transform: translateY(-50%);
|
||
pointer-events: none;
|
||
color: #9ca3af; font-size: 14px;
|
||
}
|
||
|
||
/* 工具箱底部提示 */
|
||
.tools-footer-tip {
|
||
font-size: 13px;
|
||
font-weight: 500;
|
||
color: #ff4d4f;
|
||
background: #fff1f0;
|
||
border: 1px solid #ffccc7;
|
||
border-radius: 10px;
|
||
padding: 12px 18px;
|
||
text-align: center;
|
||
letter-spacing: .3px;
|
||
}
|
||
|
||
/* =============================================
|
||
侧边栏底部用户区
|
||
============================================= */
|
||
.sidebar-user {
|
||
margin: auto 10px 12px;
|
||
padding: 10px 12px;
|
||
border-radius: 12px;
|
||
border: 1px solid var(--border);
|
||
background: #f8f9fb;
|
||
display: flex;
|
||
align-items: center;
|
||
gap: 10px;
|
||
cursor: pointer;
|
||
transition: background 0.15s, box-shadow 0.15s;
|
||
flex-shrink: 0;
|
||
}
|
||
.sidebar-user:hover {
|
||
background: #eef2ff;
|
||
box-shadow: 0 2px 10px rgba(22,119,255,0.1);
|
||
}
|
||
.sidebar-user-avatar {
|
||
width: 36px; height: 36px;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
border: 2px solid #d1d5db;
|
||
flex-shrink: 0;
|
||
background: #e8eaed;
|
||
}
|
||
.sidebar-user-info { flex: 1; min-width: 0; }
|
||
.sidebar-user-name {
|
||
font-size: 13px; font-weight: 600; color: var(--text);
|
||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
.sidebar-user-sub {
|
||
font-size: 11px; color: var(--text-muted); margin-top: 1px;
|
||
}
|
||
|
||
/* =============================================
|
||
用户信息弹出卡片 — 重新设计
|
||
============================================= */
|
||
.user-card {
|
||
position: fixed;
|
||
width: 240px;
|
||
background: #fff;
|
||
border: 1px solid var(--border);
|
||
border-radius: 20px;
|
||
box-shadow: 0 12px 40px rgba(0,0,0,0.15);
|
||
z-index: 99998;
|
||
overflow: hidden;
|
||
animation: userCardIn 0.22s cubic-bezier(.34,1.56,.64,1);
|
||
box-sizing: border-box;
|
||
}
|
||
.user-card.hidden { display: none; }
|
||
|
||
@keyframes userCardIn {
|
||
from { opacity: 0; transform: translateY(10px) scale(0.95); }
|
||
to { opacity: 1; transform: translateY(0) scale(1); }
|
||
}
|
||
|
||
/* 顶部蓝色渐变区 */
|
||
.user-card-bg {
|
||
height: 68px;
|
||
background: linear-gradient(135deg, #1677ff 0%, #0bc4e3 100%);
|
||
}
|
||
|
||
/* 头像悬浮区 */
|
||
.user-card-avatar-wrap {
|
||
position: relative;
|
||
display: flex;
|
||
justify-content: center;
|
||
margin-top: -38px;
|
||
margin-bottom: 4px;
|
||
}
|
||
.user-card-avatar {
|
||
width: 76px; height: 76px;
|
||
border-radius: 50%;
|
||
object-fit: cover;
|
||
border: 3px solid #fff;
|
||
box-shadow: 0 4px 16px rgba(22,119,255,0.4);
|
||
background: #e8eaed;
|
||
display: block;
|
||
}
|
||
.user-card-level {
|
||
position: absolute;
|
||
bottom: -6px;
|
||
left: 50%;
|
||
transform: translateX(-50%);
|
||
font-size: 11px; font-weight: 700;
|
||
color: #fff;
|
||
background: linear-gradient(90deg, #1677ff, #0bc4e3);
|
||
border-radius: 10px;
|
||
padding: 2px 10px;
|
||
border: 2px solid #fff;
|
||
white-space: nowrap;
|
||
box-shadow: 0 2px 8px rgba(22,119,255,0.5);
|
||
z-index: 1;
|
||
}
|
||
|
||
/* 昵称居中 */
|
||
.user-card-name {
|
||
text-align: center;
|
||
font-size: 15px; font-weight: 700;
|
||
color: var(--text);
|
||
padding: 0 16px;
|
||
margin: 14px 0 12px;
|
||
white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
|
||
}
|
||
|
||
/* 信息行 */
|
||
.user-card-rows {
|
||
border-top: 1px solid var(--border);
|
||
padding: 8px 16px 14px;
|
||
}
|
||
.user-card-row {
|
||
display: flex;
|
||
justify-content: space-between;
|
||
align-items: center;
|
||
padding: 7px 0;
|
||
font-size: 13px;
|
||
border-bottom: 1px solid #f0f0f0;
|
||
}
|
||
.user-card-row:last-child { border-bottom: none; }
|
||
.user-card-label { color: var(--text-muted); }
|
||
.user-card-value { font-weight: 600; color: var(--text); }
|
||
.user-card-expire { color: #ff4d4f; }
|
||
|
||
/* =============================================
|
||
暗色主题
|
||
============================================= */
|
||
[data-theme="dark"] {
|
||
--bg: #0f1117;
|
||
--sidebar-bg: #1a1d27;
|
||
--card-bg: #1e2130;
|
||
--border: #2e3347;
|
||
--text: #e8eaf0;
|
||
--text-sub: #8b92a8;
|
||
--text-muted: #565e7a;
|
||
--accent: #0bc4e3;
|
||
--accent-2: #4d8fff;
|
||
--shadow: 0 2px 12px rgba(0,0,0,.35);
|
||
}
|
||
|
||
[data-theme="dark"] body {
|
||
background: var(--bg);
|
||
color: var(--text);
|
||
}
|
||
|
||
[data-theme="dark"] .titlebar {
|
||
background: #1a1d27;
|
||
border-bottom-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .sidebar {
|
||
background: var(--sidebar-bg);
|
||
border-right-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .nav-item:hover {
|
||
background: #252840;
|
||
}
|
||
|
||
[data-theme="dark"] .nav-item.active {
|
||
background: #252840;
|
||
color: var(--accent-2);
|
||
}
|
||
|
||
[data-theme="dark"] .card,
|
||
[data-theme="dark"] .tools-card,
|
||
[data-theme="dark"] .tools-rank-card,
|
||
[data-theme="dark"] .settings-section,
|
||
[data-theme="dark"] .beauty-tabs,
|
||
[data-theme="dark"] .skins-toolbar {
|
||
background: var(--card-bg);
|
||
border-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .sp-skin-grid-wrap,
|
||
[data-theme="dark"] .beauty-footer {
|
||
background: var(--card-bg);
|
||
border-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .champ-card {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
}
|
||
|
||
[data-theme="dark"] .champ-card:hover {
|
||
border-color: rgba(77,143,255,0.5);
|
||
box-shadow: 0 10px 28px rgba(0,0,0,.45);
|
||
}
|
||
|
||
[data-theme="dark"] .champ-grid-card {
|
||
background: #1a1d27;
|
||
border-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .champ-card .champ-name {
|
||
background: #252840;
|
||
color: var(--text);
|
||
}
|
||
|
||
[data-theme="dark"] .sp-thumb,
|
||
[data-theme="dark"] .beauty-card {
|
||
background: #252840;
|
||
}
|
||
|
||
[data-theme="dark"] .sp-thumb-name,
|
||
[data-theme="dark"] .beauty-card-name {
|
||
background: #252840;
|
||
color: var(--text-sub);
|
||
}
|
||
|
||
[data-theme="dark"] .search-input,
|
||
[data-theme="dark"] .tools-select {
|
||
background: #252840;
|
||
border-color: var(--border);
|
||
color: var(--text);
|
||
}
|
||
|
||
[data-theme="dark"] .sidebar-user {
|
||
background: #252840;
|
||
border-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .user-card {
|
||
background: #1e2130;
|
||
border-color: var(--border);
|
||
}
|
||
|
||
[data-theme="dark"] .settings-section-title,
|
||
[data-theme="dark"] .tools-rank-title {
|
||
background: #252840;
|
||
}
|
||
|
||
[data-theme="dark"] .tb-btn:hover {
|
||
background: #2e3347;
|
||
}
|
||
|
||
[data-theme="dark"] .welcome-banner {
|
||
background: linear-gradient(135deg, #1a3a6e 0%, #0f2a52 100%);
|
||
}
|
||
|
||
[data-theme="dark"] .role-tab {
|
||
background: var(--card-bg);
|
||
border-color: var(--border);
|
||
color: var(--text-sub);
|
||
}
|
||
|
||
[data-theme="dark"] .logo {
|
||
border-bottom-color: var(--border);
|
||
}
|
||
|
||
/* ── 暗色主题补充 ── */
|
||
|
||
/* 美化库 tab */
|
||
[data-theme="dark"] .beauty-tab {
|
||
background: #1e2130;
|
||
border-color: #2e3347;
|
||
color: #8b92a8;
|
||
}
|
||
[data-theme="dark"] .beauty-tab:hover {
|
||
background: #252840;
|
||
border-color: #4d8fff;
|
||
color: #e8eaf0;
|
||
}
|
||
[data-theme="dark"] .beauty-tabs {
|
||
background: #1a1d27;
|
||
border-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .beauty-total { color: #8b92a8; }
|
||
[data-theme="dark"] .beauty-grid-wrap { background: transparent; }
|
||
|
||
/* 美化卡片名字 */
|
||
[data-theme="dark"] .beauty-card-name {
|
||
background: #252840;
|
||
color: #8b92a8;
|
||
border-top-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .beauty-card {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
}
|
||
|
||
/* 工具箱底部提示 */
|
||
[data-theme="dark"] .tools-footer-tip {
|
||
background: #2a1a1f;
|
||
border-color: #4a2530;
|
||
color: #ff7875;
|
||
}
|
||
|
||
/* 工具箱 toggle 背景 */
|
||
[data-theme="dark"] .tools-toggle { background: #2e3347; }
|
||
[data-theme="dark"] .tools-toggle.on { background: #4d8fff; }
|
||
|
||
/* 段位下拉 */
|
||
[data-theme="dark"] .tools-select {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
color: #e8eaf0;
|
||
}
|
||
[data-theme="dark"] .tools-select-arrow { color: #565e7a; }
|
||
[data-theme="dark"] .tools-rank-label { color: #8b92a8; }
|
||
|
||
/* 设置页标题卡 */
|
||
[data-theme="dark"] .settings-header {
|
||
background: #1e2130;
|
||
border-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .settings-header-title { color: #e8eaf0; }
|
||
[data-theme="dark"] .settings-header-sub { color: #8b92a8; }
|
||
[data-theme="dark"] .settings-header-icon { background: #252840; }
|
||
|
||
/* 设置页分区块 */
|
||
[data-theme="dark"] .settings-section-title {
|
||
background: #252840;
|
||
border-bottom-color: #2e3347;
|
||
color: #e8eaf0;
|
||
}
|
||
[data-theme="dark"] .settings-clean-title { color: #e8eaf0; }
|
||
[data-theme="dark"] .settings-clean-desc { color: #8b92a8; }
|
||
|
||
/* tag标签 */
|
||
[data-theme="dark"] .tag-warn {
|
||
background: #2a2210;
|
||
border-color: #5a4500;
|
||
color: #ffc53d;
|
||
}
|
||
[data-theme="dark"] .tag-safe {
|
||
background: #0f2a1a;
|
||
border-color: #1a5c30;
|
||
color: #73d13d;
|
||
}
|
||
|
||
/* 复选框文字 */
|
||
[data-theme="dark"] .settings-check-text { color: #e8eaf0; }
|
||
[data-theme="dark"] .settings-check-box {
|
||
border-color: #4d8fff;
|
||
background: #1e2130;
|
||
}
|
||
[data-theme="dark"] .settings-check-tip {
|
||
background: #2a1a1f;
|
||
border-color: #4a2530;
|
||
color: #ff7875;
|
||
}
|
||
|
||
/* 设置页分隔线 */
|
||
[data-theme="dark"] .settings-divider { background: #2e3347; }
|
||
[data-theme="dark"] .settings-clean-card { background: #1e2130; }
|
||
|
||
/* 工具箱 rank 卡片标题 */
|
||
[data-theme="dark"] .tools-rank-title {
|
||
background: #252840;
|
||
color: #e8eaf0;
|
||
border-bottom-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .tools-rank-body { background: #1e2130; }
|
||
[data-theme="dark"] .tools-rank-card { background: #1e2130; border-color: #2e3347; }
|
||
|
||
/* page背景 */
|
||
[data-theme="dark"] .page { background: #0f1117; }
|
||
[data-theme="dark"] .main { background: #0f1117; }
|
||
|
||
/* 滚动条 */
|
||
[data-theme="dark"] ::-webkit-scrollbar-thumb { background: #4a5068; }
|
||
[data-theme="dark"] ::-webkit-scrollbar-thumb:hover { background: #5e6480; }
|
||
[data-theme="dark"] ::-webkit-scrollbar-track { background: rgba(255,255,255,0.03); }
|
||
|
||
/* 皮肤库搜索框 */
|
||
[data-theme="dark"] .search-input {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
color: #e8eaf0;
|
||
}
|
||
[data-theme="dark"] .search-input::placeholder { color: #565e7a; }
|
||
|
||
/* role tab */
|
||
[data-theme="dark"] .role-tab {
|
||
background: #1e2130;
|
||
border-color: #2e3347;
|
||
color: #8b92a8;
|
||
}
|
||
[data-theme="dark"] .role-tab.active {
|
||
background: #1e2130;
|
||
border-color: #4d8fff;
|
||
color: #4d8fff;
|
||
}
|
||
|
||
/* skins toolbar */
|
||
[data-theme="dark"] .skins-toolbar {
|
||
background: #1a1d27;
|
||
border-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .champ-count { color: #8b92a8; border-left-color: #2e3347; }
|
||
|
||
/* 用户信息弹出卡片暗色 */
|
||
[data-theme="dark"] .user-card {
|
||
background: #1e2130;
|
||
border-color: #2e3347;
|
||
box-shadow: 0 8px 32px rgba(0,0,0,0.45);
|
||
}
|
||
[data-theme="dark"] .user-card-bg {
|
||
background: linear-gradient(135deg, #0a3a7a 0%, #0a5a8a 100%);
|
||
}
|
||
[data-theme="dark"] .user-card-avatar {
|
||
border-color: #1e2130;
|
||
}
|
||
[data-theme="dark"] .user-card-level { border-color: #1e2130; }
|
||
[data-theme="dark"] .user-card-name { color: #e8eaf0; }
|
||
[data-theme="dark"] .user-card-rows { border-top-color: #2e3347; }
|
||
[data-theme="dark"] .user-card-row { border-bottom-color: #2e3347; }
|
||
[data-theme="dark"] .user-card-label { color: #8b92a8; }
|
||
[data-theme="dark"] .user-card-value:not(.user-card-expire) { color: #e8eaf0; }
|
||
[data-theme="dark"] .user-card-level { background: linear-gradient(90deg, #1677ff, #0bc4e3); }
|
||
|
||
/* 侧边栏底部用户区 */
|
||
[data-theme="dark"] .sidebar-user {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .sidebar-user:hover {
|
||
background: #2e3347;
|
||
}
|
||
[data-theme="dark"] .sidebar-user-name { color: #e8eaf0; }
|
||
[data-theme="dark"] .sidebar-user-sub { color: #565e7a; }
|
||
|
||
/* 美化库图片容器暗色背景修复 */
|
||
[data-theme="dark"] .beauty-card-img-wrap {
|
||
background: #252840;
|
||
}
|
||
[data-theme="dark"] .beauty-card:hover {
|
||
border-color: #4d8fff;
|
||
box-shadow: 0 0 0 1px rgba(77,143,255,0.2);
|
||
}
|
||
[data-theme="dark"] .beauty-card:hover .beauty-card-name { color: #4d8fff; }
|
||
[data-theme="dark"] .beauty-card.active .beauty-card-name { color: #4d8fff; }
|
||
|
||
/* 修复暗色主题美化库hover白色框 */
|
||
[data-theme="dark"] .beauty-card {
|
||
background: #252840;
|
||
border-color: #2e3347;
|
||
}
|
||
[data-theme="dark"] .beauty-card .beauty-card-img-wrap {
|
||
background: #252840;
|
||
}
|
||
|
||
/* 美化资源下载按钮 */
|
||
.beauty-download-btn {
|
||
height: 46px; padding: 0 32px;
|
||
background: linear-gradient(135deg, #1677ff, #0bc4e3);
|
||
color: #fff; border: none; border-radius: 12px;
|
||
font-size: 15px; font-weight: 700; cursor: pointer;
|
||
box-shadow: 0 4px 16px rgba(22,119,255,0.4);
|
||
transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.25s;
|
||
}
|
||
.beauty-download-btn:hover {
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 24px rgba(22,119,255,0.5);
|
||
}
|
||
|
||
/* =============================================
|
||
CEF 窗口自适应 — 统一响应式规则
|
||
============================================= */
|
||
|
||
/* 确保 html/body 撑满窗口 */
|
||
html, body { width: 100%; height: 100%; overflow: hidden; }
|
||
|
||
.app-shell, .app-body, .main { width: 100%; min-width: 0; }
|
||
|
||
/* 大窗口 ≥ 1200px */
|
||
@media (min-width: 1200px) {
|
||
:root { --sidebar-w: 180px; }
|
||
.champ-grid { grid-template-columns: repeat(7, 1fr); }
|
||
}
|
||
|
||
/* 标准窗口 900-1199px */
|
||
@media (min-width: 900px) and (max-width: 1199px) {
|
||
:root { --sidebar-w: 160px; }
|
||
.champ-grid { grid-template-columns: repeat(auto-fill, minmax(110px, 1fr)); }
|
||
.role-tab { width: 80px; font-size: 13px; }
|
||
}
|
||
|
||
/* 小窗口 700-899px */
|
||
@media (min-width: 700px) and (max-width: 899px) {
|
||
:root { --sidebar-w: 140px; }
|
||
.champ-grid { grid-template-columns: repeat(auto-fill, minmax(95px, 1fr)); gap: 10px; }
|
||
.nav-item { font-size: 13px; height: 46px; min-height: 46px; }
|
||
.role-tab { width: 70px; height: 36px; font-size: 12px; }
|
||
.search-input { width: 160px; }
|
||
.skins-toolbar { flex-wrap: wrap; padding: 8px 12px; }
|
||
.beauty-tabs { margin: 8px 10px 6px; padding: 8px 10px; }
|
||
.beauty-tab { width: 82px; height: 34px; font-size: 12px; }
|
||
.tools-main-grid { grid-template-columns: 1fr; }
|
||
.tools-rank-card { height: auto; }
|
||
}
|
||
|
||
/* 超小窗口 < 700px */
|
||
@media (max-width: 699px) {
|
||
:root { --sidebar-w: 52px; }
|
||
.nav-item span:not(.nav-icon) { display: none; }
|
||
.nav-item { padding: 0; justify-content: center; gap: 0; }
|
||
.logo-em { font-size: 14px; }
|
||
.sidebar-user-info { display: none; }
|
||
.sidebar-user-avatar { width: 30px; height: 30px; }
|
||
.champ-grid { grid-template-columns: repeat(auto-fill, minmax(80px, 1fr)); gap: 8px; }
|
||
.skins-toolbar { flex-wrap: wrap; gap: 6px; }
|
||
.role-tabs { gap: 4px; }
|
||
.role-tab { width: 60px; height: 32px; font-size: 11px; }
|
||
.search-input { width: 120px; }
|
||
.beauty-tabs { margin: 8px 10px 6px; padding: 8px 10px; }
|
||
.beauty-tab { width: 70px; height: 32px; font-size: 11px; }
|
||
.tools-main-grid { grid-template-columns: 1fr; }
|
||
.tools-card { padding: 16px; }
|
||
.tools-rank-card { height: auto; }
|
||
.settings-wrap { padding: 10px 10px 20px; }
|
||
}
|
||
|
||
/* 高度较小的窗口 */
|
||
@media (max-height: 500px) {
|
||
.nav-item { height: 40px; min-height: 40px; }
|
||
.logo { padding: 12px 10px; }
|
||
.champ-card .champ-name { font-size: 11px; }
|
||
}
|
||
|
||
/* =============================================
|
||
皮肤详情页自适应
|
||
============================================= */
|
||
.sp-canvas {
|
||
height: clamp(360px, 52vh, 660px);
|
||
}
|
||
|
||
.sp-skin-name {
|
||
font-size: clamp(18px, 2.2vw, 30px);
|
||
}
|
||
|
||
.sp-btn-apply, .sp-btn-career {
|
||
height: clamp(34px, 4.5vh, 46px);
|
||
padding: 0 clamp(14px, 1.8vw, 26px);
|
||
font-size: clamp(12px, 1.1vw, 15px);
|
||
}
|
||
|
||
.sp-info-bar {
|
||
height: clamp(46px, 6vh, 62px);
|
||
padding: 0 clamp(12px, 1.5vw, 22px);
|
||
}
|
||
|
||
.sp-info-name {
|
||
font-size: clamp(14px, 1.4vw, 20px);
|
||
}
|
||
|
||
/* 美化库tab自适应 */
|
||
.beauty-tab {
|
||
width: clamp(70px, 8vw, 120px);
|
||
height: clamp(32px, 4.5vh, 46px);
|
||
font-size: clamp(11px, 1vw, 14px);
|
||
}
|
||
|
||
/* 工具箱卡片自适应 */
|
||
.tools-card {
|
||
padding: clamp(14px, 2vh, 28px) clamp(14px, 1.8vw, 26px);
|
||
min-height: clamp(100px, 14vh, 180px);
|
||
}
|
||
|
||
.tools-card-title {
|
||
font-size: clamp(13px, 1.3vw, 19px);
|
||
}
|
||
|
||
.tools-card-desc {
|
||
font-size: clamp(11px, 0.9vw, 14px);
|
||
}
|
||
|
||
.tools-card-icon {
|
||
width: clamp(42px, 5vw, 68px);
|
||
height: clamp(42px, 5vw, 68px);
|
||
font-size: clamp(22px, 3vw, 40px);
|
||
}
|
||
|
||
/* 设置页自适应 */
|
||
.settings-clean-title {
|
||
font-size: clamp(13px, 1.2vw, 16px);
|
||
}
|
||
.settings-clean-desc {
|
||
font-size: clamp(11px, 0.9vw, 13px);
|
||
}
|
||
.settings-clean-btn {
|
||
height: clamp(36px, 5vh, 48px);
|
||
padding: 0 clamp(14px, 1.8vw, 24px);
|
||
font-size: clamp(12px, 1vw, 15px);
|
||
}
|
||
.settings-check-text {
|
||
font-size: clamp(13px, 1.2vw, 17px);
|
||
}
|
||
.settings-check-box {
|
||
width: clamp(22px, 2.5vw, 32px);
|
||
height: clamp(22px, 2.5vw, 32px);
|
||
}
|
||
|
||
/* =============================================
|
||
皮肤库 & 皮肤详情 高端化升级
|
||
============================================= */
|
||
|
||
/* toolbar 加 margin,和美化库tabs一致 */
|
||
.skins-toolbar {
|
||
margin: 14px 16px 10px;
|
||
flex-shrink: 0;
|
||
}
|
||
|
||
/* 英雄卡片升级(补充属性,不重写基础定义)*/
|
||
/* 基础定义已在上方 .champ-card 中,这里只补充升级属性 */
|
||
.champ-card .champ-name {
|
||
font-size: clamp(11px, 0.85vw, 13px);
|
||
padding: 7px 4px 10px; /* 保持底部留白 */
|
||
font-weight: 500;
|
||
letter-spacing: 0.2px;
|
||
}
|
||
|
||
/* 皮肤详情 - 信息栏升级(#page-skins 已有 padding:0 16px,不需要左右margin) */
|
||
.sp-info-bar {
|
||
background: var(--card-bg);
|
||
border-radius: 14px;
|
||
box-shadow: var(--shadow);
|
||
margin: 14px 16px 10px;
|
||
width: auto;
|
||
flex-shrink: 0;
|
||
box-sizing: border-box;
|
||
}
|
||
|
||
/* 皮肤详情 - 大图区域升级 */
|
||
.sp-canvas {
|
||
margin: 0 16px 10px;
|
||
border-radius: 16px;
|
||
box-shadow: 0 4px 20px rgba(0,0,0,.2);
|
||
flex-shrink: 0;
|
||
width: auto;
|
||
}
|
||
|
||
/* 皮肤详情 - 皮肤网格升级 */
|
||
.sp-skin-grid-wrap {
|
||
margin: 0 16px 16px;
|
||
border-radius: 14px;
|
||
box-shadow: var(--shadow);
|
||
width: auto;
|
||
}
|
||
|
||
/* 皮肤缩略图升级 */
|
||
.sp-thumb {
|
||
border-radius: 12px;
|
||
transition: border-color 0.2s, box-shadow 0.2s, transform 0.2s cubic-bezier(.25,.46,.45,.94);
|
||
}
|
||
|
||
.sp-thumb:hover {
|
||
transform: translateY(-2px);
|
||
box-shadow: 0 4px 14px rgba(0,0,0,.14);
|
||
}
|
||
|
||
.sp-thumb.active {
|
||
border-color: #1677ff;
|
||
box-shadow: 0 0 0 2px rgba(22,119,255,0.25);
|
||
}
|
||
|
||
/* 应用皮肤按钮升级 */
|
||
.sp-btn-apply {
|
||
background: linear-gradient(135deg, #1677ff, #0bc4e3);
|
||
box-shadow: 0 4px 14px rgba(22,119,255,0.4);
|
||
border-radius: 10px;
|
||
transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), box-shadow 0.25s;
|
||
}
|
||
|
||
.sp-btn-apply:hover {
|
||
background: linear-gradient(135deg, #0958d9, #1677ff);
|
||
transform: translateY(-3px);
|
||
box-shadow: 0 8px 20px rgba(22,119,255,0.5);
|
||
}
|
||
|
||
.sp-btn-career {
|
||
border-radius: 10px;
|
||
backdrop-filter: blur(8px);
|
||
transition: transform 0.25s cubic-bezier(.34,1.56,.64,1), background 0.2s;
|
||
}
|
||
|
||
.sp-btn-career:hover {
|
||
background: rgba(255,255,255,0.28);
|
||
transform: translateY(-3px);
|
||
}
|
||
|
||
/* 皮肤名称升级 */
|
||
#spSkinName {
|
||
font-size: clamp(18px, 2.2vw, 28px) !important;
|
||
font-weight: 800 !important;
|
||
letter-spacing: 0.5px;
|
||
text-shadow: 0 2px 12px rgba(0,0,0,0.8) !important;
|
||
}
|
||
|
||
/* 返回按钮升级 */
|
||
.sp-back-btn {
|
||
border-radius: 10px;
|
||
font-weight: 600;
|
||
transition: background 0.15s, color 0.15s, transform 0.2s;
|
||
}
|
||
|
||
.sp-back-btn:hover {
|
||
background: var(--accent-2);
|
||
color: #fff;
|
||
border-color: var(--accent-2);
|
||
transform: translateX(-2px);
|
||
}
|
||
|
||
/* =============================================
|
||
英雄选择自动跟踪按钮
|
||
============================================= */
|
||
.csw-toggle-btn {
|
||
display: inline-flex;
|
||
align-items: center;
|
||
gap: 5px;
|
||
height: 34px;
|
||
padding: 0 13px;
|
||
border-radius: 20px;
|
||
border: 1.5px solid #d1d5db;
|
||
background: #f5f6f8;
|
||
color: #9ca3af;
|
||
font-size: 13px;
|
||
font-family: inherit;
|
||
font-weight: 500;
|
||
cursor: pointer;
|
||
white-space: nowrap;
|
||
flex-shrink: 0;
|
||
transition: all 0.2s;
|
||
user-select: none;
|
||
}
|
||
|
||
.csw-toggle-btn:hover {
|
||
border-color: #52c41a;
|
||
color: #52c41a;
|
||
background: #f6ffed;
|
||
}
|
||
|
||
/* 开启状态 */
|
||
.csw-toggle-btn.on {
|
||
border-color: #52c41a;
|
||
background: #f6ffed;
|
||
color: #389e0d;
|
||
}
|
||
|
||
.csw-toggle-btn.on::before {
|
||
content: '';
|
||
display: inline-block;
|
||
width: 7px;
|
||
height: 7px;
|
||
border-radius: 50%;
|
||
background: #52c41a;
|
||
flex-shrink: 0;
|
||
animation: csw-btn-pulse 1.6s ease-in-out infinite;
|
||
}
|
||
|
||
@keyframes csw-btn-pulse {
|
||
0%,100% { box-shadow: 0 0 0 0 rgba(82,196,26,.5); }
|
||
50% { box-shadow: 0 0 0 4px rgba(82,196,26,.0); }
|
||
}
|
||
|
||
/* 暗色主题适配 */
|
||
[data-theme="dark"] .csw-toggle-btn {
|
||
background: #1e2130;
|
||
border-color: #2e3347;
|
||
color: #6b7280;
|
||
}
|
||
|
||
[data-theme="dark"] .csw-toggle-btn:hover,
|
||
[data-theme="dark"] .csw-toggle-btn.on {
|
||
background: #162312;
|
||
border-color: #52c41a;
|
||
color: #52c41a;
|
||
}
|
||
|