*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-base: #080808;--bg-surface: #0e0e0e;--bg-elevated: #141414;--bg-hover: #1a1a1a;--bg-selected: #1e1e1e;--border: #1f1f1f;--border-hover: #2e2e2e;--border-focus: #3f3f3f;--text-primary: #e8e8e8;--text-secondary: #a8a8a8;--text-muted: #787878;--accent: #7dd3fc;--accent-dim: #1a3a4a;--font-mono: "Berkeley Mono", "Fira Code", "Cascadia Code", monospace;--font-ui: "DM Sans", system-ui, -apple-system, sans-serif;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 10px;--sidebar-width: 360px;--header-height: 54px}[data-theme=light]{--bg-base: #f8f8f8;--bg-surface: #ffffff;--bg-elevated: #f0f0f0;--bg-hover: #e8e8e8;--bg-selected: #e4eeff;--border: #e0e0e0;--border-hover: #c8c8c8;--border-focus: #a0a0a0;--text-primary: #111111;--text-secondary: #444444;--text-muted: #888888;--accent: #0369a1;--accent-dim: #e0f2fe}html,body,#root{height:100%;width:100%}body{font-family:var(--font-ui);background:var(--bg-base);color:var(--text-primary);font-size:15px;line-height:1.5;-webkit-font-smoothing:antialiased}.app{display:grid;grid-template-columns:var(--sidebar-width) 1fr;height:100vh;overflow:hidden}.sidebar{display:flex;flex-direction:column;background:var(--bg-surface);border-right:1px solid var(--border);overflow:hidden}.sidebar__header{display:flex;align-items:center;justify-content:space-between;padding:0 16px;height:var(--header-height);border-bottom:1px solid var(--border);flex-shrink:0}.sidebar__header-right{display:flex;align-items:center;gap:12px}.view-tabs{display:flex;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);padding:2px;gap:2px}.view-tab{font-family:var(--font-mono);font-size:12px;font-weight:700;letter-spacing:.4px;padding:5px 8px;border:none;border-radius:3px;background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s}.view-tab:hover{color:var(--text-primary)}.view-tab--active{background:var(--bg-hover);color:var(--text-primary);border:1px solid var(--border-hover)}.sidebar__logo{display:flex;align-items:center;gap:8px}.sidebar__logo-mark{color:var(--accent);font-size:16px}.sidebar__logo-text{font-family:var(--font-mono);font-size:15px;font-weight:700;color:var(--text-primary);letter-spacing:-.5px}.status-dot-wrap{display:flex;align-items:center;gap:6px}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--dot-color, #888);flex-shrink:0}.status-dot--pulse{animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.4}}.status-label{font-family:var(--font-mono);font-size:11px;color:var(--text-muted)}.sidebar__controls{padding:12px 12px 8px;border-bottom:1px solid var(--border);flex-shrink:0}.search-input{width:100%;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 12px;font-family:var(--font-mono);font-size:12px;color:var(--text-primary);outline:none;transition:border-color .15s}.search-input::placeholder{color:var(--text-muted)}.search-input:focus{border-color:var(--border-focus)}.method-filters{display:flex;gap:4px;margin-top:8px;flex-wrap:wrap}.method-filter-btn{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s;letter-spacing:.5px}.method-filter-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.method-filter-btn--active{background:var(--bg-hover);border-color:var(--border-focus);color:var(--text-primary)}.version-filters{display:flex;flex-wrap:wrap;gap:4px;padding-top:6px;border-top:1px solid var(--border);margin-top:2px}.version-filter-btn{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s;letter-spacing:.5px}.version-filter-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.version-filter-btn--active{background:#0d1f2b;border-color:#3b82f6;color:#60a5fa}[data-theme=light] .version-filter-btn--active{background:#dbeafe;border-color:#3b82f6;color:#1d4ed8}.sidebar__count{padding:8px 16px;font-size:11px;font-family:var(--font-mono);color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0}.route-list{flex:1;overflow-y:auto;padding:4px 0}.route-list::-webkit-scrollbar{width:4px}.route-list::-webkit-scrollbar-track{background:transparent}.route-list::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:2px}.route-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 16px;background:transparent;border:none;border-bottom:1px solid transparent;cursor:pointer;text-align:left;transition:background .1s;position:relative}.route-row:hover{background:var(--bg-hover)}.route-row--selected{background:var(--bg-selected);border-left:2px solid var(--accent);padding-left:14px}.route-row--selected:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--accent)}.method-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 6px;border-radius:var(--radius-sm);flex-shrink:0;letter-spacing:.5px;min-width:52px;text-align:center;display:inline-flex;align-items:center;justify-content:center;line-height:1}.route-path{font-family:var(--font-mono);font-size:14px;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.route-tag{font-family:var(--font-mono);font-size:9px;padding:1px 5px;border-radius:3px;flex-shrink:0;letter-spacing:.3px}.route-tag--schema{background:#0d2b1a;border:1px solid #166534;color:#4ade80}.route-auth-lock{font-size:10px;flex-shrink:0;opacity:.6}.route-arrow{color:var(--text-muted);font-size:14px;flex-shrink:0;transition:color .1s}.route-row:hover .route-arrow,.route-row--selected .route-arrow{color:var(--text-secondary)}.sidebar__footer{display:flex;flex-direction:column;gap:8px;padding:10px 16px;border-top:1px solid var(--border);flex-shrink:0}.sidebar__footer-top{display:flex;justify-content:space-between;align-items:center}.sidebar__footer .muted{color:var(--text-secondary)}.openapi-link{font-size:11px;color:var(--text-muted);text-decoration:none;letter-spacing:.02em;transition:color .15s}.openapi-link:hover{color:var(--accent)}.pr-badge-banner{display:flex;align-items:center;justify-content:space-between;padding:6px 8px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);gap:8px}.pr-badge-banner__label{font-size:10px;color:var(--text-muted);letter-spacing:.04em;font-family:var(--font-mono);white-space:nowrap}.pr-badge-banner__btn{font-size:10px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--accent);background:transparent;border:1px solid var(--accent-dim);border-radius:var(--radius-sm);padding:2px 8px;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s;flex-shrink:0}.pr-badge-banner__btn:hover{background:var(--accent-dim)}.route-group-header{padding:8px 16px 4px;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted);border-top:1px solid var(--border);margin-top:4px}.route-group-header:first-child{margin-top:0;border-top:none}.sidebar__section-title{padding:10px 16px 8px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);border-bottom:1px solid var(--border);flex-shrink:0}.chain-sidebar-row{display:flex;align-items:center;gap:8px;padding:8px 12px 8px 16px;border-bottom:1px solid var(--border);transition:background .1s;width:100%;background:transparent;border-left:none;border-right:none;border-top:none;text-align:left;cursor:pointer}.chain-sidebar-row:hover{background:var(--bg-hover)}.chain-sidebar-row:hover .chain-sidebar-add{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.chain-sidebar-path{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chain-sidebar-add{background:transparent;border:1px solid var(--border-hover);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;font-size:16px;line-height:1;padding:1px 7px;flex-shrink:0;transition:all .1s}.chain-sidebar-add:hover{border-color:var(--accent);color:var(--accent);background:var(--accent-dim)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;gap:8px;text-align:center;color:var(--text-muted);font-size:13px}.empty-state__icon{font-size:24px;margin-bottom:8px;color:var(--text-muted)}.empty-state__sub{font-size:12px;color:var(--text-muted);opacity:.7}.empty-state__code{font-family:var(--font-mono);font-size:11px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;text-align:left;color:var(--text-secondary);margin-top:12px;line-height:1.8}.empty-state__spinner{width:20px;height:20px;border:2px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:12px}@keyframes spin{to{transform:rotate(360deg)}}.main{overflow-y:auto;background:var(--bg-base)}.detail-placeholder{height:100%;display:flex;align-items:center;justify-content:center}.detail-placeholder__inner{display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--text-muted)}.detail-placeholder__glyph{font-size:32px;color:var(--border-hover)}.detail-panel{padding:36px 44px;max-width:820px}.detail-panel__header{display:flex;flex-direction:column;gap:8px;margin-bottom:32px;padding-bottom:20px;border-bottom:1px solid var(--border)}.detail-panel__header-row{display:flex;align-items:center;gap:12px}.detail-panel__summary{font-size:15px;font-weight:500;color:var(--text-primary);line-height:1.4}.detail-panel__description{font-size:13px;color:var(--text-secondary);line-height:1.6}.detail-panel__path{font-family:var(--font-mono);font-size:20px;color:var(--text-primary);font-weight:400}.detail-panel__section{margin-bottom:28px}.detail-panel__section-title{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:1px;color:var(--text-secondary);margin-bottom:10px}.auth-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);border:1px solid;flex-shrink:0;letter-spacing:.3px}.auth-badge--bearer{background:#1a2b1a;border-color:#22c55e44;color:#4ade80}.auth-badge--apiKey{background:#1a1a2b;border-color:#3b82f644;color:#60a5fa}.auth-badge--basic{background:#2b1a1a;border-color:#ef444444;color:#f87171}.auth-badge--oauth2{background:#1f1a2b;border-color:#a78bfa44;color:#c4b5fd}.auth-info{background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 16px;margin-bottom:20px}.auth-info__title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);margin-bottom:10px}.auth-info__row{display:flex;align-items:center;gap:8px;margin-bottom:6px;font-size:13px}.auth-info__row:last-child{margin-bottom:0}.auth-info__label{font-size:11px;color:var(--text-muted);min-width:48px}.auth-info__value{color:var(--text-secondary);font-size:13px}.example-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-muted);margin-bottom:6px}.example-code{font-family:var(--font-mono);font-size:12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:12px 14px;color:var(--text-secondary);overflow-x:auto;line-height:1.6}.middleware-chain{display:flex;flex-direction:column;gap:4px}.middleware-item{display:flex;align-items:center;gap:10px;padding:8px 12px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);font-size:12px}.middleware-item__idx{color:var(--text-muted);width:16px;text-align:center;flex-shrink:0}.middleware-item__name{color:var(--text-primary)}.schema-block{padding:12px 16px;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:12px}.schema-block--present{background:#0d2b1a;border:1px solid #166534;color:#4ade80}.schema-block--empty{background:var(--bg-surface);border:1px solid var(--border);color:var(--text-muted);display:flex;flex-direction:column;gap:4px}.playground-coming{padding:20px;border:1px dashed var(--border);border-radius:var(--radius-md);text-align:center;color:var(--text-muted);font-size:13px}.muted{color:var(--text-muted);font-size:12px}.hint{font-family:var(--font-mono);font-size:11px}code{font-family:var(--font-mono);background:var(--bg-elevated);padding:1px 4px;border-radius:3px;font-size:11px;color:var(--accent)}.detail-tabs{display:flex;gap:2px;border-bottom:1px solid var(--border);margin-bottom:24px;padding:0}.detail-tab{font-family:var(--font-ui);font-size:13px;font-weight:500;padding:8px 16px;background:transparent;border:none;border-bottom:2px solid transparent;color:var(--text-secondary);cursor:pointer;transition:all .12s;margin-bottom:-1px}.detail-tab:hover{color:var(--text-primary)}.detail-tab--active{color:var(--text-primary);border-bottom-color:var(--accent)}.schema-tree{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden}.schema-tree__header{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.schema-tree__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary)}.confidence-badge{font-family:var(--font-mono);font-size:11px;padding:2px 7px;border-radius:3px;border:1px solid}.schema-tree__body{padding:6px 0;background:var(--bg-base)}.schema-field-group{display:flex;flex-direction:column}.schema-field{display:flex;align-items:center;gap:8px;padding:6px 14px;font-family:var(--font-mono);font-size:13px;flex-wrap:wrap;min-height:30px}.schema-field:hover{background:var(--bg-hover)}.schema-children{border-left:1px solid var(--border);margin-left:28px}.field-name{color:var(--text-primary);min-width:80px}.field-name--items{color:var(--text-muted);font-style:italic}.field-required{font-size:10px;color:#f87171;border:1px solid #7f1d1d;background:#2b0d0d;padding:1px 5px;border-radius:3px;letter-spacing:.3px}.type-pill{font-family:var(--font-mono);font-size:12px;padding:1px 7px;border-radius:3px;border:1px solid}.field-enum{font-size:12px;color:var(--text-secondary);font-style:italic}.field-union{display:flex;gap:4px;align-items:center}.field-desc{font-size:12px;color:var(--text-secondary);font-style:italic;font-family:var(--font-ui)}.schema-empty{padding:16px}.schema-no-data{padding:8px 0;color:var(--text-secondary);font-size:13px;line-height:1.7}.schema-no-data code{font-family:var(--font-mono);background:var(--bg-elevated);padding:1px 5px;border-radius:3px;color:var(--accent);font-size:12px}.route-tag{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0}.route-tag--confirmed{background:#0d2b1a;border:1px solid #166534;color:#4ade80}.route-tag--inferred{background:#2b200d;border:1px solid #854d0e;color:#fbbf24}.playground{display:flex;flex-direction:column;gap:16px}.playground__url-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--bg-surface);border:1px solid var(--border);border-radius:var(--radius-md)}.playground__method{font-family:var(--font-mono);font-size:12px;font-weight:700;color:var(--accent);flex-shrink:0;min-width:56px}.playground__url-parts{display:flex;align-items:center;flex:1;flex-wrap:wrap;gap:0;font-family:var(--font-mono);font-size:13px}.url-segment{display:flex;align-items:center}.url-slash{color:var(--text-muted)}.url-static{color:var(--text-primary)}.url-param-input{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:3px;color:var(--text-primary);padding:1px 6px;width:auto;min-width:60px;max-width:140px;outline:none;transition:border-color .12s}.url-param-input:focus{border-color:var(--border-focus)}.playground__send-btn{font-family:var(--font-mono);font-size:12px;font-weight:700;padding:6px 18px;background:var(--accent);color:#000;border:none;border-radius:var(--radius-sm);cursor:pointer;flex-shrink:0;transition:opacity .12s;display:inline-flex;align-items:center;justify-content:center;line-height:1}.playground__send-btn:hover{opacity:.85}.playground__send-btn:disabled{opacity:.4;cursor:not-allowed}.playground__send-btn--loading{opacity:.6}.playground__section{display:flex;flex-direction:column;gap:6px}.detail-panel__section--flush .playground{padding:0}.playground__section-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.load-example-btn{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-hover);background:transparent;color:var(--accent);cursor:pointer;margin-left:auto;letter-spacing:.3px;transition:all .12s;text-transform:none}.load-example-btn:hover{background:var(--accent-dim);border-color:var(--accent)}.kv-editor{display:flex;flex-direction:column;gap:4px}.kv-editor__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);margin-bottom:2px}.kv-editor__row{display:flex;align-items:center;gap:6px}.kv-input{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:5px 8px;width:120px;outline:none;transition:border-color .12s}.kv-input:focus{border-color:var(--border-focus)}.kv-input--value{flex:1;width:auto}.kv-sep{color:var(--text-muted);font-family:var(--font-mono)}.kv-btn-remove{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:16px;padding:0 4px;line-height:1;transition:color .1s}.kv-btn-remove:hover{color:#f87171}.kv-btn-add{font-family:var(--font-mono);font-size:11px;background:transparent;border:1px dashed var(--text-secondary);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;padding:4px 10px;align-self:flex-start;transition:all .12s;margin-top:2px}.kv-btn-add:hover{border-color:var(--border-focus);color:var(--text-secondary)}.schema-body-editor{display:flex;flex-direction:column;gap:4px;border:1px solid var(--border);border-radius:var(--radius-sm);padding:6px 8px;background:var(--bg-elevated)}.schema-body-row{display:flex;align-items:center;gap:4px;min-height:28px}.schema-body-key{font-family:var(--font-mono);font-size:13px;color:var(--text-primary);min-width:100px;max-width:150px;flex-shrink:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:flex;align-items:center;gap:3px}.schema-body-key--required{color:var(--text-primary)}.schema-body-required{color:#f87171;font-size:11px;line-height:1}.schema-body-value{font-family:var(--font-mono);font-size:11px;background:var(--bg-surface);border:1px solid var(--border-hover);border-radius:var(--radius-sm);color:var(--text-primary);padding:4px 6px;flex:1;min-width:0;outline:none;transition:border-color .12s}.schema-body-value:focus{border-color:var(--border-focus)}.schema-body-value::placeholder{color:var(--text-muted);opacity:.8}.body-error{font-family:var(--font-mono);font-size:10px;color:#f87171;background:#2b0d0d;border:1px solid #7f1d1d;padding:1px 6px;border-radius:3px}.body-editor{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--text-primary);padding:10px 12px;resize:vertical;width:100%;outline:none;line-height:1.6;-moz-tab-size:2;tab-size:2;transition:border-color .12s}.body-editor:focus{border-color:var(--border-focus)}.body-editor--error{border-color:#991b1b}.playground__response{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;animation:fade-in .15s ease}@keyframes fade-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.response__meta{display:flex;align-items:center;gap:10px;padding:8px 14px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.response__label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary)}.status-badge{font-family:var(--font-mono);font-size:12px;font-weight:700;padding:2px 8px;border-radius:3px;border:1px solid}.response__timing{font-family:var(--font-mono);font-size:11px;color:var(--text-muted);margin-left:auto}.response__body{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);padding:14px 16px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:400px;overflow-y:auto;background:var(--bg-base);line-height:1.6}.response__error{font-family:var(--font-mono);font-size:12px;color:#f87171;padding:14px 16px;background:var(--bg-base)}.detail-panel__section--flush{margin:0 -40px;padding:0 40px}.main--chain{overflow:hidden;display:flex;flex-direction:column}.chain-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:12px;color:var(--text-muted);font-size:13px}.chain-builder{display:grid;grid-template-columns:1fr;height:100%;overflow:hidden}.chain-builder__picker{display:flex;flex-direction:column;border-right:1px solid var(--border);background:var(--bg-surface);overflow:hidden}.chain-builder__picker-title{padding:12px 14px 10px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-muted);border-bottom:1px solid var(--border);flex-shrink:0}.chain-builder__picker-hint{font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--text-muted);opacity:.6}.chain-builder__picker-list{overflow-y:auto;flex:1;padding:4px 0}.chain-builder__empty{padding:20px 14px;font-size:12px;color:var(--text-muted);text-align:center}.chain-picker-row{display:flex;align-items:center;gap:10px;width:100%;padding:10px 14px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .1s}.chain-picker-row:hover{background:var(--bg-hover)}.chain-picker-badge{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.4px;padding:2px 8px;border-radius:3px;border:1px solid;flex-shrink:0;min-width:52px;text-align:center;display:inline-flex;align-items:center;justify-content:center;line-height:1}.chain-picker-path{font-family:var(--font-mono);font-size:13px;color:var(--text-secondary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chain-picker-add{font-size:16px;color:var(--text-muted);flex-shrink:0;line-height:1}.chain-picker-row:hover .chain-picker-add{color:var(--accent)}.chain-builder__canvas{position:relative;height:100%}.chain-cycle-error{position:absolute;top:12px;left:50%;transform:translate(-50%);z-index:10;background:#2b0d0d;border:1px solid #991b1b;border-radius:var(--radius-md);color:#f87171;font-family:var(--font-mono);font-size:12px;padding:8px 16px;pointer-events:none;white-space:nowrap}.chain-canvas-hint{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--text-muted);font-size:13px;pointer-events:none;z-index:5}.chain-canvas-hint__glyph{font-size:28px;color:var(--border-hover);margin-bottom:4px}.chain-canvas-hint__sub{font-size:12px;color:var(--text-muted);opacity:.6}.chain-node{background:var(--bg-elevated);border:1px solid #2a2a2a;border-radius:var(--radius-sm);padding:3px 5px;min-width:66px;max-width:120px;display:flex;flex-direction:column;gap:2px;transition:border-color .15s}.chain-node--selected{box-shadow:0 0 0 1px currentColor}.chain-node__top{display:flex;align-items:center;justify-content:space-between;gap:2px}.chain-node__badge{font-family:var(--font-mono);font-size:6px;font-weight:700;letter-spacing:.4px;padding:2px 3px;border-radius:1px;border:1px solid;display:inline-flex;align-items:center;justify-content:center;line-height:1}.chain-node__delete{background:transparent;border:none;color:var(--text-muted);cursor:pointer;font-size:8px;line-height:1;padding:0 1px;border-radius:2px;transition:color .1s,background .1s;flex-shrink:0}.chain-node__delete:hover{color:#f87171;background:#ef444426}.chain-node__path{font-family:var(--font-mono);font-size:7px;color:var(--text-primary);word-break:break-all;line-height:1.3}.chain-handle{width:6px!important;height:6px!important;background:var(--bg-surface)!important;border:2px solid var(--border-focus)!important}.chain-handle:hover{border-color:var(--accent)!important;background:var(--accent-dim)!important}.chain-clear-btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .12s}.chain-clear-btn:hover{border-color:var(--border-hover);color:var(--text-primary)}.env-switcher{display:flex;align-items:center;gap:5px}.env-switcher__label{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.8px;color:var(--text-primary);text-transform:uppercase;flex-shrink:0}.env-switcher__input{font-family:var(--font-mono);font-size:11px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:3px 6px;width:120px;outline:none;transition:border-color .12s}.env-switcher__input::placeholder{color:var(--text-secondary);font-style:italic}.env-switcher__input:focus{border-color:var(--border-focus)}.baseline-bar{display:flex;align-items:center;justify-content:space-between;padding:7px 12px;background:#0a1f0a;border:1px solid #166534;border-radius:var(--radius-md);font-family:var(--font-mono);font-size:11px;color:#4ade80}.baseline-bar__clear{background:transparent;border:1px solid #166534;border-radius:3px;color:#4ade80;font-family:var(--font-mono);font-size:10px;padding:2px 8px;cursor:pointer;transition:all .12s;flex-shrink:0}.baseline-bar__clear:hover{background:#166534;color:#f0fdf4}.save-baseline-btn{font-family:var(--font-mono);font-size:11px;background:transparent;border:1px solid var(--border-hover);border-radius:3px;color:var(--text-secondary);padding:2px 8px;cursor:pointer;transition:all .12s;white-space:nowrap}.save-baseline-btn:hover{border-color:#4ade80;color:#4ade80;background:#0a1f0a}.diff-view{border-top:1px solid var(--border);background:var(--bg-base)}.diff-view__header{display:flex;align-items:center;justify-content:space-between;padding:7px 16px;background:var(--bg-surface);border-bottom:1px solid var(--border);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary)}.diff-view__count{font-family:var(--font-mono);font-size:11px}.diff-identical{padding:12px 16px;font-family:var(--font-mono);font-size:12px;color:#4ade80;background:#0a1f0a}.diff-row{display:flex;align-items:baseline;gap:8px;padding:5px 16px;font-family:var(--font-mono);font-size:12px;border-bottom:1px solid var(--border);min-height:28px}.diff-row--added{background:#0a1f0a}.diff-row--removed{background:#1f0a0a}.diff-row--changed{background:#1a140a}.diff-row__status{width:12px;font-weight:700;flex-shrink:0}.diff-row--added .diff-row__status{color:#4ade80}.diff-row--removed .diff-row__status{color:#f87171}.diff-row--changed .diff-row__status{color:#fbbf24}.diff-row__path{color:var(--text-secondary);min-width:100px;flex-shrink:0}.diff-row__was{color:#f87171;opacity:.85;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-row__now{color:#4ade80;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-row__arrow{color:var(--text-muted);flex-shrink:0}.chain-panel-actions{display:flex;gap:6px;align-items:center}.chain-sim-btn{font-family:var(--font-mono);font-size:11px;padding:5px 12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;transition:all .12s}.chain-sim-btn:hover{border-color:var(--accent);color:var(--accent)}.chain-sim-btn--active{background:var(--accent-dim);border-color:var(--accent);color:var(--accent)}.chain-builder--sim{grid-template-columns:1fr 300px}.sim-panel{display:flex;flex-direction:column;border-left:1px solid var(--border);background:var(--bg-surface);overflow:hidden}.sim-panel__header{display:flex;align-items:center;justify-content:space-between;padding:10px 14px;border-bottom:1px solid var(--border);flex-shrink:0;gap:8px}.sim-panel__title{font-family:var(--font-mono);font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:var(--text-secondary)}.sim-panel__header-actions{display:flex;align-items:center;gap:6px}.sim-run-btn{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:4px 12px;background:var(--accent);color:#000;border:none;border-radius:var(--radius-sm);cursor:pointer;transition:opacity .12s;white-space:nowrap}.sim-run-btn:hover{opacity:.85}.sim-run-btn:disabled{opacity:.4;cursor:not-allowed}.sim-clear-btn{font-family:var(--font-mono);font-size:11px;font-weight:600;padding:4px 10px;background:transparent;color:var(--text-muted);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;transition:all .12s;white-space:nowrap}.sim-clear-btn:hover{border-color:var(--border-hover);color:var(--text-secondary)}.sim-clear-btn:disabled{opacity:.3;cursor:not-allowed}.sim-close-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-muted);font-size:13px;width:24px;height:24px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:all .12s;flex-shrink:0}.sim-close-btn:hover{border-color:var(--border-hover);color:var(--text-secondary)}.sim-empty{padding:24px 16px;font-size:12px;color:var(--text-muted);text-align:center}.sim-steps{flex:1;overflow-y:auto}.sim-steps::-webkit-scrollbar{width:4px}.sim-steps::-webkit-scrollbar-track{background:transparent}.sim-steps::-webkit-scrollbar-thumb{background:var(--border-hover);border-radius:2px}.sim-step{border-bottom:1px solid var(--border);transition:background .1s}.sim-step--running{background:var(--bg-elevated)}.sim-step__header{display:flex;align-items:center;gap:7px;width:100%;padding:7px 10px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .1s}.sim-step__header:hover{background:var(--bg-hover)}.sim-step__num{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);width:14px;flex-shrink:0;text-align:center}.sim-step__badge{font-family:var(--font-mono);font-size:10px;font-weight:700;letter-spacing:.4px;padding:1px 6px;border-radius:3px;border:1px solid;flex-shrink:0;min-width:46px;text-align:center;display:inline-flex;align-items:center;justify-content:center;line-height:1}.sim-step__path{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sim-step__code{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0}.sim-step__code--ok{color:#4ade80;background:#0a1f0a;border:1px solid #166534}.sim-step__code--err{color:#f87171;background:#1f0a0a;border:1px solid #7f1d1d}.sim-step__spinner{width:10px;height:10px;border:1.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}.sim-step__chevron{font-size:11px;color:var(--text-muted);flex-shrink:0}.sim-step__body{padding:6px 10px 10px;display:flex;flex-direction:column;gap:8px}.sim-input-group{display:flex;flex-direction:column;gap:5px}.sim-input-group__label{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--text-secondary);display:flex;align-items:center;gap:8px}.sim-hint{font-family:var(--font-mono);font-size:10px;color:var(--text-muted);font-weight:400;text-transform:none;letter-spacing:0;opacity:.9}.sim-param-row{display:flex;align-items:center;gap:6px}.sim-param-name{font-family:var(--font-mono);font-size:12px;color:var(--accent);min-width:60px;flex-shrink:0}.sim-param-input{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:4px 7px;flex:1;outline:none;transition:border-color .12s}.sim-param-input:focus{border-color:var(--border-focus)}.sim-body-editor{font-family:var(--font-mono);font-size:12px;background:var(--bg-elevated);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--text-primary);padding:7px 9px;resize:vertical;width:100%;outline:none;line-height:1.6;-moz-tab-size:2;tab-size:2;transition:border-color .12s}.sim-body-editor:focus{border-color:var(--border-focus)}.sim-result{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.sim-result--error{border-color:#7f1d1d}.sim-result__meta{padding:5px 10px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.sim-result__code{font-family:var(--font-mono);font-size:12px;font-weight:700}.sim-result__code--ok{color:#4ade80}.sim-result__code--err{color:#f87171}.sim-result__error{font-family:var(--font-mono);font-size:12px;color:#f87171;padding:8px 10px;background:#1f0a0a}.sim-result__body{font-family:var(--font-mono);font-size:12px;color:var(--text-primary);padding:8px 10px;margin:0;overflow-x:auto;white-space:pre-wrap;word-break:break-word;max-height:180px;overflow-y:auto;background:var(--bg-base);line-height:1.5}.sim-panel__footer{padding:8px 14px;border-top:1px solid var(--border);flex-shrink:0;font-size:11px}.react-flow__node{will-change:transform}.chain-builder__canvas{touch-action:none;-webkit-user-select:none;user-select:none}.react-flow__controls{background:var(--bg-elevated)!important;border:1px solid var(--border)!important;border-radius:var(--radius-md)!important}.react-flow__controls-button{background:transparent!important;border-bottom-color:var(--border)!important;color:var(--text-secondary)!important;fill:var(--text-secondary)!important}.react-flow__controls-button:hover{background:var(--bg-hover)!important}.react-flow__panel{background:transparent!important;box-shadow:none!important}[data-theme=light] .schema-block--present,[data-theme=light] .route-tag--confirmed{background:#f0fdf4;border-color:#86efac;color:#166534}[data-theme=light] .route-tag--inferred{background:#fffbeb;border-color:#fcd34d;color:#92400e}[data-theme=light] .field-required{color:#dc2626;border-color:#fca5a5;background:#fef2f2}[data-theme=light] .body-error{color:#dc2626;background:#fef2f2;border-color:#fca5a5}[data-theme=light] .body-editor--error{border-color:#dc2626}[data-theme=light] .auth-badge--bearer{background:#f0fdf4;border-color:#86efac44;color:#166534}[data-theme=light] .auth-badge--apiKey{background:#eff6ff;border-color:#93c5fd44;color:#1d4ed8}[data-theme=light] .auth-badge--basic{background:#fef2f2;border-color:#fca5a544;color:#dc2626}[data-theme=light] .auth-badge--oauth2{background:#faf5ff;border-color:#c4b5fd44;color:#7c3aed}[data-theme=light] .baseline-bar{background:#f0fdf4;border-color:#86efac;color:#166534}[data-theme=light] .baseline-bar__clear{border-color:#86efac;color:#166534}[data-theme=light] .baseline-bar__clear:hover{background:#86efac;color:#052e16}[data-theme=light] .save-baseline-btn:hover{border-color:#166534;color:#166534;background:#f0fdf4}[data-theme=light] .diff-identical{background:#f0fdf4;color:#166534}[data-theme=light] .diff-row--added{background:#f0fdf4}[data-theme=light] .diff-row--removed{background:#fef2f2}[data-theme=light] .diff-row--changed{background:#fffbeb}[data-theme=light] .chain-cycle-error{background:#fef2f2;border-color:#fca5a5;color:#dc2626}[data-theme=light] .sim-step__code--ok{color:#166534;background:#f0fdf4;border-color:#86efac}[data-theme=light] .sim-step__code--err{color:#dc2626;background:#fef2f2;border-color:#fca5a5}[data-theme=light] .route-tag--deprecated,[data-theme=light] .deprecated-badge{background:#fffbeb;border-color:#fcd34d;color:#92400e}[data-theme=light] .react-flow__background{background-color:var(--bg-base)!important}.tour-target{outline:2px solid var(--accent)!important;outline-offset:4px!important;border-radius:var(--radius-sm);position:relative;z-index:1}.tour-card{position:fixed;bottom:28px;left:50%;transform:translate(-50%);width:360px;max-width:calc(100vw - 32px);background:var(--bg-elevated);border:1px solid var(--border-focus);border-radius:var(--radius-lg);padding:18px 20px 14px;box-shadow:0 8px 40px #000000b3,0 0 0 1px #7dd3fc14;z-index:9999;animation:tour-in .18s ease}@keyframes tour-in{0%{opacity:0;transform:translate(-50%) translateY(8px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tour-card__header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.tour-card__step{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);flex-shrink:0}.tour-card__title{font-size:14px;font-weight:600;color:var(--text-primary);flex:1}.tour-card__skip{background:transparent;border:none;color:var(--text-muted);font-size:14px;cursor:pointer;padding:0 2px;line-height:1;transition:color .1s}.tour-card__skip:hover{color:var(--text-secondary)}.tour-card__body{font-size:13px;color:var(--text-secondary);line-height:1.65;margin-bottom:14px}.tour-card__actions{display:flex;gap:8px;align-items:center;justify-content:flex-end}.tour-btn{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:5px 14px;border-radius:var(--radius-sm);cursor:pointer;transition:all .12s;border:1px solid}.tour-btn--ghost{background:transparent;border-color:var(--border);color:var(--text-muted)}.tour-btn--ghost:hover{border-color:var(--border-hover);color:var(--text-secondary)}.tour-btn--primary{background:var(--accent);border-color:var(--accent);color:#000}.tour-btn--primary:hover{opacity:.85}.tour-trigger-btn{font-family:var(--font-mono);font-size:10px;font-weight:700;width:20px;height:20px;border-radius:50%;border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;flex-shrink:0}.tour-trigger-btn:hover{border-color:var(--accent);color:var(--accent)}.theme-toggle-btn{font-size:13px;width:22px;height:22px;border-radius:var(--radius-sm);border:1px solid var(--border);background:transparent;color:var(--text-muted);cursor:pointer;transition:all .12s;display:flex;align-items:center;justify-content:center;flex-shrink:0;line-height:1}.theme-toggle-btn:hover{border-color:var(--accent);color:var(--accent)}.route-row--deprecated{opacity:.7}.route-path--deprecated{text-decoration:line-through;text-decoration-color:var(--text-muted)}.route-tag--deprecated{background:#2b1f0a;border:1px solid #92400e;color:#fbbf24;font-family:var(--font-mono);font-size:9px;font-weight:700;padding:1px 5px;border-radius:3px;flex-shrink:0}.deprecated-badge{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 7px;border-radius:var(--radius-sm);border:1px solid #92400e;background:#2b1f0a;color:#fbbf24;flex-shrink:0;letter-spacing:.3px}.openapi-links{display:flex;gap:6px;align-items:center}.code-snippets{border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;margin-top:4px}.code-snippets__header{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;background:var(--bg-surface);border-bottom:1px solid var(--border)}.code-snippets__tabs{display:flex;gap:2px}.code-snippet-tab{font-family:var(--font-mono);font-size:11px;font-weight:700;padding:3px 9px;border-radius:var(--radius-sm);border:1px solid transparent;background:transparent;color:var(--text-muted);cursor:pointer;transition:all .1s;letter-spacing:.2px}.code-snippet-tab:hover{color:var(--text-secondary)}.code-snippet-tab--active{background:var(--bg-elevated);border-color:var(--border-hover);color:var(--text-primary)}.code-snippet-copy{font-family:var(--font-mono);font-size:10px;font-weight:700;padding:2px 8px;border-radius:var(--radius-sm);border:1px solid var(--border-hover);background:transparent;color:var(--accent);cursor:pointer;transition:all .12s;letter-spacing:.2px}.code-snippet-copy:hover{background:var(--accent-dim);border-color:var(--accent)}.code-snippets__body{font-family:var(--font-mono);font-size:11px;color:var(--text-secondary);background:var(--bg-base);padding:12px 14px;margin:0;overflow-x:auto;white-space:pre;line-height:1.6;max-height:220px;overflow-y:auto}.chain-builder__picker-footer{padding:8px 12px;border-top:1px solid var(--border);flex-shrink:0;display:flex;align-items:center;gap:6px}.chain-env-label{font-family:var(--font-mono);font-size:9px;font-weight:700;letter-spacing:.8px;color:var(--text-muted);text-transform:uppercase;flex-shrink:0}.chain-env-value{font-family:var(--font-mono);font-size:10px;color:var(--accent);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.chain-env-hint{font-family:var(--font-mono);font-size:9px;color:var(--text-muted);flex-shrink:0}
