.app-header[data-v-7f669f48]{position:fixed;top:0;left:0;right:0;height:64px;background:var(--bg-primary);border-bottom:1px solid var(--border-light);box-shadow:var(--shadow-sm);z-index:var(--z-fixed);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.header-container[data-v-7f669f48]{display:flex;align-items:center;justify-content:space-between;height:100%;padding:0 var(--space-6);max-width:1400px;margin:0 auto}.header-brand[data-v-7f669f48]{display:flex;align-items:center;gap:var(--space-3);flex-shrink:0}.brand-logo[data-v-7f669f48]{display:flex;align-items:center;justify-content:center;transition:transform var(--duration-normal) var(--ease-out)}.brand-logo[data-v-7f669f48]:hover{transform:scale(1.05)}.brand-info[data-v-7f669f48]{display:flex;flex-direction:column}.brand-title[data-v-7f669f48]{font-size:var(--text-lg);font-weight:var(--font-bold);color:var(--text-primary);line-height:1.2}.page-title[data-v-7f669f48]{font-size:var(--text-sm);color:var(--text-secondary);line-height:1}.header-search[data-v-7f669f48]{flex:1;max-width:400px;margin:0 var(--space-8)}.search-wrapper[data-v-7f669f48]{position:relative;display:flex;align-items:center}.search-icon[data-v-7f669f48]{position:absolute;left:var(--space-3);color:var(--text-tertiary);z-index:1}.search-input[data-v-7f669f48]{width:100%;padding:var(--space-2) var(--space-3) var(--space-2) var(--space-10);border:1px solid var(--border-medium);border-radius:var(--radius-full);background:var(--bg-secondary);font-size:var(--text-sm);color:var(--text-primary);transition:all var(--duration-normal) var(--ease-out)}.search-input[data-v-7f669f48]:focus{outline:none;border-color:var(--primary-500);background:var(--bg-primary);box-shadow:0 0 0 3px #6366f11a}.search-input[data-v-7f669f48]::placeholder{color:var(--text-tertiary)}.search-clear[data-v-7f669f48]{position:absolute;right:var(--space-3);display:flex;align-items:center;justify-content:center;width:20px;height:20px;border:none;background:var(--gray-200);color:var(--text-tertiary);border-radius:var(--radius-full);cursor:pointer;transition:all var(--duration-fast) var(--ease-out)}.search-clear[data-v-7f669f48]:hover{background:var(--gray-300);color:var(--text-secondary)}.header-actions[data-v-7f669f48]{display:flex;align-items:center;gap:var(--space-4);flex-shrink:0}.header-action-btn[data-v-7f669f48]{position:relative;display:flex;align-items:center;justify-content:center;width:40px;height:40px;border:none;background:transparent;color:var(--text-secondary);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out)}.header-action-btn[data-v-7f669f48]:hover{background:var(--bg-tertiary);color:var(--text-primary)}.notification-badge[data-v-7f669f48]{position:absolute;top:6px;right:6px;min-width:18px;height:18px;background:var(--error-500);color:var(--text-inverse);font-size:var(--text-xs);font-weight:var(--font-semibold);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;padding:0 var(--space-1)}.user-menu[data-v-7f669f48]{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-2) var(--space-3);border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative}.user-menu[data-v-7f669f48]:hover{background:var(--bg-tertiary)}.user-avatar[data-v-7f669f48]{width:32px;height:32px;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:var(--text-inverse);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0}.user-info[data-v-7f669f48]{display:flex;flex-direction:column;min-width:0}.user-name[data-v-7f669f48]{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);line-height:1.2;text-align:left}.user-role[data-v-7f669f48]{font-size:var(--text-xs);color:var(--text-secondary);line-height:1}.menu-arrow[data-v-7f669f48]{color:var(--text-tertiary);transition:transform var(--duration-normal) var(--ease-out)}.user-menu.active .menu-arrow[data-v-7f669f48]{transform:rotate(180deg)}.user-dropdown[data-v-7f669f48]{position:absolute;top:100%;right:0;margin-top:var(--space-2);min-width:200px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden;transform-origin:top right}.dropdown-item[data-v-7f669f48]{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:var(--space-3) var(--space-4);border:none;background:none;color:var(--text-primary);font-size:var(--text-sm);text-align:left;cursor:pointer;transition:background-color var(--duration-fast) var(--ease-out)}.dropdown-item[data-v-7f669f48]:hover{background:var(--bg-tertiary)}.dropdown-item.danger[data-v-7f669f48]{color:var(--error-600)}.dropdown-item.danger[data-v-7f669f48]:hover{background:var(--error-50)}.dropdown-icon[data-v-7f669f48]{flex-shrink:0;color:var(--text-secondary)}.dropdown-item.danger .dropdown-icon[data-v-7f669f48]{color:var(--error-500)}.dropdown-divider[data-v-7f669f48]{height:1px;background:var(--border-light);margin:var(--space-2) 0}.notifications-dropdown[data-v-7f669f48]{position:absolute;top:100%;right:0;margin-top:var(--space-2);width:320px;max-height:400px;background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);z-index:var(--z-dropdown);overflow:hidden}.notifications-header[data-v-7f669f48]{padding:var(--space-4);border-bottom:1px solid var(--border-light);display:flex;align-items:center;justify-content:space-between}.notifications-title[data-v-7f669f48]{font-size:var(--text-sm);font-weight:var(--font-semibold);color:var(--text-primary);margin:0}.mark-read-btn[data-v-7f669f48]{font-size:var(--text-xs);color:var(--primary-600);background:none;border:none;cursor:pointer;padding:var(--space-1);border-radius:var(--radius-sm);transition:all var(--duration-fast) var(--ease-out)}.mark-read-btn[data-v-7f669f48]:hover{background:var(--primary-50)}.notifications-list[data-v-7f669f48]{max-height:300px;overflow-y:auto}.notification-item[data-v-7f669f48]{display:flex;gap:var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-light);transition:background-color var(--duration-fast) var(--ease-out);cursor:pointer}.notification-item[data-v-7f669f48]:hover{background:var(--bg-tertiary)}.notification-item[data-v-7f669f48]:last-child{border-bottom:none}.notification-item.unread[data-v-7f669f48]{background:var(--primary-25)}.notification-icon[data-v-7f669f48]{flex-shrink:0;width:32px;height:32px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-inverse)}.notification-icon.info[data-v-7f669f48]{background:var(--info-500)}.notification-icon.success[data-v-7f669f48]{background:var(--success-500)}.notification-icon.warning[data-v-7f669f48]{background:var(--warning-500)}.notification-icon.error[data-v-7f669f48]{background:var(--error-500)}.notification-content[data-v-7f669f48]{flex:1;min-width:0}.notification-title[data-v-7f669f48]{font-size:var(--text-sm);font-weight:var(--font-medium);color:var(--text-primary);margin:0 0 var(--space-1) 0;line-height:1.3}.notification-message[data-v-7f669f48]{font-size:var(--text-xs);color:var(--text-secondary);margin:0 0 var(--space-1) 0;line-height:1.4}.notification-time[data-v-7f669f48]{font-size:var(--text-xs);color:var(--text-tertiary)}.notification-dot[data-v-7f669f48]{width:8px;height:8px;background:var(--primary-500);border-radius:var(--radius-full);flex-shrink:0;margin-top:2px}.empty-notifications[data-v-7f669f48]{padding:var(--space-8) var(--space-4);text-align:center;color:var(--text-secondary)}.empty-notifications-icon[data-v-7f669f48]{font-size:2rem;margin-bottom:var(--space-2);opacity:.5}.empty-notifications-text[data-v-7f669f48]{font-size:var(--text-sm);color:var(--text-tertiary)}@media (max-width: 768px){.header-container[data-v-7f669f48]{padding:0 var(--space-4)}.header-search[data-v-7f669f48],.brand-info[data-v-7f669f48],.user-info[data-v-7f669f48]{display:none}.notifications-dropdown[data-v-7f669f48]{width:280px}}@media (max-width: 480px){.header-container[data-v-7f669f48]{padding:0 var(--space-3)}.header-actions[data-v-7f669f48]{gap:var(--space-2)}.notifications-dropdown[data-v-7f669f48]{width:calc(100vw - var(--space-6));right:var(--space-3)}}.dropdown-enter-active[data-v-7f669f48],.dropdown-leave-active[data-v-7f669f48]{transition:all var(--duration-normal) var(--ease-out)}.dropdown-enter-from[data-v-7f669f48],.dropdown-leave-to[data-v-7f669f48]{opacity:0;transform:scale(.95) translateY(-10px)}.dropdown-enter-to[data-v-7f669f48],.dropdown-leave-from[data-v-7f669f48]{opacity:1;transform:scale(1) translateY(0)}#app{font-family:var(--font-family-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--bg-secondary)}.bottom-nav{position:fixed;left:0;bottom:0;right:0;height:80px;background:var(--bg-primary);border-top:1px solid var(--border-light);box-shadow:0 -4px 20px #00000014;z-index:var(--z-fixed);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.nav-container{display:flex;align-items:center;justify-content:space-around;height:100%;max-width:600px;margin:0 auto;padding:0 var(--space-4)}.nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-1);padding:var(--space-2);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);position:relative;min-width:60px;border-radius:var(--radius-lg)}.nav-item:hover:not(.nav-create){background:var(--bg-tertiary)}.nav-item.active{color:var(--primary-600)}.nav-icon-wrapper{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-out);position:relative}.nav-item:not(.active) .nav-icon-wrapper{color:var(--text-tertiary)}.nav-item.active .nav-icon-wrapper{background:linear-gradient(135deg,var(--primary-100),var(--primary-200));color:var(--primary-600);transform:translateY(-2px)}.nav-icon{transition:transform var(--duration-normal) var(--ease-out)}.nav-label{font-size:var(--text-xs);font-weight:var(--font-medium);color:var(--text-secondary);transition:all var(--duration-normal) var(--ease-out);line-height:1}.nav-item.active .nav-label{color:var(--primary-600);font-weight:var(--font-semibold)}.nav-indicator{position:absolute;top:-1px;left:50%;transform:translate(-50%) scale(0);width:32px;height:3px;background:linear-gradient(90deg,var(--primary-500),var(--primary-600));border-radius:0 0 var(--radius-sm) var(--radius-sm);transition:transform var(--duration-normal) var(--ease-bounce)}.nav-item.active .nav-indicator{transform:translate(-50%) scale(1)}.nav-create{position:relative}.create-btn{width:56px;height:56px;background:linear-gradient(135deg,var(--primary-500),var(--primary-600));color:var(--text-inverse);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-lg);transition:all var(--duration-normal) var(--ease-out);position:relative;overflow:hidden}.create-btn:before{content:"";position:absolute;top:0;left:0;right:0;bottom:0;background:linear-gradient(135deg,var(--primary-400),var(--primary-500));opacity:0;transition:opacity var(--duration-normal) var(--ease-out)}.nav-create:hover .create-btn{transform:translateY(-4px) scale(1.05);box-shadow:var(--shadow-xl)}.nav-create:hover .create-btn:before{opacity:1}.nav-create:active .create-btn{transform:translateY(-2px) scale(.95)}.nav-create .nav-label{color:var(--primary-600);font-weight:var(--font-semibold)}@keyframes pulse-ring{0%{transform:scale(1);opacity:1}to{transform:scale(1.3);opacity:0}}.create-btn:after{content:"";position:absolute;top:-4px;left:-4px;right:-4px;bottom:-4px;border:2px solid var(--primary-400);border-radius:var(--radius-full);opacity:0;animation:pulse-ring 2s infinite}@media (max-width: 480px){.bottom-nav{height:72px}main.with-nav{padding-top:56px;padding-bottom:72px;min-height:calc(100vh - 128px)}.nav-container{padding:0 var(--space-2)}.nav-item{min-width:50px;gap:2px}.nav-icon-wrapper{width:36px;height:36px}.create-btn{width:48px;height:48px}.nav-label{font-size:10px}}@supports (padding-bottom: env(safe-area-inset-bottom)){.bottom-nav{padding-bottom:env(safe-area-inset-bottom);height:calc(80px + env(safe-area-inset-bottom))}main.with-nav{padding-bottom:calc(80px + env(safe-area-inset-bottom))}@media (max-width: 480px){.bottom-nav{height:calc(72px + env(safe-area-inset-bottom))}main.with-nav{padding-bottom:calc(72px + env(safe-area-inset-bottom))}}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;overflow-x:hidden}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;line-height:1.5;color:#333;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{min-height:100vh;display:flex;flex-direction:column;overflow-x:hidden;font-family:Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}input,button{font-family:inherit}.page-main{padding-top:0}main.with-nav{padding-top:64px;padding-bottom:80px;min-height:calc(100vh - 144px);box-sizing:border-box;overflow-y:auto;overflow-x:hidden}.global-navbar{position:fixed;top:0;left:0;width:100%;height:56px;background:#fff;border-bottom:1px solid #f0f0f0;display:flex;align-items:center;justify-content:flex-start;z-index:20;box-shadow:0 2px 8px #0000000a}.global-navbar .nav-back{background:none;border:none;font-size:22px;color:#888;cursor:pointer;margin-left:18px;margin-right:12px;display:flex;align-items:center}.global-navbar .nav-title{font-size:18px;font-weight:700;color:#222}.dashboard-nav{position:fixed;left:0;bottom:0;width:100%;height:64px;background:#fff;border-top:1px solid #f0f0f0;display:flex;align-items:center;justify-content:space-around;z-index:99;box-shadow:0 -2px 8px #0000000a}.nav-item{flex:1;text-align:center;color:#bbb;font-size:12px;display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;cursor:pointer;transition:all .2s;position:relative;padding:8px 0}.nav-item.active{color:#6366f1;font-weight:600}.nav-item.active .nav-icon{transform:scale(1.1)}.nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:3px;background:#6366f1;border-radius:0 0 2px 2px}.nav-icon{font-size:20px;margin-bottom:4px;transition:transform .2s}.nav-item.plus{flex:1;background:transparent;color:#bbb;border-radius:0;margin:0;position:relative}.nav-item.plus:hover{color:#6366f1}.nav-item.plus .plus-circle{display:inline-flex;justify-content:center;align-items:center;width:40px;height:40px;background:linear-gradient(45deg,#6366f1,#a855f7);color:#fff;font-size:24px;font-weight:700;border-radius:50%;box-shadow:0 2px 8px #6366f133;margin-bottom:4px}.nav-item.plus:hover .plus-circle{background:linear-gradient(45deg,#5b5fff,#9d47ff);transform:scale(1.1)}:root{--primary-50: #f0f4ff;--primary-100: #e0e7ff;--primary-200: #c7d2fe;--primary-300: #a5b4fc;--primary-400: #818cf8;--primary-500: #6366f1;--primary-600: #4f46e5;--primary-700: #4338ca;--primary-800: #3730a3;--primary-900: #312e81;--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;--error-50: #fef2f2;--error-100: #fecaca;--error-500: #ef4444;--error-600: #dc2626;--error-700: #b91c1c;--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;--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--bg-overlay: rgba(0, 0, 0, .5);--text-primary: var(--gray-900);--text-secondary: var(--gray-600);--text-tertiary: var(--gray-500);--text-inverse: #ffffff;--border-light: var(--gray-200);--border-medium: var(--gray-300);--border-dark: var(--gray-400);--font-family-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "微软雅黑", sans-serif;--font-family-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: 1.875rem;--text-4xl: 2.25rem;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--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;--space-20: 5rem;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--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-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-glow: 0 0 20px rgba(99, 102, 241, .3);--shadow-card: 0 4px 20px rgba(0, 0, 0, .08);--shadow-float: 0 8px 30px rgba(0, 0, 0, .12);--duration-fast: .15s;--duration-normal: .25s;--duration-slow: .35s;--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.68, -.55, .265, 1.55);--z-dropdown: 1000;--z-sticky: 1020;--z-fixed: 1030;--z-modal-backdrop: 1040;--z-modal: 1050;--z-popover: 1060;--z-tooltip: 1070;--z-toast: 1080}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-family-sans);font-size:var(--text-base);line-height:1.6;color:var(--text-primary);background-color:var(--bg-secondary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-6);font-size:var(--text-sm);font-weight:var(--font-medium);line-height:1;border:1px solid transparent;border-radius:var(--radius-lg);cursor:pointer;transition:all var(--duration-normal) var(--ease-out);text-decoration:none;white-space:nowrap;-webkit-user-select:none;user-select:none;outline:none}.btn:focus-visible{outline:2px solid var(--primary-500);outline-offset:2px}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:linear-gradient(135deg,var(--primary-500) 0%,var(--primary-600) 100%);color:var(--text-inverse);box-shadow:var(--shadow-sm)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--primary-600) 0%,var(--primary-700) 100%);box-shadow:var(--shadow-md);transform:translateY(-1px)}.btn-secondary{background:var(--bg-primary);color:var(--text-primary);border-color:var(--border-medium)}.btn-secondary:hover:not(:disabled){background:var(--bg-tertiary);border-color:var(--primary-300);color:var(--primary-700)}.btn-outline{background:transparent;color:var(--primary-600);border-color:var(--primary-300)}.btn-outline:hover:not(:disabled){background:var(--primary-50);border-color:var(--primary-400);color:var(--primary-700)}.btn-ghost{background:transparent;color:var(--text-secondary);border:none}.btn-ghost:hover:not(:disabled){background:var(--gray-100);color:var(--text-primary)}.btn-danger{background:linear-gradient(135deg,var(--error-500) 0%,var(--error-600) 100%);color:var(--text-inverse)}.btn-danger:hover:not(:disabled){background:linear-gradient(135deg,var(--error-600) 0%,var(--error-700) 100%);transform:translateY(-1px)}.btn-sm{padding:var(--space-2) var(--space-4);font-size:var(--text-xs)}.btn-lg{padding:var(--space-4) var(--space-8);font-size:var(--text-lg)}.btn-xl{padding:var(--space-5) var(--space-10);font-size:var(--text-xl);font-weight:var(--font-semibold)}.card{background:var(--bg-primary);border:1px solid var(--border-light);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);transition:all var(--duration-normal) var(--ease-out)}.card:hover{box-shadow:var(--shadow-float);transform:translateY(-2px)}.card-header{padding:var(--space-6);border-bottom:1px solid var(--border-light)}.card-body{padding:var(--space-6)}.card-footer{padding:var(--space-6);border-top:1px solid var(--border-light)}.form-input,.form-textarea,.form-select{width:100%;padding:var(--space-3) var(--space-4);font-size:var(--text-sm);line-height:1.5;color:var(--text-primary);background:var(--bg-primary);border:1px solid var(--border-medium);border-radius:var(--radius-lg);transition:all var(--duration-normal) var(--ease-out)}.form-input:focus,.form-textarea:focus,.form-select:focus{outline:none;border-color:var(--primary-500);box-shadow:0 0 0 3px #6366f11a}.form-input:hover,.form-textarea:hover,.form-select:hover{border-color:var(--border-dark)}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-tertiary)}.status-dot{display:inline-block;width:8px;height:8px;border-radius:var(--radius-full);animation:pulse 2s infinite}.status-active{background:var(--success-500)}.status-inactive{background:var(--gray-400)}.status-error{background:var(--error-500)}.status-warning{background:var(--warning-500)}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes bounce{0%,20%,53%,80%,to{transform:translateZ(0)}40%,43%{transform:translate3d(0,-8px,0)}70%{transform:translate3d(0,-4px,0)}90%{transform:translate3d(0,-2px,0)}}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.animate-fadeIn{animation:fadeIn var(--duration-normal) var(--ease-out)}.animate-slideUp{animation:slideUp var(--duration-slow) var(--ease-bounce)}.animate-bounce{animation:bounce 1s infinite}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.font-normal{font-weight:var(--font-normal)}.font-medium{font-weight:var(--font-medium)}.font-semibold{font-weight:var(--font-semibold)}.font-bold{font-weight:var(--font-bold)}.text-xs{font-size:var(--text-xs)}.text-sm{font-size:var(--text-sm)}.text-base{font-size:var(--text-base)}.text-lg{font-size:var(--text-lg)}.text-xl{font-size:var(--text-xl)}.text-2xl{font-size:var(--text-2xl)}.text-3xl{font-size:var(--text-3xl)}.text-primary{color:var(--text-primary)}.text-secondary{color:var(--text-secondary)}.text-tertiary{color:var(--text-tertiary)}.text-inverse{color:var(--text-inverse)}.bg-primary{background-color:var(--bg-primary)}.bg-secondary{background-color:var(--bg-secondary)}.bg-tertiary{background-color:var(--bg-tertiary)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-md{border-radius:var(--radius-md)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:var(--radius-full)}.shadow-sm{box-shadow:var(--shadow-sm)}.shadow-md{box-shadow:var(--shadow-md)}.shadow-lg{box-shadow:var(--shadow-lg)}.shadow-xl{box-shadow:var(--shadow-xl)}@media (max-width: 640px){:root{--text-base: .875rem}.btn{padding:var(--space-2) var(--space-4);font-size:var(--text-sm)}.card{border-radius:var(--radius-lg)}.card-header,.card-body,.card-footer{padding:var(--space-4)}}
