*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body{width:100%;min-height:100%;font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);color:var(--color-text);background:var(--color-bg);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:clip;transition:background-color var(--duration-slow) var(--ease),color var(--duration-slow) var(--ease)}#app{width:100%;min-height:100%;position:relative}a{text-decoration:none;color:var(--color-primary);transition:color var(--duration-fast) var(--ease)}a:hover{color:var(--color-primary-hover)}button{border:none;background:none;cursor:pointer;font-family:inherit;font-size:inherit;color:inherit}img{max-width:100%;display:block}ul,ol{list-style:none}input,textarea,select{border:none;outline:none;font-family:inherit;font-size:inherit;color:inherit}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--color-primary);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}*{scrollbar-width:thin;scrollbar-color:var(--color-border) transparent}::selection{background:var(--color-primary-light);color:var(--color-primary)}:root{--color-primary: #6366f1;--color-primary-hover: #4f46e5;--color-primary-light: #eef2ff;--color-primary-foreground: #ffffff;--color-secondary: #8b5cf6;--color-secondary-hover: #7c3aed;--color-secondary-light: #f5f3ff;--color-success: #10b981;--color-success-hover: #059669;--color-success-light: #d1fae5;--color-warning: #f59e0b;--color-warning-hover: #d97706;--color-warning-light: #fef3c7;--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-light: #fee2e2;--color-info: #0ea5e9;--color-info-light: #e0f2fe;--color-bg: #f8fafc;--color-surface: #ffffff;--color-surface-2: #f1f5f9;--color-surface-3: #e2e8f0;--color-border: #e2e8f0;--color-border-hover: #cbd5e1;--color-text: #0f172a;--color-text-secondary: #475569;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--gradient-primary: linear-gradient(135deg, #6366f1, #8b5cf6);--gradient-primary-hover: linear-gradient(135deg, #4f46e5, #7c3aed);--gradient-success: linear-gradient(135deg, #10b981, #059669);--gradient-danger: linear-gradient(135deg, #ef4444, #dc2626);--gradient-warning: linear-gradient(135deg, #f59e0b, #d97706);--font-sans: "Inter", "Noto Sans SC", system-ui, -apple-system, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", "Consolas", "Monaco", monospace;--text-xs: .75rem;--text-sm: .875rem;--text-base: 1rem;--text-lg: 1.125rem;--text-xl: 1.25rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--text-4xl: 3.5rem;--leading-tight: 1.25;--leading-normal: 1.5;--leading-relaxed: 1.625;--leading-loose: 2;--font-normal: 400;--font-medium: 500;--font-semibold: 600;--font-bold: 700;--font-extrabold: 800;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 24px;--space-6: 32px;--space-7: 40px;--space-8: 48px;--space-10: 64px;--space-12: 80px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-2xl: 24px;--radius-full: 9999px;--shadow-xs: 0 1px 2px rgba(0, 0, 0, .04);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .06), 0 1px 2px rgba(0, 0, 0, .04);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .08), 0 2px 4px -2px rgba(0, 0, 0, .05);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .08), 0 4px 6px -4px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 8px 10px -6px rgba(0, 0, 0, .05);--shadow-primary: 0 4px 14px rgba(99, 102, 241, .25);--shadow-success: 0 4px 14px rgba(16, 185, 129, .25);--shadow-danger: 0 4px 14px rgba(239, 68, 68, .25);--duration-fast: .15s;--duration-normal: .2s;--duration-slow: .3s;--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--z-base: 0;--z-dropdown: 10;--z-sticky: 20;--z-fixed: 30;--z-overlay: 40;--z-modal: 50;--z-toast: 60;--navbar-height: 56px;--sidebar-width: 280px;--sidebar-width-collapsed: 64px;--transition-color: color var(--duration-normal) var(--ease), background-color var(--duration-normal) var(--ease), border-color var(--duration-normal) var(--ease);--transition-all: all var(--duration-normal) var(--ease);--transition-transform: transform var(--duration-normal) var(--ease)}[data-theme=dark]{--color-primary: #818cf8;--color-primary-hover: #6366f1;--color-primary-light: rgba(99, 102, 241, .15);--color-primary-foreground: #0f172a;--color-secondary: #a78bfa;--color-secondary-hover: #8b5cf6;--color-secondary-light: rgba(139, 92, 246, .15);--color-success: #34d399;--color-success-hover: #10b981;--color-success-light: rgba(16, 185, 129, .15);--color-warning: #fbbf24;--color-warning-hover: #f59e0b;--color-warning-light: rgba(245, 158, 11, .15);--color-danger: #f87171;--color-danger-hover: #ef4444;--color-danger-light: rgba(239, 68, 68, .15);--color-info: #38bdf8;--color-info-light: rgba(14, 165, 233, .15);--color-bg: #0f172a;--color-surface: #1e293b;--color-surface-2: #334155;--color-surface-3: #475569;--color-border: #334155;--color-border-hover: #475569;--color-text: #f1f5f9;--color-text-secondary: #94a3b8;--color-text-muted: #64748b;--color-text-inverse: #0f172a;--gradient-primary: linear-gradient(135deg, #818cf8, #a78bfa);--gradient-primary-hover: linear-gradient(135deg, #6366f1, #8b5cf6);--shadow-xs: 0 1px 2px rgba(0, 0, 0, .2);--shadow-sm: 0 1px 3px rgba(0, 0, 0, .3), 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .3), 0 2px 4px -2px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3), 0 4px 6px -4px rgba(0, 0, 0, .2);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .4), 0 8px 10px -6px rgba(0, 0, 0, .3);--shadow-primary: 0 4px 14px rgba(99, 102, 241, .35)}.production-workspace,.mapping-workspace{--color-primary: #1769aa;--color-primary-hover: #0b5f97;--color-primary-light: #e8f1f8;--color-primary-foreground: #ffffff;--color-success: #15803d;--color-success-hover: #166534;--color-success-light: #dcfce7;--color-warning: #a16207;--color-warning-hover: #854d0e;--color-warning-light: #fffbeb;--color-danger: #b91c1c;--color-danger-hover: #991b1b;--color-danger-light: #fef2f2;--color-info: #1769aa;--color-info-light: #eff6ff}
