@charset "UTF-8";.performance-monitor[data-v-cc1e4bf8]{position:fixed;top:20px;right:20px;z-index:9999;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}.pm-toggle[data-v-cc1e4bf8]{position:absolute;right:0;top:0;background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:8px 12px;cursor:pointer;display:flex;align-items:center;gap:6px;box-shadow:0 2px 8px #0000001a;font-size:14px;font-weight:500;transition:all .2s}.pm-toggle[data-v-cc1e4bf8]:hover{background:#f9fafb;box-shadow:0 4px 12px #00000026}.pm-panel[data-v-cc1e4bf8]{position:absolute;right:0;top:50px;width:400px;max-height:80vh;background:#fff;border:1px solid #e5e7eb;border-radius:12px;box-shadow:0 8px 24px #00000026;overflow:hidden}.pm-header[data-v-cc1e4bf8]{display:flex;justify-content:space-between;align-items:center;padding:16px;border-bottom:1px solid #e5e7eb;background:#f9fafb}.pm-header h3[data-v-cc1e4bf8]{margin:0;font-size:16px;font-weight:600;color:#111827}.pm-refresh[data-v-cc1e4bf8]{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:6px;cursor:pointer;transition:background .2s}.pm-refresh[data-v-cc1e4bf8]:hover{background:#e5e7eb}.pm-content[data-v-cc1e4bf8]{max-height:calc(80vh - 60px);overflow-y:auto;padding:16px}.pm-section[data-v-cc1e4bf8]{margin-bottom:24px}.pm-section[data-v-cc1e4bf8]:last-child{margin-bottom:0}.pm-section-title[data-v-cc1e4bf8]{font-size:14px;font-weight:600;color:#374151;margin-bottom:12px}.pm-metrics[data-v-cc1e4bf8]{display:flex;flex-direction:column;gap:8px}.pm-metric[data-v-cc1e4bf8]{display:flex;justify-content:space-between;align-items:center;padding:10px 12px;background:#f9fafb;border-radius:6px;font-size:13px}.pm-metric-label[data-v-cc1e4bf8]{color:#6b7280}.pm-metric-value[data-v-cc1e4bf8]{font-weight:600;color:#111827;min-width:60px;text-align:right}.pm-metric-count[data-v-cc1e4bf8]{color:#9ca3af;font-size:12px}.pm-metric-status[data-v-cc1e4bf8]{padding:2px 8px;border-radius:4px;font-size:12px;font-weight:500}.pm-good[data-v-cc1e4bf8]{color:#10b981}.pm-warn[data-v-cc1e4bf8]{color:#f59e0b}.pm-bad[data-v-cc1e4bf8]{color:#ef4444}.pm-good.pm-metric-status[data-v-cc1e4bf8]{background:#d1fae5;color:#065f46}.pm-warn.pm-metric-status[data-v-cc1e4bf8]{background:#fef3c7;color:#92400e}.pm-bad.pm-metric-status[data-v-cc1e4bf8]{background:#fee2e2;color:#991b1b}.pm-slide-enter-active[data-v-cc1e4bf8],.pm-slide-leave-active[data-v-cc1e4bf8]{transition:all .3s ease}.pm-slide-enter-from[data-v-cc1e4bf8],.pm-slide-leave-to[data-v-cc1e4bf8]{opacity:0;transform:translateY(-10px)}.pm-panel[data-v-cc1e4bf8]::-webkit-scrollbar{width:6px}.pm-panel[data-v-cc1e4bf8]::-webkit-scrollbar-track{background:#f1f1f1;border-radius:3px}.pm-panel[data-v-cc1e4bf8]::-webkit-scrollbar-thumb{background:#c1c1c1;border-radius:3px}*{margin:0;padding:0;box-sizing:border-box}html,body,#app{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.lazy-loading{opacity:.5;filter:blur(2px)}.lazy-loaded{opacity:1;filter:blur(0)}.lazy-error{background:#f3f4f6;display:flex;align-items:center;justify-content:center}:root{--color-primary-50: #eff6ff;--color-primary-100: #dbeafe;--color-primary-200: #bfdbfe;--color-primary-300: #93c5fd;--color-primary-400: #60a5fa;--color-primary-500: #3b82f6;--color-primary-600: #2563eb;--color-primary-700: #1d4ed8;--color-primary-800: #1e40af;--color-primary-900: #1e3a8a;--color-primary-950: #172554;--color-accent-50: #fff7ed;--color-accent-100: #ffedd5;--color-accent-200: #fed7aa;--color-accent-300: #fdba74;--color-accent-400: #fb923c;--color-accent-500: #f97316;--color-accent-600: #ea580c;--color-accent-700: #c2410c;--color-accent-800: #9a3412;--color-accent-900: #7c2d12;--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-200: #bbf7d0;--color-success-300: #86efac;--color-success-400: #4ade80;--color-success-500: #22c55e;--color-success-600: #16a34a;--color-success-700: #15803d;--color-success-800: #166534;--color-success-900: #14532d;--color-warning-50: #fefce8;--color-warning-100: #fef9c3;--color-warning-200: #fef08a;--color-warning-300: #fde047;--color-warning-400: #facc15;--color-warning-500: #eab308;--color-warning-600: #ca8a04;--color-warning-700: #a16207;--color-warning-800: #854d0e;--color-warning-900: #713f12;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-200: #fecaca;--color-error-300: #fca5a5;--color-error-400: #f87171;--color-error-500: #ef4444;--color-error-600: #dc2626;--color-error-700: #b91c1c;--color-error-800: #991b1b;--color-error-900: #7f1d1d;--color-info-50: #f0f9ff;--color-info-100: #e0f2fe;--color-info-200: #bae6fd;--color-info-300: #7dd3fc;--color-info-400: #38bdf8;--color-info-500: #0ea5e9;--color-info-600: #0284c7;--color-info-700: #0369a1;--color-info-800: #075985;--color-info-900: #0c4a6e;--color-gray-50: #f9fafb;--color-gray-100: #f3f4f6;--color-gray-200: #e5e7eb;--color-gray-300: #d1d5db;--color-gray-400: #9ca3af;--color-gray-500: #6b7280;--color-gray-600: #4b5563;--color-gray-700: #374151;--color-gray-800: #1f2937;--color-gray-900: #111827;--color-gray-950: #030712;--bg-white: #ffffff;--bg-gray: #f8fafc;--bg-dark: #0f172a;--bg-darker: #020617;--text-primary: #111827;--text-secondary: #6b7280;--text-muted: #9ca3af;--text-on-dark: #f1f5f9;--text-on-dark-secondary: #94a3b8;--border-light: #f3f4f6;--border: #e5e7eb;--border-dark: #1e293b}:root{--font-family-sans: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;--font-family-mono: "JetBrains Mono", "Fira Code", "Consolas", "Monaco", monospace;--font-size-xs: .75rem;--font-size-sm: .875rem;--font-size-base: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.25rem;--font-size-2xl: 1.5rem;--font-size-3xl: 1.875rem;--font-size-4xl: 2.25rem;--font-size-5xl: 3rem;--font-size-6xl: 3.75rem;--font-size-7xl: 4.5rem;--font-size-8xl: 6rem;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--font-weight-black: 900;--line-height-none: 1;--line-height-tight: 1.25;--line-height-snug: 1.375;--line-height-normal: 1.5;--line-height-relaxed: 1.625;--line-height-loose: 2;--letter-spacing-tighter: -.05em;--letter-spacing-tight: -.025em;--letter-spacing-normal: 0;--letter-spacing-wide: .025em;--letter-spacing-wider: .05em;--letter-spacing-widest: .1em}:root{--space-0: 0;--space-px: 1px;--space-0-5: .125rem;--space-1: .25rem;--space-1-5: .375rem;--space-2: .5rem;--space-2-5: .625rem;--space-3: .75rem;--space-3-5: .875rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-7: 1.75rem;--space-8: 2rem;--space-9: 2.25rem;--space-10: 2.5rem;--space-11: 2.75rem;--space-12: 3rem;--space-14: 3.5rem;--space-16: 4rem;--space-20: 5rem;--space-24: 6rem;--space-28: 7rem;--space-32: 8rem;--space-36: 9rem;--space-40: 10rem;--space-44: 11rem;--space-48: 12rem;--space-52: 13rem;--space-56: 14rem;--space-60: 15rem;--space-64: 16rem;--space-72: 18rem;--space-80: 20rem;--space-96: 24rem}:root{--radius-none: 0;--radius-sm: .25rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-3xl: 2rem;--radius-full: 9999px}:root{--shadow-xs: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-sm: 0 1px 3px 0 rgba(0, 0, 0, .1), 0 1px 2px 0 rgba(0, 0, 0, .06);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-md-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -4px rgba(0, 0, 0, .1);--shadow-lg-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .1);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--shadow-inner: inset 0 2px 4px 0 rgba(0, 0, 0, .06);--shadow-primary: 0 4px 14px rgba(37, 99, 235, .35);--shadow-primary-hover: 0 8px 24px rgba(37, 99, 235, .4);--shadow-accent: 0 4px 14px rgba(234, 88, 12, .35);--shadow-accent-hover: 0 8px 24px rgba(234, 88, 12, .4);--shadow-success: 0 4px 14px rgba(22, 163, 74, .35);--shadow-vip: 0 4px 14px rgba(245, 158, 11, .35);--shadow-vip-hover: 0 8px 24px rgba(245, 158, 11, .4)}:root{--gradient-primary: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--gradient-primary-hover: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);--gradient-primary-light: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--gradient-vip: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gradient-vip-hover: linear-gradient(135deg, #d97706 0%, #b45309 100%);--gradient-hero: linear-gradient(145deg, #0B1220 0%, #0F172A 25%, #1E293B 50%, #1e3a5f 75%, #0f2847 100%);--gradient-glass: rgba(255, 255, 255, .9);--gradient-glass-dark: rgba(30, 41, 59, .6)}:root{--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--duration-slower: .5s;--duration-slowest: .7s;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--ease-bounce: cubic-bezier(.34, 1.56, .64, 1);--ease-elastic: cubic-bezier(.68, -.6, .32, 1.6);--transition-fast: var(--duration-fast) var(--ease-in-out);--transition-normal: var(--duration-normal) var(--ease-in-out);--transition-slow: var(--duration-slow) var(--ease-in-out);--transition-bounce: var(--duration-slow) var(--ease-bounce)}:root{--z-index-dropdown: 1000;--z-index-sticky: 1020;--z-index-fixed: 1030;--z-index-modal-backdrop: 1040;--z-index-modal: 1050;--z-index-popover: 1060;--z-index-tooltip: 1070;--z-index-notification: 1080}:root{--container-sm: 640px;--container-md: 768px;--container-lg: 1024px;--container-xl: 1280px;--container-2xl: 1536px;--grid-columns: 12;--grid-gutter: 1.5rem;--sidebar-width: 280px;--sidebar-collapsed-width: 72px;--header-height: 66px;--header-scrolled-height: 60px;--footer-height: 280px}[data-theme=dark]{--bg-white: #0f172a;--bg-gray: #020617;--bg-dark: #020617;--bg-darker: #000000;--text-primary: #f1f5f9;--text-secondary: #94a3b8;--text-muted: #64748b;--text-on-dark: #f1f5f9;--text-on-dark-secondary: #94a3b8;--border-light: #1e293b;--border: #334155;--border-dark: #1e293b;--color-primary-600: #3b82f6;--color-primary-700: #2563eb;--color-primary-800: #1d4ed8;--color-primary-900: #1e40af;--color-gray-50: #0f172a;--color-gray-100: #1e293b;--color-gray-200: #334155;--color-gray-300: #475569;--color-gray-400: #64748b;--color-gray-500: #94a3b8;--color-gray-600: #cbd5e1;--color-gray-700: #e2e8f0;--color-gray-800: #f1f5f9;--color-gray-900: #ffffff}:root{--gradient-hero: linear-gradient(135deg, #0f172a 0%, #1e293b 40%, #1e3a8a 70%, #2563eb 100%);--gradient-hero-dark: linear-gradient(135deg, #020617 0%, #0f172a 40%, #1e3a8a 70%, #3b82f6 100%);--gradient-primary: linear-gradient(135deg, #2563eb 0%, #1d4ed8 100%);--gradient-primary-hover: linear-gradient(135deg, #1d4ed8 0%, #1e40af 100%);--gradient-vip: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--gradient-vip-hover: linear-gradient(135deg, #d97706 0%, #b45309 100%);--gradient-capsule: linear-gradient(90deg, #2563eb, #0ea5e9, #06b6d4, #10b981)}--brand-primary: var(--color-primary-600); --brand-primary-hover: var(--color-primary-700); --brand-primary-light: var(--color-primary-50); --brand-accent: var(--color-accent-600); --brand-accent-hover: var(--color-accent-700); --brand-accent-light: var(--color-accent-50); --status-success: var(--color-success-600); --status-warning: var(--color-warning-600); --status-error: var(--color-error-600); --status-info: var(--color-info-600); :root {--primary: var(--color-primary-500);--primary-light: var(--color-primary-400);--primary-dark: var(--color-primary-600);--secondary: var(--color-secondary-500);--accent: var(--color-accent-500);--text-primary: var(--color-gray-900);--text-secondary: var(--color-gray-600);--text-tertiary: var(--color-gray-500);--border: var(--color-gray-200);--border-light: var(--color-gray-100);--bg-primary: var(--color-white);--bg-secondary: var(--color-gray-50);--bg-tertiary: var(--color-gray-100)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:#f1f5f9;border-radius:4px}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px;-webkit-transition:background var(--transition-fast);transition:background var(--transition-fast)}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.el-button--primary{background:var(--primary)!important;border-color:var(--primary)!important;transition:all var(--transition-normal);box-shadow:0 1px 3px #0369a14d}.el-button--primary:hover{background:var(--primary-dark)!important;border-color:var(--primary-dark)!important;transform:translateY(-2px);box-shadow:0 4px 12px #0369a166}.el-button--primary:active{transform:translateY(0)}.el-button--secondary{background:var(--secondary)!important;border-color:var(--secondary)!important;transition:all var(--transition-normal)}.el-button--secondary:hover{background:var(--secondary-light)!important;border-color:var(--secondary-light)!important;transform:translateY(-2px)}.el-card{border:1px solid var(--border)!important;box-shadow:var(--shadow-sm)!important;transition:all var(--transition-normal)}.el-card:hover{box-shadow:var(--shadow-md)!important;transform:translateY(-2px)}.el-tabs__item{color:var(--text-secondary);font-weight:500;transition:all var(--transition-fast)}.el-tabs__item:hover{color:var(--primary)}.el-tabs__item.is-active{color:var(--primary);font-weight:600}.el-input__wrapper{border-color:var(--border)!important;transition:all var(--transition-fast);box-shadow:none!important}.el-input__wrapper:hover,.el-input__wrapper.is-focus{border-color:var(--primary)!important;box-shadow:0 0 0 3px #0369a11a!important}a{color:var(--primary);text-decoration:none;transition:color var(--transition-fast);cursor:pointer}a:hover{color:var(--primary-dark);text-decoration:underline}.hover-lift{transition:transform var(--transition-normal),box-shadow var(--transition-normal)}.hover-lift:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.hover-scale{transition:transform var(--transition-fast)}.hover-scale:hover{transform:scale(1.02)}.glass-effect{background:#ffffffe6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid rgba(255,255,255,.3)}.shadow-soft{box-shadow:0 4px 20px #00000014}.shadow-colored-primary{box-shadow:0 4px 14px #2563eb26}.shadow-colored-vip{box-shadow:0 4px 14px #ea580c33}.bg-gradient-hero{background:var(--gradient-hero)}.bg-gradient-primary{background:var(--gradient-primary)}.bg-gradient-vip{background:var(--gradient-vip)}.text-gradient-primary{background:var(--gradient-primary);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.text-gradient-vip{background:var(--gradient-vip);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.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)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-3{margin-top:var(--space-3)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.p-1{padding:var(--space-1)}.p-2{padding:var(--space-2)}.p-3{padding:var(--space-3)}.p-4{padding:var(--space-4)}.p-6{padding:var(--space-6)}.p-8{padding:var(--space-8)}.container{width:100%;margin-left:auto;margin-right:auto;padding-left:var(--space-4);padding-right:var(--space-4)}@media (min-width: 640px){.container{max-width:640px}}@media (min-width: 768px){.container{max-width:768px}}@media (min-width: 1024px){.container{max-width:1024px}}@media (min-width: 1280px){.container{max-width:1280px}}*:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:2px}.skip-to-content{position:absolute;left:-9999px;top:auto;width:1px;height:1px;overflow:hidden;z-index:-999}.skip-to-content:focus,.skip-to-content:active{color:var(--color-white);background-color:var(--color-primary-600);left:auto;top:auto;width:auto;height:auto;overflow:auto;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);margin:var(--space-4);z-index:999}.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gradient-primary);color:#fff;padding:.75rem 1.75rem;border:none;border-radius:var(--radius-md);font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:var(--transition-normal);box-shadow:var(--shadow-primary);white-space:nowrap;text-decoration:none;&:hover{transform:translateY(-2px);box-shadow:var(--shadow-primary-hover);background:var(--gradient-primary-hover)}&:active{transform:translateY(0)}&:disabled{opacity:.6;cursor:not-allowed;transform:none;box-shadow:none}&--sm{padding:.5rem 1rem;font-size:var(--font-size-xs)}&--lg{padding:1rem 2rem;font-size:var(--font-size-base)}&--pill{border-radius:var(--radius-full)}}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--bg-white);color:var(--color-primary-600);padding:.75rem 1.75rem;border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-normal);white-space:nowrap;text-decoration:none;&:hover{border-color:var(--color-primary-600);background:var(--color-primary-50);box-shadow:var(--shadow-sm);color:var(--color-primary-700)}&:active{transform:translateY(0)}&--sm{padding:.5rem 1rem;font-size:var(--font-size-xs)}&--lg{padding:1rem 2rem;font-size:var(--font-size-base)}}.btn-ghost{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:transparent;color:var(--text-secondary);padding:.625rem 1.25rem;border:none;border-radius:var(--radius-md);font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-medium);cursor:pointer;transition:var(--transition-normal);white-space:nowrap;text-decoration:none;&:hover{background:var(--color-gray-100);color:var(--text-primary)}&--sm{padding:.375rem .75rem;font-size:var(--font-size-xs)}&--active{background:var(--color-primary-50);color:var(--color-primary-600)}}.btn-vip{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--gradient-vip);color:#fff;padding:.625rem 1.25rem;border:none;border-radius:var(--radius-full);font-family:var(--font-family-sans);font-size:var(--font-size-sm);font-weight:var(--font-weight-semibold);cursor:pointer;transition:var(--transition-normal);box-shadow:var(--shadow-vip);white-space:nowrap;text-decoration:none;&:hover{transform:translateY(-1px);box-shadow:var(--shadow-vip-hover);background:var(--gradient-vip-hover)}&:active{transform:translateY(0)}}.btn-icon{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:transparent;color:var(--text-secondary);padding:.5rem;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition-fast);&:hover{background:var(--color-gray-100);color:var(--text-primary);border-color:var(--border)}&:active{transform:scale(.95)}svg{width:1.25rem;height:1.25rem}}.card{background:var(--bg-white);border:1px solid var(--border);border-radius:var(--radius-xl);padding:var(--space-6);box-shadow:var(--shadow-sm);transition:var(--transition-normal);&:hover{border-color:#bfdbfe;box-shadow:0 8px 24px #1e40af1a,0 2px 8px #1e40af14;transform:translateY(-2px)}&--flat{box-shadow:none;border:none;background:var(--bg-gray);&:hover{box-shadow:none;transform:none}}&--interactive{cursor:pointer;&:active{transform:translateY(0)}}}.card-enterprise{@extend .card;padding:var(--space-5);.ec-header{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-3-5)}.ec-avatar{width:3rem;height:3rem;background:linear-gradient(135deg,var(--color-primary-800),var(--color-primary-700));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:#fff;font-size:var(--font-size-xl);font-weight:var(--font-weight-extrabold);box-shadow:var(--shadow-sm)}.ec-info{flex:1;min-width:0}.ec-name{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-0-5);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ec-type-badge{display:inline-flex;align-items:center;gap:var(--space-0-5);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:.125rem .5rem;border-radius:var(--radius-sm);&--builder{background:var(--color-primary-50);color:var(--color-primary-700)}&--contractor{background:var(--color-accent-50);color:var(--color-accent-700)}&--service{background:var(--color-success-50);color:var(--color-success-700)}&--supplier{background:#f3e8ff;color:#7c3aed}}.ec-verified{flex-shrink:0;width:1.75rem;height:1.75rem;background:var(--color-primary-50);border-radius:50%;display:flex;align-items:center;justify-content:center;color:var(--color-primary-700)}.ec-tags{display:flex;gap:var(--space-1-5);flex-wrap:wrap;margin-bottom:var(--space-3-5)}.ec-tag{font-size:var(--font-size-xs);color:var(--text-secondary);background:var(--color-gray-100);padding:.25rem .625rem;border-radius:var(--radius-sm)}.ec-footer{display:flex;justify-content:space-between;align-items:center;padding-top:var(--space-3);border-top:1px solid var(--border)}.ec-location,.ec-capital{display:flex;align-items:center;gap:var(--space-1);font-size:var(--font-size-xs);color:var(--text-secondary);svg{width:.75rem;height:.75rem;flex-shrink:0}}}.card-tender{@extend .card;padding:var(--space-5);.tc-header{display:flex;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.tc-cover{width:120px;height:80px;background:linear-gradient(135deg,var(--color-gray-100),var(--color-gray-200));border-radius:var(--radius-md);flex-shrink:0;overflow:hidden;img{width:100%;height:100%;-o-object-fit:cover;object-fit:cover}}.tc-info{flex:1;min-width:0}.tc-title{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--text-primary);margin-bottom:var(--space-1-5);line-height:var(--line-height-tight)}.tc-type-badge{display:inline-flex;align-items:center;font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);padding:.125rem .5rem;border-radius:var(--radius-sm);margin-bottom:var(--space-1);&--construction{background:#ffedd5;color:#c2410c}&--consult{background:#faf5ff;color:#7c3aed}&--monitor{background:#f0fdf4;color:#166534}&--supply{background:#eff6ff;color:#1d4ed8}&--bim{background:#f0fdfa;color:#0f766e}}.tc-meta{display:flex;align-items:center;gap:var(--space-4);font-size:var(--font-size-xs);color:var(--text-secondary);span{display:flex;align-items:center;gap:var(--space-0-5);svg{width:.8125rem;height:.8125rem}}}.tc-footer{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-3);border-top:1px solid var(--border)}.tc-budget{font-size:var(--font-size-base);font-weight:var(--font-weight-bold);color:var(--color-accent-600)}.tc-publisher{font-size:var(--font-size-xs);color:var(--text-secondary);max-width:10rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.badge{display:inline-flex;align-items:center;gap:var(--space-0-5);padding:.25rem .75rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:var(--font-weight-semibold);white-space:nowrap;&--primary{background:var(--color-primary-50);color:var(--color-primary-700)}&--secondary{background:var(--color-gray-100);color:var(--text-secondary)}&--success{background:var(--color-success-50);color:var(--color-success-700)}&--warning{background:var(--color-warning-50);color:var(--color-warning-700)}&--error{background:var(--color-error-50);color:var(--color-error-700)}&--verified{background:var(--gradient-primary);color:#fff;svg{width:.875rem;height:.875rem}}&--vip{background:var(--gradient-vip);color:#fff;svg{width:.875rem;height:.875rem}}&--sm{padding:.125rem .5rem;font-size:.6875rem}&--lg{padding:.375rem 1rem;font-size:var(--font-size-sm)}}.input{width:100%;padding:.75rem 1rem;border:1.5px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-family-sans);font-size:var(--font-size-sm);color:var(--text-primary);background:var(--bg-white);transition:var(--transition-normal);&:focus{outline:none;border-color:var(--color-primary-600);box-shadow:0 0 0 3px #2563eb1a}&:disabled{opacity:.6;cursor:not-allowed;background:var(--color-gray-50)}&::-moz-placeholder{color:var(--text-muted)}&::placeholder{color:var(--text-muted)}&--sm{padding:.5rem .75rem;font-size:var(--font-size-xs)}&--lg{padding:1rem 1.25rem;font-size:var(--font-size-base)}&--error{border-color:var(--color-error-600);&:focus{box-shadow:0 0 0 3px #ef44441a}}&--success{border-color:var(--color-success-600);&:focus{box-shadow:0 0 0 3px #22c55e1a}}}.input-search{@extend .input;display:flex;align-items:center;gap:var(--space-2);padding:0 1rem;svg{width:1.125rem;height:1.125rem;color:var(--text-muted);flex-shrink:0}input{flex:1;border:none;background:transparent;outline:none;font-size:var(--font-size-sm);color:var(--text-primary);&::-moz-placeholder{color:var(--text-muted)}&::placeholder{color:var(--text-muted)}}&--hero{height:3.25rem;padding:0 var(--space-4);border-width:2px;svg{width:1.125rem;height:1.125rem}input{font-size:var(--font-size-base)}}}.container{width:100%;max-width:var(--container-xl);margin-left:auto;margin-right:auto;padding-left:var(--space-6);padding-right:var(--space-6);@media (max-width: 640px){padding-left:var(--space-4);padding-right:var(--space-4)}&--sm{max-width:var(--container-sm)}&--md{max-width:var(--container-md)}&--lg{max-width:var(--container-lg)}&--fluid{max-width:none}}.grid{display:grid;gap:var(--grid-gutter);&--cols-1{grid-template-columns:repeat(1,1fr)}&--cols-2{grid-template-columns:repeat(2,1fr)}&--cols-3{grid-template-columns:repeat(3,1fr)}&--cols-4{grid-template-columns:repeat(4,1fr)}&--cols-5{grid-template-columns:repeat(5,1fr)}&--cols-6{grid-template-columns:repeat(6,1fr)}&--auto-fit{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}&--auto-fill{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}@media (max-width: 1024px){&--responsive-4{grid-template-columns:repeat(2,1fr)}}@media (max-width: 640px){&--responsive-2,&--responsive-4{grid-template-columns:1fr}}}.flex{display:flex;&--row{flex-direction:row}&--col{flex-direction:column}&--wrap{flex-wrap:wrap}&--nowrap{flex-wrap:nowrap}&--justify-start{justify-content:flex-start}&--justify-center{justify-content:center}&--justify-end{justify-content:flex-end}&--justify-between{justify-content:space-between}&--items-start{align-items:flex-start}&--items-center{align-items:center}&--items-end{align-items:flex-end}&--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)}}.divider{border:none;border-top:1px solid var(--border);margin:var(--space-6) 0;&--horizontal{width:100%;height:1px;background:var(--border)}&--vertical{width:1px;height:100%;background:var(--border)}&--thick{border-top-width:2px}&--with-text{display:flex;align-items:center;gap:var(--space-4);margin:var(--space-6) 0;&:before,&:after{content:"";flex:1;height:1px;background:var(--border)}}}.spinner{width:1.5rem;height:1.5rem;border:2px solid var(--border);border-top-color:var(--color-primary-600);border-radius:50%;animation:spin .8s linear infinite;&--sm{width:1rem;height:1rem}&--lg{width:2rem;height:2rem}}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{background:linear-gradient(90deg,var(--color-gray-100) 25%,var(--color-gray-200) 50%,var(--color-gray-100) 75%);background-size:200% 100%;animation:skeleton-loading 1.5s ease-in-out infinite;border-radius:var(--radius-md);&--text{height:1rem;margin-bottom:var(--space-2)}&--avatar{width:3rem;height:3rem;border-radius:50%}&--card{height:12rem}}@keyframes skeleton-loading{0%{background-position:200% 0}to{background-position:-200% 0}}*:focus-visible{outline:2px solid var(--color-primary-600);outline-offset:2px}button:focus:not(:focus-visible){outline:none}.skip-link{position:absolute;top:-100%;left:0;background:var(--color-primary-600);color:#fff;padding:var(--space-2) var(--space-4);z-index:var(--z-index-notification);&:focus{top:0}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}
