// ==UserScript==
// @name SGLV 共享样式 (Library)
// @name:en SGLV Shared CSS (Library)
// @namespace https://greasyfork.org/scripts/588483
// @version 1.1.10
// @description Steam 游戏库查看器 - 共享 CSS 样式库。供主脚本与收藏模块 @require 引用。
// @description:en Steam Game Library Viewer - Shared CSS styles library. For host script and collection module @require.
// @author SmallRob
// @license MIT
// @noframes
// ==/UserScript==
/*
* SGLV Shared CSS Library v1.0.0
*
* 包含主面板、收藏浮窗、侧边栏等全部 CSS 样式。
* 通过 window.SGLVSharedCSS 暴露 CSS 字符串,主脚本经 GM_addStyle 注入。
* 更新此库后,所有 @require 引用方在 Tampermonkey 外部资源检查周期(默认~1天)内自动获取新样式。
*/
window.SGLVSharedCSS = `:root { --sglv-bg: rgba(21, 30, 46, 0.97); --sglv-bg-card: rgba(30, 41, 59, 0.95); --sglv-border: rgba(102, 192, 244, 0.2); --sglv-border-focus: rgba(102, 192, 244, 0.6); --sglv-text: #c7d5e0; --sglv-text-secondary: #8a9ba8; --sglv-accent: #66c0f4; --sglv-green: #4caf50; --sglv-red: #f44336; --sglv-orange: #ff9800; --sglv-radius: 12px; --sglv-shadow: 0 8px 32px rgba(0,0,0,0.5); --sglv-transition: all 0.2s ease; --sglv-kpi-bg: rgba(15, 23, 42, 0.5); --sglv-section-bg: rgba(15, 23, 42, 0.4); --sglv-card-bg: rgba(255,255,255,0.04); --sglv-card-border: rgba(255,255,255,0.06); --sglv-card-radius: 8px; --sglv-scrollbar-width: 6px; --sglv-scrollbar-thumb: rgba(255,255,255,0.12); }
/* v2.3.28: KPI 卡片共享基类——合并 stat-card/stat-dash-card/trend-kpi-card/playtime-kpi-card/wl-kpi-card 的重复定义 */
.sglv-stat-card, .sglv-stat-dash-card, .sglv-trend-kpi-card, .sglv-playtime-kpi-card, .sglv-wl-kpi-card { position: relative; background: var(--sglv-kpi-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 6px 10px 5px; text-align: left; overflow: hidden; transition: border-color .2s, transform .2s; }
.sglv-stat-card:hover, .sglv-stat-dash-card:hover, .sglv-trend-kpi-card:hover, .sglv-playtime-kpi-card:hover, .sglv-wl-kpi-card:hover { border-color: rgba(102,192,244,0.3); transform: translateY(-1px); }
.sglv-stat-card::before, .sglv-stat-dash-card::before, .sglv-trend-kpi-card::before, .sglv-playtime-kpi-card::before, .sglv-wl-kpi-card::before { content: ''; position: absolute; top: -12px; right: -12px; width: 40px; height: 40px; border-radius: 50%; opacity: 0.12; filter: blur(8px); }
/* v2.3.28: KPI 颜色修饰符——合并各卡片类型的 blue/green/amber/purple/red 颜色变体 */
.sglv-stat-card.blue, .sglv-stat-dash-card.blue, .sglv-trend-kpi-card.blue, .sglv-playtime-kpi-card.blue { border-color: rgba(102,192,244,0.35); }
.sglv-stat-card.blue::before, .sglv-stat-dash-card.blue::before, .sglv-trend-kpi-card.blue::before, .sglv-playtime-kpi-card.blue::before { background: #66c0f4; }
.sglv-stat-card.green, .sglv-stat-dash-card.green, .sglv-trend-kpi-card.mine, .sglv-playtime-kpi-card.green { border-color: rgba(34,197,94,0.35); }
.sglv-stat-card.green::before, .sglv-stat-dash-card.green::before, .sglv-trend-kpi-card.mine::before, .sglv-playtime-kpi-card.green::before { background: #22c55e; }
.sglv-stat-card.amber, .sglv-stat-dash-card.amber, .sglv-playtime-kpi-card.amber { border-color: rgba(245,158,11,0.35); }
.sglv-stat-card.amber::before, .sglv-stat-dash-card.amber::before, .sglv-playtime-kpi-card.amber::before { background: #fbbf24; }
.sglv-stat-card.purple, .sglv-stat-dash-card.purple, .sglv-playtime-kpi-card.purple { border-color: rgba(139,92,246,0.35); }
.sglv-stat-card.purple::before, .sglv-stat-dash-card.purple::before, .sglv-playtime-kpi-card.purple::before { background: #a78bfa; }
.sglv-stat-card.red, .sglv-stat-dash-card.red, .sglv-trend-kpi-card.red { border-color: rgba(244,67,54,0.35); }
.sglv-stat-card.red::before, .sglv-stat-dash-card.red::before, .sglv-trend-kpi-card.red::before { background: #f44336; }
/* v2.3.28: 滚动条共享样式——统一所有 ::-webkit-scrollbar 宽度和拇指颜色 */
.sglv-content::-webkit-scrollbar, .sglv-pub-main::-webkit-scrollbar, .sglv-pub-sidebar::-webkit-scrollbar, .sglv-gs-panel::-webkit-scrollbar, .sglv-pt-all-list::-webkit-scrollbar, .sglv-playtime-split-left #sglv-pt-top-list::-webkit-scrollbar { width: var(--sglv-scrollbar-width); }
.sglv-content::-webkit-scrollbar-thumb, .sglv-pub-main::-webkit-scrollbar-thumb, .sglv-pub-sidebar::-webkit-scrollbar-thumb, .sglv-gs-panel::-webkit-scrollbar-thumb, .sglv-pt-all-list::-webkit-scrollbar-thumb, .sglv-playtime-split-left #sglv-pt-top-list::-webkit-scrollbar-thumb { background: var(--sglv-scrollbar-thumb); border-radius: 3px; }
.sglv-fab { cursor: pointer !important; }
.sglv-panel { position: fixed !important; top: 50% !important; left: 50% !important; transform: translate(-50%, -50%) !important; width: 1200px !important; max-width: calc(100vw - 40px) !important; height: 85vh !important; max-height: 860px !important; background: var(--sglv-bg) !important; border: 1px solid var(--sglv-border) !important; border-radius: var(--sglv-radius) !important; box-shadow: var(--sglv-shadow) !important; z-index: 1000000 !important; display: none !important; flex-direction: column !important; overflow: hidden !important; font-family: "Motiva Sans", Arial, Helvetica, sans-serif !important; color: var(--sglv-text) !important; }
.sglv-panel.sglv-show { display: flex !important; }
.sglv-overlay { position: fixed !important; inset: 0 !important; background: rgba(11, 17, 32, 0.85) !important; z-index: 999999 !important; display: none !important; }
.sglv-overlay.sglv-show { display: block !important; }
.sglv-header { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 12px 20px !important; background: linear-gradient(135deg, #1b2838, #2a475e) !important; border-bottom: 1px solid var(--sglv-border) !important; flex-shrink: 0 !important; }
.sglv-header h2 { margin: 0 !important; font-size: 16px !important; font-weight: 600 !important; color: #fff !important; display: flex !important; align-items: center !important; gap: 8px !important; white-space: nowrap !important; }
.sglv-header-actions { display: flex; align-items: center; gap: 4px; }
.sglv-header-btn { width: 30px !important; height: 30px !important; border-radius: 6px !important; border: none !important; background: rgba(255,255,255,0.06) !important; color: #8a9ba8 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; transition: var(--sglv-transition) !important; }
.sglv-header-btn:hover { background: rgba(255,255,255,0.12) !important; color: #fff !important; }
.sglv-header-btn.sglv-active { background: rgba(102,192,244,0.2) !important; color: var(--sglv-accent) !important; }
.sglv-header-btn svg { width: 14px; height: 14px; }
.sglv-tabs { display: flex !important; background: rgba(15, 23, 42, 0.6) !important; padding: 4px !important; gap: 4px !important; border-bottom: 1px solid var(--sglv-border) !important; flex-shrink: 0 !important; }
.sglv-tab { flex: 1 !important; border: none !important; background: transparent !important; color: var(--sglv-text-secondary) !important; padding: 8px 16px !important; font-size: 13px !important; font-weight: 600 !important; border-radius: 6px !important; cursor: pointer !important; transition: var(--sglv-transition) !important; display: flex !important; align-items: center !important; justify-content: center !important; gap: 6px !important; }
.sglv-tab:hover { color: #fff !important; }
.sglv-tab.active { background: rgba(102, 192, 244, 0.2) !important; color: var(--sglv-accent) !important; }
.sglv-tab svg { width: 14px; height: 14px; flex-shrink: 0 !important; }
.sglv-tab { white-space: nowrap !important; }
/* v2.5.0: 游戏库工具栏——两行紧凑布局,全部 !important 强制生效 */
/* 第1行:搜索 + 排序 + 视图切换 + 分页(nowrap 紧凑,overflow hidden 防溢出) */
.sglv-toolbar { display: flex !important; align-items: center !important; padding: 6px 12px !important; background: var(--sglv-section-bg) !important; border-bottom: 1px solid var(--sglv-border) !important; gap: 8px !important; flex-shrink: 0 !important; flex-wrap: nowrap !important; overflow: hidden !important; }
.sglv-search { flex: 0 1 200px !important; min-width: 100px !important; max-width: 280px !important; padding: 5px 10px !important; background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.1) !important; border-radius: 6px !important; color: #fff !important; font-size: 12px !important; outline: none !important; }
.sglv-search:focus { border-color: rgba(102,192,244,0.5) !important; }
.sglv-search::placeholder { color: #5a6a7a !important; }
/* v2.4.5: 库存排序下拉框 */
.sglv-sort-select { padding: 5px 8px !important; background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.1) !important; border-radius: 6px !important; color: #fff !important; font-size: 12px !important; outline: none !important; cursor: pointer !important; flex-shrink: 0 !important; max-width: 140px !important; }
.sglv-sort-select:focus { border-color: rgba(102,192,244,0.5) !important; }
.sglv-sort-select option { background: #1b2838 !important; color: #fff !important; }
.sglv-btn { padding: 6px 14px !important; border: none !important; border-radius: 6px !important; font-size: 12px !important; font-weight: 600 !important; cursor: pointer !important; transition: var(--sglv-transition) !important; display: inline-flex !important; align-items: center !important; gap: 5px !important; white-space: nowrap !important; }
.sglv-btn svg { width: 13px; height: 13px; }
.sglv-btn-primary { background: var(--sglv-accent) !important; color: #fff !important; }
.sglv-btn-primary:hover { filter: brightness(1.15) !important; }
.sglv-btn-primary:disabled { opacity: 0.5 !important; cursor: not-allowed !important; }
.sglv-btn-secondary { background: rgba(255,255,255,0.08) !important; color: var(--sglv-text) !important; border: 1px solid rgba(255,255,255,0.1) !important; }
.sglv-btn-secondary:hover { background: rgba(255,255,255,0.15) !important; }
.sglv-btn-secondary.active { background: rgba(102,192,244,0.2) !important; border-color: rgba(102,192,244,0.4) !important; color: var(--sglv-accent) !important; }
.sglv-btn-icon { width: 30px !important; height: 30px !important; padding: 0 !important; display: flex !important; align-items: center !important; justify-content: center !important; }
/* v2.5.0: 视图切换按钮组——紧贴排序右侧,统一尺寸 */
.sglv-view-toggle { display: flex !important; gap: 2px !important; flex-shrink: 0 !important; }
.sglv-body { flex: 1; overflow: hidden; display: flex; flex-direction: column; }
.sglv-content { flex: 1; overflow-y: auto; padding: 16px; }
/* v2.5.0: 独立分页栏(底部全宽) */
.sglv-pagination { display: flex !important; align-items: center !important; justify-content: center !important; gap: 8px !important; padding: 10px !important; background: var(--sglv-section-bg) !important; border-top: 1px solid var(--sglv-border) !important; flex-shrink: 0 !important; }
/* v2.5.0: 工具栏内嵌分页——紧凑无背景,推到右侧,按钮缩小 */
.sglv-toolbar .sglv-pagination { padding: 0 !important; background: transparent !important; border: none !important; margin-left: auto !important; gap: 4px !important; flex-shrink: 0 !important; }
.sglv-toolbar .sglv-pagination .sglv-btn { padding: 2px 8px !important; font-size: 11px !important; min-width: auto !important; }
.sglv-page-info { font-size: 11px !important; color: var(--sglv-text-secondary) !important; white-space: nowrap !important; flex-shrink: 0 !important; }
/* v2.5.0: 筛选标签栏——独占第2行,允许换行,视觉区分 */
.sglv-filter-bar { display: flex !important; align-items: center !important; gap: 6px !important; padding: 5px 12px !important; background: rgba(15, 23, 42, 0.3) !important; border-bottom: 1px solid var(--sglv-border) !important; flex-shrink: 0 !important; flex-wrap: wrap !important; }
/* v2.6.2: 筛选栏分组 + 内联分页——筛选按钮与分页放一行,右侧自动分页 */
.sglv-filter-bar-group { display:inline-flex !important; align-items:center !important; gap:4px !important; flex-wrap:wrap !important; }
/* v2.6.2: 类别按钮(全部/已游玩/未游玩/共享/仅自己)——胶囊形,padding 4px 10px 紧凑 */
.sglv-filter-bar-group .sglv-category-btn { padding: 3px 10px !important; font-size: 11px !important; }
.sglv-filter-sep { width:1px !important; height:18px !important; background:var(--sglv-border) !important; margin:0 4px !important; flex-shrink:0 !important; }
/* v2.6.2: 内联分页——紧凑按钮 (padding 3px 10px),与筛选按钮同一行,靠近右边缘 */
.sglv-pagination-inline { display:flex !important; align-items:center !important; gap:4px !important; padding:0 !important; background:transparent !important; border:none !important; flex-shrink:0 !important; margin-left:auto !important; }
.sglv-pagination-inline .sglv-btn { padding: 3px 10px !important; font-size: 11px !important; min-width:auto !important; }
.sglv-pagination-inline .sglv-page-info { font-size: 11px !important; padding: 0 4px !important; }
.sglv-card-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(135px, 1fr)) !important; gap: 10px !important; }
.sglv-game-card { background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(255,255,255,0.06) !important; border-radius: 8px !important; overflow: hidden !important; transition: var(--sglv-transition) !important; cursor: pointer !important; }
.sglv-game-card:hover { background: rgba(255,255,255,0.08) !important; border-color: rgba(102,192,244,0.3) !important; transform: translateY(-2px) !important; }
.sglv-card-img-wrap { position: relative !important; width: 100% !important; aspect-ratio: 2/3 !important; overflow: hidden !important; background: rgba(255,255,255,0.05) !important; }
.sglv-card-img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
/* v2.3.22: 游玩时长浮层——置于封面右下角,灰色遮罩背景 */
.sglv-card-playtime-overlay { position: absolute !important; bottom: 4px !important; right: 4px !important; font-size: 10px !important; font-weight: 700 !important; padding: 2px 6px !important; border-radius: 4px !important; background: rgba(0,0,0,0.65) !important; color: #66c0f4 !important; backdrop-filter: blur(4px) !important; -webkit-backdrop-filter: blur(4px) !important; line-height: 1.2 !important; pointer-events: none !important; z-index: 2 !important; display: inline-flex !important; align-items: center !important; gap: 3px !important; }
.sglv-card-playtime-overlay svg { width: 9px !important; height: 9px !important; opacity: 0.85 !important; }
.sglv-card-body { padding: 6px 8px !important; }
.sglv-card-name { font-size: 12px !important; font-weight: 600 !important; color: #e0e0e0 !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; }
.sglv-card-id { font-size: 10px !important; color: var(--sglv-text-secondary) !important; margin-top: 2px !important; }
.sglv-card-id-inline { font-size: 10px !important; color: var(--sglv-text-secondary) !important; margin-left: 6px !important; font-weight: 400 !important; }
.sglv-list-id-inline { font-size: 11px !important; color: var(--sglv-text-secondary) !important; margin-left: 6px !important; font-weight: 400 !important; flex-shrink: 0 !important; }
.sglv-meta-item { display: inline-flex !important; align-items: center !important; gap: 3px !important; white-space: nowrap !important; }
.sglv-meta-item svg { width: 10px !important; height: 10px !important; color: var(--sglv-text-secondary) !important; flex-shrink: 0 !important; opacity: 0.7 !important; }
.sglv-card-badge { display: inline-block !important; font-size: 10px !important; font-weight: 600 !important; padding: 1px 6px !important; border-radius: 3px !important; margin-top: 4px !important; }
.sglv-card-badge.owned { background: rgba(76,175,80,0.2) !important; color: #4caf50 !important; }
.sglv-card-badge.missing { background: rgba(244,67,54,0.15) !important; color: #f44336 !important; }
.sglv-card-badge.shared { background: rgba(139, 92, 246, 0.2) !important; color: #a78bfa !important; }
/* v1.9.34: 移除 .sglv-game-card.unowned 灰色滤镜——所有封面正常显示 */
/* v2.4.3: 愿望单横板封面视图(每行3个,参考 steam-family-game-analysis v1.58 fa-wl-cover) */
.sglv-wl-cover-grid { display: grid !important; grid-template-columns: repeat(3, 1fr) !important; gap: 12px !important; }
.sglv-wl-cover-card { background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(255,255,255,0.06) !important; border-radius: 8px !important; overflow: hidden !important; transition: var(--sglv-transition) !important; cursor: pointer !important; display: flex !important; flex-direction: column !important; }
.sglv-wl-cover-card:hover { background: rgba(255,255,255,0.08) !important; border-color: rgba(102,192,244,0.3) !important; transform: translateY(-2px) !important; }
.sglv-wl-cover-img-wrap { position: relative !important; width: 100% !important; aspect-ratio: 460/215 !important; overflow: hidden !important; background: rgba(255,255,255,0.05) !important; flex-shrink: 0 !important; }
.sglv-wl-cover-img { width: 100% !important; height: 100% !important; object-fit: cover !important; display: block !important; }
.sglv-wl-cover-badges { position: absolute !important; top: 6px !important; left: 6px !important; display: flex !important; gap: 4px !important; z-index: 2 !important; }
.sglv-wl-cover-badges .sglv-card-badge { backdrop-filter: blur(4px) !important; }
.sglv-wl-cover-badges .sglv-wl-family-badge { margin-left: 0 !important; }
.sglv-wl-cover-body { padding: 8px 10px 9px !important; display: flex !important; flex-direction: column !important; gap: 5px !important; }
@media (max-width: 1100px) { .sglv-wl-cover-grid { grid-template-columns: repeat(2, 1fr) !important; } }
@media (max-width: 700px) { .sglv-wl-cover-grid { grid-template-columns: 1fr !important; } }
/* ====== PS 会免标签页 (v2.6.0) ====== */
/* PS 蓝色占位封面:steamAppId 缺失或全部 CDN 失败时使用 */
.sglv-ps-cover-placeholder { width:100% !important; height:100% !important; display:flex !important; flex-direction:column !important; align-items:center !important; justify-content:center !important; gap:8px !important; padding:12px !important; background:linear-gradient(135deg,#003791 0%,#0070D1 55%,#1b3a7a 100%) !important; color:rgba(255,255,255,0.95) !important; text-align:center !important; box-shadow:inset 0 0 30px rgba(0,0,0,0.25) !important; }
.sglv-ps-logo { width:50px !important; height:20px !important; opacity:0.55 !important; color:#fff !important; flex-shrink:0 !important; }
.sglv-ps-cover-name { font-size:11px !important; font-weight:600 !important; line-height:1.35 !important; display:-webkit-box !important; -webkit-line-clamp:3 !important; -webkit-box-orient:vertical !important; overflow:hidden !important; text-shadow:0 1px 2px rgba(0,0,0,0.5) !important; word-break:break-word !important; }
/* 档位徽章(卡片封面右上角)——必备=金 / 升级=蓝 / 高级=紫 */
.sglv-ps-tier-badge { display:inline-block !important; font-size:10px !important; font-weight:700 !important; padding:2px 8px !important; border-radius:10px !important; letter-spacing:0.3px !important; }
.sglv-card-img-wrap .sglv-ps-tier-badge { position:absolute !important; top:6px !important; right:6px !important; z-index:2 !important; backdrop-filter:blur(4px) !important; -webkit-backdrop-filter:blur(4px) !important; box-shadow:0 1px 4px rgba(0,0,0,0.35) !important; }
.sglv-ps-tier-badge.tier-essential { background:rgba(255,205,60,0.95) !important; color:#3d2c00 !important; }
.sglv-ps-tier-badge.tier-extra { background:rgba(33,150,243,0.95) !important; color:#fff !important; }
.sglv-ps-tier-badge.tier-premium { background:rgba(179,136,255,0.95) !important; color:#fff !important; }
/* 平台标签(封面左下角:Steam / PS 独占) */
.sglv-ps-platform-tag { position:absolute !important; bottom:6px !important; left:6px !important; font-size:9px !important; font-weight:700 !important; padding:1px 6px !important; border-radius:4px !important; z-index:2 !important; letter-spacing:0.3px !important; }
.sglv-ps-platform-tag.steam { background:rgba(0,0,0,0.62) !important; color:#66c0f4 !important; }
.sglv-ps-platform-tag.ps-only { background:rgba(0,112,209,0.88) !important; color:#fff !important; }
.sglv-ps-owned-badge { position:absolute !important; bottom:6px !important; right:6px !important; z-index:2 !important; margin-top:0 !important; backdrop-filter:blur(4px) !important; }
/* 状态徽章 */
.sglv-ps-status-badge { display:inline-block !important; font-size:10px !important; font-weight:600 !important; padding:1px 6px !important; border-radius:3px !important; white-space:nowrap !important; }
.sglv-ps-status-badge.ps-status-in { background:rgba(76,175,80,0.2) !important; color:#4caf50 !important; }
.sglv-ps-status-badge.ps-status-active { background:rgba(255,205,60,0.2) !important; color:#FFCD3C !important; }
.sglv-ps-status-badge.ps-status-expired { background:rgba(158,158,158,0.2) !important; color:#b0b0b0 !important; }
.sglv-ps-status-badge.ps-status-leaving { background:rgba(255,152,0,0.2) !important; color:#ff9800 !important; }
.sglv-ps-status-badge.ps-status-out { background:rgba(244,67,54,0.2) !important; color:#f44336 !important; }
.sglv-ps-month { font-size:10px !important; color:var(--sglv-text-secondary) !important; white-space:nowrap !important; }
/* v2.6.1: PS 卡片底部"时间+月份+版本"行——inline-flex 居中,时钟 svg 固定尺寸避免被文字行高压扁 */
/* v2.6.1: PS 卡片底部"时间+月份+版本"行——inline-flex 居中,时钟 svg 固定尺寸避免被文字行高压扁 */
.sglv-ps-meta-row { font-size:11px !important; color:var(--sglv-text-secondary) !important; display:flex !important; align-items:center !important; gap:6px !important; flex-wrap:nowrap !important; overflow:hidden !important; min-width:0 !important; }
.sglv-ps-month-item { display:inline-flex !important; align-items:center !important; gap:3px !important; white-space:nowrap !important; flex-shrink:0 !important; }
.sglv-ps-clock { display:inline-flex !important; align-items:center !important; justify-content:center !important; width:11px !important; height:11px !important; flex-shrink:0 !important; line-height:1 !important; opacity:0.85 !important; }
.sglv-ps-clock svg { width:11px !important; height:11px !important; display:block !important; vertical-align:top !important; }
.sglv-ps-versions { display:inline-flex !important; gap:2px !important; flex-wrap:wrap !important; min-width:0 !important; }
/* 筛选栏分组与分隔 */
.sglv-ps-filter-group { display:flex !important; gap:6px !important; flex-wrap:wrap !important; }
.sglv-ps-filter-sep { width:1px !important; align-self:stretch !important; background:var(--sglv-border) !important; margin:0 4px !important; }
/* 列表视图 PS 独占图标 */
.sglv-ps-list-icon { display:flex !important; align-items:center !important; justify-content:center !important; background:linear-gradient(135deg,#003791,#0070D1) !important; color:#fff !important; font-weight:700 !important; font-size:12px !important; letter-spacing:0.5px !important; }
/* PS 独占卡片去掉默认灰底,由蓝色占位填满 */
.sglv-ps-exclusive .sglv-card-img-wrap { background:transparent !important; }
/* PS 卡片悬停时强化蓝色边框 */
.sglv-ps-card:hover { border-color:rgba(0,112,209,0.45) !important; }
.sglv-ps-card.sglv-ps-exclusive:hover { border-color:rgba(179,136,255,0.4) !important; }
/* PS 会免标签页容器布局 */
.sglv-psplus-wrap { flex:1; overflow-y:auto; padding:12px; display:flex; flex-direction:column; gap:10px; }
.sglv-header-btn.sglv-export-csv-btn, .sglv-header-btn.sglv-export-json-btn { font-size: 10px !important; font-weight: bold !important; width: auto !important; padding: 0 8px !important; }
.sglv-pub-card { margin-bottom: 12px; padding: 12px 16px; border-radius: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); cursor: pointer; }
.sglv-series-card { margin-bottom: 10px; padding: 10px 14px; border-radius: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); cursor: pointer; }
.sglv-card-row { display: flex; align-items: center; justify-content: space-between; }
.sglv-card-row.gap6 { margin-bottom: 6px; }
.sglv-card-row.gap4 { margin-bottom: 4px; }
.sglv-pub-card-name { font-size: 14px; font-weight: 600; color: #fff; }
.sglv-series-card-name { font-size: 13px; font-weight: 600; color: #e0e0e0; }
.sglv-card-stats { font-size: 12px; color: #8f98a0; }
.sglv-card-stats.complete { color: #4caf50; }
.sglv-badge-row { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; margin-top: 4px; }
.sglv-info-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
/* v2.9.49: 移除 !important——这些定义在 CSS 中位于共享基类之后,同特异性下自然覆盖 */
.sglv-trend-kpi-card.red { border-color: rgba(244,67,54,0.35); }
.sglv-trend-kpi-card.red .sglv-trend-kpi-value { color: #f44336; }
.sglv-trend-kpi-card.red::before { background: #f44336; }
.sglv-trend-kpi-card.red .sglv-trend-kpi-icon { background: rgba(244,67,54,0.15); color: #f44336; }
.sglv-trend-kpi-card.orange { border-color: rgba(255,152,0,0.35); }
.sglv-trend-kpi-card.orange .sglv-trend-kpi-value { color: #ff9800; }
.sglv-trend-kpi-card.orange::before { background: #ff9800; }
.sglv-trend-kpi-card.orange .sglv-trend-kpi-icon { background: rgba(255,152,0,0.15); color: #ff9800; }
.sglv-trend-kpi-card.blue { border-color: rgba(96,165,250,0.35); }
.sglv-trend-kpi-card.blue .sglv-trend-kpi-value { color: #60a5fa; }
.sglv-trend-kpi-card.blue::before { background: #60a5fa; }
.sglv-trend-kpi-card.blue .sglv-trend-kpi-icon { background: rgba(96,165,250,0.15); color: #60a5fa; }
.sglv-trend-kpi-card.gray { border-color: rgba(148,163,184,0.35); }
.sglv-trend-kpi-card.gray .sglv-trend-kpi-value { color: #94a3b8; }
.sglv-trend-kpi-card.gray::before { background: #94a3b8; }
.sglv-trend-kpi-card.gray .sglv-trend-kpi-icon { background: rgba(148,163,184,0.15); color: #94a3b8; }
/* 愿望单标签页 (v2.3.19):左侧仪表 + 右侧游戏视图 */
.sglv-wishlist-wrap { flex: 1; overflow: hidden; padding: 12px; display: flex; flex-direction: row; gap: 12px; min-height: 0; }
.sglv-wl-side { width: 320px; flex-shrink: 0; overflow-y: auto; display: flex; flex-direction: column; gap: 12px; min-height: 0; padding-right: 4px; }
.sglv-wl-main { flex: 1; min-width: 0; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.sglv-wl-main .sglv-content { flex: 1; overflow-y: auto; min-height: 0; }
@media (max-width: 900px) { .sglv-wishlist-wrap { flex-direction: column; overflow-y: auto; } .sglv-wl-side { width: 100%; overflow: visible; } }
.sglv-wl-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px; flex-shrink: 0; }
.sglv-wl-bar-row { display: flex; align-items: center; gap: 8px; padding: 3px 0; }
.sglv-wl-bar-name { width: 84px; text-align: right; font-size: 11px; color: var(--sglv-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; }
.sglv-wl-bar-track { flex: 1; height: 14px; background: rgba(255,255,255,0.05); border-radius: 4px; overflow: hidden; }
.sglv-wl-bar-fill { height: 100%; border-radius: 4px; transition: width .3s; }
.sglv-wl-bar-val { width: 36px; font-size: 11px; color: var(--sglv-text-secondary); flex-shrink: 0; }
/* v2.8.0: 我的类别统计卡片 */
.sglv-wl-catstats-list { display: flex; flex-direction: column; gap: 6px; }
.sglv-wl-cat-card { padding: 6px 8px; border-radius: 6px; background: rgba(255,255,255,0.03); border: 1px solid var(--sglv-border); cursor: pointer; transition: background .2s, border-color .2s; }
.sglv-wl-cat-card:hover { background: rgba(255,255,255,0.07); border-color: var(--cat-color, var(--sglv-accent)); }
.sglv-wl-cat-card.active { background: rgba(99,179,237,0.12); border-color: var(--sglv-accent); box-shadow: 0 0 0 1px var(--sglv-accent) inset; }
.sglv-wl-cat-header { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; }
.sglv-wl-cat-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cat-color, #66c0f4); flex-shrink: 0; }
.sglv-wl-cat-name { flex: 1; font-size: 12px; font-weight: 600; color: var(--sglv-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sglv-wl-cat-count { font-size: 12px; font-weight: 700; color: var(--sglv-text); flex-shrink: 0; display: inline-flex; align-items: baseline; gap: 3px; }
.sglv-wl-cat-pct { font-size: 10px; font-weight: 400; color: var(--sglv-text-secondary); }
.sglv-wl-cat-stats { display: flex; align-items: center; gap: 10px; margin-bottom: 4px; }
.sglv-wl-cat-stat { display: inline-flex; align-items: center; gap: 2px; font-size: 10px; color: var(--sglv-text-secondary); }
.sglv-wl-cat-stat svg { width: 11px; height: 11px; flex-shrink: 0; opacity: 0.8; }
.sglv-wl-cat-card .sglv-wl-bar-track { height: 4px; }
/* 愿望单增强 KPI 卡片 (v2.3.21):带图标+数值+标签+子文本 */
.sglv-wl-kpi-row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px; flex-shrink: 0; }
/* v2.3.28: wl-kpi-card 基类/hover/::before 已合并至共享 KPI 样式,仅保留差异化 padding */
.sglv-wl-kpi-card { padding: 10px 10px 8px; }
.sglv-wl-kpi-card.kpi-total::before { background: #f43f5e; }
.sglv-wl-kpi-card.kpi-value::before { background: #10b981; }
.sglv-wl-kpi-card.kpi-sale::before { background: #f59e0b; }
.sglv-wl-kpi-card.kpi-free::before { background: #6366f1; }
.sglv-wl-kpi-card.kpi-lib::before { background: #06b6d4; }
.sglv-wl-kpi-card.kpi-year::before { background: #a855f7; }
.sglv-wl-kpi-icon { display: inline-flex; align-items: center; justify-content: center; width: 24px; height: 24px; border-radius: 6px; margin-bottom: 6px; font-size: 12px; }
.sglv-wl-kpi-card.kpi-total .sglv-wl-kpi-icon { background: rgba(244,63,94,0.15); color: #f43f5e; }
.sglv-wl-kpi-card.kpi-value .sglv-wl-kpi-icon { background: rgba(16,185,129,0.15); color: #10b981; }
.sglv-wl-kpi-card.kpi-sale .sglv-wl-kpi-icon { background: rgba(245,158,11,0.15); color: #f59e0b; }
.sglv-wl-kpi-card.kpi-free .sglv-wl-kpi-icon { background: rgba(99,102,241,0.15); color: #6366f1; }
.sglv-wl-kpi-card.kpi-lib .sglv-wl-kpi-icon { background: rgba(6,182,212,0.15); color: #06b6d4; }
.sglv-wl-kpi-card.kpi-year .sglv-wl-kpi-icon { background: rgba(168,85,247,0.15); color: #a855f7; }
.sglv-wl-kpi-value { font-size: 18px; font-weight: 800; color: #fff; line-height: 1.2; }
.sglv-wl-kpi-label { font-size: 10px; color: var(--sglv-text-secondary); margin-top: 2px; }
.sglv-wl-kpi-sub { font-size: 9px; color: var(--sglv-text-secondary); margin-top: 3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.8; }
/* 愿望单竖向条形图(价格区间/折扣分布) v2.3.23: 修复柱子不可见——列需拉伸至容器高度,轨道 flex:1 才有确定高度,填充百分比才生效 */
.sglv-wl-vbar-chart { display: flex; align-items: stretch; gap: 4px; height: 92px; padding: 4px 0; }
.sglv-wl-vbar-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 0; height: 100%; }
.sglv-wl-vbar-val { font-size: 10px; color: var(--sglv-text); font-weight: 600; flex-shrink: 0; }
.sglv-wl-vbar-track { width: 100%; max-width: 28px; min-height: 2px; background: rgba(255,255,255,0.06); border-radius: 4px 4px 0 0; position: relative; flex: 1; display: flex; align-items: flex-end; justify-content: center; }
.sglv-wl-vbar-fill { width: 100%; border-radius: 4px 4px 0 0; transition: height .3s; min-height: 2px; }
.sglv-wl-vbar-label { font-size: 9px; color: var(--sglv-text-secondary); text-align: center; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 100%; flex-shrink: 0; }
/* 按年添加趋势迷你柱状图 v2.3.23: 修复柱子塌陷——新增轨道包裹,柱子按轨道高度百分比渲染,峰值高亮突出重点 */
.sglv-wl-year-line { display: flex; align-items: stretch; gap: 2px; height: 76px; padding: 4px 0; }
.sglv-wl-year-col { flex: 1; display: flex; flex-direction: column; align-items: center; gap: 2px; min-width: 0; height: 100%; }
.sglv-wl-year-track { flex: 1; width: 100%; min-height: 2px; display: flex; align-items: flex-end; justify-content: center; }
.sglv-wl-year-bar { width: 100%; max-width: 20px; min-height: 2px; border-radius: 3px 3px 0 0; background: linear-gradient(180deg, rgba(99,102,241,0.85), rgba(99,102,241,0.35)); transition: height .3s; }
.sglv-wl-year-bar.peak { background: linear-gradient(180deg, rgba(102,192,244,0.95), rgba(102,192,244,0.4)); box-shadow: 0 0 8px rgba(102,192,244,0.35); }
.sglv-wl-year-val { font-size: 9px; color: var(--sglv-text); font-weight: 600; flex-shrink: 0; }
.sglv-wl-year-label { font-size: 9px; color: var(--sglv-text-secondary); flex-shrink: 0; }
.sglv-wl-price { font-size: 12px; font-weight: 700; color: #aee435; }
/* v2.3.23: 愿望单排序位次徽章(priority 排名,TOP3 金银铜高亮) */
.sglv-wl-rank { display: inline-flex; align-items: center; font-size: 10px; font-weight: 700; line-height: 1; padding: 2px 6px; border-radius: 4px; background: rgba(102,192,244,0.12); color: var(--sglv-accent); flex-shrink: 0; cursor: help; }
.sglv-wl-rank.sglv-rank-top1 { background: rgba(255,215,0,0.16); color: #ffd700; }
.sglv-wl-rank.sglv-rank-top2 { background: rgba(192,192,192,0.16); color: #c0c0c0; }
.sglv-wl-rank.sglv-rank-top3 { background: rgba(205,127,50,0.2); color: #e09a5f; }
/* v2.3.23: 愿望单卡片精简布局——价格+在库同行、时间图标+日期 */
/* v2.9.67: 价格行强制不换行,徽章固定最右侧不收缩 */
.sglv-wl-price-row { justify-content: space-between; flex-wrap: nowrap; align-items: center; }
.sglv-wl-price-group { display: inline-flex; align-items: baseline; min-width: 0; white-space: nowrap; overflow: hidden; flex: 1 1 auto; }
.sglv-wl-added { display: inline-flex; align-items: center; gap: 3px; white-space: nowrap; }
.sglv-wl-added svg { width: 11px; height: 11px; flex-shrink: 0; }
.sglv-wl-orig { font-size: 11px; color: var(--sglv-text-secondary); text-decoration: line-through; margin-left: 4px; }
.sglv-card-badge.discount { background: rgba(255,152,0,0.15); color: #ff9800; }
/* v2.9.67: 家庭共享徽章——图标+文字内联,固定最右侧不换行不收缩 */
.sglv-wl-family-badge { display: inline-flex !important; align-items: center !important; gap: 3px !important; flex-shrink: 0 !important; margin-left: auto !important; white-space: nowrap !important; line-height: 1 !important; }
.sglv-wl-family-badge svg { width: 11px !important; height: 11px !important; flex-shrink: 0 !important; }
.sglv-wl-topdisc-row { display: flex; align-items: center; gap: 8px; padding: 4px 0; }
.sglv-wl-topdisc-name { flex: 1; min-width: 0; font-size: 12px; color: #fff; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; cursor: pointer; }
.sglv-wl-topdisc-name:hover { color: var(--sglv-accent); }
.sglv-wl-topdisc-val { font-size: 12px; font-weight: 700; color: #ff9800; white-space: nowrap; }
.sglv-list-view { display: grid; grid-template-columns: repeat(2, 1fr); gap: 4px; }
.sglv-list-item { display: flex !important; align-items: center !important; gap: 10px !important; padding: 8px 12px !important; background: rgba(255,255,255,0.02) !important; border: 1px solid rgba(255,255,255,0.04) !important; border-radius: 6px !important; transition: var(--sglv-transition) !important; }
.sglv-list-item:hover { background: rgba(255,255,255,0.06) !important; border-color: rgba(102,192,244,0.2) !important; }
.sglv-list-icon { width: 92px !important; height: 43px !important; border-radius: 4px !important; object-fit: cover !important; flex-shrink: 0 !important; object-fit: cover !important; background: rgba(255,255,255,0.05) !important; }
.sglv-list-info { flex: 1; min-width: 0; }
.sglv-list-name { font-size: 13px !important; font-weight: 600 !important; color: #e0e0e0 !important; overflow: hidden !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
.sglv-name-alias { color: var(--sglv-text-secondary) !important; font-weight: 400 !important; font-size: 11px !important; margin-left: 6px !important; }
.sglv-list-meta { font-size: 11px !important; color: var(--sglv-text-secondary) !important; display: flex !important; align-items: center !important; flex-wrap: wrap !important; gap: 6px !important; margin-top: 2px !important; }
.sglv-list-badge { font-size: 11px !important; font-weight: 600 !important; padding: 2px 8px !important; border-radius: 4px !important; flex-shrink: 0 !important; }
.sglv-list-badge.owned { background: rgba(76,175,80,0.2) !important; color: #4caf50 !important; }
.sglv-list-badge.missing { background: rgba(244,67,54,0.15) !important; color: #f44336 !important; }
.sglv-list-badge.shared { background: rgba(139, 92, 246, 0.2) !important; color: #a78bfa !important; }
.sglv-switch-container { display: flex !important; align-items: center !important; gap: 6px !important; font-size: 11px !important; color: var(--sglv-text-secondary) !important; cursor: pointer !important; user-select: none !important; margin-right: 8px !important; }
.sglv-switch { position: relative !important; display: inline-block !important; width: 32px !important; height: 18px !important; }
.sglv-switch input { opacity: 0 !important; width: 0 !important; height: 0 !important; }
.sglv-slider { position: absolute !important; cursor: pointer !important; inset: 0 !important; background-color: rgba(255,255,255,0.1) !important; transition: .2s !important; border-radius: 18px !important; border: 1px solid rgba(255,255,255,0.05) !important; }
.sglv-slider:before { position: absolute !important; content: "" !important; height: 12px !important; width: 12px !important; left: 2px !important; bottom: 2px !important; background-color: #8a9ba8 !important; transition: .2s !important; border-radius: 50% !important; }
input:checked + .sglv-slider { background-color: rgba(102,192,244,0.2) !important; border-color: rgba(102,192,244,0.4) !important; }
input:checked + .sglv-slider:before { transform: translateX(14px) !important; background-color: var(--sglv-accent) !important; }
.sglv-pub-layout { display: flex !important; height: 100% !important; overflow: hidden !important; }
.sglv-pub-sidebar { width: 260px !important; min-width: 260px !important; background: rgba(22, 32, 44, 0.8) !important; border-right: 1px solid var(--sglv-border) !important; overflow-y: auto !important; }
.sglv-pub-main { flex: 1 !important; overflow-y: auto !important; padding: 16px !important; }
.sglv-pub-list { display: flex; flex-direction: column; }
.sglv-pub-list-header { display: flex; align-items: center; padding: 8px 12px; font-size: 11px; font-weight: 600; color: var(--sglv-text-secondary); border-bottom: 1px solid rgba(255,255,255,0.06); text-transform: uppercase; letter-spacing: 0.5px; }
.sglv-pub-list-row { display: flex; align-items: center; padding: 9px 12px; text-decoration: none !important; color: inherit !important; border-bottom: 1px solid rgba(255,255,255,0.03); transition: background 0.15s; cursor: pointer; }
.sglv-pub-list-row:hover { background: rgba(102, 192, 244, 0.06); }
.sglv-pub-list-col { display: flex; align-items: center; }
.sglv-pub-list-col.name { flex: 1; min-width: 0; font-size: 13px; color: #e0e0e0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sglv-pub-list-col.appid { font-size: 11px; color: var(--sglv-text-secondary); text-align: right; }
.sglv-view-toggle { display: flex; align-items: center; gap: 2px; }
.sglv-view-btn { display: flex; align-items: center; justify-content: center; width: 32px; height: 28px; border: 1px solid rgba(255,255,255,0.1); border-radius: 5px; background: rgba(255,255,255,0.04); color: var(--sglv-text-secondary); cursor: pointer; transition: all 0.15s; padding: 0; }
.sglv-view-btn:hover { background: rgba(255,255,255,0.08); color: #e0e0e0; }
.sglv-view-btn.active { background: rgba(102, 192, 244, 0.15); border-color: rgba(102, 192, 244, 0.4); color: #66c0f4; }
.sglv-view-btn svg { width: 16px; height: 16px; }
.sglv-pub-item { border-bottom: 1px solid rgba(255,255,255,0.03) !important; }
.sglv-pub-header { display: flex !important; align-items: center !important; padding: 10px 14px !important; cursor: pointer !important; transition: background 0.2s !important; gap: 8px !important; user-select: none !important; }
.sglv-pub-header:hover { background: rgba(255,255,255,0.05) !important; }
.sglv-pub-header.active { background: rgba(102,192,244,0.1) !important; }
.sglv-pub-arrow { width: 14px !important; height: 14px !important; transition: transform 0.2s !important; flex-shrink: 0 !important; fill: #8f98a0 !important; }
.sglv-pub-arrow.expanded { transform: rotate(90deg) !important; }
.sglv-pub-name { flex: 1; font-size: 13px; font-weight: 600; color: #e0e0e0; }
.sglv-pub-stats { font-size: 11px; color: #8f98a0; background: rgba(255,255,255,0.05); padding: 2px 8px; border-radius: 10px; }
.sglv-series-list { display: none; background: rgba(0,0,0,0.15); }
.sglv-series-list.expanded { display: block; }
.sglv-series-header { display: flex !important; align-items: center !important; padding: 8px 14px 8px 32px !important; cursor: pointer !important; transition: background 0.2s !important; gap: 6px !important; user-select: none !important; }
.sglv-series-header:hover { background: rgba(255,255,255,0.05) !important; }
.sglv-series-header.active { background: rgba(102,192,244,0.08) !important; }
.sglv-series-name { flex: 1; font-size: 12px; color: #c7d5e0; }
.sglv-series-stats { font-size: 11px; color: #8f98a0; }
.sglv-stat-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; flex-wrap: wrap; }
/* v2.3.22: 供应商分类 KPI 卡片——与其他页面统一精美样式(图标+数值+光晕+边框色),保留标签+数值展示布局 */
.sglv-stat-card { flex: 1 !important; min-width: 100px !important; padding: 6px 10px 5px !important; border-radius: var(--sglv-radius) !important; background: var(--sglv-kpi-bg) !important; border: 1px solid var(--sglv-border) !important; }
.sglv-stat-header { display: flex; align-items: center; gap: 5px; margin-bottom: 2px; }
.sglv-stat-label { font-size: 11px; color: var(--sglv-text-secondary); text-transform: uppercase; margin-bottom: 0; }
.sglv-stat-icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 5px; margin-bottom: 0; flex-shrink: 0; }
.sglv-stat-icon svg { width: 11px; height: 11px; }
.sglv-stat-dash-sub { font-size: 9px; color: var(--sglv-text-secondary); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.8; }
.sglv-stat-val { font-size: 20px; font-weight: 800; color: #fff; line-height: 1.2; }
/* v2.3.28: stat-card 颜色变体 border-color/::before 已合并至共享 KPI 颜色修饰符,仅保留图标样式 */
.sglv-stat-card.blue .sglv-stat-icon { background: rgba(102,192,244,0.15); color: #66c0f4; }
.sglv-stat-val.green { color: #4caf50; }
.sglv-stat-val.red { color: #f44336; }
.sglv-stat-val.blue { color: #66c0f4; }
.sglv-stat-card.green .sglv-stat-icon { background: rgba(34,197,94,0.15); color: #22c55e; }
.sglv-stat-card.red .sglv-stat-icon { background: rgba(244,67,54,0.15); color: #f44336; }
.sglv-stat-card.amber .sglv-stat-icon { background: rgba(245,158,11,0.15); color: #fbbf24; }
.sglv-stat-card.purple .sglv-stat-icon { background: rgba(139,92,246,0.15); color: #a78bfa; }
.sglv-progress { width: 100%; height: 6px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; margin: 8px 0; }
.sglv-progress-fill { height: 100%; background: linear-gradient(90deg, #4caf50, #66c0f4); border-radius: 3px; transition: width 0.5s; }
.sglv-progress-filter { display: flex !important; height: 12px !important; cursor: pointer !important; }
.sglv-progress-filter .sglv-progress-fill { cursor: pointer !important; transition: width 0.4s, filter 0.2s !important; }
.sglv-progress-filter .sglv-progress-fill:hover { filter: brightness(1.35) !important; }
.sglv-progress-filter .sglv-progress-fill.active { filter: brightness(1.4) !important; }
.sglv-progress-rest { flex: 1; height: 100%; background: rgba(255,255,255,0.08); cursor: pointer !important; transition: background 0.2s !important; }
.sglv-progress-rest:hover { background: rgba(244,67,54,0.25) !important; }
.sglv-progress-rest.active { background: rgba(244,67,54,0.4) !important; }
.sglv-settings { padding: 16px; }
.sglv-form-group { margin-bottom: 16px; }
.sglv-form-group label { display: block; font-size: 12px; color: var(--sglv-text-secondary); margin-bottom: 6px; font-weight: 600; }
.sglv-form-input { width: 100% !important; padding: 8px 12px !important; background: rgba(255,255,255,0.08) !important; border: 1px solid rgba(255,255,255,0.1) !important; border-radius: 6px !important; color: #fff !important; font-size: 13px !important; box-sizing: border-box !important; }
.sglv-form-input:focus { border-color: rgba(102,192,244,0.5) !important; outline: none !important; }
.sglv-tip { background: rgba(102,192,244,0.08) !important; padding: 12px !important; border-radius: 8px !important; font-size: 12px !important; color: var(--sglv-text-secondary) !important; margin-bottom: 16px !important; line-height: 1.6 !important; border: 1px solid rgba(102,192,244,0.15) !important; }
.sglv-tip a { color: #60a5fa; text-decoration: none; }
.sglv-tip a:hover { text-decoration: underline; }
.sglv-toast { position: fixed !important; bottom: 50px !important; left: 50% !important; transform: translateX(-50%) translateY(20px) !important; background: rgba(15,23,42,0.95) !important; color: #fff !important; border: 1px solid var(--sglv-accent) !important; padding: 10px 24px !important; border-radius: 20px !important; font-size: 13px !important; font-weight: 500 !important; box-shadow: 0 4px 16px rgba(0,0,0,0.3) !important; z-index: 10000000 !important; opacity: 0 !important; pointer-events: none !important; transition: opacity 0.3s, transform 0.3s !important; }
.sglv-toast.show { opacity: 1 !important; transform: translateX(-50%) translateY(0) !important; }
.sglv-gs-overlay { position: fixed !important; inset: 0 !important; background: rgba(11, 17, 32, 0.85) !important; z-index: 10000001 !important; display: none !important; align-items: center !important; justify-content: center !important; }
.sglv-gs-overlay.sglv-show { display: flex !important; }
.sglv-gs-panel { width: 520px !important; max-width: calc(100vw - 40px) !important; max-height: 85vh !important; overflow-y: auto !important; background: var(--sglv-bg) !important; border: 1px solid var(--sglv-border) !important; border-radius: var(--sglv-radius) !important; box-shadow: var(--sglv-shadow) !important; font-family: "Motiva Sans", Arial, Helvetica, sans-serif !important; color: var(--sglv-text) !important; }
.sglv-gs-header { display: flex !important; align-items: center !important; justify-content: space-between !important; padding: 14px 20px !important; background: linear-gradient(135deg, #1b2838, #2a475e) !important; border-bottom: 1px solid var(--sglv-border) !important; border-radius: var(--sglv-radius) var(--sglv-radius) 0 0 !important; flex-shrink: 0 !important; }
.sglv-gs-header h3 { margin: 0 !important; font-size: 15px !important; font-weight: 600 !important; color: #fff !important; display: flex !important; align-items: center !important; gap: 8px !important; white-space: nowrap !important; min-width: 0 !important; }
.sglv-gs-close { width: 28px !important; height: 28px !important; border-radius: 6px !important; border: none !important; background: rgba(255,255,255,0.08) !important; color: #8a9ba8 !important; cursor: pointer !important; display: flex !important; align-items: center !important; justify-content: center !important; }
.sglv-gs-close:hover { background: rgba(255,255,255,0.15) !important; color: #fff !important; }
.sglv-gs-close svg { width: 14px; height: 14px; }
.sglv-gs-body { padding: 20px !important; }
.sglv-gs-section { margin-bottom: 20px !important; padding-bottom: 16px !important; border-bottom: 1px solid rgba(255,255,255,0.06) !important; }
.sglv-gs-section:last-child { border-bottom: none !important; margin-bottom: 0 !important; }
.sglv-gs-section-title { font-size: 13px !important; font-weight: 700 !important; color: var(--sglv-accent) !important; margin-bottom: 12px !important; display: flex !important; align-items: center !important; gap: 6px !important; }
.sglv-gs-section-title svg { width: 16px; height: 16px; }
.sgis-ai-toggle-bar { display: flex !important; align-items: center !important; gap: 8px !important; margin-bottom: 10px !important; padding: 6px 10px !important; background: rgba(59, 130, 246, 0.08) !important; border-radius: 8px !important; border: 1px solid rgba(59, 130, 246, 0.15) !important; }
.sgis-ai-toggle { display: inline-flex !important; border-radius: 6px !important; overflow: hidden !important; border: 1px solid rgba(255,255,255,0.1) !important; }
.sgis-ai-toggle-btn { padding: 4px 12px !important; font-size: 11px !important; font-weight: 600 !important; border: none !important; background: rgba(255,255,255,0.04) !important; color: var(--sgis-text-2) !important; cursor: pointer !important; transition: all 0.2s !important; }
.sgis-ai-toggle-btn.active { background: rgba(59, 130, 246, 0.3) !important; color: #93c5fd !important; }
.sgis-ai-toggle-btn:hover:not(.active) { background: rgba(255,255,255,0.08) !important; color: #fff !important; }
.sgis-ai-status { font-size: 10px !important; color: var(--sgis-text-2) !important; margin-left: auto !important; }
.sgis-ai-summary-item { padding: 8px 10px !important; background: rgba(59, 130, 246, 0.04) !important; border: 1px solid rgba(59, 130, 246, 0.1) !important; border-radius: 6px !important; margin-bottom: 6px !important; }
.sgis-ai-summary-title { font-size: 12px !important; font-weight: 600 !important; color: #93c5fd !important; margin-bottom: 4px !important; line-height: 1.4 !important; }
.sgis-ai-summary-text { font-size: 11px !important; color: var(--sgis-text) !important; line-height: 1.6 !important; }
.sgis-ai-summary-badge { display: inline-block !important; font-size: 9px !important; padding: 1px 5px !important; border-radius: 3px !important; background: rgba(59, 130, 246, 0.2) !important; color: #93c5fd !important; font-weight: 600 !important; margin-left: 4px !important; }
.sglv-loading { display: flex !important; flex-direction: column !important; align-items: center !important; justify-content: center !important; padding: 60px 20px !important; color: var(--sglv-text-secondary) !important; gap: 12px !important; }
.sglv-spinner { width: 32px !important; height: 32px !important; border: 3px solid rgba(255,255,255,0.1) !important; border-top-color: var(--sglv-accent) !important; border-radius: 50% !important; animation: sglv-spin 0.8s linear infinite !important; }
@keyframes sglv-spin { to { transform: rotate(360deg); }
}
.sglv-refresh-btn.sglv-spin svg { animation: sglv-spin 1s linear infinite; }
.sglv-stats-dashboard { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; padding: 12px 16px; background: var(--sglv-section-bg); border-bottom: 1px solid var(--sglv-border); flex-shrink: 0; }
/* v2.3.28: .sglv-stat-dash-card 基类/hover/::before 已合并至顶部共享 KPI 卡片样式 */
.sglv-stat-dash-header { display: flex; align-items: center; gap: 5px; margin-bottom: 2px; }
.sglv-stat-dash-value { font-size: 17px; font-weight: 800; color: #fff; line-height: 1.2; }
.sglv-stat-dash-label { font-size: 10px; color: var(--sglv-text-secondary); margin-top: 0; }
.sglv-stat-dash-icon { display: inline-flex; align-items: center; justify-content: center; width: 16px; height: 16px; border-radius: 5px; margin-bottom: 0; flex-shrink: 0; }
.sglv-stat-dash-icon svg { width: 10px; height: 10px; }
.sglv-stat-dash-sub { font-size: 9px; color: var(--sglv-text-secondary); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.8; }
/* v2.3.28: stat-dash-card 颜色变体 border-color/::before 已合并至共享 KPI 颜色修饰符,仅保留数值+图标样式 */
.sglv-stat-dash-card.blue .sglv-stat-dash-value { color: #66c0f4; }
.sglv-stat-dash-card.blue .sglv-stat-dash-icon { background: rgba(102,192,244,0.15); color: #66c0f4; }
.sglv-stat-dash-card.green .sglv-stat-dash-value { color: #22c55e; }
.sglv-stat-dash-card.green .sglv-stat-dash-icon { background: rgba(34,197,94,0.15); color: #22c55e; }
.sglv-stat-dash-card.amber .sglv-stat-dash-value { color: #fbbf24; }
.sglv-stat-dash-card.amber .sglv-stat-dash-icon { background: rgba(245,158,11,0.15); color: #fbbf24; }
.sglv-stat-dash-card.purple .sglv-stat-dash-value { color: #a78bfa; }
.sglv-stat-dash-card.purple .sglv-stat-dash-icon { background: rgba(139,92,246,0.15); color: #a78bfa; }
.sglv-stat-dash-card.red .sglv-stat-dash-value { color: #f44336; }
.sglv-stat-dash-card.red .sglv-stat-dash-icon { background: rgba(244,67,54,0.15); color: #f44336; }
@media (max-width: 768px) { .sglv-stats-dashboard { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 480px) { .sglv-stats-dashboard { grid-template-columns: repeat(2, 1fr); }
}
.sglv-category-bar { display: flex; align-items: center; gap: 6px; padding: 5px 12px; background: rgba(15, 23, 42, 0.3); border-bottom: 1px solid var(--sglv-border); flex-shrink: 0; flex-wrap: wrap; }
.sglv-category-btn { padding: 2px 7px; border-radius: 11px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.05); color: var(--sglv-text-secondary); font-size: 11px; font-weight: 600; cursor: pointer; transition: var(--sglv-transition); white-space: nowrap; }
.sglv-category-btn:hover { background: rgba(255,255,255,0.1); color: #fff; }
.sglv-category-btn.active { background: rgba(102,192,244,0.2); border-color: rgba(102,192,244,0.4); color: var(--sglv-accent); }
.sglv-delisted-subtabs { display: flex; gap: 6px; padding: 0 16px 10px; flex-shrink: 0; flex-wrap: wrap; }
.sglv-delisted-subtab { padding: 5px 12px; border-radius: 6px; border: 1px solid rgba(255,255,255,0.08); background: rgba(255,255,255,0.04); color: var(--sglv-text-secondary); font-size: 12px; font-weight: 600; cursor: pointer; transition: var(--sglv-transition); }
.sglv-delisted-subtab:hover { background: rgba(255,255,255,0.08); color: #fff; }
.sglv-delisted-subtab.active { background: rgba(244,67,54,0.15); border-color: rgba(244,67,54,0.35); color: #f87171; }
.sglv-delisted-type-row { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; margin-bottom: 12px; }
.sglv-delisted-type-row .sglv-delisted-pagination { padding: 4px 8px !important; background: transparent !important; border: none !important; margin-left: auto !important; flex-shrink: 0; }
.sglv-delisted-summary-bar .sglv-delisted-pagination { padding: 4px 8px !important; background: transparent !important; border: none !important; margin-left: auto !important; flex-shrink: 0; }
.sglv-empty { text-align: center !important; padding: 40px 20px !important; color: var(--sglv-text-secondary) !important; font-size: 13px !important; }
.sglv-trend-wrap { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px; min-height: 0; }
.sglv-trend-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px; margin-bottom: 12px; flex-shrink: 0; display: flex; flex-direction: column; min-height: 0; }
.sglv-trend-section-main { flex: 1 1 auto; margin-bottom: 0; min-height: 0; overflow: hidden; }
.sglv-trend-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 12px; flex-shrink: 0; }
/* v2.3.28: .sglv-trend-kpi-card 基类/hover/::before 已合并至顶部共享 KPI 卡片样式 */
.sglv-trend-kpi-header { display: flex; align-items: center; gap: 5px; margin-bottom: 2px; }
.sglv-trend-kpi-value { font-size: 20px; font-weight: 800; color: #fff; line-height: 1.2; }
.sglv-trend-kpi-label { font-size: 11px; color: var(--sglv-text-secondary); margin-top: 0; }
.sglv-trend-kpi-icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 5px; margin-bottom: 0; flex-shrink: 0; }
.sglv-trend-kpi-icon svg { width: 11px; height: 11px; }
.sglv-trend-kpi-sub { font-size: 9px; color: var(--sglv-text-secondary); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.8; }
.sglv-trend-kpi-card.mine { border-color: rgba(34,197,94,0.35); }
.sglv-trend-kpi-card.mine .sglv-trend-kpi-value { color: #22c55e; }
.sglv-trend-kpi-card.mine::before { background: #22c55e; }
.sglv-trend-kpi-card.mine .sglv-trend-kpi-icon { background: rgba(34,197,94,0.15); color: #22c55e; }
.sglv-trend-kpi-card.total { border-color: rgba(129,140,248,0.35); }
.sglv-trend-kpi-card.total .sglv-trend-kpi-value { color: #818cf8; }
.sglv-trend-kpi-card.total::before { background: #818cf8; }
.sglv-trend-kpi-card.total .sglv-trend-kpi-icon { background: rgba(129,140,248,0.15); color: #818cf8; }
@media (max-width: 600px) { .sglv-trend-kpi-row { grid-template-columns: repeat(2, 1fr); }
}
.sglv-trend-header { display: flex; align-items: center; gap: 8px; margin-bottom: 6px; flex-wrap: wrap; }
.sglv-trend-header svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--sglv-accent); }
.sglv-trend-title { font-size: 15px; font-weight: 700; color: #fff; flex-shrink: 0; }
.sglv-trend-subtitle { font-size: 12px; color: var(--sglv-text-secondary); margin-bottom: 14px; }
.sglv-trend-chart { position: relative; width: 100%; flex: 1; min-height: 320px; display: flex; flex-direction: column; }
.sglv-trend-chart svg { display: block; width: 100%; flex: 1; min-height: 0; }
.sglv-trend-bar { transition: opacity .15s; cursor: pointer; }
/* v2.4.3: 入库趋势动态——左趋势图 + 右入库时间线 分栏布局 */
.sglv-trend-split { display: flex; gap: 12px; flex: 1 1 auto; min-height: 0; }
.sglv-trend-split-left { flex: 1.6; min-width: 0; display: flex; flex-direction: column; }
.sglv-trend-split-left .sglv-trend-section { flex: 1; margin-bottom: 0; }
.sglv-trend-split-right { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sglv-tl-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px; display: flex; flex-direction: column; flex: 1; min-height: 0; }
.sglv-tl-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-shrink: 0; }
.sglv-tl-count { display: flex; align-items: center; gap: 6px; background: rgba(102,192,244,0.1); border: 1px solid rgba(102,192,244,0.25); border-radius: 8px; padding: 5px 10px; white-space: nowrap; }
.sglv-tl-count-num { font-size: 16px; font-weight: 700; color: var(--sglv-accent); }
.sglv-tl-count-label { font-size: 10px; color: var(--sglv-text-secondary); }
.sglv-tl-search { flex: 1; min-width: 0; padding: 6px 12px; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; color: #fff; font-size: 12px; outline: none; }
.sglv-tl-search:focus { border-color: rgba(102,192,244,0.5); }
.sglv-tl-search::placeholder { color: #5a6a7a; }
.sglv-tl-scroll { flex: 1; overflow-y: auto; min-height: 0; padding-right: 2px; }
.sglv-tl-scroll::-webkit-scrollbar { width: var(--sglv-scrollbar-width); }
.sglv-tl-scroll::-webkit-scrollbar-thumb { background: var(--sglv-scrollbar-thumb); border-radius: 3px; }
.sglv-tl-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.sglv-tl-divider { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; margin: 8px 0 2px; }
.sglv-tl-grid > .sglv-tl-divider:first-child { margin-top: 0; }
.sglv-tl-divider-line { flex: 1; height: 1px; background: linear-gradient(90deg, transparent, rgba(102,192,244,0.45), transparent); }
.sglv-tl-date { font-size: 11px; font-weight: 600; color: var(--sglv-accent); white-space: nowrap; letter-spacing: 0.5px; }
.sglv-tl-card { background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; overflow: hidden; cursor: pointer; transition: var(--sglv-transition); min-width: 0; }
.sglv-tl-card:hover { background: rgba(255,255,255,0.08); border-color: rgba(102,192,244,0.35); transform: translateY(-1px); }
.sglv-tl-card .sglv-card-img { height: auto !important; aspect-ratio: 460 / 175; background: rgba(255,255,255,0.05); }
.sglv-tl-card-info { padding: 5px 8px 6px; }
.sglv-tl-card-name { font-size: 11px; color: var(--sglv-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sglv-tl-card-meta { display: flex; justify-content: space-between; align-items: center; margin-top: 2px; font-size: 10px; }
.sglv-tl-card-time { color: var(--sglv-text-secondary); }
.sglv-tl-card-check { color: #34d399; font-weight: 700; }
.sglv-tl-pagination { padding: 8px 0 0 !important; background: transparent !important; border-top: none !important; }
@media (max-width: 900px) { .sglv-trend-split { flex-direction: column; overflow-y: auto; } .sglv-trend-split-left, .sglv-trend-split-right { flex: none; } .sglv-trend-split-left .sglv-trend-section { min-height: 340px; } .sglv-tl-section { min-height: 420px; } }
.sglv-trend-bar:hover { opacity: 0.78; }
.sglv-trend-bar-member { transition: opacity .15s; }
.sglv-trend-bar-member:hover { opacity: 1 !important; }
.sglv-trend-tooltip { position: absolute !important; pointer-events: none !important; background: rgba(15, 23, 42, 0.96) !important; border: 1px solid rgba(102, 192, 244, 0.3) !important; border-radius: 8px !important; padding: 10px 14px !important; font-size: 12px !important; color: #fff !important; box-shadow: 0 8px 24px rgba(0,0,0,0.4) !important; opacity: 0 !important; transition: opacity 0.15s !important; z-index: 10 !important; min-width: 140px !important; }
.sglv-trend-tooltip-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin: 3px 0; }
.sglv-trend-tooltip-label { display: flex; align-items: center; gap: 6px; color: #94a3b8; }
.sglv-trend-tooltip-dot { width: 8px; height: 8px; border-radius: 50%; }
.sglv-trend-tooltip-value { font-weight: 700; font-variant-numeric: tabular-nums; }
.sglv-trend-legend { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 12px; padding-top: 10px; border-top: 1px solid rgba(102, 192, 244, 0.12); flex-shrink: 0; }
.sglv-trend-legend-item { display: flex; align-items: center; gap: 5px; font-size: 11px; color: #94a3b8; }
.sglv-trend-legend-dot { width: 10px; height: 10px; border-radius: 2px; }
.sglv-trend-legend-line { width: 18px; height: 2px; border-radius: 2px; }
.sglv-trend-summary { display: flex; justify-content: space-around; margin-top: 10px; font-size: 11px; color: #94a3b8; flex-shrink: 0; }
.sglv-trend-note { font-size: 11px; color: #94a3b8; margin-top: 10px; padding: 8px 10px; background: rgba(255,255,255,0.04); border-radius: 6px; flex-shrink: 0; }
@media(max-width:768px) { .sglv-panel { width: 100vw !important; max-width: 100vw !important; height: 100vh !important; max-height: 100vh !important; border-radius: 0 !important; }
.sglv-pub-sidebar { width: 200px !important; min-width: 200px !important; }
.sglv-card-grid { grid-template-columns: repeat(2, 1fr) !important; }
.sglv-trend-section { padding: 12px !important; }
}
.sglv-delisted-wrap { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; }
.sglv-delisted-toolbar { flex-wrap: wrap; gap: 6px; }
.sglv-delisted-filter-group { display: flex; align-items: center; gap: 4px; flex-wrap: wrap; }
.sglv-delisted-sub-group { display: flex; align-items: center; gap: 4px; margin-left: auto; flex-wrap: wrap; }
.sglv-delisted-type-btn { font-size: 11px !important; padding: 4px 10px !important; }
.sglv-delisted-type-btn.active { background: rgba(244,67,54,0.2) !important; border-color: rgba(244,67,54,0.4) !important; color: #f44336 !important; }
.sglv-delisted-sub-btn { font-size: 11px !important; padding: 4px 10px !important; border-radius: 6px !important; }
.sglv-delisted-sub-btn.active { background: rgba(34,197,94,0.2) !important; border-color: rgba(34,197,94,0.4) !important; color: #22c55e !important; }
.sglv-delisted-card { background: rgba(255,255,255,0.04) !important; border: 1px solid rgba(255,255,255,0.06) !important; border-radius: 8px !important; padding: 10px 14px !important; transition: var(--sglv-transition) !important; cursor: pointer !important; margin-bottom: 6px !important; }
.sglv-delisted-card:hover { background: rgba(255,255,255,0.08) !important; border-color: rgba(244,67,54,0.3) !important; transform: translateY(-1px) !important; }
.sglv-delisted-badge { display: inline-block !important; font-size: 10px !important; font-weight: 600 !important; padding: 1px 6px !important; border-radius: 3px !important; }
.sglv-delisted-badge.type-delisted { background: rgba(244,67,54,0.2) !important; color: #f44336 !important; }
.sglv-delisted-badge.type-purchase_disabled { background: rgba(255,152,0,0.2) !important; color: #ff9800 !important; }
.sglv-delisted-badge.type-f2p_unavailable { background: rgba(156,39,176,0.2) !important; color: #ce93d8 !important; }
.sglv-delisted-badge.type-retail_only { background: rgba(33,150,243,0.2) !important; color: #64b5f6 !important; }
.sglv-delisted-badge.type-test_app { background: rgba(158,158,158,0.2) !important; color: #9e9e9e !important; }
.sglv-delisted-owners { font-size: 10px !important; color: var(--sglv-text-secondary) !important; }
.sglv-delisted-date { font-size: 10px !important; color: var(--sglv-text-secondary) !important; }
.sglv-delisted-achievements { font-size: 10px !important; color: #66c0f4 !important; }
/* v2.3.22: 绝版页面紧凑分类汇总 + 收藏进度条(置于分页操作栏下方) */
.sglv-delisted-summary-bar { display: flex; align-items: center; gap: 6px; flex-wrap: wrap; flex-shrink: 0; }
.sglv-delisted-summary-badges { display: flex; align-items: center; gap: 5px; flex-wrap: wrap; flex: 1; min-width: 0; }
.sglv-delisted-summary-badge { display: inline-flex; align-items: center; gap: 3px; font-size: 10px; font-weight: 600; padding: 2px 8px; border-radius: 10px; cursor: pointer; transition: var(--sglv-transition); white-space: nowrap; }
.sglv-delisted-summary-badge:hover { filter: brightness(1.3); transform: translateY(-1px); }
.sglv-delisted-summary-badge .sglv-dsb-owned { font-weight: 700; }
.sglv-delisted-summary-badge .sglv-dsb-sep { opacity: 0.5; }
.sglv-delisted-summary-badge .sglv-dsb-total { opacity: 0.8; }
.sglv-delisted-progress-compact { display: flex; align-items: center; gap: 8px; padding: 4px 0 8px; flex-shrink: 0; }
.sglv-delisted-progress-compact .sglv-dpc-label { font-size: 11px; color: var(--sglv-text-secondary); white-space: nowrap; flex-shrink: 0; }
.sglv-delisted-progress-compact .sglv-dpc-track { flex: 1; height: 8px; background: rgba(255,255,255,0.06); border-radius: 4px; overflow: hidden; position: relative; }
.sglv-delisted-progress-compact .sglv-dpc-fill { height: 100%; background: linear-gradient(90deg, #22c55e, #66c0f4); border-radius: 4px; transition: width 0.5s; }
.sglv-delisted-progress-compact .sglv-dpc-pct { font-size: 12px; font-weight: 700; color: #66c0f4; white-space: nowrap; flex-shrink: 0; min-width: 36px; text-align: right; }
.sglv-playtime-wrap { flex: 1; overflow-y: auto; padding: 12px; display: flex; flex-direction: column; gap: 12px; }
.sglv-playtime-kpi-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; flex-shrink: 0; }
/* v2.3.28: .sglv-playtime-kpi-card 基类/hover/::before 已合并至顶部共享 KPI 卡片样式 */
.sglv-playtime-kpi-header { display: flex; align-items: center; gap: 5px; margin-bottom: 2px; }
/* v2.3.28: playtime-kpi-card 颜色变体 border-color/::before 已合并至共享 KPI 颜色修饰符,仅保留数值+图标样式 */
.sglv-playtime-kpi-card.amber .sglv-playtime-kpi-value { color: #fbbf24; }
.sglv-playtime-kpi-card.amber .sglv-playtime-kpi-icon { background: rgba(245,158,11,0.15); color: #fbbf24; }
.sglv-playtime-kpi-card.green .sglv-playtime-kpi-value { color: #22c55e; }
.sglv-playtime-kpi-card.green .sglv-playtime-kpi-icon { background: rgba(34,197,94,0.15); color: #22c55e; }
.sglv-playtime-kpi-card.blue .sglv-playtime-kpi-value { color: #66c0f4; }
.sglv-playtime-kpi-card.blue .sglv-playtime-kpi-icon { background: rgba(102,192,244,0.15); color: #66c0f4; }
.sglv-playtime-kpi-card.purple .sglv-playtime-kpi-value { color: #a78bfa; }
.sglv-playtime-kpi-card.purple .sglv-playtime-kpi-icon { background: rgba(139,92,246,0.15); color: #a78bfa; }
.sglv-playtime-kpi-value { font-size: 20px; font-weight: 800; color: #fff; line-height: 1.2; }
.sglv-playtime-kpi-label { font-size: 11px; color: var(--sglv-text-secondary); margin-top: 0; }
.sglv-playtime-kpi-icon { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; border-radius: 5px; margin-bottom: 0; flex-shrink: 0; }
.sglv-playtime-kpi-icon svg { width: 11px; height: 11px; }
.sglv-playtime-kpi-sub { font-size: 9px; color: var(--sglv-text-secondary); margin-top: 1px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; opacity: 0.8; }
/* v2.9.22: KPI 卡片 sparkline 迷你趋势线 + 进度条 */
.sglv-playtime-kpi-body { display: flex; align-items: center; justify-content: space-between; gap: 6px; margin-bottom: 2px; }
.sglv-playtime-kpi-body .sglv-playtime-kpi-value { flex: 1; min-width: 0; }
.sglv-kpi-spark { flex-shrink: 0; opacity: 0.85; display: block; }
.sglv-kpi-progress { height: 5px; background: rgba(255,255,255,0.06); border-radius: 3px; overflow: hidden; margin: 3px 0 2px; }
.sglv-kpi-progress-fill { height: 100%; border-radius: 3px; transition: width 0.6s ease; min-width: 2px; }
.sglv-kpi-progress-fill.cyan { background: linear-gradient(90deg, #22d3ee, #06b6d4); }
.sglv-kpi-progress-fill.rose { background: linear-gradient(90deg, #fb7185, #f43f5e); }
.sglv-playtime-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px; margin-bottom: 12px; flex-shrink: 0; }
.sglv-playtime-section-title { font-size: 14px; font-weight: 700; color: #fff; margin-bottom: 12px; display: flex; align-items: center; gap: 6px; }
.sglv-playtime-section-title svg { width: 16px; height: 16px; color: var(--sglv-accent); flex-shrink: 0; }
.sglv-playtime-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 12px; flex: 1 1 0; min-height: 0; align-items: stretch; }
.sglv-playtime-col { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 14px; min-width: 0; display: flex; flex-direction: column; align-items: stretch; }
/* v2.9.22: 分布甜甜圈/趋势图内容区撑满列高 */
.sglv-playtime-col > #sglv-pt-donut { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.sglv-playtime-section-flex { flex: 1; display: flex; flex-direction: column; min-height: 0; margin-bottom: 0; }
.sglv-playtime-section-flex .sglv-pt-all-list { flex: 1; overflow-y: auto; max-height: none; min-height: 120px; }
.sglv-playtime-split-row { display: grid; grid-template-columns: minmax(280px, 2fr) minmax(0, 3fr); gap: 12px; flex: 1 1 0; min-height: 0; margin-bottom: 0; }
.sglv-family-compare-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 14px; margin-bottom: 12px; flex-shrink: 0; }
.sglv-family-compare-container { margin-top: 8px; max-height: 152px; overflow-y: auto; }
.sglv-family-bar-row { display: flex; align-items: center; gap: 10px; padding: 7px 0; border-bottom: 1px solid rgba(255,255,255,0.04); }
.sglv-family-bar-row:last-child { border-bottom: none; }
.sglv-family-bar-row.is-me .sglv-family-bar-name { color: #66c0f4; font-weight: 700; }
.sglv-family-bar-row.is-me .sglv-family-bar-fill { background: linear-gradient(90deg, #66c0f4, #4a9eda); }
.sglv-family-bar-name { width: 80px; min-width: 80px; font-size: 13px; color: #c0c8d0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sglv-family-bar-track { flex: 1; height: 22px; background: rgba(255,255,255,0.05); border-radius: 4px; overflow: hidden; }
.sglv-family-bar-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, #4caf50, #2e7d32); transition: width 0.6s ease; min-width: 2px; }
.sglv-family-bar-hours { width: 70px; min-width: 70px; text-align: right; font-size: 13px; font-weight: 600; color: #e0e0e0; }
.sglv-playtime-split-left { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.sglv-playtime-split-left #sglv-pt-top-list { flex: 1; overflow-y: auto; min-height: 0; }
.sglv-playtime-split-right { background: var(--sglv-section-bg); border: 1px solid rgba(244,67,54,0.2); border-radius: var(--sglv-radius); padding: 12px; display: flex; flex-direction: column; min-height: 0; overflow: hidden; }
.sglv-playtime-split-right .sglv-pt-all-list { flex: 1; overflow-y: auto; max-height: none; min-height: 0; }
.sglv-trend-filter { display: flex; gap: 4px; }
.sglv-trend-btn { padding: 3px 8px; border-radius: 4px; border: 1px solid rgba(255,255,255,0.1); background: rgba(255,255,255,0.05); color: var(--sglv-text-secondary); font-size: 11px; cursor: pointer; transition: var(--sglv-transition); }
.sglv-trend-btn:hover { background: rgba(255,255,255,0.1); color: #fff; }
.sglv-trend-btn.active { background: rgba(102,192,244,0.2); border-color: rgba(102,192,244,0.4); color: var(--sglv-accent); }
.sglv-pt-trend-chart { width: 100%; flex: 1; min-height: 0; display: flex; align-items: center; }
.sglv-pt-trend-chart .sglv-empty { width: 100%; }
.sglv-trend-svg { width: 100% !important; height: 100% !important; overflow: visible; display: block; }
.sglv-donut-wrap { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; min-height: 0; padding: 4px 0; }
.sglv-donut-chart { display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sglv-donut-chart svg { display: block; max-width: 100%; height: auto; }
.sglv-donut-legend { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 14px; width: 100%; max-width: 360px; padding: 0 4px; }
.sglv-donut-legend-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: #c7d5e0; min-width: 0; }
.sglv-donut-legend-dot { width: 9px; height: 9px; border-radius: 2px; flex-shrink: 0; }
.sglv-donut-legend-label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sglv-donut-legend-value { font-weight: 600; color: #e0e0e0; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sglv-donut-legend-pct { color: #8a9ba8; font-weight: 400; }
.sglv-pt-top-item { display: flex; align-items: center; gap: 10px; padding: 8px 10px; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.05); border-radius: 8px; margin-bottom: 5px; transition: var(--sglv-transition); cursor: pointer; }
.sglv-pt-top-item:hover { background: rgba(255,255,255,0.07); border-color: rgba(102,192,244,0.2); transform: translateX(2px); }
.sglv-pt-top-item.rank-1 { border-left: 3px solid #fbbf24; background: rgba(251,191,36,0.06); }
.sglv-pt-top-item.rank-2 { border-left: 3px solid #94a3b8; background: rgba(148,163,184,0.06); }
.sglv-pt-top-item.rank-3 { border-left: 3px solid #cd7f32; background: rgba(205,127,50,0.06); }
.sglv-pt-rank { width: 28px; height: 28px; border-radius: 6px; display: flex; align-items: center; justify-content: center; font-size: 12px; font-weight: 800; flex-shrink: 0; background: rgba(255,255,255,0.06); color: var(--sglv-text-secondary); }
.sglv-pt-rank.r1 { background: rgba(251,191,36,0.2); color: #fbbf24; }
.sglv-pt-rank.r2 { background: rgba(148,163,184,0.2); color: #cbd5e1; }
.sglv-pt-rank.r3 { background: rgba(205,127,50,0.2); color: #d4986a; }
.sglv-pt-icon { width: 40px; height: 40px; border-radius: 4px; flex-shrink: 0; object-fit: cover; background: rgba(255,255,255,0.05); }
.sglv-pt-info { flex: 1; min-width: 0; }
.sglv-pt-name { font-size: 13px; font-weight: 600; color: #e0e0e0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sglv-pt-meta { font-size: 11px; color: var(--sglv-text-secondary); margin-top: 2px; }
.sglv-pt-bar-wrap { flex: 1; min-width: 60px; height: 6px; background: rgba(255,255,255,0.06); border-radius: 3px; overflow: hidden; }
.sglv-pt-bar-fill { height: 100%; background: linear-gradient(90deg, #fbbf24, #f97316); border-radius: 3px; transition: width 0.3s ease; }
.sglv-pt-hours { font-size: 13px; font-weight: 700; color: #fbbf24; white-space: nowrap; min-width: 55px; text-align: right; flex-shrink: 0; }
.sglv-pt-all-toolbar { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; flex-wrap: wrap; }
.sglv-pt-all-list { max-height: 500px; overflow-y: auto; }
.sglv-pt-all-item { display: flex; align-items: center; gap: 8px; padding: 6px 10px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); border-radius: 6px; margin-bottom: 3px; transition: var(--sglv-transition); cursor: pointer; }
.sglv-pt-all-item:hover { background: rgba(255,255,255,0.06); }
.sglv-pt-all-rank { width: 30px; font-size: 11px; font-weight: 600; color: var(--sglv-text-secondary); text-align: center; flex-shrink: 0; }
.sglv-pt-all-name { flex: 1; font-size: 12px; color: #c7d5e0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sglv-pt-all-hours { font-size: 12px; font-weight: 600; color: #fbbf24; white-space: nowrap; flex-shrink: 0; }
.sglv-pt-all-bar { width: 80px; height: 4px; background: rgba(255,255,255,0.06); border-radius: 2px; overflow: hidden; flex-shrink: 0; }
.sglv-pt-all-bar-fill { height: 100%; background: linear-gradient(90deg, #66c0f4, #4caf50); border-radius: 2px; }
/* v2.3.28: 游玩数据底部——总时长分布水平条形图样式(参考 friend-manager 设计) */
/* v2.3.30: 底部行不再撑高(flex-grow:0),压缩容器高度避免大面积空白,把空间留给上方 Top20/全部游戏列表 */
.sglv-playdata-bottom-row { margin-top: 12px; flex: 0 0 auto; }
.sglv-playdata-dist { overflow-y: auto; max-height: 260px; }
.sglv-playdata-family { border-color: var(--sglv-border) !important; }
.sglv-playdata-family .sglv-family-compare-section { padding: 0; margin-bottom: 0; background: transparent; border: none; box-shadow: none; }
.sglv-playdata-family .sglv-family-compare-container { max-height: 152px; overflow-y: auto; }
/* v2.3.30: "待加入"占位行——虚线轨道、暗淡文字,与真实成员区分 */
.sglv-family-bar-row.sglv-family-bar-pending { opacity: 0.55; }
.sglv-family-bar-row.sglv-family-bar-pending .sglv-family-bar-name { color: #64748b; font-style: italic; }
.sglv-family-bar-row.sglv-family-bar-pending .sglv-family-bar-track { border: 1px dashed rgba(255,255,255,0.1); background: transparent; }
.sglv-family-bar-row.sglv-family-bar-pending .sglv-family-bar-hours { color: #64748b; }
/* v2.3.30: 入库热力图样式(参考 steam-family-analysis 设计) */
.sglv-heatmap-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 14px; flex-shrink: 0; min-width: 0; }
/* v2.6.3: 入库热力图 + 近6月入库增量——左右分栏(热力图占主 2.5,增量占次 1);移动端 < 900px 改上下 */
/* v2.9.22: 热力图行 flex:1 撑满剩余高度,消除底部空余边距 */
.sglv-heatmap-acquire-row { display: flex; gap: 12px; align-items: stretch; width: 100%; box-sizing: border-box; flex: 1 1 0; min-height: 0; }
.sglv-heatmap-acquire-row .sglv-heatmap-section { flex: 2.5 1 0; min-width: 0; min-height: 0; display: flex; flex-direction: column; }
.sglv-heatmap-acquire-row .sglv-heatmap-mini-section { flex: 1 1 0; min-width: 240px; max-width: 360px; min-height: 0; display: flex; flex-direction: column; }
/* v2.9.22: 热力图内容区撑满 section 剩余高度并垂直居中 */
.sglv-heatmap-section > #sglv-pt-heatmap { flex: 1; min-height: 0; display: flex; flex-direction: column; justify-content: center; }
@media (max-width: 900px) {
.sglv-heatmap-acquire-row { flex-direction: column; }
.sglv-heatmap-acquire-row .sglv-heatmap-mini-section { max-width: none; min-width: 0; }
}
.sglv-heatmap-block { display: flex; flex-direction: column; gap: 2px; }
.sglv-heatmap-scroll { overflow-x: auto; overflow-y: hidden; border-radius: 6px; padding-bottom: 4px; }
/* v2.4.2: 热力图年份选择器——复用 sglv-trend-btn 样式,支持换行 */
.sglv-hm-year-filter { flex-wrap: wrap; margin-bottom: 6px; }
/* v2.5.0: 热力图主体 + 右侧近6月入库增量——两栏等高对齐,mini 独立卡片 */
/* v2.6.3: 入库热力图与近6月入库增量——左右分栏布局;mini 段作为右栏独立 section */
.sglv-heatmap-mainrow { display: flex; gap: 12px; align-items: stretch; }
.sglv-heatmap-mainrow .sglv-heatmap-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sglv-heatmap-body { display: flex; flex-direction: column; min-width: 0; }
.sglv-hm-mini { width: 100%; display: flex; flex-direction: column; }
/* v2.6.3: 独立 mini section——右栏容器,占满列宽,与左侧热力图等高对齐 */
.sglv-heatmap-mini-section { background: var(--sglv-section-bg); border: 1px solid var(--sglv-border); border-radius: var(--sglv-radius); padding: 12px 14px 10px; flex-shrink: 0; min-width: 0; display: flex; flex-direction: column; box-sizing: border-box; }
.sglv-heatmap-mini-section .sglv-playtime-section-title { font-size: 13px !important; margin-bottom: 8px !important; }
/* v2.6.3: mini 段内层——撑开列宽,柱图按列宽自适应(不再用 max-width 限制,避免右栏过宽时柱图被拉变形) */
.sglv-hm-mini-inner { background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); border-radius: 8px; padding: 10px 8px 8px; display: flex; flex-direction: column; width: 100%; flex: 1; min-height: 0; box-sizing: border-box; }
.sglv-hm-mini-title { font-size: 12px; font-weight: 700; color: var(--sglv-text); text-align: center; margin-bottom: 6px; flex-shrink: 0; }
.sglv-hm-mini-chart { display: flex; align-items: center; justify-content: center; min-height: 0; width: 100%; flex: 1; }
.sglv-hm-mini-chart svg { width: 100%; height: auto; max-height: 100%; }
@media (max-width: 900px) { .sglv-heatmap-mainrow { flex-direction: column; } .sglv-hm-mini { width: 100%; } }
.sglv-heatmap-scroll::-webkit-scrollbar { height: var(--sglv-scrollbar-width); }
.sglv-heatmap-scroll::-webkit-scrollbar-thumb { background: var(--sglv-scrollbar-thumb); border-radius: 3px; }
/* v2.4.9: 图例内嵌于统计摘要行——不再独立右对齐,避免溢出容器右下角 */
.sglv-heatmap-legend { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; color: var(--sglv-text-secondary); margin-right: auto; }
.sglv-heatmap-legend span { display: inline-block; }
.sglv-heatmap-legend span.swatch { width: 11px; height: 11px; border-radius: 2px; }
.sglv-heatmap-summary { display: flex; gap: 12px; font-size: 11px; color: var(--sglv-text-secondary); flex-wrap: wrap; margin-top: 4px; align-items: center; }
.sglv-heatmap-summary b { color: var(--sglv-text); font-weight: 600; }
.sglv-dist-bar-list { padding: 4px 0; }
.sglv-dist-bar-row { display: flex; align-items: center; gap: 8px; margin-bottom: 5px; }
.sglv-dist-bar-label { width: 72px; flex-shrink: 0; font-size: 11px; color: var(--sglv-text-secondary); text-align: right; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sglv-dist-bar-track { flex: 1; height: 18px; background: rgba(255,255,255,0.04); border-radius: 4px; overflow: hidden; min-width: 0; }
.sglv-dist-bar-fill { height: 100%; border-radius: 4px; transition: width .3s ease; min-width: 2px; }
.sglv-dist-bar-value { width: 72px; flex-shrink: 0; font-size: 11px; color: var(--sglv-text); text-align: left; white-space: nowrap; font-weight: 600; font-variant-numeric: tabular-nums; }
.sglv-dist-bar-pct { color: var(--sglv-text-secondary); font-weight: 400; }
@media (max-width: 768px) { .sglv-playtime-row { grid-template-columns: 1fr; }
.sglv-playtime-split-row { grid-template-columns: 1fr; }
.sglv-playdata-bottom-row { grid-template-columns: 1fr; }
}
@media (max-width: 600px) { .sglv-playtime-kpi-row { grid-template-columns: repeat(2, 1fr); }
.sglv-pt-bar-wrap { min-width: 40px; }
}
:root { --sgis-bg: linear-gradient(180deg, rgba(15, 17, 35, 0.98) 0%, rgba(11, 14, 28, 0.99) 100%); --sgis-bg-solid: #0c1024; --sgis-bg-2: rgba(15, 19, 42, 0.85); --sgis-bg-3: rgba(20, 24, 50, 0.7); --sgis-card: rgba(255, 255, 255, 0.025); --sgis-card-hover: rgba(255, 255, 255, 0.045); --sgis-border: rgba(139, 92, 246, 0.18); --sgis-border-soft: rgba(102, 192, 244, 0.1); --sgis-text: #e2e8f0; --sgis-text-2: #94a3b8; --sgis-text-3: #64748b; --sgis-text-dim: #475569; --sgis-blue: #66c0f4; --sgis-blue-2: #3b82f6; --sgis-green: #10b981; --sgis-green-text: #34d399; --sgis-purple: #8b5cf6; --sgis-purple-2: #a78bfa; --sgis-purple-text: #c4b5fd; --sgis-amber: #f59e0b; --sgis-amber-text: #fbbf24; --sgis-rose: #f43f5e; --sgis-rose-text: #f87171; --sgis-cyan: #06b6d4; --sgis-radius: 14px; --sgis-radius-sm: 8px; --sgis-shadow: 0 16px 60px rgba(0, 0, 0, 0.55), 0 0 0 1px rgba(139, 92, 246, 0.08); --sgis-glow-purple: 0 0 24px rgba(139, 92, 246, 0.18); --sgis-glow-blue: 0 0 24px rgba(59, 130, 246, 0.18); --sgis-w: 440px; }
#sgis-fab { position: fixed !important; top: 50% !important; right: 0 !important; transform: translateY(-50%) !important; width: 22px !important; height: 64px !important; background: linear-gradient(135deg, #8b5cf6 0%, #3b82f6 50%, #06b6d4 100%) !important; border: none !important; border-radius: 10px 0 0 10px !important; cursor: pointer !important; z-index: 1000003 !important; display: flex !important; align-items: center !important; justify-content: center !important; color: #fff !important; box-shadow: -4px 0 18px rgba(102, 51, 238, 0.4), inset 0 0 0 1px rgba(255, 255, 255, 0.15) !important; transition: right 0.4s cubic-bezier(0.4, 0, 0.2, 1), width 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease !important; overflow: hidden; }
#sgis-fab::before { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255, 255, 255, 0.18) 0%, transparent 50%); pointer-events: none; }
#sgis-fab::after { content: ""; width: 0; height: 0; border-top: 5px solid transparent; border-bottom: 5px solid transparent; border-right: 7px solid #fff; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1); filter: drop-shadow(0 0 4px rgba(255, 255, 255, 0.5)); }
#sgis-fab:hover { width: 28px !important; box-shadow: -6px 0 24px rgba(102, 51, 238, 0.55), inset 0 0 0 1px rgba(255, 255, 255, 0.2) !important; }
#sgis-fab:hover::after { border-right-width: 8px; }
#sgis-fab.sgis-open { right: var(--sgis-w, 440px) !important; }
#sgis-fab.sgis-open::after { transform: rotate(180deg); }
#sgis-panel { position: fixed !important; top: 0 !important; right: 0 !important; width: var(--sgis-w, 440px) !important; min-width: var(--sgis-w, 440px) !important; max-width: var(--sgis-w, 440px) !important; box-sizing: border-box !important; height: 100vh !important; background: var(--sgis-bg) !important; border-left: 1px solid rgba(139, 92, 246, 0.22) !important; box-shadow: -16px 0 60px rgba(0, 0, 0, 0.65), inset 1px 0 0 rgba(255, 255, 255, 0.04) !important; z-index: 1000002 !important; display: flex !important; flex-direction: column !important; transform: translateX(100%) !important; transition: transform 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important; font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif !important; color: #f8fafc !important; backdrop-filter: blur(20px) saturate(160%) !important; -webkit-backdrop-filter: blur(20px) saturate(160%) !important; overflow: hidden; }
#sgis-panel::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(139, 92, 246, 0.5) 50%, transparent 100%); pointer-events: none; z-index: 5; }
#sgis-panel.sgis-open { transform: translateX(0) !important; }
.sgis-header { background: linear-gradient(135deg, rgba(139, 92, 246, 0.22) 0%, rgba(59, 130, 246, 0.12) 50%, var(--sgis-bg-2) 100%); padding: 14px 16px; display: flex; justify-content: space-between; align-items: center; border-bottom: 1px solid rgba(139, 92, 246, 0.2); flex-shrink: 0; position: relative; overflow: hidden; }
.sgis-header::before { content: ""; position: absolute; top: -40px; left: -30px; width: 140px; height: 140px; background: radial-gradient(circle, rgba(139, 92, 246, 0.22) 0%, transparent 65%); pointer-events: none; }
.sgis-header::after { content: ""; position: absolute; top: -30px; right: -30px; width: 130px; height: 130px; background: radial-gradient(circle, rgba(6, 182, 212, 0.18) 0%, transparent 65%); pointer-events: none; }
.sgis-header-decoration { position: absolute; bottom: 0; left: 0; right: 0; height: 1px; background: linear-gradient(90deg, transparent 0%, rgba(139, 92, 246, 0.4) 50%, transparent 100%); }
.sgis-title { font-size: 15px; font-weight: 700; color: #fff; display: flex; align-items: center; gap: 9px; position: relative; z-index: 2; min-width: 0; flex: 1; overflow: hidden; letter-spacing: 0.2px; }
.sgis-title-text { background: linear-gradient(135deg, #fff 0%, #c4b5fd 100%); -webkit-background-clip: text; -webkit-text-fill-color: transparent; background-clip: text; }
.sgis-title-icon { width: 26px; height: 26px; border-radius: 8px; background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 50%, #3b82f6 100%); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 4px 12px rgba(139, 92, 246, 0.4), inset 0 1px 0 rgba(255, 255, 255, 0.2); position: relative; z-index: 1; }
.sgis-title-icon::after { content: ""; position: absolute; inset: 1px; border-radius: 7px; background: linear-gradient(180deg, rgba(255, 255, 255, 0.12) 0%, transparent 50%); pointer-events: none; }
.sgis-title-icon svg { width: 14px; height: 14px; stroke: #fff; stroke-width: 2.4; fill: none; position: relative; z-index: 2; }
.sgis-title-text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-title-actions { display: flex; gap: 4px; position: relative; z-index: 1; }
.sgis-icon-btn { width: 30px; height: 30px; border-radius: 8px; background: rgba(255, 255, 255, 0.06); border: 1px solid rgba(255, 255, 255, 0.05); cursor: pointer; display: flex; align-items: center; justify-content: center; color: #b8c5d6; transition: all 0.2s ease; position: relative; z-index: 2; }
.sgis-icon-btn:hover { background: rgba(139, 92, 246, 0.18); border-color: rgba(139, 92, 246, 0.3); color: #fff; transform: translateY(-1px); box-shadow: 0 2px 8px rgba(139, 92, 246, 0.25); }
.sgis-icon-btn:active { transform: translateY(0); }
.sgis-icon-btn.sgis-spin svg { animation: sgis-spin 0.8s linear infinite; }
.sgis-icon-btn svg { width: 14px; height: 14px; }
@keyframes sgis-spin { to { transform: rotate(360deg); }
}
.sgis-tabs { display: flex; background: linear-gradient(180deg, rgba(15, 19, 42, 0.7) 0%, rgba(11, 14, 28, 0.85) 100%); padding: 5px; gap: 4px; border-bottom: 1px solid rgba(139, 92, 246, 0.12); flex-shrink: 0; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); position: relative; z-index: 2; }
.sgis-tab { flex: 1; border: none; background: transparent; color: var(--sgis-text-2); padding: 8px 6px; font-size: 12px; font-weight: 600; border-radius: 7px; cursor: pointer; transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1); display: flex; align-items: center; justify-content: center; gap: 5px; position: relative; overflow: hidden; }
.sgis-tab::before { content: ""; position: absolute; inset: 0; background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(59, 130, 246, 0.2)); opacity: 0; transition: opacity 0.25s ease; border-radius: 7px; }
.sgis-tab:hover { color: #c4b5fd; }
.sgis-tab:hover::before { opacity: 0.4; }
.sgis-tab.active { color: #fff; box-shadow: 0 2px 8px rgba(139, 92, 246, 0.25), inset 0 0 0 1px rgba(139, 92, 246, 0.5); }
.sgis-tab.active::before { opacity: 1; }
.sgis-tab > * { position: relative; z-index: 1; }
.sgis-tab svg { width: 13px; height: 13px; }
.sgis-body { flex: 1; overflow-y: auto; padding: 14px 12px; scrollbar-width: thin; scrollbar-color: rgba(139, 92, 246, 0.4) transparent; position: relative; z-index: 1; }
.sgis-body::-webkit-scrollbar { width: 6px; }
.sgis-body::-webkit-scrollbar-track { background: transparent; }
.sgis-body::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(139, 92, 246, 0.4), rgba(59, 130, 246, 0.4)); border-radius: 3px; }
.sgis-body::-webkit-scrollbar-thumb:hover { background: linear-gradient(180deg, rgba(139, 92, 246, 0.6), rgba(59, 130, 246, 0.6)); }
.sgis-state { text-align: center; padding: 40px 20px; color: var(--sgis-text-2); }
.sgis-retry-btn { padding: 7px 20px; font-size: 12px; font-weight: 600; border: 1px solid rgba(139, 92, 246, 0.4); border-radius: 7px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(59, 130, 246, 0.1)); color: #c4b5fd; cursor: pointer; transition: all 0.2s; }
.sgis-retry-btn:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(59, 130, 246, 0.2)); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 12px rgba(139, 92, 246, 0.25); }
.sgis-spinner { width: 36px; height: 36px; border: 3px solid rgba(139, 92, 246, 0.15); border-top-color: #8b5cf6; border-right-color: #3b82f6; border-radius: 50%; animation: sgis-spin 0.8s linear infinite; margin: 0 auto 12px; box-shadow: 0 0 16px rgba(139, 92, 246, 0.3); }
.sgis-error { color: var(--sgis-rose-text); }
.sgis-hero { position: relative; background: linear-gradient(135deg, rgba(102, 192, 244, 0.15) 0%, rgba(139, 92, 246, 0.1) 50%, var(--sgis-bg-2) 100%); border: 1px solid rgba(102, 192, 244, 0.28); border-radius: var(--sgis-radius); padding: 14px; margin-bottom: 12px; display: flex; gap: 12px; align-items: flex-start; overflow: hidden; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.18), inset 0 1px 0 rgba(255, 255, 255, 0.04); }
.sgis-hero::before { content: ""; position: absolute; top: -40px; right: -30px; width: 130px; height: 130px; background: radial-gradient(circle, rgba(102, 192, 244, 0.18) 0%, transparent 60%); pointer-events: none; }
.sgis-hero::after { content: ""; position: absolute; bottom: -30px; left: -30px; width: 100px; height: 100px; background: radial-gradient(circle, rgba(139, 92, 246, 0.15) 0%, transparent 60%); pointer-events: none; }
.sgis-hero-img { width: 132px; height: 50px; border-radius: 8px; object-fit: cover; flex-shrink: 0; background: rgba(0, 0, 0, 0.4); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3); position: relative; z-index: 1; border: 1px solid rgba(255, 255, 255, 0.06); }
.sgis-hero-info { flex: 1; min-width: 0; position: relative; z-index: 1; }
.sgis-hero-name { font-size: 15px; font-weight: 700; color: #fff; margin-bottom: 5px; line-height: 1.3; word-break: break-word; letter-spacing: 0.1px; }
.sgis-hero-meta { font-size: 11px; color: var(--sgis-text-2); display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.sgis-hero-meta b { color: var(--sgis-text); font-weight: 600; }
.sgis-hero-meta-pill { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px; background: rgba(102, 192, 244, 0.12); border: 1px solid rgba(102, 192, 244, 0.2); border-radius: 10px; font-size: 10px; color: #c4e7ff; font-weight: 600; }
.sgis-section { background: var(--sgis-card); border: 1px solid rgba(255, 255, 255, 0.04); border-radius: var(--sgis-radius-sm); padding: 11px 12px; margin-bottom: 10px; transition: border-color 0.25s ease, background 0.25s ease; }
.sgis-section:hover { border-color: rgba(139, 92, 246, 0.12); background: var(--sgis-card-hover); }
.sgis-section-title { font-size: 11px; font-weight: 700; color: #a78bfa; text-transform: uppercase; letter-spacing: 0.8px; margin-bottom: 9px; display: flex; align-items: center; gap: 6px; position: relative; padding-bottom: 6px; border-bottom: 1px solid rgba(139, 92, 246, 0.08); }
.sgis-section-title svg { width: 12px; height: 12px; color: #a78bfa; }
.sgis-row { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 12px; border-bottom: 1px dashed rgba(139, 92, 246, 0.08); }
.sgis-row:last-child { border-bottom: none; }
.sgis-row-key { color: var(--sgis-text-2); }
.sgis-row-val { color: var(--sgis-text); font-weight: 600; text-align: right; max-width: 60%; word-break: break-word; }
.sgis-row-val.discount { color: var(--sgis-green-text); }
.sgis-row-val.high { color: var(--sgis-rose-text); }
.sgis-tag-list { display: flex; flex-wrap: wrap; gap: 5px; }
.sgis-tag { padding: 3px 9px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.12), rgba(59, 130, 246, 0.06)); color: #c4b5fd; border-radius: 12px; font-size: 11px; font-weight: 600; border: 1px solid rgba(139, 92, 246, 0.18); transition: all 0.2s; }
.sgis-tag:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.22), rgba(59, 130, 246, 0.12)); border-color: rgba(139, 92, 246, 0.35); transform: translateY(-1px); }
.sgis-review-line { display: flex; align-items: center; gap: 6px; font-size: 12px; margin-bottom: 4px; }
.sgis-review-line:last-child { margin-bottom: 0; }
.sgis-review-line .sgis-review-label { color: var(--sgis-text-2); flex: 1; }
.sgis-review-line .sgis-review-val { font-weight: 600; }
.sgis-review-line .sgis-review-val.pos { color: var(--sgis-green-text); }
.sgis-review-line .sgis-review-val.neg { color: var(--sgis-rose-text); }
.sgis-review-line .sgis-review-val.mix { color: var(--sgis-amber-text); }
.sgis-thumb { display: inline-block; width: 14px; height: 14px; background: var(--sgis-rose); -webkit-mask: url("data:image/svg+xml;utf8,") center/contain no-repeat; mask: url("data:image/svg+xml;utf8,") center/contain no-repeat; }
.sgis-thumb.up { background: var(--sgis-green); }
.sgis-thumb.down { background: var(--sgis-rose); }
.sgis-links { display: flex; flex-wrap: wrap; gap: 5px; }
.sgis-link { padding: 5px 9px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.1), rgba(59, 130, 246, 0.06)); color: #c4b5fd; border-radius: 7px; font-size: 11px; font-weight: 600; text-decoration: none; border: 1px solid rgba(139, 92, 246, 0.2); transition: all 0.2s; }
.sgis-link:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(59, 130, 246, 0.12)); color: #fff; border-color: rgba(139, 92, 246, 0.4); transform: translateY(-1px); }
/* v2.9.83: 愿望单促销列表 */
.sgis-wl-sale-list { display: flex; flex-direction: column; gap: 4px; }
.sgis-wl-sale-item { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 6px 8px; background: rgba(244, 63, 94, 0.06); border: 1px solid rgba(244, 63, 94, 0.12); border-radius: 6px; text-decoration: none; transition: all 0.2s; }
.sgis-wl-sale-item:hover { background: rgba(244, 63, 94, 0.12); border-color: rgba(244, 63, 94, 0.25); transform: translateX(2px); }
.sgis-wl-sale-name { font-size: 11px; color: var(--sgis-text); font-weight: 600; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-wl-sale-price { display: flex; align-items: center; gap: 5px; flex-shrink: 0; }
.sgis-wl-sale-discount { font-size: 10px; font-weight: 700; color: #4ade80; background: rgba(74, 222, 128, 0.15); padding: 1px 5px; border-radius: 4px; }
.sgis-wl-sale-final { font-size: 11px; color: #4ade80; font-weight: 600; }
.sgis-wl-sale-orig { font-size: 10px; color: var(--sgis-text-2); text-decoration: line-through; }
/* v2.9.83: 游戏口味标签画像 */
.sgis-taste-section { margin-bottom: 12px; }
.sgis-taste-cloud { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.sgis-taste-tag { padding: 4px 10px; border-radius: 20px; font-size: 11px; font-weight: 600; cursor: default; transition: all 0.2s; border: 1px solid; }
.sgis-taste-tag:hover { transform: translateY(-1px); }
.sgis-taste-tag.t-xl { font-size: 13px; padding: 5px 13px; }
.sgis-taste-tag.t-lg { font-size: 12px; padding: 5px 12px; }
.sgis-taste-tag.t-md { font-size: 11px; }
.sgis-taste-tag.t-sm { font-size: 10px; opacity: 0.85; }
.sgis-taste-tag.genre { background: rgba(59, 130, 246, 0.12); color: #93c5fd; border-color: rgba(59, 130, 246, 0.22); }
.sgis-taste-tag.theme { background: rgba(139, 92, 246, 0.12); color: #c4b5fd; border-color: rgba(139, 92, 246, 0.22); }
.sgis-taste-tag.feature { background: rgba(16, 185, 129, 0.12); color: #6ee7b7; border-color: rgba(16, 185, 129, 0.22); }
.sgis-taste-tag.style { background: rgba(245, 158, 11, 0.12); color: #fbbf24; border-color: rgba(245, 158, 11, 0.22); }
.sgis-taste-bars { display: flex; flex-direction: column; gap: 6px; }
.sgis-taste-bar-row { display: flex; align-items: center; gap: 8px; font-size: 11px; }
.sgis-taste-bar-label { width: 80px; flex-shrink: 0; color: var(--sgis-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-taste-bar-track { flex: 1; height: 6px; background: rgba(255, 255, 255, 0.06); border-radius: 3px; overflow: hidden; }
.sgis-taste-bar-fill { height: 100%; border-radius: 3px; transition: width 0.4s ease; }
.sgis-taste-bar-val { flex-shrink: 0; text-align: right; color: var(--sgis-text-2); font-size: 10px; white-space: nowrap; }
.sgis-owned-hero { position: relative; background: linear-gradient(135deg, rgba(16, 185, 129, 0.18) 0%, rgba(20, 184, 166, 0.08) 50%, var(--sgis-bg-2) 100%); border: 1px solid rgba(16, 185, 129, 0.35); border-radius: var(--sgis-radius); padding: 6px 10px; margin-bottom: 8px; display: flex; align-items: center; gap: 8px; overflow: hidden; box-shadow: 0 4px 16px rgba(16, 185, 129, 0.1); }
.sgis-owned-hero::after { content: ""; position: absolute; top: -30px; right: -30px; width: 120px; height: 120px; background: radial-gradient(circle, rgba(16, 185, 129, 0.2) 0%, transparent 65%); pointer-events: none; }
.sgis-owned-hero > * { position: relative; z-index: 1; }
.sgis-owned-hero.shared { background: linear-gradient(135deg, rgba(139, 92, 246, 0.18) 0%, rgba(99, 102, 241, 0.08) 50%, var(--sgis-bg-2) 100%); border-color: rgba(139, 92, 246, 0.35); }
.sgis-owned-hero.shared::after { background: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 65%); }
.sgis-owned-hero.not-owned { background: linear-gradient(135deg, rgba(244, 63, 94, 0.15) 0%, rgba(244, 63, 94, 0.05) 50%, var(--sgis-bg-2) 100%); border-color: rgba(244, 63, 94, 0.35); }
.sgis-owned-hero.not-owned::after { background: radial-gradient(circle, rgba(244, 63, 94, 0.2) 0%, transparent 65%); }
.sgis-owned-icon { width: 24px; height: 24px; border-radius: 7px; background: linear-gradient(135deg, #10b981, #059669); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 13px; flex-shrink: 0; box-shadow: 0 2px 6px rgba(16, 185, 129, 0.4); }
.sgis-owned-hero.shared .sgis-owned-icon { background: linear-gradient(135deg, #8b5cf6, #6366f1); box-shadow: 0 2px 6px rgba(139, 92, 246, 0.4); }
.sgis-owned-hero.not-owned .sgis-owned-icon { background: linear-gradient(135deg, #f43f5e, #e11d48); box-shadow: 0 2px 6px rgba(244, 63, 94, 0.4); }
.sgis-owned-icon svg { width: 13px; height: 13px; stroke: #fff; fill: none; stroke-width: 2.4; }
/* v2.3.30: 压缩为单行——main+sub 内联,按钮直接挂在 hero 行尾 */
.sgis-owned-text-main { font-size: 12px; font-weight: 700; color: #fff; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-owned-text-sub { font-size: 10px; color: var(--sgis-text-2); font-weight: 400; margin-left: 5px; }
.sgis-owned-hero .sgis-btn { flex-shrink: 0; }
.sgis-btn { padding: 3px 9px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(59, 130, 246, 0.1)); border: 1px solid rgba(139, 92, 246, 0.3); color: #c4b5fd; border-radius: 6px; font-size: 10px; font-weight: 600; cursor: pointer; transition: all 0.2s; text-decoration: none; display: inline-flex; align-items: center; gap: 4px; }
.sgis-btn:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(59, 130, 246, 0.18)); border-color: rgba(139, 92, 246, 0.45); color: #fff; transform: translateY(-1px); box-shadow: 0 4px 10px rgba(139, 92, 246, 0.2); }
.sgis-btn svg { width: 11px; height: 11px; }
.sgis-stat-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; margin-bottom: 8px; }
.sgis-stat-box { background: linear-gradient(135deg, rgba(255, 255, 255, 0.04), rgba(255, 255, 255, 0.015)); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 7px; padding: 5px 4px; text-align: center; transition: all 0.2s; }
.sgis-stat-box:hover { border-color: rgba(139, 92, 246, 0.3); background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), rgba(59, 130, 246, 0.04)); }
.sgis-stat-box-val { font-size: 13px; font-weight: 700; color: #fff; line-height: 1.1; letter-spacing: -0.3px; }
.sgis-stat-box-lbl { font-size: 9px; color: var(--sgis-text-2); margin-top: 2px; }
.sgis-stat-box.playtime .sgis-stat-box-val { color: var(--sgis-purple-text); }
.sgis-stat-box.lastplay .sgis-stat-box-val { color: var(--sgis-blue); font-size: 12px; }
.sgis-owner-list { display: flex; flex-direction: column; gap: 4px; }
.sgis-owner-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 6px; font-size: 12px; }
.sgis-owner-item.me { border-color: rgba(16, 185, 129, 0.35); background: rgba(16, 185, 129, 0.08); }
.sgis-owner-item.sharer { border-color: rgba(139, 92, 246, 0.35); background: rgba(139, 92, 246, 0.08); }
.sgis-owner-avatar { width: 26px; height: 26px; border-radius: 8px; background: linear-gradient(135deg, #66c0f4, #3b82f6); display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; color: #fff; flex-shrink: 0; box-shadow: 0 2px 6px rgba(59, 130, 246, 0.3); border: 1px solid rgba(255, 255, 255, 0.1); }
.sgis-owner-info { flex: 1; min-width: 0; }
.sgis-owner-name { font-weight: 600; color: #fff; }
.sgis-owner-tag { font-size: 9px; padding: 1px 4px; border-radius: 3px; margin-left: 4px; font-weight: 600; }
.sgis-owner-tag.me { background: rgba(16, 185, 129, 0.25); color: var(--sgis-green-text); }
.sgis-owner-tag.sharer { background: rgba(139, 92, 246, 0.25); color: var(--sgis-purple-text); }
.sgis-owner-time { font-size: 10px; color: var(--sgis-text-2); }
.sgis-owner-playtime { font-size: 10px; color: var(--sgis-green-text, #4caf50); margin-top: 2px; }
.sgis-card-summary { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 10px; }
.sgis-card-stat { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 8px; padding: 6px; text-align: center; }
.sgis-card-stat-val { font-size: 14px; font-weight: 700; color: #fff; line-height: 1.2; }
.sgis-card-stat-lbl { font-size: 10px; color: var(--sgis-text-2); margin-top: 2px; }
.sgis-card-stat.sell .sgis-card-stat-val { color: var(--sgis-green-text); }
.sgis-card-stat.net .sgis-card-stat-val { color: var(--sgis-blue); }
.sgis-card-stat.buy .sgis-card-stat-val { color: var(--sgis-amber-text); }
.sgis-card-toggle { display: flex; gap: 0; border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 6px; overflow: hidden; margin-bottom: 8px; }
.sgis-card-toggle button { flex: 1; padding: 5px 8px; background: rgba(0, 0, 0, 0.25); border: none; border-right: 1px solid rgba(255, 255, 255, 0.08); color: var(--sgis-text-2); font-size: 11px; font-weight: 600; cursor: pointer; transition: all 0.2s; }
.sgis-card-toggle button:last-child { border-right: none; }
.sgis-card-toggle button:hover { background: rgba(59, 130, 246, 0.15); color: var(--sgis-text); }
.sgis-card-toggle button.active { background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(59, 130, 246, 0.2)); color: #fff; box-shadow: inset 0 0 0 1px rgba(139, 92, 246, 0.4); }
.sgis-card-item { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.04); border-radius: 7px; margin-bottom: 4px; transition: all 0.2s; cursor: pointer; text-decoration: none !important; color: inherit !important; position: relative; overflow: hidden; }
.sgis-card-item::before { content: ""; position: absolute; inset: 0; background-image: var(--sgis-card-bg, none); background-size: cover; background-position: center; opacity: 0.18; transition: opacity 0.3s ease; pointer-events: none; z-index: 0; }
.sgis-card-item:hover { background: rgba(139, 92, 246, 0.12); border-color: rgba(139, 92, 246, 0.3); transform: translateX(2px); box-shadow: 0 4px 12px rgba(139, 92, 246, 0.15); }
.sgis-card-item:hover::before { opacity: 0.28; }
.sgis-card-item > * { position: relative; z-index: 1; }
.sgis-card-icon { width: 40px; height: 40px; border-radius: 6px; background: rgba(0, 0, 0, 0.4); object-fit: cover; flex-shrink: 0; border: 1px solid rgba(255, 255, 255, 0.08); box-shadow: 0 2px 6px rgba(0, 0, 0, 0.25); }
.sgis-card-icon-fallback { display: flex; align-items: center; justify-content: center; color: var(--sgis-text-2); background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(59, 130, 246, 0.08)); padding: 4px; }
.sgis-card-icon-fallback svg { width: 100%; height: 100%; display: block; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.3)); }
.sgis-card-info { flex: 1; min-width: 0; overflow: hidden; }
.sgis-card-name { font-size: 12px; font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; display: flex; align-items: center; gap: 4px; }
.sgis-card-prices { font-size: 11px; color: var(--sgis-text-2); display: flex; gap: 8px; margin-top: 2px; }
.sgis-card-prices .sell { color: var(--sgis-green-text); font-weight: 600; }
.sgis-card-prices .buy { color: var(--sgis-amber-text); font-weight: 600; }
.sgis-card-badge { font-size: 9px; padding: 1px 4px; border-radius: 3px; background: rgba(139, 92, 246, 0.2); color: var(--sgis-purple-text); font-weight: 700; flex-shrink: 0; }
.sgis-card-badge.foil { background: linear-gradient(135deg, rgba(245, 158, 11, 0.3), rgba(217, 119, 6, 0.2)); color: var(--sgis-amber-text); border: 1px solid rgba(245, 158, 11, 0.3); }
.sgis-price-table { display: flex; flex-direction: column; gap: 4px; }
.sgis-price-row { display: flex; align-items: center; padding: 7px 8px; background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 7px; transition: all 0.2s; font-size: 12px; gap: 8px; }
.sgis-price-row:hover { background: rgba(59, 130, 246, 0.1); border-color: rgba(59, 130, 246, 0.25); transform: translateX(2px); }
.sgis-price-row.lowest { background: linear-gradient(135deg, rgba(164, 208, 7, 0.15), rgba(132, 204, 22, 0.08)); border-color: rgba(164, 208, 7, 0.45); box-shadow: 0 2px 8px rgba(164, 208, 7, 0.1); }
.sgis-price-row.user-region { border-left: 3px solid var(--sgis-blue); }
.sgis-price-flag { width: 30px; height: 20px; border-radius: 2px; object-fit: cover; flex-shrink: 0; box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.1); background: rgba(255, 255, 255, 0.05); }
.sgis-price-row.lowest .sgis-price-flag { box-shadow: 0 0 0 2px #a4d007, 0 0 8px rgba(164, 208, 7, 0.4); }
.sgis-price-code { font-size: 10px; font-weight: 700; color: var(--sgis-text-2); letter-spacing: 0.5px; flex-shrink: 0; min-width: 26px; }
.sgis-price-row.lowest .sgis-price-code { color: #a4d007; }
.sgis-price-featured { background: linear-gradient(135deg, rgba(164, 208, 7, 0.22) 0%, rgba(132, 204, 22, 0.1) 50%, rgba(101, 163, 13, 0.05) 100%); border: 1.5px solid rgba(164, 208, 7, 0.55); border-radius: var(--sgis-radius); padding: 12px; margin-bottom: 10px; display: flex; align-items: center; gap: 10px; position: relative; overflow: hidden; box-shadow: 0 4px 16px rgba(164, 208, 7, 0.15); }
.sgis-price-featured::before { content: ""; position: absolute; top: -30px; right: -30px; width: 120px; height: 120px; background: radial-gradient(circle, rgba(164, 208, 7, 0.25) 0%, transparent 65%); pointer-events: none; }
.sgis-price-featured > * { position: relative; z-index: 1; }
.sgis-price-featured::after { content: "最低价"; position: absolute; top: 6px; right: 8px; font-size: 9px; background: linear-gradient(135deg, #a4d007, #65a30d); color: #fff; padding: 2px 6px; border-radius: 3px; font-weight: 700; letter-spacing: 0.5px; }
.sgis-price-featured-img { width: 48px; height: 32px; border-radius: 4px; object-fit: cover; flex-shrink: 0; box-shadow: 0 0 0 1.5px rgba(164, 208, 7, 0.5); }
.sgis-price-featured-info { flex: 1; min-width: 0; }
.sgis-price-featured-region { font-size: 13px; font-weight: 700; color: #fff; display: flex; align-items: center; gap: 6px; }
.sgis-price-featured-region .sgis-price-featured-cny { font-size: 11px; color: #a4d007; font-weight: 600; }
.sgis-price-featured-original { font-size: 10px; color: var(--sgis-text-2); text-decoration: line-through; margin-right: 4px; }
.sgis-price-featured-discount { background: #a4d007; color: #fff; padding: 1px 4px; border-radius: 3px; font-size: 9px; font-weight: 700; margin-left: 4px; }
.sgis-price-region { flex: 1; color: var(--sgis-text); min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-price-region b { color: #fff; font-weight: 600; }
.sgis-price-region .sgis-user-tag { font-size: 9px; padding: 1px 4px; border-radius: 3px; background: rgba(102, 192, 244, 0.2); color: var(--sgis-blue); margin-left: 4px; }
.sgis-price-original { color: var(--sgis-text-2); text-decoration: line-through; font-size: 11px; margin-right: 4px; }
.sgis-price-value { text-align: right; display: flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.sgis-price-local { font-size: 12px; color: var(--sgis-text); font-weight: 600; }
.sgis-price-cny { font-size: 11px; color: var(--sgis-green-text); font-weight: 600; }
.sgis-price-row.lowest .sgis-price-cny { font-size: 12px; }
.sgis-price-discount { background: var(--sgis-green); color: #fff; padding: 1px 5px; border-radius: 3px; font-size: 10px; font-weight: 700; margin-left: 4px; }
@media (max-width: 600px) { #sgis-fab.sgis-open { display: none !important; }
:root { --sgis-w: 100vw !important; }
}
/* v2.3.14: 移除 body.sgis-open { overflow: hidden !important; } —— 个人信息面板为 position:fixed 侧边栏,
无需锁定主页面滚动;仅在移动端面板全屏覆盖时锁定 body 滚动,避免背后页面误滚动 */
@media (max-width: 600px) { body.sgis-open { overflow: hidden !important; } }
body.sgis-open #sf-wf-overlay { right: var(--sgis-w, 440px) !important; left: 0 !important; width: calc(100vw - var(--sgis-w, 440px)) !important; transition: opacity .35s ease, visibility .35s ease, right 0.4s cubic-bezier(0.4, 0, 0.2, 1), width 0.4s cubic-bezier(0.4, 0, 0.2, 1) !important; }
body.sgis-open #sf-wf-overlay .sf-wf-header { left: 0 !important; width: 100% !important; }
body.sgis-open #sf-wf-overlay .sf-wf-body { max-width: calc(100vw - var(--sgis-w, 440px) - 48px) !important; margin: 0 !important; padding-left: 24px !important; }
body.sgis-open #sf-wf-overlay .sf-wf-grid { justify-content: flex-start !important; }
body.sgis-open #sf-waterfall-btn, body.sgis-open #sf-friend-btn, body.sgis-open #sf-library-btn, body.sgis-open #sf-settings-btn, body.sgis-open #sf-top-btn { right: calc(30px + var(--sgis-w, 440px)) !important; }
@media (max-width: 600px) { body.sgis-open #sf-wf-overlay { right: 0 !important; width: 100vw !important; }
body.sgis-open #sf-wf-overlay .sf-wf-body { max-width: none !important; padding-left: 12px !important; }
body.sgis-open #sf-waterfall-btn, body.sgis-open #sf-friend-btn, body.sgis-open #sf-library-btn, body.sgis-open #sf-settings-btn, body.sgis-open #sf-top-btn { right: 16px !important; }
}
body:has(#sf-wf-overlay.sf-wf-open) #sgis-fab { display: none !important; }
/* v2.3.26: 愿望单页面隐藏浮动按钮,让 Wishlist Exporter 侧边栏独占 */
body:has(#swe-panel) #sgis-fab { display: none !important; }
.sgis-family-share-row { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; margin: 6px 0; font-size: 12px; font-weight: 600; }
.sgis-family-share-row.supported { background: rgba(76, 175, 80, 0.12); border: 1px solid rgba(76, 175, 80, 0.3); color: var(--sgis-green-text, #4caf50); }
.sgis-family-share-row.unsupported { background: rgba(244, 67, 54, 0.1); border: 1px solid rgba(244, 67, 54, 0.25); color: #f44336; }
.sgis-family-share-icon { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; }
.sgis-family-share-row.supported .sgis-family-share-icon { background: rgba(76, 175, 80, 0.3); }
.sgis-family-share-row.unsupported .sgis-family-share-icon { background: rgba(244, 67, 54, 0.3); }
.sgis-family-share-row.sharing { background: rgba(139, 92, 246, 0.12); border: 1px solid rgba(139, 92, 246, 0.3); color: #a78bfa; }
.sgis-family-share-row.sharing .sgis-family-share-icon { background: rgba(139, 92, 246, 0.3); }
.sgis-family-share-source { margin-left: auto; font-size: 9px; opacity: 0.5; font-weight: 400; }
.sgis-workshop-row { display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 6px; margin: 6px 0; font-size: 12px; font-weight: 600; }
.sgis-workshop-row.supported { background: rgba(102, 192, 244, 0.12); border: 1px solid rgba(102, 192, 244, 0.3); color: #66c0f4; }
.sgis-workshop-row.unsupported { background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.08); color: var(--sgis-text-2); }
.sgis-workshop-icon { width: 18px; height: 18px; border-radius: 50%; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-workshop-icon svg { width: 12px; height: 12px; }
.sgis-workshop-row.supported .sgis-workshop-icon { background: rgba(102, 192, 244, 0.3); }
.sgis-workshop-row.unsupported .sgis-workshop-icon { background: rgba(255, 255, 255, 0.08); }
.sgis-workshop-link { margin-left: auto; font-size: 10px; font-weight: 600; color: inherit; text-decoration: none; padding: 2px 8px; border-radius: 4px; background: rgba(255, 255, 255, 0.08); transition: all 0.2s; }
.sgis-workshop-link:hover { background: rgba(255, 255, 255, 0.16); }
.sgis-category-list { display: flex; flex-wrap: wrap; gap: 5px; }
.sgis-category-pill { padding: 3px 9px; background: rgba(255, 255, 255, 0.05); color: var(--sgis-text); border-radius: 12px; font-size: 11px; font-weight: 600; border: 1px solid rgba(255, 255, 255, 0.08); transition: all 0.2s; }
.sgis-category-pill:hover { background: rgba(255, 255, 255, 0.1); border-color: rgba(255, 255, 255, 0.16); }
.sgis-category-pill.highlight { background: linear-gradient(135deg, rgba(102, 192, 244, 0.18), rgba(59, 130, 246, 0.1)); color: #c4e7ff; border-color: rgba(102, 192, 244, 0.32); }
.sgis-category-pill.highlight:hover { background: linear-gradient(135deg, rgba(102, 192, 244, 0.28), rgba(59, 130, 246, 0.18)); border-color: rgba(102, 192, 244, 0.48); }
.sgis-screenshot-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 5px; }
.sgis-screenshot-item { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 5px; overflow: hidden; background: rgba(0, 0, 0, 0.3); cursor: pointer; transition: transform 0.2s; }
.sgis-screenshot-item:hover { transform: scale(1.03); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); }
.sgis-screenshot-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgis-screenshot-item img[data-src] { opacity: 0; transition: opacity 0.3s; }
.sgis-screenshot-item img.loaded { opacity: 1; }
.sgis-screenshot-more { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.65); color: #fff; font-size: 14px; font-weight: 700; }
.sgis-package-list { display: flex; flex-direction: column; gap: 5px; }
.sgis-package-item { display: flex; align-items: center; gap: 8px; padding: 7px 9px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 6px; font-size: 11px; transition: all 0.2s; }
.sgis-package-item:hover { background: rgba(255, 255, 255, 0.06); border-color: rgba(102, 192, 244, 0.18); }
.sgis-package-name { flex: 1; min-width: 0; color: var(--sgis-text); font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-package-price { font-weight: 700; color: var(--sgis-green-text); white-space: nowrap; flex-shrink: 0; }
.sgis-package-price.free { color: #66c0f4; }
.sgis-package-flag { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 9px; font-weight: 700; flex-shrink: 0; }
.sgis-package-flag.free { background: rgba(102, 192, 244, 0.18); color: #66c0f4; }
.sgis-package-flag.discount { background: rgba(76, 175, 80, 0.18); color: #4caf50; }
.sgis-meta-chip { display: inline-flex; align-items: center; gap: 4px; padding: 2px 7px; background: rgba(255, 255, 255, 0.05); border: 1px solid rgba(255, 255, 255, 0.08); border-radius: 10px; font-size: 10px; color: var(--sgis-text-2); font-weight: 600; }
.sgis-meta-chip svg { width: 10px; height: 10px; }
.sgis-meta-chip.pos { color: var(--sgis-green-text); border-color: rgba(76, 175, 80, 0.25); background: rgba(76, 175, 80, 0.08); }
.sgis-meta-chip.neg { color: var(--sgis-rose-text); border-color: rgba(244, 63, 94, 0.25); background: rgba(244, 63, 94, 0.06); }
.sgis-meta-chip.warn { color: var(--sgis-amber-text); border-color: rgba(255, 152, 0, 0.25); background: rgba(255, 152, 0, 0.08); }
/* v2.3.17: 年龄限制标识 */
.sgis-age-badge { display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 700; white-space: nowrap; }
.sgis-age-badge svg { width: 12px; height: 12px; }
.sgis-age-badge.unrestricted { background: rgba(76, 175, 80, 0.12); color: var(--sgis-green-text); border: 1px solid rgba(76, 175, 80, 0.25); }
.sgis-age-badge.restricted { background: rgba(244, 63, 94, 0.12); color: var(--sgis-rose-text); border: 1px solid rgba(244, 63, 94, 0.3); }
.sgis-age-badge.mature { background: rgba(255, 152, 0, 0.12); color: var(--sgis-amber-text); border: 1px solid rgba(255, 152, 0, 0.3); }
.sgis-content-note { margin-top: 4px; padding: 5px 8px; background: rgba(244, 63, 94, 0.06); border-left: 2px solid rgba(244, 63, 94, 0.4); border-radius: 0 4px 4px 0; font-size: 10px; color: var(--sgis-rose-text); line-height: 1.4; }
/* v2.3.17: DLC 列表 */
.sgis-dlc-list { display: flex; flex-direction: column; gap: 5px; }
.sgis-dlc-item { display: flex; align-items: center; gap: 8px; padding: 6px 9px; background: rgba(255, 255, 255, 0.03); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 6px; font-size: 11px; transition: all 0.2s; text-decoration: none; color: var(--sgis-text); }
.sgis-dlc-item:hover { background: rgba(102, 192, 244, 0.08); border-color: rgba(102, 192, 244, 0.22); transform: translateX(2px); }
.sgis-dlc-id { font-family: ui-monospace, 'SF Mono', Menlo, Consolas, monospace; font-size: 10px; color: var(--sgis-text-2); background: rgba(255, 255, 255, 0.05); padding: 1px 6px; border-radius: 3px; flex-shrink: 0; }
.sgis-dlc-name { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 600; }
.sgis-dlc-name.loading { color: var(--sgis-text-2); font-weight: 400; font-style: italic; }
.sgis-dlc-arrow { color: var(--sgis-text-2); font-size: 10px; flex-shrink: 0; }
.sgis-dlc-item:hover .sgis-dlc-arrow { color: #66c0f4; }
/* v2.3.17: 预告片 */
.sgis-movie-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; }
.sgis-movie-item { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 5px; overflow: hidden; background: rgba(0, 0, 0, 0.3); cursor: pointer; transition: transform 0.2s; }
.sgis-movie-item:hover { transform: scale(1.02); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); }
.sgis-movie-item img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgis-movie-play { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: rgba(0, 0, 0, 0.4); transition: background 0.2s; }
.sgis-movie-play svg { width: 28px; height: 28px; color: #fff; filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.6)); }
.sgis-movie-item:hover .sgis-movie-play { background: rgba(0, 0, 0, 0.25); }
.sgis-movie-name { position: absolute; bottom: 0; left: 0; right: 0; padding: 4px 6px; background: linear-gradient(transparent, rgba(0, 0, 0, 0.85)); color: #fff; font-size: 10px; font-weight: 600; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
/* v2.3.17: 语言标签 */
.sgis-lang-list { display: flex; flex-wrap: wrap; gap: 4px; }
.sgis-lang-pill { padding: 2px 7px; background: rgba(255, 255, 255, 0.04); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 10px; font-size: 10px; color: var(--sgis-text-2); font-weight: 600; }
.sgis-lang-pill.audio { background: rgba(102, 192, 244, 0.1); border-color: rgba(102, 192, 244, 0.22); color: #c4e7ff; }
.sgis-lang-more { padding: 2px 7px; font-size: 10px; color: var(--sgis-text-2); font-weight: 600; align-self: center; }
/* v2.3.17: 免费游戏标识 */
.sgis-free-badge { display: inline-flex; align-items: center; gap: 3px; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; background: rgba(102, 192, 244, 0.15); color: #66c0f4; border: 1px solid rgba(102, 192, 244, 0.3); }
.sgis-history-lowest { background: linear-gradient(135deg, rgba(164, 208, 7, 0.18) 0%, rgba(101, 163, 13, 0.06) 50%, var(--sgis-bg-2) 100%); border: 1px solid rgba(164, 208, 7, 0.35); border-radius: var(--sgis-radius-sm); padding: 11px 12px; margin-bottom: 8px; display: flex; align-items: center; gap: 10px; position: relative; overflow: hidden; box-shadow: 0 2px 8px rgba(164, 208, 7, 0.08); }
.sgis-history-lowest::after { content: ""; position: absolute; top: -20px; right: -20px; width: 100px; height: 100px; background: radial-gradient(circle, rgba(164, 208, 7, 0.2) 0%, transparent 60%); pointer-events: none; }
.sgis-history-lowest > * { position: relative; z-index: 1; }
.sgis-history-lowest-label { font-size: 10px; color: var(--sgis-text-2); font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.sgis-history-lowest-val { font-size: 18px; font-weight: 700; color: #a4d007; }
.sgis-history-lowest-store { font-size: 11px; color: var(--sgis-text-2); }
.sgis-history-lowest-date { font-size: 10px; color: var(--sgis-text-2); margin-left: auto; }
.sgis-history-list { display: flex; flex-direction: column; gap: 3px; }
.sgis-history-row { display: flex; align-items: center; gap: 8px; padding: 5px 8px; background: rgba(255, 255, 255, 0.02); border-radius: 5px; font-size: 11px; }
.sgis-history-date { color: var(--sgis-text-2); min-width: 70px; }
.sgis-history-price { color: #fff; font-weight: 600; flex: 1; }
.sgis-history-store { color: var(--sgis-text-2); font-size: 10px; }
.sgis-history-cut { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 10px; font-weight: 700; color: #b4d007; background: rgba(180, 208, 7, 0.15); min-width: 36px; text-align: center; }
.sgis-history-days { font-size: 10px; color: var(--sgis-text-2); white-space: nowrap; }
.sgis-discount-summary { display: flex; flex-wrap: wrap; gap: 4px; padding: 8px; background: rgba(255, 255, 255, 0.02); border-radius: 5px; margin-bottom: 6px; }
.sgis-discount-badge { display: inline-flex; align-items: center; gap: 3px; padding: 2px 7px; border-radius: 3px; font-size: 10px; font-weight: 600; color: #b4d007; background: rgba(180, 208, 7, 0.1); border: 1px solid rgba(180, 208, 7, 0.2); }
.sgis-discount-badge-days { font-size: 9px; color: var(--sgis-text-2); font-weight: 400; }
.sgis-predict-btn { display: flex; align-items: center; gap: 6px; padding: 9px 16px; border: 1px solid rgba(139, 92, 246, 0.4); border-radius: 8px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(59, 130, 246, 0.1)); color: #c4b5fd; font-size: 12px; font-weight: 600; cursor: pointer; transition: all 0.2s; width: 100%; justify-content: center; position: relative; overflow: hidden; }
.sgis-predict-btn::before { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.15), transparent); transform: translateX(-100%); transition: transform 0.6s ease; }
.sgis-predict-btn:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.3), rgba(59, 130, 246, 0.18)); color: #fff; box-shadow: 0 4px 14px rgba(139, 92, 246, 0.3); transform: translateY(-1px); }
.sgis-predict-btn:hover::before { transform: translateX(100%); }
.sgis-predict-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.sgis-predict-btn svg { width: 14px; height: 14px; position: relative; z-index: 1; }
.sgis-predict-btn > * { position: relative; z-index: 1; }
.sgis-predict-section { margin-top: 12px; padding: 12px; background: linear-gradient(135deg, rgba(102,192,244,0.06), rgba(76,175,80,0.04)); border: 1px solid rgba(102,192,244,0.15); border-radius: 10px; }
.sgis-predict-model { padding: 10px; margin-bottom: 8px; background: rgba(255,255,255,0.03); border-radius: 8px; border-left: 3px solid var(--sglv-accent); }
.sgis-predict-model:last-child { margin-bottom: 0; }
.sgis-predict-model-title { font-size: 12px; font-weight: 700; color: var(--sglv-accent); margin-bottom: 6px; display: flex; align-items: center; justify-content: space-between; }
.sgis-predict-model-conf { display: inline-block; padding: 1px 8px; border-radius: 10px; font-size: 10px; font-weight: 700; }
.sgis-predict-model-conf.high { background: rgba(76,175,80,0.2); color: #66bb6a; }
.sgis-predict-model-conf.mid { background: rgba(255,152,0,0.2); color: #ffa726; }
.sgis-predict-model-conf.low { background: rgba(244,67,54,0.2); color: #ef5350; }
.sgis-predict-detail { font-size: 11px; color: var(--sgis-text-2); line-height: 1.6; }
.sgis-predict-detail b { color: #fff; }
.sgis-predict-price { color: #b4d007; font-weight: 700; font-size: 13px; }
.sgis-predict-date { color: var(--sglv-accent); font-weight: 600; }
.sgis-predict-sale { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; margin-left: 4px; }
.sgis-predict-sale.seasonal { background: rgba(244,67,54,0.15); color: #ef5350; }
.sgis-predict-sale.festival { background: rgba(76,175,80,0.15); color: #66bb6a; }
.sgis-predict-rec { margin-top: 8px; padding: 10px; background: rgba(76,175,80,0.08); border-radius: 8px; border: 1px solid rgba(76,175,80,0.15); font-size: 11px; line-height: 1.6; color: #c8e6c9; }
.sgis-predict-rec b { color: #66bb6a; }
.sgis-predict-modes-label { font-size: 10px; color: var(--sgis-text-2); margin-top: 6px; text-align: center; }
.sglv-predict-mode-item { display: flex; align-items: flex-start; gap: 8px; padding: 8px 10px; margin-bottom: 6px; background: rgba(255,255,255,0.02); border-radius: 6px; cursor: pointer; transition: background 0.15s; }
.sglv-predict-mode-item:hover { background: rgba(255,255,255,0.05); }
.sglv-predict-mode-item input[type="checkbox"] { margin-top: 2px; accent-color: var(--sglv-accent); cursor: pointer; flex-shrink: 0; }
.sglv-predict-mode-info { flex: 1; min-width: 0; }
.sglv-predict-mode-name { font-size: 12px; font-weight: 600; color: var(--sglv-text); }
.sglv-predict-mode-desc { font-size: 10px; color: var(--sglv-text-secondary); margin-top: 2px; line-height: 1.4; }
.sgis-profile-main-card { position: relative; border-radius: 18px; overflow: hidden; margin-bottom: 10px; background: linear-gradient(160deg, #1a1633 0%, #16142b 40%, #0f0d20 100%); box-shadow: 0 10px 40px rgba(0, 0, 0, 0.45), 0 0 0 1px rgba(139, 92, 246, 0.15); padding: 18px 16px 16px; }
.sgis-profile-main-card::before { content: ""; position: absolute; top: -50px; right: -40px; width: 180px; height: 180px; background: radial-gradient(circle, rgba(139, 92, 246, 0.4) 0%, transparent 60%); pointer-events: none; z-index: 0; }
.sgis-profile-main-card::after { content: ""; position: absolute; bottom: -1px; left: 10%; right: 10%; height: 1.5px; background: linear-gradient(90deg, transparent 0%, rgba(139, 92, 246, 0.6) 50%, transparent 100%); pointer-events: none; z-index: 1; }
.sgis-profile-main-card-bg { position: absolute; top: 50%; right: -12px; transform: translateY(-50%); width: 180px; height: 180px; background: url('https://leanisssharedstorage.blob.core.windows.net/copilot/asdm-files/game-library.png') no-repeat center center; background-size: contain; opacity: 0.18; pointer-events: none; z-index: 0; filter: saturate(1.2) drop-shadow(0 0 20px rgba(139, 92, 246, 0.25)); mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 40%, rgba(0,0,0,1) 100%); -webkit-mask-image: linear-gradient(90deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 40%, rgba(0,0,0,1) 100%); }
.sgis-profile-head { position: relative; z-index: 2; display: flex; align-items: center; gap: 14px; margin-bottom: 16px; }
.sgis-profile-avatar-wrap { position: relative; flex-shrink: 0; }
.sgis-profile-avatar { width: 80px; height: 80px; border-radius: 22px; border: 2px solid rgba(102, 192, 244, 0.5); background: #1b2838; display: block; object-fit: cover; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.4), 0 0 0 4px rgba(102, 192, 244, 0.08); }
.sgis-profile-avatar-badge { position: absolute; right: -8px; bottom: -8px; min-width: 38px; height: 28px; padding: 0 8px; border-radius: 14px; background: linear-gradient(135deg, #8b5cf6 0%, #6366f1 50%, #3b82f6 100%); color: #fff; font-size: 12px; font-weight: 800; display: flex; align-items: center; justify-content: center; box-shadow: 0 4px 12px rgba(139, 92, 246, 0.5), 0 0 0 3px #16142b; letter-spacing: 0.3px; }
.sgis-profile-level-badge { display: inline-flex; align-items: center; justify-content: center; height: 22px; padding: 0 8px; border-radius: 11px; background: linear-gradient(135deg, #f59e0b 0%, #f97316 100%); color: #fff; font-size: 11px; font-weight: 800; flex-shrink: 0; box-shadow: 0 2px 6px rgba(249, 115, 22, 0.4); letter-spacing: 0.2px; }
.sgis-profile-info { flex: 1; min-width: 0; }
.sgis-profile-name-row { display: flex; align-items: center; gap: 8px; margin-bottom: 4px; }
.sgis-profile-name { font-size: 19px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; letter-spacing: 0.2px; line-height: 1.2; }
.sgis-profile-verified { width: 20px; height: 20px; border-radius: 6px; background: linear-gradient(135deg, #8b5cf6, #3b82f6); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: 0 2px 6px rgba(139, 92, 246, 0.4); }
.sgis-profile-verified svg { width: 12px; height: 12px; color: #fff; }
.sgis-profile-steamid-row { display: flex; align-items: center; gap: 2px; min-width: 0; }
.sgis-profile-steamid { font-size: 11px; color: rgba(148, 163, 184, 0.9); font-family: "SF Mono", "Monaco", "Consolas", monospace; letter-spacing: 0.3px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sgis-copy-btn { background: transparent; border: none; color: rgba(148, 163, 184, 0.7); cursor: pointer; padding: 2px 5px; border-radius: 4px; transition: all 0.15s; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-copy-btn:hover { background: rgba(255, 255, 255, 0.1); color: #fff; }
.sgis-copy-btn svg { width: 12px; height: 12px; }
/* v2.3.27: 好友数量进度环(参考 steam-friend-manager 个人卡片仪表) */
.sgis-friend-gauge { display: flex; flex-direction: column; align-items: center; gap: 0; margin-left: auto; flex-shrink: 0; position: relative; cursor: pointer; padding: 3px 4px; border-radius: 10px; transition: background 0.15s; }
.sgis-friend-gauge:hover { background: rgba(255, 255, 255, 0.05); }
.sgis-friend-gauge svg { display: block; }
.sgis-friend-gauge-text { font-size: 12px; color: #e2e8f0; margin-top: -27px; pointer-events: none; display: flex; align-items: baseline; gap: 3px; white-space: nowrap; }
.sgis-friend-gauge-text b { font-size: 16px; font-weight: 800; color: #10b981; line-height: 1; }
.sgis-friend-gauge-text span { font-size: 10px; color: rgba(148, 163, 184, 0.85); font-weight: 600; }
.sgis-friend-gauge-lbl { font-size: 9px; color: rgba(148, 163, 184, 0.85); font-weight: 600; text-transform: uppercase; letter-spacing: 0.3px; margin-top: 2px; pointer-events: none; }
.sgis-profile-stats { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; position: relative; z-index: 2; }
.sgis-profile-stats.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 4px; }
.sgis-profile-stats.cols-5 .sgis-profile-stat { padding: 10px 3px 8px; border-radius: 12px; }
.sgis-profile-stats.cols-5 .sgis-profile-stat-icon { width: 26px; height: 26px; margin: 0 auto 5px; border-radius: 7px; }
.sgis-profile-stats.cols-5 .sgis-profile-stat-icon svg { width: 14px; height: 14px; }
.sgis-profile-stats.cols-5 .sgis-profile-stat-val { font-size: 15px; }
.sgis-profile-stats.cols-5 .sgis-profile-stat-label { font-size: 8px; margin-top: 3px; }
.sgis-profile-stat { position: relative; padding: 12px 6px 10px; background: linear-gradient(160deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 14px; text-align: center; transition: all 0.25s; overflow: hidden; }
.sgis-profile-stat::after { content: ""; position: absolute; top: 0; left: 50%; transform: translateX(-50%); width: 40%; height: 1px; background: linear-gradient(90deg, transparent, currentColor, transparent); opacity: 0.35; }
.sgis-profile-stat:hover { border-color: rgba(139, 92, 246, 0.3); background: linear-gradient(160deg, rgba(139, 92, 246, 0.08) 0%, rgba(59, 130, 246, 0.03) 100%); transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0, 0, 0, 0.3); }
.sgis-profile-stat.clickable { cursor: pointer; }
.sgis-profile-stat.clickable:active { transform: translateY(0); }
.sgis-profile-stat-icon { width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; margin: 0 auto 8px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(59, 130, 246, 0.08)); border-radius: 9px; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04); }
.sgis-profile-stat-icon svg { width: 16px; height: 16px; color: #c4b5fd; }
.sgis-profile-stat-icon.t-blue { background: linear-gradient(135deg, rgba(59, 130, 246, 0.22), rgba(37, 99, 235, 0.08)); }
.sgis-profile-stat-icon.t-blue svg { color: #93c5fd; }
.sgis-profile-stat-icon.t-purple { background: linear-gradient(135deg, rgba(168, 85, 247, 0.22), rgba(139, 92, 246, 0.08)); }
.sgis-profile-stat-icon.t-purple svg { color: #c4b5fd; }
.sgis-profile-stat-icon.t-cyan { background: linear-gradient(135deg, rgba(6, 182, 212, 0.22), rgba(8, 145, 178, 0.08)); }
.sgis-profile-stat-icon.t-cyan svg { color: #67e8f9; }
.sgis-profile-stat-icon.t-green { background: linear-gradient(135deg, rgba(16, 185, 129, 0.22), rgba(5, 150, 105, 0.08)); }
.sgis-profile-stat-icon.t-green svg { color: #6ee7b7; }
.sgis-profile-stat-icon.t-rose { background: linear-gradient(135deg, rgba(244, 63, 94, 0.22), rgba(190, 18, 60, 0.08)); }
.sgis-profile-stat-icon.t-rose svg { color: #fda4af; }
.sgis-profile-stat-val { font-size: 18px; font-weight: 700; color: #fff; line-height: 1.15; letter-spacing: -0.3px; }
.sgis-profile-stat-val.t-blue { color: #93c5fd; }
.sgis-profile-stat-val.t-purple { color: #c4b5fd; }
.sgis-profile-stat-val.t-cyan { color: #67e8f9; }
.sgis-profile-stat-val.t-green { color: #6ee7b7; }
.sgis-profile-stat-val.t-rose { color: #fda4af; }
.sgis-profile-stat-label { font-size: 9px; color: var(--sgis-text-2); margin-top: 4px; font-weight: 500; letter-spacing: 0.4px; text-transform: uppercase; }
@media (max-width: 600px) { .sgis-profile-stats { grid-template-columns: repeat(2, 1fr); } .sgis-profile-stats.cols-5 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.sgis-xp-card { position: relative; padding: 14px 16px 12px; background: linear-gradient(160deg, rgba(255, 255, 255, 0.035) 0%, rgba(15, 17, 35, 0.5) 100%); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 14px; margin-bottom: 10px; overflow: hidden; }
.sgis-xp-card::before { content: ""; position: absolute; bottom: -1px; left: 10%; right: 10%; height: 1.5px; background: linear-gradient(90deg, transparent 0%, rgba(245, 158, 11, 0.6) 50%, transparent 100%); pointer-events: none; }
.sgis-xp-head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.sgis-xp-title { display: flex; align-items: center; gap: 7px; font-size: 13px; font-weight: 600; color: #fff; }
.sgis-xp-title-icon { width: 22px; height: 22px; border-radius: 6px; background: linear-gradient(135deg, #fbbf24, #f59e0b); display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(245, 158, 11, 0.4); }
.sgis-xp-title-icon svg { width: 13px; height: 13px; color: #fff; }
.sgis-xp-levels { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; }
.sgis-xp-levels .cur { color: #fbbf24; font-size: 13px; }
.sgis-xp-levels .arrow { color: var(--sgis-text-2); font-size: 13px; }
.sgis-xp-levels .next { color: #c4b5fd; }
.sgis-xp-bar { position: relative; height: 8px; background: rgba(255, 255, 255, 0.06); border-radius: 5px; overflow: hidden; margin-bottom: 7px; }
.sgis-xp-bar-fill { position: relative; height: 100%; background: linear-gradient(90deg, #fbbf24 0%, #f97316 50%, #ea580c 100%); border-radius: 5px; box-shadow: 0 0 12px rgba(245, 158, 11, 0.4); transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1); }
.sgis-xp-bar-fill::after { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, rgba(255, 255, 255, 0.3), transparent); border-radius: 5px 5px 0 0; }
.sgis-xp-meta { display: flex; justify-content: space-between; align-items: center; font-size: 10px; }
.sgis-xp-current { color: #fbbf24; font-weight: 600; }
.sgis-xp-current b { font-weight: 700; }
.sgis-xp-percent { color: var(--sgis-text-2); font-weight: 600; }
.sgis-xp-footer { display: flex; justify-content: space-between; align-items: center; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255, 255, 255, 0.04); font-size: 10px; color: var(--sgis-text-2); }
.sgis-xp-total b { color: #c4b5fd; font-weight: 700; font-size: 12px; }
.sgis-feature-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 10px; margin-bottom: 10px; }
@media (max-width: 600px) { .sgis-feature-grid { grid-template-columns: 1fr; }
}
.sgis-feature-card { position: relative; padding: 14px 12px 12px; background: linear-gradient(160deg, rgba(139, 92, 246, 0.12) 0%, rgba(59, 130, 246, 0.04) 50%, rgba(15, 17, 35, 0.6) 100%); border: 1px solid rgba(139, 92, 246, 0.2); border-radius: 14px; cursor: pointer; transition: all 0.25s; overflow: hidden; }
.sgis-feature-card::before { content: ""; position: absolute; top: -40px; right: -30px; width: 120px; height: 120px; background: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 60%); pointer-events: none; }
.sgis-feature-card::after { content: ""; position: absolute; bottom: -1px; left: 10%; right: 10%; height: 1.5px; background: linear-gradient(90deg, transparent 0%, rgba(139, 92, 246, 0.5) 50%, transparent 100%); pointer-events: none; }
.sgis-feature-card:hover { border-color: rgba(139, 92, 246, 0.4); transform: translateY(-2px); box-shadow: 0 8px 20px rgba(139, 92, 246, 0.2); }
.sgis-feature-card.alt { background: linear-gradient(160deg, rgba(99, 102, 241, 0.12) 0%, rgba(59, 130, 246, 0.04) 50%, rgba(15, 17, 35, 0.6) 100%); border-color: rgba(99, 102, 241, 0.2); }
.sgis-feature-card.alt::before { background: radial-gradient(circle, rgba(99, 102, 241, 0.2) 0%, transparent 60%); }
.sgis-feature-card.alt::after { background: linear-gradient(90deg, transparent 0%, rgba(99, 102, 241, 0.5) 50%, transparent 100%); }
.sgis-feature-head { display: flex; align-items: center; gap: 10px; margin-bottom: 12px; position: relative; z-index: 1; }
.sgis-feature-icon { width: 36px; height: 36px; border-radius: 10px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.22), rgba(99, 102, 241, 0.12)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 6px rgba(139, 92, 246, 0.15); }
.sgis-feature-card.alt .sgis-feature-icon { background: linear-gradient(135deg, rgba(99, 102, 241, 0.22), rgba(59, 130, 246, 0.12)); box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04), 0 2px 6px rgba(99, 102, 241, 0.15); }
.sgis-feature-icon svg { width: 18px; height: 18px; color: #c4b5fd; }
.sgis-feature-card.alt .sgis-feature-icon svg { color: #a5b4fc; }
.sgis-feature-titles { flex: 1; min-width: 0; }
.sgis-feature-title { font-size: 14px; font-weight: 700; color: #fff; line-height: 1.2; }
.sgis-feature-sub { font-size: 10px; color: var(--sgis-text-2); margin-top: 2px; font-weight: 500; letter-spacing: 0.3px; text-transform: uppercase; }
.sgis-feature-arrow { width: 22px; height: 22px; color: var(--sgis-text-2); flex-shrink: 0; transition: all 0.2s; }
.sgis-feature-card:hover .sgis-feature-arrow { color: #c4b5fd; transform: translateX(2px); }
.sgis-feature-stats { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; position: relative; z-index: 1; }
.sgis-feature-stat { padding: 8px 6px; background: linear-gradient(160deg, rgba(255, 255, 255, 0.04) 0%, rgba(255, 255, 255, 0.01) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 8px; text-align: center; }
.sgis-feature-stat-lbl { font-size: 9px; color: var(--sgis-text-2); font-weight: 500; letter-spacing: 0.3px; margin-bottom: 2px; }
.sgis-feature-stat-val { font-size: 14px; font-weight: 700; color: #fff; line-height: 1.2; }
.sgis-feature-stat-val.t-blue { color: #93c5fd; }
.sgis-feature-stat-val.t-green { color: #6ee7b7; }
.sgis-feature-stat-val.t-purple { color: #c4b5fd; }
.sgis-feature-stat-val.t-amber { color: #fbbf24; }
.sgis-feature-extra { display: flex; align-items: center; gap: 6px; margin-top: 8px; padding: 7px 10px; background: rgba(255, 255, 255, 0.03); border-radius: 7px; font-size: 10px; color: var(--sgis-text-2); position: relative; z-index: 1; }
.sgis-feature-extra svg { width: 12px; height: 12px; color: #f87171; flex-shrink: 0; }
.sgis-activity-item { display: block; padding: 10px; margin-bottom: 8px; background: rgba(255,255,255,0.03); border-radius: 8px; border-left: 3px solid var(--sglv-accent); text-decoration: none; transition: background 0.15s; }
.sgis-activity-item:hover { background: rgba(255,255,255,0.06); }
.sgis-activity-type { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 9px; font-weight: 600; margin-bottom: 4px; }
.sgis-activity-type.sale { background: rgba(76,175,80,0.2); color: #66bb6a; }
.sgis-activity-type.update { background: rgba(102,192,244,0.2); color: #66c0f4; }
.sgis-activity-type.event { background: rgba(255,152,0,0.2); color: #ffa726; }
.sgis-activity-type.news { background: rgba(179,136,255,0.2); color: #b388ff; }
/* v2.3.25: 官方动态结构化分区样式 */
.sgis-official-section { margin-bottom: 14px; }
.sgis-official-section-title { display: flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 700; color: #66c0f4; margin-bottom: 8px; padding: 4px 0; border-bottom: 1px solid rgba(102,192,244,0.15); }
.sgis-official-section-title .sgis-section-count { font-size: 10px; font-weight: 400; color: var(--sgis-text-2); margin-left: auto; }
.sgis-official-empty { text-align: center; padding: 20px; color: var(--sgis-text-2); font-size: 11px; }
/* 促销活动聚光灯卡片 */
.sgis-spotlight-card { display: block; padding: 0; margin-bottom: 8px; background: rgba(255,255,255,0.04); border-radius: 8px; overflow: hidden; text-decoration: none; transition: background 0.15s; border: 1px solid rgba(255,255,255,0.08); }
.sgis-spotlight-card:hover { background: rgba(255,255,255,0.07); border-color: rgba(255,152,0,0.3); }
.sgis-spotlight-banner { width: 100%; height: 60px; object-fit: cover; background: rgba(255,255,255,0.03); }
.sgis-spotlight-body { padding: 8px 10px; }
.sgis-spotlight-name { font-size: 12px; font-weight: 600; color: #ffa726; margin-bottom: 2px; }
.sgis-spotlight-desc { font-size: 10px; color: var(--sgis-text-2); line-height: 1.4; }
/* 特惠游戏卡片 */
.sgis-special-grid { display: grid; grid-template-columns: 1fr; gap: 6px; }
.sgis-special-card { display: flex; align-items: center; gap: 8px; padding: 6px 8px; background: rgba(255,255,255,0.03); border-radius: 7px; text-decoration: none; transition: background 0.15s; border-left: 3px solid #4caf50; }
.sgis-special-card:hover { background: rgba(76,175,80,0.08); }
.sgis-special-img { width: 48px; height: 22px; object-fit: cover; border-radius: 3px; flex-shrink: 0; background: rgba(255,255,255,0.05); }
.sgis-special-info { flex: 1; min-width: 0; }
.sgis-special-name { font-size: 11px; font-weight: 500; color: var(--sgis-text); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sgis-special-meta { font-size: 9px; color: var(--sgis-text-2); margin-top: 1px; }
.sgis-special-price { display: flex; flex-direction: column; align-items: flex-end; gap: 1px; flex-shrink: 0; }
.sgis-special-discount { display: inline-block; padding: 2px 6px; background: rgba(76,175,80,0.25); color: #66bb6a; border-radius: 4px; font-size: 11px; font-weight: 700; }
.sgis-special-final { font-size: 11px; color: #66bb6a; font-weight: 600; }
.sgis-special-original { font-size: 9px; color: var(--sgis-text-2); text-decoration: line-through; }
.sgis-sub-tabs { display: flex; gap: 6px; margin: 8px 0 10px; flex-wrap: wrap; }
.sgis-sub-tab { flex: 1; min-width: 70px; padding: 5px 8px; font-size: 10px; font-weight: 600; color: var(--sgis-text-2); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 7px; cursor: pointer; transition: all .2s; display: flex; align-items: center; justify-content: center; gap: 4px; white-space: nowrap; }
.sgis-sub-tab:hover { color: #fff; border-color: rgba(102,192,244,0.3); }
.sgis-sub-tab.active { background: linear-gradient(135deg,rgba(102,192,244,0.25),rgba(59,130,246,0.15)); color: #66c0f4; border-color: rgba(102,192,244,0.35); }
.sgis-sub-tab svg { width: 12px; height: 12px; }
.sgis-activity-content { min-height: 120px; }
.sgis-timeline-divider { display: flex; align-items: center; gap: 8px; margin: 12px 0 8px; }
.sgis-timeline-line { flex: 1; height: 1px; background: linear-gradient(90deg,transparent,rgba(102,192,244,0.25),transparent); }
.sgis-timeline-date { font-size: 10px; color: var(--sgis-text-2); white-space: nowrap; letter-spacing: .5px; }
.sgis-timeline-header { display: flex; justify-content: space-between; align-items: center; padding: 6px 10px; margin-bottom: 6px; border-radius: 7px; border: 1px solid; }
.sgis-timeline-label { font-size: 12px; font-weight: 600; }
.sgis-timeline-count { font-size: 11px; color: var(--sgis-text-2); }
.sgis-timeline-desc { font-size: 11px; color: var(--sgis-text-2); padding: 4px 10px 8px; }
.sgis-timeline-game { display: flex; align-items: center; gap: 8px; padding: 6px 8px; margin-bottom: 4px; background: rgba(255,255,255,0.03); border-left: 3px solid #10b981; border-radius: 6px; cursor: pointer; transition: background .2s; }
.sgis-timeline-game:hover { background: rgba(255,255,255,0.07); }
.sgis-timeline-game-icon { width: 32px; height: 32px; border-radius: 4px; object-fit: cover; flex-shrink: 0; }
.sgis-timeline-game-info { min-width: 0; }
.sgis-timeline-game-name { font-size: 11px; font-weight: 500; color: #fff; text-decoration: none; }
.sgis-timeline-game-name:hover { color: #66c0f4; }
.sgis-badge-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; }
.sgis-badge-card { padding: 10px; background: rgba(255,255,255,0.03); border-radius: 8px; text-align: center; }
.sgis-badge-icon { font-size: 28px; margin-bottom: 5px; width: 32px; height: 32px; display: flex; align-items: center; justify-content: center; margin-left: auto; margin-right: auto; background: linear-gradient(135deg, rgba(139, 92, 246, 0.12), rgba(59, 130, 246, 0.06)); border-radius: 8px; transition: all 0.2s; }
.sgis-badge-card:hover .sgis-badge-icon { background: linear-gradient(135deg, rgba(139, 92, 246, 0.2), rgba(59, 130, 246, 0.1)); transform: scale(1.05); }
.sgis-badge-icon svg { width: 18px; height: 18px; color: #c4b5fd; }
.sgis-badge-name { font-size: 11px; font-weight: 600; color: #fff; }
.sgis-badge-level { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 9px; font-weight: 700; background: rgba(102,192,244,0.15); color: #66c0f4; margin-top: 4px; }
.sgis-badge-xp { font-size: 9px; color: var(--sgis-text-2); margin-top: 2px; }
.sgis-user-ach { display: flex; align-items: center; gap: 10px; padding: 10px; margin-bottom: 8px; background: rgba(255,255,255,0.03); border-radius: 8px; border: 1px solid transparent; transition: all 0.2s; }
.sgis-user-ach.unlocked { border-color: rgba(180,208,7,0.3); background: rgba(180,208,7,0.05); }
.sgis-user-ach.locked { opacity: 0.5; }
.sgis-user-ach-icon { width: 44px; height: 44px; display: flex; align-items: center; justify-content: center; font-size: 22px; flex-shrink: 0; border-radius: 10px; background: rgba(255,255,255,0.05); overflow: hidden; position: relative; }
.sgis-user-ach-icon svg { width: 100%; height: 100%; display: block; }
.sgis-user-ach.locked .sgis-user-ach-icon { filter: grayscale(85%) brightness(0.6); }
.sgis-user-ach.unlocked .sgis-user-ach-icon { background: linear-gradient(135deg, rgba(139,92,246,0.12), rgba(59,130,246,0.08)); box-shadow: 0 0 12px rgba(139,92,246,0.2); }
.sgis-user-ach-info { flex: 1; min-width: 0; }
.sgis-user-ach-name { font-size: 12px; font-weight: 600; color: #fff; }
.sgis-user-ach-desc { font-size: 10px; color: var(--sgis-text-2); margin-top: 2px; line-height: 1.4; }
.sgis-user-ach-progress { height: 4px; background: rgba(255,255,255,0.1); border-radius: 2px; margin-top: 6px; overflow: hidden; }
.sgis-user-ach-progress-fill { height: 100%; background: var(--sglv-accent); border-radius: 2px; transition: width 0.3s; }
.sgis-user-ach.unlocked .sgis-user-ach-progress-fill { background: #b4d007; }
.sgis-user-ach-val { font-size: 10px; color: var(--sgis-text-2); text-align: right; white-space: nowrap; }
.sgis-persona-section { padding: 14px; margin-bottom: 12px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.12) 0%, rgba(59, 130, 246, 0.06) 50%, var(--sgis-bg-2) 100%); border: 1px solid rgba(139, 92, 246, 0.22); border-radius: var(--sgis-radius-sm); position: relative; overflow: hidden; box-shadow: 0 2px 8px rgba(139, 92, 246, 0.08); }
.sgis-persona-section::before { content: ""; position: absolute; top: -30px; right: -30px; width: 100px; height: 100px; background: radial-gradient(circle, rgba(139, 92, 246, 0.2) 0%, transparent 60%); pointer-events: none; }
.sgis-persona-section > * { position: relative; z-index: 1; }
.sgis-persona-title { font-size: 14px; font-weight: 700; color: #c4b5fd; margin-bottom: 10px; display: flex; align-items: center; gap: 8px; }
.sgis-persona-title svg { width: 18px; height: 18px; color: #c4b5fd; }
.sgis-persona-type { display: inline-block; padding: 4px 12px; border-radius: 12px; font-size: 12px; font-weight: 700; background: linear-gradient(135deg, rgba(139, 92, 246, 0.25), rgba(99, 102, 241, 0.15)); color: #c4b5fd; margin-bottom: 8px; border: 1px solid rgba(139, 92, 246, 0.3); }
.sgis-persona-desc { font-size: 11px; color: var(--sgis-text-2); line-height: 1.6; margin-bottom: 8px; }
.sgis-persona-traits { display: flex; flex-wrap: wrap; gap: 5px; }
.sgis-persona-trait { padding: 3px 9px; border-radius: 10px; font-size: 10px; font-weight: 600; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(99, 102, 241, 0.08)); color: #c4b5fd; border: 1px solid rgba(139, 92, 246, 0.2); }
.sgis-insight-kpi-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; margin-bottom: 12px; }
@media (min-width: 480px) { .sgis-insight-kpi-grid { grid-template-columns: repeat(3, 1fr); }
}
.sgis-insight-kpi { position: relative; padding: 12px 10px 12px 13px; border-radius: 10px; background: linear-gradient(160deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%); border: 1px solid rgba(255,255,255,0.06); border-left-width: 3px; overflow: hidden; transition: all 0.2s; }
.sgis-insight-kpi::before { content: ''; position: absolute; top: -12px; right: -12px; width: 40px; height: 40px; border-radius: 50%; opacity: 0.12; filter: blur(8px); pointer-events: none; }
.sgis-insight-kpi:hover { transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.sgis-insight-kpi.blue { border-color: rgba(59,130,246,0.3); border-left-color: #3b82f6; }
.sgis-insight-kpi.blue::before { background: #3b82f6; }
.sgis-insight-kpi.blue:hover { border-color: rgba(59,130,246,0.5); }
.sgis-insight-kpi.cyan { border-color: rgba(6,182,212,0.3); border-left-color: #06b6d4; }
.sgis-insight-kpi.cyan::before { background: #06b6d4; }
.sgis-insight-kpi.cyan:hover { border-color: rgba(6,182,212,0.5); }
.sgis-insight-kpi.purple { border-color: rgba(139,92,246,0.3); border-left-color: #8b5cf6; }
.sgis-insight-kpi.purple::before { background: #8b5cf6; }
.sgis-insight-kpi.purple:hover { border-color: rgba(139,92,246,0.5); }
.sgis-insight-kpi.amber { border-color: rgba(245,158,11,0.3); border-left-color: #f59e0b; }
.sgis-insight-kpi.amber::before { background: #f59e0b; }
.sgis-insight-kpi.amber:hover { border-color: rgba(245,158,11,0.5); }
.sgis-insight-kpi.rose { border-color: rgba(244,63,94,0.3); border-left-color: #f43f5e; }
.sgis-insight-kpi.rose::before { background: #f43f5e; }
.sgis-insight-kpi.rose:hover { border-color: rgba(244,63,94,0.5); }
.sgis-insight-kpi.green { border-color: rgba(16,185,129,0.3); border-left-color: #10b981; }
.sgis-insight-kpi.green::before { background: #10b981; }
.sgis-insight-kpi.green:hover { border-color: rgba(16,185,129,0.5); }
.sgis-insight-kpi-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.sgis-insight-kpi-icon { width: 28px; height: 28px; border-radius: 7px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-insight-kpi-icon svg { width: 14px; height: 14px; color: #fff; }
.sgis-insight-kpi-label { font-size: 10px; font-weight: 600; color: var(--sgis-text-2); line-height: 1.3; }
.sgis-insight-kpi-val { font-size: 20px; font-weight: 800; color: #fff; line-height: 1; letter-spacing: -0.5px; }
.sgis-insight-kpi-sub { font-size: 9px; color: var(--sgis-text-2); margin-top: 3px; }
.sgis-insight-persona { border-radius: 12px; overflow: hidden; margin-bottom: 12px; border: 1px solid rgba(139, 92, 246, 0.25); background: var(--sgis-bg-2); }
.sgis-insight-persona-head { display: flex; align-items: center; gap: 10px; padding: 12px 14px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.35), rgba(59, 130, 246, 0.18)); }
.sgis-insight-persona-icon { width: 36px; height: 36px; border-radius: 9px; background: rgba(255,255,255,0.18); display: flex; align-items: center; justify-content: center; flex-shrink: 0; backdrop-filter: blur(6px); }
.sgis-insight-persona-icon svg { width: 18px; height: 18px; color: #fff; }
.sgis-insight-persona-title { font-size: 16px; font-weight: 800; color: #fff; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.sgis-insight-persona-rarity { font-size: 10px; font-weight: 700; padding: 3px 10px; border-radius: 10px; background: linear-gradient(135deg, rgba(139,92,246,0.4), rgba(99,102,241,0.25)); color: #ddd6fe; border: 1px solid rgba(139,92,246,0.4); letter-spacing: 0.3px; }
.sgis-insight-persona-tagline { font-size: 11px; color: rgba(255,255,255,0.82); margin-top: 2px; }
.sgis-insight-persona-body { padding: 12px 14px; }
.sgis-insight-persona-traits { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.sgis-insight-persona-trait { padding: 4px 12px; border-radius: 12px; font-size: 10px; font-weight: 600; background: linear-gradient(135deg, rgba(139,92,246,0.18), rgba(59,130,246,0.08)); color: #c4b5fd; border: 1px solid rgba(139,92,246,0.22); transition: all 0.2s; }
.sgis-insight-persona-trait:hover { background: linear-gradient(135deg, rgba(139,92,246,0.3), rgba(59,130,246,0.15)); border-color: rgba(139,92,246,0.4); transform: translateY(-1px); }
.sgis-insight-metrics { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 10px; padding-top: 10px; border-top: 1px solid rgba(255,255,255,0.06); }
.sgis-insight-metric { display: flex; align-items: center; gap: 7px; padding: 6px 11px; border-radius: 8px; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); transition: all 0.2s; }
.sgis-insight-metric:hover { border-color: rgba(139,92,246,0.2); background: rgba(255,255,255,0.06); }
.sgis-insight-metric-icon { width: 20px; height: 20px; border-radius: 5px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-insight-metric-icon svg { width: 11px; height: 11px; color: #fff; }
.sgis-insight-metric-label { font-size: 9px; color: var(--sgis-text-2); line-height: 1; }
.sgis-insight-metric-val { font-size: 11px; font-weight: 700; color: #fff; line-height: 1.2; }
.sgis-insight-dim-grid { display: grid; grid-template-columns: 1fr; gap: 8px; margin-bottom: 12px; }
@media (min-width: 520px) { .sgis-insight-dim-grid { grid-template-columns: repeat(2, 1fr); }
}
.sgis-insight-dim { display: flex; border-radius: 10px; overflow: hidden; background: linear-gradient(160deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%); border: 1px solid rgba(255,255,255,0.06); transition: all 0.2s; }
.sgis-insight-dim:hover { border-color: rgba(139, 92, 246, 0.3); }
.sgis-insight-dim-bar { width: 3px; min-width: 3px; flex-shrink: 0; }
.sgis-insight-dim-body { flex: 1; padding: 10px 12px; min-width: 0; }
.sgis-insight-dim-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; margin-bottom: 6px; }
.sgis-insight-dim-title-row { display: flex; align-items: center; gap: 6px; min-width: 0; }
.sgis-insight-dim-label { font-size: 12px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-insight-dim-tag { font-size: 9px; font-weight: 600; padding: 1px 7px; border-radius: 8px; flex-shrink: 0; }
.sgis-insight-dim-tag.t-high { background: rgba(16,185,129,0.18); color: #6ee7b7; border: 1px solid rgba(16,185,129,0.25); }
.sgis-insight-dim-tag.t-mid { background: rgba(59,130,246,0.18); color: #93c5fd; border: 1px solid rgba(59,130,246,0.25); }
.sgis-insight-dim-tag.t-low { background: rgba(245,158,11,0.18); color: #fcd34d; border: 1px solid rgba(245,158,11,0.25); }
.sgis-insight-dim-tag.t-bad { background: rgba(244,63,94,0.18); color: #fda4af; border: 1px solid rgba(244,63,94,0.25); }
.sgis-insight-dim-score { font-size: 14px; font-weight: 800; color: #fff; flex-shrink: 0; }
.sgis-insight-dim-progress { height: 5px; background: rgba(255,255,255,0.08); border-radius: 3px; overflow: hidden; margin-bottom: 6px; }
.sgis-insight-dim-progress-fill { height: 100%; border-radius: 3px; transition: width 0.6s ease; }
.sgis-insight-dim-desc { font-size: 10px; color: var(--sgis-text-2); line-height: 1.5; }
.sgis-insight-ai { border-radius: 12px; overflow: hidden; margin-bottom: 12px; border: 1px solid rgba(139, 92, 246, 0.22); background: var(--sgis-bg-2); }
.sgis-insight-ai-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(59, 130, 246, 0.08)); border-bottom: 1px solid rgba(139, 92, 246, 0.15); }
.sgis-insight-ai-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sgis-insight-ai-icon { width: 30px; height: 30px; border-radius: 8px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.35), rgba(99, 102, 241, 0.2)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-insight-ai-icon svg { width: 15px; height: 15px; color: #c4b5fd; }
.sgis-insight-ai-title { font-size: 13px; font-weight: 700; color: #fff; }
.sgis-insight-ai-subtitle { font-size: 10px; color: var(--sgis-text-2); margin-top: 1px; }
.sgis-insight-ai-btn { display: flex; align-items: center; gap: 5px; padding: 6px 12px; border-radius: 7px; font-size: 11px; font-weight: 700; background: linear-gradient(135deg, rgba(139, 92, 246, 0.45), rgba(59, 130, 246, 0.3)); color: #fff; border: 1px solid rgba(139, 92, 246, 0.4); cursor: pointer; flex-shrink: 0; transition: all 0.2s; }
.sgis-insight-ai-btn:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.6), rgba(59, 130, 246, 0.45)); transform: translateY(-1px); box-shadow: 0 3px 10px rgba(139, 92, 246, 0.25); }
.sgis-insight-ai-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.sgis-insight-ai-btn svg { width: 12px; height: 12px; }
.sgis-insight-ai-body { padding: 12px 14px; }
.sgis-insight-ai-oneliner { padding: 10px 12px; border-radius: 9px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(59, 130, 246, 0.08)); border: 1px solid rgba(139, 92, 246, 0.2); margin-bottom: 10px; display: flex; gap: 8px; align-items: flex-start; }
.sgis-insight-ai-oneliner svg { width: 16px; height: 16px; color: #c4b5fd; flex-shrink: 0; margin-top: 1px; }
.sgis-insight-ai-oneliner-text { font-size: 12px; font-weight: 600; color: #fff; line-height: 1.5; }
.sgis-insight-ai-section { margin-bottom: 10px; border-radius: 9px; overflow: hidden; border: 1px solid rgba(255,255,255,0.05); }
.sgis-insight-ai-section:last-child { margin-bottom: 0; }
.sgis-insight-ai-section-head { display: flex; align-items: center; gap: 6px; padding: 7px 10px; font-size: 11px; font-weight: 700; color: #fff; }
.sgis-insight-ai-section-head svg { width: 12px; height: 12px; color: rgba(255,255,255,0.85); flex-shrink: 0; }
.sgis-insight-ai-section-body { padding: 8px 10px 10px; font-size: 11px; color: var(--sgis-text); line-height: 1.65; background: rgba(255,255,255,0.015); }
.sgis-insight-ai-empty { text-align: center; padding: 20px 12px; color: var(--sgis-text-2); }
.sgis-insight-ai-empty-icon { font-size: 28px; margin-bottom: 8px; opacity: 0.5; }
.sgis-insight-ai-empty-text { font-size: 12px; font-weight: 600; color: var(--sgis-text); margin-bottom: 4px; }
.sgis-insight-ai-empty-sub { font-size: 10px; color: var(--sgis-text-2); line-height: 1.5; }
.sgis-insight-ai-empty-warn { margin-top: 8px; padding: 5px 9px; border-radius: 6px; font-size: 10px; background: rgba(245,158,11,0.12); color: #fcd34d; display: inline-block; }
@keyframes sgis-insight-spin { to { transform: rotate(360deg); }
}
.sgis-insight-spin { animation: sgis-insight-spin 0.9s linear infinite; }
.sgis-insight-market { border-radius: 12px; overflow: hidden; margin-bottom: 12px; border: 1px solid rgba(16, 185, 129, 0.22); background: var(--sgis-bg-2); }
.sgis-insight-market-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 12px 14px; background: linear-gradient(135deg, rgba(16, 185, 129, 0.18), rgba(6, 182, 212, 0.08)); border-bottom: 1px solid rgba(16, 185, 129, 0.15); }
.sgis-insight-market-title-row { display: flex; align-items: center; gap: 8px; min-width: 0; }
.sgis-insight-market-icon { width: 30px; height: 30px; border-radius: 8px; background: linear-gradient(135deg, rgba(16, 185, 129, 0.35), rgba(6, 182, 212, 0.2)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-insight-market-icon svg { width: 15px; height: 15px; color: #6ee7b7; }
.sgis-insight-market-title { font-size: 13px; font-weight: 700; color: #fff; }
.sgis-insight-market-subtitle { font-size: 10px; color: var(--sgis-text-2); margin-top: 1px; }
.sgis-insight-market-btn { display: flex; align-items: center; gap: 5px; padding: 6px 12px; border-radius: 7px; font-size: 11px; font-weight: 700; background: linear-gradient(135deg, rgba(16, 185, 129, 0.4), rgba(6, 182, 212, 0.28)); color: #fff; border: 1px solid rgba(16, 185, 129, 0.35); cursor: pointer; flex-shrink: 0; transition: all 0.2s; }
.sgis-insight-market-btn:hover { background: linear-gradient(135deg, rgba(16, 185, 129, 0.55), rgba(6, 182, 212, 0.42)); transform: translateY(-1px); box-shadow: 0 3px 10px rgba(16, 185, 129, 0.2); }
.sgis-insight-market-btn:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.sgis-insight-market-btn svg { width: 12px; height: 12px; }
.sgis-insight-market-body { padding: 12px 14px; }
.sgis-insight-market-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 6px; margin-bottom: 10px; }
.sgis-insight-market-stat { text-align: center; padding: 8px 4px; border-radius: 7px; background: rgba(16, 185, 129, 0.06); border: 1px solid rgba(16, 185, 129, 0.12); }
.sgis-insight-market-stat-val { font-size: 16px; font-weight: 800; color: #6ee7b7; line-height: 1; }
.sgis-insight-market-stat-label { font-size: 9px; color: var(--sgis-text-2); margin-top: 3px; }
.sgis-insight-market-row { display: flex; align-items: center; gap: 8px; padding: 8px 10px; border-radius: 7px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); margin-bottom: 5px; }
.sgis-insight-market-rank { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 10px; font-weight: 800; background: linear-gradient(135deg, rgba(251, 191, 36, 0.3), rgba(245, 158, 11, 0.18)); color: #fcd34d; flex-shrink: 0; }
.sgis-insight-market-row.top1 .sgis-insight-market-rank { background: linear-gradient(135deg, #fbbf24, #f59e0b); color: #1b2838; }
.sgis-insight-market-name { flex: 1; min-width: 0; font-size: 11px; font-weight: 600; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-insight-market-val { font-size: 11px; font-weight: 700; color: #6ee7b7; flex-shrink: 0; }
.sgis-insight-market-rec { padding: 9px 11px; border-radius: 8px; background: linear-gradient(135deg, rgba(16, 185, 129, 0.1), rgba(6, 182, 212, 0.05)); border: 1px solid rgba(16, 185, 129, 0.18); margin-bottom: 6px; }
.sgis-insight-market-rec:last-child { margin-bottom: 0; }
.sgis-insight-market-rec-head { display: flex; align-items: center; gap: 6px; margin-bottom: 4px; }
.sgis-insight-market-rec-name { font-size: 11px; font-weight: 700; color: #fff; flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-insight-market-rec-action { font-size: 9px; font-weight: 700; padding: 2px 7px; border-radius: 7px; flex-shrink: 0; }
.sgis-insight-market-rec-action.buy { background: rgba(16,185,129,0.2); color: #6ee7b7; border: 1px solid rgba(16,185,129,0.3); }
.sgis-insight-market-rec-action.sell { background: rgba(244,63,94,0.2); color: #fda4af; border: 1px solid rgba(244,63,94,0.3); }
.sgis-insight-market-rec-action.hold { background: rgba(245,158,11,0.2); color: #fcd34d; border: 1px solid rgba(245,158,11,0.3); }
.sgis-insight-market-rec-reason { font-size: 10px; color: var(--sgis-text-2); line-height: 1.5; }
.sgis-insight-market-summary { padding: 10px 12px; border-radius: 8px; background: linear-gradient(135deg, rgba(16, 185, 129, 0.12), rgba(6, 182, 212, 0.06)); border: 1px solid rgba(16, 185, 129, 0.18); font-size: 11px; color: var(--sgis-text); line-height: 1.6; margin-bottom: 10px; }
.sgis-insight-market-summary:last-child { margin-bottom: 0; }
.sgis-insight-ach-collapse { margin-top: 8px; border-top: 1px solid rgba(255,255,255,0.06); padding-top: 10px; }
.sgis-insight-ach-toggle { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; color: var(--sgis-text-2); cursor: pointer; padding: 6px 0; user-select: none; }
.sgis-insight-ach-toggle:hover { color: #c4b5fd; }
.sgis-insight-ach-toggle svg { width: 12px; height: 12px; transition: transform 0.2s; }
.sgis-insight-ach-toggle.expanded svg { transform: rotate(90deg); }
.sgis-insight-ach-content { display: none; margin-top: 8px; }
.sgis-insight-ach-content.show { display: block; }
.sgis-section-title.sgis-social-title { justify-content: space-between; }
.sgis-social-title-actions { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.sgis-social-toolbar { display: flex; gap: 6px; margin-bottom: 8px; align-items: center; }
.sgis-social-filter-row { display: flex; flex-wrap: nowrap; gap: 5px; margin-bottom: 10px; align-items: center; overflow-x: auto; padding-bottom: 2px; }
.sgis-social-filter-row::-webkit-scrollbar { height: 3px; }
.sgis-social-filter-row::-webkit-scrollbar-thumb { background: rgba(255,255,255,0.1); border-radius: 2px; }
.sgis-social-search { flex: 1; min-width: 100px; padding: 6px 10px; font-size: 11px; color: var(--sgis-text); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 7px; outline: none; transition: border-color 0.2s; }
.sgis-social-search:focus { border-color: rgba(102, 192, 244, 0.5); }
.sgis-social-search::placeholder { color: var(--sgis-text-2); }
.sgis-social-filter { padding: 5px 10px; font-size: 10px; font-weight: 600; color: var(--sgis-text-2); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 7px; cursor: pointer; transition: all 0.2s; white-space: nowrap; display: flex; align-items: center; gap: 4px; }
.sgis-social-filter:hover { color: #fff; border-color: rgba(102,192,244,0.3); }
.sgis-social-filter.active { background: linear-gradient(135deg, rgba(102,192,244,0.25), rgba(59,130,246,0.15)); color: #66c0f4; border-color: rgba(102,192,244,0.35); }
.sgis-social-filter .count { font-size: 9px; padding: 1px 5px; border-radius: 5px; background: rgba(255,255,255,0.1); }
.sgis-social-sort { padding: 5px 10px; font-size: 10px; font-weight: 600; color: var(--sgis-text-2); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 7px; cursor: pointer; }
.sgis-social-sort:hover { color: #fff; }
.sgis-social-friend { display: flex; align-items: center; gap: 10px; padding: 10px; border-radius: 9px; background: linear-gradient(135deg, rgba(255,255,255,0.03) 0%, rgba(255,255,255,0.01) 100%); border: 1px solid rgba(255,255,255,0.05); margin-bottom: 6px; transition: all 0.2s; }
.sgis-social-friend:hover { border-color: rgba(139, 92, 246, 0.25); background: linear-gradient(135deg, rgba(139,92,246,0.06) 0%, rgba(59,130,246,0.03) 100%); transform: translateX(2px); }
.sgis-social-avatar-wrap { position: relative; flex-shrink: 0; }
.sgis-social-avatar { width: 40px; height: 40px; border-radius: 8px; object-fit: cover; border: 1.5px solid rgba(255,255,255,0.1); }
.sgis-social-status-dot { position: absolute; bottom: -2px; right: -2px; width: 12px; height: 12px; border-radius: 50%; border: 2px solid var(--sgis-bg-2); }
.sgis-social-status-dot.online { background: #4caf50; box-shadow: 0 0 6px rgba(76,175,80,0.5); }
.sgis-social-status-dot.ingame { background: #66c0f4; box-shadow: 0 0 6px rgba(102,192,244,0.6); }
.sgis-social-status-dot.offline { background: #6b7280; }
.sgis-social-friend-info { flex: 1; min-width: 0; }
.sgis-social-friend-name-row { display: flex; align-items: center; gap: 6px; margin-bottom: 3px; flex-wrap: wrap; }
.sgis-social-friend-name { font-size: 12px; font-weight: 700; color: #fff; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 140px; }
.sgis-social-level-badge { font-size: 9px; font-weight: 800; padding: 1px 6px; border-radius: 5px; background: linear-gradient(135deg, rgba(102,192,244,0.25), rgba(59,130,246,0.15)); color: #66c0f4; border: 1px solid rgba(102,192,244,0.3); flex-shrink: 0; }
.sgis-social-vac-shield { font-size: 9px; font-weight: 700; padding: 1px 6px; border-radius: 5px; background: linear-gradient(135deg, rgba(244,63,94,0.3), rgba(220,38,38,0.18)); color: #fda4af; border: 1px solid rgba(244,63,94,0.35); display: flex; align-items: center; gap: 3px; flex-shrink: 0; }
.sgis-social-vac-shield svg { width: 10px; height: 10px; }
.sgis-social-friend-meta { display: flex; align-items: center; gap: 6px; font-size: 10px; color: var(--sgis-text-2); flex-wrap: wrap; }
.sgis-social-friend-status { font-size: 10px; font-weight: 600; }
.sgis-social-friend-status.ingame { color: #66c0f4; }
.sgis-social-friend-status.online { color: #6ee7b7; }
.sgis-social-friend-status.offline { color: var(--sgis-text-2); }
.sgis-social-friend-days { font-size: 10px; padding: 1px 6px; border-radius: 5px; background: rgba(139, 92, 246, 0.12); color: #c4b5fd; border: 1px solid rgba(139, 92, 246, 0.18); }
.sgis-social-friend-days.d-new { background: rgba(16, 185, 129, 0.15); color: #6ee7b7; border-color: rgba(16, 185, 129, 0.25); }
.sgis-social-friend-days.d-mid { background: rgba(245, 158, 11, 0.15); color: #fcd34d; border-color: rgba(245, 158, 11, 0.25); }
.sgis-social-friend-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; }
.sgis-social-link-btn { width: 26px; height: 26px; border-radius: 6px; display: flex; align-items: center; justify-content: center; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.08); color: var(--sgis-text-2); cursor: pointer; transition: all 0.2s; text-decoration: none !important; }
.sgis-social-link-btn:hover { background: rgba(102,192,244,0.15); color: #66c0f4; border-color: rgba(102,192,244,0.3); }
.sgis-social-link-btn svg { width: 12px; height: 12px; }
.sgis-social-group { margin-bottom: 12px; }
.sgis-social-group-head { display: flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 700; color: #a78bfa; text-transform: uppercase; letter-spacing: 0.5px; margin-bottom: 6px; padding-bottom: 5px; border-bottom: 1px solid rgba(139, 92, 246, 0.1); }
.sgis-social-group-head svg { width: 12px; height: 12px; }
.sgis-social-group-head .count { font-size: 10px; font-weight: 600; padding: 1px 7px; border-radius: 6px; background: rgba(139, 92, 246, 0.15); color: #c4b5fd; }
.sgis-social-country { display: inline-flex; align-items: center; gap: 4px; font-size: 10px; font-weight: 500; color: var(--sgis-text-2); background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.06); padding: 1px 6px 1px 4px; border-radius: 4px; transition: all 0.15s; }
.sgis-social-country:hover { background: rgba(255,255,255,0.08); color: #fff; }
.sgis-social-country svg { width: 16px; height: 12px; flex-shrink: 0; }
.sgis-social-country-name { line-height: 1; }
.sgis-social-load-levels, .sgis-social-ban-sync { display: flex; align-items: center; gap: 5px; padding: 4px 10px; border-radius: 7px; font-size: 10px; font-weight: 600; cursor: pointer; transition: all 0.2s; white-space: nowrap; }
.sgis-social-load-levels { background: linear-gradient(135deg, rgba(102,192,244,0.18), rgba(59,130,246,0.1)); color: #66c0f4; border: 1px solid rgba(102,192,244,0.25); }
.sgis-social-load-levels:hover { background: linear-gradient(135deg, rgba(102,192,244,0.3), rgba(59,130,246,0.2)); transform: translateY(-1px); }
.sgis-social-ban-sync { background: linear-gradient(135deg, rgba(244,63,94,0.18), rgba(244,63,94,0.1)); color: #f43f5e; border: 1px solid rgba(244,63,94,0.25); }
.sgis-social-ban-sync:hover { background: linear-gradient(135deg, rgba(244,63,94,0.3), rgba(244,63,94,0.2)); transform: translateY(-1px); }
.sgis-social-load-levels:disabled, .sgis-social-ban-sync:disabled { opacity: 0.5; cursor: not-allowed; transform: none; }
.sgis-social-load-levels svg, .sgis-social-ban-sync svg { width: 12px; height: 12px; }
/* v2.3.24: 好友游戏数量 TOP10 排行(参考 steam-friend-manager 社交仪表盘游戏总数排行) */
.sgis-gc-row { display: flex; align-items: center; gap: 8px; padding: 6px 8px; border-radius: 8px; background: rgba(255,255,255,0.02); border: 1px solid rgba(255,255,255,0.04); margin-bottom: 5px; cursor: pointer; transition: all 0.15s; }
.sgis-gc-row:hover { background: rgba(102,192,244,0.06); border-color: rgba(102,192,244,0.2); }
.sgis-gc-no { width: 18px; text-align: center; font-size: 11px; font-weight: 800; color: var(--sgis-text-2); flex-shrink: 0; }
.sgis-gc-no.r1 { color: #ffd700; }
.sgis-gc-no.r2 { color: #c0c0c0; }
.sgis-gc-no.r3 { color: #e09a5f; }
.sgis-gc-avatar { width: 28px; height: 28px; border-radius: 6px; object-fit: cover; flex-shrink: 0; border: 1px solid rgba(255,255,255,0.08); }
.sgis-gc-name { width: 92px; font-size: 11px; font-weight: 600; color: #e0e0e0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; flex-shrink: 0; }
.sgis-gc-bar { flex: 1; height: 10px; background: rgba(255,255,255,0.05); border-radius: 4px; overflow: hidden; min-width: 0; }
.sgis-gc-fill { height: 100%; border-radius: 4px; background: linear-gradient(90deg, #38bdf8, #818cf8); transition: width .3s; }
.sgis-gc-val { width: 76px; text-align: right; font-size: 11px; font-weight: 700; color: #38bdf8; flex-shrink: 0; white-space: nowrap; }
.sgis-gc-val small { display: block; font-size: 9px; font-weight: 500; color: var(--sgis-text-2); }
.sgis-gc-hint { font-size: 10px; color: var(--sgis-text-2); text-align: center; padding: 10px 8px; line-height: 1.6; }
.sgis-ach-summary { display: flex; align-items: center; gap: 16px; padding: 12px; background: rgba(255, 255, 255, 0.03); border-radius: 10px; margin-bottom: 10px; }
.sgis-ach-donut { flex-shrink: 0; --rainbow-intensity: 0.5; position: relative; }
.sgis-ach-donut .sgis-rainbow-ring { filter: url(#sgis-rainbow-glow); transition: stroke-dasharray 0.6s ease, filter 0.4s ease; }
.sgis-ach-donut svg { overflow: visible; }
.sgis-ach-donut .sgis-donut-pct { fill: #f8fafc; filter: drop-shadow(0 0 calc(2px * var(--rainbow-intensity)) rgba(196, 130, 255, calc(0.4 * var(--rainbow-intensity)))); transition: filter 0.4s ease; }
.sgis-ach-donut::before { content: ""; position: absolute; inset: -8px; border-radius: 50%; background: conic-gradient(from 0deg, rgba(255, 0, 128, calc(0.15 * var(--rainbow-intensity))), rgba(255, 140, 0, calc(0.15 * var(--rainbow-intensity))), rgba(255, 215, 0, calc(0.15 * var(--rainbow-intensity))), rgba(0, 255, 127, calc(0.15 * var(--rainbow-intensity))), rgba(0, 191, 255, calc(0.15 * var(--rainbow-intensity))), rgba(123, 44, 255, calc(0.15 * var(--rainbow-intensity))), rgba(255, 0, 128, calc(0.15 * var(--rainbow-intensity))) ); filter: blur(calc(8px * var(--rainbow-intensity))); opacity: var(--rainbow-intensity); z-index: -1; animation: sgis-rainbow-rotate 6s linear infinite; pointer-events: none; }
@keyframes sgis-rainbow-rotate { to { transform: rotate(360deg); }
}
.sgis-ach-stats { display: flex; gap: 12px; flex: 1; }
.sgis-ach-stat { display: flex; flex-direction: column; align-items: center; flex: 1; }
.sgis-ach-stat-val { font-size: 18px; font-weight: 700; color: #fff; }
.sgis-ach-stat-lbl { font-size: 10px; color: var(--sgis-text-2); margin-top: 2px; }
.sgis-ach-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 8px; background: rgba(255, 255, 255, 0.02); border: 1px solid rgba(255, 255, 255, 0.04); border-radius: 6px; margin-bottom: 4px; }
.sgis-ach-check { width: 20px; height: 20px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 11px; font-weight: 700; flex-shrink: 0; margin-top: 1px; }
.sgis-ach-check { background: linear-gradient(135deg, rgba(76, 175, 80, 0.3), rgba(16, 185, 129, 0.18)); color: #34d399; box-shadow: 0 2px 6px rgba(16, 185, 129, 0.18); }
.sgis-ach-check.locked { background: rgba(255, 255, 255, 0.06); color: var(--sgis-text-2); }
.sgis-ach-info { flex: 1; min-width: 0; }
.sgis-ach-name { font-size: 12px; font-weight: 600; color: #fff; margin-bottom: 3px; }
.sgis-ach-meta { display: flex; gap: 8px; font-size: 10px; color: var(--sgis-text-2); }
.sgis-ach-bar { height: 4px; background: rgba(255, 255, 255, 0.06); border-radius: 2px; overflow: hidden; margin: 3px 0; }
.sgis-ach-bar-fill { height: 100%; border-radius: 2px; transition: width .3s ease; }
.sgis-ach-global { font-size: 10px; color: var(--sgis-text-2); }
.sgis-ach-pct { font-size: 12px; font-weight: 600; color: var(--sgis-text); flex-shrink: 0; }
.sgis-news-item { display: block; padding: 9px 10px; background: linear-gradient(135deg, rgba(255, 255, 255, 0.025), rgba(139, 92, 246, 0.015)); border: 1px solid rgba(255, 255, 255, 0.04); border-radius: 8px; margin-bottom: 6px; text-decoration: none !important; color: inherit !important; transition: all 0.2s; }
.sgis-news-item:hover { background: linear-gradient(135deg, rgba(139, 92, 246, 0.08), rgba(59, 130, 246, 0.04)); border-color: rgba(139, 92, 246, 0.25); transform: translateX(2px); box-shadow: 0 2px 8px rgba(139, 92, 246, 0.1); }
.sgis-news-header { display: flex; align-items: center; gap: 6px; margin-bottom: 5px; }
.sgis-news-feed { font-size: 9px; padding: 2px 7px; border-radius: 4px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(59, 130, 246, 0.1)); color: #c4b5fd; font-weight: 600; border: 1px solid rgba(139, 92, 246, 0.18); }
.sgis-news-date { font-size: 10px; color: var(--sgis-text-2); margin-left: auto; }
.sgis-news-title { font-size: 12px; font-weight: 600; color: #fff; line-height: 1.4; margin-bottom: 3px; }
.sgis-news-desc { font-size: 11px; color: var(--sgis-text-2); line-height: 1.5; overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.sgis-news-author { font-size: 10px; color: var(--sgis-text-2); margin-top: 3px; }
.sgis-card-item.sgis-card-with-bg { background-size: cover; background-position: center; background-blend-mode: overlay; }
.sgis-card-item.sgis-card-with-bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(15, 17, 35, 0.92) 0%, rgba(15, 17, 35, 0.75) 50%, rgba(15, 17, 35, 0.5) 100%); pointer-events: none; z-index: 0; transition: opacity 0.3s ease; }
.sgis-card-item.sgis-card-with-bg:hover::after { background: linear-gradient(90deg, rgba(15, 17, 35, 0.85) 0%, rgba(139, 92, 246, 0.3) 50%, rgba(59, 130, 246, 0.2) 100%); }
.sgis-card-item.sgis-card-with-bg .sgis-card-name { color: #fff; }
.sgis-card-item.sgis-card-with-bg .sgis-card-prices { color: rgba(255, 255, 255, 0.85); }
.sgis-card-item.sgis-card-with-bg .sgis-card-icon { border-color: rgba(255, 255, 255, 0.15); box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4); }
.sgis-card-stat { position: relative; overflow: hidden; }
.sgis-card-stat::before { content: ""; position: absolute; top: 0; left: 0; right: 0; height: 2px; background: linear-gradient(90deg, transparent, currentColor, transparent); opacity: 0.4; }
.sgis-card-stat.sell::before { color: var(--sgis-green); }
.sgis-card-stat.net::before { color: var(--sgis-blue); }
.sgis-card-stat.buy::before { color: var(--sgis-amber); }
.sgis-svg { width: 14px; height: 14px; display: inline-block; vertical-align: middle; stroke-width: 2; flex-shrink: 0; }
.sgis-svg-tab { width: 14px; height: 14px; }
.sgis-svg-section { width: 12px; height: 12px; }
.sgis-svg-title { width: 14px; height: 14px; }
.sgis-scroll-area { max-height: 280px; overflow-y: auto; scrollbar-width: thin; scrollbar-color: rgba(139, 92, 246, 0.4) transparent; }
.sgis-scroll-area::-webkit-scrollbar { width: 5px; }
.sgis-scroll-area::-webkit-scrollbar-track { background: transparent; }
.sgis-scroll-area::-webkit-scrollbar-thumb { background: linear-gradient(180deg, rgba(139, 92, 246, 0.4), rgba(59, 130, 246, 0.4)); border-radius: 3px; }
.sgis-badge-group-stack { display: flex; flex-direction: column; gap: 6px; }
.sgis-badge-group { background: linear-gradient(160deg, rgba(255, 255, 255, 0.025) 0%, rgba(139, 92, 246, 0.02) 100%); border: 1px solid rgba(255, 255, 255, 0.05); border-radius: 10px; overflow: hidden; transition: all 0.25s; }
.sgis-badge-group:hover { border-color: rgba(139, 92, 246, 0.18); }
.sgis-badge-group-head { display: flex; align-items: center; gap: 10px; padding: 10px 12px; cursor: pointer; user-select: none; position: relative; }
.sgis-badge-group-head::after { content: ""; position: absolute; bottom: 0; left: 10%; right: 10%; height: 1px; background: linear-gradient(90deg, transparent, rgba(139, 92, 246, 0.15), transparent); }
.sgis-badge-group-icon { width: 32px; height: 32px; border-radius: 9px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.18), rgba(59, 130, 246, 0.08)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04); }
.sgis-badge-group-icon svg { width: 15px; height: 15px; color: #c4b5fd; }
.sgis-badge-group-titles { flex: 1; min-width: 0; }
.sgis-badge-group-title { font-size: 12px; font-weight: 700; color: #fff; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-badge-group-sub { font-size: 10px; color: var(--sgis-text-2); margin-top: 2px; font-weight: 500; }
.sgis-badge-group-stats { display: flex; gap: 5px; flex-shrink: 0; }
.sgis-badge-group-stat { font-size: 10px; color: #c4b5fd; padding: 2px 6px; background: rgba(139, 92, 246, 0.12); border-radius: 4px; font-weight: 600; }
.sgis-badge-group-arrow { width: 16px; height: 16px; color: var(--sgis-text-2); flex-shrink: 0; transition: transform 0.25s; }
.sgis-badge-group-arrow svg { width: 14px; height: 14px; }
.sgis-badge-group-expanded .sgis-badge-group-arrow { transform: rotate(90deg); color: #c4b5fd; }
.sgis-badge-group-body { max-height: 0; overflow: hidden; transition: max-height 0.3s ease; }
.sgis-badge-group-expanded .sgis-badge-group-body { max-height: 1200px; overflow-y: auto; }
.sgis-badge-group-rows { padding: 4px 8px 8px; display: flex; flex-direction: column; gap: 4px; }
.sgis-badge-row { display: flex; align-items: center; gap: 8px; padding: 7px 8px; background: rgba(255, 255, 255, 0.025); border: 1px solid rgba(255, 255, 255, 0.04); border-radius: 7px; transition: all 0.2s; }
.sgis-badge-row:hover { background: rgba(139, 92, 246, 0.08); border-color: rgba(139, 92, 246, 0.2); transform: translateX(2px); }
.sgis-badge-row-icon { width: 28px; height: 28px; border-radius: 7px; background: linear-gradient(135deg, rgba(139, 92, 246, 0.15), rgba(59, 130, 246, 0.06)); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sgis-badge-row-icon svg { width: 14px; height: 14px; color: #c4b5fd; }
.sgis-badge-row-info { flex: 1; min-width: 0; }
.sgis-badge-row-name { font-size: 11px; font-weight: 600; color: #fff; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-badge-row-meta { display: flex; gap: 6px; align-items: center; margin-top: 3px; font-size: 9px; flex-wrap: wrap; }
.sgis-badge-row-lv { color: #a78bfa; font-weight: 700; }
.sgis-badge-row-xp { color: #fbbf24; font-weight: 600; }
.sgis-badge-row-rar { padding: 1px 5px; border-radius: 3px; font-weight: 600; font-size: 9px; }
.sgis-badge-row-rar.r1 { background: rgba(148, 163, 184, 0.2); color: #cbd5e1; }
.sgis-badge-row-rar.r2 { background: rgba(59, 130, 246, 0.18); color: #93c5fd; }
.sgis-badge-row-rar.r3 { background: rgba(139, 92, 246, 0.2); color: #c4b5fd; }
.sgis-badge-row-rar.r4 { background: rgba(236, 72, 153, 0.2); color: #f9a8d4; }
.sgis-badge-row-rar.r5 { background: linear-gradient(135deg, rgba(251, 191, 36, 0.25), rgba(245, 158, 11, 0.15)); color: #fde047; }
.sgis-badge-row-time { color: var(--sgis-text-2); font-weight: 500; }
.sgis-badge-row-link { width: 24px; height: 24px; border-radius: 6px; background: rgba(139, 92, 246, 0.12); display: flex; align-items: center; justify-content: center; color: #c4b5fd; flex-shrink: 0; text-decoration: none; transition: all 0.2s; }
.sgis-badge-row-link:hover { background: rgba(139, 92, 246, 0.25); color: #fff; transform: translateX(2px); }
.sgis-badge-row-link svg { width: 12px; height: 12px; }
.sgis-badge-group-foot { padding: 8px 12px 10px; font-size: 10px; color: var(--sgis-text-2); display: flex; gap: 6px; align-items: center; border-top: 1px solid rgba(255, 255, 255, 0.04); }
.sgis-badge-group-empty { padding: 16px 12px; text-align: center; color: var(--sgis-text-2); font-size: 11px; background: rgba(255, 255, 255, 0.02); border-radius: 8px; border: 1px dashed rgba(255, 255, 255, 0.06); }
.sgis-dist-stack { display: flex; flex-direction: column; gap: 5px; margin-bottom: 10px; }
.sgis-dist-row { display: flex; align-items: center; gap: 8px; font-size: 10px; }
.sgis-dist-label { width: 32px; color: #c4b5fd; font-weight: 600; flex-shrink: 0; }
.sgis-dist-bar { flex: 1; height: 8px; background: rgba(255, 255, 255, 0.05); border-radius: 4px; overflow: hidden; }
.sgis-dist-bar-fill { height: 100%; background: linear-gradient(90deg, #8b5cf6, #3b82f6); border-radius: 4px; box-shadow: 0 0 6px rgba(139, 92, 246, 0.3); transition: width 0.6s ease; }
.sgis-dist-count { width: 30px; text-align: right; color: var(--sgis-text); font-weight: 600; flex-shrink: 0; }
.sgis-value-cards { display: flex; flex-direction: column; gap: 6px; }
.sgis-value-card { display: flex; align-items: center; gap: 8px; padding: 7px 8px; background: linear-gradient(160deg, rgba(255, 255, 255, 0.04) 0%, rgba(139, 92, 246, 0.025) 100%); border: 1px solid rgba(255, 255, 255, 0.06); border-radius: 8px; transition: all 0.2s; cursor: pointer; }
.sgis-value-card:hover { background: linear-gradient(160deg, rgba(139, 92, 246, 0.1) 0%, rgba(59, 130, 246, 0.04) 100%); border-color: rgba(139, 92, 246, 0.3); transform: translateX(2px); }
.sgis-value-card-img { width: 56px; height: 22px; border-radius: 4px; overflow: hidden; flex-shrink: 0; background: rgba(0, 0, 0, 0.3); }
.sgis-value-card-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.sgis-value-card-info { flex: 1; min-width: 0; }
.sgis-value-card-name { font-size: 11px; font-weight: 600; color: #fff; line-height: 1.2; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-value-card-meta { font-size: 9px; color: var(--sgis-text-2); margin-top: 2px; }
.sgis-value-card-score { width: 38px; text-align: center; flex-shrink: 0; }
.sgis-value-card-score-num { font-size: 16px; font-weight: 700; line-height: 1; }
.sgis-value-card-score.high { color: #34d399; }
.sgis-value-card-score.mid { color: #fbbf24; }
.sgis-value-card-score.low { color: #94a3b8; }
.sgis-value-card-score-lbl { font-size: 8px; color: var(--sgis-text-2); margin-top: 1px; letter-spacing: 0.5px; text-transform: uppercase; }
.sgis-value-card-market { font-size: 9px; color: #c4b5fd; font-weight: 600; flex-shrink: 0; }
.sgis-badge-row-icon-wrap { width: 42px; height: 56px; flex-shrink: 0; position: relative; border-radius: 5px; overflow: hidden; background: radial-gradient(circle at 50% 35%, rgba(139, 92, 246, 0.12), transparent 65%), linear-gradient(135deg, rgba(15, 23, 42, 0.6) 0%, rgba(30, 41, 59, 0.5) 100%); display: flex; align-items: center; justify-content: center; border: 1px solid rgba(255, 255, 255, 0.06); }
.sgis-badge-row-icon-wrap::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 40%; background: linear-gradient(to top, rgba(0,0,0,0.5) 0%, transparent 100%); pointer-events: none; z-index: 1; }
.sgis-badge-row-img { width: 100%; height: 100%; object-fit: cover; display: block; position: relative; z-index: 0; transition: transform 0.3s ease; }
.sgis-badge-row:hover .sgis-badge-row-img { transform: scale(1.06); }
.sgis-badge-row-icon { width: 24px; height: 24px; display: flex; align-items: center; justify-content: center; position: relative; z-index: 0; }
.sgis-badge-row-icon svg { width: 13px; height: 13px; color: #c4b5fd; }
.sgis-badge-row { position: relative; }
.sgis-badge-row.has-tip { cursor: help; }
.sgis-badge-tip { position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%) translateY(-8px); min-width: 220px; max-width: 280px; padding: 10px 12px; background: linear-gradient(160deg, rgba(22, 18, 44, 0.98) 0%, rgba(11, 14, 28, 0.98) 100%); border: 1px solid rgba(139, 92, 246, 0.35); border-radius: 10px; box-shadow: 0 8px 24px rgba(0, 0, 0, 0.5), 0 0 0 1px rgba(139, 92, 246, 0.1); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); opacity: 0; visibility: hidden; pointer-events: none; transition: opacity 0.2s, transform 0.2s; z-index: 10; z-index: 100; }
.sgis-badge-tip::after { content: ""; position: absolute; top: 100%; left: 50%; transform: translateX(-50%); border: 5px solid transparent; border-top-color: rgba(22, 18, 44, 0.98); }
.sgis-badge-row.has-tip:hover .sgis-badge-tip { opacity: 1; visibility: visible; transform: translateX(-50%) translateY(-4px); }
.sgis-badge-tip-head { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-bottom: 6px; margin-bottom: 6px; border-bottom: 1px solid rgba(139, 92, 246, 0.15); }
.sgis-badge-tip-name { font-size: 11px; font-weight: 700; color: #fff; flex: 1; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sgis-badge-tip-score { font-size: 13px; font-weight: 800; padding: 2px 8px; border-radius: 6px; }
.sgis-badge-tip-score.high { background: linear-gradient(135deg, rgba(52, 211, 153, 0.25), rgba(16, 185, 129, 0.15)); color: #34d399; }
.sgis-badge-tip-score.mid { background: linear-gradient(135deg, rgba(251, 191, 36, 0.25), rgba(245, 158, 11, 0.15)); color: #fbbf24; }
.sgis-badge-tip-score.low { background: rgba(148, 163, 184, 0.2); color: #cbd5e1; }
.sgis-badge-tip-row { display: flex; justify-content: space-between; font-size: 10px; color: var(--sgis-text-2); padding: 2px 0; }
.sgis-badge-tip-row span:last-child { color: var(--sgis-text); font-weight: 600; }
.sgis-badge-tip-bd { margin-top: 6px; padding-top: 6px; border-top: 1px solid rgba(255, 255, 255, 0.04); }
.sgis-badge-tip-bd-row { display: flex; align-items: center; gap: 6px; font-size: 9px; color: var(--sgis-text-2); margin-bottom: 2px; }
.sgis-badge-tip-bd-row > span:first-child { width: 30px; }
.sgis-badge-tip-bd-bar { flex: 1; height: 4px; background: rgba(255, 255, 255, 0.05); border-radius: 2px; overflow: hidden; }
.sgis-badge-tip-bd-bar > div { height: 100%; background: linear-gradient(90deg, #8b5cf6, #3b82f6); border-radius: 2px; }
.sgis-badge-row-score { font-size: 9px; font-weight: 700; padding: 1px 5px; border-radius: 3px; }
.sgis-badge-row-score.high { background: rgba(52, 211, 153, 0.18); color: #34d399; }
.sgis-badge-row-score.mid { background: rgba(251, 191, 36, 0.18); color: #fbbf24; }
.sgis-badge-row-score.low { background: rgba(148, 163, 184, 0.15); color: #cbd5e1; }
/* v2.3.19: 相似游戏推荐网格 + 库存标记(参考 SteamPeek 1.9 配色) */
.sgis-sim-toolbar { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; align-items: center; }
.sgis-sim-tbtn { padding: 4px 10px; font-size: 11px; border-radius: 5px; background: rgba(255,255,255,0.05); color: var(--sgis-text-2); border: 1px solid rgba(255,255,255,0.07); cursor: pointer; transition: all 0.15s; font-weight: 500; }
.sgis-sim-tbtn:hover { background: rgba(102,192,244,0.1); color: var(--sgis-text); }
.sgis-sim-tbtn.active { background: rgba(102,192,244,0.2); color: #66c0f4; border-color: rgba(102,192,244,0.4); }
.sgis-sim-tbtn .cnt { font-size: 10px; opacity: 0.7; margin-left: 3px; }
.sgis-sim-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 7px; }
.sgis-sim-card { position: relative; display: block; background: rgba(255,255,255,0.03); border: 1px solid rgba(255,255,255,0.07); border-radius: 7px; overflow: hidden; transition: all 0.2s; text-decoration: none; color: var(--sgis-text); }
.sgis-sim-card:hover { border-color: rgba(102,192,244,0.4); transform: translateY(-1px); box-shadow: 0 4px 12px rgba(0,0,0,0.3); }
.sgis-sim-card img { width: 100%; height: 62px; object-fit: cover; display: block; background: rgba(0,0,0,0.3); }
.sgis-sim-card-body { padding: 5px 8px; }
.sgis-sim-card-name { font-size: 11px; color: #fff; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.sgis-sim-card-price { font-size: 10px; color: var(--sgis-green-text); font-weight: 600; margin-top: 2px; }
.sgis-sim-card-price.free { color: #66c0f4; }
.sgis-sim-card-price.unknown { color: var(--sgis-text-2); font-weight: 400; }
/* 三色库存标记 - 严格复刻 SteamPeek 1.9 / Steam 原生配色 */
.sgis-sim-tag { position: absolute; top: 4px; left: 4px; z-index: 5; padding: 0 5px; font-size: 9px; line-height: 16px; height: 16px; text-transform: uppercase; display: flex; align-items: center; border-radius: 1px; box-shadow: 1px 1px 3px rgba(0,0,0,0.5); pointer-events: none; font-weight: 600; white-space: nowrap; letter-spacing: 0.3px; }
.sgis-sim-tag-owned { background: #67c1f5; color: #000; }
.sgis-sim-tag-wishlist { background: #e1f7f9; color: #4c6c8c; }
.sgis-sim-tag-ignored { background: #000; color: #fff; }
.sgis-sim-more { text-align: center; font-size: 11px; color: var(--sgis-text-2); margin-top: 8px; padding: 6px; }
.sgis-sim-more a { color: #66c0f4; text-decoration: none; }
.sgis-sim-more a:hover { text-decoration: underline; }
.sgis-sim-empty { font-size: 12px; color: var(--sgis-text-2); padding: 12px; text-align: center; }
.sgis-sim-login-hint { font-size: 10px; color: var(--sgis-text-2); padding: 6px 0; margin-bottom: 4px; line-height: 1.5; }
/* v2.3.19: 同类型游戏扩展推荐 */
.sgis-tagrec-tabs { display: flex; flex-wrap: wrap; gap: 5px; margin-bottom: 8px; }
.sgis-tagrec-tab { padding: 4px 10px; font-size: 11px; border-radius: 5px; background: rgba(255,255,255,0.05); color: var(--sgis-text-2); border: 1px solid rgba(255,255,255,0.07); cursor: pointer; transition: all 0.15s; font-weight: 500; }
.sgis-tagrec-tab:hover { background: rgba(139,92,246,0.1); color: var(--sgis-text); }
.sgis-tagrec-tab.active { background: rgba(139,92,246,0.2); color: #c4b5fd; border-color: rgba(139,92,246,0.4); }
.sgis-tagrec-loading { font-size: 12px; color: var(--sgis-text-2); padding: 10px; text-align: center; }
/* v1.7.0: 年度大作年度筛选 chip bar(在 toolbar 上方一行) */
.sglv-goty-year-bar { display: flex !important; flex-wrap: wrap !important; gap: 5px !important; padding: 6px 12px !important; background: rgba(15, 23, 42, 0.3) !important; border-bottom: 1px solid var(--sglv-border) !important; flex-shrink: 0 !important; }
.sglv-goty-year-chip { padding: 3px 10px !important; font-size: 11px !important; font-weight: 600 !important; border-radius: 12px !important; background: rgba(255, 255, 255, 0.04) !important; color: var(--sglv-text-2) !important; border: 1px solid rgba(255, 255, 255, 0.08) !important; cursor: pointer !important; transition: all 0.18s !important; font-variant-numeric: tabular-nums !important; }
.sglv-goty-year-chip:hover { background: rgba(139, 92, 246, 0.12) !important; color: var(--sglv-text) !important; border-color: rgba(139, 92, 246, 0.3) !important; }
.sglv-goty-year-chip.active { background: linear-gradient(135deg, rgba(139, 92, 246, 0.25), rgba(59, 130, 246, 0.15)) !important; color: #c4b5fd !important; border-color: rgba(139, 92, 246, 0.5) !important; box-shadow: 0 0 8px rgba(139, 92, 246, 0.2) !important; }
/* v2.7.1: 二级菜单 — 复刻 Steam 原生 supernav 下拉样式 */
.sglv-menu-wrap { position: relative !important; display: inline-block !important; }
.sglv-submenu { display: none !important; position: absolute !important; top: 100% !important; left: 0 !important; min-width: 120px !important; background: #171a21 !important; border: none !important; border-radius: 0 !important; box-shadow: none !important; z-index: 9999 !important; padding: 0 !important; margin-top: 0 !important; }
.sglv-menu-wrap:hover .sglv-submenu { display: block !important; }
.sglv-submenu-item { display: block !important; padding: 0 12px !important; line-height: 25px !important; height: 25px !important; color: #ffffff !important; text-decoration: none !important; white-space: nowrap !important; cursor: pointer !important; font-size: 11px !important; font-family: "Motiva Sans", Arial, Helvetica, sans-serif !important; background: #171a21 !important; }
.sglv-submenu-item:hover { background: #316373 !important; color: #ffffff !important; }
/* 收藏浮窗:复用主浮窗样式,仅微调标题色 */
.sgc-panel .sglv-header h2 { color: #c2a050 !important; }
.sgc-overlay { background: rgba(11, 17, 32, 0.75) !important; }`;