:root{--bg-app: #ffffff;--bg-panel: #ffffff;--bg-panel-header: #fafafa;--bg-input: #ffffff;--bg-code: #fcfcfd;--bg-hover: #f4f4f5;--bg-active: #e4e4e7;--bg-muted: #f4f4f5;--bg-popover: #ffffff;--border-color: #e4e4e7;--border-subtle: #f4f4f5;--border-focus: #18181b;--text-main: #09090b;--text-muted: #71717a;--text-dim: #a1a1aa;--btn-primary-bg: #18181b;--btn-primary-fg: #fafafa;--btn-primary-hover: #27272a;--btn-ghost-fg: #71717a;--btn-ghost-hover-bg: #f4f4f5;--btn-ghost-hover-fg: #09090b;--syn-key: #0284c7;--syn-string: #059669;--syn-number: #ea580c;--syn-boolean: #7c3aed;--syn-null: #64748b;--syn-brace: #c026d3;--syn-bracket: #2563eb;--syn-colon: #71717a;--syn-comma: #a1a1aa;--syn-gutter: #a1a1aa;--accent-cyan: #0284c7;--accent-green: #10b981;--accent-amber: #f59e0b;--accent-red: #ef4444;--badge-green-bg: rgba(16, 185, 129, .09);--badge-green-border: rgba(16, 185, 129, .25);--badge-green-text: #059669;--badge-amber-bg: rgba(245, 158, 11, .09);--badge-amber-border: rgba(245, 158, 11, .25);--badge-amber-text: #d97706;--badge-red-bg: rgba(239, 68, 68, .09);--badge-red-border: rgba(239, 68, 68, .25);--badge-red-text: #dc2626;--badge-cyan-bg: rgba(2, 132, 199, .09);--badge-cyan-border: rgba(2, 132, 199, .25);--badge-cyan-text: #0284c7;--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}[data-theme=dark]{--bg-app: #09090b;--bg-panel: #09090b;--bg-panel-header: #121215;--bg-input: #0c0c0e;--bg-code: #0b0b0e;--bg-hover: #18181b;--bg-active: #27272a;--bg-muted: #18181b;--bg-popover: #121215;--border-color: #27272a;--border-subtle: #1f1f23;--border-focus: #fafafa;--text-main: #fafafa;--text-muted: #a1a1aa;--text-dim: #71717a;--btn-primary-bg: #fafafa;--btn-primary-fg: #09090b;--btn-primary-hover: #e4e4e7;--btn-ghost-fg: #a1a1aa;--btn-ghost-hover-bg: #18181b;--btn-ghost-hover-fg: #fafafa;--syn-key: #38bdf8;--syn-string: #34d399;--syn-number: #fb923c;--syn-boolean: #c084fc;--syn-null: #94a3b8;--syn-brace: #f472b6;--syn-bracket: #60a5fa;--syn-colon: #a1a1aa;--syn-comma: #71717a;--syn-gutter: #52525b;--accent-cyan: #38bdf8;--accent-green: #34d399;--accent-amber: #fbbf24;--accent-red: #f87171;--badge-green-bg: rgba(52, 211, 153, .12);--badge-green-border: rgba(52, 211, 153, .25);--badge-green-text: #34d399;--badge-amber-bg: rgba(251, 191, 36, .12);--badge-amber-border: rgba(251, 191, 36, .25);--badge-amber-text: #fbbf24;--badge-red-bg: rgba(248, 113, 113, .12);--badge-red-border: rgba(248, 113, 113, .25);--badge-red-text: #f87171;--badge-cyan-bg: rgba(56, 189, 248, .12);--badge-cyan-border: rgba(56, 189, 248, .25);--badge-cyan-text: #38bdf8}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;height:100dvh;width:100%;background-color:var(--bg-app);color:var(--text-main);font-family:var(--font-sans);overflow:hidden;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;width:100vw;background-color:var(--bg-app)}.app-header{height:38px;background-color:var(--bg-panel-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 12px;gap:8px;flex-shrink:0;z-index:10}.brand-section{display:flex;align-items:center;gap:8px}.brand-title{display:flex;align-items:center;gap:6px;font-size:14px;font-weight:600;letter-spacing:-.02em;color:var(--text-main);user-select:none}.brand-logo-icon{color:var(--accent-cyan);display:flex;align-items:center}.header-center{display:flex;align-items:center;gap:6px}.header-actions{display:flex;align-items:center;gap:4px}.mobile-tabs-bar{display:none}@media(max-width:768px){.mobile-tabs-bar{display:inline-flex;background:var(--bg-muted);border:1px solid var(--border-color);border-radius:6px;padding:2px;gap:2px}.mobile-tab-btn{background:transparent;border:none;color:var(--text-muted);font-size:11px;font-weight:500;padding:3px 8px;border-radius:4px;cursor:pointer;user-select:none;white-space:nowrap;transition:all .12s ease}.mobile-tab-btn.active{background:var(--bg-panel);color:var(--text-main);font-weight:600;box-shadow:0 1px 2px #0000000f}}.segment-group{display:inline-flex;background:var(--bg-muted);border:1px solid var(--border-color);border-radius:5px;padding:2px;gap:2px}.segment-btn{background:transparent;border:none;color:var(--text-muted);font-family:var(--font-sans);font-size:11.5px;font-weight:500;padding:2px 7px;border-radius:3px;cursor:pointer;transition:all .12s ease;user-select:none;display:inline-flex;align-items:center;gap:4px;white-space:nowrap}.segment-btn:hover{color:var(--text-main)}.segment-btn.active{background:var(--bg-panel);color:var(--text-main);font-weight:600;box-shadow:0 1px 2px #0000000f}.btn{display:inline-flex;align-items:center;gap:5px;background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-main);font-family:var(--font-sans);font-size:11.5px;font-weight:500;padding:3px 8px;height:26px;border-radius:5px;cursor:pointer;transition:all .12s ease;user-select:none;white-space:nowrap}.btn:hover:not(:disabled){background:var(--bg-active)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn-primary{background:var(--btn-primary-bg);border-color:var(--btn-primary-bg);color:var(--btn-primary-fg);font-weight:600}.btn-primary:hover:not(:disabled){background:var(--btn-primary-hover);border-color:var(--btn-primary-hover)}.btn-ghost{background:transparent;border-color:transparent;color:var(--btn-ghost-fg)}.btn-ghost:hover:not(:disabled){background:var(--btn-ghost-hover-bg);color:var(--btn-ghost-hover-fg)}.btn-icon{width:26px;padding:0;display:inline-flex;align-items:center;justify-content:center}.dropdown-menu{position:absolute;top:100%;right:0;margin-top:5px;background:var(--bg-popover);border:1px solid var(--border-color);border-radius:6px;padding:5px;z-index:50;box-shadow:0 4px 16px #00000029;min-width:200px;max-width:calc(100vw - 20px);animation:fadeIn .12s ease-out}.dropdown-section-title{font-size:10px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-dim);padding:4px 6px 2px}.dropdown-row{display:flex;align-items:center;justify-content:space-between;padding:4px 6px;gap:8px}.dropdown-label{font-size:11.5px;color:var(--text-muted)}.dropdown-item{display:flex;align-items:center;justify-content:space-between;width:100%;padding:5px 8px;font-size:12px;border-radius:4px;background:transparent;border:none;color:var(--text-main);cursor:pointer;transition:all .12s ease;text-align:left}.dropdown-item:hover{background:var(--bg-hover)}.dropdown-divider{height:1px;background:var(--border-color);margin:4px 0}.panels-container{display:flex;flex:1;min-height:0;position:relative;overflow:hidden}.panel{flex:1;min-width:0;display:flex;flex-direction:column;background-color:var(--bg-panel);position:relative;overflow:hidden}.panel-divider{width:5px;background-color:var(--border-color);flex-shrink:0;cursor:col-resize;position:relative;z-index:15;transition:background-color .15s ease,box-shadow .15s ease;display:flex;align-items:center;justify-content:center;user-select:none}.panel-divider:hover,.panel-divider.dragging{background-color:var(--accent-cyan);box-shadow:0 0 8px #0284c766}.divider-handle{width:3px;height:22px;border-radius:2px;background-color:var(--text-dim);opacity:.5;transition:opacity .15s ease,background-color .15s ease}.panel-divider:hover .divider-handle,.panel-divider.dragging .divider-handle{opacity:1;background-color:#fff}.panels-container.is-resizing{user-select:none!important;cursor:col-resize!important}.panels-container.is-resizing *{pointer-events:none!important}@media(max-width:768px){.panels-container.mobile-show-input .panel.panel-output,.panels-container.mobile-show-output .panel.panel-input,.panel-divider{display:none}.panel{width:100%!important;flex:1!important}}.panel-header{height:30px;background-color:var(--bg-panel-header);border-bottom:1px solid var(--border-color);display:flex;align-items:center;justify-content:space-between;padding:0 10px;flex-shrink:0}.panel-title-area{display:flex;align-items:center;gap:8px}.panel-title{font-size:12px;font-weight:600;color:var(--text-main);letter-spacing:-.01em}.stat-tag{font-size:10.5px;color:var(--text-dim);font-family:var(--font-mono)}.panel-actions{display:flex;align-items:center;gap:4px}.status-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;padding:1px 6px;border-radius:9999px;letter-spacing:.01em}.status-badge.valid{background:var(--badge-green-bg);border:1px solid var(--badge-green-border);color:var(--badge-green-text)}.status-badge.extracted{background:var(--badge-amber-bg);border:1px solid var(--badge-amber-border);color:var(--badge-amber-text)}.status-badge.error{background:var(--badge-red-bg);border:1px solid var(--badge-red-border);color:var(--badge-red-text)}.status-badge.processing{background:var(--badge-cyan-bg);border:1px solid var(--badge-cyan-border);color:var(--badge-cyan-text)}.status-badge.ready{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-dim)}.status-dot{width:5px;height:5px;border-radius:50%;background:currentColor}.notice-banner{padding:5px 10px;font-size:11px;display:flex;align-items:flex-start;gap:8px;border-bottom:1px solid var(--border-color);animation:fadeIn .15s ease-out}.notice-banner.extracted{background:var(--badge-amber-bg);border-color:var(--badge-amber-border);color:var(--text-main)}.notice-banner.error{background:var(--badge-red-bg);border-color:var(--badge-red-border);color:var(--text-main)}.compact-error-strip{display:flex;align-items:center;gap:8px;padding:4px 10px;background:#ef444414;border-bottom:1px solid rgba(239,68,68,.2);font-size:11px;color:var(--accent-red);font-family:var(--font-sans);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex-shrink:0}.compact-error-tag{font-family:var(--font-mono);font-weight:700;font-size:10px;text-transform:uppercase;background:#ef444433;padding:1px 5px;border-radius:3px;flex-shrink:0}.compact-error-msg{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-muted)}.notice-icon{flex-shrink:0;margin-top:1px}.notice-content{flex:1}.notice-title{font-weight:600;margin-bottom:1px;font-size:11.5px}.notice-desc{font-size:10.5px;color:var(--text-muted)}.notice-hint{margin-top:2px;font-size:10.5px;color:var(--accent-amber);font-weight:500}.notice-snippet{margin-top:4px;font-family:var(--font-mono);font-size:10.5px;background:var(--bg-hover);padding:3px 6px;border-radius:4px;border-left:2px solid var(--accent-red);color:var(--accent-red);word-break:break-all}.editor-body{flex:1;position:relative;overflow:hidden;display:flex}.code-textarea{width:100%;height:100%;background-color:transparent;color:var(--text-main);font-family:var(--font-mono);font-size:12px;line-height:18px;border:none;outline:none;resize:none;padding:8px 10px;white-space:pre;overflow:auto;tab-size:2;scrollbar-color:var(--border-color) transparent;scrollbar-width:thin;position:relative;z-index:2}.editor-gutter{flex:none;width:44px;background-color:var(--bg-surface);border-right:1px solid var(--border-color);padding:8px 6px 8px 0;font-family:var(--font-mono);font-size:12px;line-height:18px;text-align:right;color:var(--text-dim);user-select:none;overflow:hidden;box-sizing:border-box}.gutter-num{height:18px;line-height:18px;padding-right:4px}.gutter-num.error{color:var(--accent-red);font-weight:700;background-color:#ef444438;border-radius:2px;cursor:pointer}.textarea-stage{flex:1;position:relative;height:100%;overflow:hidden;background-color:var(--bg-input)}.error-line-highlight{position:absolute;left:0;right:0;height:18px;background:#ef44441f;border-left:3px solid var(--accent-red);pointer-events:none;z-index:1}.input-error-bar{display:flex;align-items:center;gap:8px;padding:6px 12px;background:#ef444414;border-top:1px solid rgba(239,68,68,.22);font-size:11px;color:var(--accent-red);flex-shrink:0;cursor:pointer;transition:background .12s ease}.input-error-bar:hover{background:#ef444424}.error-bar-tag{font-family:var(--font-mono);font-weight:700;background:#ef444433;padding:1px 6px;border-radius:4px;flex-shrink:0}.error-bar-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-main);flex:1}.error-bar-hint{color:var(--text-dim);font-size:11px;flex-shrink:0}.code-textarea::placeholder{color:var(--text-dim);font-family:var(--font-sans);font-size:12px}.code-viewer-container{width:100%;height:100%;position:relative;overflow:auto;background-color:var(--bg-code);scrollbar-color:var(--border-color) transparent;scrollbar-width:thin}.json-fold-container{width:100%;height:100%;overflow:auto;padding:8px 10px;background-color:var(--bg-code);font-family:var(--font-mono);font-size:12px;line-height:1.45;box-sizing:border-box;scrollbar-color:var(--border-color) transparent;scrollbar-width:thin;white-space:pre}.json-tree-group{display:flex;flex-direction:column}.json-tree-row{display:flex;align-items:center;min-height:22px;height:22px;line-height:22px;font-family:var(--font-mono);font-size:12px;color:var(--text-main);white-space:pre;user-select:text}.json-tree-row:hover{background-color:var(--bg-hover);border-radius:3px}.json-fold-btn{display:inline-flex;align-items:center;justify-content:center;width:17px;height:17px;background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-muted);cursor:pointer;padding:0;margin-right:5px;border-radius:4px;user-select:none;flex-shrink:0;transition:all .12s ease}.json-fold-btn:hover{background:var(--bg-hover);color:var(--accent-cyan);border-color:var(--accent-cyan)}.json-fold-spacer{display:inline-block;width:17px;height:17px;margin-right:5px;flex-shrink:0}.json-collapsed-tag{display:inline-flex;align-items:center;background:var(--bg-surface);border:1px solid var(--border-color);color:var(--text-muted);font-family:var(--font-mono);font-size:11px;font-weight:500;padding:0 7px;height:18px;border-radius:4px;margin:0 4px;cursor:pointer;user-select:none;transition:all .12s ease}.json-collapsed-tag:hover{background:var(--bg-active);color:var(--accent-cyan);border-color:var(--accent-cyan)}.json-fold-mono .json-key,.json-fold-mono .json-string,.json-fold-mono .json-number,.json-fold-mono .json-boolean,.json-fold-mono .json-null,.json-fold-mono .json-brace,.json-fold-mono .json-bracket,.json-fold-mono .json-colon,.json-fold-mono .json-comma{color:var(--text-main);font-weight:400;font-style:normal}.code-pre{margin:0;padding:8px 10px;font-family:var(--font-mono);font-size:12px;line-height:1.45;tab-size:2;counter-reset:line;white-space:pre;width:max-content;min-width:100%;color:var(--text-main);box-sizing:border-box}.code-pre code{font-family:inherit;font-size:inherit;line-height:inherit;display:block}.wrap-lines .code-pre,.wrap-lines .code-textarea{white-space:pre-wrap;word-break:break-all;width:100%}.wrap-lines .json-line{word-break:break-all}.json-line{display:block;line-height:1.45;box-sizing:border-box}.json-line:before{counter-increment:line;content:counter(line);display:inline-block;width:2rem;padding-right:.5rem;margin-right:.35rem;color:var(--syn-gutter);text-align:right;user-select:none;font-variant-numeric:tabular-nums;opacity:.65;font-size:11px;line-height:inherit}.hide-gutter .json-line:before{display:none}.json-key{color:var(--syn-key);font-weight:500}.json-string{color:var(--syn-string)}.json-number{color:var(--syn-number)}.json-boolean{color:var(--syn-boolean);font-weight:500}.json-null{color:var(--syn-null);font-style:italic}.json-brace{color:var(--syn-brace);font-weight:600;border-radius:2px}.json-bracket{color:var(--syn-bracket);font-weight:600;border-radius:2px}.json-colon{color:var(--syn-colon)}.json-comma{color:var(--syn-comma)}.empty-state{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;text-align:center;color:var(--text-dim);user-select:none;gap:0}.empty-icon{margin-bottom:12px;opacity:.35;color:var(--accent-cyan)}.empty-title{font-size:14px;font-weight:600;color:var(--text-muted);margin-bottom:6px}.empty-subtitle{font-size:12px;color:var(--text-dim);max-width:280px;line-height:1.5}.empty-actions{margin-top:18px;display:flex;flex-direction:column;align-items:center;gap:8px}.empty-action-hint{font-size:11px;color:var(--text-dim);opacity:.7}.input-empty-overlay{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px 16px;text-align:center;color:var(--text-dim);user-select:none;pointer-events:none;z-index:2}.input-empty-overlay .chip-btn{pointer-events:auto}.chip-btn{background:var(--bg-hover);border:1px solid var(--border-color);color:var(--text-muted);font-size:11px;font-family:var(--font-sans);padding:5px 14px;border-radius:6px;cursor:pointer;transition:all .12s ease}.chip-btn:hover{background:var(--bg-active);color:var(--text-main);border-color:var(--accent-cyan)}.drag-overlay{position:absolute;inset:0;background:#0284c714;border:2px dashed var(--accent-cyan);display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:600;color:var(--text-main);z-index:20;pointer-events:none}@keyframes fadeIn{0%{opacity:0;transform:translateY(-3px)}to{opacity:1;transform:translateY(0)}}
