@import "https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--font-sans:"Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"JetBrains Mono", monospace;--bg-app:#f8fafc;--bg-surface:#fff;--bg-subtle:#f1f5f9;--bg-muted:#e2e8f0;--border-light:#e2e8f0;--border-subtle:#cbd5e1;--border-focus:#3b82f6;--text-main:#0f172a;--text-muted:#64748b;--text-subtle:#94a3b8;--primary:#2563eb;--primary-hover:#1d4ed8;--primary-subtle:#eff6ff;--success:#10b981;--success-bg:#ecfdf5;--warning:#f59e0b;--warning-bg:#fffbeb;--danger:#ef4444;--danger-bg:#fef2f2;--aliyun-color:#ff6a00;--aliyun-bg:#fff2e8;--tencent-color:#0052d9;--tencent-bg:#e8f3ff;--huawei-color:#e60000;--huawei-bg:#fff0f0;--aws-color:#ec7211;--aws-bg:#fff7eb;--azure-color:#0078d4;--azure-bg:#edf6fd;--hybrid-color:#7c3aed;--hybrid-bg:#f5f3ff;--shadow-sm:0 1px 2px 0 #0000000d;--shadow-md:0 4px 6px -1px #00000012, 0 2px 4px -2px #0000000d;--shadow-lg:0 10px 15px -3px #00000014, 0 4px 6px -4px #0000000a;--shadow-xl:0 20px 25px -5px #00000017, 0 8px 10px -6px #00000008}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;line-height:1.5;overflow-x:hidden}button,input,select,textarea{font-family:inherit}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:var(--bg-app)}::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}::-webkit-scrollbar-thumb:hover{background:#94a3b8}.canvas-grid{background-image:radial-gradient(circle,#cbd5e1 1px,#0000 1px);background-size:24px 24px}.glass-panel{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--border-light);background:#fffffff2}.badge-aliyun{color:var(--aliyun-color);background:var(--aliyun-bg);border:1px solid #ffd5b2}.badge-tencent{color:var(--tencent-color);background:var(--tencent-bg);border:1px solid #b8d6ff}.badge-huawei{color:var(--huawei-color);background:var(--huawei-bg);border:1px solid #ffc2c2}.badge-aws{color:var(--aws-color);background:var(--aws-bg);border:1px solid #ffdfc4}.badge-azure{color:var(--azure-color);background:var(--azure-bg);border:1px solid #bee1fa}.badge-hybrid{color:var(--hybrid-color);background:var(--hybrid-bg);border:1px solid #ddd6fe}.truncate-text{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
