.fx-root,.fx-shell{height:100vh;overflow:hidden;background:var(--bg)}.fx-shell{display:flex;flex-direction:column;color:var(--text-1)}.fx-bar{display:flex;align-items:center;gap:12px;height:52px;padding:0 14px;flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border)}.fx-bar-div{width:1px;height:22px;background:var(--border-hi);flex-shrink:0}.fx-title{font-size:var(--text-sm);font-weight:600;color:var(--text-1);white-space:nowrap}.fx-ctx{display:inline-flex;align-items:center;gap:7px;padding:3px 10px 3px 4px;border-radius:var(--r-full);background:var(--surface-hi);border:1px solid var(--border-hi);font-size:var(--text-xs);color:var(--text-2);white-space:nowrap}.fx-ctx .fx-ctx-av{width:22px;height:22px;font-size:10px;border-radius:var(--r-full);display:flex;align-items:center;justify-content:center;font-weight:600}.fx-spacer{flex:1}.fx-save{display:inline-flex;align-items:center;gap:6px;font-size:var(--text-xs);color:var(--text-3);white-space:nowrap}.fx-save .fx-dot{width:7px;height:7px;border-radius:var(--r-full);background:var(--green);flex-shrink:0}.fx-save.saving .fx-dot{background:var(--text-3)}.fx-save.error .fx-dot{background:var(--red)}.fx-save.draft .fx-dot{background:var(--yellow)}.fx-iconbtn{width:32px;height:32px;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:var(--r-sm);border:1px solid transparent;background:transparent;color:var(--text-2);cursor:pointer;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fx-btn,.fx-iconbtn:hover{background:var(--surface-hi);color:var(--text-1)}.fx-btn{display:inline-flex;align-items:center;gap:7px;height:32px;padding:0 14px;border-radius:var(--r-sm);font-size:var(--text-sm);font-weight:500;cursor:pointer;border:1px solid var(--border-hi);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}.fx-btn:hover{border-color:var(--text-3)}.fx-btn-primary{background:var(--accent);border-color:var(--accent);color:white}.fx-btn-primary:hover{background:var(--accent-hi);border-color:var(--accent-hi)}.fx-btn:disabled{opacity:.5;cursor:default}.fx-btn-sm{height:28px;padding:0 11px;font-size:var(--text-xs)}.fx-seg{gap:2px;padding:2px;border-radius:var(--r-sm);background:var(--surface-hi);border:1px solid var(--border-hi)}.fx-seg,.fx-seg-btn{display:inline-flex;align-items:center;flex-shrink:0}.fx-seg-btn{width:30px;height:26px;justify-content:center;border:none;background:transparent;color:var(--text-3);cursor:pointer;border-radius:calc(var(--r-sm) - 2px);transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fx-seg-btn:hover{color:var(--text-1)}.fx-seg-btn.active{background:var(--accent-bg);color:var(--accent-hi);cursor:default}.fx-progress{height:3px;background:var(--surface-hi);flex-shrink:0}.fx-progress-fill{height:100%;background:var(--accent);transition:width var(--dur-slow) var(--ease)}.fx-body{flex:1;display:flex;min-height:0;overflow:hidden}.fx-rail{width:232px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:2px;background:var(--surface)}.fx-step{display:flex;align-items:center;gap:11px;padding:9px 10px;border-radius:var(--r-sm);font-size:var(--text-sm);color:var(--text-2);cursor:pointer;border:none;background:transparent;text-align:left;width:100%;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fx-step:hover{background:var(--surface-hi);color:var(--text-1)}.fx-step.cur{background:var(--accent-bg);color:var(--accent-hi);font-weight:500}.fx-step-ic{width:20px;height:20px;flex-shrink:0;color:var(--text-3);display:flex;align-items:center;justify-content:center}.fx-step.cur .fx-step-ic{color:var(--accent-hi)}.fx-step.done .fx-step-ic{color:var(--green)}.fx-step-num{width:21px;height:21px;flex-shrink:0;border-radius:var(--r-full);border:1.5px solid var(--border-hi);color:var(--text-3);display:flex;align-items:center;justify-content:center;font-size:var(--text-xs)}.fx-step.cur .fx-step-num{border-color:var(--accent);border-width:2px;color:var(--accent-hi)}.fx-step.done .fx-step-num{background:var(--green);border-color:var(--green);color:var(--bg)}.fx-step-label{display:flex;flex-direction:column;min-width:0}.fx-step-sub{font-size:10px;color:var(--text-3);margin-top:1px}.fx-main-col{flex:1;min-width:0;display:flex;overflow:hidden}.fx-main{flex:1;min-width:0;overflow-y:auto;padding:22px 26px}.fx-main-narrow{max-width:760px;margin:0 auto}.fx-preview-pane{width:var(--fx-pv-size,360px);flex-shrink:0;border-left:1px solid var(--border);background:var(--surface);display:flex;flex-direction:column;overflow:hidden;position:relative}.fx-preview-hd{display:flex;align-items:center;gap:7px;padding:11px 14px 10px;border-bottom:1px solid var(--border);font-size:var(--text-xs);font-weight:600;color:var(--text-3);text-transform:uppercase;letter-spacing:.06em;flex-shrink:0}.fx-preview-body{flex:1;overflow-y:auto;min-height:0}.fx-preview-resize{position:absolute;left:0;top:0;bottom:0;width:6px;cursor:col-resize;z-index:2;transition:background var(--dur-fast) var(--ease)}.fx-preview-resize:hover{background:color-mix(in srgb,var(--accent) 18%,transparent)}@media (max-width:959px){.fx-main-col{flex-direction:column}.fx-preview-pane{width:100%;border-left:none;border-top:1px solid var(--border);max-height:var(--fx-pv-size,290px);flex-shrink:0;position:relative}.fx-preview-resize{position:static;width:100%;height:16px;cursor:row-resize;display:flex;align-items:center;justify-content:center;flex-shrink:0}.fx-preview-resize:after{content:"";display:block;width:36px;height:3px;border-radius:2px;background:var(--border-hi)}.fx-preview-resize:hover:after{background:var(--accent-border)}}@media (max-width:767px){.fx-rail{display:none}}@media (max-width:639px){.fx-preview-pane{display:none}}.fx-aside{width:272px;flex-shrink:0;overflow-y:auto;border-left:1px solid var(--border);padding:16px;background:var(--surface)}.fx-aside-h{font-size:var(--text-xs);font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-3);margin-bottom:10px}.fx-panel{display:none}.fx-panel.on{display:block;animation:fx-fade var(--dur-base) var(--ease)}@keyframes fx-fade{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.fx-h{font-size:var(--text-lg);font-weight:600;color:var(--text-1);margin-bottom:5px}.fx-sub{font-size:var(--text-sm);color:var(--text-2);line-height:1.5;margin-bottom:18px}.fx-footer{display:flex;align-items:center;gap:12px;height:56px;padding:0 18px;flex-shrink:0;border-top:1px solid var(--border);background:var(--surface)}.fx-footer-count{flex:1;text-align:center;font-size:var(--text-xs);color:var(--text-3)}.fx-note{display:flex;align-items:center;gap:9px;padding:9px 13px;margin-bottom:16px;border-radius:var(--r-sm);font-size:var(--text-xs);background:var(--accent-bg);border:1px solid var(--accent-border);color:var(--accent-hi)}.fx-note.green{background:var(--green-bg);border-color:color-mix(in srgb,var(--green) 32%,transparent);color:var(--green)}.fx-note.yellow{background:var(--yellow-bg);border-color:color-mix(in srgb,var(--yellow) 32%,transparent);color:var(--yellow)}.fx-zrow{display:flex;align-items:center;gap:12px;margin-bottom:10px}.fx-zname{width:168px;font-size:var(--text-sm);color:var(--text-1)}.fx-zbar{flex:1;height:8px;background:var(--surface-hi);overflow:hidden}.fx-zbar,.fx-zfill{border-radius:var(--r-full)}.fx-zfill{height:100%}.fx-ztag{width:110px;text-align:right;color:var(--text-3)}.fx-chip,.fx-ztag{font-size:var(--text-xs)}.fx-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;margin:0 7px 7px 0;border-radius:var(--r-sm);color:var(--text-2);cursor:pointer;background:var(--surface-hi);border:1px solid var(--border-hi);transition:background var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.fx-chip:hover{border-color:var(--text-3)}.fx-chip.sel{background:var(--accent-bg);border-color:var(--accent-border);color:var(--accent-hi)}.fx-chip .src{font-size:10px;color:var(--text-3)}.fx-assembled{margin-top:14px;padding:13px 15px;min-height:56px;border:1px solid var(--border);border-radius:var(--r-sm);background:var(--surface-hi);font-size:var(--text-sm);line-height:1.6;color:var(--text-1)}.fx-assembled .ph{color:var(--text-3)}.fx-overlay{position:fixed;top:0;bottom:0;right:0;z-index:100;background:var(--bg);overflow:hidden;display:flex;flex-direction:column}.fx-overlay-dim{left:0}.fx-overlay-split{--fx-hub-w:20%;left:var(--fx-hub-w);border-left:1px solid var(--border);box-shadow:-4px 0 24px rgba(0,0,0,.4)}@media (prefers-reduced-motion:reduce){.fx-panel.on{animation:none}}.aba-rail{width:168px;flex-shrink:0;overflow-y:auto;border-right:1px solid var(--border);padding:8px 6px;display:flex;flex-direction:column;gap:0;background:var(--bg)}.aba-rail-phase{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.09em;color:var(--text-3);padding:9px 10px 3px}.aba-rail-item{display:flex;align-items:center;gap:8px;padding:8px 10px;border-radius:var(--r-sm);border:1px solid transparent;cursor:pointer;color:var(--text-2);font-size:13px;line-height:1.2;background:transparent;text-align:left;width:100%;transition:background var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.aba-rail-item:hover{background:var(--surface-hi);color:var(--text-1)}.aba-rail-item.cur{background:var(--surface);color:var(--text-1);font-weight:600;border-color:var(--border-hi);box-shadow:0 1px 4px rgba(0,0,0,.12)}.aba-rail-item-text{flex:1;display:flex;flex-direction:column;min-width:0}.aba-rail-item-sub{font-size:10px;color:var(--text-3);font-weight:400;margin-top:1px}.aba-rail-sep{height:1px;background:var(--border);margin:6px 5px;flex-shrink:0}.aba-rail-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.aba-main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.aba-panels{flex:1;overflow-y:auto;padding:22px 26px;min-height:0}.aba-promptpad{flex-shrink:0;border-top:1px solid var(--border);background:var(--surface);padding:12px 22px 16px}