@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Noto+Sans+SC:wght@300;400;500;700&family=JetBrains+Mono:wght@400;500&display=swap";:root{--primary-50:#eef2ff;--primary-100:#d8e2fe;--primary-200:#b3c7fd;--primary-300:#7fa0fb;--primary-400:#4d7bf7;--primary-500:#2b5ce6;--primary-600:#1e45c4;--primary-700:#17369e;--primary-800:#122b7a;--primary-900:#0d1f5a;--success-50:#ecfdf5;--success-100:#d1fae5;--success-500:#10b981;--success-600:#059669;--success-700:#047857;--warning-50:#fffbeb;--warning-100:#fef3c7;--warning-500:#f59e0b;--warning-600:#d97706;--warning-700:#b45309;--error-50:#fef2f2;--error-100:#fee2e2;--error-500:#ef4444;--error-600:#dc2626;--error-700:#b91c1c;--info-50:#ecfeff;--info-100:#cffafe;--info-500:#06b6d4;--info-600:#0891b2;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--gray-950:#030712;--text-primary:#1f2937;--text-secondary:#4b5563;--text-tertiary:#6b7280;--text-quaternary:#9ca3af;--text-inverse:#fff;--text-link:var(--primary-500);--bg-main:#f5f6fa;--bg-surface:#fff;--bg-elevated:#fff;--bg-sidebar:#1e2235;--bg-sidebar-hover:#282d45;--bg-sidebar-active:#2b5ce6;--bg-hover:#f3f4f6;--bg-active:#eef2ff;--bg-mask:#00000080;--border-color:#e5e7eb;--border-light:#f3f4f6;--border-focus:var(--primary-500);--divider:#e5e7eb;--online-color:#10b981;--offline-color:#9ca3af;--busy-color:#ef4444;--away-color:#f59e0b;--msg-bubble-self:#2b5ce6;--msg-bubble-other:#f3f4f6;--msg-text-self:#fff;--msg-text-other:#1f2937;--call-bg:#111827;--call-btn-danger:#ef4444;--call-btn-active:#ffffff26;--badge-bg:#ef4444;--badge-text:#fff;--font-sans:"Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono:"JetBrains Mono", "Fira Code", monospace;--text-xs:.75rem;--text-sm:.8125rem;--text-base:.875rem;--text-md:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--weight-light:300;--weight-regular:400;--weight-medium:500;--weight-semibold:600;--weight-bold:700;--leading-tight:1.25;--leading-normal:1.5;--leading-relaxed:1.75;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-8:32px;--space-10:40px;--space-12:48px;--space-16:64px;--radius-sm:4px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-2xl:24px;--radius-full:9999px;--shadow-xs:0 1px 2px #0000000d;--shadow-sm:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--shadow-lg:0 10px 15px -3px #0000001a, 0 4px 6px -4px #0000001a;--shadow-xl:0 20px 25px -5px #0000001a, 0 8px 10px -6px #0000001a;--shadow-focus:0 0 0 3px #2b5ce626;--transition-fast:.15s ease;--transition-normal:.25s ease;--transition-slow:.35s ease;--ease-bounce:cubic-bezier(.34, 1.56, .64, 1);--z-dropdown:100;--z-sticky:200;--z-overlay:300;--z-modal:400;--z-toast:500;--z-tooltip:600;--z-call:700;--sidebar-width:64px;--sidebar-expanded:220px;--panel-width:320px;--topbar-height:56px;--avatar-xs:24px;--avatar-sm:32px;--avatar-md:40px;--avatar-lg:48px;--avatar-xl:64px;--avatar-2xl:96px}[data-theme=dark]{--text-primary:#f3f4f6;--text-secondary:#d1d5db;--text-tertiary:#9ca3af;--text-quaternary:#6b7280;--text-inverse:#111827;--bg-main:#0f1117;--bg-surface:#1a1d2e;--bg-elevated:#242840;--bg-sidebar:#0d0f1a;--bg-sidebar-hover:#1a1d2e;--bg-hover:#242840;--bg-active:#1e2a5a;--border-color:#2d3348;--border-light:#1f2440;--divider:#2d3348;--msg-bubble-other:#242840;--msg-text-other:#f3f4f6;--shadow-sm:0 1px 3px #0000004d;--shadow-md:0 4px 6px #0000004d;--shadow-lg:0 10px 15px #0000004d}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-size:14px}body{font-family:var(--font-sans);color:var(--text-primary);background:var(--bg-main);line-height:1.5;overflow-x:hidden}a{color:inherit;text-decoration:none}ul,ol{list-style:none}img{max-width:100%;display:block}button{cursor:pointer;font-family:inherit;font-size:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;border:none;outline:none}::-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-quaternary)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeInDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideInLeft{0%{transform:translate(-100%)}to{transform:translate(0)}}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.animate-fadeIn{animation:fadeIn var(--transition-normal) ease}.animate-fadeInUp{animation:fadeInUp var(--transition-normal) ease}.animate-scaleIn{animation:scaleIn var(--transition-normal) ease}.animate-pulse{animation:2s infinite pulse}.animate-spin{animation:1s linear infinite spin}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-md{font-size:var(--text-md)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.font-medium{font-weight:var(--weight-medium)}.font-semibold{font-weight:var(--weight-semibold)}.font-bold{font-weight:var(--weight-bold)}.truncate{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.flex-1{flex:1}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.transition{transition:all var(--transition-normal)}.fade-enter-active,.fade-leave-active{transition:opacity var(--transition-normal)}.fade-enter-from,.fade-leave-to{opacity:0}.slide-enter-active,.slide-leave-active{transition:transform var(--transition-normal)}.slide-enter-from,.slide-leave-to{transform:translate(-100%)}
