@import"https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600&display=swap";:root{--bg-app: #0c0d14;--bg-pane: #131520;--bg-pane-hover: #191c2b;--bg-card: #181b28;--bg-card-hover: #202436;--border-subtle: rgba(255, 255, 255, .08);--border-focus: rgba(139, 92, 246, .5);--accent-primary: #7c3aed;--accent-primary-hover: #8b5cf6;--accent-primary-glow: rgba(124, 58, 237, .35);--accent-secondary: #06b6d4;--accent-warning: #f59e0b;--accent-danger: #ef4444;--accent-success: #10b981;--text-main: #f3f4f6;--text-sub: #9ca3af;--text-muted: #6b7280;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--bg-dark: #0c0d14;--bg-panel: #131520;--border-color: rgba(255, 255, 255, .08);--border-bright: rgba(255, 255, 255, .16);--text-dim: #6b7280;--color-cond-char: #a855f7;--color-cond-char-bg: rgba(168, 85, 247, .15);--color-cond-item: #10b981;--color-cond-item-bg: rgba(16, 185, 129, .15);--color-cond-map: #f59e0b;--color-cond-map-bg: rgba(245, 158, 11, .15);--color-cond-ach: #ef4444;--color-cond-ach-bg: rgba(239, 68, 68, .15);--color-event-card: #181b28;--color-event-border: rgba(255, 255, 255, .12);--color-edge-active: #10b981;--color-edge-inactive: #475569;--color-edge-effect: #38bdf8;--color-edge-not: #f59e0b}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0;-webkit-user-select:none;user-select:none}body,html{font-family:var(--font-sans);background-color:var(--bg-app);color:var(--text-main);height:100vh;width:100vw;overflow:hidden;display:flex;flex-direction:column;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#ffffff1f;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#ffffff40}.top-header{height:52px;background:var(--bg-pane);border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between;padding:0 16px;z-index:100;flex-shrink:0}.brand-section{display:flex;align-items:center;gap:12px}.brand-logo{font-size:22px;filter:drop-shadow(0 0 8px var(--accent-primary-glow))}.brand-title{font-size:15px;font-weight:700;letter-spacing:-.2px;background:linear-gradient(135deg,#fff 40%,#a78bfa);-webkit-background-clip:text;-webkit-text-fill-color:transparent}.breadcrumb{font-size:11px;color:var(--text-muted);font-family:var(--font-mono);background:#ffffff0a;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.mode-switcher{display:flex;background:#00000073;padding:3px;border-radius:var(--radius-md);border:1px solid var(--border-subtle);gap:4px}.mode-btn{background:transparent;border:1px solid transparent;color:var(--text-sub);padding:5px 14px;font-size:12px;font-weight:500;border-radius:var(--radius-sm);cursor:pointer;transition:all .18s ease;display:flex;align-items:center;gap:6px}.mode-btn:hover{color:var(--text-main);background:#ffffff0d}.mode-btn.active{background:var(--bg-card);color:#fff;border-color:#7c3aed99;box-shadow:0 0 12px #7c3aed59;font-weight:600}.header-actions{display:flex;align-items:center;gap:8px}.preset-select{background:var(--bg-card);color:var(--text-main);border:1px solid var(--border-subtle);padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;outline:none;cursor:pointer;transition:border-color .15s ease}.preset-select:hover{border-color:#fff3}.btn-icon{background:var(--bg-card);border:1px solid var(--border-subtle);color:var(--text-main);padding:5px 10px;border-radius:var(--radius-sm);font-size:12px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .15s ease}.btn-icon:hover{background:var(--bg-card-hover);border-color:#fff3}.btn-icon:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}.save-status-badge{font-family:var(--font-mono);font-size:11px;padding:4px 10px;border-radius:12px;font-weight:600;display:inline-flex;align-items:center;gap:4px;transition:all .3s ease;-webkit-user-select:none;user-select:none}.save-status-badge.saved{background:#10b98126;color:#10b981;border:1px solid rgba(16,185,129,.3)}.save-status-badge.dirty,.save-status-badge.saving{background:#f59e0b26;color:#f59e0b;border:1px solid rgba(245,158,11,.3)}.save-status-badge.error{background:#ef444426;color:#ef4444;border:1px solid rgba(239,68,68,.3)}.main-container{flex:1;display:flex;position:relative;min-height:0;overflow:hidden;background:radial-gradient(circle at 50% 50%,#151724,#0c0d14)}.left-sidebar{width:290px;min-width:200px;max-width:520px;background:var(--bg-pane);display:flex;flex-direction:column;z-index:10;overflow-y:auto;flex-shrink:0}.right-sidebar{width:380px;min-width:260px;max-width:800px;background:var(--bg-pane);display:flex;flex-direction:column;z-index:10;overflow:hidden;flex-shrink:0}.column-splitter{width:8px;position:relative;cursor:col-resize;background:transparent;flex-shrink:0;z-index:20;display:flex;align-items:center;justify-content:center;transition:background-color .15s ease;-webkit-user-select:none;user-select:none}.column-splitter:before{content:"";position:absolute;top:0;bottom:0;left:3px;width:2px;background:var(--border-subtle);transition:all .15s ease}.column-splitter:hover,.column-splitter.is-active{background:#7c3aed26}.column-splitter:hover:before,.column-splitter.is-active:before{background:var(--accent-primary);width:3px;left:2px;box-shadow:0 0 8px var(--accent-primary-glow)}.splitter-handle{width:4px;height:30px;border-radius:2px;background:#ffffff38;transition:all .15s ease;z-index:1}.column-splitter:hover .splitter-handle,.column-splitter.is-active .splitter-handle{background:#fff;height:44px;box-shadow:0 0 6px #fffc}body.is-resizing{cursor:col-resize!important;-webkit-user-select:none!important;user-select:none!important}.panel-header{padding:12px 16px;background:#00000040;border-bottom:1px solid var(--border-subtle);display:flex;align-items:center;justify-content:space-between}.inspector-scroll-container{flex:1;padding:14px;overflow-y:auto;display:flex;flex-direction:column;gap:12px}.inspector-section{background:var(--bg-card);border:1px solid var(--border-color);border-radius:10px;padding:14px}.empty-inspector{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:60px 20px}.graph-viewport{flex:1;position:relative;overflow:hidden;background-color:var(--bg-dark);background-image:radial-gradient(circle,rgba(255,255,255,.08) 1px,transparent 1px);background-size:24px 24px;cursor:grab}.graph-viewport:active{cursor:grabbing}.graph-canvas{position:absolute;top:0;left:0;transform-origin:0 0;width:3000px;height:2000px}.svg-layer{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:10}.edge-path{fill:none;stroke-width:2.2;transition:stroke .3s ease,stroke-width .3s ease}.edge-path.active{stroke:var(--color-edge-active);filter:drop-shadow(0 0 4px rgba(16,185,129,.6));stroke-dasharray:8 4;animation:flowLine 20s linear infinite}.edge-path.inactive{stroke:var(--color-edge-inactive);stroke-dasharray:5 4;opacity:.7}.edge-path.effect{stroke:var(--color-edge-effect);stroke-dasharray:6 3}.edge-path.effect.active{stroke:#38bdf8;filter:drop-shadow(0 0 5px rgba(56,189,248,.8))}.edge-path.focal-edge{stroke:#38bdf8!important;stroke-width:3.5!important;filter:drop-shadow(0 0 8px rgba(56,189,248,.9))!important;opacity:1!important;animation:flowLine 10s linear infinite!important}@keyframes flowLine{to{stroke-dashoffset:-1000}}.edge-label-container{position:absolute;top:0;left:0;width:100%;height:100%;pointer-events:none;z-index:15}.edge-badge{position:absolute;transform:translate(-50%,-50%);background:#0f172a;border:1px solid #334155;color:#94a3b8;font-size:11px;padding:2px 7px;border-radius:10px;white-space:nowrap;pointer-events:auto;box-shadow:0 2px 6px #0006}.edge-badge.active{border-color:#10b981;color:#6ee7b7}.edge-badge.not-badge{border-color:#f59e0b;color:#fcd34d;background:#f59e0b26;font-weight:600}.edge-badge.focal-badge{background:#0f172a!important;border-color:#38bdf8!important;color:#e0f2fe!important;font-weight:700!important;box-shadow:0 0 10px #38bdf880!important;opacity:1!important}.nodes-layer{position:absolute;top:0;left:0;width:100%;height:100%;z-index:20;pointer-events:none}.graph-node{position:absolute;pointer-events:auto;cursor:pointer;transition:transform .15s ease,box-shadow .2s ease,border-color .2s ease}.graph-node:hover{transform:translateY(-2px);z-index:50!important}.graph-node.selected{outline:2px solid #3b82f6!important;box-shadow:0 0 16px #3b82f6b3!important}.compact-node{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:20px;white-space:nowrap;box-shadow:0 4px 12px #0006}.node-title{font-size:13px;font-weight:600;color:#fff;letter-spacing:.3px}.condition-node{border-radius:18px;background:#0d1527;border:1.5px solid #6366f1}.condition-node.satisfied{border-color:#10b981;background:#10b98126;box-shadow:0 0 16px #10b98173}.condition-node.unsatisfied{border-color:#475569;border-style:dashed;opacity:.6}.condition-node.failed{border-color:var(--color-cond-ach);background:#ef444426;box-shadow:0 0 14px #ef444459}.cond-status-led{width:9px;height:9px;border-radius:50%;background:#4b5563;flex-shrink:0;transition:all .3s}.condition-node.satisfied .cond-status-led{background:#10b981;box-shadow:0 0 8px #10b981}.condition-node.failed .cond-status-led{background:#ef4444;box-shadow:0 0 8px #ef4444}.event-node{background:var(--color-event-card);border:1.5px solid var(--color-event-border);border-radius:10px}.event-node.available{border-color:#3b82f6!important;background:#1e293b!important;opacity:1!important;box-shadow:0 0 16px #3b82f666!important;cursor:pointer}.event-node.available .node-title{color:#fff!important}.event-node.available .status-dot{background:#10b981!important;box-shadow:0 0 8px #10b981!important}.event-node.completed{border-color:#10b981!important;background:#1e293b!important;opacity:1!important}.event-node.locked{border-color:#273549!important;background:#090d16!important;opacity:.35!important;border-style:dashed!important;box-shadow:none!important}.event-node.locked .node-title{color:#64748b!important}.event-node.locked .status-dot{background:#334155!important;box-shadow:none!important}.event-node.gate-locked{border-color:#f59e0b!important;background:#f59e0b0d!important;opacity:.45!important;border-style:dashed!important;box-shadow:none!important}.event-node.gate-locked .node-title{color:#fbbf24!important}.event-node.gate-locked .status-dot{background:#f59e0b!important;box-shadow:0 0 6px #f59e0b!important}.event-status-pill{font-size:10px;font-weight:600;padding:1px 6px;border-radius:4px;background:#0000004d}.status-green{color:#34d399}.status-amber{color:#fbbf24}.status-red{color:#f87171}.status-blue{color:#60a5fa}.status-grey{color:#94a3b8}.region-node.available{background:linear-gradient(135deg,#1e293b,#0f172a)!important;border:2px solid #38bdf8!important;border-radius:12px;box-shadow:0 0 18px #38bdf84d!important;opacity:1!important}.region-node.locked{background:#090d16!important;border:1.5px dashed #334155!important;border-radius:12px;box-shadow:none!important;opacity:.35!important}.region-node.locked .node-title{color:#64748b!important}.graph-node.focal-center{outline:2.5px solid #38bdf8!important;box-shadow:0 0 24px #38bdf8cc!important;transform:scale(1.06);z-index:60!important}.graph-node.focal-neighbor{outline:1.5px solid #10b981!important;box-shadow:0 0 16px #10b98180!important;opacity:1!important;z-index:40!important}.focal-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:100;display:flex;align-items:center;gap:14px;background:#0f172af0;border:1.5px solid #38bdf8;box-shadow:0 8px 32px #0009,0 0 20px #38bdf84d;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);padding:8px 18px;border-radius:30px;pointer-events:auto;animation:fadeInBanner .25s ease-out}@keyframes fadeInBanner{0%{opacity:0;transform:translate(-50%,-10px)}to{opacity:1;transform:translate(-50%)}}.focal-banner.hidden{display:none!important}.back-main-btn{background:#1e293b;border:1px solid #475569;color:#f1f5f9;font-size:12px;font-weight:600;padding:5px 12px;border-radius:20px;cursor:pointer;display:flex;align-items:center;gap:6px;transition:all .2s}.back-main-btn:hover{background:#334155;border-color:#38bdf8;color:#38bdf8;box-shadow:0 0 12px #38bdf866}.focal-info{display:flex;align-items:center;gap:8px}.focal-tag{font-size:10px;font-weight:700;text-transform:uppercase;color:#38bdf8;background:#38bdf826;padding:2px 8px;border-radius:12px;border:1px solid rgba(56,189,248,.3)}.focal-title{font-size:13px;font-weight:700;color:#fff}.focal-status-pill{font-size:11px}.focal-meta{display:flex;align-items:center;gap:10px;font-size:11px;color:#94a3b8;border-left:1px solid #334155;padding-left:12px}.kbd-hint{background:#1e293b;border:1px solid #475569;padding:1px 6px;border-radius:4px;font-size:10px;color:#cbd5e1}.focal-placeholder-card{position:absolute;background:#0f172a99;border:1.5px dashed #334155;border-radius:10px;padding:8px 14px;font-size:12px;color:#64748b;pointer-events:none;white-space:nowrap}.focal-center-node{outline:2.5px solid #38bdf8!important;box-shadow:0 0 24px #38bdf8cc!important;transform:scale(1.05)}.graph-context-menu{position:fixed;z-index:1000;background:#111827;border:1px solid #3b82f6;border-radius:8px;box-shadow:0 10px 25px #0009,0 0 15px #3b82f64d;padding:4px;min-width:190px;animation:fadeIn .12s ease-out}.ctx-header{font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:#64748b;padding:4px 10px 2px;font-weight:700}.ctx-item{padding:8px 12px;font-size:12px;color:#f3f4f6;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.ctx-item:hover{background:#2563eb;color:#fff}.ctx-item.ctx-danger{color:#f87171!important}.ctx-item.ctx-danger:hover{background:#ef444438!important;color:#fca5a5!important}.ctx-divider{height:1px;background:#1f2937;margin:4px 0}.node-port{position:absolute;width:14px;height:14px;border-radius:50%;background:#0f172a;border:2px solid #38bdf8;cursor:crosshair;z-index:25;transition:transform .15s,background .15s,box-shadow .15s}.node-port:hover,.node-port.port-active{background:#38bdf8;box-shadow:0 0 10px #38bdf8cc}.port-out{right:-7px;top:50%;transform:translateY(-50%)}.port-out[data-side=left],.port-out-left{left:-7px!important;right:auto!important;top:50%;transform:translateY(-50%)}.port-out[data-side=right],.port-out-right{right:-7px!important;left:auto!important;top:50%;transform:translateY(-50%)}.port-out[data-side=top]{top:-7px!important;bottom:auto!important;left:50%;right:auto!important;transform:translate(-50%)}.port-out[data-side=bottom]{bottom:-7px!important;top:auto!important;left:50%;right:auto!important;transform:translate(-50%)}.port-in{left:-7px;border-color:#10b981}.port-in:hover{background:#10b981;box-shadow:0 0 10px #10b981cc}.port-in.port-in-empty{border-style:dashed!important;opacity:.45;background:#10b98126}.port-in.port-in-empty:hover{opacity:1;border-style:solid!important;background:#10b981}.edge-path.hover-highlight{stroke:#34d399!important;stroke-width:3.6!important;filter:drop-shadow(0 0 12px rgba(52,211,153,.95))!important}.connecting-banner{position:absolute;top:14px;left:50%;transform:translate(-50%);z-index:120;display:flex;align-items:center;gap:12px;background:#0f172af2;border:1.5px solid #38bdf8;box-shadow:0 8px 32px #000000b3,0 0 20px #38bdf866;color:#e0f2fe;font-size:13px;font-weight:600;padding:8px 18px;border-radius:30px;animation:fadeIn .15s ease-out}.wire-rubberband{fill:none;stroke:#38bdf8;stroke-width:2.8;stroke-dasharray:7 4;animation:rubberbandFlow .8s linear infinite;filter:drop-shadow(0 0 8px rgba(56,189,248,.75));pointer-events:none;transition:stroke .15s ease,stroke-width .15s ease}@keyframes rubberbandFlow{0%{stroke-dashoffset:22}to{stroke-dashoffset:0}}.wire-rubberband.snapped{stroke:#10b981!important;stroke-width:3.5!important;stroke-dasharray:none!important;animation:none!important;filter:drop-shadow(0 0 12px rgba(16,185,129,.95))!important}.snap-target-hover{outline:2.5px solid #10b981!important;box-shadow:0 0 24px #10b981a6!important;transition:box-shadow .12s ease,outline .12s ease}.snap-port-hover{transform:translateY(-50%) scale(1.65)!important;background:#10b981!important;box-shadow:0 0 16px #10b981!important}.wire-drop-menu{position:absolute;z-index:250;background:#0f172af5;border:1px solid rgba(56,189,248,.6);box-shadow:0 12px 36px #000c,0 0 20px #38bdf84d;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:10px;padding:6px;min-width:220px;display:flex;flex-direction:column;gap:4px;animation:dropMenuPop .15s cubic-bezier(.16,1,.3,1);font-family:var(--font-sans)}@keyframes dropMenuPop{0%{opacity:0;transform:scale(.92) translateY(-6px)}to{opacity:1;transform:scale(1) translateY(0)}}.wire-drop-header{font-size:11px;color:#94a3b8;padding:4px 8px;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:2px;display:flex;align-items:center;justify-content:space-between}.wire-drop-item{display:flex;align-items:center;gap:8px;padding:7px 10px;font-size:12px;font-weight:500;color:#f1f5f9;border-radius:6px;cursor:pointer;transition:all .12s ease}.wire-drop-item:hover{background:#38bdf838;color:#38bdf8;transform:translate(2px)}.btn-draggable-node{cursor:grab!important;position:relative;-webkit-user-select:none;user-select:none;transition:transform .15s ease,background .15s ease,border-color .15s ease,box-shadow .15s ease}.btn-draggable-node:hover{transform:translateY(-1px);border-color:#8b5cf666;box-shadow:0 2px 10px #00000059}.btn-draggable-node:active,.btn-draggable-node.dragging{cursor:grabbing!important;transform:translateY(1px) scale(.97);opacity:.65;border-style:dashed}.node-drag-ghost{position:fixed;z-index:100000;pointer-events:none;transform:translate(-50%,-50%) scale(1.04);box-shadow:0 12px 28px #000000b3,0 0 20px #7c3aed73;transition:opacity .15s ease,border-color .15s ease,box-shadow .15s ease,transform .08s ease;-webkit-user-select:none;user-select:none;display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:20px;white-space:nowrap;font-family:var(--font-sans);opacity:.88}.node-drag-ghost.ghost-condition{background:#0d1527;border:1.5px solid #6366f1;color:#fff}.node-drag-ghost.ghost-event{background:#1e293b;border:1.5px solid #3b82f6;color:#fff}.node-drag-ghost .ghost-hint-badge{font-size:11px;padding:2px 8px;border-radius:10px;background:#ffffff1f;color:#94a3b8;margin-left:6px;display:inline-flex;align-items:center;gap:4px;font-family:var(--font-mono);transition:all .2s ease}.node-drag-ghost.is-inside-canvas{opacity:1;border-color:#10b981!important;box-shadow:0 14px 36px #000000bf,0 0 24px #10b9818c!important;transform:translate(-50%,-50%) scale(1.08)}.node-drag-ghost.is-inside-canvas .ghost-hint-badge{background:#10b98140;color:#34d399;font-weight:600;border:1px solid rgba(16,185,129,.4)}.graph-viewport.canvas-drag-receiving{outline:2px dashed rgba(16,185,129,.6)!important;outline-offset:-3px;box-shadow:inset 0 0 50px #10b98114!important}@keyframes nodeSpawnPop{0%{transform:scale(.6);box-shadow:0 0 #10b981e6}60%{transform:scale(1.08);box-shadow:0 0 25px 8px #10b98180}to{transform:scale(1);box-shadow:0 4px 12px #0006}}.node-spawn-pulse{animation:nodeSpawnPop .4s cubic-bezier(.175,.885,.32,1.275) forwards!important;z-index:100!important}@keyframes sourceNodePulse{0%{box-shadow:0 0 #38bdf800}30%{box-shadow:0 0 24px #38bdf8f2,0 0 48px #0ea5e98c;border-color:#38bdf8!important}to{box-shadow:0 0 #38bdf800}}.source-pulse{animation:sourceNodePulse 1.2s cubic-bezier(.16,1,.3,1)!important;z-index:60!important}@keyframes condSatisfiedPop{0%{transform:scale(1);box-shadow:0 0 #10b98100}30%{transform:scale(1.08);box-shadow:0 0 28px #10b981f2,0 0 55px #34d39999;border-color:#10b981!important}60%{transform:scale(.98)}to{transform:scale(1)}}.cond-satisfied-pop{animation:condSatisfiedPop 1.2s cubic-bezier(.16,1,.3,1)!important;z-index:55!important}@keyframes unlockShake{0%{transform:scale(1)}20%{transform:scale(1.08) rotate(-1.5deg)}40%{transform:scale(1.08) rotate(1.5deg)}60%{transform:scale(1.04) rotate(-.8deg)}80%{transform:scale(1.02) rotate(.8deg)}to{transform:scale(1) rotate(0)}}.unlock-shake{animation:unlockShake 1s cubic-bezier(.16,1,.3,1)!important;z-index:65!important}.unlock-burst-ring{position:absolute;top:-6px;right:-6px;bottom:-6px;left:-6px;border-radius:12px;border:3px solid #10b981;pointer-events:none;animation:unlockBurstRingAnim .9s cubic-bezier(.1,.9,.2,1) forwards;z-index:40}@keyframes unlockBurstRingAnim{0%{transform:scale(.96);opacity:1;border-color:#34d399;box-shadow:0 0 15px #10b981d9}to{transform:scale(1.35);opacity:0;border-color:#10b981;box-shadow:0 0 35px #10b98100}}@keyframes pillUnlockedGlow{0%{box-shadow:0 0 #10b98100}30%{box-shadow:0 0 16px #10b981f2;transform:scale(1.12)}to{box-shadow:0 0 #10b98100;transform:scale(1)}}.pill-unlocked-glow{animation:pillUnlockedGlow 1.2s cubic-bezier(.16,1,.3,1)!important}.domino-toast{position:absolute;left:50%;transform:translate(-50%);bottom:calc(100% + 8px);background:#0f172af2;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(56,189,248,.6);border-radius:20px;padding:4px 12px;font-size:11px;font-weight:600;color:#f8fafc;white-space:nowrap;pointer-events:none;z-index:300;display:flex;align-items:center;gap:6px;box-shadow:0 4px 20px #00000080,0 0 12px #38bdf866;animation:dominoToastFloat 2.2s cubic-bezier(.16,1,.3,1) forwards}.domino-toast.source-toast{border-color:#38bdf8d9;box-shadow:0 4px 20px #00000080,0 0 16px #38bdf88c;color:#e0f2fe}.domino-toast.cond-toast{border-color:#34d399d9;box-shadow:0 4px 20px #00000080,0 0 16px #34d3998c;color:#a7f3d0}.domino-toast.unlock-toast{border-color:#10b981f2;box-shadow:0 4px 25px #0009,0 0 20px #10b981a6;color:#ecfdf5;font-weight:700}@keyframes dominoToastFloat{0%{opacity:0;transform:translate(-50%,8px) scale(.85)}15%{opacity:1;transform:translate(-50%,-2px) scale(1.05)}25%{transform:translate(-50%) scale(1)}80%{opacity:1;transform:translate(-50%,-6px) scale(1)}to{opacity:0;transform:translate(-50%,-22px) scale(.95)}}.domino-edge-beam{fill:none;stroke:#34d399;stroke-width:4px;stroke-linecap:round;pointer-events:none;filter:drop-shadow(0 0 6px #10b981) drop-shadow(0 0 14px #34d399);z-index:25}.domino-edge-beam.source-to-cond-beam{stroke:#38bdf8;filter:drop-shadow(0 0 8px #38bdf8) drop-shadow(0 0 16px #0284c7)}.var-item-glow{animation:varItemGlow 1.4s cubic-bezier(.16,1,.3,1)!important}@keyframes varItemGlow{0%{transform:scale(1);box-shadow:0 0 #10b98100}25%{transform:scale(1.06);box-shadow:0 0 18px #10b981e6;border-color:#10b981!important}to{transform:scale(1);box-shadow:0 0 #10b98100}}.selection-marquee{position:absolute;border:1.5px dashed #38bdf8;background:#38bdf81f;pointer-events:none;z-index:1000;border-radius:4px;box-shadow:0 0 12px #38bdf840;display:none}.sub-node{position:absolute;background:#111422;border-radius:10px;border:1px solid rgba(255,255,255,.12);color:#f8fafc;font-family:var(--font-sans);cursor:grab;-webkit-user-select:none;user-select:none;box-shadow:0 8px 24px #00000073;transition:box-shadow .15s ease,border-color .15s ease;min-width:180px}.sub-node:hover{border-color:#ffffff4d;box-shadow:0 10px 28px #0009}.sub-node.selected{outline:2px solid #a855f7;outline-offset:2px;box-shadow:0 0 20px #a855f780!important}.sub-node-header{padding:8px 12px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid rgba(255,255,255,.08);font-size:13px;font-weight:700;gap:8px}.sub-node.start-node{min-width:130px;border-color:#38bdf880;background:linear-gradient(135deg,#0c1a2e,#082f49)}.sub-node.start-node .sub-node-header{border-bottom:none;padding:10px 14px}.sub-node.action-node{min-width:210px;max-width:280px;border-color:#10b98166;background:#0d1e1c}.sub-node.action-node .sub-node-header{background:#10b9811f;color:#34d399}.sub-node.action-node .action-steps-preview{padding:8px 12px;display:flex;flex-direction:column;gap:5px;font-size:11px}.step-preview-item{color:#cbd5e1;background:#00000040;padding:3px 6px;border-radius:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sub-node.selector-node{min-width:220px;border-color:#a855f766;background:#17112b}.sub-node.selector-node .sub-node-header{background:#a855f726;color:#c084fc}.sub-node.choice-node{min-width:230px;max-width:320px;border-color:#f59e0b66;background:#1d1810}.sub-node.choice-node .sub-node-header{background:#f59e0b26;color:#fbbf24}.choice-speech-quote{padding:8px 12px 6px;font-size:11px;color:#e2e8f0;line-height:1.4;border-bottom:1px dashed rgba(255,255,255,.08);font-style:italic}.sub-node-rows{padding:6px 0;display:flex;flex-direction:column;gap:3px}.sub-node-row{display:flex;align-items:center;justify-content:space-between;padding:4px 10px;font-size:11px;position:relative;transition:background .12s ease}.sub-node-row:hover{background:#ffffff0d}.sub-node-row.default-row{border-top:1px solid rgba(255,255,255,.06);margin-top:2px;padding-top:6px;color:#94a3b8}.sub-node .node-port{position:absolute;width:12px;height:12px;border-radius:50%;border:2px solid #ffffff;z-index:5;cursor:crosshair;transition:transform .15s ease,box-shadow .15s ease}.sub-node .node-port:hover{transform:scale(1.35);box-shadow:0 0 10px #38bdf8}.sub-node .port-in{left:-7px;top:50%;transform:translateY(-50%);background:#38bdf8}.sub-node .port-in:hover{transform:translateY(-50%) scale(1.35)}.sub-node .port-out{right:-7px;top:50%;transform:translateY(-50%);background:#10b981}.sub-node .port-out:hover{transform:translateY(-50%) scale(1.35)}.sub-node-row .port-out{right:-7px;top:50%;transform:translateY(-50%);background:#f59e0b}.sub-node-row .port-out:hover{transform:translateY(-50%) scale(1.35)}.node-drag-ghost.ghost-action{background:#0d1e1c;border:1.5px solid #10b981;color:#fff}.node-drag-ghost.ghost-selector{background:#17112b;border:1.5px solid #a855f7;color:#fff}.node-drag-ghost.ghost-choice{background:#1d1810;border:1.5px solid #f59e0b;color:#fff}.panel-section{padding:14px;border-bottom:1px solid var(--border-color)}.panel-title{font-size:12px;font-weight:700;text-transform:uppercase;color:var(--text-muted);letter-spacing:.5px;margin-bottom:10px;display:flex;align-items:center;justify-content:space-between}.hero-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.stat-item{background:var(--bg-card);padding:8px 10px;border-radius:8px;border:1px solid var(--border-color)}.stat-label{font-size:11px;color:var(--text-muted);margin-bottom:2px}.stat-val-row{display:flex;align-items:baseline;justify-content:space-between}.stat-value{font-size:15px;font-weight:700;color:#fff}.hp-bar-wrap{width:100%;height:5px;background:#374151;border-radius:3px;margin-top:5px;overflow:hidden}.hp-bar-fill{height:100%;background:#10b981;transition:width .3s}.stat-btn-group{display:flex;gap:3px}.stat-btn-group .mini-btn{background:#374151;border:none;color:#fff;width:18px;height:18px;border-radius:3px;font-size:10px;cursor:pointer}.stat-btn-group .mini-btn:hover{background:#4b5563}.party-list{display:flex;flex-direction:column;gap:6px}.party-item{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:var(--bg-card);border-radius:8px;border:1px solid var(--border-color)}.party-item.active{border-color:#a855f7;background:#a855f71a}.switch{position:relative;display:inline-block;width:36px;height:18px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background-color:#4b5563;transition:.3s;border-radius:18px}.slider:before{position:absolute;content:"";height:12px;width:12px;left:3px;bottom:3px;background-color:#fff;transition:.3s;border-radius:50%}input:checked+.slider{background-color:#10b981}input:checked+.slider:before{transform:translate(18px)}.items-grid{display:grid;grid-template-columns:1fr;gap:6px}.item-badge{display:flex;align-items:center;justify-content:space-between;padding:7px 10px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;cursor:pointer;transition:all .2s}.item-badge.owned{border-color:#10b981;background:#10b9811f;color:#6ee7b7}.achievement-item{padding:7px 10px;background:var(--bg-card);border:1px solid var(--border-color);border-radius:8px;margin-bottom:6px;display:flex;justify-content:space-between;align-items:center}.ach-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px}.ach-badge.active{background:#10b98133;color:#34d399}.ach-badge.failed{background:#ef444433;color:#f87171}.log-box{background:#090d16;border:1px solid #1e293b;border-radius:6px;padding:8px;height:140px;overflow-y:auto;font-family:monospace;font-size:11px;color:#94a3b8;display:flex;flex-direction:column;gap:4px}.log-entry{line-height:1.4;word-break:break-all}.log-entry.highlight{color:#38bdf8}.inspector-label{font-size:11px;font-weight:700;color:#94a3b8;margin-bottom:8px;text-transform:uppercase;letter-spacing:.5px}.event-type-badge{font-size:10px;font-weight:700;padding:2px 6px;border-radius:4px;background:#334155;color:#cbd5e1}.cell-step-card{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:10px;margin-bottom:8px}.edge-info-card{background:#0f172a;border:1px solid #334155;border-radius:6px;padding:8px 10px}.inspector-scroll-container input[type=text],.inspector-scroll-container input[type=number],.inspector-scroll-container select,.inspector-scroll-container textarea,.dark-input,.inspector-input,.inspector-textarea{background:#0b0d17!important;border:1px solid rgba(255,255,255,.12)!important;color:#f8fafc!important;border-radius:6px!important;padding:6px 8px!important;font-family:inherit!important;font-size:12px!important;outline:none!important;box-sizing:border-box!important;min-width:0!important;transition:border-color .15s ease,box-shadow .15s ease,background .15s ease!important}.inspector-scroll-container input[type=text]:focus,.inspector-scroll-container input[type=number]:focus,.inspector-scroll-container select:focus,.inspector-scroll-container textarea:focus,.dark-input:focus,.inspector-input:focus,.inspector-textarea:focus{border-color:#7c3aed!important;box-shadow:0 0 0 2px #7c3aed59!important;background:#141829!important}.inspector-input{width:100%!important;display:block!important;box-sizing:border-box!important}.inspector-textarea{width:100%!important;display:block!important;box-sizing:border-box!important;resize:vertical;min-height:52px}.inspector-scroll-container select{cursor:pointer}.mini-btn,.mini-btn-action,.btn-xs,.step-add-pill,.btn-del-branch,.btn-del-step,.btn-view-var{white-space:nowrap!important;flex-shrink:0!important;-webkit-user-select:none!important;user-select:none!important}.mini-btn{background:#ffffff0d;border:1px solid rgba(255,255,255,.12);color:#cbd5e1;border-radius:4px;padding:3px 8px;font-size:11px;font-weight:500;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;justify-content:center;line-height:1.2}.mini-btn:hover{background:#ffffff1f;border-color:#ffffff40;color:#fff}.mini-btn:disabled{opacity:.35;cursor:not-allowed}.mini-btn-action{background:#1e293b;border:1px solid #3b82f6;color:#60a5fa;font-size:11px;font-weight:600;padding:4px 10px;border-radius:6px;cursor:pointer;transition:all .2s;display:inline-flex;align-items:center;gap:4px}.mini-btn-action:hover{background:#2563eb;color:#fff;box-shadow:0 0 8px #2563eb80}.danger-btn{background:#ef444426;color:#f87171!important;border:1px solid rgba(239,68,68,.35);transition:all .15s ease}.danger-btn:hover{background:#ef444447!important;border-color:#ef4444a6!important;color:#fca5a5!important;box-shadow:0 0 8px #ef444459}.step-add-toolbar{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:10px}.step-add-pill{display:inline-flex;align-items:center;justify-content:center;gap:4px;background:#ffffff0a;border:1px dashed rgba(255,255,255,.16);color:var(--text-sub);border-radius:6px;padding:6px 4px;font-size:11px;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.step-add-pill:hover{background:#7c3aed29;border-color:#7c3aed;border-style:solid;color:#fff;box-shadow:0 0 8px #7c3aed4d}.branch-card{background:#111422!important;border:1px solid rgba(255,255,255,.08)!important;border-radius:8px!important;padding:12px!important;margin-bottom:10px!important;transition:border-color .2s ease,box-shadow .2s ease}.branch-card.active-branch{border-color:#10b981!important;box-shadow:0 0 12px #10b98133!important}.step-card{background:#0b0d17!important;border:1px solid rgba(255,255,255,.06)!important;border-radius:6px!important;padding:10px!important;margin-top:8px!important}.btn-node-delete{background:#ef44441a;border:1px solid rgba(239,68,68,.3);color:#f87171;font-size:11px;font-weight:500;padding:3px 8px;border-radius:5px;cursor:pointer;display:inline-flex;align-items:center;gap:5px;line-height:1.2;transition:all .15s ease;-webkit-user-select:none;user-select:none;width:auto!important;height:auto!important}.btn-node-delete:hover{background:#ef444438;border-color:#ef444499;color:#fca5a5;box-shadow:0 0 10px #ef444459;transform:translateY(-1px)}.btn-node-delete:active{transform:translateY(0);background:#ef444459}.btn-node-delete svg{flex-shrink:0;stroke:currentColor;transition:transform .15s ease}.btn-node-delete:hover svg{transform:rotate(-10deg)}.disabled-btn{background:#1e293b;color:#64748b;cursor:not-allowed;border-color:#334155}.entity-rel-list{display:flex;flex-direction:column;gap:8px}.rel-dialog-card{background:#0f172a;border:1px solid #334155;border-radius:8px;padding:10px 12px;transition:all .2s}.rel-dialog-card:hover{border-color:#60a5fa;background:#131c2e}.party-item:hover,.item-badge:hover,.achievement-item:hover{border-color:#60a5fa!important;background:#3b82f614!important}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000b3;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.dialog-overlay.show{opacity:1;pointer-events:auto}.rpg-dialog-box,.rpg-dialog{width:540px;background:#0f172a;border:2px solid #3b82f6;border-radius:14px;box-shadow:0 0 30px #3b82f659;display:flex;flex-direction:column;overflow:hidden;animation:dialogPop .2s ease-out}@keyframes dialogPop{0%{transform:scale(.92);opacity:0}to{transform:scale(1);opacity:1}}.dialog-header{padding:12px 18px;background:#1e293b;display:flex;align-items:center;gap:12px;border-bottom:1px solid #334155}.dialog-avatar,.speaker-avatar{font-size:26px;width:42px;height:42px;background:#0f172a;border:1px solid #475569;border-radius:10px;display:flex;align-items:center;justify-content:center}.dialog-speaker-name,.speaker-name{font-size:15px;font-weight:700;color:#f8fafc}.dialog-speaker-title,.speaker-title{font-size:11px;color:#94a3b8}.dialog-body{padding:18px;font-size:14px;line-height:1.6;color:#e2e8f0;min-height:80px;white-space:pre-wrap}.dialog-footer{padding:12px 18px;background:#0b1120;border-top:1px solid #1e293b;display:flex;justify-content:flex-end;gap:10px}.dialog-btn{padding:7px 16px;border-radius:7px;font-size:13px;font-weight:600;cursor:pointer;border:1px solid transparent;transition:all .2s}.primary-btn{background:#2563eb;color:#fff;border-color:#3b82f6}.primary-btn:hover{background:#1d4ed8;box-shadow:0 0 12px #2563eb80}.secondary-btn{background:#334155;color:#cbd5e1;border-color:#475569}.secondary-btn:hover{background:#475569}.dialog-btn.default-choice-btn{border:2px solid #38bdf8!important;box-shadow:0 0 14px #38bdf899!important;position:relative}.dialog-btn.default-choice-btn:after{content:"★ 默认";position:absolute;top:-9px;right:6px;font-size:9px;background:#0284c7;color:#fff;padding:0 5px;border-radius:8px;line-height:14px}.var-modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#000000bf;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:1050;display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .2s ease}.var-modal-overlay.show{opacity:1;pointer-events:auto}.var-modal-box{width:580px;max-width:95vw;max-height:90vh;background:#0f172a;border:1.5px solid #38bdf8;border-radius:14px;box-shadow:0 0 35px #38bdf840,0 20px 40px #000c;display:flex;flex-direction:column;overflow:hidden;animation:dialogPop .2s ease-out}.var-modal-header{padding:14px 20px;background:#1e293b;border-bottom:1px solid #334155;display:flex;align-items:center;justify-content:space-between}.var-modal-title{font-size:16px;font-weight:700;color:#f8fafc;display:flex;align-items:center;gap:8px}.var-modal-close-btn{background:transparent;border:none;color:#94a3b8;font-size:18px;cursor:pointer;padding:4px 8px;border-radius:6px;line-height:1;transition:all .15s}.var-modal-close-btn:hover{background:#334155;color:#f8fafc}.var-modal-body{padding:18px 20px;overflow-y:auto;display:flex;flex-direction:column;gap:16px}.var-category-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.var-cat-card{background:#1e293b;border:1.5px solid #334155;border-radius:10px;padding:12px 14px;cursor:pointer;display:flex;align-items:center;gap:12px;transition:all .18s ease;position:relative}.var-cat-card:hover{border-color:#64748b;background:#243247;transform:translateY(-1px)}.var-cat-card.active{border-color:#38bdf8;background:#38bdf81f;box-shadow:0 0 16px #38bdf840}.var-cat-icon{font-size:26px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:#0f172a;border-radius:8px;border:1px solid #334155}.var-cat-card.active .var-cat-icon{border-color:#38bdf8;background:#38bdf833}.var-cat-info{flex:1;min-width:0}.var-cat-name{font-size:13px;font-weight:700;color:#f1f5f9;display:flex;align-items:center;gap:6px}.var-cat-desc{font-size:11px;color:#94a3b8;margin-top:2px;line-height:1.3}.var-cat-card .var-cat-badge{font-size:9px;font-family:monospace;background:#334155;color:#94a3b8;padding:1px 5px;border-radius:4px}.var-cat-card.active .var-cat-badge{background:#0284c7;color:#e0f2fe}.var-form-group{display:flex;flex-direction:column;gap:6px}.var-form-label{font-size:12px;font-weight:600;color:#cbd5e1;display:flex;align-items:center;gap:6px}.var-form-input,.var-form-textarea{background:#0f172a;border:1px solid #334155;border-radius:6px;color:#f8fafc;padding:8px 12px;font-size:13px;outline:none;transition:border-color .15s,box-shadow .15s;width:100%;box-sizing:border-box}.var-form-input:focus,.var-form-textarea:focus{border-color:#38bdf8;box-shadow:0 0 8px #38bdf84d}.var-key-input-wrap{display:flex;align-items:stretch}.var-key-prefix{background:#1e293b;border:1px solid #334155;border-right:none;border-radius:6px 0 0 6px;padding:8px 10px;font-size:12px;color:#38bdf8;font-family:monospace;font-weight:600;display:flex;align-items:center;-webkit-user-select:none;user-select:none}.var-key-input-wrap .var-form-input{border-radius:0 6px 6px 0;font-family:monospace}.var-emoji-presets{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px}.var-emoji-btn{background:#1e293b;border:1px solid #334155;border-radius:6px;font-size:16px;width:32px;height:32px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .15s}.var-emoji-btn:hover{background:#334155;transform:scale(1.15)}.var-emoji-btn.active{border-color:#38bdf8;background:#38bdf833}.var-modal-footer{padding:12px 20px;background:#0b1120;border-top:1px solid #1e293b;display:flex;justify-content:flex-end;gap:10px}
