:root{--sidebar-w: 240px;--header-h: 64px;--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--t: .2s ease;--bg-base: #0d1117;--bg-card: #161b22;--bg-elevated: #21262d;--bg-hover: #2d333b;--border: rgba(240, 246, 252, .1);--border-s: rgba(240, 246, 252, .18);--text-1: #e6edf3;--text-2: #8b949e;--text-3: #6e7681;--accent: #a78bfa;--accent-bg: rgba(167, 139, 250, .12);--success: #3fb950;--success-bg: rgba(63, 185, 80, .12);--warning: #e3b341;--warning-bg: rgba(227, 179, 65, .12);--danger: #f85149;--danger-bg: rgba(248, 81, 73, .12);--info: #58a6ff;--info-bg: rgba(88, 166, 255, .12);--orange: #f97316;--orange-bg: rgba(249, 115, 22, .12);--shadow: 0 8px 32px rgba(0, 0, 0, .5);--shadow-sm: 0 2px 8px rgba(0, 0, 0, .35)}[data-theme=light]{--bg-base: #f1f5f9;--bg-card: #ffffff;--bg-elevated: #f8fafc;--bg-hover: #e9eef5;--border: rgba(15, 17, 23, .08);--border-s: rgba(15, 17, 23, .16);--text-1: #1e293b;--text-2: #64748b;--text-3: #94a3b8;--accent: #7c3aed;--accent-bg: rgba(124, 58, 237, .08);--success: #16a34a;--success-bg: rgba(22, 163, 74, .08);--warning: #d97706;--warning-bg: rgba(217, 119, 6, .08);--danger: #dc2626;--danger-bg: rgba(220, 38, 38, .08);--info: #2563eb;--info-bg: rgba(37, 99, 235, .08);--orange: #ea580c;--orange-bg: rgba(234, 88, 12, .08);--shadow: 0 8px 32px rgba(15, 23, 42, .1);--shadow-sm: 0 2px 8px rgba(15, 23, 42, .06)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;background:var(--bg-base);color:var(--text-1);line-height:1.6;font-size:14px;transition:background var(--t),color var(--t)}a{text-decoration:none;color:inherit}::-webkit-scrollbar{width:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--border-s)}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);transition:border-color var(--t),box-shadow var(--t)}.card:hover{border-color:var(--border-s)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
