@import"https://fonts.googleapis.com/css2?family=Inter:ital,wght@0,400;0,500;0,600&display=swap";:root{--bg: #f5f5f5;--surface: #ffffff;--surface-sub: #fafafa;--border: rgba(0,0,0,.08);--border-mid: rgba(0,0,0,.12);--text: #0a0a0a;--text-2: #737373;--text-3: #a3a3a3;--accent: #0a0a0a;--accent-fg: #ffffff;--blue: #2563eb;--blue-soft: #eff6ff;--ring: 0 0 0 3px rgba(37,99,235,.18);--ok: #16a34a;--ok-bg: #f0fdf4;--warn: #d97706;--warn-bg: #fffbeb;--danger: #dc2626;--danger-bg: #fef2f2;--neutral: #737373;--gold: #d97706;--canvas: #fdfdfd;--fs-xs: 11px;--fs-sm: 12px;--fs-base: 13px;--fs-md: 14px;--fs-lg: 15px;--fs-xl: 20px;--fs-2xl: 26px;--font: "Inter", system-ui, -apple-system, sans-serif;--mono: "SFMono-Regular", Consolas, monospace;--r: 6px;--r-lg: 10px;--r-xl: 14px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgba(0,0,0,.05);--shadow: 0 1px 3px rgba(0,0,0,.08), 0 1px 2px rgba(0,0,0,.04);--shadow-lg: 0 8px 24px rgba(0,0,0,.1), 0 2px 6px rgba(0,0,0,.05);--shadow-xl: 0 20px 40px rgba(0,0,0,.12), 0 4px 10px rgba(0,0,0,.06);font-family:var(--font);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;height:100%}body{background:var(--bg);font-size:var(--fs-base);color:var(--text);line-height:1.5}button,input,select,textarea{font-family:var(--font)}button:disabled{opacity:.35;cursor:not-allowed;pointer-events:none}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--ring)}.app{display:flex;flex-direction:column;height:100vh;overflow:hidden}.toolbar{display:flex;align-items:center;gap:8px;height:52px;padding:0 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;z-index:20}.toolbar-brand{font-size:var(--fs-base);font-weight:600;color:var(--text);letter-spacing:-.2px;white-space:nowrap}.toolbar-spacer{flex:1}.toolbar-sep{width:1px;height:18px;background:var(--border-mid);flex-shrink:0;margin:0 2px}.diagram-name{font-size:var(--fs-base);font-weight:500;height:32px;border:1px solid transparent;border-radius:var(--r);padding:0 8px;min-width:200px;background:transparent;color:var(--text);transition:border-color .12s,background .12s}.diagram-name:hover{border-color:var(--border-mid);background:var(--surface-sub)}.diagram-name:focus{border-color:var(--border-mid);background:var(--surface);outline:none;box-shadow:var(--ring)}.diagram-name::placeholder{color:var(--text-3);font-weight:400}.toolbar-group{display:flex;gap:2px;align-items:center}.btn{font-size:var(--fs-base);font-weight:500;display:inline-flex;align-items:center;gap:5px;height:32px;border:1px solid var(--border-mid);background:var(--surface);color:var(--text);padding:0 12px;border-radius:var(--r);cursor:pointer;white-space:nowrap;letter-spacing:-.1px;transition:background .1s,border-color .1s,box-shadow .1s,transform 60ms;position:relative}.btn:hover:not(:disabled){background:var(--surface-sub)}.btn:active:not(:disabled){transform:scale(.975)}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-fg);box-shadow:0 1px 2px #0003}.btn.primary:hover:not(:disabled){background:#1a1a1a;border-color:#1a1a1a}.btn.danger{color:var(--danger);background:transparent;border-color:transparent}.btn.danger:hover:not(:disabled){background:var(--danger-bg);border-color:#dc262626}.btn.danger-ghost{color:var(--danger);background:transparent;border-color:transparent}.btn.danger-ghost:hover:not(:disabled){background:var(--danger-bg)}.btn.subtle{border-color:transparent;background:transparent;color:var(--text-2)}.btn.subtle:hover:not(:disabled){background:var(--surface-sub);color:var(--text);border-color:var(--border)}.btn.small{height:28px;padding:0 10px;font-size:var(--fs-sm)}.toolbar-group .btn{border-color:transparent;background:transparent;color:var(--text-2)}.toolbar-group .btn:hover:not(:disabled){background:var(--surface-sub);color:var(--text)}.dropdown{position:absolute;top:calc(100% + 6px);right:0;background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);min-width:220px;padding:4px;z-index:50;display:flex;flex-direction:column;animation:pop-in .12s cubic-bezier(.16,1,.3,1);transform-origin:top right}@keyframes pop-in{0%{opacity:0;transform:scale(.95) translateY(-4px)}to{opacity:1;transform:scale(1) translateY(0)}}.dropdown button,.node-menu button{text-align:left;border:none;background:none;font:inherit;font-size:var(--fs-base);color:var(--text);padding:7px 10px;border-radius:var(--r);cursor:pointer;transition:background 80ms}.dropdown button:hover{background:var(--surface-sub)}.dropdown button.active{color:var(--blue);font-weight:600}.dropdown .danger-item{color:var(--danger)}.dropdown .danger-item:hover{background:var(--danger-bg)}.dropdown-sep{height:1px;background:var(--border);margin:4px 0}.dropdown-note{font-size:var(--fs-sm);color:var(--text-2);padding:6px 10px;line-height:1.5}.toolbar-menu{position:relative}.workspace{flex:1;display:flex;min-height:0}.left-panel{width:220px;flex-shrink:0;background:var(--surface);border-right:1px solid var(--border);overflow-y:auto}.canvas-area{flex:1;min-width:0;display:flex;flex-direction:column}.canvas-holder{position:relative;flex:1;min-height:0}.breadcrumb{flex-shrink:0;display:flex;align-items:center;gap:6px;padding:0 20px;height:36px;background:var(--surface);border-bottom:1px solid var(--border);font-size:var(--fs-sm)}.breadcrumb.nested{background:#f8faff;border-bottom-color:#2563eb1a}.crumb-back{font-size:var(--fs-sm);font-weight:500;height:24px;display:inline-flex;align-items:center;border:1px solid var(--border-mid);background:var(--surface);color:var(--text);border-radius:var(--r);padding:0 8px;cursor:pointer;transition:background .1s}.crumb-back:hover{background:var(--surface-sub)}.crumb-trail{display:flex;align-items:center;gap:2px}.crumb-wrap{display:inline-flex;align-items:center;gap:2px}.crumb-sep{color:var(--text-3);font-size:10px;margin:0 2px}.crumb{border:none;background:none;font:inherit;font-size:var(--fs-sm);color:var(--text-2);cursor:pointer;padding:2px 6px;border-radius:var(--r);transition:background 80ms,color 80ms}.crumb:hover{background:var(--surface-sub);color:var(--text)}.crumb.current{color:var(--text);font-weight:500}.crumb-hint{margin-left:auto;color:var(--text-3);font-size:var(--fs-xs);font-style:italic}.palette{padding:16px 12px}.palette-top{margin-bottom:16px}.palette-top-row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.palette-title{font-size:var(--fs-xs);font-weight:600;letter-spacing:.5px;text-transform:uppercase;color:var(--text-3)}.palette-guide-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;height:30px;margin-top:8px;border:1px solid var(--border-mid);border-radius:var(--r-lg);background:var(--surface);color:var(--text-2);font-size:var(--fs-sm);font-weight:500;cursor:pointer;transition:background .1s,color .1s,border-color .1s}.palette-guide-btn:hover{background:var(--surface-sub);color:var(--text);border-color:var(--border-mid)}.shapes-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:var(--surface-sub);border:1px solid var(--border-mid);color:var(--text);flex-shrink:0}.palette-group{margin-bottom:18px}.palette-group-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);font-weight:600;margin-bottom:4px;padding:0 4px}.palette-items{display:flex;flex-direction:column;gap:1px}.palette-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border:1px solid transparent;border-radius:var(--r);background:transparent;cursor:grab;font-size:var(--fs-sm);color:var(--text-2);text-align:left;width:100%;transition:background 80ms,color 80ms,border-color 80ms}.palette-item:hover{background:var(--surface-sub);color:var(--text);border-color:var(--border)}.palette-item:active{cursor:grabbing}.palette-glyph{flex-shrink:0;display:inline-flex;opacity:.75}.palette-item:hover .palette-glyph{opacity:1}.palette-label{font-size:var(--fs-sm);font-weight:500}.overlay-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;padding:24px;z-index:200;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);animation:fade .15s ease}@keyframes fade{0%{opacity:0}to{opacity:1}}.overlay-panel{background:var(--surface);border-radius:var(--r-xl);width:100%;max-width:660px;max-height:88vh;display:flex;flex-direction:column;box-shadow:var(--shadow-xl);overflow:hidden;animation:pop-in .2s cubic-bezier(.16,1,.3,1);border:1px solid var(--border)}.overlay-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border);flex-shrink:0}.overlay-header h2{margin:0;font-size:var(--fs-xl);font-weight:600;letter-spacing:-.4px}.overlay-close{width:30px;height:30px;border:none;background:none;display:inline-flex;align-items:center;justify-content:center;font-size:18px;color:var(--text-3);cursor:pointer;border-radius:var(--r);transition:background .1s,color .1s}.overlay-close:hover{background:var(--surface-sub);color:var(--text)}.overlay-body{padding:20px 24px 32px;overflow-y:auto}.legend-intro{margin:0 0 16px;padding-left:20px;line-height:1.65;font-size:var(--fs-sm);color:var(--text)}.legend-intro li{margin-bottom:6px}.legend-h3{font-size:var(--fs-md);font-weight:600;margin:24px 0 12px;padding-bottom:8px;border-bottom:1px solid var(--border)}.recipe{background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-lg);padding:16px;margin-bottom:12px}.recipe-title{font-weight:600;font-size:var(--fs-base);margin-bottom:8px}.recipe-steps{margin:0;padding-left:20px;font-size:var(--fs-sm);line-height:1.65}.recipe-steps li{margin-bottom:4px}.recipe-eg,.legend-eg{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;margin-top:8px;font-style:italic}.legend-group-title{font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.5px;color:var(--text-3);font-weight:600;margin:16px 0 8px}.legend-row{display:flex;gap:12px;padding:12px 0;border-top:1px solid var(--border);align-items:flex-start}.legend-glyph{flex-shrink:0;width:28px;display:flex;justify-content:center;padding-top:2px}.legend-name{font-weight:600;font-size:var(--fs-base)}.legend-desc{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5;margin-top:2px}.canvas-wrap{position:absolute;top:0;right:0;bottom:0;left:0;overflow:hidden}.canvas-svg{width:100%;height:100%;display:block;background:var(--canvas);touch-action:none;cursor:grab}.canvas-svg.box-select{cursor:crosshair}.node-label{fill:var(--text);font-size:12px;-webkit-user-select:none;user-select:none;pointer-events:none;font-family:Inter,system-ui,sans-serif}.node-label.external{fill:#525252;font-size:11px}.node-placeholder{fill:var(--text-3);font-size:12px;font-style:italic;-webkit-user-select:none;user-select:none;pointer-events:none}.flow-label{fill:#525252;font-size:11px;-webkit-user-select:none;user-select:none;pointer-events:none}.pool-title{fill:#525252;font-weight:600;-webkit-user-select:none;user-select:none;pointer-events:none}.lane-title{fill:var(--text-2);font-size:11px;-webkit-user-select:none;user-select:none;pointer-events:none}.label-bg{fill:var(--surface);opacity:.92;pointer-events:none}.node-label,.node-placeholder,.flow-label,.pool-title,.lane-title{paint-order:stroke;stroke:#fff;stroke-width:2.5px;stroke-linejoin:round}.selection-ring{fill:none;stroke:var(--blue);stroke-width:1.5;stroke-dasharray:4 3}.connect-handle{fill:var(--blue);stroke:#fff;stroke-width:1.5}.zoom-controls{position:absolute;bottom:16px;right:16px;display:flex;align-items:center;gap:1px;background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-lg);padding:3px;box-shadow:var(--shadow)}.zoom-controls button{width:26px;height:26px;padding:0;display:inline-flex;align-items:center;justify-content:center;border:none;background:none;font-size:14px;cursor:pointer;border-radius:var(--r);color:var(--text-2);transition:background 80ms,color 80ms}.zoom-controls button:hover{background:var(--surface-sub);color:var(--text)}.zoom-controls .select-tool.active,.zoom-controls .select-tool.active:hover{background:var(--blue);color:#fff}.zoom-divider{width:1px;height:16px;background:var(--border-mid);margin:0 3px}.zoom-pct{font-size:var(--fs-xs);color:var(--text-3);min-width:36px;text-align:center;font-variant-numeric:tabular-nums}.ai-shortcut{position:absolute;top:16px;right:16px;width:46px;height:46px;border:none;border-radius:50%;background:linear-gradient(145deg,#ffe600,#ffc400 90%);color:#0a0a0a;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #ffc8008c,0 1px 3px #00000024;transition:transform .14s cubic-bezier(.16,1,.3,1),background .14s;animation:ai-breathe 3.4s ease-in-out infinite;z-index:5}.ai-shortcut:hover{background:linear-gradient(145deg,#fff059,#ffd000 90%);transform:scale(1.08)}.ai-shortcut:active{transform:scale(.94)}@keyframes ai-breathe{0%,to{box-shadow:0 4px 14px #ffc80073,0 1px 3px #00000024}50%{box-shadow:0 4px 26px #ffc800cc,0 1px 3px #00000024}}@media (prefers-reduced-motion: reduce){.ai-shortcut{animation:none}.ai-shortcut,.ai-shortcut:hover,.ai-shortcut:active{transform:none}}.node-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:160}.node-menu{position:fixed;background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-lg);box-shadow:var(--shadow-xl);padding:4px;display:flex;flex-direction:column;min-width:180px;animation:pop-in .12s cubic-bezier(.16,1,.3,1)}.inline-edit-input{width:100%;height:100%;box-sizing:border-box;border:1.5px solid var(--blue);border-radius:var(--r);padding:2px 8px;font:inherit;font-size:12px;text-align:center;background:#fff;color:var(--text);outline:none;box-shadow:var(--shadow)}.canvas-empty{position:absolute;top:40%;left:0;right:0;display:flex;flex-direction:column;align-items:center;gap:6px;text-align:center;color:var(--text-2);pointer-events:none;font-size:var(--fs-base);padding:0 40px}.canvas-empty strong{font-size:var(--fs-md);color:var(--text);font-weight:500}.canvas-empty-tip{margin-top:10px;max-width:420px;font-size:var(--fs-sm);color:var(--text-3);line-height:1.6;background:var(--warn-bg);border:1px solid rgba(217,119,6,.2);border-radius:var(--r-lg);padding:8px 14px;color:var(--text-2)}.right-panel{width:380px;flex-shrink:0;background:var(--surface);border-left:1px solid var(--border);display:flex;flex-direction:column;min-height:0}.tabs{display:flex;border-bottom:1px solid var(--border);flex-shrink:0;padding:0 4px}.tab{flex:1;border:none;background:transparent;padding:12px 4px 11px;cursor:pointer;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--text-3);border-bottom:1.5px solid transparent;margin-bottom:-1px;transition:color .12s,border-color .12s}.tab:hover{color:var(--text-2)}.tab.active{color:var(--text);border-bottom-color:var(--text)}.tab-collapse{flex:0 0 auto;border:none;background:transparent;color:var(--text-3);cursor:pointer;font-size:12px;padding:0 8px;border-bottom:1.5px solid transparent;margin-bottom:-1px;transition:color .12s}.tab-collapse:hover{color:var(--text)}.panel-reopen{flex-shrink:0;width:32px;border:none;border-left:1px solid var(--border);background:var(--surface);color:var(--text-3);cursor:pointer;font-size:var(--fs-xs);font-weight:600;font-family:var(--font);writing-mode:vertical-rl;text-orientation:mixed;letter-spacing:1.5px;text-transform:uppercase;padding:16px 0;transition:background .1s,color .1s}.panel-reopen:hover{background:var(--surface-sub);color:var(--text-2)}.tab-body{flex:1;overflow-y:auto;min-height:0}.inspector{padding:20px}.inspector.empty{color:var(--text-2);line-height:1.65;padding:40px 20px;text-align:center}.inspector.empty p{font-size:var(--fs-sm);max-width:240px;margin:0 auto 8px}.inspector-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--border)}.inspector-header h3{margin:0;font-size:var(--fs-md);font-weight:600;letter-spacing:-.2px}.open-steps-btn{width:100%;justify-content:center;margin-bottom:16px}.field{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}.field-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px}.field input,.field select{font:inherit;font-size:var(--fs-base);height:32px;padding:0 10px;border:1px solid var(--border-mid);border-radius:var(--r);background:var(--surface);color:var(--text);width:100%;transition:border-color .1s,box-shadow .1s}.field input:focus,.field select:focus{outline:none;border-color:#2563eb66;box-shadow:var(--ring)}.field textarea{font:inherit;font-size:var(--fs-base);padding:8px 10px;border:1px solid var(--border-mid);border-radius:var(--r);background:var(--surface);color:var(--text);width:100%;resize:vertical;line-height:1.5;transition:border-color .1s,box-shadow .1s}.field textarea:focus{outline:none;border-color:#2563eb66;box-shadow:var(--ring)}.field.checkbox{flex-direction:row;align-items:flex-start;gap:8px}.field.checkbox input{width:auto;height:auto;margin-top:3px;flex-shrink:0;accent-color:var(--blue)}.field.readonly .endpoints{padding:8px 10px;background:var(--surface-sub);border-radius:var(--r);font-size:var(--fs-sm);border:1px solid var(--border);color:var(--text-2)}.field-group{background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-lg);padding:12px 12px 4px;margin-bottom:12px}.mono{font-family:var(--mono);font-size:var(--fs-sm)}.data-fields .data-field-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}.data-field-row .df-name{flex:2}.data-field-row .df-type{flex:1}.data-field-row input{font:inherit;height:28px;padding:0 8px;border:1px solid var(--border-mid);border-radius:var(--r);font-size:var(--fs-sm);width:100%;transition:border-color .1s}.data-field-row input:focus{outline:none;border-color:#2563eb66;box-shadow:var(--ring)}.hint{font-size:var(--fs-sm);color:var(--text-2);line-height:1.55;margin:2px 0 10px}.field+.hint{margin-top:-6px}.hint.warn{color:var(--warn)}.muted{color:var(--text-2)}.small{font-size:var(--fs-sm)}.spec{padding:20px}.spec-section{margin-bottom:24px}.spec h2{font-size:var(--fs-xl);margin:0 0 6px;letter-spacing:-.5px;font-weight:600}.spec h3{font-size:var(--fs-sm);font-weight:600;margin:0 0 10px;padding-bottom:8px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:6px;color:var(--text-2);text-transform:uppercase;letter-spacing:.4px}.spec-desc{color:var(--text-2);margin:0 0 10px;line-height:1.6;font-size:var(--fs-sm)}.spec-counts{display:flex;flex-wrap:wrap;gap:4px;margin:0 0 8px}.count-chip{background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 8px;font-size:var(--fs-xs);color:var(--text-2)}.count-chip strong{color:var(--text)}.spec-endstates{font-size:var(--fs-sm);color:var(--text-2);line-height:1.5}.all-clear{font-size:var(--fs-xs);color:var(--ok);font-weight:600}.warn-count{font-size:10px;background:var(--warn);color:#fff;border-radius:var(--r-pill);padding:1px 6px;font-weight:600}.tag{font-size:var(--fs-xs);background:var(--surface-sub);color:var(--text-2);border:1px solid var(--border);border-radius:var(--r-pill);padding:1px 7px;font-weight:500;margin-left:4px}.narrative{display:flex;flex-direction:column;gap:4px}.narr{display:flex;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:var(--r-lg);background:var(--surface);cursor:pointer;transition:border-color .1s,box-shadow 80ms}.narr:hover{border-color:var(--border-mid);box-shadow:var(--shadow-sm)}.narr-badge{flex-shrink:0;width:20px;height:20px;margin-top:1px;border-radius:var(--r-pill);display:inline-flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#fff;background:#a3a3a3}.narr-start .narr-badge{background:var(--ok)}.narr-end .narr-badge{background:var(--danger)}.narr-wait .narr-badge{background:var(--warn)}.narr-decision .narr-badge{background:var(--gold)}.narr-parallel-split .narr-badge,.narr-parallel-join .narr-badge{background:var(--neutral)}.narr-body{min-width:0;flex:1}.narr-title{font-size:var(--fs-base);line-height:1.4}.narr-lead{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);margin-right:4px}.narr-detail{font-size:var(--fs-sm);color:var(--text-2);margin-top:2px;line-height:1.5}.narr-pre{font-size:var(--fs-sm);color:var(--warn);margin-top:2px;line-height:1.5}.narr-io{font-size:var(--fs-sm);color:var(--text-2);margin-top:4px;display:flex;gap:12px;flex-wrap:wrap}.narr-io em{color:var(--text);font-style:normal;font-weight:500}.narr-branches{list-style:none;margin:6px 0 0;padding:0;font-size:var(--fs-sm)}.narr-branches li{padding:3px 0 3px 10px;border-left:1.5px solid var(--border-mid);margin:3px 0;line-height:1.5;color:var(--text-2)}.narr-branches li.default{border-left-color:var(--warn)}.narr-semantics{border-left:none!important;padding-left:0!important;color:var(--text-3);font-size:var(--fs-xs)}.narr-cond{color:var(--text)}.narr-rule{font-size:var(--fs-sm);color:var(--text-2);font-family:var(--mono)}table.data-table{width:100%;border-collapse:collapse;font-size:var(--fs-sm)}.data-table th,.data-table td{border:none;border-bottom:1px solid var(--border);padding:7px 8px;text-align:left;vertical-align:top}.data-table th{background:var(--surface-sub);font-size:var(--fs-xs);color:var(--text-3);text-transform:uppercase;letter-spacing:.4px;font-weight:600}.warning-list,.trigger-list{list-style:none;margin:0;padding:0}.warning{display:flex;align-items:flex-start;gap:8px;padding:6px 8px;border-radius:var(--r);font-size:var(--fs-sm);margin-bottom:2px;cursor:pointer;line-height:1.5;transition:background 80ms}.warning:hover{background:var(--surface-sub)}.sev-dot{width:6px;height:6px;border-radius:50%;margin-top:5px;flex-shrink:0}.sev-error .sev-dot{background:var(--danger)}.sev-warning .sev-dot{background:var(--warn)}.sev-info .sev-dot{background:var(--neutral)}.trigger{display:flex;gap:6px;align-items:center;padding:7px 10px;border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:4px;font-size:var(--fs-sm);flex-wrap:wrap}.trigger-kind,.change-kind{font-size:10px;text-transform:uppercase;letter-spacing:.4px;font-weight:700;padding:1px 6px;border-radius:var(--r-pill);color:#fff;flex-shrink:0}.trigger-start .trigger-kind{background:var(--ok)}.trigger-wait .trigger-kind{background:var(--warn)}.trigger-message .trigger-kind{background:var(--blue)}.trigger-label{font-weight:500;font-size:var(--fs-sm)}.trigger-detail{color:var(--text-2);font-size:var(--fs-xs)}.ai-panel{padding:20px;display:flex;flex-direction:column;height:100%}.ai-transcript{font:inherit;font-size:var(--fs-base);width:100%;padding:10px 12px;border:1px solid var(--border-mid);border-radius:var(--r-lg);resize:vertical;line-height:1.6;color:var(--text);background:var(--surface);transition:border-color .1s}.ai-transcript::placeholder{color:var(--text-3)}.ai-transcript:focus{outline:none;border-color:#2563eb66;box-shadow:var(--ring)}.ai-actions{display:flex;align-items:center;gap:8px;margin-top:10px;color:var(--text-2);font-size:var(--fs-sm)}.ai-spinner{width:13px;height:13px;border:1.5px solid var(--border-mid);border-top-color:var(--blue);border-radius:50%;display:inline-block;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.ai-error,.ai-applied{margin-top:12px;padding:10px 12px;border-radius:var(--r-lg);font-size:var(--fs-sm);line-height:1.5;animation:fade .2s ease}.ai-error{background:var(--danger-bg);color:#7f1d1d;border:1px solid rgba(220,38,38,.15)}.ai-applied{background:var(--ok-bg);color:#14532d;border:1px solid rgba(22,163,74,.15)}.engine-note{margin-bottom:12px;font-size:var(--fs-sm)}.proposal{margin-top:12px;display:flex;flex-direction:column;min-height:0;flex:1}.proposal-summary{font-size:var(--fs-sm);line-height:1.6;color:var(--text-2);background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-lg);padding:10px 12px;margin-bottom:8px}.proposal-toolbar{display:flex;align-items:center;justify-content:space-between;font-size:var(--fs-xs);color:var(--text-3);margin-bottom:6px;gap:8px}.change-list-review{list-style:none;margin:0;padding:0;overflow-y:auto;flex:1;min-height:60px}.change{border:1px solid var(--border);border-radius:var(--r-lg);margin-bottom:4px;background:var(--surface);transition:border-color 80ms}.change:hover{border-color:var(--border-mid)}.change label{display:flex;align-items:flex-start;gap:8px;padding:8px 10px;cursor:pointer;border-radius:var(--r-lg);transition:background 80ms}.change label:hover{background:var(--surface-sub)}.change label input{margin-top:3px;flex-shrink:0;accent-color:var(--blue)}.change-kind.add{background:var(--ok)}.change-kind.modify{background:var(--blue)}.change-kind.delete{background:var(--danger)}.change-desc{font-size:var(--fs-sm);line-height:1.5}.proposal-actions{display:flex;gap:6px;margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}.page-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg);padding:24px}.page-screen-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:36px 32px;max-width:400px;width:100%;display:flex;flex-direction:column;gap:14px;animation:pop-in .25s cubic-bezier(.16,1,.3,1)}.page-screen-card h1{font-size:var(--fs-xl);margin:0;letter-spacing:-.4px;font-weight:600}.page-screen-card p{margin:0;color:var(--text-2);font-size:var(--fs-sm);line-height:1.65}.page-screen-card input{height:36px;border:1px solid var(--border-mid);border-radius:var(--r);padding:0 12px;font-size:var(--fs-base);font-family:var(--font);width:100%;transition:border-color .1s,box-shadow .1s}.page-screen-card input:focus{outline:none;border-color:#2563eb66;box-shadow:var(--ring)}.save-status{font-size:var(--fs-xs);white-space:nowrap;padding:0 6px;font-weight:500;transition:color .2s}.save-status.saved{color:var(--ok)}.save-status.dirty{color:var(--warn)}.save-status.saving{color:var(--text-3)}.save-status.error{color:var(--danger);font-weight:600}.admin{min-height:100vh;background:var(--bg);display:flex;flex-direction:column}.admin-header{display:flex;align-items:center;gap:8px;padding:0 28px;height:56px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.admin-body{max-width:860px;width:100%;margin:32px auto;padding:0 28px}.admin-body h2{font-size:var(--fs-xl);font-weight:600;letter-spacing:-.4px;margin:0 0 16px;color:var(--text)}.admin-table{width:100%;border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-sm)}.admin-table th{text-align:left;font-size:var(--fs-xs);text-transform:uppercase;letter-spacing:.4px;color:var(--text-3);padding:10px 16px;border-bottom:1px solid var(--border);background:var(--surface-sub);font-weight:600}.admin-table td{padding:10px 16px;border-bottom:1px solid var(--border);font-size:var(--fs-base);vertical-align:middle}.admin-table tr:last-child td{border-bottom:none}.admin-table tbody tr{transition:background 80ms}.admin-table tbody tr:hover{background:var(--surface-sub)}.admin-name-btn{background:none;border:none;padding:0;font:inherit;font-size:var(--fs-base);font-weight:500;color:var(--text);cursor:pointer;text-align:left;transition:color .1s}.admin-name-btn:hover{color:var(--blue)}.admin-name input{height:28px;border:1px solid rgba(37,99,235,.4);border-radius:var(--r);padding:0 8px;font:inherit;font-size:var(--fs-base);width:100%;box-shadow:var(--ring);outline:none}.admin-when{color:var(--text-3);white-space:nowrap;font-size:var(--fs-sm)}.admin-actions{display:flex;gap:4px;justify-content:flex-end;flex-wrap:wrap}.admin-actions .btn{text-decoration:none}.admin-empty{color:var(--text-2);background:var(--surface);border:1px dashed var(--border-mid);border-radius:var(--r-xl);padding:40px 24px;text-align:center;font-size:var(--fs-sm);line-height:1.65}.admin-archived{margin-top:20px;display:flex;flex-direction:column;gap:8px}.archived-row td{color:var(--text-3)}.admin-notice,.admin-error{max-width:860px;width:calc(100% - 56px);margin:12px auto 0;padding:10px 16px;border-radius:var(--r-lg);font-size:var(--fs-sm);animation:fade .2s ease}.admin-notice{background:var(--ok-bg);color:#14532d;border:1px solid rgba(22,163,74,.15)}.admin-error{background:var(--danger-bg);color:#7f1d1d;border:1px solid rgba(220,38,38,.15)}@media (max-width: 1024px){.right-panel{width:320px}}@media (max-width: 768px){.left-panel{width:160px}.right-panel{width:280px}.toolbar{padding:0 12px;gap:4px}.diagram-name{min-width:120px}}@media (max-width: 600px){.workspace{flex-direction:column}.left-panel{display:none}.right-panel{width:100%;height:50vh;border-left:none;border-top:1px solid var(--border)}.admin-body,.admin-header{padding:0 16px}.admin-notice,.admin-error{width:calc(100% - 32px)}}.admin-nav{display:flex;gap:2px;margin-left:16px}.admin-nav-btn{height:30px;padding:0 12px;border:none;background:none;border-radius:var(--r);font:inherit;font-size:var(--fs-base);font-weight:500;color:var(--text-2);cursor:pointer;transition:background .1s,color .1s}.admin-nav-btn:hover{background:var(--surface-sub);color:var(--text)}.admin-nav-btn.active{background:var(--surface-sub);color:var(--text);font-weight:600}.admin-model-chip{margin-left:10px;padding:3px 10px;border-radius:var(--r-pill);background:var(--surface-sub);border:1px solid var(--border);font-size:var(--fs-xs);color:var(--text-2);white-space:nowrap;font-weight:500}.admin-ai h2{font-size:var(--fs-lg);font-weight:600;letter-spacing:-.2px;margin:24px 0 4px}.admin-ai h2:first-child{margin-top:0}.admin-ai .hint{margin:0 0 12px}.model-options{display:flex;flex-direction:column;gap:6px;margin-bottom:20px}.model-option{display:flex;align-items:center;gap:12px;background:var(--surface);border:1px solid var(--border-mid);border-radius:var(--r-lg);padding:12px 14px;cursor:pointer;transition:border-color .1s,box-shadow .1s}.model-option:hover{border-color:#0003}.model-option.active{border-color:var(--text);box-shadow:0 0 0 1px var(--text)}.model-option input{accent-color:var(--accent)}.model-option-main{display:flex;flex-direction:column;gap:2px;flex:1}.model-option-main strong{font-size:var(--fs-base);font-weight:600}.model-option-blurb{color:var(--text-2);font-size:var(--fs-sm)}.model-option-price{text-align:right;font-size:var(--fs-sm);color:var(--text);display:flex;flex-direction:column;font-variant-numeric:tabular-nums}.model-option-price small{color:var(--text-3);font-size:10px}.admin-totals td{font-weight:600;background:var(--surface-sub)}.toolbar-brand-sub{color:var(--text-3);font-weight:500}.ai-anchor{display:flex;flex-direction:column;gap:6px;margin:14px 0 10px}.ai-anchor-label{font-size:var(--fs-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.4px}.ai-anchor-stage{overflow:hidden}.ai-anchor-track{display:flex;width:200%;transition:transform .3s cubic-bezier(.16,1,.3,1)}.ai-anchor-track.picking{transform:translate(-50%)}.ai-anchor-pane{width:50%;flex-shrink:0;min-width:0}.ai-anchor-pane[aria-hidden=true]{pointer-events:none}.ai-segment{position:relative;display:flex;gap:2px;padding:2px;background:var(--surface-sub);border:1px solid var(--border-mid);border-radius:var(--r);min-width:0}.ai-segment-thumb{position:absolute;top:2px;bottom:2px;left:2px;width:calc(50% - 3px);background:var(--surface);border:1px solid var(--border-mid);border-radius:5px;box-shadow:var(--shadow-sm);transition:transform .24s cubic-bezier(.16,1,.3,1);pointer-events:none}.ai-segment-thumb.right{transform:translate(calc(100% + 2px))}.ai-segment-btn{position:relative;z-index:1;flex:1;min-width:0;height:28px;display:inline-flex;align-items:center;justify-content:center;gap:6px;border:none;border-radius:5px;background:transparent;color:var(--text-2);font:inherit;font-size:var(--fs-sm);font-weight:500;cursor:pointer;padding:0 8px;transition:color .16s}.ai-segment-btn:hover:not(:disabled):not(.active){color:var(--text)}.ai-segment-btn.active{color:var(--text);font-weight:600}.ai-segment-step{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;animation:step-pop .22s cubic-bezier(.16,1,.3,1)}@keyframes step-pop{0%{transform:scale(.85);opacity:0}to{transform:scale(1);opacity:1}}.ai-segment-clear{flex-shrink:0;width:16px;height:16px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;color:var(--text-3);font-size:14px;line-height:1}.ai-segment-clear:hover{background:var(--danger-bg);color:var(--danger)}.ai-anchor-picking{display:flex;align-items:center;gap:8px;min-height:32px;color:var(--blue);font-size:var(--fs-base);font-weight:500;background:var(--blue-soft);border:1px solid rgba(37,99,235,.2);border-radius:var(--r);padding:2px 4px 2px 10px}.ai-anchor-picking-dot{width:8px;height:8px;border-radius:50%;background:var(--blue);flex-shrink:0;animation:pulse 1.2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.ai-anchor-picking .btn{margin-left:auto}@media (prefers-reduced-motion: reduce){.ai-anchor-track,.ai-segment-thumb{transition:none}.ai-segment-step,.ai-anchor-picking-dot{animation:none}}.bolt-badge{display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:linear-gradient(145deg,#ffe600,#ffc400 90%);color:#0a0a0a;box-shadow:0 1px 3px #ffc80080;flex-shrink:0}.tab.tab-ai{font-weight:600;display:inline-flex;align-items:center;justify-content:center;gap:5px}.tab-ai-spark{display:inline-flex}.ai-tips-bolt{vertical-align:-4px;margin-right:5px}.ai-panel{animation:ai-panel-in .36s cubic-bezier(.16,1,.3,1) both}@keyframes ai-panel-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.ai-hero{display:flex;flex-direction:column;align-items:center;gap:10px;background:var(--warn-bg);border:1px solid rgba(255,196,0,.35);border-radius:var(--r-xl);padding:20px 16px 16px;margin-bottom:14px;text-align:center;position:relative;overflow:hidden}.ai-hero-title{font-size:19px;font-weight:650;letter-spacing:-.3px;color:var(--text)}.ai-hero:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(100deg,transparent 30%,rgba(255,255,255,.75) 50%,transparent 70%);transform:translate(-120%);animation:ai-sweep .9s ease .22s forwards;pointer-events:none}@keyframes ai-sweep{to{transform:translate(120%)}}.ai-hero-icon{display:flex;flex-shrink:0}.ai-hero-icon .bolt-badge{animation:bolt-pop .6s cubic-bezier(.34,1.56,.64,1) both;transform-origin:50% 50%}@keyframes bolt-pop{0%{opacity:0;transform:scale(.3) rotate(-14deg)}to{opacity:1;transform:scale(1) rotate(0)}}@media (prefers-reduced-motion: reduce){.ai-panel{animation:none}.ai-hero:after{animation:none}.ai-hero-icon .bolt-badge{animation:none}}.ai-hero .btn{flex-shrink:0}.sg{transform-box:fill-box;transform-origin:center}@media (prefers-reduced-motion: reduce){.sg{animation:none!important}}.sg-add-cursor{animation:sg-add-cursor 4.5s ease-in-out infinite}@keyframes sg-add-cursor{0%{transform:translate(60px,105px);opacity:0}6%{transform:translate(60px,105px);opacity:1}14%{transform:translate(30px,28px);opacity:1}17%{transform:translate(30px,28px);opacity:1;animation-timing-function:linear}48%,60%{transform:translate(225px,71px);opacity:1}72%,to{transform:translate(255px,105px);opacity:0}}.sg-add-ghost{animation:sg-add-ghost 4.5s infinite}@keyframes sg-add-ghost{0%,15%{opacity:0;transform:translate(0)}17%{opacity:.7;transform:translate(0);animation-timing-function:linear}48%{opacity:.7;transform:translate(174px,36px)}51%,to{opacity:0;transform:translate(174px,36px)}}.sg-add-ripple{animation:sg-add-ripple 4.5s infinite}@keyframes sg-add-ripple{0%,50%{opacity:0;transform:scale(.4)}55%{opacity:.55;transform:scale(.8)}64%,to{opacity:0;transform:scale(1.15)}}.sg-add-done{animation:sg-add-done 4.5s infinite}@keyframes sg-add-done{0%,49%{opacity:0;transform:scale(.6)}55%,90%{opacity:1;transform:scale(1)}97%,to{opacity:0;transform:scale(1)}}.sg-con-cursor{animation:sg-con-cursor 4.5s ease-in-out infinite}@keyframes sg-con-cursor{0%{transform:translate(70px,95px);opacity:0}6%{transform:translate(70px,95px);opacity:1}14%{transform:translate(110px,62px);opacity:1}17%{transform:translate(110px,62px);opacity:1;animation-timing-function:linear}48%,62%{transform:translate(212px,62px);opacity:1}74%,to{transform:translate(245px,100px);opacity:0}}.sg-con-dot{animation:sg-con-dot 4.5s infinite}@keyframes sg-con-dot{0%,12%{opacity:0;transform:scale(.3)}17%,88%{opacity:1;transform:scale(1)}94%,to{opacity:0;transform:scale(1)}}.sg-con-drag{animation:sg-con-drag 4.5s infinite}@keyframes sg-con-drag{0%,16%{opacity:0}18%,50%{opacity:1}54%,to{opacity:0}}.sg-con-cover{transform-origin:right center;animation:sg-con-cover 4.5s infinite}@keyframes sg-con-cover{0%{transform:scaleX(1)}17%{transform:scaleX(1);animation-timing-function:linear}48%,to{transform:scaleX(0)}}.sg-con-ring{animation:sg-con-ring 4.5s infinite}@keyframes sg-con-ring{0%,42%{opacity:0}47%,56%{opacity:1}62%,to{opacity:0}}.sg-con-done{animation:sg-con-done 4.5s infinite}@keyframes sg-con-done{0%,50%{opacity:0}55%,90%{opacity:1}97%,to{opacity:0}}.sg-ren-cursor{animation:sg-ren-cursor 5.5s ease-in-out infinite}@keyframes sg-ren-cursor{0%{transform:translate(205px,105px);opacity:0}6%{transform:translate(205px,105px);opacity:1}13%,22%{transform:translate(148px,64px);opacity:1}30%,58%{transform:translate(192px,100px);opacity:1}68%,to{transform:translate(225px,112px);opacity:0}}.sg-ren-rip1{animation:sg-ren-rip1 5.5s infinite}@keyframes sg-ren-rip1{0%,13%{opacity:0;transform:scale(.3)}16%{opacity:.7;transform:scale(.8)}20%,to{opacity:0;transform:scale(1.1)}}.sg-ren-rip2{animation:sg-ren-rip2 5.5s infinite}@keyframes sg-ren-rip2{0%,17%{opacity:0;transform:scale(.3)}20%{opacity:.7;transform:scale(.8)}24%,to{opacity:0;transform:scale(1.1)}}.sg-ren-editor{animation:sg-ren-editor 5.5s infinite}@keyframes sg-ren-editor{0%,22%{opacity:0}26%,56%{opacity:1}60%,to{opacity:0}}.sg-ren-type{transform-origin:left center;animation:sg-ren-type 5.5s infinite}@keyframes sg-ren-type{0%,25%{opacity:0;transform:scaleX(.04)}26%{opacity:.6;transform:scaleX(.04);animation-timing-function:steps(7,end)}50%,56%{opacity:.6;transform:scaleX(1)}59%,to{opacity:0;transform:scaleX(1)}}.sg-ren-label{animation:sg-ren-label 5.5s infinite}@keyframes sg-ren-label{0%,57%{opacity:0}61%,90%{opacity:.75}97%,to{opacity:0}}.sg-be-cursor{animation:sg-be-cursor 6s ease-in-out infinite}@keyframes sg-be-cursor{0%{transform:translate(150px,108px);opacity:0}5%{transform:translate(150px,108px);opacity:1}12%,20%{transform:translate(77px,32px);opacity:1}30%,55%{transform:translate(34px,100px);opacity:1}65%,to{transform:translate(20px,115px);opacity:0}}.sg-be-rip1{animation:sg-be-rip1 6s infinite}@keyframes sg-be-rip1{0%,12%{opacity:0;transform:scale(.3)}15%{opacity:.7;transform:scale(.8)}19%,to{opacity:0;transform:scale(1.1)}}.sg-be-rip2{animation:sg-be-rip2 6s infinite}@keyframes sg-be-rip2{0%,16%{opacity:0;transform:scale(.3)}19%{opacity:.7;transform:scale(.8)}23%,to{opacity:0;transform:scale(1.1)}}.sg-be-open{animation:sg-be-open 6s infinite}@keyframes sg-be-open{0%,21%{opacity:0}27%,88%{opacity:1}95%,to{opacity:0}}.sg-be-panel{animation:sg-be-panel 6s infinite}@keyframes sg-be-panel{0%,23%{opacity:0;transform:translateY(-6px) scale(.97)}30%,88%{opacity:1;transform:translateY(0) scale(1)}95%,to{opacity:0;transform:translateY(0) scale(1)}}.sg-gw-dec-a{animation:sg-gw-dec-a 6s infinite}@keyframes sg-gw-dec-a{0%,5%{stroke-dashoffset:1;opacity:1}15%{stroke-dashoffset:0;opacity:1}32%{stroke-dashoffset:0;opacity:1}38%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-dec-b{animation:sg-gw-dec-b 6s infinite}@keyframes sg-gw-dec-b{0%,48%{stroke-dashoffset:1;opacity:1}58%{stroke-dashoffset:0;opacity:1}76%{stroke-dashoffset:0;opacity:1}82%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-par{animation:sg-gw-par 6s infinite}@keyframes sg-gw-par{0%,5%{stroke-dashoffset:1;opacity:1}15%{stroke-dashoffset:0;opacity:1}72%{stroke-dashoffset:0;opacity:1}80%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-inc-a{animation:sg-gw-inc-a 6s infinite}@keyframes sg-gw-inc-a{0%,5%{stroke-dashoffset:1;opacity:1}15%{stroke-dashoffset:0;opacity:1}76%{stroke-dashoffset:0;opacity:1}83%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-inc-b{animation:sg-gw-inc-b 6s infinite}@keyframes sg-gw-inc-b{0%,38%{stroke-dashoffset:1;opacity:1}48%{stroke-dashoffset:0;opacity:1}76%{stroke-dashoffset:0;opacity:1}83%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-win{animation:sg-gw-win 6s infinite}@keyframes sg-gw-win{0%,5%{stroke-dashoffset:1;opacity:1}17%{stroke-dashoffset:0;opacity:1}62%{stroke-dashoffset:0;opacity:1}70%,to{stroke-dashoffset:0;opacity:0}}.sg-gw-lose{animation:sg-gw-lose 6s infinite}@keyframes sg-gw-lose{0%,5%{stroke-dashoffset:1;opacity:1}13%,20%{stroke-dashoffset:.45;opacity:1}28%,to{stroke-dashoffset:.45;opacity:0}}.sg-gw-out{animation:sg-gw-out 6s infinite}@keyframes sg-gw-out{0%,17%{opacity:0}23%,62%{opacity:1}70%,to{opacity:0}}.sg-pick-cursor{animation:sg-pick-cursor 5s ease-in-out infinite}@keyframes sg-pick-cursor{0%{transform:translate(60px,110px);opacity:0}6%{transform:translate(60px,110px);opacity:1}14%,22%{transform:translate(150px,46px);opacity:1}32%,58%{transform:translate(70px,108px);opacity:1}68%,to{transform:translate(40px,115px);opacity:0}}.sg-pick-rip{animation:sg-pick-rip 5s infinite}@keyframes sg-pick-rip{0%,14%{opacity:0;transform:scale(.3)}17%{opacity:.7;transform:scale(.8)}22%,to{opacity:0;transform:scale(1.1)}}.sg-pick-ring{animation:sg-pick-ring 5s infinite}@keyframes sg-pick-ring{0%,20%{opacity:0}25%,88%{opacity:1}95%,to{opacity:0}}.sg-pick-elbow{animation:sg-pick-elbow 5s infinite}@keyframes sg-pick-elbow{0%,26%{stroke-dashoffset:1;opacity:1}38%,88%{stroke-dashoffset:0;opacity:1}94%,to{stroke-dashoffset:0;opacity:0}}.sg-pick-done{animation:sg-pick-done 5s infinite}@keyframes sg-pick-done{0%,36%{opacity:0;transform:scale(.6)}42%,88%{opacity:1;transform:scale(1)}95%,to{opacity:0;transform:scale(1)}}.aitips-veil{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:flex;align-items:center;justify-content:center;background:#fafaf98c;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);animation:aitips-veil-in .24s ease both;padding:20px}@keyframes aitips-veil-in{0%{opacity:0}to{opacity:1}}.aitips-card{width:min(680px,100%);max-height:min(92vh,640px);display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--border);border-radius:20px;box-shadow:var(--shadow-xl);padding:18px 22px 20px;animation:aitips-card-in .32s cubic-bezier(.16,1,.3,1) both;overflow:hidden}@keyframes aitips-card-in{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.aitips-head{display:flex;align-items:center;gap:10px}.aitips-kicker{flex:1;font-size:var(--fs-sm);font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--text-2)}.aitips-slide{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:8px 20px 4px;overflow-y:auto;animation:aitips-slide-in .26s cubic-bezier(.16,1,.3,1) both}@keyframes aitips-slide-in{0%{opacity:0;transform:translate(16px)}to{opacity:1;transform:translate(0)}}.aitips-stage{width:100%;background:var(--canvas);border:1px solid var(--border);border-radius:var(--r-xl);padding:14px 10px;margin-bottom:16px}.aitips-art{width:100%;height:auto;display:block}.aitips-title{margin:0 0 10px;font-size:24px;font-weight:650;letter-spacing:-.4px}.aitips-say{margin:0 0 10px;font-size:var(--fs-lg);line-height:1.65;font-style:italic;color:var(--text);background:var(--warn-bg);border:1px solid rgba(255,196,0,.35);border-radius:var(--r-lg);padding:10px 16px;max-width:480px}.aitips-note{margin:0;font-size:var(--fs-md);line-height:1.6;color:var(--text-2);max-width:460px}.aitips-foot{display:flex;align-items:center;justify-content:space-between;gap:12px;padding-top:14px}.aitips-arrow{width:46px;height:46px;border-radius:50%;border:1px solid var(--border-mid);background:var(--surface);font-size:19px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;transition:background .1s,transform .1s,border-color .1s;flex-shrink:0}.aitips-arrow:hover:not(:disabled){background:var(--surface-sub);transform:scale(1.06)}.aitips-arrow:active:not(:disabled){transform:scale(.94)}.aitips-arrow:disabled{opacity:.25}.aitips-done{height:46px;padding:0 26px;border-radius:23px;font-size:var(--fs-md)}.aitips-dots{display:flex;gap:7px}.aitips-dot{width:8px;height:8px;border-radius:50%;border:none;padding:0;cursor:pointer;background:var(--border-mid);transition:background .15s,transform .15s}.aitips-dot.active{background:#ffc400;transform:scale(1.35)}@media (prefers-reduced-motion: reduce){.aitips-veil{animation:none;backdrop-filter:none;-webkit-backdrop-filter:none;background:#fafaf9eb}.aitips-card,.aitips-slide{animation:none}.aitips-arrow:hover:not(:disabled),.aitips-arrow:active:not(:disabled){transform:none}}.ai-tips-intro{margin:0 0 14px;font-size:var(--fs-md);line-height:1.6}.ai-tips-note{margin:6px 0 0;font-size:var(--fs-sm);color:var(--text-2);line-height:1.55}.ai-tips-footer{margin-top:16px;padding:10px 12px;background:var(--blue-soft);border:1px solid rgba(37,99,235,.15);border-radius:var(--r-lg);color:var(--text)}.ai-tips-done{width:100%;justify-content:center;margin-top:16px}.tour{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300}.tour-scrim{position:absolute;top:0;right:0;bottom:0;left:0;background:#0a0c109e;animation:fade .2s ease}.tour-spot{position:absolute;border-radius:10px;box-shadow:0 0 0 9999px #0a0c109e,0 0 0 2px #2563eb8c,0 0 22px 4px #2563eb59;transition:top .42s cubic-bezier(.16,1,.3,1),left .42s cubic-bezier(.16,1,.3,1),width .42s cubic-bezier(.16,1,.3,1),height .42s cubic-bezier(.16,1,.3,1);pointer-events:none}.tour-spot:after{content:"";position:absolute;top:-3px;right:-3px;bottom:-3px;left:-3px;border-radius:12px;border:2px solid rgba(37,99,235,.45);animation:spot-breathe 2.2s ease-in-out infinite}@keyframes spot-breathe{0%,to{opacity:.9;transform:scale(1)}50%{opacity:.35;transform:scale(1.012)}}.tour-card{position:absolute;z-index:2;width:340px;max-width:calc(100vw - 28px);background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);box-shadow:var(--shadow-xl);overflow:hidden;animation:tour-pop .3s cubic-bezier(.16,1,.3,1);transition:top .42s cubic-bezier(.16,1,.3,1),left .42s cubic-bezier(.16,1,.3,1)}@keyframes tour-pop{0%{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}.tour-progress{display:flex;align-items:center;gap:10px;padding:14px 18px 0}.tour-progress-track{flex:1;height:7px;background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-pill);overflow:hidden}.tour-progress-bar{height:100%;background:var(--blue);border-radius:var(--r-pill);transition:width .42s cubic-bezier(.16,1,.3,1)}.tour-card-body{padding:18px 18px 6px;animation:tour-fade .26s ease}@keyframes tour-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.tour-title{margin:0 0 6px;font-size:var(--fs-lg);font-weight:600;letter-spacing:-.2px}.tour-text{margin:0;font-size:var(--fs-md);line-height:1.6;color:var(--text-2)}.tour-foot{display:flex;align-items:center;gap:4px;padding:12px 16px 14px}.tour-foot-spacer{flex:1}@media (prefers-reduced-motion: reduce){.tour-spot,.tour-card,.tour-progress-bar{transition:none}.tour-scrim,.tour-card,.tour-card-body{animation:none}}.tour-art{width:100%;height:auto;display:block;margin:0 0 12px;background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-lg);padding:6px 0}.ta-pop{opacity:0;transform-box:fill-box;transform-origin:center;animation:ta-pop .5s cubic-bezier(.16,1,.3,1) forwards}@keyframes ta-pop{0%{opacity:0;transform:scale(.6)}to{opacity:1;transform:scale(1)}}.ta-fade{opacity:0;animation:ta-fade-in .45s ease forwards}@keyframes ta-fade-in{to{opacity:1}}.ta-draw{stroke-dasharray:40;stroke-dashoffset:40;animation:ta-draw .55s ease forwards}@keyframes ta-draw{to{stroke-dashoffset:0}}.ta-draw-ring{stroke-dasharray:170;stroke-dashoffset:170;animation:ta-draw-ring .7s ease forwards}@keyframes ta-draw-ring{to{stroke-dashoffset:0}}.ta-caret{animation:ta-caret 1s steps(1) infinite}@keyframes ta-caret{0%,60%{opacity:1}61%,to{opacity:0}}.ta-halo{animation:ta-halo 1.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}@keyframes ta-halo{0%,to{opacity:.5;transform:scale(.92)}50%{opacity:.12;transform:scale(1.06)}}.ta-sweep{animation:ta-sweep 2s ease-in-out infinite}@keyframes ta-sweep{0%,to{opacity:.05}50%{opacity:.16}}.ta-spark{opacity:0;transform-box:fill-box;transform-origin:center;animation:ta-spark .9s ease forwards}@keyframes ta-spark{0%{opacity:0;transform:scale(.3)}45%{opacity:1;transform:scale(1.25)}to{opacity:.85;transform:scale(1)}}.diagram-name.readonly{display:inline-flex;align-items:center;border-color:transparent;background:transparent;cursor:default;-webkit-user-select:none;user-select:none}@media (prefers-reduced-motion: reduce){.ta-pop,.ta-fade,.ta-draw,.ta-draw-ring,.ta-spark{animation:none;opacity:1;stroke-dashoffset:0}.ta-caret,.ta-halo,.ta-sweep{animation:none}.tour-spot:after{animation:none}}.confetti-canvas{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;z-index:1}.greeting-veil{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center;padding-bottom:14vh;pointer-events:none;z-index:250;animation:greeting-veil 2.5s ease forwards}@keyframes greeting-veil{0%{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);background:#fcfbf800}14%,80%{backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px);background:#fcfbf873}to{backdrop-filter:blur(0px);-webkit-backdrop-filter:blur(0px);background:#fcfbf800}}.greeting{display:flex;align-items:center;gap:16px;padding:24px 44px;background:linear-gradient(180deg,#fff,#fffdf6);border:1px solid var(--border);border-radius:var(--r-pill);box-shadow:0 30px 70px -16px #1f293747,0 0 90px 14px #fbd38d38;font-size:33px;font-weight:650;letter-spacing:-.5px;color:var(--text);animation:greeting 2.5s cubic-bezier(.16,1,.3,1) forwards}@keyframes greeting{0%{opacity:0;transform:translateY(20px) scale(.94)}10%{opacity:1;transform:translateY(0) scale(1)}84%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(-14px) scale(.99)}}.greeting-wave{font-size:36px;animation:greeting-wave 1.1s ease .3s 1;transform-origin:70% 70%}@keyframes greeting-wave{0%,to{transform:rotate(0)}25%{transform:rotate(16deg)}50%{transform:rotate(-8deg)}75%{transform:rotate(10deg)}}@media (prefers-reduced-motion: reduce){.greeting-veil{animation:greeting-static 2.5s step-end forwards;backdrop-filter:none;-webkit-backdrop-filter:none;background:none}.greeting,.greeting-wave{animation:none}}@keyframes greeting-static{0%{opacity:1}to{opacity:0}}.admin-client input{height:28px;border:1px solid rgba(37,99,235,.4);border-radius:var(--r);padding:0 8px;font:inherit;font-size:var(--fs-base);width:110px;box-shadow:var(--ring);outline:none}.admin-client-btn{background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r-pill);padding:2px 10px;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--text);cursor:pointer;transition:border-color .1s}.admin-client-btn:hover{border-color:#2563eb66}.admin-client-add{background:none;border:1px dashed var(--border-mid);border-radius:var(--r-pill);padding:2px 10px;font:inherit;font-size:var(--fs-sm);color:var(--text-3);cursor:pointer;transition:color .1s,border-color .1s}.admin-client-add:hover{color:var(--blue);border-color:#2563eb66}.plan-view{position:relative;flex:1;min-height:0;display:flex;flex-direction:column;background:var(--bg)}.plan-topbar{display:flex;align-items:center;gap:12px;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.plan-topbar-title{font-size:var(--fs-sm);font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-2)}.plan-topbar-name{font-size:var(--fs-base);color:var(--text-3);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.plan-topbar-actions{display:flex;gap:8px}.plan-scroll{flex:1;min-height:0;overflow-y:auto}.plan-layout{display:flex;align-items:flex-start;gap:24px;max-width:1600px;margin:0 auto;padding:24px 28px 80px}.plan-side{position:sticky;top:16px;flex:1 1 360px;min-width:300px;max-width:680px}.plan-doc{flex:0 1 860px;min-width:0}@media (max-width: 1120px){.plan-layout{flex-direction:column;align-items:stretch}.plan-side{position:static;flex:none;width:100%;max-width:none}.plan-minimap{height:220px}}.plan-doc h1{font-size:26px;letter-spacing:-.5px;margin:0 0 6px}.plan-doc h2{font-size:17px;letter-spacing:-.2px;margin:0 0 12px}.plan-desc{color:var(--text-2);margin:0 0 12px;line-height:1.6}.plan-muted{color:var(--text-2);font-size:var(--fs-base);margin:0 0 10px;line-height:1.6}.plan-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--r-xl);padding:20px 24px;margin-bottom:16px}.plan-doc>.plan-section:first-child{margin-left:0}.plan-summary{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 4px}.plan-chip{display:inline-flex;align-items:center;gap:5px;border-radius:var(--r-pill);padding:4px 12px;font-size:var(--fs-sm);background:var(--surface-sub);border:1px solid var(--border-mid);color:var(--text-2)}.plan-chip strong{font-size:var(--fs-md);color:var(--text)}.plan-chip.tone-automate{background:var(--ok-bg);border-color:#16a34a4d}.plan-chip.tone-human{background:var(--blue-soft);border-color:#2563eb4d}.plan-chip.tone-phase{background:var(--warn-bg);border-color:#d977064d}.plan-systems{margin:10px 0 0;font-size:var(--fs-base);color:var(--text-2)}.plan-gaps{border-color:#d9770659;background:var(--warn-bg)}.plan-gaps ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.plan-gaps li{line-height:1.55}.plan-link{border:none;background:none;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}.plan-link:hover{text-decoration:underline}.plan-ready{border-color:#16a34a4d;background:var(--ok-bg)}.plan-items{display:flex;flex-direction:column}.plan-row{display:flex;gap:14px;padding:10px 8px;border-bottom:1px solid var(--border);cursor:pointer;border-radius:var(--r)}.plan-row:last-child{border-bottom:none}.plan-row:hover{background:var(--surface-sub)}.plan-ref{flex-shrink:0;min-width:52px;height:22px;padding:0 8px;display:inline-flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:11px;font-weight:600;background:var(--surface-sub);border:1px solid var(--border-mid);border-radius:var(--r);color:var(--text-2)}.plan-ref.ref-start{background:var(--ok-bg);border-color:#16a34a59;color:var(--ok)}.plan-ref.ref-end{background:var(--danger-bg);border-color:#dc26264d;color:var(--danger)}.plan-ref.ref-decision,.plan-ref.ref-wait,.plan-ref.ref-phase{background:var(--warn-bg);border-color:#d9770659;color:var(--warn)}.plan-row-body{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.plan-row-title{font-weight:600;font-size:var(--fs-md);letter-spacing:-.1px;display:flex;align-items:center;gap:8px;flex-wrap:wrap}.plan-kind{font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.4px;padding:2px 8px;border-radius:var(--r-pill)}.plan-kind.tone-automate{background:var(--ok-bg);color:var(--ok)}.plan-kind.tone-human{background:var(--blue-soft);color:var(--blue)}.plan-kind.tone-offscreen{background:var(--surface-sub);color:var(--text-2);border:1px solid var(--border-mid)}.plan-kind.tone-phase,.plan-kind.tone-wait{background:var(--warn-bg);color:var(--warn)}.plan-row-meta{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:var(--fs-sm);color:var(--text-2)}.plan-row-detail{font-size:var(--fs-sm);color:var(--text-3);line-height:1.5}.plan-sig{font-family:var(--mono);font-size:var(--fs-sm);color:var(--text);background:var(--surface-sub);border:1px solid var(--border);border-radius:var(--r);padding:4px 8px;align-self:flex-start}.plan-branches{border-collapse:collapse;font-size:var(--fs-base);margin-top:2px}.plan-branches td{padding:3px 8px 3px 0;vertical-align:top}.plan-branch-cond{font-weight:500;white-space:nowrap}.plan-branch-arrow{color:var(--text-3)}.plan-rule{font-family:var(--mono);font-size:11px;color:var(--text-2);margin-left:8px}.plan-data{width:100%}.plan-minimap{width:100%;height:min(56vh,480px);display:flex;flex-direction:column;border:1px solid var(--border-mid);border-radius:var(--r-xl);background:var(--canvas);box-shadow:var(--shadow);overflow:hidden}.plan-minimap-canvas{position:relative;flex:1;min-height:0}.plan-minimap-canvas .zoom-controls{transform:scale(.85);transform-origin:bottom right;bottom:8px;right:8px}.plan-minimap-canvas .zoom-controls .select-tool,.plan-minimap-canvas .zoom-divider,.plan-minimap-canvas .canvas-empty{display:none}.plan-minimap-bar .breadcrumb{height:30px;padding:0 10px;border-bottom:none;border-top:1px solid var(--border)}.plan-minimap-bar:empty{display:none}@keyframes plan-flash{0%,60%{background:var(--blue-soft)}to{background:transparent}}.plan-row.plan-flash{background:var(--blue-soft);animation:plan-flash 1.5s ease forwards}.plan-mode{display:flex;gap:2px;padding:3px;background:var(--surface-sub);border:1px solid var(--border-mid);border-radius:var(--r-lg)}.plan-mode-btn{border:none;background:none;font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);padding:4px 14px;border-radius:var(--r);cursor:pointer}.plan-mode-btn.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow-sm);font-weight:600}.plan-purpose-field{display:flex;flex-direction:column;gap:4px;margin-bottom:10px}.plan-purpose-field span{font-size:var(--fs-xs);font-weight:600;text-transform:uppercase;letter-spacing:.4px;color:var(--text-2)}.plan-purpose-field input{height:34px;border:1px solid var(--border-mid);border-radius:var(--r);padding:0 10px;font:inherit;font-size:var(--fs-base);color:var(--text);background:var(--surface)}.plan-purpose-field input:focus{outline:none;box-shadow:var(--ring);border-color:var(--blue)}.plan-purpose-hint{margin-top:2px}.plan-refine-intro{border-color:#2563eb40;background:var(--blue-soft)}.plan-ai-error{color:var(--danger);font-size:var(--fs-base);margin:8px 0 0}.plan-ai-notes{margin:10px 0 0;padding-left:20px;display:flex;flex-direction:column;gap:6px}.plan-refine{display:flex;flex-direction:column;gap:8px;margin-top:8px}.plan-refine-chips{display:flex;flex-wrap:wrap;gap:6px}.plan-refine-chip{border:1px solid var(--border-mid);background:var(--surface);font:inherit;font-size:var(--fs-sm);font-weight:500;color:var(--text-2);padding:4px 12px;border-radius:var(--r-pill);cursor:pointer;transition:background .1s,color .1s,border-color .1s}.plan-refine-chip:hover{color:var(--text);background:var(--surface-sub)}.plan-refine-chip.active{font-weight:600}.plan-refine-note{height:30px;border:1px solid var(--border-mid);border-radius:var(--r);padding:0 10px;font:inherit;font-size:var(--fs-sm);color:var(--text);max-width:520px}.plan-refine-note:focus{outline:none;box-shadow:var(--ring);border-color:var(--blue)}.plan-suggestion{display:flex;align-items:center;gap:12px;justify-content:space-between;background:var(--warn-bg);border:1px solid rgba(255,196,0,.4);border-radius:var(--r-lg);padding:8px 12px;font-size:var(--fs-sm);line-height:1.5;max-width:640px}.plan-suggestion .btn{flex-shrink:0}.tone-r-cut{background:var(--danger-bg);color:var(--danger);border-color:#dc26264d}.tone-r-combine{background:var(--surface-sub);color:var(--text-2);border-color:var(--border-mid)}.tone-r-human{background:var(--blue-soft);color:var(--blue);border-color:#2563eb4d}.tone-r-code{background:var(--ok-bg);color:var(--ok);border-color:#16a34a4d}.tone-r-llm,.tone-r-hybrid{background:#fff8d6;color:#8a6a00;border-color:#ffc40080}.plan-kind.tone-r-cut,.plan-kind.tone-r-combine,.plan-kind.tone-r-human,.plan-kind.tone-r-code,.plan-kind.tone-r-llm,.plan-kind.tone-r-hybrid{border:none}.plan-row-cut .plan-row-title{text-decoration:line-through;text-decoration-thickness:1px;color:var(--text-2)}
