@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&family=Noto+Sans+SC:wght@400;500;700&display=swap";.sidebar[data-v-ec90f5bf]{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-right:1px solid var(--color-border);display:flex;flex-direction:column;z-index:100;transition:transform var(--transition-base)}.sidebar[data-v-ec90f5bf]:not(.sidebar--open){transform:translate(-100%)}.sidebar__header[data-v-ec90f5bf]{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--color-border)}.sidebar__logo[data-v-ec90f5bf]{display:flex;align-items:center;gap:var(--space-2)}.sidebar__logo-icon[data-v-ec90f5bf]{width:32px;height:32px;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,var(--color-primary) 0%,#8b5cf6 100%);border-radius:var(--radius-md);color:#fff}.sidebar__logo-text[data-v-ec90f5bf]{font-weight:600;font-size:var(--text-base);color:var(--color-text)}.sidebar__toggle[data-v-ec90f5bf]{display:none;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.sidebar__toggle[data-v-ec90f5bf]:hover{background:var(--color-bg-hover);color:var(--color-text)}.sidebar__nav[data-v-ec90f5bf]{flex:1;padding:var(--space-3);overflow-y:auto}.sidebar__link[data-v-ec90f5bf]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);color:var(--color-text-secondary);text-decoration:none;transition:all var(--transition-fast);margin-bottom:var(--space-0-5)}.sidebar__link[data-v-ec90f5bf]:hover{background:var(--color-bg-hover);color:var(--color-text)}.sidebar__link--active[data-v-ec90f5bf]{background:var(--color-accent-muted);color:var(--color-accent)}.sidebar__link--active[data-v-ec90f5bf]:hover{background:var(--color-accent-muted)}.sidebar__link--child[data-v-ec90f5bf]{padding-left:var(--space-8)}.sidebar__link-icon[data-v-ec90f5bf]{flex-shrink:0}.sidebar__link-text[data-v-ec90f5bf]{font-size:var(--text-sm);font-weight:500}.sidebar__group[data-v-ec90f5bf]{margin-bottom:var(--space-1)}.sidebar__group-header[data-v-ec90f5bf]{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-2) var(--space-3);border:none;background:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all var(--transition-fast);text-align:left}.sidebar__group-header[data-v-ec90f5bf]:hover{background:var(--color-bg-hover);color:var(--color-text)}.sidebar__group-header--active[data-v-ec90f5bf]{color:var(--color-text)}.sidebar__group-arrow[data-v-ec90f5bf]{margin-left:auto;transition:transform var(--transition-fast)}.sidebar__group-arrow--expanded[data-v-ec90f5bf]{transform:rotate(90deg)}.sidebar__group-children[data-v-ec90f5bf]{margin-top:var(--space-0-5);overflow:hidden}.sidebar__footer[data-v-ec90f5bf]{padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border)}.sidebar__footer-info[data-v-ec90f5bf]{display:flex;align-items:center;justify-content:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--color-text-muted)}.sidebar__divider[data-v-ec90f5bf]{color:var(--color-border)}.sidebar__footer-link[data-v-ec90f5bf]{color:var(--color-text-muted);text-decoration:none;transition:color var(--transition-fast)}.sidebar__footer-link[data-v-ec90f5bf]:hover{color:var(--color-primary)}.sidebar-overlay[data-v-ec90f5bf]{display:none}@media (max-width: 1024px){.sidebar__toggle[data-v-ec90f5bf]{display:flex}.sidebar-overlay[data-v-ec90f5bf]{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-overlay);z-index:99}}.expand-enter-active[data-v-ec90f5bf],.expand-leave-active[data-v-ec90f5bf]{transition:all var(--transition-base);overflow:hidden}.expand-enter-from[data-v-ec90f5bf],.expand-leave-to[data-v-ec90f5bf]{opacity:0;max-height:0}.expand-enter-to[data-v-ec90f5bf],.expand-leave-from[data-v-ec90f5bf]{opacity:1;max-height:500px}.fade-enter-active[data-v-ec90f5bf],.fade-leave-active[data-v-ec90f5bf]{transition:opacity var(--transition-base)}.fade-enter-from[data-v-ec90f5bf],.fade-leave-to[data-v-ec90f5bf]{opacity:0}.button[data-v-2462bbce]{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);font-family:var(--font-sans);font-weight:500;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast);white-space:nowrap;position:relative;overflow:hidden}.button[data-v-2462bbce]:disabled{opacity:.5;cursor:not-allowed}.button[data-v-2462bbce]:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.button--sm[data-v-2462bbce]{padding:var(--space-1) var(--space-3);font-size:var(--text-sm);height:32px}.button--md[data-v-2462bbce]{padding:var(--space-2) var(--space-4);font-size:var(--text-sm);height:40px}.button--lg[data-v-2462bbce]{padding:var(--space-3) var(--space-6);font-size:var(--text-base);height:48px}.button--primary[data-v-2462bbce]{background:var(--color-accent);color:var(--color-text-invert)}.button--primary[data-v-2462bbce]:hover:not(:disabled){background:var(--color-accent-hover);box-shadow:var(--shadow-glow)}.button--secondary[data-v-2462bbce]{background:var(--color-bg-elevated);color:var(--color-text);border:1px solid var(--color-border)}.button--secondary[data-v-2462bbce]:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-border-strong)}.button--ghost[data-v-2462bbce]{background:transparent;color:var(--color-text-secondary)}.button--ghost[data-v-2462bbce]:hover:not(:disabled){background:var(--color-bg-hover);color:var(--color-text)}.button--danger[data-v-2462bbce]{background:var(--color-error);color:#fff}.button--danger[data-v-2462bbce]:hover:not(:disabled){background:var(--color-error-hover)}.button--icon[data-v-2462bbce]{padding:var(--space-2);width:40px}.button--icon.button--sm[data-v-2462bbce]{width:32px;padding:var(--space-1)}.button--icon.button--lg[data-v-2462bbce]{width:48px;padding:var(--space-3)}.button--loading[data-v-2462bbce]{color:transparent}.button__spinner[data-v-2462bbce]{position:absolute;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin-2462bbce .8s linear infinite}@keyframes spin-2462bbce{to{transform:rotate(360deg)}}.topbar[data-v-35c39b62]{position:fixed;top:0;right:0;left:260px;height:56px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between;padding:0 var(--space-4);z-index:50;transition:left var(--transition-base)}.app-shell--sidebar-closed .topbar[data-v-35c39b62]{left:0}.topbar__left[data-v-35c39b62]{display:flex;align-items:center;gap:var(--space-4)}.topbar__menu-btn[data-v-35c39b62]{display:none;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);transition:all var(--transition-fast)}.topbar__menu-btn[data-v-35c39b62]:hover{background:var(--color-bg-hover);color:var(--color-text)}.topbar__search[data-v-35c39b62]{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:var(--color-bg-hover);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-muted);cursor:pointer;transition:all var(--transition-fast);min-width:240px}.topbar__search[data-v-35c39b62]:hover{border-color:var(--color-border-strong);color:var(--color-text-secondary)}.topbar__search-text[data-v-35c39b62]{flex:1;text-align:left;font-size:var(--text-sm)}.topbar__search-kbd[data-v-35c39b62]{background:var(--color-bg-active);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono)}.topbar__right[data-v-35c39b62]{display:flex;align-items:center;gap:var(--space-2)}.topbar__user[data-v-35c39b62]{margin-left:var(--space-2)}.topbar__avatar[data-v-35c39b62]{width:32px;height:32px;border-radius:var(--radius-full);background:var(--color-accent);color:var(--color-text-invert);display:flex;align-items:center;justify-content:center;font-weight:600;font-size:var(--text-sm)}@media (max-width: 1024px){.topbar[data-v-35c39b62]{left:0}.topbar__menu-btn[data-v-35c39b62]{display:flex}.topbar__search[data-v-35c39b62]{min-width:auto}.topbar__search-text[data-v-35c39b62]{display:none}}.app-shell[data-v-c710fb04]{display:flex;min-height:100vh}.main-wrapper[data-v-c710fb04]{flex:1;margin-left:260px;min-width:0;display:flex;flex-direction:column;min-height:100vh;transition:margin-left var(--transition-base)}.app-shell--sidebar-closed .main-wrapper[data-v-c710fb04]{margin-left:0}.main-content[data-v-c710fb04]{flex:1;min-width:0;padding:var(--space-6);padding-top:calc(56px + var(--space-6))}@media (max-width: 1024px){.main-wrapper[data-v-c710fb04]{margin-left:0}.main-content[data-v-c710fb04]{padding:var(--space-4);padding-top:calc(56px + var(--space-4))}}.command-palette-overlay[data-v-47ce5a63]{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-bg-overlay);display:flex;align-items:flex-start;justify-content:center;padding-top:15vh;z-index:9999}.command-palette[data-v-47ce5a63]{width:100%;max-width:560px;background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);overflow:hidden}.command-palette__header[data-v-47ce5a63]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--color-border)}.command-palette__search-icon[data-v-47ce5a63]{color:var(--color-text-muted);flex-shrink:0}.command-palette__input[data-v-47ce5a63]{flex:1;background:none;border:none;outline:none;font-size:var(--text-lg);color:var(--color-text);font-family:var(--font-sans)}.command-palette__input[data-v-47ce5a63]::placeholder{color:var(--color-text-muted)}.command-palette__kbd[data-v-47ce5a63]{background:var(--color-bg-active);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:var(--text-xs);font-family:var(--font-mono);color:var(--color-text-muted)}.command-palette__body[data-v-47ce5a63]{max-height:400px;overflow-y:auto;padding:var(--space-2)}.command-palette__empty[data-v-47ce5a63]{padding:var(--space-8);text-align:center;color:var(--color-text-muted)}.command-palette__group[data-v-47ce5a63]{margin-bottom:var(--space-2)}.command-palette__group-title[data-v-47ce5a63]{padding:var(--space-2) var(--space-3);font-size:var(--text-xs);font-weight:600;color:var(--color-text-muted);text-transform:uppercase;letter-spacing:var(--tracking-wider)}.command-palette__item[data-v-47ce5a63]{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;text-align:left;transition:all var(--transition-fast)}.command-palette__item[data-v-47ce5a63]:hover,.command-palette__item--selected[data-v-47ce5a63]{background:var(--color-bg-hover)}.command-palette__item--selected[data-v-47ce5a63]{background:var(--color-accent-muted)}.command-palette__item-icon[data-v-47ce5a63]{font-size:var(--text-xl);flex-shrink:0}.command-palette__item-content[data-v-47ce5a63]{flex:1;min-width:0}.command-palette__item-label[data-v-47ce5a63]{display:block;font-size:var(--text-sm);font-weight:500;color:var(--color-text)}.command-palette__item-desc[data-v-47ce5a63]{display:block;font-size:var(--text-xs);color:var(--color-text-muted);margin-top:2px}.command-palette__footer[data-v-47ce5a63]{display:flex;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-top:1px solid var(--color-border);background:var(--color-bg-hover)}.command-palette__hint[data-v-47ce5a63]{display:flex;align-items:center;gap:var(--space-1);font-size:var(--text-xs);color:var(--color-text-muted)}.command-palette__hint kbd[data-v-47ce5a63]{background:var(--color-bg-active);padding:2px 6px;border-radius:var(--radius-sm);font-family:var(--font-mono)}.palette-enter-active[data-v-47ce5a63]{transition:opacity .15s ease}.palette-leave-active[data-v-47ce5a63]{transition:opacity .1s ease}.palette-enter-from[data-v-47ce5a63],.palette-leave-to[data-v-47ce5a63]{opacity:0}.palette-enter-active .command-palette[data-v-47ce5a63]{animation:paletteIn-47ce5a63 .2s ease-out}.palette-leave-active .command-palette[data-v-47ce5a63]{animation:paletteOut-47ce5a63 .1s ease-in}@keyframes paletteIn-47ce5a63{0%{opacity:0;transform:scale(.96) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes paletteOut-47ce5a63{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.96)}}.toast-container[data-v-67a59971]{position:fixed;top:var(--space-4);right:var(--space-4);z-index:9999;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast[data-v-67a59971]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--glass-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);pointer-events:auto;max-width:400px}.toast__icon[data-v-67a59971]{font-size:var(--text-lg);flex-shrink:0}.toast__message[data-v-67a59971]{flex:1;font-size:var(--text-sm);color:var(--color-text)}.toast__close[data-v-67a59971]{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:var(--text-xl);padding:0;line-height:1;transition:color var(--transition-fast)}.toast__close[data-v-67a59971]:hover{color:var(--color-text)}.toast--success[data-v-67a59971]{border-left:3px solid var(--color-success)}.toast--success .toast__icon[data-v-67a59971]{color:var(--color-success)}.toast--warning[data-v-67a59971]{border-left:3px solid var(--color-warning)}.toast--warning .toast__icon[data-v-67a59971]{color:var(--color-warning)}.toast--error[data-v-67a59971]{border-left:3px solid var(--color-error)}.toast--error .toast__icon[data-v-67a59971]{color:var(--color-error)}.toast--info[data-v-67a59971]{border-left:3px solid var(--color-info)}.toast--info .toast__icon[data-v-67a59971]{color:var(--color-info)}.toast-enter-active[data-v-67a59971]{animation:toastIn-67a59971 .3s ease-out}.toast-leave-active[data-v-67a59971]{animation:toastOut-67a59971 .2s ease-in}@keyframes toastIn-67a59971{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes toastOut-67a59971{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}.page-enter-active,.page-leave-active{transition:opacity .2s ease,transform .2s ease}.page-enter-from{opacity:0;transform:translateY(10px)}.page-leave-to{opacity:0;transform:translateY(-10px)}:root{--font-sans: "Inter", "Noto Sans SC", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", "Consolas", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2.25rem;--text-4xl: 3rem;--tracking-tighter: -.02em;--tracking-tight: -.01em;--tracking-normal: 0;--tracking-wide: .02em;--tracking-wider: .04em;--tracking-widest: .08em;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-10: 2.5rem;--space-12: 3rem;--space-16: 4rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-xl: 24px;--radius-full: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--transition-bounce: .5s cubic-bezier(.34, 1.56, .64, 1);--gm-page-max-width: 100%;--vendor-openai: #10a37f;--vendor-anthropic: #d97706;--vendor-gemini: #4285f4;--color-error-hover: #b91c1c;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-glow: 0 0 20px rgba(6, 182, 212, .5);--shadow-glow-accent: 0 0 25px var(--color-accent)}[data-theme=dark],:root{--color-bg: #0b0f15;--color-bg-elevated: rgba(17, 24, 39, .85);--color-bg-hover: rgba(31, 41, 55, .7);--color-bg-active: rgba(55, 65, 81, .6);--color-bg-overlay: rgba(0, 0, 0, .7);--color-border: rgba(55, 65, 81, .5);--color-border-strong: rgba(75, 85, 99, .6);--color-border-glow: rgba(6, 182, 212, .3);--color-text: #f3f4f6;--color-text-secondary: #9ca3af;--color-text-muted: #6b7280;--color-text-invert: #111827;--color-accent: #06b6d4;--color-accent-hover: #22d3ee;--color-accent-muted: rgba(6, 182, 212, .2);--color-success: #34d399;--color-success-bg: rgba(52, 211, 153, .15);--color-warning: #fbbf24;--color-warning-bg: rgba(251, 191, 36, .15);--color-error: #f87171;--color-error-bg: rgba(248, 113, 113, .15);--color-info: #60a5fa;--color-info-bg: rgba(96, 165, 250, .15);--glass-bg: rgba(17, 24, 39, .75);--glass-border: rgba(55, 65, 81, .4);--glass-blur: blur(20px)}[data-theme=light]{--color-bg: #f3f4f6;--color-bg-elevated: #ffffff;--color-bg-hover: #f9fafb;--color-bg-active: #e5e7eb;--color-bg-overlay: rgba(0, 0, 0, .5);--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-border-glow: rgba(8, 145, 178, .3);--color-text: #111827;--color-text-secondary: #4b5563;--color-text-muted: #9ca3af;--color-text-invert: #ffffff;--color-accent: #0891b2;--color-accent-hover: #06b6d4;--color-accent-muted: rgba(8, 145, 178, .15);--color-success: #059669;--color-success-bg: rgba(5, 150, 105, .1);--color-warning: #d97706;--color-warning-bg: rgba(217, 119, 6, .1);--color-error: #dc2626;--color-error-bg: rgba(220, 38, 38, .1);--color-info: #2563eb;--color-info-bg: rgba(37, 99, 235, .1);--glass-bg: rgba(255, 255, 255, .9);--glass-border: rgba(229, 231, 235, .8);--glass-blur: blur(20px)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}body{font-family:var(--font-sans);font-size:var(--text-base);line-height:1.6;color:var(--color-text);background-color:var(--color-bg);min-height:100vh;transition:background-color var(--transition-base),color var(--transition-base)}h1,h2,h3,h4,h5,h6{font-weight:600;line-height:1.3;letter-spacing:var(--tracking-tight)}h1{font-size:var(--text-3xl)}h2{font-size:var(--text-2xl)}h3{font-size:var(--text-xl)}h4{font-size:var(--text-lg)}h5{font-size:var(--text-base)}h6{font-size:var(--text-sm)}p{margin-bottom:var(--space-4)}a{color:var(--color-accent);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-accent-hover)}code,pre{font-family:var(--font-mono);font-size:.9em}code{background:var(--color-bg-hover);padding:.125em .375em;border-radius:var(--radius-sm)}pre{background:var(--color-bg-elevated);padding:var(--space-4);border-radius:var(--radius-md);overflow-x:auto}.muted{color:var(--color-text-muted)}.text-secondary{color:var(--color-text-secondary)}.text-accent{color:var(--color-accent)}.text-success{color:var(--color-success)}.text-warning{color:var(--color-warning)}.text-error{color:var(--color-error)}.font-mono{font-family:var(--font-mono)}.font-medium{font-weight:500}.font-semibold{font-weight:600}.font-bold{font-weight:700}.container{width:100%;max-width:var(--gm-page-max-width);margin:0 auto;min-width:0}.grid{display:grid;gap:var(--space-4)}.grid-2{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:repeat(3,1fr)}.grid-4{grid-template-columns:repeat(4,1fr)}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-6{gap:var(--space-6)}.gap-8{gap:var(--space-8)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border-strong);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-text-muted)}:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}::selection{background:var(--color-accent-muted);color:var(--color-text)}@media (max-width: 1024px){.grid-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.container{padding:0 var(--space-4)}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}}@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 scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}@keyframes slideInLeft{0%{opacity:0;transform:translate(-20px)}to{opacity:1;transform:translate(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-5px)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes glowPulse{0%,to{box-shadow:0 0 5px var(--color-accent)}50%{box-shadow:0 0 20px var(--color-accent)}}.animate-fadeIn{animation:fadeIn var(--transition-base) ease-out}.animate-fadeInUp{animation:fadeInUp var(--transition-base) ease-out}.animate-fadeInDown{animation:fadeInDown var(--transition-base) ease-out}.animate-scaleIn{animation:scaleIn var(--transition-base) ease-out}.animate-slideInRight{animation:slideInRight var(--transition-base) ease-out}.animate-slideInLeft{animation:slideInLeft var(--transition-base) ease-out}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-spin{animation:spin 1s linear infinite}.animate-bounce{animation:bounce 1s ease-in-out infinite}.stagger-1{animation-delay:50ms}.stagger-2{animation-delay:.1s}.stagger-3{animation-delay:.15s}.stagger-4{animation-delay:.2s}.stagger-5{animation-delay:.25s}.stagger-6{animation-delay:.3s}.skeleton{background:linear-gradient(90deg,var(--color-bg-hover) 25%,var(--color-bg-active) 50%,var(--color-bg-hover) 75%);background-size:200% 100%;animation:shimmer 1.5s infinite;border-radius:var(--radius-sm)}.skeleton-text{height:1em;margin-bottom:.5em}.skeleton-title{height:1.5em;width:60%;margin-bottom:1em}.skeleton-avatar{width:40px;height:40px;border-radius:var(--radius-full)}.skeleton-card{height:120px}.skeleton-button{height:40px;width:100px}.transition-all{transition:all var(--transition-base)}.transition-colors{transition:color var(--transition-base),background-color var(--transition-base),border-color var(--transition-base)}.transition-opacity{transition:opacity var(--transition-base)}.transition-transform{transition:transform var(--transition-base)}.hover-lift{transition:transform var(--transition-fast),box-shadow var(--transition-fast)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.hover-glow{transition:box-shadow var(--transition-fast)}.hover-glow:hover{box-shadow:var(--shadow-glow)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.status-dot{width:8px;height:8px;border-radius:var(--radius-full);display:inline-block}.status-dot--success{background:var(--color-success);box-shadow:0 0 8px var(--color-success)}.status-dot--warning{background:var(--color-warning);box-shadow:0 0 8px var(--color-warning)}.status-dot--error{background:var(--color-error);box-shadow:0 0 8px var(--color-error)}.status-dot--pulse{animation:pulse 2s infinite}.spinner{width:20px;height:20px;border:2px solid var(--color-border);border-top-color:var(--color-accent);border-radius:var(--radius-full);animation:spin .8s linear infinite}.spinner--sm{width:16px;height:16px}.spinner--lg{width:32px;height:32px;border-width:3px}.progress-bar{height:4px;background:var(--color-bg-hover);border-radius:var(--radius-full);overflow:hidden}.progress-bar__fill{height:100%;background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover));border-radius:var(--radius-full);transition:width var(--transition-slow)}.progress-bar--indeterminate .progress-bar__fill{width:30%;animation:indeterminate 1.5s infinite}@keyframes indeterminate{0%{transform:translate(-100%)}to{transform:translate(400%)}}
