﻿/* ============================================
   Dreamind GEO v5.5 — 专业大气 UI 设计系统
   AI品牌可见度分析平台 · 全面视觉升级
   ============================================ */

:root {
    /* === 主色系：深邃紫蓝 === */
    --primary: #4f46e5;
    --primary-light: #7c73f7;
    --primary-lighter: #a5b4fc;
    --primary-dark: #3730a3;
    --primary-deeper: #2e106b;
    --primary-bg: #eef2ff;
    --primary-bg-soft: #f5f3ff;

    /* === 功能色 === */
    --success: #059669;
    --success-light: #34d399;
    --success-bg: #ecfdf5;
    --success-dark: #065f46;
    --warning: #d97706;
    --warning-light: #fbbf24;
    --warning-bg: #fffbeb;
    --warning-dark: #92400e;
    --danger: #dc2626;
    --danger-light: #f87171;
    --danger-bg: #fef2f2;
    --danger-dark: #991b1b;
    --info: #2563eb;
    --info-bg: #eff6ff;
    --info-dark: #1e40af;
    --violet: #7c3aed;
    --violet-bg: #f5f3ff;
    --cyan: #0891b2;
    --cyan-bg: #ecfeff;

    /* === 中性色 === */
    --bg: #f1f5f9;
    --bg-card: #ffffff;
    --bg-sidebar: #0b0a1a;
    --bg-sidebar-hover: #1e1b4b;
    --bg-sidebar-active: #312e81;
    --text: #0f172a;
    --text-secondary: #475569;
    --text-light: #94a3b8;
    --text-on-dark: #e2e8f0;
    --border: #e2e8f0;
    --border-light: #f1f5f9;

    /* === 圆角 === */
    --radius: 16px;
    --radius-sm: 12px;
    --radius-lg: 24px;
    --radius-xl: 32px;

    /* === 阴影 === */
    --shadow-xs: 0 1px 2px rgba(0,0,0,.04);
    --shadow-sm: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);
    --shadow: 0 4px 6px -1px rgba(0,0,0,.06), 0 2px 4px -2px rgba(0,0,0,.04);
    --shadow-md: 0 10px 15px -3px rgba(0,0,0,.07), 0 4px 6px -4px rgba(0,0,0,.04);
    --shadow-lg: 0 20px 25px -5px rgba(0,0,0,.08), 0 8px 10px -6px rgba(0,0,0,.03);
    --shadow-xl: 0 25px 50px -12px rgba(0,0,0,.18);
    --shadow-glow: 0 0 20px rgba(79,70,229,.15);

    /* === 布局 === */
    --sidebar-width: 268px;
    --topbar-height: 64px;
    --font: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
    --transition: .25s cubic-bezier(.4,0,.2,1);
    --transition-bounce: .4s cubic-bezier(.34,1.56,.64,1);
}

/* ============ Reset & Base ============ */
*,*::before,*::after { box-sizing:border-box;margin:0;padding:0; }
html { font-size:15px;scroll-behavior:smooth; -webkit-text-size-adjust:100%; }
body {
    font-family:var(--font);color:var(--text);background:var(--bg);
    line-height:1.65;min-height:100vh;-webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
}
a { color:var(--primary);text-decoration:none;transition:color var(--transition); }
a:hover { color:var(--primary-dark); }
input,textarea,select,button { font-family:inherit;font-size:inherit;outline:none; }
button { cursor:pointer;border:none;background:none; }
::selection { background:var(--primary);color:#fff; }
::-webkit-scrollbar { width:6px;height:6px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:#cbd5e1;border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:var(--text-light); }

/* ============ Typography ============ */
h1 { font-size:1.85rem;font-weight:800;letter-spacing:-0.03em;line-height:1.2; }
h2 { font-size:1.4rem;font-weight:700;letter-spacing:-0.02em;line-height:1.3; }
h3 { font-size:1.15rem;font-weight:700; }
h4 { font-size:1rem;font-weight:600; }
.page-subtitle { font-size:13px;color:var(--text-light);margin-top:4px; }

/* ============ Form ============ */
.form-group { margin-bottom:22px; }
.form-group label {
    display:block;font-weight:600;margin-bottom:8px;font-size:13px;color:var(--text);
    letter-spacing:-0.01em;
}
.form-group label .label-hint { font-weight:400;color:var(--text-light);margin-left:6px; }
.form-group input,.form-group textarea,.form-group select {
    width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
    font-size:14px;transition:all var(--transition);background:#fff;color:var(--text);
}
.form-group input:hover,.form-group textarea:hover,.form-group select:hover { border-color:#cbd5e1; }
.form-group input:focus,.form-group textarea:focus,.form-group select:focus {
    border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1);background:#fff;
}
.form-group input:disabled { background:var(--bg);color:var(--text-light);cursor:not-allowed;border-style:dashed; }
.form-group input::placeholder { color:var(--text-light); }
.form-group textarea { resize:vertical;min-height:90px;line-height:1.6; }
.form-hint { font-size:12px;color:var(--text-light);margin-top:6px;display:flex;align-items:center;gap:5px; }

/* Input with icon */
.input-group { position:relative;display:flex;align-items:center; }
.input-group .input-icon {
    position:absolute;left:16px;color:var(--text-light);font-size:16px;pointer-events:none;z-index:1;
}
.input-group input { padding-left:44px; }
.input-group .input-suffix {
    position:absolute;right:14px;font-size:12px;color:var(--text-light);pointer-events:none;
}

/* ============ Buttons ============ */
.btn-primary {
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:12px 28px;background:linear-gradient(135deg,var(--primary),var(--primary-dark));
    color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;
    transition:all var(--transition);box-shadow:0 4px 12px rgba(79,70,229,.25);
    position:relative;overflow:hidden;letter-spacing:-0.01em;
}
.btn-primary::before {
    content:'';position:absolute;inset:0;
    background:linear-gradient(135deg,rgba(255,255,255,.12),transparent);
    opacity:0;transition:opacity var(--transition);
}
.btn-primary:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(79,70,229,.35); }
.btn-primary:hover::before { opacity:1; }
.btn-primary:active { transform:translateY(0);box-shadow:0 2px 8px rgba(79,70,229,.2); }
.btn-primary:disabled { opacity:.5;cursor:not-allowed;transform:none;box-shadow:none; }

.btn-secondary {
    display:inline-flex;align-items:center;justify-content:center;gap:6px;
    padding:11px 22px;background:#fff;color:var(--text);border:1.5px solid var(--border);
    border-radius:var(--radius-sm);font-size:13px;font-weight:500;transition:all var(--transition);
}
.btn-secondary:hover { background:var(--bg);border-color:#94a3b8;color:var(--primary); }
.btn-secondary:disabled { opacity:.5;cursor:not-allowed; }

.btn-sm { padding:7px 14px;font-size:12px;border-radius:8px;gap:5px; }
.btn-xs { padding:5px 10px;font-size:11px;border-radius:6px;gap:4px; }
.btn-full { width:100%; }
.btn-lg { padding:14px 32px;font-size:15px;border-radius:14px; }

.btn-icon {
    display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;
    background:none;color:var(--text-secondary);border-radius:var(--radius-sm);font-size:16px;
    transition:all var(--transition);
}
.btn-icon:hover { background:var(--bg);color:var(--primary); }
.btn-icon:active { background:var(--border-light); }

.btn-link {
    color:var(--primary);background:none;font-size:13px;font-weight:500;
    padding:6px 10px;cursor:pointer;text-decoration:none;border-radius:6px;
    transition:all var(--transition);
}
.btn-link:hover { background:var(--primary-bg);text-decoration:none; }
.btn-link.danger { color:var(--danger); }
.btn-link.danger:hover { background:var(--danger-bg); }

.btn-danger {
    display:inline-flex;align-items:center;gap:6px;padding:12px 28px;background:linear-gradient(135deg,var(--danger),var(--danger-dark));
    color:#fff;border:none;border-radius:var(--radius-sm);font-size:14px;font-weight:600;
    transition:all var(--transition);box-shadow:0 4px 12px rgba(220,38,38,.2);
}
.btn-danger:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(220,38,38,.3); }

.btn-ghost {
    display:inline-flex;align-items:center;gap:6px;padding:9px 16px;background:transparent;
    color:var(--text-secondary);border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:500;
    transition:all var(--transition);
}
.btn-ghost:hover { background:var(--bg);color:var(--text); }

/* ============ Auth Page ============ */
.auth-page {
    min-height:100vh;display:flex;align-items:center;justify-content:center;
    background:linear-gradient(135deg,#07060f 0%,#120f2e 25%,#1e1b4b 50%,#2e106b 75%,#1e1b4b 100%);
    position:relative;overflow:hidden;padding:20px;
}
/* 动态背景装饰 */
.auth-page::before {
    content:'';position:absolute;top:-50%;left:-50%;width:200%;height:200%;
    background:
        radial-gradient(ellipse at 20% 50%,rgba(79,70,229,.18) 0%,transparent 50%),
        radial-gradient(ellipse at 80% 20%,rgba(124,58,237,.12) 0%,transparent 50%),
        radial-gradient(ellipse at 50% 80%,rgba(5,150,105,.08) 0%,transparent 50%);
    animation:authBgFloat 20s ease-in-out infinite alternate;
    pointer-events:none;
}
@keyframes authBgFloat {
    0% { transform:translate(0,0) rotate(0deg); }
    100% { transform:translate(-3%,3%) rotate(3deg); }
}
/* 浮动粒子装饰 */
.auth-page::after {
    content:'';position:absolute;inset:0;
    background-image:
        radial-gradient(2px 2px at 10% 20%,rgba(255,255,255,.15) 50%,transparent 50%),
        radial-gradient(2px 2px at 30% 70%,rgba(255,255,255,.1) 50%,transparent 50%),
        radial-gradient(2px 2px at 50% 40%,rgba(255,255,255,.12) 50%,transparent 50%),
        radial-gradient(2px 2px at 70% 10%,rgba(255,255,255,.08) 50%,transparent 50%),
        radial-gradient(2px 2px at 90% 80%,rgba(255,255,255,.1) 50%,transparent 50%);
    animation:authParticles 15s linear infinite;
    pointer-events:none;
}
@keyframes authParticles {
    0% { transform:translateY(0); }
    100% { transform:translateY(-20px); }
}

.auth-container {
    display:flex;max-width:1060px;width:100%;background:rgba(255,255,255,.97);
    border-radius:var(--radius-xl);overflow:hidden;box-shadow:0 40px 80px -20px rgba(0,0,0,.35);
    min-height:600px;position:relative;z-index:1;
    backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);
    border:1px solid rgba(255,255,255,.2);
}
.auth-left {
    flex:1.1;background:linear-gradient(155deg,#0b0a1a 0%,#1e1b4b 35%,#312e81 65%,#4f46e5 100%);
    padding:60px 48px;display:flex;flex-direction:column;justify-content:center;
    color:#fff;position:relative;overflow:hidden;
}
.auth-left::before {
    content:'';position:absolute;top:-40%;right:-50%;width:140%;height:140%;
    background:radial-gradient(circle at 70% 30%,rgba(79,70,229,.4) 0%,transparent 55%);
    pointer-events:none;
}
.auth-left::after {
    content:'';position:absolute;bottom:0;left:0;right:0;height:1px;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.25),transparent);
}
.brand-icon {
    width:64px;height:64px;
    background:linear-gradient(135deg,rgba(255,255,255,.15),rgba(255,255,255,.05));
    border-radius:20px;display:flex;align-items:center;justify-content:center;
    font-size:28px;margin-bottom:28px;
    backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
    border:1px solid rgba(255,255,255,.15);
    box-shadow:0 8px 32px rgba(0,0,0,.2);
}
.auth-brand { margin-bottom:52px;position:relative;z-index:1; }
.auth-brand h1 { font-size:36px;font-weight:800;margin-bottom:8px;letter-spacing:-0.03em;line-height:1.2; }
.brand-subtitle { font-size:16px;color:rgba(255,255,255,.55);font-weight:400;letter-spacing:.02em; }
.auth-features { position:relative;z-index:1;display:flex;flex-direction:column;gap:6px; }
.feature-item { display:flex;gap:18px;align-items:flex-start;padding:16px 0; }
.feature-item i {
    width:46px;height:46px;
    background:linear-gradient(135deg,rgba(255,255,255,.1),rgba(255,255,255,.03));
    border-radius:14px;display:flex;align-items:center;justify-content:center;
    font-size:18px;flex-shrink:0;
    border:1px solid rgba(255,255,255,.1);
    transition:all var(--transition);
}
.feature-item:hover i { background:rgba(255,255,255,.15);transform:scale(1.05); }
.feature-item h4 { font-size:15px;font-weight:600;margin-bottom:4px;color:rgba(255,255,255,.95); }
.feature-item p { font-size:13px;color:rgba(255,255,255,.45);line-height:1.6; }

.auth-right { flex:1;padding:60px 52px;display:flex;align-items:center;justify-content:center; }
.auth-form-wrapper { width:100%;max-width:400px; }
#auth-title { font-size:30px;font-weight:800;margin-bottom:6px;letter-spacing:-0.02em;color:var(--text); }
.auth-desc { color:var(--text-secondary);margin-bottom:36px;font-size:15px; }

.login-tabs {
    display:flex;margin-bottom:32px;background:var(--bg);border-radius:var(--radius-sm);
    padding:4px;gap:0;
}
.login-tab {
    flex:1;text-align:center;padding:10px 0;font-size:14px;font-weight:500;
    color:var(--text-secondary);cursor:pointer;transition:all var(--transition);
    border-radius:10px;position:relative;
}
.login-tab:hover { color:var(--text);background:rgba(255,255,255,.5); }
.login-tab.active {
    background:#fff;color:var(--primary);font-weight:700;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
}

/* ============ Layout ============ */
#main-app { display:flex;min-height:100vh; }

/* Sidebar */
.sidebar {
    width:var(--sidebar-width);background:var(--bg-sidebar);color:var(--text-on-dark);
    display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;
    transition:transform .35s cubic-bezier(.4,0,.2,1);
    box-shadow:4px 0 32px rgba(0,0,0,.2);
    border-right:1px solid rgba(255,255,255,.04);
}
.sidebar.collapsed { transform:translateX(-100%); }
.sidebar-brand {
    padding:24px 22px 20px;display:flex;align-items:center;gap:14px;
    border-bottom:1px solid rgba(255,255,255,.06);
}
.sidebar-brand strong { font-size:16px;font-weight:700;letter-spacing:-0.01em; }
.sidebar-brand small {
    font-size:10px;color:rgba(255,255,255,.35);display:block;
    text-transform:uppercase;letter-spacing:.06em;margin-top:2px;
}

.brand-icon-sm {
    width:40px;height:40px;
    background:linear-gradient(135deg,rgba(79,70,229,.5),rgba(124,58,237,.4));
    border-radius:14px;display:flex;align-items:center;justify-content:center;
    font-size:18px;flex-shrink:0;
    border:1px solid rgba(255,255,255,.1);
    box-shadow:0 4px 12px rgba(79,70,229,.2);
}

.sidebar-user {
    display:flex;align-items:center;gap:12px;padding:20px 22px;
    border-bottom:1px solid rgba(255,255,255,.06);
    background:linear-gradient(180deg,rgba(255,255,255,.03),transparent);
}
.sidebar-user .user-avatar {
    width:40px;height:40px;
    background:linear-gradient(135deg,var(--primary),var(--violet));
    border-radius:12px;display:flex;align-items:center;justify-content:center;
    font-size:16px;font-weight:700;color:#fff;flex-shrink:0;
    box-shadow:0 4px 12px rgba(79,70,229,.3);
}
.user-name { font-size:13px;font-weight:600;color:rgba(255,255,255,.9); }
.user-plan { font-size:11px;color:rgba(255,255,255,.35);letter-spacing:.03em; }

.sidebar-nav {
    flex:1;padding:18px 14px;overflow-y:auto;display:flex;flex-direction:column;gap:3px;
}
.nav-section-label {
    font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;
    color:rgba(255,255,255,.2);padding:14px 14px 8px;
}

.nav-item {
    display:flex;align-items:center;gap:12px;padding:12px 14px;
    border-radius:var(--radius-sm);color:rgba(255,255,255,.5);
    font-size:14px;font-weight:500;transition:all var(--transition);
    text-decoration:none;cursor:pointer;position:relative;
}
.nav-item:hover { background:var(--bg-sidebar-hover);color:rgba(255,255,255,.95);text-decoration:none; }
.nav-item.active {
    background:var(--bg-sidebar-active);color:#fff;
    box-shadow:0 4px 16px rgba(49,46,129,.4);
}
.nav-item.active::before {
    content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);
    width:3px;height:22px;background:var(--primary-light);border-radius:0 3px 3px 0;
}
.nav-item i { width:20px;text-align:center;font-size:16px;flex-shrink:0; }

.nav-item.nav-divider { height:1px;margin:8px 14px;padding:0;background:rgba(255,255,255,.06);cursor:default;pointer-events:none; }
.nav-item.nav-divider:hover { background:rgba(255,255,255,.06); }

.nav-upgrade {
    background:linear-gradient(135deg,var(--primary),var(--violet));
    color:#fff!important;margin:14px 10px 4px;border-radius:var(--radius-sm);
    font-weight:700;justify-content:center;
    box-shadow:0 4px 20px rgba(79,70,229,.4);
    padding:13px 14px;letter-spacing:.02em;
}
.nav-upgrade:hover {
    transform:translateY(-2px);
    box-shadow:0 8px 28px rgba(79,70,229,.5);
    background:linear-gradient(135deg,var(--primary-light),var(--violet));
}
.nav-upgrade i { color:#fbbf24; }

.sidebar-overlay { display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:99;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px); }
.sidebar-overlay.show { display:block; }

/* Main Content */
.main-content { margin-left:var(--sidebar-width);flex:1;min-height:100vh;display:flex;flex-direction:column; }

/* Topbar */
.topbar {
    height:var(--topbar-height);background:rgba(255,255,255,.9);
    border-bottom:1px solid var(--border);
    display:flex;align-items:center;padding:0 32px;gap:16px;
    position:sticky;top:0;z-index:50;
    backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    box-shadow:0 1px 3px rgba(0,0,0,.03);
}
.topbar h2#page-title { font-size:19px;font-weight:800;flex:1;letter-spacing:-0.02em; }
.topbar-actions { display:flex;gap:10px;align-items:center; }
.topbar .topbar-breadcrumb { font-size:13px;color:var(--text-light);display:flex;align-items:center;gap:6px; }
.topbar .topbar-breadcrumb a { color:var(--text-secondary); }
.topbar .topbar-breadcrumb span { color:var(--text);font-weight:600; }

.menu-toggle {
    display:none;align-items:center;justify-content:center;width:42px;height:42px;
    background:none;font-size:20px;color:var(--text-secondary);border-radius:var(--radius-sm);
    cursor:pointer;transition:all var(--transition);
}
.menu-toggle:hover { background:var(--bg);color:var(--primary); }

/* Page Content */
#page-content { flex:1;padding:32px;overflow-y:auto; }
#page-content > * { animation:pageIn .4s cubic-bezier(.4,0,.2,1) both; }
@keyframes pageIn {
    from { opacity:0; }
    to { opacity:1; }
}

/* ============ Dashboard Hero ============ */
.dashboard-hero {
    background:linear-gradient(145deg,#0b0a1a 0%,#1e1b4b 25%,#312e81 55%,#4f46e5 100%);
    border-radius:var(--radius-lg);padding:48px 40px;color:#fff;margin-bottom:32px;
    position:relative;overflow:hidden;
    box-shadow:0 12px 40px -8px rgba(79,70,229,.3);
    border:1px solid rgba(255,255,255,.06);
}
.dashboard-hero::before {
    content:'';position:absolute;top:-60%;right:-25%;width:550px;height:550px;
    background:radial-gradient(circle,rgba(255,255,255,.05) 0%,transparent 60%);
    pointer-events:none;animation:heroGlow 8s ease-in-out infinite alternate;
}
@keyframes heroGlow {
    0% { transform:scale(1);opacity:.5; }
    100% { transform:scale(1.1);opacity:.8; }
}
.dashboard-hero::after {
    content:'';position:absolute;bottom:0;right:40px;width:280px;height:280px;
    background:radial-gradient(circle at bottom right,rgba(124,58,237,.2) 0%,transparent 60%);
    pointer-events:none;
}
.hero-greeting { font-size:32px;font-weight:900;position:relative;z-index:1;letter-spacing:-0.03em;line-height:1.2; }
.hero-subtitle { font-size:15px;color:rgba(255,255,255,.6);margin:8px 0 28px;position:relative;z-index:1; }
.hero-actions { display:flex;gap:14px;position:relative;z-index:1;flex-wrap:wrap; }
.hero-btn-primary {
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 32px;background:#fff;color:var(--primary-dark);
    border-radius:var(--radius-sm);font-size:15px;font-weight:700;cursor:pointer;
    transition:all var(--transition);border:none;
    box-shadow:0 4px 20px rgba(0,0,0,.2);
}
.hero-btn-primary:hover { transform:translateY(-3px);box-shadow:0 12px 32px rgba(0,0,0,.25); }
.hero-btn-secondary {
    display:inline-flex;align-items:center;gap:8px;
    padding:14px 28px;background:rgba(255,255,255,.1);color:#fff;
    border-radius:var(--radius-sm);font-size:15px;font-weight:500;cursor:pointer;
    transition:all var(--transition);border:1px solid rgba(255,255,255,.2);
}
.hero-btn-secondary:hover { background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.35); }

/* ============ Stats Grid ============ */
.stats-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px; }
.stat-card {
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    padding:24px 26px;display:flex;align-items:center;gap:20px;
    transition:all var(--transition-bounce);position:relative;overflow:hidden;
}
.stat-card::before {
    content:'';position:absolute;top:0;left:0;width:100%;height:100%;
    background:linear-gradient(135deg,rgba(79,70,229,.02),transparent);
    opacity:0;transition:opacity var(--transition);
}
.stat-card:hover { transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:transparent; }
.stat-card:hover::before { opacity:1; }
.stat-icon {
    width:56px;height:56px;border-radius:16px;display:flex;align-items:center;justify-content:center;
    font-size:24px;flex-shrink:0;position:relative;z-index:1;
    box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.stat-info { flex:1;min-width:0;position:relative;z-index:1; }
.stat-value {
    font-size:32px;font-weight:900;line-height:1;letter-spacing:-0.03em;
    margin-bottom:4px;display:flex;align-items:baseline;gap:8px;
}
.stat-label { font-size:12px;color:var(--text-light);font-weight:600;text-transform:uppercase;letter-spacing:.04em; }
.stat-trend {
    font-size:12px;font-weight:700;display:inline-flex;align-items:center;gap:3px;
    padding:3px 10px;border-radius:20px;margin-left:4px;
}
.stat-trend.up { color:var(--success-dark);background:var(--success-bg); }
.stat-trend.down { color:var(--danger-dark);background:var(--danger-bg); }
.stat-trend.stable { color:var(--text-light);background:var(--border-light); }

/* ============ Quick Actions ============ */
.quick-actions { display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-bottom:32px; }
.quick-action-card {
    background:#fff;border:1px solid var(--border);border-radius:var(--radius);
    padding:26px 24px;cursor:pointer;transition:all var(--transition-bounce);
    position:relative;overflow:hidden;display:flex;flex-direction:column;
}
.quick-action-card::after {
    content:'';position:absolute;bottom:0;left:0;right:0;height:3px;
    background:linear-gradient(90deg,var(--accent-color,var(--primary)),transparent);
    transform:scaleX(0);transform-origin:left;transition:transform var(--transition);
}
.quick-action-card:hover { transform:translateY(-6px);box-shadow:var(--shadow-xl);border-color:transparent; }
.quick-action-card:hover::after { transform:scaleX(1); }
.quick-action-card .qa-icon {
    width:50px;height:50px;border-radius:14px;display:flex;align-items:center;justify-content:center;
    font-size:22px;margin-bottom:18px;transition:all var(--transition);
    box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.quick-action-card:hover .qa-icon { transform:scale(1.08); }
.quick-action-card .qa-title { font-size:15px;font-weight:700;margin-bottom:6px;color:var(--text); }
.quick-action-card .qa-desc { font-size:12px;color:var(--text-light);line-height:1.6; }
.quick-action-card .qa-arrow {
    position:absolute;right:22px;top:50%;transform:translateY(-50%);
    color:var(--text-light);font-size:16px;transition:all var(--transition);
}
.quick-action-card:hover .qa-arrow { color:var(--primary);transform:translateY(-50%) translateX(6px); }

.qa-detect .qa-icon { background:var(--primary-bg);color:var(--primary); }
.qa-keyword .qa-icon { background:var(--warning-bg);color:var(--warning-dark); }
.qa-article .qa-icon { background:var(--success-bg);color:var(--success); }
.qa-compete .qa-icon { background:var(--violet-bg);color:var(--violet); }

/* ============ Activity Timeline ============ */
.activity-timeline { position:relative;padding-left:30px; }
.activity-timeline::before {
    content:'';position:absolute;left:9px;top:0;bottom:0;width:2px;
    background:linear-gradient(180deg,var(--primary-light),var(--border));
}
.activity-item { position:relative;padding:12px 0 12px 22px; }
.activity-item::before {
    content:'';position:absolute;left:-21px;top:20px;width:12px;height:12px;
    border-radius:50%;background:#fff;border:2.5px solid var(--primary);
    box-shadow:0 0 0 4px rgba(79,70,229,.1);transition:all var(--transition);
}
.activity-item:hover::before { box-shadow:0 0 0 6px rgba(79,70,229,.15); }
.activity-item.success::before { border-color:var(--success);box-shadow:0 0 0 4px rgba(5,150,105,.1); }
.activity-item.warning::before { border-color:var(--warning);box-shadow:0 0 0 4px rgba(217,119,6,.1); }
.activity-item:first-child { padding-top:0; }
.activity-item:first-child::before { top:8px; }
.activity-item .act-time { font-size:11px;color:var(--text-light);margin-bottom:3px;font-weight:500; }
.activity-item .act-content { font-size:14px;color:var(--text);line-height:1.5; }
.activity-item .act-content strong { font-weight:700; }
.activity-item .act-meta { font-size:12px;color:var(--text-secondary);margin-top:3px; }

/* ============ Card System ============ */
.card {
    background:var(--bg-card);border-radius:var(--radius);border:1px solid var(--border);
    padding:26px;transition:all var(--transition);position:relative;overflow:hidden;
}
.card::before {
    content:'';position:absolute;top:0;left:0;right:0;height:100%;
    background:linear-gradient(180deg,rgba(79,70,229,.01),transparent 30%);
    pointer-events:none;opacity:0;transition:opacity var(--transition);
}
.card:hover { box-shadow:var(--shadow-md); }
.card:hover::before { opacity:1; }
.card.card-accent { border-top:3px solid var(--primary); }
.card.card-accent-success { border-top:3px solid var(--success); }
.card.card-accent-warning { border-top:3px solid var(--warning); }

.card-header {
    display:flex;justify-content:space-between;align-items:flex-start;
    margin-bottom:22px;flex-wrap:wrap;gap:14px;
}
.card-title { font-size:17px;font-weight:700;display:flex;align-items:center;gap:10px; }
.card-title i { color:var(--primary);font-size:18px; }
.card-subtitle { font-size:12px;color:var(--text-light);margin-top:4px;font-weight:500; }
.card-body { }
.card-footer {
    margin-top:22px;padding-top:18px;border-top:1px solid var(--border-light);
    display:flex;justify-content:flex-end;gap:10px;
}

/* ============ Table ============ */
.table-wrapper { overflow-x:auto;border-radius:var(--radius-sm); }
table { width:100%;border-collapse:collapse; }
thead th {
    text-align:left;padding:14px 18px;font-size:11px;font-weight:700;
    text-transform:uppercase;letter-spacing:.05em;color:var(--text-secondary);
    border-bottom:2px solid var(--border);background:var(--bg);white-space:nowrap;
}
thead th:first-child { border-radius:var(--radius-sm) 0 0 0; }
thead th:last-child { border-radius:0 var(--radius-sm) 0 0; }
tbody td {
    padding:16px 18px;border-bottom:1px solid var(--border-light);
    font-size:14px;vertical-align:middle;color:var(--text);
}
tbody tr { transition:all var(--transition); }
tbody tr:hover td { background:var(--primary-bg); }
tbody tr:last-child td:first-child { border-radius:0 0 0 var(--radius-sm); }
tbody tr:last-child td:last-child { border-radius:0 0 var(--radius-sm) 0; }
.table-actions { display:flex;gap:6px; }

/* ============ Badges ============ */
.badge {
    display:inline-flex;align-items:center;gap:5px;
    padding:5px 14px;border-radius:20px;font-size:12px;font-weight:700;
    letter-spacing:-0.01em;white-space:nowrap;
}
.badge-purple { background:var(--primary-bg);color:var(--primary); }
.badge-green { background:var(--success-bg);color:var(--success-dark); }
.badge-orange { background:var(--warning-bg);color:var(--warning-dark); }
.badge-red { background:var(--danger-bg);color:var(--danger-dark); }
.badge-blue { background:var(--info-bg);color:var(--info-dark); }
.badge-gray { background:var(--border-light);color:var(--text-secondary); }
.badge-violet { background:var(--violet-bg);color:var(--violet); }
.badge-cyan { background:var(--cyan-bg);color:var(--cyan); }
.badge-dot { width:8px;height:8px;border-radius:50%;display:inline-block;flex-shrink:0; }

/* Level badges */
.level-S,.badge.level-S { color:#065f46;background:linear-gradient(135deg,#d1fae5,#a7f3d0);font-weight:700;box-shadow:0 2px 8px rgba(5,150,105,.15); }
.level-A,.badge.level-A { color:#3730a3;background:linear-gradient(135deg,#e0e7ff,#c7d2fe);font-weight:700;box-shadow:0 2px 8px rgba(79,70,229,.15); }
.level-B,.badge.level-B { color:#92400e;background:linear-gradient(135deg,#fef3c7,#fde68a);font-weight:700;box-shadow:0 2px 8px rgba(217,119,6,.15); }
.level-C,.badge.level-C { color:#9a3412;background:linear-gradient(135deg,#ffedd5,#fed7aa);font-weight:700;box-shadow:0 2px 8px rgba(249,115,22,.15); }
.level-D,.badge.level-D { color:#991b1b;background:linear-gradient(135deg,#fee2e2,#fecaca);font-weight:700;box-shadow:0 2px 8px rgba(220,38,38,.15); }

/* Score Rings */
.score-ring {
    width:140px;height:140px;border-radius:50%;display:flex;flex-direction:column;
    align-items:center;justify-content:center;font-size:3rem;font-weight:900;
    margin:0 auto;position:relative;
    box-shadow:0 8px 24px rgba(0,0,0,.08);
}
.score-ring .ring-label { font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.06em;margin-top:2px; }
.score-ring.S { background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46;box-shadow:0 8px 24px rgba(5,150,105,.2); }
.score-ring.A { background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3;box-shadow:0 8px 24px rgba(79,70,229,.2); }
.score-ring.B { background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e;box-shadow:0 8px 24px rgba(217,119,6,.2); }
.score-ring.C { background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412;box-shadow:0 8px 24px rgba(249,115,22,.2); }
.score-ring.D { background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b;box-shadow:0 8px 24px rgba(220,38,38,.2); }

.score-ring-sm {
    width:68px;height:68px;border-radius:50%;display:flex;flex-direction:column;
    align-items:center;justify-content:center;font-size:1.4rem;font-weight:800;flex-shrink:0;
    box-shadow:0 4px 12px rgba(0,0,0,.06);
}
.score-ring-sm.S { background:linear-gradient(135deg,#d1fae5,#a7f3d0);color:#065f46; }
.score-ring-sm.A { background:linear-gradient(135deg,#e0e7ff,#c7d2fe);color:#3730a3; }
.score-ring-sm.B { background:linear-gradient(135deg,#fef3c7,#fde68a);color:#92400e; }
.score-ring-sm.C { background:linear-gradient(135deg,#ffedd5,#fed7aa);color:#9a3412; }
.score-ring-sm.D { background:linear-gradient(135deg,#fee2e2,#fecaca);color:#991b1b; }

/* ============ Progress ============ */
.progress-bar { height:10px;background:var(--border-light);border-radius:5px;overflow:hidden; }
.progress-fill {
    height:100%;border-radius:5px;transition:width .8s cubic-bezier(.4,0,.2,1);
    background:linear-gradient(90deg,var(--primary),var(--primary-light));
    position:relative;overflow:hidden;
}
.progress-fill::after {
    content:'';position:absolute;top:0;left:0;right:0;bottom:0;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);
    animation:progressShine 2s infinite;
}
@keyframes progressShine {
    0% { transform:translateX(-100%); }
    100% { transform:translateX(100%); }
}
.progress-bar-lg { height:14px;border-radius:7px; }
.progress-bar-lg .progress-fill { border-radius:7px; }

/* ============ Tabs ============ */
.tabs { display:flex;gap:0;margin-bottom:28px;border-bottom:2px solid var(--border); }
.tab {
    padding:12px 24px;font-size:14px;font-weight:500;color:var(--text-secondary);
    cursor:pointer;transition:all var(--transition);
    border-bottom:2px solid transparent;margin-bottom:-2px;
    background:none;border-top:none;border-left:none;border-right:none;
}
.tab:hover { color:var(--primary); }
.tab.active { color:var(--primary);border-bottom-color:var(--primary);font-weight:700; }

.detect-tabs {
    display:flex;gap:4px;margin-bottom:28px;background:var(--bg);
    padding:5px;border-radius:var(--radius-sm);
}
.detect-tab {
    flex:1;padding:10px 16px;border-radius:9px;font-size:13px;font-weight:500;
    text-align:center;color:var(--text-secondary);cursor:pointer;
    transition:all var(--transition);background:none;border:none;
}
.detect-tab:hover { color:var(--text);background:rgba(255,255,255,.5); }
.detect-tab.active { background:#fff;color:var(--primary);font-weight:700;box-shadow:0 2px 8px rgba(0,0,0,.06); }

/* ============ Report Elements ============ */
.report-metrics { display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin:24px 0; }
.report-metric {
    text-align:center;padding:20px 14px;background:var(--bg);border-radius:var(--radius-sm);
    border:1px solid var(--border-light);transition:all var(--transition-bounce);position:relative;overflow:hidden;
}
.report-metric:hover { border-color:var(--primary-light);transform:translateY(-3px);box-shadow:var(--shadow-md); }
.report-metric:hover .metric-val { transform:scale(1.05); }
.metric-val {
    font-size:28px;font-weight:900;letter-spacing:-0.02em;
    transition:transform var(--transition-bounce);
}
.metric-label {
    font-size:11px;color:var(--text-secondary);margin-top:8px;
    text-transform:uppercase;letter-spacing:.05em;font-weight:600;
}

.category-bar { display:flex;align-items:center;gap:16px;margin:10px 0; }
.category-bar .cat-label { width:120px;font-size:13px;font-weight:700;text-align:right;flex-shrink:0;color:var(--text); }
.category-bar .cat-progress {
    flex:1;height:30px;background:var(--border-light);border-radius:15px;overflow:hidden;position:relative;
}
.category-bar .cat-fill {
    height:100%;border-radius:15px;transition:width 1s cubic-bezier(.4,0,.2,1);
    min-width:50px;display:flex;align-items:center;padding-left:14px;
    font-size:12px;font-weight:700;color:#fff;
    box-shadow:inset 0 1px 2px rgba(255,255,255,.2);
}
.category-bar .cat-score { width:50px;font-size:14px;font-weight:800;text-align:left;color:var(--text); }

.suggestion-card {
    padding:20px 22px;margin:14px 0;border-radius:var(--radius-sm);
    border:1px solid var(--border);border-left:6px solid;
    transition:all var(--transition);background:#fff;
}
.suggestion-card:hover { transform:translateX(6px);box-shadow:var(--shadow-sm); }
.suggestion-card.critical { border-left-color:var(--danger);background:var(--danger-bg); }
.suggestion-card.high { border-left-color:var(--warning);background:var(--warning-bg); }
.suggestion-card.medium { border-left-color:var(--info);background:var(--info-bg); }
.suggestion-card.low { border-left-color:var(--success);background:var(--success-bg); }
.suggestion-card h4 { font-size:14px;font-weight:700;margin-bottom:8px;display:flex;align-items:center;gap:8px; }
.suggestion-card p { font-size:13px;color:var(--text-secondary);margin:0;line-height:1.7; }

.qa-table { margin-top:18px; }
.qa-row {
    display:grid;grid-template-columns:40px 1fr auto auto;gap:16px;
    align-items:center;padding:14px 16px;border-bottom:1px solid var(--border-light);
    font-size:13px;border-radius:var(--radius-sm);transition:all var(--transition);
}
.qa-row:hover { background:var(--bg); }
.qa-row.header {
    font-weight:700;color:var(--text-secondary);font-size:11px;
    text-transform:uppercase;letter-spacing:.05em;background:var(--bg);border-radius:0;
}
.qa-row .qa-q { color:var(--text);font-weight:500; }
.qa-row .qa-status { font-size:12px; }

.trend-chart { display:flex;gap:12px;align-items:flex-end;height:160px;padding:0 16px; }
.trend-bar {
    flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:8px;
}
.trend-bar .bar-fill {
    width:100%;max-width:44px;background:linear-gradient(180deg,var(--primary),var(--primary-light));
    border-radius:6px 6px 0 0;transition:height .8s cubic-bezier(.4,0,.2,1);
    min-height:4px;position:relative;margin:0 auto;
}
.trend-bar:hover .bar-fill { filter:brightness(1.15);transform:scaleX(1.05); }
.trend-bar .bar-val { font-size:12px;font-weight:800;color:var(--text); }
.trend-bar .bar-label { font-size:10px;color:var(--text-light);text-align:center;font-weight:500; }

/* ============ Intent Tabs ============ */
.intent-tabs {
    display:flex;gap:6px;margin-bottom:24px;
    padding-bottom:0;overflow-x:auto;
}
.intent-tab {
    display:inline-flex;align-items:center;gap:7px;
    padding:12px 22px;border:none;border-bottom:3px solid transparent;
    margin-bottom:-2px;background:transparent;
    font-size:13px;font-weight:500;color:var(--text-secondary);cursor:pointer;
    transition:all var(--transition);white-space:nowrap;
    border-radius:var(--radius-sm) var(--radius-sm) 0 0;
}
.intent-tab:hover { color:var(--text);background:var(--bg); }
.intent-tab.active {
    color:var(--tab-color,var(--primary));border-bottom-color:var(--tab-color,var(--primary));
    background:var(--tab-bg,var(--primary-bg));font-weight:700;
}
.intent-tab-count {
    display:inline-flex;align-items:center;justify-content:center;
    min-width:24px;height:24px;padding:0 8px;border-radius:12px;
    font-size:11px;font-weight:700;background:var(--border-light);color:var(--text-secondary);
}
.intent-tab.active .intent-tab-count { background:var(--tab-color,var(--primary));color:#fff; }

/* ============ Keyword Cards ============ */
.intent-keywords-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:16px; }
.keyword-card {
    background:#fff;border:1px solid var(--border-light);border-radius:var(--radius);
    padding:20px 22px;transition:all var(--transition-bounce);
    display:flex;flex-direction:column;gap:14px;position:relative;overflow:hidden;
}
.keyword-card::before {
    content:'';position:absolute;top:0;left:0;right:0;height:100%;
    background:linear-gradient(180deg,rgba(79,70,229,.015),transparent 25%);
    pointer-events:none;opacity:0;transition:opacity var(--transition);
}
.keyword-card:hover { border-color:var(--primary-light);box-shadow:var(--shadow-md);transform:translateY(-3px); }
.keyword-card:hover::before { opacity:1; }
.kw-card-header { display:flex;align-items:flex-start;justify-content:space-between;gap:10px; }
.kw-card-name { font-size:15px;font-weight:700;color:var(--text);line-height:1.5;word-break:break-word; }
.kw-card-trend { flex-shrink:0;font-size:14px; }
.kw-card-meta { display:flex;gap:16px;flex-wrap:wrap;align-items:center; }
.kw-meta-item { display:flex;align-items:center;gap:6px;font-size:12px;color:var(--text-secondary); }
.kw-meta-value { font-weight:800;color:var(--text); }
.kw-meta-label { font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.03em;margin-right:3px; }
.comp-bar { width:60px;height:6px;background:var(--border-light);border-radius:3px;overflow:hidden;flex-shrink:0; }
.comp-bar-fill { height:100%;border-radius:3px;transition:width .6s ease; }
.kw-card-insight {
    font-size:12px;color:var(--text-secondary);line-height:1.7;
    padding:12px 14px;background:var(--bg);border-radius:var(--radius-sm);
    border-left:4px solid var(--intent-color,var(--primary-light));
}
.kw-card-actions { display:flex;gap:8px; }
.kw-card-actions .btn-sm { flex:1;justify-content:center; }

/* ============ AI Insight ============ */
.ai-insight-box {
    background:linear-gradient(135deg,#fffbeb,#fef3c7);padding:18px 22px;
    border-radius:var(--radius-sm);margin-bottom:24px;font-size:14px;
    color:#92400e;border-left:6px solid var(--warning);
    line-height:1.8;position:relative;
}
.ai-insight-box::after {
    content:'\f0eb';font-family:'Font Awesome 6 Free';font-weight:900;
    position:absolute;right:20px;top:50%;transform:translateY(-50%);
    font-size:36px;color:rgba(217,119,6,.08);
}
.ai-insight-box strong { color:#78350f; }

.article-gen-notice {
    background:linear-gradient(135deg,var(--primary-bg),var(--violet-bg));
    border:1px solid var(--primary-light);border-radius:var(--radius-sm);
    padding:14px 18px;font-size:13px;color:var(--primary-dark);
    margin-bottom:24px;line-height:1.7;display:flex;align-items:flex-start;gap:10px;
}
.article-gen-notice i { margin-top:2px;flex-shrink:0; }

/* ============ Search & Filter ============ */
.search-box { position:relative; }
.search-box input { padding-left:44px; }
.search-box i { position:absolute;left:16px;top:50%;transform:translateY(-50%);color:var(--text-light);font-size:16px; }
.filter-bar { display:flex;gap:14px;align-items:center;flex-wrap:wrap; }
.filter-bar select,.filter-bar input {
    padding:10px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);
    font-size:13px;background:#fff;transition:all var(--transition);
}
.filter-bar select:focus,.filter-bar input:focus { border-color:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1); }

/* ============ Empty State ============ */
.empty-state { text-align:center;padding:80px 24px;color:var(--text-secondary); }
.empty-state i { font-size:64px;margin-bottom:24px;color:var(--border);display:block; }
.empty-state h3 { font-size:20px;color:var(--text);margin-bottom:10px;font-weight:700; }
.empty-state p { margin-bottom:28px;max-width:420px;margin-left:auto;margin-right:auto;line-height:1.7; }

/* ============ 项目列表页（专业版） ============ */
.proj-page-header {
    display:flex;justify-content:space-between;align-items:center;
    margin-bottom:28px;flex-wrap:wrap;gap:16px;
}
.proj-header-left {}
.proj-title {
    margin:0;font-size:22px;font-weight:800;color:#0f172a;
    display:flex;align-items:center;gap:10px;letter-spacing:-0.3px;
}
.proj-title i { font-size:20px; }
.proj-desc { font-size:14px;color:#64748b;margin-top:6px;margin-bottom:0; }
.proj-gen-btn {
    padding:12px 28px;border-radius:12px;font-size:15px;font-weight:700;
    box-shadow:0 4px 16px rgba(79,70,229,0.35);
}

/* 统计条 */
.proj-stats-bar {
    display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;
}
@media(max-width:768px){ .proj-stats-bar{grid-template-columns:repeat(2,1fr);} }
.proj-stat-item {
    background:var(--bg-card);border-radius:16px;border:1px solid var(--border);
    padding:18px 22px;display:flex;align-items:center;gap:16px;
    transition:all 0.25s ease;
}
.proj-stat-item:hover { transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.06); }
.proj-stat-icon {
    width:48px;height:48px;border-radius:14px;display:flex;align-items:center;
    justify-content:center;font-size:18px;flex-shrink:0;
}
.proj-stat-icon-total { background:linear-gradient(135deg,#eef2ff,#ede9fe);color:#4f46e5; }
.proj-stat-icon-pub   { background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#059669; }
.proj-stat-icon-ready { background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb; }
.proj-stat-icon-domain{background:linear-gradient(135deg,#fefce8,#fef08a);color:#d97706; }
.proj-stat-body {}
.proj-stat-value {
    font-size:26px;font-weight:800;color:#0f172a;line-height:1.2;
}
.proj-stat-label { font-size:13px;color:#94a3b8;font-weight:500;margin-top:2px; }

/* 站点卡片网格 */
.proj-grid {
    display:grid;grid-template-columns:1fr 1fr;gap:20px;
}
@media(max-width:960px){ .proj-grid{grid-template-columns:1fr;} }

/* 空状态 */
.proj-empty {
    text-align:center;padding:100px 24px;background:var(--bg-card);border-radius:20px;
    border:2px dashed var(--border);
}
.proj-empty-icon i { font-size:72px;color:#c7d2fe;display:block;margin-bottom:20px; }
.proj-empty h3 { font-size:22px;font-weight:800;color:#1e293b;margin-bottom:10px; }
.proj-empty p { color:#64748b;font-size:15px;margin-bottom:28px;max-width:460px;margin-left:auto;margin-right:auto;line-height:1.7; }
.proj-empty .btn-primary { padding:14px 36px;font-size:15px;border-radius:14px;box-shadow:0 6px 24px rgba(79,70,229,0.4); }

/* 站点卡片 */
.proj-card {
    background:#fff;border-radius:18px;border:1px solid #e2e8f0;overflow:hidden;
    position:relative;transition:all 0.3s cubic-bezier(0.16,1,0.3,1);
    animation:projFadeIn 0.45s ease both;
}
@keyframes projFadeIn {
    from { opacity:0;transform:translateY(16px); }
    to { opacity:1;transform:translateY(0); }
}
.proj-card:hover {
    transform:translateY(-4px);box-shadow:0 20px 50px rgba(0,0,0,0.08),0 0 0 1px rgba(99,102,241,0.08);
}
.proj-card-accent {
    height:4px;width:100%;
    background:linear-gradient(90deg,#cbd5e1,#e2e8f0);
    transition:background 0.3s;
}
.proj-card-pub .proj-card-accent  { background:linear-gradient(90deg,#34d399,#10b981); }
.proj-card-ready .proj-card-accent { background:linear-gradient(90deg,#60a5fa,#4f46e5); }
.proj-card-draft .proj-card-accent { background:linear-gradient(90deg,#fbbf24,#f59e0b); }

/* 卡片顶部 */
.proj-card-top {
    padding:20px 22px 0;display:flex;justify-content:space-between;align-items:flex-start;
    gap:12px;
}
.proj-card-info { flex:1;min-width:0; }
.proj-card-name {
    font-size:17px;font-weight:800;color:#0f172a;margin-bottom:6px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
    line-height:1.3;
}
.proj-card-meta {
    display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.proj-card-industry {
    font-size:12px;font-weight:600;color:#4f46e5;background:#f5f3ff;
    padding:3px 10px;border-radius:8px;display:inline-flex;align-items:center;gap:4px;
}
.proj-card-industry i { font-size:11px; }
.proj-card-brand {
    font-size:11px;color:#94a3b8;background:#f1f5f9;padding:3px 10px;border-radius:8px;
    display:inline-flex;align-items:center;gap:4px;
}
.proj-badge {
    font-size:12px;font-weight:700;padding:5px 14px;border-radius:10px;
    white-space:nowrap;flex-shrink:0;display:inline-flex;align-items:center;gap:5px;
    line-height:1.4;
}
.proj-badge-pub {
    background:linear-gradient(135deg,#ecfdf5,#d1fae5);color:#059669;
    border:1px solid #a7f3d0;
}
.proj-badge-ready {
    background:linear-gradient(135deg,#eff6ff,#dbeafe);color:#2563eb;
    border:1px solid #bfdbfe;
}
.proj-badge-draft {
    background:linear-gradient(135deg,#fffbeb,#fef3c7);color:#d97706;
    border:1px solid #fde68a;
}

/* 数据指标 */
.proj-card-stats {
    display:flex;align-items:center;gap:0;padding:16px 22px;
    border-top:1px solid #f1f5f9;border-bottom:1px solid #f1f5f9;
    margin-top:14px;
}
.proj-stat-dot {
    flex:1;text-align:center;padding:4px 0;border-right:1px solid #f1f5f9;
}
.proj-stat-dot:last-child { border-right:none; }
.proj-stat-num {
    display:block;font-size:18px;font-weight:800;color:#1e293b;line-height:1.3;
}
.proj-stat-txt {
    display:block;font-size:11px;color:#94a3b8;font-weight:500;margin-top:2px;
}
.proj-stat-date { flex:0.8; display:flex; align-items:center; justify-content:center; gap:4px; color:#94a3b8; font-size:12px; font-weight:500; }
.proj-stat-date i { font-size:11px; color:#cbd5e1; }
/* GEO分颜色 */
.score-high { color:#10b981 !important; }
.score-mid { color:#f59e0b !important; }
.score-low  { color:#ef4444 !important; }

/* 域名状态 */
.proj-card-domain {
    padding:12px 22px;display:flex;align-items:center;gap:10px;
    font-size:13px;transition:all 0.25s;
}
.proj-card-domain i { font-size:14px;flex-shrink:0; }
.domain-url { font-weight:600;color:#334155;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:180px;}
.domain-placeholder { color:#94a3b8; }
.domain-label {
    font-size:11px;font-weight:600;padding:2px 8px;border-radius:6px;margin-left:auto;flex-shrink:0;
}
.domain-ok { background:#f0fdf4; }
.domain-ok i { color:#16a34a; }
.domain-ok .domain-label { background:#dcfce7;color:#166534; }
.domain-pending { background:#fffbeb; }
.domain-pending i { color:#d97706; }
.domain-pending .domain-label { background:#fef3c7;color:#92400e; }
:not(.domain-ok):not(.domain-pending) > i { color:#cbd5e1; }

/* 操作栏 */
.proj-card-actions {
    padding:14px 22px;display:flex;align-items:center;gap:6px;
    flex-wrap:wrap;background:#fafbfc;
}
.proj-action-btn {
    padding:7px 14px;border:none;border-radius:10px;background:#fff;
    cursor:pointer;font-size:12px;font-weight:600;color:#475569;
    transition:all 0.2s;font-family:inherit;
    border:1px solid #e2e8f0;display:inline-flex;align-items:center;gap:5px;
}
.proj-action-btn:hover {
    background:#f1f5f9;border-color:#cbd5e1;color:#1e293b;
    transform:translateY(-1px);
}
.proj-action-btn i { font-size:11px; }
.proj-action-primary {
    background:linear-gradient(135deg,#4f46e5,#6366f1)!important;
    color:#fff!important;border-color:transparent!important;
    box-shadow:0 2px 8px rgba(79,70,229,0.25);
}
.proj-action-primary:hover { box-shadow:0 4px 16px rgba(79,70,229,0.4) !important; }
.proj-action-danger { color:#ef4444!important; }
.proj-action-danger:hover { background:#fef2f2 !important; border-color:#fecaca !important; color:#dc2626 !important; }

/* ============ Toast ============ */
#toast-container {
    position:fixed;top:28px;right:28px;z-index:9999;
    display:flex;flex-direction:column;gap:12px;
}
.toast {
    padding:16px 24px;border-radius:var(--radius-sm);background:#fff;
    box-shadow:0 12px 40px -8px rgba(0,0,0,.15);
    display:flex;align-items:center;gap:14px;font-size:14px;font-weight:500;
    animation:toastIn .4s cubic-bezier(.4,0,.2,1);
    border-left:5px solid var(--primary);min-width:320px;max-width:460px;
    transition:opacity .3s,transform .3s;
}
.toast.success { border-left-color:var(--success); }
.toast.error { border-left-color:var(--danger); }
.toast.warning { border-left-color:var(--warning); }
.toast.info { border-left-color:var(--primary); }
.toast i { font-size:20px;flex-shrink:0; }
.toast.success i { color:var(--success); }
.toast.error i { color:var(--danger); }
.toast.warning i { color:var(--warning); }
@keyframes toastIn {
    from { transform:translateX(150%);opacity:0; }
    to { transform:translateX(0);opacity:1; }
}

/* ============ Modal ============ */
.modal-overlay {
    position:fixed;inset:0;background:rgba(15,13,46,.5);z-index:1000;
    display:flex;align-items:center;justify-content:center;padding:24px;
    animation:fadeIn .25s;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
    overflow-y:auto;
}
.modal {
    background:#fff;border-radius:var(--radius-lg);padding:40px;max-width:680px;width:100%;
    max-height:90vh;overflow-y:auto;animation:scaleIn .3s cubic-bezier(.34,1.56,.64,1);
    box-shadow:0 32px 64px -16px rgba(0,0,0,.25);position:relative;
    margin-bottom:5vh;
}
.modal.modal-lg { max-width:1080px;max-height:90vh;padding:40px 48px; }
.modal h2 { font-size:22px;margin-bottom:28px;display:flex;align-items:center;gap:10px;font-weight:800; }
.modal-actions { display:flex;gap:14px;justify-content:flex-end;margin-top:32px; }
@keyframes fadeIn { from { opacity:0; } to { opacity:1; } }
@keyframes scaleIn { from { transform:scale(.94);opacity:0; } to { transform:scale(1);opacity:1; } }

/* ============ 生成网站弹窗（专业版） ============ */
.site-gen-modal-pro {
    max-width:920px !important;width:92% !important;padding:0 !important;
    overflow:hidden !important;
}
.site-gen-close {
    position:absolute;top:18px;right:18px;width:38px;height:38px;border-radius:12px;
    border:none;background:#f1f5f9;cursor:pointer;color:#64748b;font-size:16px;
    display:flex;align-items:center;justify-content:center;transition:all 0.2s;z-index:10;
}
.site-gen-close:hover { background:#ef4444;color:#fff;transform:rotate(90deg); }

.site-gen-header {
    display:flex;align-items:center;gap:20px;padding:40px 48px 32px;
    background:linear-gradient(135deg,#f8fafc 0%,#eef2ff 100%);
    position:relative;
}
.site-gen-header::after {
    content:'';position:absolute;right:-40px;top:-40px;width:200px;height:200px;
    border-radius:50%;background:radial-gradient(circle,rgba(79,70,229,0.06),transparent 70%);
}
.site-gen-header-icon {
    width:60px;height:60px;border-radius:18px;flex-shrink:0;
    background:linear-gradient(135deg,#4f46e5,#7c3aed);
    display:flex;align-items:center;justify-content:center;
    font-size:26px;color:#fff;box-shadow:0 8px 24px rgba(79,70,229,0.35);
}
.site-gen-header-text {}
.site-gen-header-text h2 {
    margin:0 0 6px;font-size:24px;font-weight:800;color:#0f172a;letter-spacing:-0.3px;
}
.site-gen-header-text p {
    margin:0;font-size:14px;color:#64748b;line-height:1.6;max-width:560px;
}
.site-gen-divider {
    height:1px;background:linear-gradient(90deg,transparent,#e2e8f0,transparent);
}
.site-gen-form { padding:32px 48px 8px; }
.site-gen-row {
    display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-bottom:20px;
}
.site-gen-field {}
.site-gen-form label {
    font-size:14px;font-weight:700;color:#334155;margin-bottom:8px;
    display:flex;align-items:center;gap:7px;
}
.site-gen-form label i { font-size:13px;color:#94a3b8; }
.site-gen-form input,
.site-gen-form textarea {
    font-size:15px !important;padding:12px 16px !important;border-radius:12px !important;
    border:2px solid #e2e8f0 !important;transition:all 0.2s !important;
    background:#f8fafc !important;
}
.site-gen-form input:focus,
.site-gen-form textarea:focus {
    border-color:#4f46e5 !important;background:#fff !important;
    box-shadow:0 0 0 4px rgba(79,70,229,0.1) !important;
}
.site-gen-form .form-group { margin-bottom:20px; }
.site-gen-footer {
    display:flex;justify-content:flex-end;gap:16px;padding:24px 48px 36px;
    background:#f8fafc;border-top:1px solid #e2e8f0;
}
.site-gen-cancel {
    padding:14px 32px !important;border-radius:14px !important;font-size:15px !important;
    font-weight:600 !important;
}
.site-gen-submit {
    padding:14px 40px !important;border-radius:14px !important;font-size:16px !important;
    font-weight:700 !important;box-shadow:0 6px 24px rgba(79,70,229,0.4) !important;
    background:linear-gradient(135deg,#4f46e5,#7c3aed) !important;
    display:inline-flex !important;align-items:center;gap:8px;
}
.site-gen-submit:hover {
    transform:translateY(-2px);box-shadow:0 10px 32px rgba(79,70,229,0.5) !important;
}
@media(max-width:768px){
    .site-gen-header,.site-gen-form,.site-gen-footer { padding-left:24px;padding-right:24px; }
    .site-gen-row { grid-template-columns:1fr; }
}

/* ============ Loading ============ */
.spinner {
    width:32px;height:32px;border:3px solid var(--border);
    border-top-color:var(--primary);border-radius:50%;
    animation:spin .8s linear infinite;
}
@keyframes spin { to { transform:rotate(360deg); } }
.loading-overlay {
    display:flex;align-items:center;justify-content:center;gap:16px;
    padding:56px;color:var(--text-secondary);font-size:14px;font-weight:500;
}

/* ============ Content Preview ============ */
.content-preview {
    background:#fff;border-radius:var(--radius);padding:44px 40px;line-height:2;
    max-height:560px;overflow-y:auto;font-size:15px;border:1px solid var(--border);
    color:#1a1a2e;font-family:"PingFang SC","Microsoft YaHei","Helvetica Neue",sans-serif;
    letter-spacing:.01em;word-break:break-word;
    box-shadow:inset 0 2px 4px rgba(0,0,0,.02);
}
.article-h1 {
    font-size:28px;font-weight:800;color:#111827;margin:36px 0 22px;padding-bottom:16px;
    border-bottom:2px solid #e5e7eb;line-height:1.35;letter-spacing:-0.02em;
}
.article-h2 {
    font-size:22px;font-weight:700;color:#1f2937;margin:32px 0 16px;padding-left:16px;
    border-left:5px solid var(--primary);line-height:1.45;
}
.article-h3 { font-size:18px;font-weight:700;color:#374151;margin:24px 0 12px;line-height:1.5; }
.article-h4 { font-size:15px;font-weight:600;color:#4b5563;margin:18px 0 10px;line-height:1.5; }
.article-p { margin-bottom:20px;text-indent:2em;color:#374151; }
.content-preview strong {
    color:#1f2937;font-weight:700;
    background:linear-gradient(180deg,transparent 65%,rgba(79,70,229,.1) 65%);
    padding:0 2px;border-radius:2px;
}
.content-preview em { color:#6b7280;font-style:italic; }
.article-ul { margin:16px 0 20px 4px;padding-left:22px;list-style:none; }
.article-ul li {
    position:relative;padding:6px 0 6px 22px;margin-bottom:6px;
    color:#374151;line-height:1.8;
}
.article-ul li::before {
    content:'';position:absolute;left:0;top:15px;width:8px;height:8px;
    border-radius:50%;background:var(--primary);box-shadow:0 0 0 3px rgba(79,70,229,.1);
}
.article-ol { margin:16px 0 20px 4px;padding-left:26px; }
.article-ol li { padding:6px 0 6px 6px;margin-bottom:6px;color:#374151;line-height:1.8;list-style-type:decimal; }
.article-ol li::marker { color:var(--primary);font-weight:700; }
.article-blockquote {
    margin:24px 0;padding:18px 24px;background:linear-gradient(135deg,#f8f9ff,#f5f3ff);
    border-left:4px solid var(--primary);border-radius:0 10px 10px 0;color:#4b5563;
}
.article-blockquote p { margin:0;text-indent:0;line-height:1.8; }
.code-block {
    margin:18px 0;padding:20px 24px;background:#0f172a;color:#e2e8f0;
    border-radius:var(--radius-sm);font-size:13px;line-height:1.8;overflow-x:auto;
    font-family:"Fira Code","Cascadia Code","Consolas",monospace;white-space:pre-wrap;word-break:break-all;
    border:1px solid rgba(255,255,255,.06);
}
.inline-code {
    padding:3px 8px;background:#f1f5f9;color:#ef4444;border-radius:5px;
    font-size:.88em;font-family:"Fira Code","Cascadia Code","Consolas",monospace;
    border:1px solid #e2e8f0;
}
.article-link {
    color:var(--primary);text-decoration:none;
    border-bottom:1px dashed var(--primary-light);transition:all var(--transition);
}
.article-link:hover { color:var(--primary-dark);border-bottom-style:solid; }
.article-img { max-width:100%;height:auto;border-radius:var(--radius-sm);margin:14px 0;box-shadow:var(--shadow-md); }
.article-hr { border:none;height:1px;background:linear-gradient(90deg,transparent,#d1d5db,transparent);margin:32px 0; }
.content-preview > .article-p:first-of-type { font-size:17px;color:#1f2937;font-weight:500; }

/* ============ Plans ============ */
.plan-grid { display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:24px; }
.plan-card {
    background:#fff;border:2px solid var(--border);border-radius:var(--radius-lg);
    padding:36px 30px;text-align:center;transition:all var(--transition-bounce);
    position:relative;overflow:hidden;
}
.plan-card::before {
    content:'';position:absolute;top:0;left:0;right:0;height:4px;
    background:linear-gradient(90deg,var(--primary),var(--violet));
    opacity:0;transition:opacity var(--transition);
}
.plan-card:hover { border-color:var(--primary);transform:translateY(-6px);box-shadow:var(--shadow-xl); }
.plan-card:hover::before { opacity:1; }
.plan-card.current {
    border-color:var(--success);background:linear-gradient(180deg,var(--success-bg),#fff 40%);
}
.plan-card.current::before { opacity:1;background:linear-gradient(90deg,var(--success),var(--cyan)); }
.plan-card.popular { border-color:var(--primary);box-shadow:var(--shadow-md);transform:scale(1.02); }
.plan-card.popular:hover { transform:scale(1.02) translateY(-6px); }
.plan-card.popular::before { opacity:1; }
.popular-badge {
    position:absolute;top:-14px;left:50%;transform:translateX(-50%);
    background:linear-gradient(135deg,var(--primary),var(--violet));
    color:#fff;padding:6px 24px;border-radius:20px;font-size:12px;font-weight:700;
    box-shadow:0 4px 16px rgba(79,70,229,.35);letter-spacing:.02em;
}
.plan-icon { font-size:36px;margin-bottom:20px; }
.plan-name { font-size:20px;font-weight:800;margin-bottom:4px;letter-spacing:-0.02em; }
.plan-desc { font-size:12px;color:var(--text-light);margin-bottom:12px; }
.plan-price {
    font-size:48px;font-weight:900;color:var(--primary);
    margin-bottom:6px;letter-spacing:-0.03em;line-height:1;
}
.plan-price small { font-size:16px;font-weight:400;color:var(--text-secondary); }
.plan-duration { font-size:14px;color:var(--text-secondary);margin-bottom:24px; }
.plan-features { text-align:left;margin:24px 0;list-style:none; }
.plan-features li {
    padding:8px 0;font-size:13px;color:var(--text-secondary);
    display:flex;align-items:center;gap:10px;font-weight:500;
}
.plan-features li::before { content:'\f00c';font-family:'Font Awesome 6 Free';font-weight:900;color:var(--success);font-size:12px;flex-shrink:0; }
.plan-features li.disabled { color:var(--text-light); }
.plan-features li.disabled::before { content:'\f00d';color:var(--text-light); }

/* ============ Payment ============ */
.pay-wrapper { max-width:500px;margin:0 auto; }
.pay-card {
    background:#fff;border-radius:var(--radius-lg);padding:36px;text-align:center;
    border:2px solid var(--border);box-shadow:var(--shadow-lg);
}
.pay-qr-wrapper {
    padding:28px;margin:20px auto;background:var(--bg);border-radius:var(--radius);
    display:inline-block;box-shadow:inset 0 2px 4px rgba(0,0,0,.04);
}
.pay-qr-wrapper img { max-width:240px;border-radius:12px; }
.pay-amount {
    font-size:42px;font-weight:900;color:var(--danger);margin:10px 0;
    letter-spacing:-0.02em;
}
.pay-amount small { font-size:20px;font-weight:400; }

/* ============ Profile / Account ============ */
.profile-header-card {
    display:flex;align-items:center;gap:32px;
    background:linear-gradient(135deg,#fff,#f8f9ff);
    border:1px solid var(--border);border-radius:var(--radius-lg);
    padding:36px 40px;margin-bottom:32px;box-shadow:var(--shadow-sm);
}
.profile-avatar-lg {
    width:88px;height:88px;
    background:linear-gradient(135deg,var(--primary),var(--violet));
    border-radius:24px;color:#fff;display:flex;align-items:center;justify-content:center;
    font-size:36px;font-weight:800;flex-shrink:0;
    box-shadow:0 8px 28px rgba(79,70,229,.3);letter-spacing:-0.02em;
}
.profile-header-info { flex:1;min-width:0; }
.profile-name-lg { font-size:26px;font-weight:900;margin-bottom:10px;letter-spacing:-0.02em; }
.profile-meta {
    display:flex;align-items:center;gap:20px;font-size:13px;color:var(--text-secondary);
    flex-wrap:wrap;font-weight:500;
}
.profile-meta span { display:inline-flex;align-items:center;gap:6px; }
.profile-plan-badge {
    display:inline-flex;align-items:center;gap:6px;
    padding:6px 18px;border-radius:20px;font-size:13px;font-weight:700;
    box-shadow:0 2px 8px rgba(0,0,0,.06);
}

.user-stats { display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-bottom:24px; }
.user-stat {
    text-align:center;padding:16px 12px;background:var(--bg);border-radius:var(--radius-sm);
    border:1px solid var(--border-light);transition:all var(--transition);
}
.user-stat:hover { border-color:var(--primary-light);transform:translateY(-2px); }
.us-val {
    font-size:24px;font-weight:900;color:var(--primary);
    letter-spacing:-0.02em;
}
.us-label { font-size:11px;color:var(--text-light);margin-top:6px;font-weight:600;text-transform:uppercase;letter-spacing:.04em; }

.profile-two-col { display:grid;grid-template-columns:1fr 1fr;gap:28px; }
.profile-two-col .card { height:fit-content; }

.profile-info-row {
    display:flex;align-items:center;padding:18px 0;border-bottom:1px solid var(--border-light);gap:16px;
}
.profile-info-row:last-child { border-bottom:none; }
.profile-info-row .info-label { font-size:13px;color:var(--text-secondary);width:100px;flex-shrink:0;font-weight:600; }
.profile-info-row .info-value { font-size:14px;color:var(--text);flex:1;font-weight:500; }

.profile-header-right { display:flex;gap:28px;flex-shrink:0; }
.profile-stat-mini {
    text-align:center;padding:10px 20px;background:var(--bg);border-radius:var(--radius-sm);
    border:1px solid var(--border-light);transition:all var(--transition);
}
.profile-stat-mini:hover { border-color:var(--primary-light); }
.psm-val {
    font-size:18px;font-weight:900;color:var(--primary);letter-spacing:-0.02em;
}
.psm-label { font-size:11px;color:var(--text-light);margin-top:4px;font-weight:600; }

/* Account Tabs */
.account-tabs {
    display:flex;gap:4px;margin-bottom:0;background:var(--bg);
    border-radius:var(--radius);padding:5px;overflow-x:auto;
}
.account-tab {
    flex:1;min-width:fit-content;padding:13px 22px;border:none;border-radius:var(--radius-sm);
    cursor:pointer;font-size:14px;font-weight:600;color:var(--text-secondary);
    background:transparent;transition:all var(--transition);white-space:nowrap;
    display:flex;align-items:center;justify-content:center;gap:8px;
}
.account-tab:hover:not(.active) { color:var(--text);background:rgba(255,255,255,.5); }
.account-tab.active {
    background:#fff;color:var(--primary);box-shadow:0 2px 8px rgba(0,0,0,.06);font-weight:700;
}
.account-tab i { font-size:14px; }
.account-tab-content { margin-top:24px; }
.account-panel { animation:pageIn .35s ease; }

/* ============ Data Table ============ */
.data-table { width:100%;border-collapse:collapse;font-size:13px; }
.data-table thead th {
    padding:14px 18px;text-align:left;font-weight:700;color:var(--text-secondary);
    background:var(--bg);border-bottom:2px solid var(--border);
    font-size:12px;text-transform:uppercase;letter-spacing:.04em;white-space:nowrap;
}
.data-table tbody td {
    padding:16px 18px;border-bottom:1px solid var(--border-light);color:var(--text);vertical-align:middle;
}
.data-table tbody tr:hover td { background:linear-gradient(90deg,var(--primary-bg),transparent 80%); }
.data-table tbody tr:last-child td { border-bottom:none; }
.data-table code { font-family:"Fira Code","Consolas",monospace; }

/* ============ Responsive ============ */
@media (max-width:1200px) {
    .intent-keywords-grid { grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); }
}
@media (max-width:1024px) {
    .stats-grid { grid-template-columns:1fr 1fr; }
    .quick-actions { grid-template-columns:1fr 1fr; }
    .report-metrics { grid-template-columns:repeat(3,1fr); }
    .plan-grid { grid-template-columns:repeat(2,1fr); }
    .user-stats { grid-template-columns:repeat(3,1fr); }
}
@media (max-width:768px) {
    .sidebar { transform:translateX(-100%); }
    .sidebar.show { transform:translateX(0); }
    .main-content { margin-left:0; }
    .menu-toggle { display:flex; }
    .auth-left { display:none; }
    .auth-container { max-width:460px;border-radius:var(--radius-lg); }
    .auth-right { padding:44px 32px; }
    .dashboard-hero { padding:32px 28px; }
    .hero-greeting { font-size:26px; }
    .hero-actions { flex-direction:column;width:100%; }
    .hero-btn-primary,.hero-btn-secondary { width:100%;justify-content:center; }
    .stats-grid { grid-template-columns:1fr 1fr;gap:14px; }
    .stat-card { padding:18px; }
    .stat-value { font-size:26px; }
    .quick-actions { grid-template-columns:1fr; }
    .profile-two-col { grid-template-columns:1fr; }
    .profile-header-card { flex-direction:column;text-align:center;padding:28px 24px;gap:24px; }
    .profile-meta { justify-content:center; }
    .profile-header-right { justify-content:center; }
    .account-tabs { gap:2px; }
    .account-tab { padding:10px 14px;font-size:12px;gap:4px; }
    .account-tab i { font-size:11px; }
    .data-table thead th,.data-table tbody td { padding:10px 12px;font-size:11px; }
    .report-metrics { grid-template-columns:repeat(2,1fr); }
    .plan-grid { grid-template-columns:1fr; }
    .intent-keywords-grid { grid-template-columns:1fr; }
    .intent-tab { padding:10px 16px;font-size:12px; }
    .category-bar .cat-label { width:90px;font-size:12px; }
    #page-content { padding:18px; }
    .month-select-grid { grid-template-columns:repeat(2,1fr); }
    .content-preview { padding:28px 24px;font-size:14px; }
    .article-h1 { font-size:22px; }
    .article-h2 { font-size:19px; }
    .modal { padding:24px;border-radius:var(--radius); }
    .modal.modal-lg { padding:20px 24px; }
}
@media (max-width:480px) {
    .stats-grid { grid-template-columns:1fr; }
    .user-stats { grid-template-columns:1fr; }
    .modal { padding:20px;border-radius:var(--radius); }
    .topbar { padding:0 18px; }
    .plan-price { font-size:36px; }
}

/* ============ Wizard Modal ============ */
.wiz-overlay {
    position: fixed; top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(15, 23, 42, 0.6);
    backdrop-filter: blur(8px);
    display: flex; align-items: center; justify-content: center;
    padding: 24px; overflow-y: auto;
    z-index: 1000;
    animation: fadeIn 0.25s ease;
}
.wiz-modal {
    background: #fff;
    border-radius: 20px;
    padding: 32px 40px;
    max-width: 720px;
    width: 92%;
    position: relative;
    box-shadow: 0 32px 80px rgba(0, 0, 0, 0.18), 0 0 0 1px rgba(99, 102, 241, 0.06);
    animation: slideUp 0.35s cubic-bezier(0.16, 1, 0.3, 1);
    max-height: 90vh;
    overflow-y: auto;
}
.wiz-modal::-webkit-scrollbar { width: 6px; }
.wiz-modal::-webkit-scrollbar-thumb { background: #c7d2fe; border-radius: 3px; }
.wiz-close-btn {
    position: absolute; top: 18px; right: 18px;
    width: 36px; height: 36px;
    background: #f1f5f9; border: none; border-radius: 10px;
    font-size: 16px; color: #64748b; cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    transition: all 0.2s;
}
.wiz-close-btn:hover { background: #e2e8f0; color: #1e293b; transform: rotate(90deg); }

/* 入口弹窗 */
.wiz-hero-icon { font-size: 40px; margin-bottom: 14px; display: block; }
.wiz-title {
    font-size: 22px; font-weight: 800; color: #0f172a;
    margin: 0 0 8px; letter-spacing: -0.02em;
}
.wiz-subtitle {
    font-size: 14px; color: #64748b; margin: 0 0 24px;
    line-height: 1.6;
}

/* 模式选择卡片 */
.wiz-mode-card {
    padding: 20px; border-radius: 14px; cursor: pointer;
    transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    margin-bottom: 12px; text-align: left; position: relative; overflow: hidden;
}
.wiz-mode-card::after {
    content: ''; position: absolute; top: 0; left: -100%; width: 100%; height: 100%;
    background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
    transition: left 0.5s;
}
.wiz-mode-card:hover::after { left: 100%; }
.wiz-mode-smart {
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff; box-shadow: 0 16px 48px rgba(79, 70, 229, 0.3);
}
.wiz-mode-smart:hover { transform: translateY(-4px); box-shadow: 0 24px 64px rgba(79, 70, 229, 0.4); }
.wiz-mode-expert {
    background: #fff; border: 2px solid #e2e8f0;
    box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04);
}
.wiz-mode-expert:hover { border-color: #4f46e5; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(79, 70, 229, 0.1); }
.wiz-mode-icon { font-size: 28px; margin-bottom: 10px; display: block; }
.wiz-mode-title { font-size: 16px; font-weight: 700; margin-bottom: 4px; }
.wiz-mode-desc { font-size: 12px; opacity: 0.85; line-height: 1.5; }
.wiz-mode-checklist { margin-top: 12px; font-size: 12px; line-height: 1.8; }
.wiz-mode-checklist span { margin-right: 6px; }

/* 示例预览 */
.wiz-preview-box {
    background: #f8fafc; border-radius: 12px; padding: 14px; margin-top: 20px; text-align: left;
}
.wiz-preview-title { font-size: 13px; font-weight: 700; color: #1e293b; margin-bottom: 10px; display: flex; align-items: center; gap: 6px; }
.wiz-preview-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.wiz-preview-item {
    background: #fff; border-radius: 10px; padding: 10px; text-align: center;
    border: 1px solid #e2e8f0; transition: all 0.2s;
}
.wiz-preview-item:hover { border-color: #a5b4fc; box-shadow: 0 4px 12px rgba(79, 70, 229, 0.1); }
.wiz-preview-thumb {
    height: 56px; border-radius: 6px; margin-bottom: 6px;
    display: flex; align-items: center; justify-content: center;
    font-size: 11px; color: #fff; font-weight: 600;
}
.wiz-preview-label { font-size: 10px; color: #64748b; }

/* 智能模式步骤 */
.wiz-step-header { text-align: center; margin-bottom: 24px; }
.wiz-step-icon { font-size: 32px; margin-bottom: 10px; display: block; }
.wiz-step-title { font-size: 18px; font-weight: 800; color: #0f172a; margin: 0 0 8px; }
.wiz-step-desc { font-size: 13px; color: #64748b; line-height: 1.5; }

/* 表单 */
.wiz-form-group { margin-bottom: 14px; }
.wiz-form-group label {
    display: block; font-size: 13px; font-weight: 600; color: #334155;
    margin-bottom: 8px;
}
.wiz-form-group label .required { color: #ef4444; margin-left: 4px; }
.wiz-form-group label .optional { color: #94a3b8; font-weight: 400; font-size: 12px; margin-left: 4px; }
.wiz-input {
    width: 100%; padding: 10px 14px;
    border: 2px solid #e2e8f0; border-radius: 10px;
    font-size: 14px; box-sizing: border-box;
    transition: all 0.2s; background: #f8fafc;
    font-family: inherit;
}
.wiz-textarea {
    width: 100%; padding: 10px 14px;
    border: 2px solid #e2e8f0; border-radius: 10px;
    font-size: 14px; box-sizing: border-box; resize: vertical;
    transition: all 0.2s; background: #f8fafc; font-family: inherit;
    min-height: 70px;
}
.wiz-textarea:focus {
    outline: none; border-color: #4f46e5;
    box-shadow: 0 0 0 4px rgba(79, 70, 229, 0.1);
    background: #fff;
}
/* 联系方式区域 */
.wiz-contact-box {
    background: #f8fafc; border-radius: 12px; padding: 14px;
    margin-top: 20px; border: 1px solid #e2e8f0;
}
.wiz-contact-title {
    font-size: 14px; font-weight: 700; color: #334155;
    margin-bottom: 10px; display: flex; align-items: center; gap: 6px;
}
.wiz-contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.wiz-contact-full { grid-column: 1 / -1; }

/* 风格选择 */
.wiz-style-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
.wiz-style-card {
    border: 3px solid #e2e8f0; padding: 14px 12px; border-radius: 14px;
    cursor: pointer; text-align: center; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    background: #fff; position: relative;
}
.wiz-style-card:hover { border-color: #a5b4fc; transform: translateY(-4px); box-shadow: 0 12px 32px rgba(79, 70, 229, 0.12); }
.wiz-style-card.active { border-color: #4f46e5; background: #f5f3ff; box-shadow: 0 8px 24px rgba(79, 70, 229, 0.15); }
.wiz-style-card .recommend-badge {
    position: absolute; top: -10px; right: 12px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff; font-size: 11px; font-weight: 700;
    padding: 3px 12px; border-radius: 20px;
    box-shadow: 0 4px 12px rgba(79, 70, 229, 0.3);
}
.wiz-style-icon { font-size: 32px; margin-bottom: 8px; display: block; }
.wiz-style-name { font-size: 13px; font-weight: 700; color: #1e293b; margin-bottom: 6px; }
.wiz-style-desc { font-size: 11px; color: #94a3b8; line-height: 1.5; }

/* AI推荐条 */
.wiz-ai-recommend {
    background: linear-gradient(135deg, #eef2ff, #e0e7ff);
    border: 1px solid #c7d2fe; border-radius: 14px;
    padding: 12px 16px; margin-bottom: 18px;
    display: flex; align-items: center; gap: 14px;
}
.wiz-ai-recommend .ai-icon { font-size: 22px; flex-shrink: 0; }
.wiz-ai-recommend .ai-label { font-size: 12px; font-weight: 700; color: #4f46e5; margin-bottom: 2px; }
.wiz-ai-recommend .ai-text { font-size: 12px; color: #4338ca; }

/* 提交按钮 */
.wiz-submit-btn {
    width: 100%; padding: 13px; border: none; border-radius: 12px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff; cursor: pointer; font-size: 16px; font-weight: 700;
    margin-top: 20px; transition: all 0.3s cubic-bezier(0.16, 1, 0.3, 1);
    box-shadow: 0 8px 24px rgba(79, 70, 229, 0.3);
    font-family: inherit; letter-spacing: 0.02em;
}
.wiz-submit-btn:hover { transform: translateY(-2px); box-shadow: 0 16px 40px rgba(79, 70, 229, 0.4); }
.wiz-submit-btn:active { transform: translateY(0); }
.wiz-submit-btn:disabled { opacity: 0.6; cursor: not-allowed; transform: none; }
.wiz-hint { text-align: center; margin-top: 16px; font-size: 11px; color: #94a3b8; }

/* 专家模式 - 步骤指示器 */
.wiz-steps-bar {
    display: flex; gap: 0; margin-bottom: 22px; align-items: center;
}
.wiz-step-item {
    flex: 1; text-align: center; padding: 10px 2px; border-radius: 10px;
    font-size: 10px; font-weight: 700; color: #94a3b8;
    background: #f1f5f9; position: relative; transition: all 0.3s;
}
.wiz-step-item.active { background: #4f46e5; color: #fff; box-shadow: 0 4px 16px rgba(79, 70, 229, 0.3); }
.wiz-step-item.done { background: #10b981; color: #fff; }
.wiz-step-item + .wiz-step-item { margin-left: 6px; }

/* 专家模式 - 导航按钮 */
.wiz-nav { display: flex; justify-content: space-between; align-items: center; margin-top: 28px; padding-top: 20px; gap: 10px; }
.wiz-btn-prev {
    padding: 10px 22px; border: 2px solid #e2e8f0; border-radius: 12px;
    background: #fff; cursor: pointer; font-size: 14px; font-weight: 600;
    color: #64748b; transition: all 0.2s; font-family: inherit;
}
.wiz-btn-prev:hover { border-color: #94a3b8; color: #1e293b; }
.wiz-btn-next {
    padding: 16px 48px; border: none; border-radius: 14px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff !important; cursor: pointer;
    font-size: 16px; font-weight: 700;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
    font-family: inherit;
    box-shadow: 0 6px 24px rgba(79, 70, 229, 0.4);
    letter-spacing: 1px;
}
.wiz-btn-next:hover { transform: translateY(-2px); box-shadow: 0 10px 32px rgba(79, 70, 229, 0.5); background: linear-gradient(135deg, #4338ca, #6d28d9); }

/* 确认信息 */
.wiz-confirm-box {
    background: #f8fafc; border-radius: 12px; padding: 16px;
    border: 1px solid #e2e8f0;
}
.wiz-confirm-row {
    display: flex; justify-content: space-between; align-items: flex-start;
    padding: 10px 0; border-bottom: 1px solid #e2e8f0;
    font-size: 13px;
}
.wiz-confirm-row:last-child { border-bottom: none; }
.wiz-confirm-label { color: #64748b; font-weight: 500; min-width: 70px; }
.wiz-confirm-value { color: #1e293b; font-weight: 600; text-align: right; flex: 1; margin-left: 12px; }

/* 生成成功 */
.wiz-success { text-align: center; padding: 16px 0; }
.wiz-success-icon { font-size: 48px; margin-bottom: 16px; display: block; animation: bounceIn 0.6s; }
.wiz-success-title { font-size: 20px; font-weight: 800; color: #0f172a; margin: 0 0 8px; }
.wiz-success-desc { font-size: 13px; color: #64748b; margin: 0 0 20px; line-height: 1.6; }
.wiz-success-card {
    background: #f8fafc; border-radius: 16px; padding: 20px;
    margin-bottom: 24px; text-align: left; border: 1px solid #e2e8f0;
}
.wiz-success-card .site-name { font-size: 14px; font-weight: 700; color: #1e293b; margin-bottom: 4px; }
.wiz-success-card .site-meta { font-size: 12px; color: #64748b; display: flex; align-items: center; gap: 6px; }
.wiz-success-actions { display: flex; flex-direction: column; gap: 10px; }
.wiz-btn-primary {
    padding: 16px 24px; border: none; border-radius: 14px;
    background: linear-gradient(135deg, #4f46e5, #7c3aed);
    color: #fff; cursor: pointer; font-size: 13px; font-weight: 700;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    transition: all 0.2s; font-family: inherit;
    box-shadow: 0 8px 24px rgba(79, 70, 229, 0.3);
}
.wiz-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 12px 32px rgba(79, 70, 229, 0.4); }
.wiz-btn-secondary {
    padding: 14px 24px; border: 2px solid #e2e8f0; border-radius: 14px;
    background: #fff; cursor: pointer; font-size: 13px; font-weight: 600;
    color: #475569; display: flex; align-items: center; justify-content: center; gap: 8px;
    transition: all 0.2s; font-family: inherit;
}
.wiz-btn-secondary:hover { border-color: #94a3b8; color: #1e293b; }
.wiz-btn-ghost {
    padding: 12px 24px; border: none; border-radius: 14px;
    background: transparent; cursor: pointer; font-size: 14px; font-weight: 600;
    color: #64748b; transition: all 0.2s; font-family: inherit;
}
.wiz-btn-ghost:hover { color: #4f46e5; background: #f5f3ff; }

/* 加载动画 */
.wiz-loading { text-align: center; padding: 60px 20px; }
.wiz-spinner {
    width: 48px; height: 48px; border: 4px solid #e2e8f0;
    border-top-color: #4f46e5; border-radius: 50%;
    animation: spin 0.8s linear infinite; margin: 0 auto 20px;
}
.wiz-loading-text { font-size: 16px; font-weight: 600; color: #334155; margin-bottom: 8px; }
.wiz-loading-hint { font-size: 13px; color: #94a3b8; }

@keyframes slideUp {
    from { opacity: 0; transform: translateY(24px) scale(0.97); }
    to   { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes bounceIn {
    0%   { transform: scale(0.3); opacity: 0; }
    50%  { transform: scale(1.05); }
    70%  { transform: scale(0.9); }
    100% { transform: scale(1); opacity: 1; }
}

/* ============ Print ============ */
@media print {
    .sidebar,.topbar,.toast-container,.modal-overlay { display:none!important; }
    .main-content { margin-left:0!important; }
    #page-content { padding:0!important; }
    .card { break-inside:avoid;box-shadow:none!important;border:1px solid #ddd!important; }
}

/* ============ Article Result Card (GEO生成文章) ============ */
.article-result-card-360 {
    background: white;
    border-radius: 16px;
    border: 1px solid #e2e8f0;
    overflow: hidden;
}
.article-result-card-360 .arc-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    padding: 20px 24px 14px;
    flex-wrap: wrap;
}
.article-result-card-360 .arc-main-title {
    font-size: 22px !important;
    font-weight: 800 !important;
    color: #0f172a !important;
    line-height: 1.3 !important;
    margin: 0 !important;
    padding: 8px 0 !important;
    word-break: break-word;
}
.article-result-card-360 .arc-score-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 14px;
    border-radius: 20px;
    white-space: nowrap;
    flex-shrink: 0;
}
.article-result-card-360 .arc-meta {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 10px 18px;
    padding: 10px 24px 14px;
    font-size: 13px;
    color: #64748b;
    border-bottom: 1px solid #f1f5f9;
}
.article-result-card-360 .arc-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #64748b;
}
.article-result-card-360 .arc-tag {
    display: inline-block;
    background: #f0f9ff;
    color: #0369a1;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
}
.article-result-card-360 .arc-summary-quote {
    margin: 0 24px 16px;
    padding: 14px 18px;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-left: 4px solid #4f46e5;
    border-radius: 0 10px 10px 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.7;
}
.article-result-card-360 .arc-summary-quote i {
    color: #4f46e5;
    margin-right: 6px;
}
.article-result-card-360 .content-preview-360 {
    padding: 16px 24px 24px;
    font-size: 15px;
    line-height: 1.85;
    color: #334155;
    max-height: 500px;
    overflow-y: auto;
}
.article-result-card-360 .content-preview-360 h1,
.article-result-card-360 .content-preview-360 h2,
.article-result-card-360 .content-preview-360 h3 {
    color: #1e293b;
    font-weight: 700;
    margin-top: 24px;
    margin-bottom: 10px;
}
.article-result-card-360 .content-preview-360 p {
    margin-bottom: 14px;
}
.article-result-card-360 .arc-footer {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    padding: 16px 24px 20px;
    flex-wrap: wrap;
}
.article-result-card-360 .arc-titles {
    width: 100%;
    margin-bottom: 4px;
}
.article-result-card-360 .arc-titles label {
    font-size: 12px;
    color: #94a3b8;
    font-weight: 500;
    margin-right: 10px;
}
.article-result-card-360 .arc-title-tags {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}
.article-result-card-360 .arc-title-tag {
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    background: #f1f5f9;
    padding: 6px 16px;
    border-radius: 20px;
    transition: all 0.2s ease;
    border: 2px solid transparent;
}
.article-result-card-360 .arc-title-tag.active {
    color: #4f46e5;
    background: #eef2ff;
    border-color: #c7d2fe;
}

/* AI诊断优化按钮 - 突出显示 */
.btn-primary.btn-xs {
    background: var(--primary) !important;
    color: white !important;
    border-color: var(--primary) !important;
    box-shadow: 0 2px 8px rgba(79, 70, 229, 0.25) !important;
}
.btn-primary.btn-xs:hover {
    background: #4338ca !important;
    transform: translateY(-1px);
}

/* ============ Article View Modal (查看文章弹窗) ============ */

/* 文章标题 */
.av-article-title {
    font-size: 26px !important;
    font-weight: 900 !important;
    color: #0f172a !important;
    line-height: 1.35 !important;
    margin: 4px 0 20px !important;
    padding-bottom: 18px !important;
    border-bottom: 2px solid #e2e8f0 !important;
    letter-spacing: -0.02em !important;
}

/* 元信息栏 */
.av-meta-bar {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 16px;
    margin-bottom: 20px;
    padding: 12px 16px;
    background: #f8fafc;
    border-radius: 10px;
}
.av-score-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 13px;
    font-weight: 700;
    padding: 5px 14px;
    border-radius: 20px;
    white-space: nowrap;
}
.av-score-badge i { font-size: 11px; }
.av-meta-item {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 13px;
    color: #64748b;
}
.av-meta-item i { color: #94a3b8; font-size: 11px; }
.av-meta-date { color: #94a3b8; margin-left: auto; }
.av-tag {
    display: inline-block;
    background: #eff6ff;
    color: #2563eb;
    font-size: 11px;
    font-weight: 600;
    padding: 3px 10px;
    border-radius: 20px;
}

/* 摘要 */
.av-summary {
    margin: 0 0 24px;
    padding: 16px 20px;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9);
    border-left: 4px solid #4f46e5;
    border-radius: 0 10px 10px 0;
    font-size: 14px;
    color: #475569;
    line-height: 1.75;
}
.av-summary::before {
    content: '"';
    font-size: 28px;
    color: #c7d2fe;
    position: absolute;
    margin-left: -8px;
    margin-top: -6px;
}

/* 标题选择器 */
.av-title-selector {
    margin-bottom: 20px !important;
    padding: 16px 20px !important;
    background: linear-gradient(135deg, #f8fafc, #f1f5f9) !important;
    border-radius: 12px !important;
    border: 1px solid #e2e8f0 !important;
}
.av-title-selector label {
    font-size: 13px !important;
    color: #475569 !important;
    font-weight: 700 !important;
    margin-bottom: 12px !important;
    display: block !important;
}
.av-title-tag {
    cursor: pointer;
    font-size: 14px;
    font-weight: 600;
    color: #64748b;
    background: white;
    padding: 10px 20px;
    border-radius: 24px;
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
    border: 2px solid #e2e8f0;
    position: relative;
    user-select: none;
}
.av-title-tag:hover {
    border-color: #a5b4fc;
    color: #4338ca;
    transform: translateY(-1px);
    box-shadow: 0 2px 8px rgba(79, 70, 229, 0.12);
}
.av-title-tag.active {
    color: white !important;
    background: linear-gradient(135deg, #4f46e5, #6366f1) !important;
    border-color: transparent !important;
    font-weight: 700 !important;
    box-shadow: 0 4px 14px rgba(79, 70, 229, 0.35) !important;
    transform: translateY(-1px);
}
.av-title-tag.active::after {
    content: '\f00c';
    font-family: 'Font Awesome 6 Free';
    font-weight: 900;
    margin-left: 6px;
    font-size: 11px;
}

/* 正文预览排版 — 专业阅读体验 */
#article-view-modal .content-preview-360 {
    padding: 4px 0 !important;
    font-size: 15.5px !important;
    line-height: 1.95 !important;
    color: #374151 !important;
}
#article-view-modal .content-preview-360 > *:first-child { margin-top: 0; }

/* ====== 标题系统 ====== */
#article-view-modal .content-preview-360 h1,
#article-view-modal .content-preview-360 h2,
#article-view-modal .content-preview-360 h3,
#article-view-modal .content-preview-360 h4 {
    color: #111827 !important;
    font-weight: 800 !important;
    margin-top: 36px !important;
    margin-bottom: 16px !important;
    line-height: 1.3 !important;
    letter-spacing: -0.02em !important;
}

#article-view-modal .content-preview-360 h2 {
    font-size: 22px !important;
    padding: 0 0 12px 14px !important;
    border-left: 4px solid #4f46e5 !important;
    background: linear-gradient(90deg, rgba(79,70,229,0.05), transparent) !important;
    border-radius: 0 8px 8px 0 !important;
}

#article-view-modal .content-preview-360 h3 {
    font-size: 18px !important;
    color: #1e293b !important;
    padding: 0 0 10px 12px !important;
    border-left: 3px solid #94a3b8 !important;
    border-radius: 0 6px 6px 0 !important;
    background: #fafafa !important;
}

#article-view-modal .content-preview-360 h4 { font-size: 16px !important; }

/* ====== 段落 ====== */
#article-view-modal .content-preview-360 p {
    margin-bottom: 18px !important;
    text-align: justify !important;
    text-justify: inter-ideograph !important;
    color: #374151 !important;
}
#article-view-modal .content-preview-360 p:last-child { margin-bottom: 0 !important; }

/* 段落首字缩进效果（中文文章风格） */
#article-view-modal .content-preview-360 p + p {
    text-indent: 2em !important;
}

/* ====== 列表 ====== */
#article-view-modal .content-preview-360 ul,
#article-view-modal .content-preview-360 ol {
    margin: 18px 0 !important;
    padding-left: 24px !important;
}
#article-view-modal .content-preview-360 ul {
    list-style: none !important;
    padding-left: 0 !important;
}
#article-view-modal .content-preview-360 ul li {
    position: relative;
    padding-left: 24px !important;
    margin-bottom: 10px !important;
    line-height: 1.75 !important;
    color: #4b5563 !important;
}
#article-view-modal .content-preview-360 ul li::before {
    content: '';
    position: absolute;
    left: 8px;
    top: 11px;
    width: 6px;
    height: 6px;
    border-radius: 50%;
    background: #4f46e5;
}
#article-view-modal .content-preview-360 ol li {
    margin-bottom: 10px !important;
    line-height: 1.75 !important;
    color: #4b5563 !important;
}
#article-view-modal .content-preview-360 ol {
    list-style-position: outside !important;
    counter-reset: none !important;
}
#article-view-modal .content-preview-360 li strong { color: #111827 !important; font-weight: 700 !important; }

/* ====== 加粗和强调 ====== */
#article-view-modal .content-preview-360 strong {
    color: #111827 !important;
    font-weight: 700 !important;
}
#article-view-modal .content-preview-360 em {
    color: #6b7280 !important;
    font-style: italic !important;
}

/* ====== 引用块 ====== */
#article-view-modal .content-preview-360 blockquote {
    margin: 20px 0 !important;
    padding: 16px 22px !important;
    border-left: 4px solid #4f46e5 !important;
    color: #4b5563 !important;
    background: linear-gradient(135deg, #f5f3ff, #ede9fe) !important;
    border-radius: 0 12px 12px 0 !important;
    font-size: 14.5px !important;
    line-height: 1.7 !important;
}

/* ====== 内联代码 ====== */
#article-view-modal .content-preview-360 code.inline-code {
    background: #f1f5f9;
    color: #e11d48;
    padding: 2px 7px;
    border-radius: 4px;
    font-size: 13px;
    font-family: 'Consolas', monospace;
}

/* ====== 分隔线 ====== */
#article-view-modal .content-preview-360 hr {
    border: none;
    height: 1px;
    background: linear-gradient(90deg, transparent, #e2e8f0, transparent);
    margin: 28px 0 !important;
}

/* ====== 数字/数据高亮 ====== */
#article-view-modal .content-preview-360 p:has(strong),
#article-view-modal .content-preview-360 li strong {
    /* 让含加粗的段落稍微突出 */
}


