/* ═══════════════════════════════════════════════════════
   panel-v2.css — 新版工作面板样式（设置+宝箱）
   从零编写，不复用任何旧面板样式
   布局：90vw × 90vh，header固定 + body独立滚动
   ═══════════════════════════════════════════════════════ */

/* ── 遮罩层 ── */
.pv2-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(4px);
    -webkit-backdrop-filter: blur(4px);
    z-index: 2000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease;
}
.pv2-overlay.active {
    opacity: 1;
    pointer-events: auto;
}

/* ── 面板容器：90vw × 90vh，flex列 ── */
.pv2-panel {
    width: 90vw;
    height: 90vh;
    max-width: 90vw;
    max-height: 90vh;
    box-sizing: border-box;
    background: var(--card-bg, var(--bg-primary, #FDFBF7));
    border: 1px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 12px;
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.2);
    display: flex;
    flex-direction: column;
    overflow: hidden;
    transform: scale(0.96);
    transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1);
}
.pv2-overlay.active .pv2-panel {
    transform: scale(1);
}
[data-theme="dark"] .pv2-panel {
    background: var(--card-bg, var(--bg-primary, #2B2D33));
    border-color: var(--border, var(--bg-border, #3A3C46));
    box-shadow: 0 8px 40px rgba(0, 0, 0, 0.5);
}
[data-mode="advanced"] .pv2-panel {
    background: var(--bg-primary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
}
[data-mode="advanced"][data-theme="dark"] .pv2-panel {
    background: var(--bg-primary, #141518);
    border-color: var(--bg-border, #25262b);
}

/* ── Header：固定不滚 ── */
.pv2-header {
    flex-shrink: 0;
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 14px 20px;
    border-bottom: 1px solid var(--border, var(--bg-border, #D8D0C4));
    background: var(--card-bg, var(--bg-primary, #FDFBF7));
}
.pv2-header-right {
    display: flex;
    align-items: center;
    gap: 12px;
    flex-shrink: 0;
}
[data-theme="dark"] .pv2-header {
    border-bottom-color: var(--border, var(--bg-border, #3A3C46));
    background: var(--card-bg, var(--bg-primary, #2B2D33));
}
[data-mode="advanced"] .pv2-header {
    border-bottom-color: var(--bg-border, #2c2d33);
    background: var(--bg-primary, #1a1b1f);
}
.pv2-title {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--text-color, var(--text, #333));
    letter-spacing: 1px;
}
[data-mode="advanced"] .pv2-title {
    color: var(--text-color, #e5e7eb);
}
.pv2-close {
    background: none;
    border: none;
    font-size: 22px;
    color: var(--text-tertiary, #999);
    cursor: pointer;
    padding: 0;
    width: 32px;
    height: 32px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 50%;
    transition: all 0.15s ease;
    flex-shrink: 0;
}
.pv2-close:hover {
    background: var(--accent-soft, rgba(61, 140, 120, 0.1));
    color: var(--accent, var(--link-color, #3D8C78));
}
[data-mode="advanced"] .pv2-close:hover {
    background: var(--hover-bg, rgba(64, 158, 255, 0.15));
    color: var(--focus-color, #409eff);
}

/* ── Body：flex:1 独立滚动 ── */
.pv2-body {
    flex: 1;
    overflow-y: auto;
    overflow-x: hidden;
    -webkit-overflow-scrolling: touch;
}

/* ═══════════════════════════════════════════════════════
   设置面板内部布局
═══════════════════════════════════════════════════════ */

/* ── 双列布局：左设置 + 右账户（4边严格等比约束） ── */
.pv2-settings-layout {
    display: flex;
    flex-direction: row;
    height: 100%;
    gap: 16px;
    padding: 16px;
    box-sizing: border-box;
}
.pv2-settings-left,
.pv2-settings-right {
    flex: 1;
    min-width: 0;
    align-self: stretch;       /* 4边严格约束，撑满父容器 */
    overflow: hidden;          /* 4边严格约束，不溢出 */
    display: flex;
    flex-direction: column;
    gap: 14px;
    padding: 4px;
    box-sizing: border-box;
}
/* 右侧账户区：未登录态登录卡放大撑满右侧容器 */
.pv2-settings-right.pv2-login-state {
    align-items: stretch;
    justify-content: stretch;
}
.pv2-settings-right.pv2-login-state > .pv2-login-card {
    max-width: none;
    width: 100%;
    margin: 0;
    height: 100%;
    box-sizing: border-box;
    display: flex;
    flex-direction: column;
    justify-content: center;
}
/* 登录卡上边元素（图标/标题/描述）居中限宽，不跟随页面扩大 */
.pv2-login-card .pv2-login-icon,
.pv2-login-card .pv2-login-title,
.pv2-login-card .pv2-login-desc {
    max-width: 280px;
    margin-left: auto;
    margin-right: auto;
}
/* 登录卡输入框限宽，不跟随页面扩大 */
.pv2-login-card .pv2-form-row,
.pv2-login-card .pv2-form-error,
.pv2-login-card > .pv2-btn.pv2-btn-block {
    max-width: 320px;
    margin-left: auto;
    margin-right: auto;
    width: 100%;
    box-sizing: border-box;
}
/* 左右分列分隔线（极简模式） */
.pv2-settings-left {
    border-right: 1px solid var(--border, var(--bg-border, #D8D0C4));
    padding-right: 16px;
}
[data-theme="dark"] .pv2-settings-left {
    border-right-color: var(--border, var(--bg-border, #3A3C46));
}
[data-mode="advanced"] .pv2-settings-left {
    border-right: 1px solid var(--bg-border, #2c2d33);
}

/* ── 通用分区卡片 ── */
.pv2-section {
    margin-bottom: 20px;
}
.pv2-section-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--accent, var(--link-color, #3D8C78));
    margin-bottom: 12px;
    padding-left: 10px;
    border-left: 3px solid var(--accent, var(--link-color, #3D8C78));
    letter-spacing: 1px;
}
[data-mode="advanced"] .pv2-section-title {
    color: var(--focus-color, #409eff);
    border-left-color: var(--focus-color, #409eff);
}
.pv2-section-locked {
    opacity: 0.55;
    pointer-events: none;
}

/* ── 账户区 ── */
.pv2-account-row {
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px;
    background: var(--accent-soft, rgba(61, 140, 120, 0.06));
    border-radius: 8px;
    margin-bottom: 16px;
}
[data-mode="advanced"] .pv2-account-row {
    background: var(--hover-bg, rgba(64, 158, 255, 0.06));
}
.pv2-account-avatar {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    background: var(--accent, var(--link-color, #3D8C78));
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 700;
    flex-shrink: 0;
}
[data-mode="advanced"] .pv2-account-avatar {
    background: var(--focus-color, #409eff);
}
.pv2-account-name {
    font-size: 15px;
    font-weight: 700;
    color: var(--text-color, var(--text, #333));
}
[data-mode="advanced"] .pv2-account-name {
    color: var(--text-color, #e5e7eb);
}
.pv2-account-status {
    font-size: 12px;
    color: var(--text-tertiary, #999);
    margin-top: 2px;
}
.pv2-account-login-hint {
    text-align: center;
    padding: 24px;
    color: var(--text-tertiary, #999);
    font-size: 14px;
}
.pv2-account-login-btn {
    margin-top: 12px;
    padding: 8px 24px;
    background: var(--accent, var(--link-color, #3D8C78));
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 14px;
    cursor: pointer;
    transition: opacity 0.15s ease;
}
.pv2-account-login-btn:hover {
    opacity: 0.85;
}
[data-mode="advanced"] .pv2-account-login-btn {
    background: var(--focus-color, #409eff);
}

/* ── 数据汇总卡片网格 ── */
.pv2-summary-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}
.pv2-summary-card {
    padding: 14px;
    background: var(--accent-soft, rgba(61, 140, 120, 0.06));
    border-radius: 8px;
    text-align: center;
}
[data-mode="advanced"] .pv2-summary-card {
    background: var(--hover-bg, rgba(64, 158, 255, 0.06));
}
.pv2-summary-label {
    font-size: 12px;
    color: var(--text-tertiary, #999);
    margin-bottom: 4px;
}
.pv2-summary-value {
    font-size: 24px;
    font-weight: 700;
    color: var(--accent, var(--link-color, #3D8C78));
}
[data-mode="advanced"] .pv2-summary-value {
    color: var(--focus-color, #409eff);
}
.pv2-summary-unit {
    font-size: 12px;
    font-weight: 400;
    color: var(--text-tertiary, #999);
    margin-left: 2px;
}

/* ── 操作按钮 ── */
.pv2-actions {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}
.pv2-btn {
    padding: 8px 18px;
    border: 1px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    transition: all 0.15s ease;
    background: var(--card-bg, var(--bg-primary, #fff));
    color: var(--text-color, var(--text, #333));
}
.pv2-btn:hover {
    border-color: var(--accent, var(--link-color, #3D8C78));
    color: var(--accent, var(--link-color, #3D8C78));
}
[data-mode="advanced"] .pv2-btn {
    background: var(--bg-secondary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
    color: var(--text-color, #e5e7eb);
}
[data-mode="advanced"] .pv2-btn:hover {
    border-color: var(--focus-color, #409eff);
    color: var(--focus-color, #409eff);
}
.pv2-btn-danger {
    background: #e74c3c;
    color: #fff;
    border-color: #e74c3c;
}
.pv2-btn-danger:hover {
    opacity: 0.85;
}
[data-mode="advanced"] .pv2-btn-danger {
    background: transparent;
    color: var(--error-color, #f56c6c);
    border-color: var(--error-color, rgba(245,108,108,0.3));
}
[data-mode="advanced"] .pv2-btn-danger:hover {
    background: rgba(245,108,108,0.08);
    opacity: 1;
}
.pv2-btn-primary {
    background: var(--accent, var(--link-color, #3D8C78));
    color: #fff;
    border-color: var(--accent, var(--link-color, #3D8C78));
}
.pv2-btn-primary:hover {
    opacity: 0.85;
}
[data-mode="advanced"] .pv2-btn-primary {
    background: var(--focus-color, #409eff);
    border-color: var(--focus-color, #409eff);
}
.pv2-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ── 主题预设区 ── */
.pv2-preset-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
}
.pv2-preset-card {
    padding: 14px;
    border: 2px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
    text-align: center;
    background: var(--card-bg, var(--bg-primary, #fff));
}
.pv2-preset-card:hover {
    border-color: var(--accent, var(--link-color, #3D8C78));
}
.pv2-preset-card.active {
    border-color: var(--accent, var(--link-color, #3D8C78));
    background: var(--accent-soft, rgba(61, 140, 120, 0.08));
}
[data-mode="advanced"] .pv2-preset-card {
    background: var(--bg-primary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
}
[data-mode="advanced"] .pv2-preset-card:hover,
[data-mode="advanced"] .pv2-preset-card.active {
    border-color: var(--focus-color, #409eff);
    background: var(--hover-bg, rgba(64, 158, 255, 0.08));
}
.pv2-preset-name {
    font-size: 14px;
    font-weight: 700;
    color: var(--text-color, var(--text, #333));
}
[data-mode="advanced"] .pv2-preset-name {
    color: var(--text-color, #e5e7eb);
}
.pv2-hint {
    padding: 10px 12px;
    margin-bottom: 12px;
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-secondary, #666);
}
.pv2-hint-warning {
    background: rgba(255, 165, 0, 0.08);
    border-left: 3px solid #ffa500;
}
.pv2-hint-info {
    background: rgba(64, 158, 255, 0.08);
    border-left: 3px solid #409eff;
}

/* ── 日夜间区 ── */
.pv2-theme-options {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
    justify-content: center;
}
.pv2-theme-btn {
    flex: 1;
    min-width: 100px;
    padding: 12px 16px;
    border: 2px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 8px;
    cursor: pointer;
    font-size: 14px;
    transition: all 0.15s ease;
    background: var(--card-bg, var(--bg-primary, #fff));
    color: var(--text-color, var(--text, #333));
}
.pv2-theme-btn:hover {
    border-color: var(--accent, var(--link-color, #3D8C78));
}
.pv2-theme-btn.active {
    border-color: var(--accent, var(--link-color, #3D8C78));
    background: var(--accent-soft, rgba(61, 140, 120, 0.08));
    color: var(--accent, var(--link-color, #3D8C78));
    font-weight: 700;
}
[data-mode="advanced"] .pv2-theme-btn {
    background: var(--bg-primary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
    color: var(--text-color, #e5e7eb);
}
[data-mode="advanced"] .pv2-theme-btn:hover,
[data-mode="advanced"] .pv2-theme-btn.active {
    border-color: var(--focus-color, #409eff);
    background: var(--hover-bg, rgba(64, 158, 255, 0.08));
    color: var(--focus-color, #409eff);
}
.pv2-theme-btn:disabled {
    opacity: 0.4;
    cursor: not-allowed;
}

/* ── 缓存清除区 ── */
.pv2-cache-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
    justify-content: center;
    margin-bottom: 16px;
}
.pv2-cache-btn {
    padding: 12px;
    border: 1px solid #e74c3c;
    border-radius: 6px;
    cursor: pointer;
    font-size: 13px;
    transition: all 0.15s ease;
    background: #fff;
    color: #e74c3c;
}
.pv2-cache-btn:hover {
    background: #e74c3c;
    color: #fff;
}
[data-theme="dark"] .pv2-cache-btn {
    background: var(--card-bg, var(--bg-primary, #2B2D33));
}
[data-mode="advanced"] .pv2-cache-btn {
    background: var(--bg-primary, #1a1b1f);
}
.pv2-cache-divider {
    height: 1px;
    background: var(--border, var(--bg-border, #D8D0C4));
    margin: 12px 0;
}
[data-mode="advanced"] .pv2-cache-divider {
    background: var(--bg-border, #2c2d33);
}

/* ── 确认弹窗 ── */
.pv2-confirm-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0, 0, 0, 0.5);
    z-index: 3000;
    display: flex;
    justify-content: center;
    align-items: center;
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.2s ease;
}
.pv2-confirm-overlay.active {
    opacity: 1;
    pointer-events: auto;
}
.pv2-confirm-box {
    background: var(--card-bg, var(--bg-primary, #FDFBF7));
    border-radius: 10px;
    padding: 24px;
    max-width: 420px;
    width: 90%;
    box-shadow: 0 8px 32px rgba(0, 0, 0, 0.3);
    transform: scale(0.95);
    transition: transform 0.2s ease;
}
.pv2-confirm-overlay.active .pv2-confirm-box {
    transform: scale(1);
}
[data-theme="dark"] .pv2-confirm-box,
[data-mode="advanced"] .pv2-confirm-box {
    background: var(--bg-primary, #1a1b1f);
}
.pv2-confirm-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--text-color, var(--text, #333));
    margin-bottom: 8px;
}
[data-mode="advanced"] .pv2-confirm-title {
    color: var(--text-color, #e5e7eb);
}
.pv2-confirm-desc {
    font-size: 13px;
    color: var(--text-secondary, #666);
    margin-bottom: 16px;
    line-height: 1.6;
}
[data-mode="advanced"] .pv2-confirm-desc {
    color: var(--text-secondary, #a8abb2);
}
.pv2-confirm-detail {
    margin-top: 8px;
    padding: 10px;
    background: var(--accent-soft, rgba(61, 140, 120, 0.06));
    border-radius: 6px;
    font-size: 12px;
    color: var(--text-tertiary, #999);
}
[data-mode="advanced"] .pv2-confirm-detail {
    background: var(--hover-bg, rgba(64, 158, 255, 0.06));
}
.pv2-confirm-actions {
    display: flex;
    gap: 10px;
    justify-content: flex-end;
}

/* ═══════════════════════════════════════════════════════
   宝箱面板内部布局
   ═══════════════════════════════════════════════════════ */

/* ── 工具条：全量加载+搜索（固定不滚） ── */
.pv2-tbx-toolbar {
    flex-shrink: 0;
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 12px 20px;
    border-bottom: 1px solid var(--border, var(--bg-border, #D8D0C4));
    max-width: 600px;
    margin: 0 auto;
    width: 100%;
}
[data-theme="dark"] .pv2-tbx-toolbar {
    border-bottom-color: var(--border, var(--bg-border, #3A3C46));
}
[data-mode="advanced"] .pv2-tbx-toolbar {
    border-bottom-color: var(--bg-border, #2c2d33);
}
.pv2-tbx-full-btn {
    padding: 8px 16px;
    background: var(--accent, var(--link-color, #3D8C78));
    color: #fff;
    border: none;
    border-radius: 6px;
    font-size: 13px;
    cursor: pointer;
    white-space: nowrap;
    transition: opacity 0.15s ease;
}
.pv2-tbx-full-btn:hover {
    opacity: 0.85;
}
[data-mode="advanced"] .pv2-tbx-full-btn {
    background: var(--focus-color, #409eff);
}
.pv2-tbx-full-state {
    font-size: 12px;
    color: var(--text-tertiary, #999);
    white-space: nowrap;
}
.pv2-tbx-search {
    flex: 1;
    padding: 8px 12px;
    border: 1px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 6px;
    font-size: 13px;
    background: var(--card-bg, var(--bg-primary, #fff));
    color: var(--text-color, var(--text, #333));
    outline: none;
    transition: border-color 0.15s ease;
}
.pv2-tbx-search:focus {
    border-color: var(--accent, var(--link-color, #3D8C78));
}
[data-theme="dark"] .pv2-tbx-search {
    background: var(--card-bg, var(--bg-primary, #2B2D33));
    border-color: var(--border, var(--bg-border, #3A3C46));
    color: var(--text-color, var(--text, #e5e7eb));
}
[data-mode="advanced"] .pv2-tbx-search {
    background: var(--bg-primary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
    color: var(--text-color, #e5e7eb);
}
[data-mode="advanced"] .pv2-tbx-search:focus {
    border-color: var(--focus-color, #409eff);
}

/* ── 分类卡片网格 ── */
.pv2-tbx-content {
    flex: 1;
    overflow-y: auto;
    padding: 20px;
    max-width: 600px;
    margin: 0 auto;
    width: 100%;
}
/* 宝箱标题居中（仅宝箱面板，不影响设置面板） */
#pv2Toolbox .pv2-title {
    flex: 1;
    text-align: center;
}
.pv2-tbx-category {
    margin-bottom: 24px;
}
.pv2-tbx-cat-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--accent, var(--link-color, #3D8C78));
    margin-bottom: 12px;
    padding-bottom: 6px;
    border-bottom: 2px solid var(--accent-soft, rgba(61, 140, 120, 0.15));
    letter-spacing: 1px;
}
[data-mode="advanced"] .pv2-tbx-cat-title {
    color: var(--focus-color, #409eff);
    border-bottom-color: var(--hover-bg, rgba(64, 158, 255, 0.15));
}
.pv2-tbx-tool-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
    gap: 10px;
}
.pv2-tbx-tool-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    padding: 12px 8px;
    border: 1px solid var(--border, var(--bg-border, #D8D0C4));
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
    background: var(--card-bg, var(--bg-primary, #fff));
    text-align: center;
}
.pv2-tbx-tool-card:hover {
    border-color: var(--accent, var(--link-color, #3D8C78));
    background: var(--accent-soft, rgba(61, 140, 120, 0.06));
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);
}
[data-theme="dark"] .pv2-tbx-tool-card {
    background: var(--card-bg, var(--bg-primary, #2B2D33));
    border-color: var(--border, var(--bg-border, #3A3C46));
}
[data-mode="advanced"] .pv2-tbx-tool-card {
    background: var(--bg-primary, #1a1b1f);
    border-color: var(--bg-border, #2c2d33);
}
[data-mode="advanced"] .pv2-tbx-tool-card:hover {
    border-color: var(--focus-color, #409eff);
    background: var(--hover-bg, rgba(64, 158, 255, 0.06));
}
.pv2-tbx-tool-icon {
    font-size: 26px;
    line-height: 1;
}
.pv2-tbx-tool-name {
    font-size: 12px;
    font-weight: 700;
    color: var(--text-color, var(--text, #333));
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
[data-mode="advanced"] .pv2-tbx-tool-name {
    color: var(--text-color, #e5e7eb);
}
.pv2-tbx-tool-desc {
    font-size: 10px;
    color: var(--text-tertiary, #999);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
.pv2-tbx-empty {
    text-align: center;
    padding: 40px;
    color: var(--text-tertiary, #999);
    font-size: 14px;
}

/* ═══════════════════════════════════════════════════════
   响应式：手机端全屏化
   ═══════════════════════════════════════════════════════ */
@media (max-width: 640px) {
    .pv2-panel {
        width: 100vw;
        height: 100vh;
        max-width: 100vw;
        max-height: 100vh;
        border-radius: 0;
    }
    /* 设置面板：双列变上下堆叠（左设置在上、右账户在下） */
    .pv2-settings-layout {
        flex-direction: column;
        padding: 12px;
        gap: 12px;
    }
    .pv2-settings-left {
        flex: 0 0 auto;
        border-right: none;
        border-bottom: 1px solid var(--border, var(--bg-border, #D8D0C4));
        padding-right: 0;
        padding-bottom: 12px;
    }
    [data-theme="dark"] .pv2-settings-left {
        border-bottom-color: var(--border, var(--bg-border, #3A3C46));
    }
    [data-mode="advanced"] .pv2-settings-left {
        border-bottom-color: var(--bg-border, #2c2d33);
    }
    .pv2-settings-left,
    .pv2-settings-right {
        padding: 4px;
        overflow: visible;         /* 手机端允许内容展开，body 滑动切换卡片 */
        height: auto;
        align-self: auto;
    }
    .pv2-left-wrap {
        overflow: visible;         /* 合并底框内容自然展开 */
        height: auto;
        flex: 0 0 auto;
    }
    .pv2-left-sec {
        flex: 0 0 auto;             /* 4 模块自然高度堆叠 */
    }
    /* 手机端 body 允许滚动（卡片范围之间切换） */
    .pv2-body {
        overflow-y: auto;
        overflow-x: hidden;
    }
    /* 手机端登录卡：不撑满，恢复自然高度，内容居中 */
    .pv2-settings-right.pv2-login-state {
        align-items: center;
        justify-content: center;
    }
    .pv2-settings-right.pv2-login-state > .pv2-login-card {
        height: auto;
        max-width: 360px;
        width: 100%;
        margin: 0 auto;
    }
    /* 手机端左合并底框：自然高度，内部 4 模块等比 */
    .pv2-left-wrap {
        height: auto;
        flex: 0 0 auto;
    }
    .pv2-left-sec {
        flex: 0 0 auto;
    }
    /* 数据汇总卡片变2列 */
    .pv2-summary-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    /* 手机端宝箱：取消限宽，网格铺满全屏 */
    .pv2-tbx-toolbar,
    .pv2-tbx-content {
        max-width: none;
    }
    /* 手机端宝箱标题恢复靠左 */
    #pv2Toolbox .pv2-title {
        flex: 0 0 auto;
        text-align: left;
    }
} /* ← 关掉 L736 未闭合的 @media */

/* ═══ 窄屏自适应：文字图标缩小/隐藏 ═══ */
@media (max-width: 768px) {
    .pv2-mini-icon { font-size: 16px; }
    .pv2-mini-icon-name { display: none; }   /* 中等窄屏只留图标 */
    .pv2-card-title { font-size: 12px; }
    .pv2-mode-btn,
    .pv2-cache-tag,
    .pv2-apply-btn { font-size: 11px; }
}
@media (max-width: 600px) {
    /* 极窄屏：砍图标只留文字，按钮变扁 */
    .pv2-mini-icon { display: none; }
    .pv2-mini-icon-name { display: block; font-size: 11px; }
    .pv2-mini-icon-btn { height: 32px; flex-direction: row; }
    .pv2-mini-swatch { width: 14px; height: 14px; }
    .pv2-card-title { font-size: 11px; }
    .pv2-mode-btn,
    .pv2-cache-tag,
    .pv2-apply-btn { font-size: 10px; height: 30px; }
}
@media (max-width: 480px) {
    .pv2-card-title { font-size: 10px; }
    .pv2-mode-btn,
    .pv2-cache-tag,
    .pv2-apply-btn { font-size: 9px; height: 28px; }
}

/* ═══════════════════════════════════════════════════════
   现代可视化样式（panel-v2.css 增补段）
   ═══════════════════════════════════════════════════════ */

/* ── 模式切换分段控件 ── */
.pv2-mode-toggle {
    display: flex;
    background: var(--bg-subtle, rgba(0,0,0,0.04));
    border-radius: 8px;
    padding: 2px;
    gap: 2px;
    width: 100%;
}
.pv2-mode-btn {
    flex: 1;
    padding: clamp(6px, 0.8vw, 9px) clamp(10px, 1vw, 14px);
    font-size: clamp(11px, 1.1vw, 13px);
    font-weight: 500;
    height: clamp(28px, 3.5vw, 38px);
    line-height: 1;
    color: var(--text-secondary, #666);
    background: transparent;
    border: none;
    border-radius: 6px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
    box-sizing: border-box;
}
.pv2-mode-btn:hover { color: var(--text, #333); }
.pv2-mode-btn.active {
    background: var(--accent, #3D8C78);
    color: #fff;
    font-weight: 600;
}
.pv2-mode-btn.disabled {
    opacity: 0.4;
    cursor: not-allowed;
}
[data-mode="advanced"] .pv2-mode-btn.active {
    background: var(--focus-color, #409eff);
}

/* ── 通用卡片 ── */
.pv2-card {
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 10px;
    padding: 18px 20px;
    margin-bottom: 14px;
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    transition: box-shadow 0.2s;
}
.pv2-card:hover { box-shadow: 0 2px 8px rgba(0,0,0,0.06); }
[data-theme="dark"] .pv2-card,
[data-mode="advanced"] .pv2-card {
    background: var(--bg-primary, rgba(255,255,255,0.03));
    border-color: var(--bg-border, rgba(255,255,255,0.08));
}

.pv2-card-title {
    font-size: clamp(11px, 1.1vw, 13px);
    font-weight: 600;
    color: var(--text, #333);
    text-align: center;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}
.pv2-card-title-row {
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
}
.pv2-card-title-row .pv2-card-title {
    margin-bottom: 0;
    text-align: center;
    grid-column: 2;
}
.pv2-card-title-row > :last-child:not(.pv2-card-title) {
    grid-column: 3;
    justify-self: end;
}
[data-mode="advanced"] .pv2-card-title { color: var(--text-heading); }

/* ═══════════════════════════════════════════════════════
   左列合并底框（4 模块共用 1 个底框，分隔线区分）
   ═══════════════════════════════════════════════════════ */

/* 左侧合并底框：撑满分栏容器，内部 4 模块 flex 等比 + 分隔线 */
.pv2-left-wrap {
    flex: 1;
    display: flex;
    flex-direction: column;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 10px;
    padding: clamp(10px, 1.2vw, 16px);
    box-shadow: 0 1px 3px rgba(0,0,0,0.04);
    box-sizing: border-box;
    overflow: hidden;
    min-height: 0;
}
[data-theme="dark"] .pv2-left-wrap,
[data-mode="advanced"] .pv2-left-wrap {
    background: var(--bg-primary, rgba(255,255,255,0.03));
    border-color: var(--bg-border, rgba(255,255,255,0.08));
}
/* 各模块段：flex:1 等比撑满，内部容器隔离 + gap 代替固定 margin */
.pv2-left-sec {
    flex: 1;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(6px, 0.8vw, 12px);    /* 用 gap 代替标题固定 margin-bottom，等比缩放 */
    min-height: 0;
    box-sizing: border-box;
    overflow: hidden;                  /* 模块隔离，内部溢出不挤压其他模块 */
}
/* 标题行包容器：固定隔离，高度自动 */
.pv2-sec-title-wrap {
    flex: 0 0 auto;                    /* 标题不参与等比，固定自然高度 */
    box-sizing: border-box;
}
/* 按钮行包容器：撑满剩余，内部内容垂直居中 */
.pv2-sec-body-wrap {
    flex: 1 1 auto;
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: clamp(6px, 0.8vw, 10px);       /* 应用按钮和按钮行之间也用 gap */
    min-height: 0;
    box-sizing: border-box;
    overflow: hidden;
}
/* 分隔线 */
.pv2-left-divider {
    border: none;
    border-top: 1px solid var(--border, var(--bg-border, #D8D0C4));
    margin: clamp(4px, 0.5vw, 8px) 0;
    flex-shrink: 0;
}
[data-theme="dark"] .pv2-left-divider {
    border-top-color: var(--border, var(--bg-border, #3A3C46));
}
[data-mode="advanced"] .pv2-left-divider {
    border-top-color: var(--bg-border, rgba(255,255,255,0.08));
}
/* 登录态：左侧合并底框整体 disabled 灰色（除缓存块） */
.pv2-left-wrap[data-locked="true"] .pv2-left-sec:not(#pv2CacheBlock) .pv2-mode-btn,
.pv2-left-wrap[data-locked="true"] .pv2-left-sec:not(#pv2CacheBlock) .pv2-mini-preset,
.pv2-left-wrap[data-locked="true"] .pv2-left-sec:not(#pv2CacheBlock) .pv2-mini-icon-btn,
.pv2-left-wrap[data-locked="true"] .pv2-left-sec:not(#pv2CacheBlock) .pv2-apply-btn {
    opacity: 0.45;
    pointer-events: none;
    cursor: not-allowed;
}

/* 云端接管标签（登录态标题右侧） */
.pv2-cloud-tag {
    font-size: 11px;
    color: var(--text-tertiary, #999);
    font-weight: 500;
    letter-spacing: 0.5px;
    background: var(--bg-subtle, rgba(0,0,0,0.04));
    padding: 2px 8px;
    border-radius: 4px;
}
[data-mode="advanced"] .pv2-cloud-tag {
    background: var(--hover-bg, rgba(64,158,255,0.08));
}

/* 登录态：前 3 块内容灰色不可点 */
.pv2-left-card[data-locked="true"] .pv2-mode-btn,
.pv2-left-card[data-locked="true"] .pv2-mini-preset,
.pv2-left-card[data-locked="true"] .pv2-mini-icon-btn {
    opacity: 0.45;
    pointer-events: auto;
    cursor: not-allowed;
}
.pv2-left-card[data-locked="true"] .pv2-mode-btn:hover,
.pv2-left-card[data-locked="true"] .pv2-mini-preset:hover,
.pv2-left-card[data-locked="true"] .pv2-mini-icon-btn:hover {
    transform: none;
    box-shadow: none;
}

/* 主题预设：撑满对齐 */
.pv2-mini-preset-grid {
    display: flex;
    gap: 10px;
}
.pv2-mini-preset {
    flex: 1;
    display: flex;
    align-items: center;
    gap: clamp(4px, 0.6vw, 8px);
    padding: clamp(6px, 0.8vw, 9px) clamp(6px, 0.8vw, 10px);
    height: clamp(32px, 4vw, 44px);
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
    justify-content: center;
    box-sizing: border-box;
    overflow: hidden;
}
.pv2-mini-preset:hover:not(.active) {
    border-color: var(--accent, var(--link-color, #3D8C78));
}
.pv2-mini-preset.active {
    border-color: var(--accent, var(--link-color, #3D8C78));
    box-shadow: 0 0 0 2px var(--accent-soft, rgba(61,140,120,0.15));
}
[data-mode="advanced"] .pv2-mini-preset:hover:not(.active) {
    border-color: var(--focus-color, #409eff);
}
[data-mode="advanced"] .pv2-mini-preset.active {
    border-color: var(--focus-color, #409eff);
    box-shadow: 0 0 0 2px rgba(64,158,239,0.15);
}
.pv2-mini-swatch {
    width: clamp(16px, 2vw, 24px);
    height: clamp(16px, 2vw, 24px);
    border-radius: 6px;
    border: 1px solid var(--border, rgba(0,0,0,0.15));
    flex-shrink: 0;
    background-size: cover;
    background-position: center;
}
.pv2-mini-name {
    font-size: clamp(10px, 1.1vw, 12px);
    font-weight: 500;
    color: var(--text, #333);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    flex: 1;
    min-width: 0;
}
[data-mode="advanced"] .pv2-mini-name { color: var(--text-color, #e5e7eb); }

/* 日间夜：图标按钮撑满对齐 */
.pv2-mini-icon-row {
    display: flex;
    gap: 10px;
}
.pv2-mini-icon-btn {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: clamp(2px, 0.4vw, 4px);
    padding: clamp(4px, 0.6vw, 10px) clamp(6px, 0.8vw, 14px);
    height: clamp(36px, 4vw, 46px);
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s ease;
    overflow: hidden;
    box-sizing: border-box;
}
.pv2-mini-icon-btn:hover:not(.active) {
    border-color: var(--accent, var(--link-color, #3D8C78));
}
.pv2-mini-icon-btn.active {
    border-color: var(--accent, var(--link-color, #3D8C78));
    background: var(--accent-soft, rgba(61,140,120,0.1));
}
[data-mode="advanced"] .pv2-mini-icon-btn:hover:not(.active) {
    border-color: var(--focus-color, #409eff);
}
[data-mode="advanced"] .pv2-mini-icon-btn.active {
    border-color: var(--focus-color, #409eff);
    background: var(--hover-bg, rgba(64,158,255,0.1));
}
.pv2-mini-icon {
    font-size: clamp(14px, 1.6vw, 20px);
    line-height: 1;
}
.pv2-mini-icon-name {
    font-size: clamp(9px, 0.9vw, 11px);
    color: var(--text-secondary, #666);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 100%;
}
[data-mode="advanced"] .pv2-mini-icon-name { color: var(--text-secondary, #a8abb2); }

/* 缓存清除：标签按钮撑满对齐 */
.pv2-cache-tag-row {
    display: flex;
    gap: 8px;
    margin-bottom: 12px;
}
.pv2-cache-tag {
    flex: 1;
    padding: clamp(6px, 0.8vw, 9px) clamp(6px, 0.7vw, 8px);
    height: clamp(28px, 3.2vw, 36px);
    font-size: clamp(10px, 1vw, 12px);
    border: 1px solid #e74c3c;
    border-radius: 6px;
    cursor: pointer;
    background: transparent;
    color: #e74c3c;
    transition: all 0.15s ease;
    font-family: inherit;
    text-align: center;
    box-sizing: border-box;
    overflow: hidden;
}
.pv2-cache-tag:hover {
    background: #e74c3c;
    color: #fff;
}
[data-theme="dark"] .pv2-cache-tag,
[data-mode="advanced"] .pv2-cache-tag {
    border-color: rgba(231,76,60,0.6);
    color: #ff6b5a;
}
[data-theme="dark"] .pv2-cache-tag:hover,
[data-mode="advanced"] .pv2-cache-tag:hover {
    background: #e74c3c;
    color: #fff;
}
/* 缓存清除：5 按钮同质化 grid（3+2 排列，第二行 2 个撑满） */
.pv2-cache-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
}
.pv2-cache-grid .pv2-cache-tag:nth-child(4):nth-last-child(2) {
    /* 第4个且倒数第2个：说明是 3+2 布局，第4-5在第2行 */
    grid-column: 1 / 2;
}
.pv2-cache-grid .pv2-cache-tag:nth-child(5):last-child {
    /* 第5个且最后：第2行第2个，撑满剩余 2 列 */
    grid-column: 2 / 4;
}
.pv2-cache-grid .pv2-cache-tag:last-child:nth-child(5) {
    /* 共5个时第5个（全部清除）跨2列撑满第2行 */
    grid-column: 2 / 4;
}
/* 应用按钮 */
.pv2-apply-btn {
    margin-top: clamp(4px, 0.6vw, 8px);
    padding: clamp(6px, 0.8vw, 8px) clamp(10px, 1vw, 14px);
    height: clamp(28px, 3.2vw, 36px);
    font-size: clamp(11px, 1.1vw, 13px);
    font-weight: 500;
    border: 1px solid var(--accent, var(--link-color, #3D8C78));
    background: transparent;
    color: var(--accent, var(--link-color, #3D8C78));
    border-radius: 6px;
    cursor: pointer;
    font-family: inherit;
    width: 100%;
    box-sizing: border-box;
    transition: all 0.15s ease;
}
.pv2-apply-btn:hover {
    background: var(--accent, var(--link-color, #3D8C78));
    color: #fff;
}
[data-mode="advanced"] .pv2-apply-btn {
    border-color: var(--focus-color, #409eff);
    color: var(--focus-color, #409eff);
}
[data-mode="advanced"] .pv2-apply-btn:hover {
    background: var(--focus-color, #409eff);
    color: #fff;
}
.pv2-btn-sm {
    padding: 6px 14px;
    font-size: 12px;
}

/* ── 登录卡片 ── */
.pv2-login-card {
    max-width: 360px;
    margin: clamp(12px, 2vw, 24px) auto;
    background: var(--card-bg, #fff);
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: clamp(10px, 1.2vw, 14px);
    padding: clamp(16px, 2.5vw, 28px);
    text-align: center;
    box-shadow: 0 2px 12px rgba(0,0,0,0.06);
}
.pv2-login-icon { font-size: clamp(24px, 3vw, 36px); margin-bottom: clamp(8px, 1vw, 12px); }
.pv2-login-title {
    font-size: clamp(14px, 1.5vw, 18px);
    font-weight: 600;
    color: var(--text, #333);
    margin-bottom: clamp(4px, 0.5vw, 6px);
}
.pv2-login-desc {
    font-size: clamp(10px, 1vw, 12px);
    color: var(--text-tertiary, #999);
    margin-bottom: clamp(12px, 1.5vw, 20px);
    line-height: 1.5;
}

/* ── 尽情期待占位卡（隐藏登录入口） ── */
.pv2-expect-card { cursor: default; user-select: none; }
.pv2-expect-card .pv2-login-desc { margin-bottom: 0; }
.pv2-login-card .pv2-form-row {
    text-align: left;
    margin-bottom: clamp(10px, 1.2vw, 14px);
}
.pv2-form-row { margin-bottom: clamp(10px, 1.2vw, 14px); }
.pv2-form-label {
    display: block;
    font-size: clamp(10px, 1vw, 12px);
    color: var(--text-secondary, #666);
    margin-bottom: clamp(4px, 0.5vw, 6px);
    font-weight: 500;
}
.pv2-form-input {
    width: 100%;
    box-sizing: border-box;
    padding: clamp(7px, 0.8vw, 9px) clamp(10px, 1vw, 12px);
    font-size: clamp(11px, 1.1vw, 13px);
    border: 1px solid var(--border, rgba(0,0,0,0.15));
    border-radius: 8px;
    background: var(--bg-primary, transparent);
    color: var(--text, #333);
    font-family: inherit;
    transition: border-color 0.15s, box-shadow 0.15s;
}
.pv2-form-input:focus {
    outline: none;
    border-color: var(--accent, #3D8C78);
    box-shadow: 0 0 0 3px var(--accent-soft, rgba(61,140,120,0.15));
}
.pv2-form-error {
    font-size: clamp(10px, 1vw, 12px);
    color: #f56c6c;
    min-height: clamp(12px, 1.2vw, 16px);
    margin-bottom: clamp(6px, 0.7vw, 8px);
}
[data-theme="dark"] .pv2-login-card,
[data-mode="advanced"] .pv2-login-card {
    background: var(--bg-primary, rgba(255,255,255,0.04));
    border-color: var(--bg-border, rgba(255,255,255,0.1));
}
[data-mode="advanced"] .pv2-login-icon { color: var(--text-color); }
[data-mode="advanced"] .pv2-login-title { color: var(--text-heading); }
[data-mode="advanced"] .pv2-login-desc { color: var(--text-secondary); }
[data-mode="advanced"] .pv2-form-label { color: var(--text-secondary); }
[data-mode="advanced"] .pv2-form-input {
    background: var(--bg-secondary);
    border-color: var(--bg-border);
    color: var(--text-color);
}
[data-mode="advanced"] .pv2-form-input:focus {
    border-color: var(--focus-color);
    box-shadow: 0 0 0 3px var(--focus-shadow, rgba(64,158,255,0.18));
}
[data-mode="advanced"] .pv2-form-error { color: var(--error-color, #f56c6c); }

/* ── 通用按钮 ── */
.pv2-btn {
    padding: 8px 16px;
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary, #666);
    background: var(--bg-subtle, rgba(0,0,0,0.04));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 8px;
    cursor: pointer;
    transition: all 0.15s;
    font-family: inherit;
}
.pv2-btn:hover {
    background: var(--bg-hover, rgba(0,0,0,0.08));
}
.pv2-btn:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}
.pv2-btn-primary {
    background: var(--accent, #3D8C78);
    color: #fff;
    border-color: transparent;
}
.pv2-btn-primary:hover { filter: brightness(1.08); }
.pv2-btn-ghost {
    background: transparent;
    border-color: var(--border, rgba(0,0,0,0.15));
}
[data-mode="advanced"] .pv2-btn-ghost {
    border-color: var(--bg-border, rgba(255,255,255,0.15));
}
.pv2-btn-block {
    width: 100%;
    box-sizing: border-box;
}

/* ── 身份卡（使用 .pv2-card 默认 padding，不特殊覆盖） ── */
.pv2-identity-row {
    display: flex;
    align-items: center;
    gap: 14px;
    margin-bottom: 16px;
}
.pv2-avatar-ring {
    width: 48px;
    height: 48px;
    border-radius: 50%;
    padding: 2px;
    background: linear-gradient(135deg, var(--accent, #3D8C78), #6BB7A8);
    flex-shrink: 0;
}
[data-mode="advanced"] .pv2-avatar-ring {
    background: linear-gradient(135deg, var(--focus-color, #409eff), #66b1ff);
}
.pv2-avatar-inner {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    background: var(--card-bg, #fff);
    color: var(--accent, #3D8C78);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    font-weight: 700;
}
[data-mode="advanced"] .pv2-avatar-inner {
    color: var(--focus-color, #409eff);
}
[data-mode="advanced"] .pv2-identity-name { color: var(--text-heading); }
[data-mode="advanced"] .pv2-identity-status { color: var(--text-secondary); }
.pv2-identity-info { flex: 1; min-width: 0; }
.pv2-identity-name {
    font-size: 16px;
    font-weight: 600;
    color: var(--text, #333);
    margin-bottom: 4px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}
.pv2-identity-status {
    font-size: 11px;
    color: var(--text-tertiary, #999);
    display: flex;
    align-items: center;
    gap: 6px;
}
.pv2-sync-dot {
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #5AD8A6;
    animation: pv2-pulse 2s infinite;
}
[data-mode="advanced"] .pv2-sync-dot {
    background: var(--success-color, #67c23a);
}
@keyframes pv2-pulse {
    0%, 100% { opacity: 1; transform: scale(1); }
    50% { opacity: 0.5; transform: scale(0.85); }
}
.pv2-identity-actions {
    display: flex;
    gap: 8px;
    flex-wrap: wrap;
}
.pv2-identity-actions .pv2-btn { flex: 1; min-width: 80px; }

/* ── KPI 网格 ── */
.pv2-account-content {
    width: 100%;
    flex: 1 1 auto;
    overflow-y: auto;           /* 登录后内容多时滑动 */
    overflow-x: hidden;
    min-height: 0;
    padding-right: 4px;         /* 滚动条不贴边 */
    box-sizing: border-box;
    -webkit-overflow-scrolling: touch;
}
/* 右侧容器登录态不滚动，把滑动交给 account-content */
.pv2-settings-right:not(.pv2-login-state) {
    overflow: hidden;
}
.pv2-kpi-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
/* 3 列模式：用 6 列网格，前 3 张各占 2 列，第二行 2 张各占 3 列拉宽居中 */
.pv2-kpi-grid.cols-3 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.pv2-kpi-grid.cols-3 > :nth-child(-n+3) {
    grid-column: span 2;
}
.pv2-kpi-grid.cols-3 > :nth-child(n+4) {
    grid-column: span 3;
}
.pv2-kpi-card {
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.06));
    border-radius: 10px;
    padding: 14px;
    cursor: pointer;
    transition: all 0.2s;
    position: relative;
    overflow: hidden;
}
.pv2-kpi-card:hover {
    background: var(--bg-hover, rgba(0,0,0,0.05));
    transform: translateY(-1px);
}
[data-theme="dark"] .pv2-kpi-card,
[data-mode="advanced"] .pv2-kpi-card {
    background: var(--bg-secondary, rgba(255,255,255,0.03));
    border-color: var(--bg-border, rgba(255,255,255,0.08));
}
[data-mode="advanced"] .pv2-kpi-card:hover { background: var(--hover-bg); }
[data-mode="advanced"] .pv2-kpi-num { color: var(--text-heading); }
[data-mode="advanced"] .pv2-kpi-unit { color: var(--text-secondary); }
[data-mode="advanced"] .pv2-kpi-label { color: var(--text-secondary); }
.pv2-kpi-icon { font-size: 16px; margin-bottom: 6px; }
.pv2-kpi-num {
    font-size: 24px;
    font-weight: 700;
    color: var(--text, #333);
    line-height: 1;
    margin-bottom: 4px;
    white-space: nowrap;
}
.pv2-kpi-unit {
    font-size: 11px;
    font-weight: 400;
    color: var(--text-tertiary, #999);
    margin-left: 2px;
}
.pv2-kpi-label {
    font-size: 11px;
    color: var(--text-secondary, #666);
    margin-bottom: 8px;
}
.pv2-kpi-bar {
    display: flex;
    align-items: flex-end;
    gap: 2px;
    height: 18px;
}
.pv2-bar-seg {
    flex: 1;
    background: var(--accent, #3D8C78);
    opacity: 0.5;
    border-radius: 1px;
    min-height: 2px;
    transition: opacity 0.2s;
}
.pv2-kpi-card:hover .pv2-bar-seg { opacity: 0.8; }
[data-mode="advanced"] .pv2-bar-seg { background: var(--focus-color, #409eff); }

/* ── 笔记分类汇总卡片网格 ── */
.pv2-note-grid {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    gap: 12px;
}
.pv2-note-grid.cols-3 {
    grid-template-columns: repeat(6, minmax(0, 1fr));
}
.pv2-note-grid.cols-3 > :nth-child(-n+3) {
    grid-column: span 2;
}
.pv2-note-grid.cols-3 > :nth-child(n+4) {
    grid-column: span 3;
}
.pv2-note-cat-card {
    background: var(--card-bg, var(--bg-primary, #fff));
    border: 1px solid var(--border, var(--bg-border, rgba(0,0,0,0.08)));
    border-radius: var(--radius-sm, 8px);
    padding: 14px;
}
[data-mode="advanced"] .pv2-note-cat-card {
    background: var(--bg-secondary);
    border-color: var(--bg-border);
}
[data-mode="advanced"] .pv2-note-cat-name { color: var(--text-heading); }
[data-mode="advanced"] .pv2-note-cat-count { color: var(--focus-color); }
[data-mode="advanced"] .pv2-note-stat-val { color: var(--text-heading); }
[data-mode="advanced"] .pv2-note-stat-lbl { color: var(--text-secondary); }
.pv2-note-cat-head {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 10px;
}
.pv2-note-cat-dot {
    width: 10px;
    height: 10px;
    border-radius: 3px;
    flex-shrink: 0;
}
.pv2-note-cat-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--text, var(--text-color, #333));
    flex: 1;
}
.pv2-note-cat-count {
    font-size: 13px;
    font-weight: 700;
    color: var(--accent, var(--focus-color, #3D8C78));
}
.pv2-note-cat-stats {
    display: flex;
    flex-wrap: nowrap;
    gap: 14px;
    margin-bottom: 8px;
}
.pv2-note-stat-item {
    display: flex;
    flex-direction: column;
}
.pv2-note-stat-val {
    font-size: 16px;
    font-weight: 700;
    color: var(--text, var(--text-color, #333));
    line-height: 1.2;
    white-space: nowrap;
}
.pv2-note-stat-lbl {
    font-size: 10px;
    color: var(--text-tertiary, #999);
}
.pv2-note-statusbar {
    display: flex;
    flex-wrap: nowrap;
    height: 4px;
    border-radius: 2px;
    overflow: hidden;
    background: var(--border, rgba(0,0,0,0.06));
    margin-bottom: 6px;
}
.pv2-note-bar-done { background: #5AD8A6; height: 100%; }
.pv2-note-bar-ongoing { background: #F6BD16; height: 100%; }
.pv2-note-bar-pending { background: #E86452; height: 100%; }
.pv2-note-status-labels {
    display: flex;
    gap: 10px;
    font-size: 10px;
    color: var(--text-tertiary, #999);
}
[data-mode="advanced"] .pv2-note-status-labels {
    color: var(--text-secondary);
}
.pv2-note-label-done { color: #5AD8A6; }
.pv2-note-label-ongoing { color: #F6BD16; }
.pv2-note-label-pending { color: #E86452; }
.pv2-note-empty {
    font-size: 12px;
    color: var(--text-tertiary, #999);
}
[data-mode="advanced"] .pv2-note-empty {
    color: var(--text-secondary);
}

/* ── 云端配置概览 ── */
.pv2-badge {
    display: inline-block;
    padding: 2px 8px;
    font-size: 10px;
    font-weight: 500;
    border-radius: 10px;
}
.pv2-badge-info {
    background: rgba(0,0,0,0.04);
    color: var(--text-tertiary, #999);
}
[data-theme="dark"] .pv2-badge-info,
[data-mode="advanced"] .pv2-badge-info {
    background: var(--bg-secondary, rgba(255,255,255,0.06));
}
[data-mode="advanced"] .pv2-badge-info {
    color: var(--text-secondary);
}
.pv2-cloud-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 14px;
}
.pv2-cloud-item {
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.06));
    border-radius: 8px;
    padding: 12px;
    text-align: center;
}
[data-theme="dark"] .pv2-cloud-item,
[data-mode="advanced"] .pv2-cloud-item {
    background: var(--bg-secondary, rgba(255,255,255,0.03));
    border-color: var(--bg-border, rgba(255,255,255,0.08));
}
[data-mode="advanced"] .pv2-cloud-label { color: var(--text-secondary); }
[data-mode="advanced"] .pv2-cloud-value { color: var(--text-heading); }
.pv2-cloud-label {
    font-size: 10px;
    color: var(--text-tertiary, #999);
    margin-bottom: 6px;
}
.pv2-cloud-value {
    font-size: 13px;
    font-weight: 600;
    color: var(--text, #333);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: nowrap;
    gap: 6px;
    white-space: nowrap;
}
.pv2-toggle-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    display: inline-block;
}
.pv2-preset-preview {
    width: 100%;
    height: 48px;
    border-radius: 6px;
    margin: 0 auto 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--border, rgba(0,0,0,0.1));
    position: relative;
}
[data-mode="advanced"] .pv2-preset-preview {
    border-color: var(--bg-border, rgba(255,255,255,0.1));
}

/* ── 锁定遮挡层 ── */
.pv2-locked-wrap {
    position: relative;
    border-radius: 10px;
    overflow: hidden;
}
.pv2-locked-content {
    filter: blur(3px);
    opacity: 0.5;
    pointer-events: none;
    transition: filter 0.25s, opacity 0.25s;
}
.pv2-locked-overlay {
    position: absolute;
    inset: 0;
    background: rgba(0,0,0,0.35);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    color: #fff;
    padding: 20px;
    z-index: 10;
}
[data-theme="dark"] .pv2-locked-overlay,
[data-mode="advanced"] .pv2-locked-overlay {
    background: rgba(0,0,0,0.5);
}
.pv2-locked-icon {
    font-size: 32px;
    margin-bottom: 10px;
}
.pv2-locked-title {
    font-size: 14px;
    font-weight: 600;
    margin-bottom: 6px;
}
.pv2-locked-desc {
    font-size: 11px;
    opacity: 0.85;
    margin-bottom: 14px;
    line-height: 1.5;
    max-width: 280px;
}

/* ── 主题预设卡片 ── */
.pv2-preset-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
    gap: 12px;
    justify-content: center;
}
.pv2-preset-card {
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 10px;
    padding: 10px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}
.pv2-preset-card:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pv2-preset-card:disabled {
    cursor: not-allowed;
    opacity: 0.7;
}
.pv2-preset-card.active {
    border-color: var(--accent, #3D8C78);
    box-shadow: 0 0 0 2px var(--accent-soft, rgba(61,140,120,0.2));
}
[data-mode="advanced"] .pv2-preset-card.active {
    border-color: var(--focus-color, #409eff);
    box-shadow: 0 0 0 2px rgba(64,158,239,0.2);
}
.pv2-preset-preview {
    width: 100%;
    height: 72px;
    border-radius: 8px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 0 10px;
    border: 1px solid var(--border, rgba(0,0,0,0.1));
    position: relative;
    overflow: hidden;
}
.pv2-preset-preview-text {
    font-size: 16px;
    font-weight: 700;
}
.pv2-preset-preview-dn {
    font-size: 14px;
}
.pv2-preset-name {
    font-size: 12px;
    font-weight: 500;
    color: var(--text, #333);
    margin-bottom: 4px;
}
.pv2-preset-current {
    font-size: 10px;
    color: var(--accent, #3D8C78);
    font-weight: 600;
}
[data-mode="advanced"] .pv2-preset-current {
    color: var(--focus-color, #409eff);
}

/* ── 日夜间按钮（带预览） ── */
.pv2-theme-options {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    max-width: 360px;
}
.pv2-theme-btn {
    background: var(--bg-subtle, rgba(0,0,0,0.02));
    border: 1px solid var(--border, rgba(0,0,0,0.08));
    border-radius: 10px;
    padding: 12px;
    cursor: pointer;
    transition: all 0.2s;
    text-align: center;
}
.pv2-theme-btn:hover:not(:disabled) {
    transform: translateY(-2px);
    box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.pv2-theme-btn:disabled {
    cursor: not-allowed;
    opacity: 0.7;
}
.pv2-theme-btn.active {
    border-color: var(--accent, #3D8C78);
    box-shadow: 0 0 0 2px var(--accent-soft, rgba(61,140,120,0.2));
}
[data-mode="advanced"] .pv2-theme-btn.active {
    border-color: var(--focus-color, #409eff);
}
.pv2-theme-preview {
    width: 100%;
    height: 48px;
    border-radius: 8px;
    margin-bottom: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    border: 1px solid var(--border, rgba(0,0,0,0.1));
}
.pv2-theme-btn-name {
    font-size: 12px;
    font-weight: 500;
    color: var(--text-secondary, #666);
}
.pv2-section-footer {
    margin-top: 14px;
    display: flex;
    justify-content: flex-end;
}

/* ── 移动端适配 ── */
@media (max-width: 640px) {
    .pv2-preset-grid {
        grid-template-columns: repeat(2, 1fr);
    }
    .pv2-identity-actions .pv2-btn {
        flex: 1 1 100%;
    }
    /* 主题预设变1列 */
    .pv2-preset-grid {
        grid-template-columns: 1fr;
    }
    /* 缓存清除变1列 */
    .pv2-cache-grid {
        grid-template-columns: 1fr;
    }
    /* 宝箱工具卡片变小 */
    .pv2-tbx-tool-grid {
        grid-template-columns: repeat(auto-fill, minmax(90px, 1fr));
        gap: 8px;
    }
    .pv2-tbx-content {
        padding: 12px;
    }
}
