/* ===== 主题变量 ===== */
:root, .theme-linear {
    --bg: #09090b;
    --bg-elevated: #111113;
    --bg-panel: rgba(255,255,255,.025);
    --bg-panel-hover: rgba(255,255,255,.05);
    --input-bg: rgba(0,0,0,.25);
    --border: rgba(255,255,255,.08);
    --border-hover: rgba(255,255,255,.14);
    --accent: #c9a227;
    --accent2: #e8b84b;
    --gold: #e8b84b;
    --gold-dim: #a67c00;
    --text: #f4f4f5;
    --text-dim: #a1a1aa;
    --text-muted: #71717a;
    --ok: #4ade80;
    --warn: #fbbf24;
    --err: #f87171;
    --glow: rgba(232,184,75,.12);
    --glow-strong: rgba(232,184,75,.22);
    --spotlight: rgba(232,184,75,.07);
    --spotlight-cursor: rgba(232,184,75,.22);
    --header-bg: rgba(9,9,11,.78);
    --btn-text: #09090b;
    --radius: 12px;
    --radius-lg: 16px;
    --shadow: 0 0 0 1px rgba(255,255,255,.04), 0 12px 48px rgba(0,0,0,.4);
    --font: 'Inter', 'Noto Sans SC', 'PingFang SC', 'Hiragino Sans GB', 'Microsoft YaHei', sans-serif;
    --font-mono: 'JetBrains Mono', 'SF Mono', ui-monospace, 'Cascadia Code', monospace;
    --shell: 880px;
    --space-section: 32px;
    --space-panel: 20px;
}

/* Linear 昼 — 白天金 */
.theme-linear-light {
    --bg: #fafafa;
    --bg-elevated: #ffffff;
    --bg-panel: rgba(255,255,255,.85);
    --bg-panel-hover: #ffffff;
    --input-bg: #f4f4f5;
    --border: rgba(0,0,0,.08);
    --border-hover: rgba(0,0,0,.14);
    --accent: #b8860b;
    --accent2: #c9a227;
    --gold: #b8860b;
    --gold-dim: #8b6914;
    --text: #18181b;
    --text-dim: #52525b;
    --text-muted: #a1a1aa;
    --ok: #16a34a;
    --warn: #d97706;
    --err: #dc2626;
    --glow: rgba(184,134,11,.1);
    --glow-strong: rgba(184,134,11,.18);
    --spotlight: rgba(232,184,75,.12);
    --header-bg: rgba(250,250,250,.88);
    --btn-text: #fafafa;
    --shadow: 0 0 0 1px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.06);
}

/* 紫雾 */
.theme-linear-violet {
    --bg: #0c0a12;
    --bg-elevated: #14111c;
    --bg-panel: rgba(167,139,250,.04);
    --accent: #8b5cf6;
    --accent2: #a78bfa;
    --gold: #a78bfa;
    --gold-dim: #7c3aed;
    --glow: rgba(139,92,246,.12);
    --glow-strong: rgba(139,92,246,.22);
    --spotlight: rgba(139,92,246,.08);
    --spotlight-cursor: rgba(167,139,250,.2);
    --header-bg: rgba(12,10,18,.78);
    --btn-text: #0c0a12;
}

/* 靛蓝 */
.theme-linear-indigo {
    --bg: #0a0a14;
    --bg-elevated: #12121e;
    --bg-panel: rgba(99,102,241,.04);
    --accent: #6366f1;
    --accent2: #818cf8;
    --gold: #818cf8;
    --gold-dim: #4f46e5;
    --glow: rgba(99,102,241,.12);
    --glow-strong: rgba(99,102,241,.22);
    --spotlight: rgba(99,102,241,.08);
    --header-bg: rgba(10,10,20,.78);
    --btn-text: #0a0a14;
}

/* 翠绿 */
.theme-linear-emerald {
    --bg: #071210;
    --bg-elevated: #0d1a16;
    --bg-panel: rgba(52,211,153,.04);
    --accent: #10b981;
    --accent2: #34d399;
    --gold: #34d399;
    --gold-dim: #059669;
    --glow: rgba(52,211,153,.1);
    --glow-strong: rgba(52,211,153,.2);
    --spotlight: rgba(52,211,153,.07);
    --header-bg: rgba(7,18,16,.78);
    --btn-text: #071210;
}

/* 玫瑰 */
.theme-linear-rose {
    --bg: #100a0c;
    --bg-elevated: #181014;
    --bg-panel: rgba(251,113,133,.04);
    --accent: #f43f5e;
    --accent2: #fb7185;
    --gold: #fb7185;
    --gold-dim: #e11d48;
    --glow: rgba(244,63,94,.1);
    --glow-strong: rgba(244,63,94,.2);
    --spotlight: rgba(251,113,133,.07);
    --header-bg: rgba(16,10,12,.78);
    --btn-text: #100a0c;
}

/* 晨曦 · 浅粉 */
.theme-linear-dawn {
    --bg: #fdf8f6;
    --bg-elevated: #ffffff;
    --bg-panel: rgba(255,255,255,.9);
    --bg-panel-hover: #ffffff;
    --input-bg: #f5f5f4;
    --border: rgba(0,0,0,.07);
    --border-hover: rgba(0,0,0,.12);
    --accent: #e11d48;
    --accent2: #f43f5e;
    --gold: #e11d48;
    --gold-dim: #be123c;
    --text: #1c1917;
    --text-dim: #57534e;
    --text-muted: #a8a29e;
    --ok: #16a34a;
    --warn: #d97706;
    --err: #dc2626;
    --glow: rgba(225,29,72,.08);
    --glow-strong: rgba(225,29,72,.15);
    --spotlight: rgba(244,63,94,.1);
    --header-bg: rgba(253,248,246,.9);
    --btn-text: #fff;
    --shadow: 0 0 0 1px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.05);
}

/* 晴空 · 浅蓝 */
.theme-linear-sky {
    --bg: #f8fafc;
    --bg-elevated: #ffffff;
    --bg-panel: rgba(255,255,255,.9);
    --bg-panel-hover: #ffffff;
    --input-bg: #f1f5f9;
    --border: rgba(0,0,0,.07);
    --border-hover: rgba(0,0,0,.12);
    --accent: #2563eb;
    --accent2: #3b82f6;
    --gold: #2563eb;
    --gold-dim: #1d4ed8;
    --text: #0f172a;
    --text-dim: #475569;
    --text-muted: #94a3b8;
    --ok: #16a34a;
    --warn: #d97706;
    --err: #dc2626;
    --glow: rgba(37,99,235,.08);
    --glow-strong: rgba(37,99,235,.15);
    --spotlight: rgba(59,130,246,.1);
    --header-bg: rgba(248,250,252,.9);
    --btn-text: #fff;
    --shadow: 0 0 0 1px rgba(0,0,0,.04), 0 8px 32px rgba(0,0,0,.05);
}

/* 背景光晕 per theme */
body::before {
    content: '';
    position: fixed;
    inset: 0;
    background: radial-gradient(ellipse 70% 45% at 50% -15%, var(--spotlight), transparent 65%);
    pointer-events: none;
    z-index: 0;
    transition: background .6s ease;
}
body[data-mode="light"]::before {
    background: radial-gradient(ellipse 80% 50% at 50% -10%, var(--spotlight), transparent 60%);
}

/* 主题化系统箭头指针（保留原箭头造型，仅换色） */
:root {
    --cursor-default: default;
    --cursor-pointer: pointer;
}
html {
    cursor: var(--cursor-default);
}
a, button, [role="button"], .clickable, .btn-ai-sm, .btn-ai-xs, .btn-ds, .btn-primary, .btn-secondary,
.metric-box, .svc-card, .site-card, .theme-select, .layout-switch button, .site-tabs button,
.gov-table tr.clickable, label, input[type="submit"], input[type="button"], .agent-quick button,
.modal-head button {
    cursor: var(--cursor-pointer);
}
input:not([type=button]):not([type=submit]):not([type=checkbox]):not([type=radio]),
textarea, select {
    cursor: text;
}
@media (pointer: coarse) {
    html, a, button { cursor: auto; }
}
