:root{--primary:#185fa5;--accent:#ef9f27;--font-ui:"Manrope","Noto Sans SC",system-ui,sans-serif;--font-cn:"Noto Sans SC","Manrope",system-ui,sans-serif;--font-mono:"JetBrains Mono",ui-monospace,monospace;--radius:14px;--radius-sm:calc(var(--radius) * 0.6);--radius-lg:calc(var(--radius) * 1.4);--pad:20px;--gap:16px;--row-h:44px;--bg:oklch(0.984 0.004 255);--surface:#ffffff;--surface-2:oklch(0.972 0.005 255);--surface-3:oklch(0.955 0.006 255);--border:oklch(0.915 0.007 255);--border-strong:oklch(0.86 0.01 255);--text:oklch(0.28 0.025 260);--text-muted:oklch(0.54 0.022 260);--text-faint:oklch(0.68 0.018 260);--success:oklch(0.64 0.13 152);--danger:oklch(0.62 0.2 22);--warning:oklch(0.78 0.15 78);--info:oklch(0.66 0.12 230);--primary-ink:color-mix(in oklch,var(--primary) 78%,black);--primary-soft:color-mix(in oklch,var(--primary) 14%,var(--surface));--primary-soft-2:color-mix(in oklch,var(--primary) 26%,var(--surface));--on-primary:#fff;--shadow-sm:0 1px 2px oklch(0.5 0.03 260/0.06),0 1px 3px oklch(0.5 0.03 260/0.05);--shadow-md:0 4px 14px oklch(0.45 0.04 260/0.08),0 2px 6px oklch(0.45 0.04 260/0.05);--shadow-lg:0 18px 50px oklch(0.4 0.05 260/0.16),0 6px 18px oklch(0.4 0.05 260/0.08);--ring:0 0 0 3px color-mix(in oklch,var(--primary) 28%,transparent)}.dark{--bg:oklch(0.205 0.018 262);--surface:oklch(0.252 0.02 262);--surface-2:oklch(0.286 0.021 262);--surface-3:oklch(0.32 0.022 262);--border:oklch(0.345 0.02 262);--border-strong:oklch(0.42 0.022 262);--text:oklch(0.955 0.008 262);--text-muted:oklch(0.74 0.016 262);--text-faint:oklch(0.58 0.016 262);--success:oklch(0.72 0.14 152);--danger:oklch(0.7 0.18 22);--warning:oklch(0.82 0.14 80);--info:oklch(0.74 0.12 230);--primary-soft:color-mix(in oklch,var(--primary) 26%,var(--surface));--primary-soft-2:color-mix(in oklch,var(--primary) 40%,var(--surface));--shadow-sm:0 1px 2px oklch(0 0 0/0.3);--shadow-md:0 6px 20px oklch(0 0 0/0.4);--shadow-lg:0 24px 60px oklch(0 0 0/0.55)}*{box-sizing:border-box}#root,body,html{height:100%}body{margin:0;font-family:var(--font-ui);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased}::selection{background:color-mix(in oklch,var(--primary) 30%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--border-strong) transparent}.cn{font-family:var(--font-cn)}.mono{font-family:var(--font-mono)}.muted{color:var(--text-muted)}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-sm)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:40px;padding:0 16px;border-radius:var(--radius-sm);border:1px solid transparent;cursor:pointer;font:600 14px var(--font-ui);transition:background .15s,color .15s,border-color .15s}.btn:focus-visible{outline:none;box-shadow:var(--ring)}.btn:disabled{cursor:not-allowed;opacity:.5}.btn-sm{height:32px;padding:0 10px;font-size:12.5px;gap:6px}.btn-lg{height:48px;padding:0 22px;font-size:15px}.btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:var(--shadow-sm)}.btn-primary:hover{background:var(--primary-ink)}.btn-ghost{background:var(--surface-2);color:var(--text);border-color:var(--border)}.btn-ghost:hover{background:var(--surface-3)}.btn-quiet{background:transparent;color:var(--text-muted)}.btn-quiet:hover{color:var(--text)}.btn-quiet:hover,.chip{background:var(--surface-2)}.chip{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font:600 12px var(--font-ui);color:var(--text-muted);border:1px solid var(--border);white-space:nowrap}.chip-primary{background:var(--primary-soft);color:var(--primary-ink);border-color:color-mix(in oklch,var(--primary) 30%,transparent)}.dark .chip-primary{color:color-mix(in oklch,var(--primary) 40%,white)}.input{height:40px;padding:0 12px;width:100%;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface);color:var(--text);font:500 14px var(--font-ui)}.input:focus-visible{outline:none;box-shadow:var(--ring);border-color:var(--primary)}.fade-in{animation:fadeIn .18s ease both}.fade-up{animation:fadeUp .24s cubic-bezier(.2,.7,.2,1) both}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.6}}.spin{animation:spin .9s linear infinite;transform-origin:center}@keyframes spin{to{transform:rotate(1turn)}}.main-fluid{display:flex;flex-direction:column;flex:1 1;min-width:0;padding:22px 24px!important;overflow:auto}.main-fluid__route{flex:1 1;min-height:0;min-width:0;width:100%}.main-fluid__route>.main-fluid__canvas,.main-fluid__route>:first-child{max-width:none!important;margin-left:0!important;margin-right:0!important}.main-fluid__route>.main-fluid__immersive{margin:-22px -24px!important;width:calc(100% + 48px);height:calc(100% + 44px)}@keyframes slideInRight{0%{transform:translateX(100%)}to{transform:translateX(0)}}html{scroll-behavior:smooth}body{min-height:100%;height:auto}button{cursor:pointer;border:none;background:none;color:inherit}button,input,select,textarea{font-family:inherit}a{color:inherit;text-decoration:none}h1,h2,h3,h4{margin:0;font-weight:700;letter-spacing:-.01em}p{margin:0}