@import url(https://fonts.googleapis.com/css2?family=Lora:ital,wght@0,400;0,500;0,600;0,700;1,400&family=Poppins:wght@400;500;600;700;800&display=swap);:root{--bg:#0d1117;--surface:#161e2a;--border:#1f2d3d;--border-mid:#2a3a4d;--text:#e8eef4;--muted:#6b7e91;--accent:#3d9bff;--accent-hover:#5aabff;--accent-subtle:#3d9bff1f;--success:#10b981;--warning:#f59e0b;--error:#ef4444;--info:#3b82f6;--font-display:"Satoshi",system-ui,sans-serif;--font-body:"Plus Jakarta Sans",system-ui,sans-serif;--font-mono:"Geist Mono",monospace;--font-code:"JetBrains Mono",monospace}[data-theme=light]{--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--border-mid:#cbd5e1;--text:#0f172a;--muted:#64748b;--accent:#2563eb;--accent-hover:#1d4ed8;--accent-subtle:#eff6ff}body{background:#0d1117;background:var(--bg);color:#e8eef4;color:var(--text)}code{font-family:JetBrains Mono,monospace;font-family:var(--font-code)}.simulation-controls{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#141416e0;border-radius:20px;bottom:28px;box-shadow:0 8px 32px #00000073;color:#fff;cursor:grab;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);max-width:calc(100vw - 48px);padding:10px 18px 14px;-webkit-user-select:none;user-select:none;width:720px}.simulation-controls:active{cursor:grabbing}.simulation-controls button,.simulation-controls input{cursor:pointer}.sim-drag-handle{grid-gap:3px;display:grid;gap:3px;grid-template-columns:repeat(3,3px);grid-template-rows:repeat(2,3px);justify-content:center;margin-bottom:6px;opacity:.3;padding-top:2px;transition:opacity .15s}.simulation-controls:hover .sim-drag-handle{opacity:.6}.sim-drag-handle span{background:#fff;border-radius:50%;display:block;height:3px;width:3px}.simulation-controls.panel-open{left:calc(50% + 210px)}.sim-overview{align-items:center;display:flex;gap:14px;justify-content:space-between;margin-bottom:10px}.sim-time-readout{align-items:baseline;display:flex;gap:10px;min-width:-webkit-fit-content;min-width:fit-content}.sim-time-readout-label{color:#94a3b8b8;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase}.sim-time-readout-value{color:#f8fafcf5;font-family:Geist Mono,monospace;font-family:var(--font-mono,"Geist Mono",monospace);font-size:.98rem;font-weight:600}.sim-badges{align-items:center;display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.sim-badge{align-items:center;border-radius:999px;display:inline-flex;font-size:.8rem;font-weight:600;gap:7px;min-height:30px;padding:0 12px;white-space:nowrap}.sim-badge-dot{background:currentColor;border-radius:999px;height:9px;width:9px}.sim-badge-active{background:#f59e0b24;color:#f59e0b}.sim-badge-evacuated{background:#10b98124;color:#10b981}.sim-badge-meta{background:#94a3b81f;color:#e2e8f0b8}.sim-density-strip{align-items:flex-end;background:#ffffff08;border:1px solid #94a3b81f;border-radius:12px;display:flex;gap:3px;height:56px;margin-bottom:12px;overflow:hidden;padding:8px 10px 4px}.sim-density-bar{background:#94a3b852;border-radius:999px 999px 2px 2px;flex:1 1;min-width:3px;transition:height .12s ease-out,background-color .12s ease-out,transform .12s ease-out}.sim-density-bar.unloaded{background:#94a3b81f}.sim-density-bar.loaded{background:#94a3b852}.sim-density-bar.past{background:#60a5fabf}.sim-density-bar.current{background:#fff;transform:scaleY(1.06)}.sim-transport{gap:10px;margin-bottom:10px}.sim-play-btn,.sim-transport{align-items:center;display:flex;justify-content:center}.sim-play-btn{background:none;border:2px solid #ffffffa6;border-radius:50%;color:#fff;cursor:pointer;font-size:1rem;height:36px;padding:0;transition:border-color .15s,background .15s;width:36px}.sim-play-btn:hover:not(:disabled){background:#ffffff1a;border-color:#fff}.sim-play-btn:disabled{cursor:default;opacity:.25}.sim-step-btn{font-size:.92rem}.sim-speed-slot{align-items:center;color:#ffffffb3;display:flex;flex-shrink:0;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.68rem;font-weight:700;width:36px}.sim-speed-left{justify-content:flex-end}.sim-speed-right{justify-content:flex-start}.sim-timeline{align-items:center;display:flex;gap:8px}.sim-time{color:#f8fafcf5;font-family:JetBrains Mono,monospace;font-family:var(--font-code,"JetBrains Mono",monospace);font-size:.68rem;min-width:2.8em;white-space:nowrap}.sim-time.sim-time-end{text-align:right}.sim-slider{-webkit-appearance:none;appearance:none;background:#ffffff38;border:none;border-radius:2px;cursor:pointer;flex:1 1;height:4px;outline:none}.sim-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:#fff;border-radius:50%;box-shadow:0 0 4px #0006;cursor:pointer;height:13px;-webkit-transition:transform .1s;transition:transform .1s;width:13px}.sim-slider::-webkit-slider-thumb:hover{transform:scale(1.2)}.sim-slider::-moz-range-thumb{background:#fff;border:none;border-radius:50%;box-shadow:0 0 4px #0006;cursor:pointer;height:13px;width:13px}.simulation-agent-coloring{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--glass-bg);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-sizing:border-box;max-width:320px;min-width:320px;padding:14px 16px;pointer-events:auto;position:absolute;right:8px;top:90px;width:320px;z-index:1000}.simulation-info{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);max-width:380px}.simulation-info-title{border-bottom:1px solid var(--color-border);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1.125rem;font-weight:700;margin-bottom:var(--space-xl);padding-bottom:var(--space-lg);text-align:center}.simulation-info-item{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);padding:var(--space-lg);transition:all var(--transition-normal)}.simulation-info-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);box-shadow:0 4px 12px #0000004d;transform:translateY(-1px)}.simulation-info-label{font-size:.6875rem}.simulation-info-value{font-family:Geist Mono,monospace;font-family:var(--font-mono,"Geist Mono",monospace)}.simulation-progress{border-top:1px solid var(--color-border);margin-top:var(--space-xl);padding-top:var(--space-xl)}.simulation-progress-label{color:var(--color-text-tertiary);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:var(--space-md);text-transform:uppercase}.simulation-progress-bar{background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:4px;height:8px;overflow:hidden;width:100%}.simulation-progress-fill{background:linear-gradient(90deg,var(--color-primary) 0,#2563eb 50%,var(--color-primary) 100%);border-radius:4px;box-shadow:0 0 10px #3b82f64d;height:100%;position:relative;transition:width .3s cubic-bezier(.4,0,.2,1)}.simulation-progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);border-radius:4px;bottom:0;content:"";left:0;position:absolute;right:0;top:0}.canvas-container-fullscreen{background:var(--color-background)}[data-theme=light] .simulation-controls{background:#141416eb;border-color:#ffffff1f;color:#fff}[data-theme=light] .sim-play-btn{border-color:#ffffffa6;color:#fff}[data-theme=light] .sim-slider{background:#ffffff38}[data-theme=light] .sim-speed-slot{color:#ffffffb3}[data-theme=light] .sim-time{color:#f8fafcf5}@media (max-width:768px){.simulation-controls{bottom:var(--space-xl);left:var(--space-lg);right:var(--space-lg);transform:none;width:auto}.sim-overview{align-items:flex-start;flex-direction:column}.sim-badges{justify-content:flex-start}.simulation-info{max-width:none;min-width:auto;right:var(--space-lg);top:80px}.simulation-info-grid{gap:var(--space-md);grid-template-columns:1fr}}@media (prefers-reduced-motion:reduce){.simulation-progress-fill{transition:none}.simulation-progress-fill:after{animation:none}}.live-plot-container{animation:slideInFromRight .5s ease-out;bottom:20px;height:220px;pointer-events:none;position:fixed;right:20px;width:450px;z-index:1000}@keyframes slideInFromRight{0%{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}.live-plot-container.top-right{bottom:auto;top:80px}.live-plot-container.bottom-left{left:20px;right:auto}.error-toast{animation:slideInFadeOut 2s ease-in-out forwards;background:#fef2f2;border:1px solid #fecaca;border-left:4px solid #ef4444;border-radius:6px;box-shadow:0 4px 6px -1px #0000001a;color:#991b1b;font-size:14px;font-weight:500;left:50%;max-width:400px;padding:12px 16px;pointer-events:none;position:fixed;top:80px;transform:translateX(-50%);z-index:1001}.error-toast.success-toast{background:#ecfdf5;border:1px solid #a7f3d0;border-left:4px solid #10b981;color:#065f46}@keyframes slideInFadeOut{0%{opacity:0;transform:translate(-50%,-10px)}15%{opacity:1;transform:translate(-50%)}85%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,-10px)}}.canvas-container-fullscreen canvas{cursor:default}.canvas-container-fullscreen canvas.mode-move{cursor:move}.canvas-container-fullscreen canvas.mode-move.dragging{cursor:grabbing}.canvas-navigation-overlay{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172ac2;border:1px solid #94a3b847;border-radius:14px;box-shadow:0 16px 30px #0f172a38;display:flex;flex-direction:column;gap:8px;left:56px;padding:10px 8px;position:absolute;top:76px;z-index:120}.canvas-navigation-button{background:#1e293bcc;border:1px solid #94a3b847;border-radius:10px;color:#e2e8f0;cursor:pointer;font-size:.75rem;font-weight:600;letter-spacing:.02em;min-width:56px;padding:7px 10px;transition:background .12s ease,border-color .12s ease,transform .12s ease}.canvas-navigation-button:hover{background:#2563ebd9;border-color:#93c5fdb3;transform:translateY(-1px)}.canvas-navigation-button.active{background:#2563ebf2;border-color:#bfdbfeeb}.canvas-navigation-button:disabled{cursor:not-allowed;opacity:.4}.canvas-navigation-button:disabled:hover{background:inherit;border-color:inherit;transform:none}[data-theme=light] .canvas-navigation-overlay{background:#ffffffc7;border-color:#94a3b859;box-shadow:0 16px 30px #94a3b833}[data-theme=light] .canvas-navigation-button{background:#f8fafceb;border-color:#94a3b873;color:#0f172a}.heatmap-control{align-items:center;display:flex;margin:0 8px}.heatmap-checkbox-label{align-items:center;cursor:pointer;display:flex;-webkit-user-select:none;user-select:none}.heatmap-checkbox{margin-right:6px;transform:scale(1.2)}.heatmap-label-text{color:#f8fafc;font-size:14px;font-weight:500}.heatmap-checkbox:disabled+.heatmap-label-text{color:#94a3b8;cursor:not-allowed}.fps-overlay{background:#000000a6;border-radius:4px;bottom:8px;color:#0f8;font:12px/1.4 Courier New,monospace;left:28px;padding:4px 10px;pointer-events:none;position:fixed;-webkit-user-select:none;user-select:none;white-space:nowrap;z-index:1000}:root{--top-toolbar-height:60px;--top-toolbar-offset:72px;--floating-toolbar-bottom:24px;--color-primary:#3b82f6;--color-primary-hover:#2563eb;--color-primary-light:#3b82f626;--color-primary-glow:#3b82f64d;--color-secondary:#64748b;--color-secondary-hover:#475569;--color-secondary-light:#64748b26;--color-accent:#10b981;--color-accent-hover:#059669;--color-accent-light:#10b98126;--color-warning:#f59e0b;--color-warning-hover:#d97706;--color-warning-light:#f59e0b26;--color-error:#ef4444;--color-error-hover:#dc2626;--color-error-light:#ef444426;--color-success:#22c55e;--color-success-light:#22c55e26;--color-background:#0a0a0b;--color-surface:#111113;--color-surface-secondary:#1a1a1d;--color-surface-tertiary:#252529;--color-surface-elevated:#2a2a2f;--color-surface-hover:#303037;--color-border:#2a2a2f;--color-border-light:#353540;--color-border-focus:#3b82f6;--color-border-hover:#404048;--color-text-primary:#f8fafc;--color-text-secondary:#cbd5e1;--color-text-tertiary:#94a3b8;--color-text-muted:#64748b;--color-text-inverse:#0f172a;--glass-bg:#111113cc;--glass-border:#ffffff1a;--glass-shadow:0 8px 32px #0000004d;--shadow-sm:0 1px 3px #0003,0 1px 2px #0000001a;--shadow-md:0 4px 6px #0000004d,0 2px 4px #0003;--shadow-lg:0 10px 15px #0006,0 4px 6px #0000004d;--shadow-xl:0 20px 25px #00000080,0 10px 10px #0000004d;--shadow-glow:0 0 20px #3b82f64d;--radius-sm:0.5rem;--radius-md:0.75rem;--radius-lg:1rem;--radius-xl:1.5rem;--radius-2xl:2rem;--space-xs:0.25rem;--space-sm:0.5rem;--space-md:0.75rem;--space-lg:1rem;--space-xl:1.5rem;--space-2xl:2rem;--space-3xl:3rem;--transition-fast:0.15s ease-out;--transition-normal:0.2s ease-out;--transition-slow:0.3s ease-out}body{background:#0a0a0b;color:#f8fafc;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif)}.canvas-container-fullscreen{background:linear-gradient(135deg,#0a0a0b,#111113);height:100vh;overflow:hidden;position:relative;width:100vw}.top-toolbar{align-items:center;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:#0a0a0bc7;border-bottom:1px solid #ffffff14;display:flex;gap:.75rem;gap:var(--space-md);height:60px;height:var(--top-toolbar-height);left:0;overflow-x:auto;overflow-y:hidden;padding:0 1.5rem;padding:0 var(--space-xl);position:fixed;right:0;top:0;z-index:120}.top-toolbar:after{background:linear-gradient(90deg,#0000,#94a3b82e,#0000);bottom:0;content:"";height:1px;left:0;pointer-events:none;position:absolute;right:0}.secondary-toolbar-shell{bottom:24px;bottom:var(--floating-toolbar-bottom);display:flex;justify-content:center;left:0;pointer-events:none;position:fixed;right:0;z-index:140}.secondary-toolbar{align-items:stretch;backdrop-filter:blur(22px);-webkit-backdrop-filter:blur(22px);background:#0c121cd1;border:1px solid #94a3b829;border-radius:28px;box-shadow:0 24px 80px #0206177a,inset 0 1px 0 #ffffff0d;display:flex;gap:.75rem;gap:var(--space-md);min-height:78px;overflow-x:auto;overflow-y:hidden;padding:.85rem 1rem;pointer-events:auto;position:relative;width:min(calc(100vw - 32px),1520px)}.secondary-toolbar .toolbar-btn{font-size:.78rem;padding:.38rem .68rem}.secondary-toolbar::-webkit-scrollbar{height:6px}.secondary-toolbar::-webkit-scrollbar-thumb{background:#94a3b840;border-radius:999px}.secondary-toolbar::-webkit-scrollbar-track{background:#0000}.quick-start-panel{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#0a0f1ef0;border:1px solid #64748b73;border-radius:14px;box-shadow:0 16px 48px #00000073;left:50%;padding:1.25rem 1.25rem 1.1rem;position:fixed;top:50%;transform:translate(-50%,-42%);width:min(700px,calc(100vw - 32px));z-index:450}.quick-start-dismiss{background:#0000;border:none;color:#94a3b8;color:var(--color-text-tertiary);cursor:pointer;font-size:1.4rem;line-height:1;position:absolute;right:10px;top:8px}.quick-start-dismiss:hover,.quick-start-title{color:#f8fafc;color:var(--color-text-primary)}.quick-start-title{font-size:1.1rem;font-weight:700;margin:0 0 .35rem}.quick-start-subtitle{color:#cbd5e1;color:var(--color-text-secondary);font-size:.9rem;margin:0 0 .9rem}.quick-start-limits-text{font-feature-settings:"tnum";color:var(--muted);font-family:var(--font-mono);font-size:.75rem;font-variant-numeric:tabular-nums;line-height:1.4;margin:.75rem 0 0;text-align:center}.quick-start-actions{grid-gap:.65rem;display:grid;gap:.65rem;grid-template-columns:repeat(3,minmax(0,1fr))}.quick-start-action{background:#0f172ad1;border:1px solid #2563eb59;border-radius:10px;color:#dbeafe;cursor:pointer;font-size:.85rem;font-weight:600;padding:.65rem .75rem;transition:border-color .2s ease,transform .2s ease,background .2s ease}.quick-start-action:hover{background:#1e40af73;border-color:#38bdf8bf;transform:translateY(-1px)}.toolbar-spacer{flex:1 1;min-width:1rem;min-width:var(--space-lg)}.toolbar-section-nav{flex-wrap:nowrap}.toolbar-section-nav .toolbar-btn{background:hsla(0,0%,100%,.025);border-color:#94a3b81f;border-radius:12px;box-shadow:none;color:#e2e8f0c7;min-height:36px;padding:.4rem .8rem}.toolbar-section-nav .toolbar-btn:hover:not(:disabled){background:#ffffff0d;border-color:#94a3b833}.toolbar-section-right{align-items:center;display:flex;flex-wrap:nowrap;gap:.5rem;gap:var(--space-sm);margin-left:auto}.toolbar-section{align-items:center;display:flex;flex-shrink:1;flex-wrap:wrap;gap:.45rem;justify-content:flex-start}.floating-toolbar-group{display:flex;flex-direction:column;gap:.45rem;justify-content:center;min-width:-webkit-fit-content;min-width:fit-content}.floating-toolbar-group-compact{flex-shrink:0}.floating-toolbar-label{color:#94a3b8d1;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.64rem;font-weight:700;letter-spacing:.12em;padding-left:.15rem;text-transform:uppercase}.toolbar-separator{align-self:stretch;background:linear-gradient(180deg,#0000,#94a3b861,#0000);margin:0;opacity:1;width:1px}.toolbar-separator-small{background:#2a2a2f;background:var(--color-border);height:24px;margin:0 .25rem;margin:0 var(--space-xs);width:1px}.toolbar-btn-account{align-items:center;background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:1rem;border-radius:var(--radius-lg);color:#f8fafc;color:var(--color-text-primary);cursor:pointer;display:flex;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.875rem;font-weight:500;gap:.25rem;gap:var(--space-xs);height:36px;min-width:36px;padding:.25rem .5rem;padding:var(--space-xs) var(--space-sm);transition:all .2s ease-out;transition:all var(--transition-normal)}.toolbar-version{color:#ffffff73;font-family:Geist Mono,monospace;font-family:var(--font-mono,"Geist Mono",monospace);font-size:.7rem;letter-spacing:.02em}.toolbar-fork-section{flex-wrap:wrap;gap:8px}.toolbar-fork-label{color:#f8fafc;color:var(--color-text-primary)}.toolbar-fork-label,.toolbar-fork-status{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.78rem;letter-spacing:.02em}.toolbar-fork-status{color:#cbd5e1;color:var(--color-text-secondary)}.toolbar-fork-status-stale{color:#f59e0b;color:var(--color-warning)}.toolbar-quota-badge{align-items:center;background:#78350f33;border:1px solid #f59e0b73;border-radius:999px;color:#fde68a;display:inline-flex;font-size:.75rem;font-weight:600;height:30px;letter-spacing:.01em;padding:0 10px;white-space:nowrap}.toolbar-quota-badge.disabled{background:#33415540;border-color:#94a3b859;color:#cbd5e1}.toolbar-btn{align-items:center;background:#111113;background:var(--color-surface);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius-sm);color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:clamp(.6rem,.5rem + .25vw,.75rem);font-weight:500;gap:.25rem;gap:var(--space-xs);justify-content:center;min-height:34px;min-width:auto;overflow:hidden;padding:clamp(.2rem,.5vw,.4rem) clamp(.4rem,1vw,.6rem);position:relative;transition:all .2s ease-out;transition:all var(--transition-normal);white-space:nowrap}.toolbar-btn:before{background:linear-gradient(90deg,#0000,#ffffff0d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease-out;transition:left var(--transition-slow);width:100%}.toolbar-btn:hover:before{left:100%}.toolbar-btn:hover:not(:disabled){background:#303037;background:var(--color-surface-hover);border-color:#404048;border-color:var(--color-border-hover);box-shadow:0 4px 6px #0000004d,0 2px 4px #0003;box-shadow:var(--shadow-md);color:#f8fafc;color:var(--color-text-primary);transform:translateY(-1px)}.toolbar-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.toolbar-btn.active{background:linear-gradient(135deg,#3d9bff,#2563eb);border-color:#3d9bff;box-shadow:0 12px 28px #2563eb52;color:#0f172a;color:var(--color-text-inverse);transform:translateY(-1px)}.toolbar-shape-switcher{align-items:center;background:#111113;background:var(--color-surface);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:999px;display:inline-flex;gap:4px;padding:4px}.toolbar-shape-btn{background:#0000;border:0;border-radius:999px;color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;font:inherit;font-size:clamp(.6rem,.5rem + .2vw,.72rem);font-weight:600;padding:.25rem .6rem;transition:all .2s ease-out;transition:all var(--transition-normal);white-space:nowrap}.toolbar-shape-btn:hover:not(:disabled){color:#f8fafc;color:var(--color-text-primary)}.toolbar-shape-btn.active{background:linear-gradient(135deg,#3d9bff,#2563eb);box-shadow:0 10px 24px #2563eb42;color:#0f172a;color:var(--color-text-inverse)}.toolbar-shape-btn:disabled{cursor:not-allowed;opacity:.4}.toolbar-btn-primary{background:linear-gradient(135deg,#3d9bff,#2563eb);border-color:#3d9bff;box-shadow:0 14px 32px #2563eb57;color:#0f172a;color:var(--color-text-inverse);font-weight:600}.toolbar-btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#60a5fa,#1d4ed8);box-shadow:0 18px 36px #2563eb66,0 10px 15px #0006,0 4px 6px #0000004d;box-shadow:0 18px 36px #2563eb66,var(--shadow-lg);transform:translateY(-2px)}.toolbar-btn-danger,.toolbar-btn-danger:hover:not(:disabled){border-color:#ef4444;border-color:var(--color-error);color:#ef4444;color:var(--color-error)}.toolbar-btn-danger:hover:not(:disabled){background:#ef444426;background:var(--color-error-light);box-shadow:0 0 20px #ef44444d}.toolbar-btn.loading{opacity:.8;pointer-events:none}.spinner{animation:spin 1s cubic-bezier(.68,-.55,.265,1.55) infinite;border:2px solid #ffffff4d;border-top-color:initial;display:inline-block}.mode-indicator{align-items:center;background:#0000;border:1px solid #0000;border-radius:20px;cursor:pointer;display:inline-flex;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.78rem;font-weight:600;gap:6px;letter-spacing:.04em;padding:4px 12px;text-transform:uppercase;transition:opacity .15s ease}.mode-indicator.draw{background:#ffffff2e;border-color:#ffffffa6;color:#fff}.mode-indicator.visualize{background:#06b6d414;border-color:#06b6d459;color:#06b6d4}.mode-indicator:hover:not(:disabled){opacity:.8}.mode-indicator:disabled{cursor:not-allowed;opacity:.4}.mode-indicator-dot{background:currentColor;border-radius:50%;height:7px;width:7px}.form-group{margin-bottom:1.5rem}.form-label{color:#f8fafc;font-weight:600;margin-bottom:.5rem;margin-bottom:var(--space-sm)}.form-input,.form-label{color:var(--color-text-primary);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif)}.form-input{background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);font-size:.875rem;padding:.75rem 1rem;padding:var(--space-md) var(--space-lg);transition:all .2s ease-out;transition:all var(--transition-normal)}.form-input:focus{background:#252529;background:var(--color-surface-tertiary);border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626,0 4px 6px #0000004d,0 2px 4px #0003;box-shadow:0 0 0 3px var(--color-primary-light),var(--shadow-md)}.form-select{background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);color:#f8fafc;color:var(--color-text-primary);cursor:pointer;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.875rem;padding:.75rem 1rem;padding:var(--space-md) var(--space-lg);transition:all .2s ease-out;transition:all var(--transition-normal);width:100%}.form-select:focus{border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 3px #3b82f626;box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.btn{border-radius:.75rem;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);gap:.5rem;transition:all .2s ease-out}.btn:before{transition:left .3s ease-out}.btn-primary{background:linear-gradient(135deg,#3b82f6,#2563eb);box-shadow:0 0 20px #3b82f64d;color:#0f172a}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,#2563eb,#1e40af);box-shadow:0 0 30px #3b82f666,0 10px 15px #0006,0 4px 6px #0000004d}.btn-secondary{background:#1a1a1d;border:1px solid #2a2a2f;color:#f8fafc}.btn-secondary:hover:not(:disabled){background:#252529;border-color:#404048}.status-card{background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:1rem;border-radius:var(--radius-lg);margin-bottom:1.5rem;margin-bottom:var(--space-xl);overflow:hidden;padding:1.5rem;padding:var(--space-xl);position:relative}.status-card:before{background:linear-gradient(90deg,#3b82f6,#10b981);background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:3px;left:0;position:absolute;right:0;top:0}.status-card-success{background:#22c55e26;background:var(--color-success-light);border-color:#22c55e;border-color:var(--color-success);color:#22c55e;color:var(--color-success)}.status-card-success:before{background:linear-gradient(90deg,#22c55e,#10b981);background:linear-gradient(90deg,var(--color-success),var(--color-accent))}.status-card-warning{background:#f59e0b26;background:var(--color-warning-light);border-color:#f59e0b;border-color:var(--color-warning);color:#f59e0b;color:var(--color-warning)}.status-card-warning:before{background:linear-gradient(90deg,#f59e0b,#f97316);background:linear-gradient(90deg,var(--color-warning),#f97316)}.status-card-error{background:#ef444426;background:var(--color-error-light);border-color:#ef4444;border-color:var(--color-error);color:#ffe4e6}.status-card-error:before{background:linear-gradient(90deg,#ef4444,#dc2626);background:linear-gradient(90deg,var(--color-error),#dc2626)}.status-card-error .status-card-title,.status-card-error li,.status-card-error p{color:inherit}.status-card-title{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-weight:700;margin-bottom:.5rem;margin-bottom:var(--space-sm)}.stats-grid{grid-gap:1rem;grid-gap:var(--space-lg);display:grid;gap:1rem;gap:var(--space-lg);grid-template-columns:1fr 1fr;margin-bottom:1.5rem;margin-bottom:var(--space-xl)}.stat-item{background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:1rem;border-radius:var(--radius-lg);overflow:hidden;padding:1rem;padding:var(--space-lg);position:relative;text-align:center;transition:all .2s ease-out;transition:all var(--transition-normal)}.stat-item:before{background:linear-gradient(90deg,#3b82f6,#10b981);background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:2px;left:0;position:absolute;right:0;top:0}.stat-item:hover{border-color:#404048;border-color:var(--color-border-hover);box-shadow:0 10px 15px #0006,0 4px 6px #0000004d;box-shadow:var(--shadow-lg);transform:translateY(-2px)}.stat-value{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#3b82f6,#10b981);background:linear-gradient(135deg,var(--color-primary),var(--color-accent));-webkit-background-clip:text;background-clip:text;color:#3b82f6;color:var(--color-primary);display:block;font-size:2rem;font-weight:800}.stat-label,.stat-value{font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif)}.stat-label{color:#94a3b8;color:var(--color-text-tertiary);font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase}.distribution-list{max-height:240px;overflow-y:auto;padding-right:.5rem;padding-right:var(--space-sm)}.distribution-list::-webkit-scrollbar{width:6px}.distribution-list::-webkit-scrollbar-track{background:#111113;background:var(--color-surface);border-radius:3px}.distribution-list::-webkit-scrollbar-thumb{background:#404048;background:var(--color-border-hover);border-radius:3px}.distribution-list::-webkit-scrollbar-thumb:hover{background:#3b82f6;background:var(--color-primary)}.distribution-item{align-items:center;background:#252529;background:var(--color-surface-tertiary);border:1px solid #0000;border-radius:.75rem;border-radius:var(--radius-md);cursor:pointer;display:flex;justify-content:space-between;margin-bottom:.5rem;margin-bottom:var(--space-sm);overflow:hidden;padding:1rem;padding:var(--space-lg);position:relative;transition:all .2s ease-out;transition:all var(--transition-normal)}.distribution-item:before{background:linear-gradient(90deg,#0000,#3b82f61a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .2s ease-out;transition:left var(--transition-normal);width:100%}.distribution-item:hover:before{left:100%}.distribution-item:hover{background:#2a2a2f;background:var(--color-surface-elevated);border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 4px 6px #0000004d,0 2px 4px #0003;box-shadow:var(--shadow-md);transform:translateX(4px)}.distribution-item.configured{background:#22c55e26;background:var(--color-success-light);border-color:#22c55e;border-color:var(--color-success)}.distribution-item.unconfigured{background:#ef444426;background:var(--color-error-light);border-color:#ef4444;border-color:var(--color-error)}.distribution-agents{font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.875rem;font-weight:700}.parameters-panel,.parameters-panel-routing{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#111113cc;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--glass-border);border-radius:22px;box-shadow:0 24px 64px #02061761;height:calc(100vh - 88px);height:calc(100vh - var(--top-toolbar-offset) - 16px);left:16px;overflow-y:auto;position:fixed;top:72px;top:var(--top-toolbar-offset);transform:translateX(calc(-100% - 16px));transition:transform .3s ease-out;transition:transform var(--transition-slow);width:min(420px,calc(100vw - 32px));z-index:999}.parameters-panel-routing.open,.parameters-panel.open{transform:translateX(0)}.parameters-panel.right-panel{left:auto;right:16px;transform:translateX(calc(100% + 16px))}.parameters-panel.right-panel.open{transform:translateX(0)}.parameters-panel-header{backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);background:linear-gradient(180deg,#1a1a1df5,#161e2ae0);border-bottom:1px solid #94a3b824;padding:1.4rem 1.5rem 1.15rem;position:-webkit-sticky;position:sticky;top:0;z-index:10}.parameters-panel-title{color:#f8fafc;color:var(--color-text-primary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1.15rem;font-weight:700;letter-spacing:.01em;margin:0}.parameters-panel-content{padding:1.35rem 1.5rem 1.75rem}.sidebar-section{margin-bottom:2rem}.sidebar-section-title{border-bottom:1px solid #2a2a2f;border-bottom:1px solid var(--color-border);color:#cbd5e1;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1rem;font-weight:600;letter-spacing:.01em;margin-bottom:1rem;margin-bottom:var(--space-lg);padding-bottom:.5rem;padding-bottom:var(--space-sm)}.sidebar-button-grid{grid-gap:.75rem;grid-gap:var(--space-md);display:grid;gap:.75rem;gap:var(--space-md);grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.sidebar-button-column{display:flex;flex-direction:column;gap:.75rem;gap:var(--space-md)}.sidebar-btn{align-items:center;background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;display:inline-flex;font-size:.875rem;font-weight:500;justify-content:center;padding:.75rem 1rem;padding:var(--space-md) var(--space-lg);text-align:center;transition:all .2s ease-out;transition:all var(--transition-normal);width:100%}.sidebar-btn:hover:not(:disabled){background:#303037;background:var(--color-surface-hover);border-color:#404048;border-color:var(--color-border-hover);box-shadow:0 4px 6px #0000004d,0 2px 4px #0003;box-shadow:var(--shadow-md);color:#f8fafc;color:var(--color-text-primary);transform:translateY(-1px)}.sidebar-btn.active{background:#3b82f6;background:var(--color-primary);border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 20px #3b82f64d;box-shadow:var(--shadow-glow);color:#0f172a;color:var(--color-text-inverse)}.sidebar-btn:disabled{cursor:not-allowed;opacity:.4;transform:none}.sidebar-btn-danger{border-color:#ef4444;border-color:var(--color-error);color:#ef4444;color:var(--color-error)}.sidebar-btn-danger:hover:not(:disabled){background:#ef444426;background:var(--color-error-light);color:#ef4444;color:var(--color-error)}.simulation-controls{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#111113cc;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--glass-border);border-radius:2rem;border-radius:var(--radius-2xl);bottom:3rem;bottom:var(--space-3xl);box-shadow:0 8px 32px #0000004d;box-shadow:var(--glass-shadow);color:#f8fafc;color:var(--color-text-primary);left:50%;padding:1.5rem 3rem;padding:var(--space-xl) var(--space-3xl);position:absolute;transform:translateX(-50%);transition:left .3s ease-out,transform .3s ease-out;transition:left var(--transition-slow),transform var(--transition-slow);z-index:1000}.simulation-controls.panel-open{left:65%;transform:translateX(-50%)}.simulation-btn{align-items:center;border:none;border-radius:1rem;border-radius:var(--radius-lg);cursor:pointer;display:inline-flex;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.875rem;font-weight:700;justify-content:center;min-width:100px;overflow:hidden;padding:1rem 2rem;padding:var(--space-lg) var(--space-2xl);position:relative;transition:all .2s ease-out;transition:all var(--transition-normal)}.simulation-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left .3s ease-out;transition:left var(--transition-slow);width:100%}.simulation-btn:hover:before{left:100%}.simulation-btn-play{background:linear-gradient(135deg,#22c55e,#16a34a);box-shadow:0 0 20px #22c55e4d;color:#0f172a;color:var(--color-text-inverse)}.simulation-btn-play:hover{background:linear-gradient(135deg,#16a34a,#15803d);box-shadow:0 0 30px #22c55e66,0 10px 15px #0006,0 4px 6px #0000004d;box-shadow:0 0 30px #22c55e66,var(--shadow-lg);transform:translateY(-2px)}.simulation-btn-reset{background:linear-gradient(135deg,#ef4444,#dc2626);box-shadow:0 0 20px #ef44444d;color:#0f172a;color:var(--color-text-inverse)}.simulation-btn-reset:hover{background:linear-gradient(135deg,#dc2626,#b91c1c);box-shadow:0 0 30px #ef444466,0 10px 15px #0006,0 4px 6px #0000004d;box-shadow:0 0 30px #ef444466,var(--shadow-lg);transform:translateY(-2px)}.simulation-btn-close{background:linear-gradient(135deg,#64748b,#475569);background:linear-gradient(135deg,var(--color-secondary) 0,#475569 100%);color:#0f172a;color:var(--color-text-inverse)}.simulation-btn-close:hover{background:linear-gradient(135deg,#475569,#334155);transform:translateY(-2px)}.frame-control{align-items:center;display:flex;gap:1rem;gap:var(--space-lg);min-width:300px}.frame-slider{-webkit-appearance:none;appearance:none;background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:4px;flex:1 1;height:8px;outline:none}.frame-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;background:linear-gradient(135deg,#3b82f6,#2563eb);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border-radius:50%;box-shadow:0 4px 6px #0000004d,0 2px 4px #0003;box-shadow:var(--shadow-md);cursor:pointer;height:20px;-webkit-transition:all .2s ease-out;transition:all .2s ease-out;-webkit-transition:all var(--transition-normal);transition:all var(--transition-normal);width:20px}.frame-slider::-webkit-slider-thumb:hover{background:linear-gradient(135deg,#2563eb,#1e40af);background:linear-gradient(135deg,var(--color-primary-hover),#1e40af);box-shadow:0 0 15px #3b82f680;transform:scale(1.1)}.frame-info{color:#cbd5e1;color:var(--color-text-secondary);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.8rem;font-weight:600;min-width:80px;text-align:right}.speed-control{align-items:center;display:flex;gap:1rem;gap:var(--space-lg)}.speed-select{border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);cursor:pointer;font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.8rem;font-weight:500;padding:.5rem .75rem;padding:var(--space-sm) var(--space-md)}.speed-select,.speed-select option{background:#1a1a1d;background:var(--color-surface-secondary);color:#f8fafc;color:var(--color-text-primary)}.simulation-info{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#111113cc;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--glass-border);border-radius:1.5rem;border-radius:var(--radius-xl);box-shadow:0 8px 32px #0000004d;box-shadow:var(--glass-shadow);font-size:.875rem;max-height:calc(100vh - 120px);min-width:320px;overflow-y:auto;padding:1.5rem;padding:var(--space-xl);pointer-events:auto;position:absolute;right:20px;top:90px;z-index:1000}.simulation-info,.simulation-info-title{color:#f8fafc;color:var(--color-text-primary)}.simulation-info-title{font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:1.1rem;font-weight:800;margin-bottom:1rem;margin-bottom:var(--space-lg)}.simulation-info-grid{grid-gap:1rem;grid-gap:var(--space-lg);display:grid;gap:1rem;gap:var(--space-lg);grid-template-columns:1fr 1fr}.simulation-info-item{display:flex;flex-direction:column}.simulation-info-label{color:#94a3b8;color:var(--color-text-tertiary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.75rem;font-weight:600;letter-spacing:.05em;margin-bottom:.25rem;margin-bottom:var(--space-xs);text-transform:uppercase}.simulation-info-value{color:#f8fafc;color:var(--color-text-primary);font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:1rem;font-weight:700}.modal-overlay{backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000c;z-index:2000}.modal{background:#111113;background:var(--color-surface);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:2rem;border-radius:var(--radius-2xl);box-shadow:0 20px 25px #00000080,0 10px 10px #0000004d;box-shadow:var(--shadow-xl);max-width:550px;min-width:450px;overflow:hidden;padding:3rem;padding:var(--space-3xl);position:relative}.modal:before{background:linear-gradient(90deg,#3b82f6,#10b981);background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:4px;left:0;position:absolute;right:0;top:0}.modal-title{color:var(--color-text-primary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1.5rem;font-weight:800;margin:0 0 2rem;margin:0 0 var(--space-2xl) 0}.modal-actions{gap:1rem;gap:var(--space-lg);margin-top:2rem;margin-top:var(--space-2xl)}.clear-confirm-modal{max-width:620px;min-width:520px}.clear-confirm-message{color:#f8fafc;color:var(--color-text-primary);font-size:1.125rem;line-height:1.5;margin:0 0 .5rem;margin:0 0 var(--space-sm) 0}.clear-confirm-submessage{color:#dc2626;font-size:.95rem;margin:0}[data-theme=light] .clear-confirm-submessage{color:#b91c1c}.app-alert-modal{max-width:680px;min-width:520px}.app-alert-card{margin-bottom:0}.app-alert-message{color:inherit;font-family:inherit;font-size:1rem;line-height:1.6;margin:0;white-space:pre-wrap}.simulation-error-card{margin-bottom:0}.simulation-error-message{color:#f8fafc;color:var(--color-text-primary);font-size:1.125rem;line-height:1.5;margin:0}.simulation-error-tip{color:#fecaca;font-size:.95rem;line-height:1.5;margin:.5rem 0 0;margin:var(--space-sm) 0 0 0}.data-panel{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#111113cc;background:var(--glass-bg);border:1px solid #ffffff1a;border:1px solid var(--glass-border);border-radius:2rem;border-radius:var(--radius-2xl);bottom:1.5rem;bottom:var(--space-xl);box-shadow:0 8px 32px #0000004d;box-shadow:var(--glass-shadow);left:400px;max-height:250px;overflow:hidden;position:absolute;right:1.5rem;right:var(--space-xl);z-index:1000}.data-panel-header{align-items:center;background:#1a1a1d;background:var(--color-surface-secondary);border-bottom:1px solid #2a2a2f;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:1.5rem 2rem;padding:var(--space-xl) var(--space-2xl)}.data-panel-title{color:#f8fafc;color:var(--color-text-primary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1.1rem;font-weight:700;margin:0}.data-panel-close{align-items:center;background:none;border:none;border-radius:.5rem;border-radius:var(--radius-sm);color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;padding:.5rem;padding:var(--space-sm);transition:all .2s ease-out;transition:all var(--transition-normal);width:32px}.data-panel-close:hover{background:#252529;background:var(--color-surface-tertiary);color:#f8fafc;color:var(--color-text-primary);transform:scale(1.1)}.data-panel-content{display:flex;height:180px}.data-section{border-right:1px solid #2a2a2f;border-right:1px solid var(--color-border);flex:1 1;padding:1.5rem;padding:var(--space-xl)}.data-section:last-child{border-right:none}.data-section-title{font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.9rem;font-weight:700;margin:0 0 1rem;margin:0 0 var(--space-lg) 0}.data-section-title,.data-textarea{color:#f8fafc;color:var(--color-text-primary)}.data-textarea{background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);font-family:JetBrains Mono,Fira Code,Consolas,monospace;font-size:.75rem;height:120px;line-height:1.4;padding:1rem;padding:var(--space-lg);resize:none;width:100%}.data-textarea:focus{border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626;box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.canvas-container-fullscreen canvas{left:0;position:absolute}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes slideInLeft{0%{opacity:0;transform:translateX(-100%)}to{opacity:1;transform:translateX(0)}}@keyframes slideOutLeft{0%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100%)}}@media (max-width:1400px){.top-toolbar{gap:.75rem;gap:var(--space-md);padding:0 1rem;padding:0 var(--space-lg)}.toolbar-section{gap:.25rem;gap:var(--space-xs)}.toolbar-btn{font-size:.75rem;min-width:auto;padding:.25rem .5rem;padding:var(--space-xs) var(--space-sm)}.parameters-panel,.parameters-panel-routing{width:350px}}@media (max-width:1024px){.top-toolbar{gap:.75rem;gap:var(--space-md);padding:0 .75rem;padding:0 var(--space-md)}.toolbar-section{gap:.25rem;gap:var(--space-xs);margin-bottom:0}.toolbar-btn{font-size:.75rem;min-width:auto;padding:.25rem .5rem;padding:var(--space-xs) var(--space-sm)}.secondary-toolbar{gap:.75rem;gap:var(--space-md);padding:.75rem .85rem}.parameters-panel,.parameters-panel-routing{width:min(320px,calc(100vw - 32px))}.data-panel{left:340px}}@media (max-width:900px){.secondary-toolbar{width:calc(100vw - 24px)}.secondary-toolbar-shell{bottom:18px}.secondary-toolbar .toolbar-btn{font-size:.73rem;padding:.35rem .55rem}}@media (max-width:768px){.top-toolbar{gap:.5rem;gap:var(--space-sm);padding:0 .5rem;padding:0 var(--space-sm)}.toolbar-section{display:flex;flex-wrap:wrap;gap:.25rem;gap:var(--space-xs);justify-content:center;margin-bottom:0}.toolbar-btn{min-height:28px}.secondary-toolbar-shell{bottom:14px}.secondary-toolbar{border-radius:22px;gap:.5rem;gap:var(--space-sm);min-height:auto;padding:.75rem}.floating-toolbar-group{gap:.35rem}.floating-toolbar-label{font-size:.58rem;letter-spacing:.1em}.parameters-panel,.parameters-panel-routing{border-radius:20px;height:calc(100vh - 84px);height:calc(100vh - var(--top-toolbar-offset) - 12px);left:12px;right:12px;width:auto}.data-panel{bottom:1rem;bottom:var(--space-lg);left:1rem;left:var(--space-lg)}.quick-start-panel{transform:translate(-50%,-45%)}.quick-start-actions{grid-template-columns:1fr}.simulation-controls{bottom:1.5rem;bottom:var(--space-xl);left:1rem;left:var(--space-lg);right:1rem;right:var(--space-lg);transform:none}.simulation-controls-inner{flex-wrap:wrap;gap:1rem;gap:var(--space-lg)}.toolbar-section-right{gap:.35rem}}@media (max-width:480px){.top-toolbar{gap:.35rem}.toolbar-btn{min-width:auto;padding:.25rem;padding:var(--space-xs)}.secondary-toolbar{padding:.65rem;width:calc(100vw - 16px)}.toolbar-separator{opacity:.45}.parameters-panel-content{padding:1rem;padding:var(--space-lg)}.modal{margin:1rem;margin:var(--space-lg);min-width:320px}}.progress-container{margin:1rem 0;width:100%}.progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.progress-stage{align-items:center;display:flex;gap:.5rem}.stage-label{color:#f8fafc;color:var(--color-text-primary);font-size:.875rem;font-weight:600}.stage-badge{border-radius:.375rem;color:#fff;font-size:.75rem;font-weight:500;padding:.25rem .5rem}.progress-percentage{color:#cbd5e1;color:var(--color-text-secondary);font-size:.875rem;font-weight:600}.progress-bar-container{background:#252529;background:var(--color-surface-tertiary);height:8px;width:100%}.progress-bar-container,.progress-bar-fill{border-radius:4px;overflow:hidden;position:relative}.progress-bar-fill{height:100%;transition:width .3s cubic-bezier(.4,0,.2,1)}.progress-shimmer{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d 50%,#0000);bottom:0;left:0;position:absolute;right:0;top:0}.progress-message{color:#94a3b8;color:var(--color-text-tertiary);font-size:.8125rem;margin-bottom:0;margin-top:.5rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.simulation-progress-modal{max-width:600px;min-width:500px}.modal-header{margin-bottom:1.5rem}.simulation-progress-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:1rem}.simulation-progress-title{color:#f8fafc;color:var(--color-text-primary);font-size:1.875rem;font-weight:800;margin:0}.simulation-progress-content{margin-bottom:.5rem}.modal-close-btn{border-radius:.25rem}.modal-close-btn,.simulation-progress-close-btn{color:#cbd5e1;color:var(--color-text-secondary);padding:.25rem;transition:all .2s ease}.simulation-progress-close-btn{background:none;border:none;border-radius:.25rem;cursor:pointer;font-size:1.25rem}.modal-close-btn:hover,.simulation-progress-close-btn:hover{background:#252529;background:var(--color-surface-tertiary);color:#f8fafc}.simulation-progress-close-btn:hover{color:var(--color-text-primary)}.simulation-progress-actions{border-top:1px solid #2a2a2f;border-top:1px solid var(--color-border);display:flex;gap:1rem;gap:var(--space-lg);justify-content:flex-end;margin-top:1.5rem;margin-top:var(--space-xl);padding-top:1rem;padding-top:var(--space-lg)}.results-grid{grid-gap:.5rem;color:#cbd5e1;color:var(--color-text-secondary);display:grid;font-size:.875rem;gap:.5rem;grid-template-columns:1fr 1fr;margin-top:.5rem}.model-info{background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);margin-top:.5rem;margin-top:var(--space-sm);padding:1rem;padding:var(--space-lg)}.model-description{color:#cbd5e1;line-height:1.5;margin-bottom:.75rem;margin-bottom:var(--space-md)}.model-characteristics{color:#94a3b8;color:var(--color-text-tertiary);font-size:.8125rem}.model-characteristics ul{list-style-type:disc;margin:.5rem 0 0;margin:var(--space-sm) 0 0 0;padding-left:1rem;padding-left:var(--space-lg)}.model-characteristics li{margin-bottom:.25rem;margin-bottom:var(--space-xs)}.model-parameters{display:flex;flex-direction:column;gap:.75rem;gap:var(--space-md);margin-top:.5rem;margin-top:var(--space-sm)}.parameter-item{grid-gap:.25rem .5rem;grid-gap:var(--space-xs) var(--space-sm);align-items:center;background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius-sm);display:grid;gap:.25rem .5rem;gap:var(--space-xs) var(--space-sm);grid-template-columns:1fr 120px;grid-template-rows:auto auto;padding:.75rem;padding:var(--space-md)}.parameter-label{font-weight:500;grid-column:1}.parameter-input,.parameter-label{color:#f8fafc;color:var(--color-text-primary);font-size:.8125rem;grid-row:1}.parameter-input{background:#111113;background:var(--color-surface);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius-sm);grid-column:2;padding:.25rem .5rem;padding:var(--space-xs) var(--space-sm)}.parameter-input:focus{border-color:#3b82f6;border-color:var(--color-primary);box-shadow:0 0 0 2px #3b82f626;box-shadow:0 0 0 2px var(--color-primary-light);outline:none}.parameter-description{color:#64748b;color:var(--color-text-muted);font-size:.75rem;font-style:italic;grid-column:1/-1;grid-row:2;line-height:1.4}.model-recommendations{display:flex;flex-direction:column;gap:.25rem;gap:var(--space-xs);margin-top:.5rem;margin-top:var(--space-sm)}.recommendation-item{background:#252529;background:var(--color-surface-tertiary);border-left:3px solid #3b82f6;border-left:3px solid var(--color-primary);border-radius:.5rem;border-radius:var(--radius-sm);color:#cbd5e1;color:var(--color-text-secondary);font-size:.8125rem;padding:.5rem;padding:var(--space-sm)}@media (max-width:1024px){.parameter-item{grid-template-columns:1fr;grid-template-rows:auto auto auto}.parameter-input{grid-column:1;grid-row:2}.parameter-description{grid-row:3}}.distribution-tooltip{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#111113f2;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 4px 12px #0000004d;color:#fff;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:12px;max-width:400px;padding:12px;white-space:nowrap}[data-theme=light] .distribution-tooltip{background:#faf9f5fa;border:1px solid #0000001a;box-shadow:0 4px 12px #00000026;color:#141413}[data-theme=light] .distribution-tooltip-title{border-bottom-color:#0000001a;color:#4f46e5}[data-theme=light] .distribution-tooltip-params{color:#2c2b25}.distribution-tooltip-title{border-bottom:1px solid #ffffff1a;color:#22c55e;font-size:13px;font-weight:600;margin-bottom:8px;padding-bottom:4px}.distribution-tooltip-params{display:flex;flex-direction:column;gap:4px}.param-row{align-items:center;display:flex;gap:6px}.param-label{color:#cbd5e1;font-weight:500}.param-value{font-feature-settings:"tnum";color:#fff;font-variant-numeric:tabular-nums;font-weight:600}[data-theme=light] .param-label{color:#6b7280}[data-theme=light] .param-value{color:#141413}.distribution-tooltip{animation:tooltipFadeIn .2s ease-out}@keyframes tooltipFadeIn{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}.parameter-group{background:#1a1a1d;background:var(--color-surface-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:1rem;border-radius:var(--radius-lg);margin-bottom:3rem;margin-bottom:var(--space-3xl);padding:1.5rem;padding:var(--space-xl)}.parameter-group-title{border-bottom:2px solid #3b82f6;border-bottom:2px solid var(--color-primary);color:#f8fafc;color:var(--color-text-primary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:1rem;font-weight:700;margin:0 0 1.5rem;margin:0 0 var(--space-xl) 0;padding-bottom:.5rem;padding-bottom:var(--space-sm)}.elements-overview-panel{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#111113cc;background:var(--glass-bg);border-bottom:1px solid #ffffff1a;border-bottom:1px solid var(--glass-border);border-bottom-left-radius:1.5rem;border-bottom-left-radius:var(--radius-xl);border-left:1px solid #ffffff1a;border-left:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d;box-shadow:var(--glass-shadow);max-height:200px;overflow:hidden;position:fixed;right:0;top:72px;top:var(--top-toolbar-offset);transform:translateX(100%);transition:transform .3s ease-out;transition:transform var(--transition-slow);width:280px;z-index:998}.elements-overview-panel.open{transform:translateX(0)}.elements-overview-header{align-items:center;background:#1a1a1d;background:var(--color-surface-secondary);border-bottom:1px solid #2a2a2f;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:1rem 1.5rem;padding:var(--space-lg) var(--space-xl)}.elements-overview-title{color:#f8fafc;color:var(--color-text-primary);font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif);font-size:.875rem;font-weight:600;margin:0}.panel-minimize-btn{align-items:center;background:none;border:none;border-radius:.5rem;border-radius:var(--radius-sm);color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:1.25rem;height:24px;justify-content:center;padding:.25rem;padding:var(--space-xs);transition:all .2s ease-out;transition:all var(--transition-normal);width:24px}.panel-minimize-btn:hover{background:#252529;background:var(--color-surface-tertiary);color:#f8fafc;color:var(--color-text-primary)}.elements-overview-content{padding:1rem;padding:var(--space-lg)}.elements-stats-grid{grid-gap:.5rem;grid-gap:var(--space-sm);display:grid;gap:.5rem;gap:var(--space-sm);grid-template-columns:repeat(3,1fr)}.stat-item-mini{background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.75rem;border-radius:var(--radius-md);padding:.5rem;padding:var(--space-sm);text-align:center;transition:all .2s ease-out;transition:all var(--transition-normal)}.stat-item-mini:hover{border-color:#404048;border-color:var(--color-border-hover);box-shadow:0 1px 3px #0003,0 1px 2px #0000001a;box-shadow:var(--shadow-sm);transform:translateY(-1px)}.stat-value-mini{color:#3b82f6;color:var(--color-primary);display:block;font-size:1.25rem;font-weight:700}.stat-label-mini,.stat-value-mini{font-family:Satoshi,system-ui,sans-serif;font-family:var(--font-display,"Satoshi",system-ui,sans-serif)}.stat-label-mini{color:#94a3b8;color:var(--color-text-tertiary);font-size:.6875rem;font-weight:500;letter-spacing:.05em;text-transform:uppercase}@media (max-width:1024px){.elements-overview-panel{border-left:none;border-radius:0;border-top:1px solid #ffffff1a;border-top:1px solid var(--glass-border);right:0;top:120px;width:100%}.elements-stats-grid{grid-template-columns:repeat(6,1fr)}}@media (max-width:768px){.elements-stats-grid{grid-template-columns:repeat(3,1fr)}}.element-list{max-height:200px;overflow-y:auto;padding-right:.5rem;padding-right:var(--space-sm)}.element-list::-webkit-scrollbar{width:4px}.element-list::-webkit-scrollbar-track{background:#111113;background:var(--color-surface);border-radius:2px}.element-list::-webkit-scrollbar-thumb{background:#404048;background:var(--color-border-hover);border-radius:2px}.element-list::-webkit-scrollbar-thumb:hover{background:#3b82f6;background:var(--color-primary)}.element-item{align-items:center;background:#252529;background:var(--color-surface-tertiary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:.5rem;border-radius:var(--radius-sm);display:flex;justify-content:space-between;margin-bottom:.25rem;margin-bottom:var(--space-xs);padding:.5rem .75rem;padding:var(--space-sm) var(--space-md);transition:all .2s ease-out;transition:all var(--transition-normal)}.element-item:hover{background:#2a2a2f;background:var(--color-surface-elevated);border-color:#404048;border-color:var(--color-border-hover);transform:translateX(2px)}.element-name{color:#f8fafc;color:var(--color-text-primary);flex:1 1;font-family:Plus Jakarta Sans,system-ui,sans-serif;font-family:var(--font-body,"Plus Jakarta Sans",system-ui,sans-serif);font-size:.8125rem;font-weight:500}.element-name.clickable{color:#3b82f6;color:var(--color-primary)}.element-name.clickable:hover{color:#2563eb;color:var(--color-primary-hover);text-decoration:underline}.element-delete-btn{align-items:center;background:none;border:none;border-radius:.5rem;border-radius:var(--radius-sm);color:#ef4444;color:var(--color-error);cursor:pointer;display:flex;font-size:1.25rem;font-weight:700;height:24px;justify-content:center;padding:.25rem;padding:var(--space-xs);transition:all .2s ease-out;transition:all var(--transition-normal);width:24px}.element-convert-btn{background:#3b82f626;border:1px solid #60a5fa73;border-radius:6px;color:#dbeafe;cursor:pointer;font-size:.65rem;font-weight:700;line-height:1;padding:2px 6px;transition:all .2s ease}.element-convert-btn:hover{background:#3b82f647;border-color:#93c5fdb3}[data-theme=light] .element-convert-btn{background:#3b82f61a;border-color:#3b82f666;color:#1d4ed8}[data-theme=light] .element-convert-btn:hover{background:#3b82f633;border-color:#3b82f699}.element-delete-btn:hover{background:#ef444426;background:var(--color-error-light);color:#ef4444;color:var(--color-error);transform:scale(1.1)}.element-empty{background:#111113;background:var(--color-surface);border:1px dashed #2a2a2f;border:1px dashed var(--color-border);border-radius:.5rem;border-radius:var(--radius-sm);color:#64748b;color:var(--color-text-muted);font-size:.8125rem;font-style:italic;padding:1rem;padding:var(--space-lg);text-align:center}.sidebar-section-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:.5rem}.visibility-toggle{background:none;border:none;border-radius:4px;cursor:pointer;font-size:1.2rem;padding:.25rem;transition:all .2s ease}.visibility-toggle:hover{background-color:#ffffff1a}.visibility-toggle.hidden{opacity:.4}.element-item.highlighted{background-color:#6366f133;border-left:3px solid #6366f1}.element-name.clickable{cursor:pointer;transition:color .2s ease}.element-name.clickable:hover{color:#6366f1}.element-actions{align-items:center;display:flex;gap:4px}.element-visibility-toggle{background:none;border:none;border-radius:3px;cursor:pointer;font-size:1rem;padding:.2rem;transition:all .2s ease}.element-visibility-toggle:hover{background-color:#ffffff1a}.element-visibility-toggle.hidden{opacity:.4}.set-management-expanded{background-color:var(--color-bg-secondary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:4px;margin-top:8px;padding:8px}.set-management-header{font-size:.875rem;margin-bottom:8px}.add-to-set h4,.set-distributions-list h4{color:#cbd5e1;color:var(--color-text-secondary);font-size:.75rem;margin:8px 0 4px}.set-distribution-item{align-items:center;display:flex;font-size:.75rem;justify-content:space-between;padding:4px 0}.remove-btn{background:var(--color-danger);border:none;border-radius:2px;color:#fff;cursor:pointer;font-size:.7rem;padding:2px 6px}.remove-btn:hover{background:var(--color-danger-hover)}.sidebar-btn-small{background:#3b82f6;background:var(--color-primary);border:none;border-radius:4px;color:#fff;cursor:pointer;font-size:.75rem;padding:4px 8px}.sidebar-btn-small:hover{background:#2563eb;background:var(--color-primary-hover)}.analytics-panel-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;padding:20px;position:fixed;right:0;top:0;z-index:2000}.analytics-panel{background:var(--color-bg-primary);border:1px solid #2a2a2f;border:1px solid var(--color-border);border-radius:12px;box-shadow:0 20px 60px #00000080;display:flex;flex-direction:column;max-height:90vh;max-width:1400px;width:70%}.analytics-panel-header{align-items:center;border-bottom:1px solid #2a2a2f;border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:20px 24px}.analytics-panel-title{color:#f8fafc;color:var(--color-text-primary);font-size:1.5rem;font-weight:600;margin:0}.analytics-close-btn{align-items:center;background:none;border:none;border-radius:4px;color:#cbd5e1;color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:2rem;height:32px;justify-content:center;padding:0;transition:all .2s;width:32px}.analytics-close-btn:hover{background:var(--color-bg-secondary);color:#f8fafc;color:var(--color-text-primary)}.analytics-panel-content{flex:1 1;overflow-y:auto;padding:24px}.analytics-loading .spinner{border:4px solid #2a2a2f;border:4px solid var(--color-border);height:48px;width:48px}.analytics-grid{grid-gap:24px;display:grid;gap:24px;grid-template-columns:repeat(auto-fit,minmax(450px,1fr))}.analytics-plot-container{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;border:1px solid #33415599;border-radius:12px;padding:16px}@media (max-width:1024px){.analytics-grid{grid-template-columns:1fr}}.analytics-error,.analytics-loading{align-items:center;display:flex;flex-direction:column;gap:16px;justify-content:center;padding:40px 20px}.analytics-loading .spinner{animation:spin 1s linear infinite;border:3px solid #2a2a2f;border-top-color:#3b82f6;border:3px solid var(--color-border);border-radius:50%;border-top-color:var(--color-primary);height:40px;width:40px}.analytics-error p{color:var(--color-danger);font-size:.875rem;text-align:center}.analytics-summary{border-bottom:1px solid #33415599;display:flex;flex-wrap:wrap;gap:.5rem 1.5rem;gap:var(--space-sm) var(--space-xl);margin-bottom:.75rem;margin-bottom:var(--space-md);padding:0 0 .5rem;padding:0 0 var(--space-sm)}.analytics-summary-ensemble{flex-direction:column;gap:.25rem;gap:var(--space-xs)}.analytics-summary-ensemble .analytics-summary-item+.analytics-summary-item{margin-left:0}.analytics-summary-item{align-items:center;display:flex;flex-direction:row;gap:.5rem;gap:var(--space-sm)}.analytics-summary-label{color:#94a3b8;font-size:.72rem;letter-spacing:.04em;text-transform:uppercase}.analytics-summary-value{color:#f1f5f9;font-size:.85rem;font-weight:600}[data-theme=light] .analytics-summary-label{color:#7c7968}[data-theme=light] .analytics-summary-value{color:#141413}[data-theme=light] .analytics-plot-container{background:#ffffffb3;border-color:#00000014}[data-theme=light] .analytics-plot-wrapper{background:#ffffff80;border-color:#00000014}.analytics-plots-container{display:flex;flex-direction:column;gap:.75rem;gap:var(--space-md);padding:0}.analytics-curves-toggle{align-items:center;color:#cbd5e1;display:flex;font-size:.8rem;gap:8px;margin:0}.analytics-plot-wrapper{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0f172a80;border:1px solid #33415599;border-radius:8px;min-height:220px;padding:14px}.analytics-plot-title{color:#f8fafc;color:var(--color-text-primary);font-size:1rem;font-weight:600;margin:0 0 8px}.analytics-plot-wrapper canvas{border-radius:4px;display:block;height:180px!important;width:100%}[data-theme=light]{--color-background:#fdf6e3;--color-surface:#fdf6e3;--color-surface-secondary:#f0eee6;--color-surface-tertiary:#e8e5d9;--color-surface-elevated:#fff;--color-surface-hover:#ebe8de;--color-border:#d1cfc5;--color-border-light:#e2dfd3;--color-border-hover:#b8b5ab;--color-text-primary:#141413;--color-text-secondary:#2c2b25;--color-text-tertiary:#7c7968;--color-text-muted:#a09d92;--color-text-inverse:#fdf6e3;--glass-bg:#faf9f5e6;--glass-border:#0000000f;--glass-shadow:0 8px 32px #00000014;--shadow-sm:0 1px 3px #0000000f,0 1px 2px #0000000a;--shadow-md:0 4px 6px #00000014,0 2px 4px #0000000d;--shadow-lg:0 10px 15px #00000014,0 4px 6px #0000000a;--shadow-xl:0 20px 25px #0000001a,0 10px 10px #0000000a}[data-theme=light] .quick-start-panel{background:#f0eee6f7;border-color:#a19e9659;box-shadow:0 16px 48px #00000014}[data-theme=light] .quick-start-title{color:#141413}[data-theme=light] .quick-start-subtitle{color:#3a3831}[data-theme=light] .quick-start-action{background:#ffffffe6;border-color:#2563eb66;color:#1e40af}[data-theme=light] .quick-start-action:hover{background:#dbeafecc;border-color:#3b82f699;color:#1e3a8a}[data-theme=light] .quick-start-limits{background:#fef3c780;border-color:#d9770666}[data-theme=light] .quick-start-limits-title{color:#92400e}[data-theme=light] .quick-start-limits-text{color:#78350f}[data-theme=light] .parameters-panel-title{color:#141413}[data-theme=light] .parameters-panel,[data-theme=light] .parameters-panel-routing{background:#faf9f5f7;border-color:#00000014}[data-theme=light] .parameters-panel-header{background:linear-gradient(180deg,#f0eee6fa,#f8fafcf0);border-bottom-color:#d1cfc5}[data-theme=light] .sidebar-section-title{border-bottom-color:#d1cfc5}[data-theme=light] .sidebar-section-header .visibility-toggle{color:#4a4840}[data-theme=light] .toolbar-btn{background:#fff;border-color:#d1cfc5;color:#2c2b25}[data-theme=light] .toolbar-btn:hover:not(:disabled){background:#eff6ff;border-color:#bfdbfe;color:#141413}[data-theme=light] .toolbar-btn.active{background:linear-gradient(135deg,#3d9bff,#2563eb);border-color:#3d9bff;color:#fff}[data-theme=light] .top-toolbar{background:#f8fafcdb;border-bottom-color:#0f172a14}[data-theme=light] .toolbar-section-nav .toolbar-btn{background:#ffffffb8;border-color:#94a3b82e;color:#334155}[data-theme=light] .toolbar-section-nav .toolbar-btn:hover:not(:disabled){background:#fffffff5}[data-theme=light] .secondary-toolbar{background:#ffffffe0;border-color:#94a3b838;box-shadow:0 24px 60px #0f172a24,inset 0 1px 0 #ffffffbf}[data-theme=light] .toolbar-shape-switcher{background:#fff;border-color:#d1cfc5}[data-theme=light] .toolbar-shape-btn{color:#4a4840}[data-theme=light] .toolbar-shape-btn.active{background:linear-gradient(135deg,#3d9bff,#2563eb);color:#fff}[data-theme=light] .mode-indicator.draw{background:#0000000a;border-color:#0000002e;color:#3a3831}[data-theme=light] .mode-indicator.visualize{background:#0891b212;border-color:#0891b24d;color:#0891b2}[data-theme=light] .sidebar-btn{background:#fff;border-color:#d1cfc5;color:#2c2b25}[data-theme=light] .sidebar-btn:hover:not(:disabled){background:#f0eee6;border-color:#b8b5ab;color:#141413}[data-theme=light] .sidebar-btn.active{background:#6366f1;border-color:#6366f1;color:#fff}[data-theme=light] .simulation-info{background:#faf9f5f2;border-color:#00000014;box-shadow:0 8px 32px #0000001a;color:#141413}[data-theme=light] .simulation-info-title{color:#141413}[data-theme=light] .simulation-info-label{color:#7c7968}[data-theme=light] .simulation-info-value{color:#141413}[data-theme=light] .data-panel{background:#faf9f5f2;border-color:#00000014}[data-theme=light] .data-panel-header{background:#f0eee6;border-bottom-color:#d1cfc5}[data-theme=light] .data-panel-title{color:#141413}[data-theme=light] .data-panel-close{color:#7c7968}[data-theme=light] .data-panel-close:hover{background:#e8e5d9;color:#141413}[data-theme=light] .data-section{border-right-color:#d1cfc5}[data-theme=light] .data-section-title{color:#2c2b25}[data-theme=light] .data-textarea,[data-theme=light] .form-select{background:#fff;border-color:#d1cfc5;color:#141413}[data-theme=light] .progress-bar-container{background:#e8e5d9}[data-theme=light] .stage-label{color:#141413}[data-theme=light] .progress-message,[data-theme=light] .progress-percentage{color:#7c7968}[data-theme=light] .element-item{background:#fff;border-color:#d1cfc5}[data-theme=light] .element-item:hover{background:#f0eee6;border-color:#b8b5ab}[data-theme=light] .element-name{color:#141413}[data-theme=light] .element-name.clickable{color:#6366f1}[data-theme=light] .element-delete-btn{color:#dc2626}[data-theme=light] .element-empty{background:#f0eee6;border-color:#d1cfc5;color:#7c7968}[data-theme=light] .stat-item{background:#fff;border-color:#d1cfc5}[data-theme=light] .stat-label{color:#7c7968}[data-theme=light] .stat-value{color:#6366f1}[data-theme=light] .distribution-item{background:#fff;border-color:#d1cfc5}[data-theme=light] .distribution-item:hover{background:#f0eee6;border-color:#b8b5ab}[data-theme=light] .distribution-list::-webkit-scrollbar-track{background:#f0eee6}[data-theme=light] .distribution-list::-webkit-scrollbar-thumb{background:#b8b5ab}[data-theme=light] .element-list::-webkit-scrollbar-track{background:#f0eee6}[data-theme=light] .element-list::-webkit-scrollbar-thumb{background:#b8b5ab}[data-theme=light] .frame-slider{background:#e8e5d9;border-color:#d1cfc5}[data-theme=light] .frame-info{color:#7c7968}[data-theme=light] .speed-select{background:#fff;border-color:#d1cfc5;color:#141413}[data-theme=light] .toolbar-separator{background:linear-gradient(180deg,#0000,#94a3b873,#0000)}[data-theme=light] .toolbar-separator-small{background:#d1cfc5}[data-theme=light] .toolbar-btn-account{background:#fff;border-color:#d1cfc5;color:#141413}[data-theme=light] .toolbar-version{color:#0006}[data-theme=light] .toolbar-fork-status{color:#cbd5e1;color:var(--color-text-secondary)}[data-theme=light] .floating-toolbar-label{color:#64748b}[data-theme=light] .toolbar-quota-badge{background:#fef3c780;border-color:#d9770680;color:#92400e}[data-theme=light] .toolbar-quota-badge.disabled{background:#e2e8f080;border-color:#94a3b866;color:#64748b}[data-theme=light] .status-card{background:#f0eee6;border-color:#d1cfc5}[data-theme=light] .status-card-error,[data-theme=light] .status-card-error .status-card-title,[data-theme=light] .status-card-error li,[data-theme=light] .status-card-error p{color:#7f1d1d}[data-theme=light] .elements-overview-panel{background:#faf9f5f2;border-color:#00000014}[data-theme=light] .elements-overview-header{background:#f0eee6;border-bottom-color:#d1cfc5}[data-theme=light] .elements-overview-title{color:#141413}[data-theme=light] .stat-item-mini{background:#fff;border-color:#d1cfc5}[data-theme=light] .panel-minimize-btn,[data-theme=light] .stat-label-mini{color:#7c7968}[data-theme=light] .panel-minimize-btn:hover{background:#e8e5d9;color:#141413}[data-theme=light] .quick-start-dismiss{color:#7c7968}[data-theme=light] .quick-start-dismiss:hover{color:#141413}[data-theme=light] .modal-overlay{background:#14141399}[data-theme=light] .canvas-container-fullscreen{background:linear-gradient(135deg,#fdf6e3,#f0eee6)}.toolbar-btn.theme-toggle-btn,[data-theme=light] .theme-toggle-btn{background:#fff!important;border:2px solid #d1cfc5!important;box-shadow:0 2px 4px #0000001a;font-size:1.1rem!important}.toolbar-btn.theme-toggle-btn:hover,[data-theme=light] .theme-toggle-btn:hover{background:#f0eee6!important;border-color:#b8b5ab!important;transform:scale(1.05)}[data-theme=dark] .theme-toggle-btn{background:#1a1a1d!important;border:2px solid #353540!important}[data-theme=dark] .theme-toggle-btn:hover{background:#252529!important;border-color:#404048!important}[data-theme=light] .parameter-group{background:#fff;border-color:#d1cfc5}[data-theme=light] .parameter-group-title{border-bottom-color:#6366f1;color:#141413}.StoreySelector_storeyDisplay__PvbAl{align-items:center;display:flex;gap:8px}.StoreySelector_elevationChip__k\+zwB{background-color:#2196f31a;color:#1976d2;font-size:.7rem;height:20px}.StoreySelector_placeholder__dodoX{color:#00000061}.StoreySelector_menuItem__Lmjjn{padding:8px 16px}.StoreySelector_menuItemContent__FfkEx{align-items:center;display:flex;gap:8px;width:100%}.StoreySelector_elevation__m7cBF{font-weight:400;white-space:nowrap}.StoreySelector_loadingContainer__itfNh{align-items:center;display:flex;gap:8px;justify-content:center;min-height:56px;padding:8px 16px}.StoreySelector_noStoreysContainer__TFhds{align-items:center;display:flex;justify-content:center;min-height:56px;padding:16px;text-align:center}.StoreyHeader_header__fGKVM{align-items:center;background-color:#1e293b;background-color:var(--color-bg-secondary,#1e293b);border-left:3px solid #1a73e8;border-left:3px solid var(--color-accent,#1a73e8);border-radius:4px;display:flex;gap:12px;padding:12px 16px;transition:background-color .2s ease}.StoreyHeader_headerContent__kh\+IP{align-items:center;display:flex;flex:1 1;gap:8px}.StoreyHeader_storeyName__3hjtq{color:#f8fafc;color:var(--color-text-primary,#f8fafc);font-size:.95rem;font-weight:600;line-height:1.3}.StoreyHeader_elevationChip__UFvlg{background-color:#1a73e826;color:#3b82f6;font-size:.75rem;font-weight:500;height:20px}.StoreyHeader_indicator__7rpwF{animation:StoreyHeader_pulse__jRpYa 2s ease-in-out infinite;background-color:#1a73e8;background-color:var(--color-accent,#1a73e8);border-radius:50%;height:8px;width:8px}@keyframes StoreyHeader_pulse__jRpYa{0%,to{opacity:1}50%{opacity:.5}}.StoreyHeader_placeholder__6kdUA{color:#64748b;color:var(--color-text-secondary,#64748b);font-size:.875rem;padding:12px 16px}.fork-review-modal{max-width:900px;padding:0}.fork-review-modal .modal-title{margin:0;padding:24px 24px 16px}.fork-review-body{max-height:70vh;overflow-y:auto;padding:0 24px 16px}.fork-review-summary{border-bottom:1px solid #ffffff14;color:#94a3b8;color:var(--color-text-secondary,#94a3b8);font-size:.8125rem;margin-bottom:12px;padding:8px 0}.fork-review-canvases{display:flex;flex-shrink:0;gap:16px;margin-bottom:16px}.fork-review-canvas-col{flex:1 1;max-height:220px;min-width:0;text-align:center}.fork-review-canvas-label{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:8px;text-transform:uppercase}.fork-review-canvas-wrapper{background:#0000004d;border:1px solid #ffffff1a;border-radius:8px;flex-shrink:0;height:180px;max-height:180px;overflow:hidden;position:relative;width:100%}.fork-review-canvas{display:block;height:100%;left:0;position:absolute;top:0;width:100%}.fork-review-geometry-bar{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;display:flex;gap:8px;margin-bottom:16px;padding:10px 14px}.fork-review-geometry-bar>span{color:#94a3b8;flex:1 1;font-size:.8125rem}.fork-review-geo-btn{background:#0000;border:1px solid #ffffff26;border-radius:6px;color:#94a3b8;cursor:pointer;font-size:.8125rem;padding:5px 14px;transition:all .15s ease}.fork-review-geo-btn:hover{background:#ffffff14}.fork-review-geo-btn.active{background:#3b82f6;background:var(--color-primary,#3b82f6);border-color:#3b82f6;border-color:var(--color-primary,#3b82f6);color:#fff}.fork-review-config-title{color:#94a3b8;font-size:.75rem;font-weight:600;letter-spacing:.5px;margin-bottom:12px;text-transform:uppercase}.fork-review-category{margin-bottom:12px}.fork-review-category-label{color:#64748b;font-size:.75rem;letter-spacing:.5px;margin-bottom:4px;text-transform:uppercase}.fork-review-change-row{align-items:center;background:#ffffff08;border:1px solid #ffffff0f;border-radius:6px;display:flex;gap:10px;margin-bottom:4px;padding:8px 12px}.fork-review-change-row:hover{background:#ffffff0f}.fork-review-change-row label{align-items:center;color:#e2e8f0;cursor:pointer;display:flex;flex:1 1;font-size:.8125rem;gap:8px}.fork-review-change-row input[type=checkbox]{accent-color:#3b82f6;accent-color:var(--color-primary,#3b82f6);cursor:pointer;height:18px;min-width:18px;width:18px}.fork-review-change-values{font-size:.75rem}.fork-review-old-value{color:#ef4444;text-decoration:line-through}.fork-review-arrow{color:#64748b;margin:0 4px}.fork-review-new-value{color:#22c55e}.fork-review-conflicts{margin-bottom:16px}.fork-review-conflict-banner{background:#f59e0b1a;border:1px solid #f59e0b4d;border-radius:6px;color:#f59e0b;font-size:.8125rem;font-weight:600;margin-bottom:8px;padding:8px 14px}.fork-review-conflict-row{border-left:3px solid #f59e0b;opacity:.7}.fork-review-conflict-text{color:#f59e0b;font-weight:600}.fork-review-original-changes{margin-bottom:16px}.fork-review-collapse-btn{background:none;border:none;color:#94a3b8;cursor:pointer;font-size:.8125rem;margin-bottom:8px;padding:6px 0}.fork-review-collapse-btn:hover{color:#e2e8f0}.fork-review-readonly-row{opacity:.6}.fork-review-readonly-row>span:first-child{color:#e2e8f0;flex:1 1;font-size:.8125rem}.fork-review-no-changes{color:#64748b;font-size:.875rem;padding:24px 0;text-align:center}.fork-review-error{color:#ef4444;font-size:.8125rem;margin-bottom:8px}[data-theme=light] .fork-review-summary{border-bottom-color:#e2e8f0;color:#64748b}[data-theme=light] .fork-review-canvas-wrapper{background:#f5f5f0;border-color:#d1cfc5}[data-theme=light] .fork-review-geometry-bar{background:#00000008;border-color:#d1cfc5}[data-theme=light] .fork-review-geo-btn{border-color:#d1cfc5;color:#64748b}[data-theme=light] .fork-review-change-row{background:#00000005;border-color:#d1cfc5}[data-theme=light] .fork-review-change-row label{color:#141413}[data-theme=light] .fork-review-canvas-label,[data-theme=light] .fork-review-config-title{color:#64748b}.modal-overlay{align-items:center;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.modal{background:#111113fa;border:1px solid #ffffff1a;border-radius:14px;box-shadow:0 8px 32px #0006;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;max-height:90vh;max-width:600px;overflow-y:auto;padding:24px;width:90%}.modal-title{border-bottom:1px solid #ffffff1a;color:#f8fafc;font-family:Poppins,sans-serif;font-size:1rem;font-weight:600;letter-spacing:.01em;margin:0 0 16px;padding-bottom:12px}.form-group{margin-bottom:16px}.form-label{color:#cbd5e1;display:block;font-size:.875rem;font-weight:500;margin-bottom:8px}.form-input{background:#ffffff0d;border:1px solid #ffffff1a;border-radius:6px;color:#f8fafc;font-size:.9rem;padding:10px 12px;transition:all .2s;width:100%}.form-input:focus{background:#ffffff14;border-color:#6366f1;outline:none}.modal-actions{border-top:1px solid #ffffff1a;display:flex;gap:12px;justify-content:flex-end;margin-top:24px;padding-top:16px}.btn{border-radius:6px;padding:10px 20px;transition:all .2s}.btn-primary{background:#3b82f6;background:var(--color-primary,#3b82f6);color:#fff;font-family:Inter,-apple-system,sans-serif}.btn-primary:hover{background:#2563eb;background:var(--color-primary-hover,#2563eb)}.btn-warning{background:#f59e0b;background:var(--color-warning,#f59e0b);color:#fff;font-family:Inter,-apple-system,sans-serif}.btn-warning:hover{background:#d97706}.btn-secondary{background:#ffffff1a;color:#cbd5e1}.btn-secondary:hover{background:#ffffff26}[data-theme=light] .modal{background:#faf9f5;border-color:#d1cfc5;box-shadow:0 8px 32px #0000001f}[data-theme=light] .modal-title{border-bottom-color:#d1cfc5;color:#141413}[data-theme=light] .form-label{color:#2c2b25}[data-theme=light] .form-input{background:#fff;border-color:#d1cfc5;color:#141413}[data-theme=light] .form-input:focus{background:#fff;border-color:#6366f1}[data-theme=light] .modal-actions{border-top-color:#d1cfc5}[data-theme=light] .btn-secondary{background:#e8e5d9;color:#2c2b25}[data-theme=light] .btn-secondary:hover{background:#dbd8cc}.scenario-gallery-overlay{align-items:center;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000c;bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:1000}.scenario-gallery{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;height:85vh;max-width:1200px;overflow:hidden;position:relative;width:90vw}.scenario-gallery:before{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:4px;left:0;position:absolute;right:0;top:0}.scenario-gallery-header{align-items:center;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-xl) var(--space-2xl);position:relative}.scenario-gallery-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text-primary),var(--color-text-secondary));-webkit-background-clip:text;background-clip:text;color:var(--color-text-primary);font-family:var(--font-body);font-size:1.5rem;font-weight:700;margin:0}.close-button{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;display:flex;font-size:1.5rem;height:40px;justify-content:center;padding:var(--space-sm);transition:all var(--transition-normal);width:40px}.close-button:hover{background:var(--color-surface-hover);color:var(--color-text-primary);transform:scale(1.1)}.gallery-tabs{background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;gap:0;padding:0 var(--space-2xl)}.gallery-tab{background:none;border:none;border-bottom:2px solid #0000;color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-sm);font-weight:500;padding:var(--space-md) var(--space-xl);transition:all .2s ease}.gallery-tab:hover{color:var(--color-text)}.gallery-tab.active{border-bottom-color:var(--color-primary);color:var(--color-primary)}.scenario-owner-actions{display:flex;flex-wrap:wrap;gap:var(--space-xs);margin-top:var(--space-sm);min-width:0;width:100%}.btn-owner-action{border:none;border-radius:var(--radius-sm);cursor:pointer;flex:0 1 auto;font-size:var(--font-xs);font-weight:500;max-width:100%;min-width:0;padding:4px 10px;transition:all .2s ease}.btn-edit{background:var(--color-primary-light);color:var(--color-primary)}.btn-edit:hover{background:var(--color-primary);color:#fff}.btn-delete{background:var(--color-error-light);color:var(--color-error)}.btn-delete:hover{background:var(--color-error);color:#fff}.btn-download{background:var(--color-surface);border:1px solid var(--color-border)!important;color:var(--color-text-secondary)}.btn-download:hover{background:var(--color-text-secondary);color:var(--color-surface)}.btn-share{background:var(--color-surface);border:1px solid var(--color-primary)!important;color:var(--color-primary)}.btn-share:hover{background:var(--color-primary);color:#fff}.share-modal-body{padding:var(--space-xl) var(--space-2xl) var(--space-2xl)}.share-input-row{display:flex;gap:var(--space-md);margin-bottom:var(--space-lg)}.share-input-row .search-input{flex:1 1;min-width:0}.share-error{color:var(--color-error);font-size:var(--font-sm);margin-bottom:var(--space-md)}.shared-email-list{list-style:none;margin:0;padding:0}.shared-email-item{align-items:center;border-bottom:1px solid var(--color-border);color:var(--color-text-primary);display:flex;font-size:var(--font-sm);justify-content:space-between;padding:var(--space-md) var(--space-lg)}.shared-email-item:last-child{border-bottom:none}.shared-email-remove{background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-size:var(--font-sm);padding:2px 6px}.shared-email-remove:hover{background:var(--color-error-light);color:var(--color-error)}.share-empty{color:var(--color-text-secondary);font-size:var(--font-sm);padding:var(--space-xl) 0;text-align:center}.btn-fork{background:var(--color-surface);border:1px solid #a78bfa44!important;color:#a78bfa}.btn-fork:hover{background:#a78bfa;color:#fff}.btn-fork:disabled{cursor:wait;opacity:.5}.btn-sync{background:var(--color-surface);border:1px solid #f59e0b44!important;color:#f59e0b}.btn-sync:hover{background:#f59e0b;color:#fff}.fork-badge,.fork-count-badge{background:#8b5cf622;border-radius:4px;color:#a78bfa;font-size:11px;padding:2px 8px}.fork-count-badge{border:none;cursor:pointer}.fork-count-badge:hover{background:#8b5cf644}.fork-badge-stale{background:#f59e0b22;color:#f59e0b}.scenario-edit-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-width:500px;width:90vw;z-index:1001}.gallery-filters{background:var(--color-surface);border-bottom:1px solid var(--color-border);display:flex;flex-wrap:wrap;gap:var(--space-lg);padding:var(--space-xl) var(--space-2xl)}.filter-group{display:flex;flex-direction:column;gap:var(--space-xs);min-width:120px}.search-input{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:var(--font-body);font-size:.875rem;min-width:200px;padding:var(--space-md) var(--space-lg);transition:all var(--transition-normal)}.search-input:focus{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light),var(--shadow-md);outline:none}.search-input::placeholder{color:var(--color-text-muted)}.filter-select{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-body);font-size:.875rem;padding:var(--space-md) var(--space-lg);transition:all var(--transition-normal)}.filter-select:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.filter-select option{background:var(--color-surface-secondary);color:var(--color-text-primary)}.gallery-content{background:var(--color-surface);flex:1 1;overflow-y:auto;padding:var(--space-xl) var(--space-2xl)}.gallery-content::-webkit-scrollbar{width:8px}.gallery-content::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:4px}.gallery-content::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:4px}.gallery-content::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.loading-state{align-items:center;color:var(--color-text-tertiary);display:flex;flex-direction:column;height:200px;justify-content:center}.spinner{border-top:3px solid var(--color-surface-tertiary);border:3px solid var(--color-surface-tertiary);border-top-color:var(--color-primary);height:32px;width:32px}.error-message,.spinner{margin-bottom:var(--space-lg)}.empty-state,.error-message{font-family:var(--font-body)}.empty-state{color:var(--color-text-tertiary);padding:var(--space-3xl);text-align:center}.scenarios-grid{grid-gap:var(--space-xl);display:grid;gap:var(--space-xl);grid-template-columns:repeat(auto-fill,minmax(280px,1fr));margin-bottom:var(--space-2xl)}.scenario-card{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;display:flex;flex-direction:column;height:auto;min-height:500px;min-width:0;overflow:hidden;position:relative;transition:all var(--transition-normal)}.scenario-card:before{background:linear-gradient(90deg,#0000,#3b82f60d,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-slow);width:100%}.scenario-card:hover:before{left:100%}.scenario-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-xl);transform:translateY(-4px)}.scenario-thumbnail{align-items:center;background:var(--color-surface-tertiary);display:flex;flex-shrink:0;height:160px;justify-content:center;overflow:hidden;position:relative}.scenario-thumbnail img{height:100%;object-fit:cover;width:100%}.thumbnail-placeholder{background:linear-gradient(135deg,var(--color-surface-tertiary) 0,var(--color-surface-elevated) 100%);color:var(--color-text-muted);font-size:3rem;height:100%;width:100%}.scenario-overlay,.thumbnail-placeholder{align-items:center;display:flex;justify-content:center}.scenario-overlay{backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);background:#000c;bottom:0;left:0;opacity:0;position:absolute;right:0;top:0;transition:opacity var(--transition-normal)}.scenario-card:hover .scenario-overlay{opacity:1}.load-button{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-hover) 100%);border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-glow);color:var(--color-text-inverse);cursor:pointer;font-family:var(--font-body);font-weight:600;padding:var(--space-md) var(--space-xl);transition:all var(--transition-normal)}.load-button:hover{background:linear-gradient(135deg,var(--color-primary-hover) 0,#1e40af 100%);box-shadow:0 0 30px #3b82f666,var(--shadow-lg);transform:translateY(-2px)}.scenario-info{background:var(--color-surface-secondary);display:flex;flex:1 1;flex-direction:column;min-height:20%;min-width:0;padding:var(--space-lg) var(--space-xl)}.scenario-title{color:var(--color-text-primary);flex-shrink:0;font-family:var(--font-body);font-size:1.125rem;font-weight:700;line-height:1.4;margin:0 0 var(--space-sm) 0}.scenario-description{word-wrap:break-word;color:var(--color-text-tertiary);display:block;flex:1 1;font-family:var(--font-body);font-size:.875rem;line-height:1.6;margin:0;max-height:5%;min-height:60px;overflow-y:auto;padding-right:var(--space-xs)}.scenario-description::-webkit-scrollbar{width:4px}.scenario-description::-webkit-scrollbar-track{background:var(--color-surface-tertiary);border-radius:2px}.scenario-description::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:2px}.scenario-description::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.scenario-meta{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg);min-width:0}.scenario-category,.scenario-difficulty{border-radius:9999px;font-family:var(--font-body);font-size:.75rem;font-weight:600;padding:var(--space-xs) var(--space-md);text-transform:capitalize}.scenario-category{background:var(--color-primary-light);border:1px solid var(--color-primary);color:var(--color-primary)}.visibility-badge{border-radius:9999px;font-family:var(--font-body);font-size:.75rem;font-weight:600;padding:var(--space-xs) var(--space-md)}.badge-public{background:var(--color-accent-light);border:1px solid var(--color-accent);color:var(--color-accent)}.badge-private{background:var(--color-secondary-light);border:1px solid var(--color-secondary);color:var(--color-secondary)}.scenario-difficulty{background:var(--color-accent-light);border:1px solid var(--color-accent);color:var(--color-accent)}.scenario-tags{display:flex;flex-shrink:0;flex-wrap:wrap;gap:var(--space-sm);margin-bottom:var(--space-lg)}.scenario-tag{background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:var(--font-body);font-size:.75rem;padding:var(--space-xs) var(--space-sm)}.scenario-stats{flex-shrink:0;gap:var(--space-lg);margin-bottom:var(--space-md)}.scenario-stats,.stat{align-items:center;display:flex}.stat{font-family:var(--font-body);font-size:.75rem;gap:var(--space-xs)}.stat,.stat-button{color:var(--color-text-tertiary)}.stat-button{background:none;border:none;cursor:pointer;transition:color var(--transition-normal)}.stat-button:hover{color:var(--color-error)}.stat-icon{font-size:.875rem}.scenario-author{color:var(--color-text-muted);flex-shrink:0;font-family:var(--font-body);font-size:.75rem;font-style:italic}.pagination{align-items:center;display:flex;gap:var(--space-lg);justify-content:center;padding:var(--space-lg) 0}.pagination-button{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all var(--transition-normal)}.pagination-button:hover:not(:disabled){background:var(--color-surface-hover);border-color:var(--color-border-hover);transform:translateY(-1px)}.pagination-button:disabled{cursor:not-allowed;opacity:.4}.pagination-info{color:var(--color-text-tertiary);font-family:var(--font-body);font-size:.875rem}@media (max-width:768px){.scenario-gallery{height:90vh;width:95vw}.gallery-filters,.scenario-gallery-header{padding:var(--space-lg)}.gallery-filters{flex-direction:column;gap:var(--space-lg)}.scenarios-grid{gap:var(--space-lg);grid-template-columns:1fr}.gallery-content{padding:var(--space-lg)}.scenario-card{height:auto;max-height:none;min-height:450px}.scenario-description{max-height:100px;min-height:50px}.scenario-info{min-height:20%;padding:var(--space-lg)}.scenario-thumbnail{height:140px}}@media (max-width:480px){.scenario-gallery{border-radius:0;height:100vh;width:100vw}.gallery-content,.gallery-filters,.scenario-gallery-header{padding:var(--space-md)}.scenario-description{max-height:80px;min-height:40px}.scenario-info{min-height:20%;padding:var(--space-md)}.scenario-thumbnail{height:120px}}.scenario-upload-modal{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);max-height:85vh;max-width:600px;overflow-y:auto;position:relative;width:90vw}.scenario-upload-modal:before{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));content:"";height:4px;left:0;position:absolute;right:0}.modal-header,.scenario-upload-modal:before{border-radius:var(--radius-xl) var(--radius-xl) 0 0;top:0}.modal-header{align-items:center;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-xl) var(--space-2xl);position:-webkit-sticky;position:sticky;z-index:10}.modal-header h2{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text-primary),var(--color-text-secondary));-webkit-background-clip:text;background-clip:text;color:var(--color-text-primary);font-family:Poppins,sans-serif;font-size:1.25rem;font-weight:700;margin:0}.modal-close-btn{align-items:center;background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-tertiary);cursor:pointer;display:flex;font-size:1.25rem;height:36px;justify-content:center;padding:var(--space-sm);transition:all var(--transition-normal);width:36px}.modal-close-btn:hover{background:var(--color-surface-hover);color:var(--color-text-primary);transform:scale(1.1)}.upload-form{background:var(--color-surface);padding:var(--space-2xl)}.form-section{margin-bottom:var(--space-2xl)}.form-section h3{border-bottom:2px solid var(--color-border);color:var(--color-text-primary);font-family:Poppins,sans-serif;font-size:1rem;font-weight:700;margin:0 0 var(--space-lg) 0;padding-bottom:var(--space-sm);position:relative}.form-section h3:after{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));bottom:-2px;content:"";height:2px;left:0;position:absolute;width:40px}.form-group{margin-bottom:var(--space-xl)}.form-row{grid-gap:var(--space-lg);display:grid;gap:var(--space-lg);grid-template-columns:1fr 1fr}.form-group label{color:var(--color-text-primary);display:block;font-family:Poppins,sans-serif;font-size:.875rem;font-weight:600;margin-bottom:var(--space-sm)}.form-group label.checkbox-label{align-items:center;cursor:pointer;display:flex;font-weight:500;gap:8px}.form-group label.checkbox-label input[type=checkbox]{accent-color:var(--color-primary);width:auto}.form-group input[type=email],.form-group input[type=text],.form-group select,.form-group textarea{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);font-family:Poppins,sans-serif;font-size:.875rem;padding:var(--space-md) var(--space-lg);transition:all var(--transition-normal);width:100%}.form-group input[type=email]:focus,.form-group input[type=text]:focus,.form-group select:focus,.form-group textarea:focus{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light),var(--shadow-md);outline:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--color-text-muted)}.form-group select option{background:var(--color-surface-secondary);color:var(--color-text-primary)}.form-group textarea{line-height:1.5;min-height:80px;resize:vertical}.form-group input[type=file]{background:var(--color-surface-tertiary);border:2px dashed var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;font-family:Poppins,sans-serif;font-size:.875rem;overflow:hidden;padding:var(--space-lg);position:relative;text-align:center;transition:all var(--transition-normal);width:100%}.form-group input[type=file]:before{background:linear-gradient(90deg,#0000,#3b82f61a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-normal);width:100%}.form-group input[type=file]:hover:before{left:100%}.form-group input[type=file]:hover{color:var(--color-text-primary)}.form-group input[type=file]:focus,.form-group input[type=file]:hover{background:var(--color-primary-light);border-color:var(--color-primary)}.form-group input[type=file]:focus{box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.form-group small{color:var(--color-text-muted);display:block;font-family:Poppins,sans-serif;font-size:.75rem;line-height:1.4;margin-top:var(--space-sm)}.form-actions{border-top:1px solid var(--color-border);display:flex;gap:var(--space-lg);justify-content:flex-end;margin-top:var(--space-2xl);padding-top:var(--space-xl)}.btn{display:flex;font-family:Poppins,sans-serif;font-size:.875rem;font-weight:600;padding:var(--space-md) var(--space-xl)}.btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000)}.btn:disabled{cursor:not-allowed;opacity:.5;transform:none}.btn-primary{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-hover) 100%);box-shadow:var(--shadow-glow);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-hover) 0,#1e40af 100%);box-shadow:0 0 30px #3b82f666,var(--shadow-lg);transform:translateY(-2px)}.btn-secondary{background:var(--color-surface-secondary);border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-secondary:hover:not(:disabled){background:var(--color-surface-tertiary);border-color:var(--color-border-hover);transform:translateY(-1px)}.spinner{border:2px solid #0000;border-top-color:currentcolor;height:16px;width:16px}.error-message{background:var(--color-error-light);border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-family:Poppins,sans-serif;font-size:.875rem;margin:var(--space-lg) 0;overflow:hidden;padding:var(--space-lg);position:relative}.error-message:before{background:var(--color-error);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.file-upload-area{border-radius:var(--radius-md);position:relative;transition:all var(--transition-normal)}.file-upload-area.dragover{background:var(--color-primary-light);border-color:var(--color-primary);transform:scale(1.02)}.file-upload-preview{background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-secondary);font-family:Poppins,sans-serif;font-size:.75rem;margin-top:var(--space-sm);padding:var(--space-sm)}.success-message{background:var(--color-success-light);border:1px solid var(--color-success);border-radius:var(--radius-md);color:var(--color-success);font-family:Poppins,sans-serif;font-size:.875rem;margin:var(--space-lg) 0;overflow:hidden;padding:var(--space-lg);position:relative}.success-message:before{background:var(--color-success);content:"";height:100%;left:0;position:absolute;top:0;width:4px}.character-counter{color:var(--color-text-muted);font-family:Poppins,sans-serif;font-size:.75rem;font-weight:500;margin-top:var(--space-xs);text-align:right}.character-counter.warning{color:var(--color-warning)}.character-counter.error{color:var(--color-error)}.scenario-upload-modal::-webkit-scrollbar{width:8px}.scenario-upload-modal::-webkit-scrollbar-track{background:var(--color-surface-secondary);border-radius:4px}.scenario-upload-modal::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:4px}.scenario-upload-modal::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.form-group.required label:after{color:var(--color-error);content:" *";font-weight:700}.form-group.has-error input,.form-group.has-error select,.form-group.has-error textarea{border-color:var(--color-error);box-shadow:0 0 0 3px var(--color-error-light)}.form-group.has-success input,.form-group.has-success select,.form-group.has-success textarea{border-color:var(--color-success);box-shadow:0 0 0 3px var(--color-success-light)}.file-upload-icon{color:var(--color-primary);display:inline-block;font-size:1.2rem;margin-right:var(--space-sm);opacity:.7}.btn.loading{opacity:.8;pointer-events:none;position:relative}.btn.loading .spinner{margin-right:var(--space-sm)}.form-section{animation:slideInUp .3s ease-out}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.upload-progress{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-top:var(--space-lg);padding:var(--space-lg)}.progress-bar{background:var(--color-surface-tertiary);border-radius:4px;height:8px;margin-bottom:var(--space-sm);overflow:hidden;width:100%}.progress-fill{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));border-radius:4px;height:100%;position:relative;transition:width var(--transition-slow)}.progress-fill:after{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#ffffff4d,#0000);bottom:0;content:"";left:0;position:absolute;right:0;top:0}.progress-text{color:var(--color-text-secondary);font-family:Poppins,sans-serif;font-size:.8125rem;text-align:center}@media (max-width:768px){.scenario-upload-modal{margin:var(--space-lg);max-height:90vh;width:95vw}.modal-header{padding:var(--space-lg)}.upload-form{padding:var(--space-xl)}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.btn{justify-content:center;width:100%}}@media (max-width:480px){.scenario-upload-modal{border-radius:0;height:100vh;margin:0;width:100vw}.modal-header{border-radius:0}.upload-form{padding:var(--space-lg)}}.chatbot-fab{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;bottom:24px;box-shadow:0 8px 24px #667eea66;color:#fff;cursor:pointer;display:flex;height:60px;justify-content:center;position:fixed;right:24px;transition:all .3s cubic-bezier(.4,0,.2,1);width:60px;z-index:9999}.chatbot-fab:hover{box-shadow:0 12px 32px #667eea80;transform:translateY(-4px)}.chatbot-fab:active{transform:translateY(-2px)}.chatbot-fab.open{background:linear-gradient(135deg,#f093fb,#f5576c)}.chatbot-window{animation:slideIn .4s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:linear-gradient(180deg,#111113fa,#111113);border-radius:20px;bottom:100px;box-shadow:0 20px 60px #00000080,0 0 0 1px #ffffff1a;display:flex;flex-direction:column;height:650px;max-height:calc(100vh - 140px);overflow:hidden;position:fixed;right:24px;width:420px;z-index:9998}@keyframes slideIn{0%{opacity:0;transform:translateY(20px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}@media (max-width:768px){.chatbot-window{bottom:90px;height:calc(100vh - 120px);right:16px;width:calc(100vw - 32px)}.chatbot-fab{bottom:16px;height:56px;right:16px;width:56px}}.chatbot-header{align-items:center;background:linear-gradient(135deg,#667eea1a,#764ba21a);border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;justify-content:space-between;padding:20px 24px}.chatbot-header-content{align-items:center;display:flex;gap:12px}.chatbot-icon{align-items:center;display:flex;height:36px;justify-content:center;width:36px}.chatbot-title{color:#f8fafc;font-size:17px;font-weight:600;letter-spacing:-.3px;margin:0}.chatbot-subtitle{align-items:center;color:#94a3b8;display:flex;font-size:12px;font-weight:400;gap:6px;margin:2px 0 0}.model-selector{background:#ffffff1a;border:1px solid #ffffff26;border-radius:4px;color:#cbd5e1;cursor:pointer;font-size:11px;outline:none;padding:1px 4px}.model-selector:hover{background:#ffffff26;border-color:#ffffff40}.model-selector:focus{border-color:#60a5fa}.model-selector option{background:#1e293b;color:#e2e8f0}.chatbot-header-actions{display:flex;gap:8px}.chatbot-btn-icon{align-items:center;background:#ffffff14;border:none;border-radius:8px;color:#cbd5e1;cursor:pointer;display:flex;height:36px;justify-content:center;transition:all .2s;width:36px}.chatbot-btn-icon:hover{background:#ffffff26;color:#f8fafc}.chatbot-messages{display:flex;flex:1 1;flex-direction:column;gap:16px;min-height:0;overflow-y:auto;padding:20px 24px}.chatbot-messages::-webkit-scrollbar{width:6px}.chatbot-messages::-webkit-scrollbar-track{background:#0000}.chatbot-messages::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.chatbot-messages::-webkit-scrollbar-thumb:hover{background:#ffffff4d}.chatbot-message{align-items:flex-start;animation:fadeIn .3s ease-out;display:flex;gap:12px}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.message-avatar{align-items:center;border-radius:12px;color:#fff;display:flex;flex-shrink:0;height:36px;justify-content:center;width:36px}.user-message{flex-direction:row-reverse}.user-message .message-avatar{background:linear-gradient(135deg,#667eea,#764ba2)}.assistant-message .message-avatar{background:linear-gradient(135deg,#fa709a,#fee140);color:#1a1a1c}.message-content{word-wrap:break-word;border-radius:16px;font-size:14px;line-height:1.6;max-width:75%;padding:12px 16px;white-space:pre-wrap}.user-message .message-content{background:linear-gradient(135deg,#667eea,#764ba2);border-bottom-right-radius:6px;box-shadow:0 2px 8px #667eea4d;color:#fff;margin-left:auto}.assistant-message .message-content{background:#ffffff0f;border:1px solid #ffffff14;border-bottom-left-radius:6px;color:#f8fafc}.typing-indicator{display:flex;gap:6px;padding:8px 0}.typing-indicator span{animation:typing 1.4s ease-in-out infinite;background:currentColor;border-radius:50%;height:8px;opacity:.6;width:8px}.typing-indicator span:first-child{animation-delay:0s}.typing-indicator span:nth-child(2){animation-delay:.2s}.typing-indicator span:nth-child(3){animation-delay:.4s}@keyframes typing{0%,60%,to{opacity:.6;transform:translateY(0)}30%{opacity:1;transform:translateY(-10px)}}.chatbot-input-form{align-items:flex-end;background:#0003;border-top:1px solid #ffffff14;display:flex;flex-shrink:0;gap:12px;padding:16px 20px 20px}.chatbot-input{background:#ffffff0d;border:1px solid #ffffff1f;border-radius:12px;color:#f8fafc;flex:1 1;font-family:inherit;font-size:14px;line-height:1.5;max-height:120px;min-height:44px;outline:none;overflow-y:auto;padding:12px 16px;resize:none;transition:all .2s}.chatbot-input::-webkit-scrollbar{width:4px}.chatbot-input::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.chatbot-input:focus{background:#ffffff14;border-color:#667eea;box-shadow:0 0 0 3px #667eea1a}.chatbot-input::placeholder{color:#64748b}.chatbot-input:disabled{cursor:not-allowed;opacity:.6}.chatbot-btn-send{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:12px;color:#fff;cursor:pointer;display:flex;flex-shrink:0;height:44px;justify-content:center;transition:all .2s;width:44px}.chatbot-btn-send:hover:not(:disabled){box-shadow:0 8px 20px #667eea66;transform:translateY(-2px)}.chatbot-btn-send:disabled{cursor:not-allowed;opacity:.5}.chatbot-btn-send:active:not(:disabled){transform:translateY(0)}[data-theme=light] .chatbot-window{background:linear-gradient(180deg,#faf9f5,#f5f3ec);box-shadow:0 20px 60px #00000026,0 0 0 1px #0000000f}[data-theme=light] .chatbot-header{background:linear-gradient(135deg,#6366f114,#7c3aed14);border-bottom-color:#00000014}[data-theme=light] .chatbot-title{color:#141413}[data-theme=light] .chatbot-subtitle{color:#64748b}[data-theme=light] .model-selector{background:#0000000f;border-color:#0000001f;color:#334155}[data-theme=light] .model-selector option{background:#faf9f5;color:#141413}[data-theme=light] .chatbot-btn-icon{background:#0000000f;color:#475569}[data-theme=light] .chatbot-btn-icon:hover{background:#0000001f;color:#141413}[data-theme=light] .chatbot-messages::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] .assistant-message .message-content{background:#0000000d;border-color:#00000014;color:#141413}[data-theme=light] .chatbot-input-form{background:#0000000a;border-top-color:#00000014}[data-theme=light] .chatbot-input{background:#fff;border-color:#0000001f;color:#141413}[data-theme=light] .chatbot-input:focus{background:#fff;border-color:#6366f1;box-shadow:0 0 0 3px #6366f11f}[data-theme=light] .chatbot-input::placeholder{color:#94a3b8}.help-fab{align-items:center;background:linear-gradient(135deg,#667eea,#764ba2);border:none;border-radius:50%;bottom:92px;box-shadow:0 8px 24px #667eea66;color:#fff;cursor:pointer;display:flex;height:56px;justify-content:center;position:fixed;right:24px;transition:all .3s cubic-bezier(.4,0,.2,1);width:56px;z-index:9997}.help-fab:hover{box-shadow:0 12px 32px #667eea80;transform:translateY(-3px)}.help-fab:active{transform:translateY(-1px)}.help-fab.open{background:linear-gradient(135deg,#f093fb,#f5576c);box-shadow:0 8px 24px #f5576c59}.help-fab.badge:after{animation:badge-pulse 1s ease-in-out 3;background:#f59e0b;border:2px solid #0f172a;border-radius:50%;content:"";height:10px;position:absolute;right:8px;top:8px;width:10px}@keyframes badge-pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.4)}}.help-panel{animation:help-slide-in .3s cubic-bezier(.16,1,.3,1);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);background:#0f172af5;border:1px solid #ffffff1a;border-radius:16px;bottom:164px;box-shadow:0 16px 48px #00000080;display:flex;flex-direction:column;max-height:480px;overflow:hidden;pointer-events:auto;position:fixed;right:24px;width:320px;z-index:9997}@keyframes help-slide-in{0%{opacity:0;transform:translateY(12px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.help-header{align-items:center;background:linear-gradient(135deg,#0ea5e914,#0369a114);border-bottom:1px solid #ffffff14;display:flex;flex-shrink:0;gap:8px;justify-content:space-between;padding:14px 16px}.help-title{color:#e2e8f0;flex:1 1;font-size:14px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.help-header-actions{align-items:center;display:flex;flex-shrink:0;gap:6px}.help-search{background:#ffffff0f;border:1px solid #ffffff1f;border-radius:6px;color:#e2e8f0;font-size:12px;outline:none;padding:4px 8px;transition:border-color .2s;width:100px}.help-search:focus{border-color:#0ea5e9}.help-search::placeholder{color:#64748b}.help-close-btn{align-items:center;background:#ffffff14;border:none;border-radius:6px;color:#94a3b8;cursor:pointer;display:flex;flex-shrink:0;height:28px;justify-content:center;transition:all .2s;width:28px}.help-close-btn:hover{background:#ffffff26;color:#f8fafc}.help-body{flex:1 1;min-height:0;overflow-y:auto;padding:12px 16px 16px}.help-body::-webkit-scrollbar{width:4px}.help-body::-webkit-scrollbar-thumb{background:#ffffff26;border-radius:2px}.help-summary{color:#94a3b8;font-size:13px;line-height:1.5;margin:0 0 12px}.help-section{margin-bottom:14px}.help-section-label{color:#475569;font-size:10px;font-weight:600;letter-spacing:.08em;margin-bottom:6px;text-transform:uppercase}.help-shortcuts-list{display:flex;flex-direction:column;gap:8px}.help-shortcut-item{align-items:flex-start;display:flex;gap:10px}.help-key{flex:0 0 auto;max-width:48%}.help-panel kbd{background:#ffffff14;border:solid #ffffff26;border-radius:4px;border-width:1px 1px 2px;color:#fbbf24;display:inline-block;font-family:monospace;font-size:11px;overflow-wrap:anywhere;padding:1px 6px;white-space:normal}.help-desc{color:#cbd5e1;flex:1 1 auto;font-size:12px;line-height:1.5;min-width:0}.help-tips{margin:0;padding-left:16px}.help-tips li{color:#cbd5e1;font-size:12px;line-height:1.5;margin-bottom:5px}.help-no-results{color:#64748b;font-size:12px;font-style:italic;margin:8px 0}@media (max-width:768px){.help-fab{bottom:84px;height:48px;right:16px;width:48px}.help-panel{bottom:148px;right:16px;width:calc(100vw - 32px)}}[data-theme=light] .help-panel{background:#faf9f5fa;border-color:#00000014}[data-theme=light] .help-header{background:linear-gradient(135deg,#6366f114,#4f46e514);border-bottom-color:#00000014}[data-theme=light] .help-title{color:#141413}[data-theme=light] .help-search{background:#ffffffe6;border-color:#0000001f;color:#141413}[data-theme=light] .help-search:focus{border-color:#6366f1}[data-theme=light] .help-search::placeholder{color:#7c7968}[data-theme=light] .help-close-btn{background:#0000000d;color:#7c7968}[data-theme=light] .help-close-btn:hover{background:#0000001a;color:#141413}[data-theme=light] .help-body::-webkit-scrollbar-thumb{background:#00000026}[data-theme=light] .help-summary{color:#2c2b25}[data-theme=light] .help-section-label{color:#7c7968}[data-theme=light] .help-panel kbd{background:#0000000f;border-color:#00000026;color:#d97757}[data-theme=light] .help-desc,[data-theme=light] .help-tips li{color:#2c2b25}[data-theme=light] .help-no-results{color:#7c7968}.help-footer{border-top:1px solid #ffffff0f;color:#ffffff80;font-size:11px;padding:8px 16px;text-align:right}[data-theme=light] .help-footer{border-top-color:#0000000f;color:#0006}.user-sidebar-overlay{background:#00000080;bottom:0;left:0;position:fixed;right:0;top:0;z-index:9998}.user-sidebar{background:var(--color-surface);border-left:1px solid var(--color-border);box-shadow:var(--shadow-2xl);display:flex;flex-direction:column;height:100vh;overflow:hidden;position:fixed;right:-400px;top:0;transition:right .3s cubic-bezier(.4,0,.2,1);width:400px;z-index:9999}.user-sidebar.open{right:0}.user-sidebar-header{align-items:center;background:var(--color-surface-secondary);border-bottom:1px solid var(--color-border);display:flex;justify-content:space-between;padding:var(--space-xl) var(--space-2xl)}.user-sidebar-title{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:1.25rem;font-weight:700;margin:0}.user-sidebar-close{align-items:center;background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;display:flex;font-size:1.5rem;height:32px;justify-content:center;transition:all var(--transition-normal);width:32px}.user-sidebar-close:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary);transform:rotate(90deg)}.user-sidebar-content{flex:1 1;overflow-y:auto;padding:var(--space-2xl)}.user-profile-card{background:var(--color-surface-secondary);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-2xl);overflow:hidden;padding:var(--space-2xl);position:relative;text-align:center}.user-avatar-large{align-items:center;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#fff3;border:3px solid #ffffff4d;border-radius:50%;box-shadow:var(--shadow-md);color:#fff;display:flex;font-size:1.5rem;font-weight:700;height:80px;justify-content:center;margin:0 auto var(--space-lg);width:80px}.user-avatar-large,.user-profile-info{position:relative;z-index:1}.user-profile-name{color:#fff;font-size:1.125rem;font-weight:700}.user-profile-email,.user-profile-name{font-family:Inter,sans-serif;margin:0 0 var(--space-xs) 0}.user-profile-email{color:#ffffffe6;font-size:.875rem}.user-profile-id{color:#ffffffb3;font-family:Courier New,monospace;font-size:.75rem;margin:0}.sidebar-section{margin-bottom:var(--space-2xl)}.sidebar-section-title{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:.875rem;font-weight:700;letter-spacing:.05em;margin:0 0 var(--space-lg) 0;text-transform:uppercase}.info-grid{display:flex;flex-direction:column;gap:var(--space-lg)}.info-item{align-items:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;justify-content:space-between;padding:var(--space-lg)}.info-label{color:var(--color-text-secondary);font-weight:500}.info-label,.info-value{font-family:Inter,sans-serif;font-size:.875rem}.info-value{color:var(--color-text-primary);font-weight:600}.info-value-small{font-family:Courier New,monospace;font-size:.75rem}.auth-badge{background:linear-gradient(135deg,var(--color-primary),var(--color-accent));color:#fff}.auth-badge,.status-badge{align-items:center;border-radius:var(--radius-md);display:inline-flex;font-size:.75rem;font-weight:600;gap:var(--space-xs);padding:var(--space-xs) var(--space-md)}.status-active{background:#0596691a;border:1px solid #0596694d;color:var(--color-accent)}.status-dot{background:var(--color-accent);border-radius:50%;height:6px;width:6px}.access-list{flex-direction:column}.access-item,.access-list{display:flex;gap:var(--space-md)}.access-item{align-items:flex-start;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:var(--space-lg);transition:all var(--transition-normal)}.access-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);transform:translateX(4px)}.access-icon{color:var(--color-accent);flex-shrink:0;margin-top:2px}.access-content{flex:1 1}.access-title{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;margin-bottom:var(--space-xs)}.access-description{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:.75rem}.security-notice{background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);display:flex;gap:var(--space-md);padding:var(--space-lg)}.security-icon{color:var(--color-primary);flex-shrink:0;margin-top:2px}.security-text{flex:1 1}.security-text strong{display:block;font-size:.875rem;font-weight:700;margin-bottom:var(--space-xs)}.security-text p,.security-text strong{color:var(--color-primary);font-family:Inter,sans-serif}.security-text p{font-size:.75rem;line-height:1.4;margin:0}.user-sidebar-footer{background:var(--color-surface-secondary);border-top:1px solid var(--color-border);padding:var(--space-2xl);text-align:center}.sidebar-version{color:var(--color-text-muted);font-family:Courier New,monospace;font-size:.75rem;margin-bottom:var(--space-md)}.sidebar-quota{color:var(--color-text-secondary);font-size:.85rem;padding:var(--space-sm) 0}.btn-logout{align-items:center;background:linear-gradient(135deg,var(--color-error),var(--color-error-hover));border:none;border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);color:#fff;cursor:pointer;display:flex;font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;gap:var(--space-md);justify-content:center;padding:var(--space-lg);transition:all var(--transition-normal);width:100%}.btn-logout:hover{background:linear-gradient(135deg,var(--color-error-hover),#b91c1c);box-shadow:var(--shadow-md);transform:translateY(-2px)}.footer-links{align-items:center;display:flex;font-size:.75rem;gap:var(--space-sm);justify-content:center;margin-top:var(--space-lg)}.footer-link{color:var(--color-text-secondary);font-family:Inter,sans-serif;text-decoration:none;transition:color var(--transition-normal)}.footer-link:hover{color:var(--color-primary)}.footer-separator{color:var(--color-text-muted)}@media (max-width:768px){.user-sidebar{right:-100%;width:100%}}.user-sidebar-content::-webkit-scrollbar{width:8px}.user-sidebar-content::-webkit-scrollbar-track{background:var(--color-surface)}.user-sidebar-content::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:4px}.user-sidebar-content::-webkit-scrollbar-thumb:hover{background:var(--color-border-hover)}[data-theme=light] .user-sidebar-overlay{background:#0000004d}[data-theme=light] .user-sidebar{background:#faf9f5;border-left-color:#d1cfc5}[data-theme=light] .user-sidebar-header{background:#f0eee6;border-bottom-color:#d1cfc5}[data-theme=light] .user-sidebar-title{color:#141413}[data-theme=light] .user-sidebar-close{color:#7c7968}[data-theme=light] .user-sidebar-close:hover{background:#e8e5d9;color:#141413}[data-theme=light] .user-profile-card{background:linear-gradient(135deg,#6366f1,#4f46e5)}[data-theme=light] .user-avatar-large{background:#ffffff40;border-color:#fff6}[data-theme=light] .user-profile-name{color:#fff}[data-theme=light] .user-profile-email{color:#ffffffe6}[data-theme=light] .user-profile-id{color:#ffffffb3}[data-theme=light] .sidebar-section-title{color:#2c2b25}[data-theme=light] .info-item{background:#fff;border-color:#d1cfc5}[data-theme=light] .info-label{color:#7c7968}[data-theme=light] .info-value{color:#141413}[data-theme=light] .access-item{background:#fff;border-color:#d1cfc5}[data-theme=light] .access-item:hover{background:#f0eee6;border-color:#b8b5ab}[data-theme=light] .access-title{color:#141413}[data-theme=light] .access-description,[data-theme=light] .footer-link{color:#7c7968}[data-theme=light] .footer-link:hover{color:#6366f1}[data-theme=light] .footer-separator{color:#a09d92}[data-theme=light] .user-sidebar-content::-webkit-scrollbar-track{background:#f0eee6}[data-theme=light] .user-sidebar-content::-webkit-scrollbar-thumb{background:#b8b5ab}.journey-editor{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);max-height:500px;overflow-y:auto;padding:var(--space-2xl);position:relative}.journey-editor:before{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));border-radius:var(--radius-xl) var(--radius-xl) 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.journey-editor::-webkit-scrollbar{width:6px}.journey-editor::-webkit-scrollbar-track{background:var(--color-surface);border-radius:3px}.journey-editor::-webkit-scrollbar-thumb{background:var(--color-border-hover);border-radius:3px}.journey-editor::-webkit-scrollbar-thumb:hover{background:var(--color-primary)}.journey-editor-header{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2xl);padding-bottom:var(--space-lg)}.journey-editor-header h3{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:1.25rem;font-weight:700;margin:0 0 var(--space-xs) 0}.journey-editor-header p{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:.875rem;margin:0}.journey-editor-empty{background:var(--color-surface-secondary);border:1px dashed var(--color-border);border-radius:var(--radius-lg);color:var(--color-text-muted);padding:var(--space-3xl);text-align:center}.waypoint-list h4{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:1rem;font-weight:600;margin:0 0 var(--space-lg) 0}.waypoint-item{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;margin-bottom:var(--space-md);overflow:hidden;position:relative;transition:all var(--transition-normal)}.waypoint-item:before{background:linear-gradient(90deg,#0000,var(--color-primary-light),#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-normal);width:100%}.waypoint-item:hover:before{left:100%}.waypoint-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);box-shadow:var(--shadow-md)}.waypoint-item.selected{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:var(--shadow-glow)}.waypoint-item-header{align-items:center;display:flex;justify-content:space-between;padding:var(--space-lg) var(--space-xl);position:relative;z-index:1}.waypoint-name{color:var(--color-text-primary);font-family:Inter,sans-serif;font-weight:600}.waypoint-status{align-items:center;display:flex;gap:var(--space-md)}.journey-count{color:var(--color-text-muted);font-family:Inter,sans-serif;font-size:.75rem;font-weight:500}.routing-indicator{color:var(--color-accent);font-size:1rem}.waypoint-details{background:var(--color-surface);border-top:1px solid var(--color-border);padding:var(--space-xl)}.no-journeys{color:var(--color-text-muted);font-family:Inter,sans-serif;font-style:italic;margin:0}.journey-routing{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);margin-bottom:var(--space-xl);padding:var(--space-lg);transition:all var(--transition-normal)}.journey-routing:last-child{margin-bottom:0}.journey-routing:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.journey-header{align-items:center;display:flex;justify-content:space-between;padding:var(--space-md) 0}.journey-header.clickable{border-radius:var(--radius-sm);cursor:pointer;margin:calc(var(--space-md)*-1);padding:var(--space-md);transition:background-color var(--transition-normal)}.journey-header.clickable:hover{background-color:var(--color-surface-hover)}.journey-header-content{align-items:center;display:flex;flex:1 1;gap:var(--space-md)}.expand-indicator{color:var(--color-text-muted);font-size:.8rem;font-weight:600;text-align:center;transition:transform var(--transition-normal);width:12px}.destinations-count{color:var(--color-text-muted);font-family:Inter,sans-serif;font-size:.75rem;font-weight:500;margin-left:auto}.journey-header h5{color:var(--color-text-primary);font-size:.875rem;margin:0}.add-destination-btn,.journey-header h5{font-family:Inter,sans-serif;font-weight:600}.add-destination-btn{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border:none;border-radius:var(--radius-sm);box-shadow:var(--shadow-sm);color:var(--color-text-inverse);cursor:pointer;font-size:.75rem;padding:var(--space-xs) var(--space-md);transition:all var(--transition-normal)}.add-destination-btn:hover{background:linear-gradient(135deg,var(--color-primary-hover),#1e40af);box-shadow:var(--shadow-md);transform:translateY(-1px)}.journey-content{border-left:2px solid var(--color-primary);margin-top:var(--space-md);padding-left:var(--space-xl);position:relative}.journey-content:before{background:linear-gradient(to bottom,var(--color-primary),var(--color-accent));bottom:0;content:"";left:-2px;position:absolute;top:0;width:2px}.destination-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;gap:var(--space-md);margin-bottom:var(--space-md);overflow:hidden;padding:var(--space-lg);position:relative;transition:all var(--transition-normal)}.destination-item:before{background:linear-gradient(90deg,#0000,var(--color-primary-light),#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-normal);width:100%}.destination-item:hover:before{left:100%}.destination-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.destination-select{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);flex:1 1;font-family:Inter,sans-serif;font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);position:relative;transition:all var(--transition-normal);z-index:1}.destination-select:focus{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.percentage-input-group{align-items:center;display:flex;position:relative;z-index:1}.percentage-input{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;padding:var(--space-sm) var(--space-lg) var(--space-sm) var(--space-md);text-align:right;transition:all var(--transition-normal);width:70px}.percentage-input:focus{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.percentage-symbol{color:var(--color-text-muted);font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;pointer-events:none;position:absolute;right:var(--space-sm)}.remove-destination-btn{align-items:center;background:linear-gradient(135deg,var(--color-error),var(--color-error-hover));border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:var(--color-text-inverse);cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:28px;justify-content:center;line-height:1;position:relative;transition:all var(--transition-normal);width:28px;z-index:1}.remove-destination-btn:hover{background:linear-gradient(135deg,var(--color-error-hover),#b91c1c);box-shadow:var(--shadow-md);transform:scale(1.1)}.percentage-total{border-radius:var(--radius-md);font-family:Inter,sans-serif;font-size:.8125rem;font-weight:600;margin-top:var(--space-md);padding:var(--space-md) var(--space-lg);text-align:center;transition:all var(--transition-normal)}.percentage-total.valid{background:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success)}.percentage-total.invalid{background:var(--color-error-light);border:1px solid var(--color-error);color:var(--color-error)}.percentage-warning{font-style:italic;font-weight:500;opacity:.9}@media (max-width:768px){.journey-editor{padding:var(--space-xl)}.waypoint-item-header{padding:var(--space-md) var(--space-lg)}.waypoint-details{padding:var(--space-lg)}.journey-routing{padding:var(--space-md)}.destination-item{align-items:stretch;flex-direction:column;gap:var(--space-sm)}.percentage-input-group,.remove-destination-btn{align-self:center}}@media (max-width:480px){.journey-editor{max-height:400px;padding:var(--space-lg)}.journey-header-content{gap:var(--space-sm)}.destinations-count{display:none}}.journey-assignment-tool{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:var(--space-2xl);overflow:hidden;padding:var(--space-2xl);position:relative}.journey-assignment-tool:before{background:linear-gradient(90deg,var(--color-primary),var(--color-accent));border-radius:var(--radius-xl) var(--radius-xl) 0 0;content:"";height:3px;left:0;position:absolute;right:0;top:0}.journey-assignment-header{border-bottom:1px solid var(--color-border);margin-bottom:var(--space-2xl);padding-bottom:var(--space-lg)}.journey-assignment-header h3{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:1.125rem;font-weight:700;margin:0 0 var(--space-xs) 0}.journey-assignment-header p{color:var(--color-text-secondary);font-family:Inter,sans-serif;font-size:.875rem;margin:0}.journey-selection{margin-bottom:var(--space-xl)}.current-journey{align-items:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;gap:var(--space-md);margin-bottom:var(--space-lg);padding:var(--space-lg);transition:all var(--transition-normal)}.current-journey:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-sm)}.current-journey label{font-weight:600;min-width:100px}.current-journey label,.journey-select{color:var(--color-text-primary);font-family:Inter,sans-serif}.journey-select{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);flex:1 1;font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all var(--transition-normal)}.journey-select:focus{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);outline:none}.journey-select option{background:var(--color-surface);color:var(--color-text-primary)}.journey-color-indicator{border:2px solid var(--color-text-inverse);border-radius:50%;box-shadow:var(--shadow-sm);height:24px;transition:all var(--transition-normal);width:24px}.journey-color-indicator:hover{box-shadow:var(--shadow-md);transform:scale(1.1)}.journey-actions{display:flex;gap:var(--space-md);justify-content:flex-end}.add-journey-btn{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-sm);color:var(--color-text-inverse);cursor:pointer;font-family:Inter,sans-serif;font-size:.875rem;font-weight:600;overflow:hidden;padding:var(--space-md) var(--space-xl);position:relative;transition:all var(--transition-normal)}.add-journey-btn:before{background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-slow);width:100%}.add-journey-btn:hover:before{left:100%}.add-journey-btn:hover{background:linear-gradient(135deg,var(--color-accent-hover),#047857);box-shadow:var(--shadow-md);transform:translateY(-1px)}.journey-list h4{color:var(--color-text-primary);font-family:Inter,sans-serif;font-size:1rem;font-weight:600;margin:0 0 var(--space-lg) 0}.journey-item{align-items:center;background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);display:flex;justify-content:space-between;margin-bottom:var(--space-md);overflow:hidden;padding:var(--space-lg) var(--space-xl);position:relative;transition:all var(--transition-normal)}.journey-item:before{background:linear-gradient(90deg,#0000,var(--color-primary-light),#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-normal);width:100%}.journey-item:hover:before{left:100%}.journey-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);box-shadow:var(--shadow-sm);transform:translateX(2px)}.journey-info{align-items:center;display:flex;gap:var(--space-md);position:relative;z-index:1}.journey-color-dot{border:1px solid var(--color-border);border-radius:50%;box-shadow:var(--shadow-sm);height:16px;transition:all var(--transition-normal);width:16px}.journey-color-dot:hover{box-shadow:var(--shadow-md);transform:scale(1.2)}.journey-name{color:var(--color-text-primary);font-family:Inter,sans-serif;font-weight:600}.connection-count{color:var(--color-text-muted);font-family:Inter,sans-serif;font-size:.75rem;font-weight:500}.delete-journey-btn{align-items:center;background:linear-gradient(135deg,var(--color-error),var(--color-error-hover));border:none;border-radius:50%;box-shadow:var(--shadow-sm);color:var(--color-text-inverse);cursor:pointer;display:flex;font-size:1rem;font-weight:700;height:28px;justify-content:center;line-height:1;position:relative;transition:all var(--transition-normal);width:28px;z-index:1}.delete-journey-btn:hover{background:linear-gradient(135deg,var(--color-error-hover),#b91c1c);box-shadow:var(--shadow-md);transform:scale(1.1)}.journey-instructions{background:var(--color-primary-light);border:1px solid var(--color-primary);border-radius:var(--radius-lg);margin-top:var(--space-2xl);overflow:hidden;padding:var(--space-lg);position:relative}.journey-instructions:before{background:linear-gradient(to bottom,var(--color-primary),var(--color-accent));content:"";height:100%;left:0;position:absolute;top:0;width:4px}.journey-instructions h4{font-size:.875rem;font-weight:700;margin:0 0 var(--space-md) 0;padding-left:var(--space-lg)}.journey-instructions h4,.journey-instructions ol{color:var(--color-primary);font-family:Inter,sans-serif}.journey-instructions ol{font-size:.8125rem;line-height:1.5;margin:0;padding-left:var(--space-3xl)}.journey-instructions li{font-weight:500;margin-bottom:var(--space-xs)}input[type=hidden]{display:none}@media (max-width:768px){.journey-assignment-tool{padding:var(--space-xl)}.current-journey{align-items:stretch;flex-direction:column;gap:var(--space-sm)}.current-journey label{min-width:0;min-width:auto}.journey-actions{justify-content:center}.journey-item{padding:var(--space-md) var(--space-lg)}.journey-instructions{padding:var(--space-md)}.journey-instructions ol{padding-left:var(--space-2xl)}}@media (max-width:480px){.journey-assignment-tool{padding:var(--space-lg)}.journey-info{gap:var(--space-sm)}.connection-count{display:none}.journey-instructions h4{padding-left:var(--space-md)}}.image-control-panel{background:#111113f2;border:1px solid #ffffff1a;border-radius:8px;bottom:120px;box-shadow:0 4px 12px #0000004d;min-width:200px;padding:12px;position:absolute;right:20px;z-index:100}.image-control-header{align-items:center;border-bottom:1px solid #ffffff1a;display:flex;justify-content:space-between;margin-bottom:10px;padding-bottom:8px}.image-control-title{color:#f8fafc;font-size:.85rem;font-weight:600}.image-control-remove{background:#0000;border:none;color:#ef4444;cursor:pointer;font-size:1.2rem;line-height:1;padding:0 4px;transition:color .2s}.image-control-remove:hover{color:#dc2626}.image-control-content{display:flex;flex-direction:column;gap:8px}.image-control-action{background:#3b82f624;border:1px solid #3b82f659;border-radius:6px;color:#bfdbfe;cursor:pointer;font-size:.8rem;padding:8px 10px}.image-control-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(2,minmax(0,1fr))}.image-control-field{color:#cbd5e1;display:flex;flex-direction:column;font-size:.75rem;gap:4px}.image-control-field input{background:#0f172ab3;border:1px solid #94a3b840;border-radius:6px;color:#f8fafc;font-size:.8rem;padding:6px 8px;width:100%}.image-control-checkbox{align-items:center;color:#cbd5e1;cursor:pointer;display:flex;font-size:.875rem;gap:8px;-webkit-user-select:none;user-select:none}.image-control-checkbox input[type=checkbox]{cursor:pointer;height:16px;width:16px}.image-control-name{color:#94a3b8;font-size:.75rem;font-style:italic;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[data-theme=light] .image-control-panel{background:#faf9f5f7;border-color:#d1cfc5;box-shadow:0 4px 12px #00000014}[data-theme=light] .image-control-header{border-bottom-color:#d1cfc5}[data-theme=light] .image-control-title{color:#141413}[data-theme=light] .image-control-checkbox{color:#2c2b25}[data-theme=light] .image-control-action{background:#2563eb14;border-color:#2563eb38;color:#1d4ed8}[data-theme=light] .image-control-field{color:#2c2b25}[data-theme=light] .image-control-field input{background:#fffffff5;border-color:#d1cfc5;color:#141413}[data-theme=light] .image-control-name{color:#7c7968}.performance-monitor{background:#f8f9fa;border-radius:8px;margin:20px;padding:20px}.performance-header{align-items:center;display:flex;justify-content:space-between;margin-bottom:20px}.performance-header h2{color:#333;margin:0}.performance-controls{display:flex;gap:10px}.performance-controls button{border:none;border-radius:4px;cursor:pointer;font-weight:500;padding:8px 16px;transition:background-color .2s}.start-btn{background:#28a745;color:#fff}.stop-btn{background:#dc3545;color:#fff}.performance-controls button:not(.start-btn):not(.stop-btn){background:#007bff;color:#fff}.performance-controls button:hover{opacity:.9}.performance-controls button:disabled{background:#6c757d;cursor:not-allowed}.performance-summary{grid-gap:15px;display:grid;gap:15px;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));margin-bottom:20px}.metric-card{background:#fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;padding:15px}.metric-card h3{color:#495057;font-size:16px;margin:0 0 10px}.metric-card p{color:#6c757d;margin:5px 0}.endpoint-stats{background:#fff;border-radius:6px;box-shadow:0 2px 4px #0000001a;margin-bottom:20px;padding:20px}.endpoint-stats h3{color:#495057;font-size:18px;margin:0 0 15px}.stats-table{overflow-x:auto}.stats-table table{border-collapse:collapse;font-size:14px;width:100%}.stats-table td,.stats-table th{border-bottom:1px solid #dee2e6;color:#000;padding:12px;text-align:left}.stats-table th{border-top:1px solid #dee2e6;color:#000;font-weight:600}.stats-table tbody tr:hover,.stats-table th{background-color:#f8f9fa}.method-cell{color:#000;text-align:center}.method-badge{border-radius:4px;color:#000;font-size:12px;font-weight:600;padding:4px 8px;text-transform:uppercase}.method-badge.get{background-color:#d4edda;color:#155724}.method-badge.post{background-color:#cce7ff;color:#004085}.method-badge.put{background-color:#fff3cd;color:#856404}.method-badge.delete{background-color:#f8d7da;color:#721c24}.high-variance{color:#dc3545;font-weight:600}.low-variance{color:#28a745;font-weight:600}.performance-plot{margin:20px 0;text-align:center}.performance-plot img{border-radius:6px;box-shadow:0 4px 8px #0000001a;height:auto;max-width:100%}.monitoring-status{font-weight:500;margin-top:15px}.monitoring-status .monitoring{color:#28a745}.monitoring-status .stopped{color:#dc3545}*{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:var(--color-background);color:var(--color-text-primary);font-family:var(--font-body);font-weight:400;line-height:1.6;margin:0;padding:0}.welcome-container{background:linear-gradient(135deg,var(--color-background) 0,var(--color-surface) 50%,var(--color-background) 100%);display:flex;flex-direction:column;min-height:100vh;overflow-x:hidden;position:relative}.welcome-container:before{background:radial-gradient(circle at 30% 20%,#3b82f60a 0,#0000 50%),radial-gradient(circle at 70% 80%,#10b98108 0,#0000 50%);bottom:0;content:"";left:0;pointer-events:none;position:absolute;right:0;top:0}.welcome-hero{grid-gap:var(--space-3xl);align-items:center;display:grid;gap:var(--space-3xl);grid-template-columns:1fr 1fr;min-height:100vh;padding:var(--space-3xl) 5%;position:relative;z-index:1}.hero-content{display:flex;flex-direction:column;gap:var(--space-2xl)}.logo-section{text-align:left}.logo-circle{align-items:center;background:linear-gradient(135deg,var(--color-primary) 0,var(--color-accent) 100%);border-radius:50%;box-shadow:var(--shadow-glow);display:flex;height:80px;justify-content:center;margin-bottom:var(--space-xl);overflow:hidden;position:relative;width:80px}.logo-circle:before{animation:shimmer 2s infinite;background:linear-gradient(90deg,#0000,#fff3,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;width:100%}.logo-inner{color:var(--color-text-inverse);font-size:2rem}.hero-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,var(--color-text-primary) 30%,var(--color-text-secondary) 100%);-webkit-background-clip:text;background-clip:text;color:var(--color-text-primary);font-family:var(--font-body);font-size:clamp(2.5rem,5vw,3.5rem);font-weight:700;letter-spacing:-.02em;line-height:1.15;margin:0}.hero-subtitle{color:var(--color-text-tertiary);font-size:clamp(.95rem,1.5vw,1.1rem);font-weight:400;line-height:1.6;margin:var(--space-md) 0 0 0}.hero-actions{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-xl)}.btn{align-items:center;border:none;border-radius:var(--radius-md);cursor:pointer;display:inline-flex;font-family:var(--font-body);font-size:.9rem;font-weight:500;gap:var(--space-sm);height:44px;justify-content:center;overflow:hidden;padding:.75rem 1.5rem;position:relative;text-decoration:none;transition:all var(--transition-normal)}.btn:before{background:linear-gradient(90deg,#0000,#ffffff1a,#0000);content:"";height:100%;left:-100%;position:absolute;top:0;transition:left var(--transition-slow);width:100%}.btn:hover:before{left:100%}.btn-hero-primary{background:var(--color-primary);box-shadow:0 0 12px #3b82f633;color:var(--color-text-inverse);font-weight:600}.btn-hero-primary:hover{background:var(--color-primary-hover);box-shadow:0 0 20px #3b82f64d,var(--shadow-md);transform:translateY(-1px)}.btn-hero-secondary{background:var(--color-surface-secondary);border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-hero-secondary:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.btn-hero-tertiary{background:#0000;color:var(--color-text-tertiary);font-weight:400;padding:.75rem .5rem}.btn-hero-tertiary:hover{color:var(--color-text-secondary)}.btn-hero-tertiary:before{display:none}.hero-features{align-items:center;display:flex;flex-wrap:wrap;gap:var(--space-md)}.hero-feature-item{color:var(--color-text-tertiary);font-size:.8rem;font-weight:400;letter-spacing:.01em}.hero-feature-sep{color:var(--color-border-hover);font-size:.75rem;-webkit-user-select:none;user-select:none}.hero-visual,.simulation-preview{align-items:center;display:flex;justify-content:center}.simulation-preview{max-width:400px;width:100%}.background-dot-grid{background-image:radial-gradient(circle,var(--color-border) .5px,#0000 .5px);background-size:32px 32px;inset:0;opacity:.25;pointer-events:none;position:absolute;z-index:0}.floorplan-svg{stroke:var(--color-text-secondary);display:block;filter:drop-shadow(0 2px 12px rgba(59,130,246,.05));height:auto;max-width:360px;width:100%}[data-theme=light] .floorplan-svg{stroke:var(--color-text-secondary);opacity:.85}@keyframes evacFlow{to{stroke-dashoffset:-14}}.evac-path{stroke-dasharray:8 6;animation:evacFlow 2.2s linear infinite;will-change:stroke-dashoffset}@keyframes agentMove1{0%,to{opacity:.85;transform:translate(0)}50%{opacity:1;transform:translate(8px,4px)}}@keyframes agentMove2{0%,to{opacity:.85;transform:translate(0)}50%{opacity:1;transform:translate(8px,-7px)}}@keyframes agentMove3{0%,to{opacity:.85;transform:translate(0)}50%{opacity:1;transform:translate(7px,-7px)}}@keyframes agentMove4{0%,to{opacity:.85;transform:translate(0)}50%{opacity:1;transform:translate(8px,5px)}}@keyframes agentMove5{0%,to{opacity:.85;transform:translate(0)}50%{opacity:1;transform:translate(8px,2px)}}.agent-dot{will-change:transform,opacity}.agent-dot.a1{animation:agentMove1 3.8s ease-in-out infinite}.agent-dot.a2{animation:agentMove2 4.4s ease-in-out .7s infinite}.agent-dot.a3{animation:agentMove3 4s ease-in-out 1.3s infinite}.agent-dot.a4{animation:agentMove4 4.6s ease-in-out .4s infinite}.agent-dot.a5{animation:agentMove5 3.6s ease-in-out 1.9s infinite}@media (prefers-reduced-motion:reduce){.agent-dot,.evac-path{animation:none}}.agent-1{animation:moveAgent1 4s ease-in-out infinite;left:15%;top:20%}.agent-2{animation:moveAgent2 5s ease-in-out infinite;left:25%;top:40%}.agent-3{animation:moveAgent3 3.5s ease-in-out infinite;left:35%;top:60%}.agent-4{animation:moveAgent4 4.5s ease-in-out infinite;left:65%;top:30%}.agent-5{animation:moveAgent5 3s ease-in-out infinite;left:75%;top:70%}.welcome-content{padding:var(--space-3xl) 5%;position:relative;z-index:1}.content-tabs{margin:0 auto;max-width:1200px}.tabs-nav{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-lg);display:flex;margin-bottom:var(--space-3xl);overflow-x:auto;padding:var(--space-xs)}.tab-button{background:#0000;border:none;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;flex:1 1;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:var(--space-lg) var(--space-xl);transition:all var(--transition-normal);white-space:nowrap}.tab-button:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.tab-button.active{background:linear-gradient(135deg,var(--color-primary) 0,var(--color-primary-hover) 100%);box-shadow:var(--shadow-glow);color:var(--color-text-inverse)}.tab-content-area{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.tab-panel{animation:fadeInUp .3s ease-out;padding:var(--space-3xl)}.section-header{margin-bottom:var(--space-3xl);text-align:center}.section-header h2{color:var(--color-text-primary);font-family:var(--font-body);font-size:2rem;font-weight:700;margin:0 0 var(--space-lg) 0}.section-header p{color:var(--color-text-secondary);font-size:1.125rem;margin:0 auto;max-width:600px}.overview-grid{grid-gap:var(--space-2xl);display:grid;gap:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(300px,1fr));margin-bottom:var(--space-3xl)}.overview-card{background:var(--color-surface-tertiary);border-left:1px solid var(--color-border);border:1px solid var(--color-border);border-left-width:3px;border-radius:var(--radius-lg);padding:var(--space-2xl);position:relative;text-align:left;transition:all var(--transition-normal)}.overview-card.border-blue{border-left-color:#3b82f6}.overview-card.border-green{border-left-color:#10b981}.overview-card.border-purple{border-left-color:#8b5cf6}.overview-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-3px)}.overview-card.border-blue:hover{border-left-color:#3b82f6}.overview-card.border-green:hover{border-left-color:#10b981}.overview-card.border-purple:hover{border-left-color:#8b5cf6}.overview-card h3{align-items:center;color:var(--color-text-primary);display:flex;font-family:var(--font-body);font-size:1.1rem;font-weight:600;gap:8px;margin:0 0 var(--space-md) 0}.overview-card p{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6;margin:0}.applications-section{text-align:center}.applications-section h3{color:var(--color-text-primary);font-family:var(--font-body);font-size:1.5rem;font-weight:600;margin-bottom:var(--space-xl)}.applications-grid{grid-gap:var(--space-lg);display:grid;gap:var(--space-lg);grid-template-columns:repeat(auto-fit,minmax(200px,1fr))}.application-item{align-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-secondary);display:flex;font-size:.875rem;font-weight:500;justify-content:center;padding:var(--space-md) var(--space-lg);text-align:center;transition:all var(--transition-normal)}.application-item:hover{background:var(--color-surface-tertiary);border-color:var(--color-primary);box-shadow:var(--shadow-md);color:var(--color-text-primary);transform:translateY(-2px)}.features-grid{grid-gap:var(--space-2xl);display:grid;gap:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}.feature-card{background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;padding:var(--space-2xl);position:relative;transition:all var(--transition-normal)}.feature-card:before{content:"";height:3px;left:0;position:absolute;right:0;top:0}.feature-card.primary:before{background:linear-gradient(90deg,var(--color-primary),var(--color-primary-hover))}.feature-card.secondary:before{background:linear-gradient(90deg,var(--color-accent),var(--color-accent-hover))}.feature-card.accent:before{background:linear-gradient(90deg,var(--color-secondary),var(--color-secondary-hover))}.feature-card.success:before{background:linear-gradient(90deg,var(--color-success),#16a34a)}.feature-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-header{align-items:center;display:flex;gap:var(--space-lg);margin-bottom:var(--space-xl)}.feature-header .icon{color:var(--color-primary);font-size:1.5rem}.feature-header h3{color:var(--color-text-primary);font-family:var(--font-body);font-size:1.125rem;font-weight:600;margin:0}.feature-card ul{list-style:none;margin:0;padding:0}.feature-card li{align-items:center;color:var(--color-text-secondary);display:flex;font-size:.875rem;gap:var(--space-sm);padding:var(--space-sm) 0}.feature-card li:before{color:var(--color-primary);content:"→";font-weight:700}.workflow-steps{margin:0 auto;max-width:800px}.workflow-step{display:flex;gap:var(--space-2xl);margin-bottom:var(--space-3xl);position:relative}.workflow-step:not(:last-child):after{background:linear-gradient(180deg,var(--color-primary),var(--color-accent));bottom:-3rem;content:"";left:30px;opacity:.3;position:absolute;top:60px;width:2px}.step-number{align-items:center;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));border-radius:50%;box-shadow:var(--shadow-glow);color:var(--color-text-inverse);display:flex;flex-shrink:0;font-size:1.25rem;font-weight:700;height:60px;justify-content:center;width:60px}.step-content{flex:1 1;padding-top:var(--space-sm)}.step-content h3{color:var(--color-text-primary);font-family:var(--font-body);font-size:1.25rem;font-weight:600;margin:0 0 var(--space-md) 0}.step-content p{color:var(--color-text-secondary);line-height:1.6;margin:0 0 var(--space-lg) 0}.step-tools{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.tool-tag{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-size:.75rem;font-weight:500;padding:var(--space-xs) var(--space-sm)}.models-grid{grid-gap:var(--space-2xl);display:grid;gap:var(--space-2xl);grid-template-columns:repeat(auto-fit,minmax(350px,1fr))}.model-card{background:var(--color-surface-tertiary);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden;padding:var(--space-2xl);position:relative;transition:all var(--transition-normal)}.model-card:hover{border-color:var(--color-border-hover);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.model-header{align-items:center;display:flex;gap:var(--space-lg);margin-bottom:var(--space-lg)}.model-indicator{border-radius:50%;height:12px;width:12px}.model-card.speed .model-indicator{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover))}.model-card.force .model-indicator{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover))}.model-card.centrifugal .model-indicator{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-hover))}.model-header h3{color:var(--color-text-primary);font-family:var(--font-body);font-size:1.125rem;font-weight:600;margin:0}.model-description{color:var(--color-text-secondary);font-size:.875rem;line-height:1.6;margin:0 0 var(--space-lg) 0}.model-features{display:flex;flex-wrap:wrap;gap:var(--space-sm)}.feature-tag{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);color:var(--color-text-tertiary);font-size:.75rem;font-weight:500;padding:var(--space-xs) var(--space-sm)}.welcome-footer{background:var(--color-surface-secondary);margin-top:var(--space-3xl);padding:var(--space-3xl) 5%;position:relative;z-index:1}.footer-copyright,.welcome-footer{border-top:1px solid var(--color-border)}.footer-copyright{color:var(--color-text-tertiary);display:flex;flex-direction:column;font-family:Inter,sans-serif;font-size:.78rem;gap:var(--space-xs);margin:var(--space-xl) auto 0;max-width:1200px;padding-top:var(--space-lg)}.footer-copyright-row{align-items:center;display:flex;gap:var(--space-sm)}.footer-copyright-sep{opacity:.4}.footer-copyright-link{color:var(--color-text-tertiary);text-decoration:none}.footer-copyright-link:hover{color:var(--color-text-secondary);text-decoration:underline}.footer-version{opacity:.7}.footer-content{align-items:center;display:flex;gap:var(--space-2xl);justify-content:space-between;margin:0 auto;max-width:1200px}.footer-info h4{color:var(--color-text-primary);font-family:var(--font-body);font-size:1.5rem;font-weight:600;margin:0 0 var(--space-sm) 0}.footer-info p{color:var(--color-text-secondary);font-size:1rem;margin:0}.footer-actions{display:flex;gap:var(--space-lg)}.btn-footer-primary{background:var(--color-primary);box-shadow:0 0 12px #3b82f626;color:var(--color-text-inverse)}.btn-footer-primary:hover{background:var(--color-primary-hover);box-shadow:0 0 20px #3b82f640,var(--shadow-md);transform:translateY(-1px)}.btn-footer-secondary{background:var(--color-surface-tertiary);border:1px solid var(--color-border);color:var(--color-text-primary)}.btn-footer-secondary:hover{background:var(--color-surface-elevated);border-color:var(--color-border-hover);box-shadow:var(--shadow-md);transform:translateY(-1px)}.icon{align-items:center;display:inline-flex;justify-content:center}@keyframes shimmer{0%{left:-100%}to{left:100%}}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes moveAgent1{0%,to{transform:translate(0)}25%{transform:translate(50px,-20px)}50%{transform:translate(100px,10px)}75%{transform:translate(120px,40px)}}@keyframes moveAgent2{0%,to{transform:translate(0)}33%{transform:translate(60px,-30px)}66%{transform:translate(90px,20px)}}@keyframes moveAgent3{0%,to{transform:translate(0)}50%{transform:translate(80px,-40px)}}@keyframes moveAgent4{0%,to{transform:translate(0)}25%{transform:translate(-40px,30px)}50%{transform:translate(-80px,10px)}75%{transform:translate(-60px,-20px)}}@keyframes moveAgent5{0%,to{transform:translate(0)}40%{transform:translate(-50px,-30px)}80%{transform:translate(-90px,10px)}}@media (max-width:1024px){.welcome-hero{gap:var(--space-2xl);grid-template-columns:1fr;padding:var(--space-2xl) 5%}.logo-section,.welcome-hero{text-align:center}.hero-actions{justify-content:center}.simulation-preview{height:250px;width:250px}.footer-content{flex-direction:column;text-align:center}.footer-actions{justify-content:center}}@media (max-width:768px){.tabs-nav{flex-direction:column;gap:var(--space-xs)}.tab-button{text-align:center}.tab-panel{padding:var(--space-xl)}.features-grid,.models-grid,.overview-grid{grid-template-columns:1fr}.workflow-step{flex-direction:column;gap:var(--space-lg);text-align:center}.workflow-step:after{display:none}.step-number{margin:0 auto}.applications-grid{grid-template-columns:1fr}.hero-actions{flex-direction:column;width:100%}.btn{margin:0 auto;max-width:300px;width:100%}.btn-hero-tertiary{max-width:none;width:auto}.hero-features{justify-content:center}.footer-actions{flex-direction:column;width:100%}}.welcome-nav{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:var(--glass-bg);border-bottom:1px solid var(--glass-border);box-shadow:var(--glass-shadow);left:0;padding:var(--space-lg) 0;position:fixed;right:0;top:0;z-index:1000}.nav-content{gap:var(--space-2xl);justify-content:space-between;margin:0 auto;max-width:1400px;padding:0 5%}.nav-brand,.nav-content{align-items:center;display:flex}.nav-wordmark{filter:brightness(0) invert(1) opacity(.9);height:28px;width:auto}[data-theme=light] .nav-wordmark{filter:none}.nav-links{display:flex;gap:var(--space-xl)}.nav-links button{background:none;border:none;border-radius:var(--radius-sm);color:var(--color-text-secondary);cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-md);transition:all var(--transition-normal)}.nav-links button:hover{background:var(--color-surface-tertiary);color:var(--color-text-primary)}.nav-actions{display:flex;gap:var(--space-md)}.nav-btn-secondary{background:var(--color-surface-secondary);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text-primary);cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:500;padding:var(--space-sm) var(--space-lg);transition:all var(--transition-normal)}.nav-btn-secondary:hover{background:var(--color-surface-tertiary);border-color:var(--color-border-hover)}.nav-btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));border:none;border-radius:var(--radius-md);box-shadow:var(--shadow-glow);color:var(--color-text-inverse);cursor:pointer;font-family:var(--font-body);font-size:.875rem;font-weight:600;padding:var(--space-sm) var(--space-lg);transition:all var(--transition-normal)}.nav-btn-primary:hover{background:linear-gradient(135deg,var(--color-primary-hover),#1e40af);box-shadow:0 0 20px #3b82f666;transform:translateY(-1px)}.welcome-hero{padding-bottom:var(--space-3xl);padding-top:calc(var(--space-3xl) + 80px)}.welcome-content{background:linear-gradient(180deg,#0000 0,var(--color-surface-secondary) 100%);margin-top:var(--space-3xl);padding:var(--space-3xl) 5% calc(var(--space-3xl)*2)}.tab-content-area{background:var(--color-surface);box-shadow:var(--shadow-xl);transform:scale(1.02)}.tab-panel{min-height:600px;padding:calc(var(--space-3xl)*1.5)}.section-header h2{font-size:2.5rem}.section-header p{font-size:1.25rem}@media (max-width:768px){.nav-content{flex-wrap:wrap;gap:var(--space-lg)}.nav-links{gap:var(--space-md);justify-content:center;order:3;width:100%}.nav-actions{gap:var(--space-sm)}.nav-btn-primary,.nav-btn-secondary{font-size:.8125rem;padding:var(--space-xs) var(--space-md)}.welcome-hero{padding-top:calc(var(--space-2xl) + 120px)}}.welcome-content{background:linear-gradient(180deg,#0000 0,var(--color-surface-secondary) 30%,var(--color-surface) 100%);margin-top:calc(var(--space-3xl)*2);padding:calc(var(--space-3xl)*2) 5% calc(var(--space-3xl)*3)}.content-tabs{max-width:1600px}.tab-content-area{margin:var(--space-2xl) 0;transform:scale(1.05)}.tab-panel{min-height:800px;padding:calc(var(--space-3xl)*2)}.section-header{margin-bottom:calc(var(--space-3xl)*2)}.section-header h2{font-size:3rem;margin-bottom:var(--space-2xl)}.section-header p{font-size:1.375rem;max-width:800px}.preview-distribution{background:#22c55e26;border:2px dashed #22c55e99;height:50px;left:15%;position:relative;top:15%;width:80px}.preview-exit{background:#ef444426;border:2px dashed #ef444499;bottom:15%;height:40px;position:relative;right:15%;width:70px}.area-border{animation:rotateBorder 8s linear infinite;border:1px dashed #fff3;border-radius:var(--radius-md);bottom:-4px;left:-4px;position:absolute;right:-4px;top:-4px}.distribution-label,.exit-label{color:#fff;font-size:.75rem;font-weight:600;position:relative;text-shadow:0 1px 2px #00000080;z-index:1}.features-grid,.models-grid,.overview-grid{gap:calc(var(--space-2xl)*1.5)}.feature-card,.model-card,.overview-card{padding:calc(var(--space-2xl)*1.5)}.applications-grid{gap:var(--space-xl);margin-top:var(--space-2xl)}.workflow-steps{max-width:1000px}.workflow-step{margin-bottom:calc(var(--space-3xl)*1.5)}@keyframes rotateBorder{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}html{scroll-behavior:smooth}.nav-links button.active{background:var(--color-primary-light);color:var(--color-primary)}@media (max-width:1200px){.tab-content-area{transform:scale(1.02)}.section-header h2{font-size:2.5rem}.tab-panel{min-height:600px;padding:var(--space-3xl)}}@media (max-width:768px){.welcome-content{padding:var(--space-3xl) 5%}.tab-content-area{transform:none}.section-header h2{font-size:2rem}.section-header p{font-size:1.125rem}.tab-panel{min-height:500px;padding:var(--space-xl)}}.background-blobs{height:100vh;left:0;overflow:hidden;pointer-events:none;position:fixed;top:0;width:100vw;z-index:0}.moving-blob{border-radius:50%;filter:blur(60px);opacity:.15;position:absolute}.blob-1{animation:floatBlob1 15s ease-in-out infinite;background:linear-gradient(135deg,var(--color-primary),var(--color-accent));height:200px;left:5%;top:10%;width:200px}.blob-2{animation:floatBlob2 18s ease-in-out infinite;background:linear-gradient(135deg,var(--color-accent),var(--color-success));height:150px;right:10%;top:70%;width:150px}.blob-3{animation:floatBlob3 20s ease-in-out infinite;background:linear-gradient(135deg,var(--color-secondary),var(--color-primary));bottom:20%;height:180px;left:15%;width:180px}.blob-4{animation:floatBlob4 16s ease-in-out infinite;background:linear-gradient(135deg,var(--color-success),var(--color-accent));height:120px;right:25%;top:40%;width:120px}.blob-5{animation:floatBlob5 22s ease-in-out infinite;background:linear-gradient(135deg,var(--color-primary),var(--color-secondary));height:160px;left:60%;top:20%;width:160px}.simulation-preview{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);background:var(--glass-bg);border:1px solid var(--glass-border);border-radius:var(--radius-2xl);box-shadow:var(--glass-shadow);height:500px;overflow:hidden;position:relative;width:500px}.simulation-preview:before{background:linear-gradient(45deg,#0000 49%,var(--color-border) 49%,var(--color-border) 51%,#0000 51%),linear-gradient(-45deg,#0000 49%,var(--color-border) 49%,var(--color-border) 51%,#0000 51%);background-size:25px 25px;bottom:0;content:"";left:0;opacity:.1;position:absolute;right:0;top:0}.preview-elements{height:100%;position:relative;width:100%;z-index:1}.preview-distribution{animation:pulseGlow 3s ease-in-out infinite;background:#22c55e33;border:2px dashed #22c55ecc;border-radius:var(--radius-md);height:60px;left:12%;top:12%;width:100px}.preview-distribution,.preview-exit{align-items:center;display:flex;justify-content:center;position:absolute;z-index:2}.preview-exit{animation:pulseGlow 3s ease-in-out 1.5s infinite;background:#ef444433;border:2px dashed #ef4444cc;border-radius:var(--radius-md);bottom:12%;height:50px;right:12%;width:90px}@keyframes floatBlob1{0%,to{transform:translate(0) rotate(0deg) scale(1)}25%{transform:translate(100px,-50px) rotate(90deg) scale(1.1)}50%{transform:translate(200px,50px) rotate(180deg) scale(.9)}75%{transform:translate(50px,100px) rotate(270deg) scale(1.05)}}@keyframes floatBlob2{0%,to{transform:translate(0) rotate(0deg) scale(1)}33%{transform:translate(-80px,-40px) rotate(120deg) scale(1.15)}66%{transform:translate(60px,-80px) rotate(240deg) scale(.85)}}@keyframes floatBlob3{0%,to{transform:translate(0) scale(1) rotate(0deg)}50%{transform:translate(-120px,-100px) scale(1.2) rotate(180deg)}}@keyframes floatBlob4{0%,to{transform:translate(0) rotate(0deg)}25%{transform:translate(-60px,80px) rotate(45deg)}50%{transform:translate(40px,120px) rotate(180deg)}75%{transform:translate(80px,-40px) rotate(315deg)}}@keyframes floatBlob5{0%,to{transform:translate(0) scale(1)}20%{transform:translate(70px,60px) scale(1.1)}40%{transform:translate(-40px,120px) scale(.9)}60%{transform:translate(-100px,-30px) scale(1.15)}80%{transform:translate(30px,-80px) scale(.95)}}@keyframes pulseGlow{0%,to{border-color:#22c55ecc;box-shadow:0 0 20px #22c55e66;transform:scale(1)}50%{border-color:#22c55e;box-shadow:0 0 35px #22c55eb3;transform:scale(1.05)}}.preview-exit{animation:pulseGlowRed 3s ease-in-out 1.5s infinite}@keyframes pulseGlowRed{0%,to{border-color:#ef4444cc;box-shadow:0 0 20px #ef444466;transform:scale(1)}50%{border-color:#ef4444;box-shadow:0 0 35px #ef4444b3;transform:scale(1.05)}}.welcome-content,.welcome-footer,.welcome-hero,.welcome-nav{position:relative;z-index:1}@media (max-width:1024px){.simulation-preview{height:400px;width:400px}.moving-blob{filter:blur(40px);opacity:.1}}@media (max-width:768px){.simulation-preview{height:350px;width:350px}.preview-distribution{height:50px;width:80px}.preview-exit{height:40px;width:70px}.moving-blob{filter:blur(30px);opacity:.08}.blob-1,.blob-2,.blob-3,.blob-4,.blob-5{height:100px;width:100px}}[data-theme=light] .welcome-container{background:linear-gradient(135deg,#faf9f5,#f0eee6)}[data-theme=light] .hero-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#141413 30%,#4a4940);-webkit-background-clip:text;background-clip:text}[data-theme=light] .hero-subtitle{color:#5c5a50}[data-theme=light] .tabs-nav{background:#f0eee6}[data-theme=light] .tab-button{color:#7c7968}[data-theme=light] .tab-button:hover{background:#e8e5d9;color:#141413}[data-theme=light] .tab-button.active{background:linear-gradient(135deg,#6366f1,#4f46e5);color:#fff}[data-theme=light] .tab-content-area{background:#faf9f5;border-color:#d1cfc5}[data-theme=light] .section-header h2{color:#141413}[data-theme=light] .section-header p{color:#2c2b25}[data-theme=light] .feature-card{background:#fff;border-color:#d1cfc5}[data-theme=light] .feature-card:hover{background:#f0eee6;border-color:#b8b5ab}[data-theme=light] .feature-card h3{color:#141413}[data-theme=light] .feature-card p{color:#2c2b25}.auth-container{align-items:center;background:linear-gradient(135deg,#111113,#1a1a1f);bottom:0;display:flex;justify-content:center;left:0;position:fixed;right:0;top:0;z-index:10000}.auth-card{background:#111113f2;border:1px solid #ffffff1a;border-radius:16px;box-shadow:0 20px 60px #00000080;max-width:480px;padding:48px;width:90%}.auth-header{margin-bottom:32px;text-align:center}.auth-header h1{color:#f8fafc;font-size:2rem;font-weight:700;margin:0 0 8px}.auth-header p{color:#94a3b8;font-size:1rem;margin:0}.auth-content{display:flex;flex-direction:column;gap:32px}.auth-info h2{color:#f8fafc;font-size:1.5rem;margin:0 0 16px}.auth-info p{color:#cbd5e1;line-height:1.6;margin:0 0 20px}.feature-list{list-style:none;margin:0;padding:0}.feature-list li{color:#94a3b8;padding:8px 0 8px 28px;position:relative}.feature-list li:before{color:#6366f1;content:"✓";font-weight:700;left:0;position:absolute}.btn-login-helmholtz{align-items:center;background:#6366f1;border:none;border-radius:8px;color:#fff;cursor:pointer;display:flex;font-size:1rem;font-weight:600;gap:12px;justify-content:center;padding:16px 24px;transition:all .2s;width:100%}.btn-login-helmholtz:hover{background:#4f46e5;box-shadow:0 8px 24px #6366f166;transform:translateY(-2px)}.auth-footer-text{color:#64748b;font-size:.875rem;margin:0;text-align:center}.auth-loading{padding:48px 24px;text-align:center}.spinner{animation:spin 1s linear infinite;border:4px solid #6366f11a;border-radius:50%;border-top-color:#6366f1;height:48px;margin:0 auto 24px;width:48px}@keyframes spin{to{transform:rotate(1turn)}}.auth-loading p{color:#cbd5e1;font-size:1rem}.auth-error{padding:24px;text-align:center}.auth-error h2{color:#ef4444;font-size:1.5rem;margin:0 0 16px}.auth-error p{color:#cbd5e1;margin:0 0 24px}.user-menu{position:relative;z-index:1000}.user-menu-button{align-items:center;background:#ffffff0d;border:1px solid #ffffff1a;border-radius:8px;color:#f8fafc;cursor:pointer;display:flex;gap:8px;padding:8px 12px;transition:all .2s}.user-menu-button:hover{background:#ffffff14;border-color:#fff3}.user-avatar{align-items:center;background:linear-gradient(135deg,#6366f1,#8b5cf6);border-radius:50%;display:flex;font-size:.875rem;font-weight:600;height:32px;justify-content:center;width:32px}.user-name{font-size:.875rem;font-weight:500}.user-menu-dropdown{background:#111113fa;border:1px solid #ffffff1a;border-radius:8px;box-shadow:0 8px 24px #00000080;min-width:240px;overflow:hidden;position:absolute;right:0;top:calc(100% + 8px)}.user-menu-header{padding:16px}.user-menu-info{display:flex;flex-direction:column;gap:4px}.user-menu-name{color:#f8fafc;font-size:.875rem;font-weight:600}.user-menu-email{color:#94a3b8;font-size:.75rem}.user-menu-divider{background:#ffffff1a;height:1px}.user-menu-item{align-items:center;background:#0000;border:none;color:#f8fafc;cursor:pointer;display:flex;font-size:.875rem;gap:12px;padding:12px 16px;text-align:left;transition:background .2s;width:100%}.user-menu-item:hover{background:#ffffff0d}.user-menu-item svg{opacity:.7}
/*# sourceMappingURL=main.24554404.css.map*/