:root,[data-theme=light]{--bg-primary:#f8fafc;--bg-secondary:#fff;--bg-tertiary:#f1f5f9;--bg-hover:#e2e8f0;--text-primary:#111827;--text-secondary:#374151;--text-tertiary:#6b7280;--text-muted:#9ca3af;--border-color:#e5e7eb;--accent:#3b82f6;--accent-hover:#2563eb;--accent-light:#eff6ff;--success:#059669;--success-light:#ecfdf5;--warning:#d97706;--warning-light:#fffbeb;--danger:#dc2626;--danger-light:#fef2f2;--sidebar-bg:#1e293b;--sidebar-text:#e2e8f0;--sidebar-hover:#334155;--sidebar-active:#3b82f6;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 4px 6px #00000012;--radius:8px}[data-theme=dark]{--bg-primary:#1a1a2e;--bg-secondary:#252540;--bg-tertiary:#2a2a45;--bg-hover:#35355a;--text-primary:#e0e0e0;--text-secondary:#c0c0d0;--text-tertiary:#9090a0;--text-muted:#707080;--border-color:#3a3a5c;--accent:#60a5fa;--accent-hover:#93bbfd;--accent-light:#1e3a5f;--success:#34d399;--success-light:#064e3b;--warning:#fbbf24;--warning-light:#78350f;--danger:#f87171;--danger-light:#7f1d1d;--sidebar-bg:#12122a;--sidebar-text:#c0c0d0;--sidebar-hover:#2a2a45;--sidebar-active:#3b82f6;--shadow-sm:0 1px 2px #0000004d;--shadow-md:0 4px 6px #0006}[data-theme=eye]{--bg-primary:#f5f0e8;--bg-secondary:#fefaf1;--bg-tertiary:#efe5d5;--bg-hover:#e5d8c0;--text-primary:#4a3728;--text-secondary:#5c4a35;--text-tertiary:#8b7355;--text-muted:#b0a090;--border-color:#d4c5b0;--accent:#3b82f6;--accent-hover:#2563eb;--accent-light:#e8f0fe;--success:#059669;--success-light:#ecfdf5;--warning:#d97706;--warning-light:#fffbeb;--danger:#dc2626;--danger-light:#fef2f2;--sidebar-bg:#4a3728;--sidebar-text:#efe5d5;--sidebar-hover:#5c4a35;--sidebar-active:#3b82f6;--shadow-sm:0 1px 2px #4a37280d;--shadow-md:0 4px 6px #4a372814}*{box-sizing:border-box;margin:0;padding:0}body{color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;line-height:1.6}a{color:var(--accent);text-decoration:none;transition:color .2s}a:hover{color:var(--accent-hover)}button,input,select,textarea{font-family:inherit;transition:all .2s}button:hover{opacity:.9;transform:translateY(-1px)}button:active{transform:translateY(0)}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-color);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}::selection{background:var(--accent);color:#fff}.card{background:var(--bg-secondary);border-radius:var(--radius);border:1px solid var(--border-color);box-shadow:var(--shadow-sm);transition:box-shadow .2s}.card:hover{box-shadow:var(--shadow-md)}.btn-primary{border-radius:var(--radius);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:8px 20px;font-size:14px;font-weight:600}.btn-secondary{border-radius:var(--radius);border:1px solid var(--border-color);color:var(--text-primary);cursor:pointer;background:0 0;padding:8px 20px;font-size:14px}.btn-ghost{border-radius:var(--radius);border:1px solid var(--accent);color:var(--accent);cursor:pointer;background:0 0;padding:6px 14px;font-size:13px}.table-clean{border-collapse:collapse;width:100%;font-size:13px}.table-clean th{text-align:left;color:var(--text-secondary);border-bottom:2px solid var(--border-color);background:var(--bg-secondary);padding:10px 14px;font-weight:500}.table-clean td{color:var(--text-primary);border-bottom:1px solid var(--border-color);padding:10px 14px}.table-clean tr:hover td{background:var(--bg-hover)}.tag{border-radius:10px;padding:2px 10px;font-size:11px;font-weight:500}.tag-accent{background:var(--accent-light);color:var(--accent)}.tag-success{background:var(--success-light);color:var(--success)}.tag-danger{background:var(--danger-light);color:var(--danger)}.avatar-placeholder{background:var(--accent);color:#fff;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;font-size:14px;font-weight:600;display:flex}.gradient-card{background:linear-gradient(135deg, var(--accent-light), var(--bg-secondary));border:1px solid var(--border-color);border-radius:var(--radius);padding:20px}.skeleton{background:linear-gradient(90deg, var(--bg-tertiary) 25%, var(--bg-hover) 50%, var(--bg-tertiary) 75%);border-radius:var(--radius);background-size:200% 100%;animation:1.5s infinite skeleton-shine}@keyframes skeleton-shine{0%{background-position:200% 0}to{background-position:-200% 0}}
