:root{--primary:var(--primary-color,#1374d6);--primary-dark:color-mix(in srgb,var(--primary-color,#0f5cb8)80%,black);--primary-light:color-mix(in srgb,var(--primary-color,#e8f4fd)15%,white);--success:#10b981;--success-light:#d1fae5;--danger:#ef4444;--danger-light:#fee2e2;--warning:#f59e0b;--warning-light:#fef3c7;--purple:var(--primary-color,#1374d6);--purple-light:var(--primary-light,#e8f4fd);--purple-border:color-mix(in srgb,var(--primary-color,#7eb8f0)50%,white);--source-btn-bg:var(--primary-light,#e8f4fd);--source-btn-border:var(--purple-border,#7eb8f0);--source-btn-color:var(--primary-dark,#0f5cb8);--teal:#0d9488;--teal-light:#ccfbf1;--teal-border:#5eead4;--orange:#ea580c;--orange-light:#ffedd5;--orange-border:#fdba74;--cyan:#0891b2;--cyan-light:#cffafe;--cyan-border:#67e8f9;--gray-50:#f9fafb;--gray-100:#f3f4f6;--gray-200:#e5e7eb;--gray-300:#d1d5db;--gray-400:#9ca3af;--gray-500:#6b7280;--gray-600:#4b5563;--gray-700:#374151;--gray-800:#1f2937;--gray-900:#111827;--font-mono:"SF Mono",Monaco,Consolas,monospace}.json-mapper-container *{box-sizing:border-box}.json-mapper-container{color:var(--gray-800);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.json-mapper-container .app{flex-direction:column;height:100vh;display:flex;overflow:hidden}.json-mapper-container .header{color:var(--gray-800);border-bottom:1px solid var(--gray-200);background:#fff;flex-shrink:0;align-items:center;gap:16px;padding:12px 20px;display:flex;box-shadow:0 2px 8px #00000014}.json-mapper-container .logo{color:var(--primary);align-items:center;gap:8px;font-size:18px;font-weight:700;display:flex}.json-mapper-container .logo i{color:var(--primary)}.json-mapper-container .version-badge{background:var(--primary-light);color:var(--primary);border-radius:4px;padding:2px 8px;font-size:10px;font-weight:600}.json-mapper-container .header-input{border:1px solid var(--gray-300);color:var(--gray-800);background:#fff;border-radius:6px;width:280px;padding:8px 14px;font-size:14px;font-weight:600}.json-mapper-container .header-input::placeholder{color:var(--gray-400)}.json-mapper-container .header-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.json-mapper-container .header-actions{gap:8px;margin-left:auto;display:flex}.json-mapper-container .main{flex:1;display:flex;overflow:hidden}.json-mapper-container .left-panel{border-right:1px solid var(--gray-200);background:#fff;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.json-mapper-container .panel-header{color:var(--gray-800);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--gray-200);background:#fff;align-items:center;gap:10px;padding:14px 16px;font-size:13px;font-weight:700;display:flex}.json-mapper-container .panel-header i{color:var(--primary);font-size:16px}.json-mapper-container .panel-header-actions{gap:6px;margin-left:auto;display:flex}.json-mapper-container .panel-header-btn{background:var(--gray-100);border:1px solid var(--gray-300);color:var(--gray-700);cursor:pointer;border-radius:4px;padding:6px 10px;font-size:11px;font-weight:600}.json-mapper-container .panel-header-btn:hover{background:var(--primary-light);color:var(--primary);border-color:var(--primary)}.json-mapper-container .accordion{border-bottom:1px solid var(--gray-200)}.json-mapper-container .accordion-header{background:var(--gray-50);cursor:pointer;color:var(--gray-700);border-bottom:1px solid var(--gray-200);align-items:center;gap:10px;padding:12px 16px;font-size:13px;font-weight:600;transition:background .15s;display:flex}.json-mapper-container .accordion-header:hover{background:var(--gray-100)}.json-mapper-container .accordion-header i.toggle{color:var(--gray-400);margin-left:auto;font-size:10px;transition:transform .2s}.json-mapper-container .accordion-header.open i.toggle{transform:rotate(180deg)}.json-mapper-container .accordion-content{background:var(--gray-50);border-bottom:1px solid var(--gray-200);padding:12px;display:none}.json-mapper-container .accordion-content.open{display:block}.json-mapper-container .json-input{width:100%;height:120px;font-family:var(--font-mono);border:1px solid var(--gray-300);resize:vertical;background:#fff;border-radius:6px;padding:10px;font-size:12px}.json-mapper-container .json-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.json-mapper-container .json-input.error{border-color:var(--danger);background:var(--danger-light)}.json-mapper-container .json-error{color:var(--danger);margin-top:6px;font-size:11px}.json-mapper-container .source-tree{flex:1;padding:12px;overflow:auto}.json-mapper-container .source-group{margin-bottom:8px}.json-mapper-container .source-group-header{background:linear-gradient(135deg,var(--primary-light)0%,#d4e8fc 100%);border:1px solid var(--source-btn-border);cursor:pointer;color:var(--primary-dark);border-radius:8px;align-items:center;gap:8px;margin-bottom:4px;padding:10px 12px;font-size:13px;font-weight:700;display:flex}.json-mapper-container .source-group-header:hover{background:linear-gradient(135deg,#d4e8fc 0%,#b8d9fa 100%)}.json-mapper-container .source-group-header i.toggle{color:var(--primary);margin-left:auto;font-size:10px}.json-mapper-container .source-group-header .source-icon{background:var(--primary);color:#fff;border-radius:6px;justify-content:center;align-items:center;width:24px;height:24px;font-size:11px;display:flex}.json-mapper-container .source-group-content{border-left:2px solid var(--gray-200);margin-left:12px;padding-left:12px}.json-mapper-container .tree-node{cursor:grab;border-radius:5px;align-items:center;gap:6px;margin:2px 0;padding:6px 10px;font-size:13px;display:flex}.json-mapper-container .tree-node:hover{background:var(--primary-light)}.json-mapper-container .tree-node.dragging{opacity:.5}.json-mapper-container .tree-node-children{border-left:2px solid var(--gray-200);margin-left:14px;padding-left:10px}.json-mapper-container .tree-expand{width:16px;height:16px;color:var(--gray-400);justify-content:center;align-items:center;font-size:9px;display:flex}.json-mapper-container .type-tag{text-transform:uppercase;border-radius:3px;padding:2px 6px;font-size:9px;font-weight:700}.json-mapper-container .type-tag.str{color:#166534;background:#dcfce7}.json-mapper-container .type-tag.num{color:#1e40af;background:#dbeafe}.json-mapper-container .type-tag.boo{color:#92400e;background:#fef3c7}.json-mapper-container .type-tag.obj{color:#be185d;background:#fce7f3}.json-mapper-container .type-tag.arr{color:#7c3aed;background:#e9d5ff}.json-mapper-container .type-tag.nul{color:#6b7280;background:#f3f4f6}.json-mapper-container .tree-key{font-family:var(--font-mono);font-size:13px;font-weight:600}.json-mapper-container .tree-val{color:var(--gray-400);text-overflow:ellipsis;white-space:nowrap;max-width:80px;font-size:11px;font-family:var(--font-mono);margin-left:auto;overflow:hidden}.json-mapper-container .tree-copy{opacity:0;background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:3px;padding:3px 8px;font-size:10px}.tree-node:hover .tree-copy{opacity:1}.json-mapper-container .center-panel{background:var(--gray-100);flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}.json-mapper-container .canvas-header{border-bottom:1px solid var(--gray-200);background:#fff;flex-shrink:0;align-items:center;gap:12px;padding:14px 20px;display:flex}.json-mapper-container .canvas-title{color:var(--gray-800);align-items:center;gap:8px;font-size:15px;font-weight:700;display:flex}.json-mapper-container .canvas-title i{color:var(--primary)}.json-mapper-container .canvas-actions{gap:8px;margin-left:auto;display:flex}.json-mapper-container .canvas-hint{color:var(--gray-500);align-items:center;gap:6px;font-size:12px;display:flex}.json-mapper-container .lookups-section{background:var(--cyan-light);border-bottom:1px solid var(--cyan-border)}.json-mapper-container .lookups-header{cursor:pointer;align-items:center;gap:8px;padding:12px 16px;display:flex}.json-mapper-container .lookups-header:hover{background:#0891b21a}.json-mapper-container .lookups-title{color:var(--cyan);align-items:center;gap:6px;font-size:13px;font-weight:700;display:flex}.json-mapper-container .lookups-toggle{color:var(--cyan);margin-left:auto;font-size:10px;transition:transform .2s}.json-mapper-container .lookups-toggle.open{transform:rotate(180deg)}.json-mapper-container .lookups-actions{gap:6px;margin-left:auto;display:flex}.json-mapper-container .lookups-body{padding:0 16px 12px;display:none}.json-mapper-container .lookups-body.open{display:block}.json-mapper-container .lookup-card{border:1px solid var(--cyan-border);background:#fff;border-radius:8px;margin-bottom:8px;padding:12px}.json-mapper-container .lookup-card-header{align-items:center;gap:10px;margin-bottom:10px;display:flex}.json-mapper-container .lookup-name{font-family:var(--font-mono);color:var(--cyan);font-size:14px;font-weight:700}.json-mapper-container .lookup-access{color:var(--gray-500);background:var(--gray-100);font-size:11px;font-family:var(--font-mono);border-radius:4px;padding:3px 8px}.json-mapper-container .lookup-meta{color:var(--gray-600);gap:12px;font-size:12px;display:flex}.json-mapper-container .lookup-meta-item{align-items:center;gap:4px;display:flex}.json-mapper-container .lookup-meta-item i{color:var(--gray-400);font-size:11px}.json-mapper-container .lookup-buttons{gap:4px;margin-left:auto;display:flex}.json-mapper-container .lookup-remove{color:var(--gray-400);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px}.json-mapper-container .lookup-remove:hover{background:var(--danger-light);color:var(--danger)}.json-mapper-container .lookup-edit{color:var(--gray-400);cursor:pointer;background:0 0;border:none;border-radius:4px;padding:4px 8px}.json-mapper-container .lookup-edit:hover{background:var(--cyan-light);color:var(--cyan)}.json-mapper-container .mapping-area{scroll-behavior:smooth;flex:1;padding:16px;overflow:auto}.json-mapper-container .mapping-row{border:1px solid var(--gray-200);background:#fff;border-radius:8px;align-items:center;gap:10px;margin-bottom:6px;padding:12px 14px;transition:all .15s;display:flex}.json-mapper-container .mapping-row:hover{border-color:var(--primary);box-shadow:0 2px 8px #6366f11a}.json-mapper-container .mapping-row.highlight{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);background:var(--primary-light);animation:1s highlightPulse}@keyframes highlightPulse{0%,to{box-shadow:0 0 0 3px var(--primary-light)}50%{box-shadow:0 0 0 6px #6366f133}}.json-mapper-container .mapping-row.lookup-row{background:var(--cyan-light);border-color:var(--cyan-border)}.json-mapper-container .mapping-target{align-items:center;gap:6px;min-width:160px;display:flex}.json-mapper-container .lookup-preview-code{font-family:var(--font-mono);color:var(--cyan);font-size:13px;font-weight:600}.json-mapper-container .mapping-arrow{color:var(--gray-400);font-size:11px}.json-mapper-container .mapping-source{flex:1;gap:6px;display:flex}.json-mapper-container .mapping-input{font-family:var(--font-mono);border:1px solid var(--gray-300);border-radius:6px;flex:1;padding:8px 12px;font-size:13px}.json-mapper-container .mapping-input:focus{border-color:var(--primary);outline:none}.json-mapper-container .mapping-input.has-value{background:var(--success-light);border-color:var(--success)}.json-mapper-container .mapping-input.lookup-input{background:var(--cyan-light);border-color:var(--cyan-border)}.json-mapper-container .mapping-btn{border:1px solid var(--gray-300);cursor:pointer;color:var(--gray-600);background:#fff;border-radius:6px;padding:8px 10px;font-size:12px}.json-mapper-container .mapping-btn:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.json-mapper-container .mapping-toggle{cursor:pointer;width:24px;height:24px;color:var(--gray-400);background:0 0;border:none;border-radius:4px;flex-shrink:0;justify-content:center;align-items:center;margin-right:4px;font-size:11px;display:flex}.json-mapper-container .mapping-toggle:hover{background:var(--gray-100);color:var(--primary)}.json-mapper-container .mapping-toggle-spacer{flex-shrink:0;width:28px}.json-mapper-container .mapping-children-badge{color:var(--gray-500);background:var(--gray-100);border-radius:10px;align-items:center;margin-left:6px;padding:2px 8px;font-size:10px;display:flex}.json-mapper-container .template-editor{background:var(--primary-light);border:2px solid var(--primary);border-radius:10px;margin:6px 0 6px 28px;overflow:hidden;box-shadow:0 2px 8px #1374d626}.json-mapper-container .template-header{background:var(--primary);color:#fff;align-items:center;gap:10px;padding:12px 16px;display:flex;box-shadow:0 2px 4px #0000001a}.json-mapper-container .template-header i{font-size:14px}.json-mapper-container .template-header-title{font-size:13px;font-weight:700}.json-mapper-container .template-name-input{color:#fff;font-family:var(--font-mono);background:#fff3;border:1px solid #ffffff4d;border-radius:5px;width:140px;margin-left:8px;padding:5px 10px;font-size:13px;font-weight:600}.json-mapper-container .template-name-input::placeholder{color:#ffffffb3}.json-mapper-container .template-hint{opacity:.9;margin-left:auto;font-size:11px}.json-mapper-container .template-body{padding:14px}.json-mapper-container .template-context{background:#1374d614;border-radius:6px;flex-wrap:wrap;gap:6px;margin-bottom:12px;padding:10px;display:flex}.json-mapper-container .template-context-label{color:var(--primary);text-transform:uppercase;width:100%;margin-bottom:4px;font-size:10px;font-weight:700}.json-mapper-container .context-chip{border:1px solid var(--primary);font-family:var(--font-mono);cursor:pointer;color:var(--primary);background:#fff;border-radius:5px;padding:5px 10px;font-size:11px;transition:all .15s}.json-mapper-container .context-chip:hover{background:var(--primary);color:#fff}.json-mapper-container .context-chip.special{background:var(--warning-light);color:#92400e;border-color:#fcd34d}.json-mapper-container .context-chip.special:hover{background:var(--warning);color:#fff}.json-mapper-container .template-fields{flex-direction:column;gap:8px;display:flex}.json-mapper-container .template-field{border:1px solid var(--gray-200);background:#fff;border-radius:6px;align-items:center;gap:8px;padding:10px 12px;display:flex}.json-mapper-container .template-field-name{font-family:var(--font-mono);border:1px solid var(--gray-300);background:var(--gray-50);border-radius:5px;min-width:100px;padding:6px 10px;font-size:13px;font-weight:600}.json-mapper-container .template-field-sep{color:var(--gray-400);font-weight:700}.json-mapper-container .template-field-expr{font-family:var(--font-mono);border:1px solid var(--gray-300);border-radius:5px;flex:1;padding:6px 10px;font-size:13px}.json-mapper-container .template-field-expr:focus{border-color:var(--primary);outline:none}.json-mapper-container .template-field-expr.has-value{background:var(--success-light);border-color:var(--success)}.json-mapper-container .template-btn{border:1px solid var(--gray-300);cursor:pointer;color:var(--gray-600);background:#fff;border-radius:5px;padding:6px 8px;font-size:11px}.json-mapper-container .template-btn:hover{border-color:var(--primary);color:var(--primary)}.template-btn.danger:hover{border-color:var(--danger);color:var(--danger)}.json-mapper-container .template-add-field{border:2px dashed var(--purple-border);background:#7c3aed0d;border-radius:6px;gap:6px;margin-top:10px;padding:10px;display:flex}.json-mapper-container .template-add-field input{border:1px solid var(--gray-300);background:#fff;border-radius:5px;flex:1;padding:6px 10px;font-size:13px}.json-mapper-container .right-panel{border-left:1px solid var(--gray-200);background:#fff;flex-direction:column;flex-shrink:0;display:flex;overflow:hidden}.json-mapper-container .stats-panel{background:var(--gray-50);border-bottom:1px solid var(--gray-200);padding:12px}.json-mapper-container .stats-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.json-mapper-container .stat-card{border:1px solid var(--gray-200);text-align:center;background:#fff;border-radius:6px;padding:10px 8px}.json-mapper-container .stat-val{font-size:20px;font-weight:700;line-height:1}.json-mapper-container .stat-val.success{color:var(--success)}.json-mapper-container .stat-val.warning{color:var(--warning)}.json-mapper-container .stat-val.purple{color:var(--purple)}.json-mapper-container .stat-val.cyan{color:var(--cyan)}.json-mapper-container .stat-label{color:var(--gray-500);text-transform:uppercase;margin-top:4px;font-size:9px;font-weight:600}.json-mapper-container .target-tree{flex:1;padding:12px;overflow:auto}.json-mapper-container .target-node{cursor:pointer;border:1px solid #0000;border-radius:6px;align-items:center;gap:8px;margin:2px 0;padding:8px 12px;font-size:13px;transition:all .15s;display:flex}.json-mapper-container .target-node:hover{background:var(--primary-light);border-color:var(--primary)}.json-mapper-container .target-node.mapped{background:var(--success-light);border-color:var(--success)}.target-node.mapped:hover{background:#a7f3d0}.json-mapper-container .target-node.selected{background:var(--primary);color:#fff;border-color:var(--primary-dark)}.target-node.selected .target-key{color:#fff}.target-node.selected .type-tag{color:#fff;background:#ffffff4d}.json-mapper-container .target-node-children{border-left:2px solid var(--gray-200);margin-left:16px;padding-left:12px}.json-mapper-container .target-key{font-family:var(--font-mono);font-size:13px;font-weight:600}.json-mapper-container .target-mapped-icon{color:var(--success);margin-left:auto;font-size:12px}.target-node.selected .target-mapped-icon{color:#fff}.json-mapper-container .preview-toggle{background:var(--gray-50);border-top:1px solid var(--gray-200);cursor:pointer;color:var(--gray-600);flex-shrink:0;align-items:center;gap:8px;padding:10px 16px;font-size:12px;font-weight:600;display:flex}.json-mapper-container .preview-toggle:hover{background:var(--gray-100)}.preview-toggle i.toggle{margin-left:auto;font-size:10px;transition:transform .2s}.preview-toggle.open i.toggle{transform:rotate(180deg)}.json-mapper-container .preview-content{background:var(--gray-900);flex-shrink:0;display:none;overflow:auto}.json-mapper-container .preview-content.open{display:block}.json-mapper-container .preview-code{color:#e2e8f0;font-family:var(--font-mono);white-space:pre-wrap;margin:0;padding:12px;font-size:11px;line-height:1.6}.json-mapper-container .json-key{color:#7dd3fc}.json-mapper-container .json-string{color:#fca5a5}.json-mapper-container .json-number{color:#86efac}.json-mapper-container .json-boolean{color:#c4b5fd}.json-mapper-container .json-null{color:#9ca3af}.json-mapper-container .btn{cursor:pointer;border:none;border-radius:6px;align-items:center;gap:6px;padding:10px 16px;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex}.json-mapper-container .btn-primary{background:var(--primary);color:#fff}.json-mapper-container .btn-primary:hover{background:var(--primary-dark)}.json-mapper-container .btn-secondary{color:var(--gray-600);border:1px solid var(--gray-300);background:#fff}.json-mapper-container .btn-secondary:hover{border-color:var(--primary);color:var(--primary);background:var(--primary-light)}.json-mapper-container .btn-success{background:var(--success);color:#fff}.json-mapper-container .btn-success:hover{background:#059669}.json-mapper-container .btn-cyan{background:var(--cyan);color:#fff}.json-mapper-container .btn-cyan:hover{background:#0e7490}.json-mapper-container .btn-sm{padding:8px 12px;font-size:12px}.json-mapper-container .btn-xs{padding:5px 8px;font-size:11px}.json-mapper-container .btn:disabled{opacity:.5;cursor:not-allowed}.json-mapper-container .split-btn{border-radius:6px;display:inline-flex;overflow:hidden}.split-btn .btn-main{border-right:1px solid #fff3;border-radius:6px 0 0 6px}.split-btn .btn-dropdown{border-left:none;border-radius:0 6px 6px 0;align-items:center;padding:8px 10px;display:flex}.json-mapper-container .split-btn-menu{border:1px solid var(--gray-200);z-index:100;background:#fff;border-radius:8px;min-width:180px;margin-top:4px;position:absolute;top:100%;right:0;overflow:hidden;box-shadow:0 10px 25px #00000026}.json-mapper-container .split-btn-item{cursor:pointer;color:var(--gray-700);text-align:left;background:0 0;border:none;align-items:center;gap:10px;width:100%;padding:10px 14px;font-size:13px;display:flex}.json-mapper-container .split-btn-item:hover{background:var(--primary-light);color:var(--primary)}.json-mapper-container .split-btn-item i{width:18px;font-size:14px}.json-mapper-container .source-panel-btn{background:var(--source-btn-bg);border:1px solid var(--source-btn-border);color:var(--source-btn-color);cursor:pointer;border-radius:4px;align-items:center;gap:4px;padding:4px 8px;font-size:11px;display:flex}.json-mapper-container .source-panel-btn:hover{background:var(--primary-light);border-color:var(--primary);color:var(--primary)}.json-mapper-container .fullpage-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.json-mapper-container .fullpage-view{background:var(--gray-50);border-radius:12px;flex-direction:column;width:100%;max-width:calc(100vw - 40px);height:100%;max-height:calc(100vh - 40px);animation:.2s modalIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #0006}@keyframes modalIn{0%{opacity:0;transform:scale(.95)translateY(10px)}}.json-mapper-container .fullpage-header{border-bottom:1px solid var(--gray-200);background:#fff;flex-shrink:0;align-items:center;gap:14px;padding:16px 24px;display:flex}.json-mapper-container .back-btn{background:var(--gray-100);border:1px solid var(--gray-300);cursor:pointer;color:var(--gray-700);border-radius:6px;align-items:center;gap:6px;padding:8px 14px;font-size:13px;font-weight:600;display:flex}.json-mapper-container .back-btn:hover{background:var(--gray-200)}.json-mapper-container .fullpage-title{color:var(--gray-800);align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.json-mapper-container .fullpage-title i{color:var(--primary);font-size:20px}.json-mapper-container .fullpage-actions{gap:10px;margin-left:auto;display:flex}.json-mapper-container .fullpage-body{flex:1;gap:20px;padding:20px;display:flex;overflow:auto}.json-mapper-container .expr-source-panel{border-right:1px solid var(--gray-200);background:#fff;border-radius:8px 0 0 8px;flex-direction:column;width:280px;display:flex;overflow:hidden}.json-mapper-container .expr-source-header{color:var(--gray-700);background:var(--gray-50);border-bottom:1px solid var(--gray-200);align-items:center;gap:8px;padding:14px 16px;font-size:14px;font-weight:700;display:flex}.json-mapper-container .expr-source-tree{flex:1;padding:12px;font-size:13px;overflow:auto}.json-mapper-container .expr-tree-node{cursor:pointer;border-radius:5px;align-items:center;gap:6px;padding:6px 10px;display:flex}.json-mapper-container .expr-tree-node:hover{background:var(--primary-light)}.json-mapper-container .expr-tree-expand{width:16px;color:var(--gray-400);font-size:9px}.json-mapper-container .expr-tree-key{font-family:var(--font-mono);font-size:13px}.json-mapper-container .expr-tree-children{border-left:2px solid var(--gray-200);margin-left:14px;padding-left:10px}.json-mapper-container .expr-main-panel{flex-direction:column;flex:1;gap:16px;padding:20px;display:flex;overflow:auto}.json-mapper-container .expr-target{background:var(--gray-50);border-radius:8px;align-items:center;gap:12px;padding:14px 18px;display:flex}.json-mapper-container .expr-target-label{color:var(--gray-500);font-size:13px}.json-mapper-container .expr-target-name{font-size:16px;font-weight:700}.json-mapper-container .expr-target-path{font-family:var(--font-mono);color:var(--gray-400);background:var(--gray-100);border-radius:4px;margin-left:auto;padding:4px 10px;font-size:12px}.json-mapper-container .expr-preview{background:linear-gradient(135deg,var(--gray-800),var(--gray-900));color:#a5f3fc;font-family:var(--font-mono);word-break:break-all;border-radius:8px;min-height:60px;padding:16px 20px;font-size:16px;line-height:1.5}.json-mapper-container .expr-preview.empty{color:var(--gray-500)}.json-mapper-container .expr-context-section{background:var(--warning-light);border:1px solid #fcd34d;border-radius:8px;padding:12px}.json-mapper-container .expr-context-title{color:#92400e;align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.json-mapper-container .expr-context-chips{flex-wrap:wrap;gap:6px;display:flex}.json-mapper-container .expr-lookup-section{background:var(--cyan-light);border:1px solid var(--cyan-border);border-radius:8px;padding:12px}.json-mapper-container .expr-lookup-title{color:var(--cyan);align-items:center;gap:6px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}.json-mapper-container .expr-func-section{background:var(--gray-50);border-radius:8px;padding:14px}.json-mapper-container .expr-label{color:var(--gray-600);align-items:center;gap:6px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.json-mapper-container .expr-func-tabs{flex-wrap:wrap;gap:4px;margin-bottom:12px;display:flex}.json-mapper-container .expr-func-chips{flex-wrap:wrap;gap:6px;display:flex}.json-mapper-container .expr-chip{cursor:pointer;border-radius:6px;padding:8px 14px;font-size:13px;font-weight:600}.json-mapper-container .expr-chip.func{background:var(--primary-light);color:var(--primary);border:1px solid var(--primary)}.expr-chip.func:hover{background:var(--primary);color:#fff}.json-mapper-container .expr-chip.func.selected{background:var(--warning);color:#fff;border-color:var(--warning)}.json-mapper-container .expr-chip.context{color:#92400e;font-family:var(--font-mono);background:#fff;border:1px solid #fcd34d;font-size:12px}.expr-chip.context:hover{background:var(--warning);color:#fff}.json-mapper-container .expr-chip.lookup{color:var(--cyan);border:1px solid var(--cyan-border);font-family:var(--font-mono);background:#fff;font-size:12px}.expr-chip.lookup:hover{background:var(--cyan);color:#fff}.json-mapper-container .expr-input-section{margin-top:auto}.json-mapper-container .expr-input{width:100%;font-family:var(--font-mono);border:2px solid var(--gray-300);border-radius:8px;padding:14px 18px;font-size:16px}.json-mapper-container .expr-input:focus{border-color:var(--primary);outline:none}.json-mapper-container .expr-hint{color:var(--gray-500);align-items:center;gap:6px;margin-top:8px;font-size:12px;display:flex}.json-mapper-container .func-help-panel{border-left:1px solid var(--gray-200);background:#fff;border-radius:0 8px 8px 0;flex-direction:column;flex-shrink:0;width:320px;transition:none;display:flex;overflow:hidden}.json-mapper-container .func-help-panel.collapsed{width:40px}.json-mapper-container .func-help-header{color:#fff;background:var(--primary);border-bottom:none;align-items:center;gap:10px;padding:14px 18px;font-size:14px;font-weight:700;display:flex}.json-mapper-container .func-help-toggle{cursor:pointer;color:#fff;background:#fff3;border:1px solid #ffffff4d;border-radius:6px;margin-left:auto;padding:6px 10px;font-size:12px}.json-mapper-container .func-help-toggle:hover{background:#ffffff4d}.json-mapper-container .func-help-body{background:var(--gray-50);flex:1;padding:16px;overflow:auto}.json-mapper-container .func-help-empty{text-align:center;color:var(--gray-400);padding:40px 20px}.json-mapper-container .func-help-empty i{color:var(--gray-300);margin-bottom:14px;font-size:48px;display:block}.json-mapper-container .panel-splitter{background:var(--gray-200);cursor:col-resize;flex-shrink:0;justify-content:center;align-items:center;width:6px;transition:background .15s;display:flex}.json-mapper-container .panel-splitter:hover,.json-mapper-container .panel-splitter.dragging{background:var(--primary)}.json-mapper-container .panel-splitter-handle{background:var(--gray-400);border-radius:2px;width:4px;height:40px}.panel-splitter:hover .panel-splitter-handle,.panel-splitter.dragging .panel-splitter-handle{background:#fff}.json-mapper-container .panel-splitter-h{background:var(--gray-200);cursor:row-resize;flex-shrink:0;justify-content:center;align-items:center;height:6px;transition:background .15s;display:flex}.json-mapper-container .panel-splitter-h:hover,.json-mapper-container .panel-splitter-h.dragging{background:var(--primary)}.panel-splitter-h .panel-splitter-handle{background:var(--gray-400);border-radius:2px;width:40px;height:4px}.panel-splitter-h:hover .panel-splitter-handle,.panel-splitter-h.dragging .panel-splitter-handle{background:#fff}.json-mapper-container .func-detail-name{font-family:var(--font-mono);color:var(--primary);margin-bottom:10px;font-size:24px;font-weight:700}.json-mapper-container .func-detail-syntax{font-family:var(--font-mono);border:1px solid var(--gray-200);border-left:4px solid var(--primary);background:#fff;border-radius:6px;margin-bottom:14px;padding:12px 16px;font-size:13px}.json-mapper-container .func-detail-desc{color:var(--gray-700);margin-bottom:20px;font-size:14px;line-height:1.6}.json-mapper-container .func-examples-header{color:var(--gray-600);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--gray-200);align-items:center;gap:8px;margin-bottom:12px;padding-bottom:8px;font-size:12px;font-weight:700;display:flex}.json-mapper-container .func-examples-header i{color:var(--gray-400)}.json-mapper-container .func-example{border:1px solid var(--gray-200);background:#fff;border-radius:10px;margin-bottom:14px;padding:16px;box-shadow:0 1px 3px #0000000d}.json-mapper-container .func-example-title{color:var(--gray-800);align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:700;display:flex}.json-mapper-container .func-example-title i{color:var(--success);font-size:16px}.json-mapper-container .func-example-row{align-items:flex-start;gap:12px;margin-bottom:10px;display:flex}.json-mapper-container .func-example-label{color:var(--gray-500);text-transform:uppercase;letter-spacing:.3px;min-width:80px;padding-top:8px;font-size:11px;font-weight:700}.json-mapper-container .func-example-value{font-family:var(--font-mono);background:var(--gray-50);border:1px solid var(--gray-200);word-break:break-all;border-radius:6px;flex:1;padding:10px 14px;font-size:12px;line-height:1.4}.json-mapper-container .func-example-value.expression{color:#92400e;background:linear-gradient(135deg,#fef3c7 0%,#fde68a 100%);border-color:#fcd34d;font-weight:600}.json-mapper-container .func-example-value.result{color:#1e40af;background:linear-gradient(135deg,#dbeafe 0%,#bfdbfe 100%);border-color:#93c5fd;font-weight:600}.json-mapper-container .func-example-use{margin-top:14px}.json-mapper-container .func-example-use button{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:6px;justify-content:center;align-items:center;gap:8px;width:100%;padding:10px 16px;font-size:13px;font-weight:700;transition:all .15s;display:flex}.func-example-use button:hover{transform:translateY(-1px);box-shadow:0 4px 12px #3b82f64d}.json-mapper-container .modal-overlay{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.json-mapper-container .modal{background:#fff;border-radius:12px;flex-direction:column;max-width:95vw;max-height:92vh;animation:.2s modalIn;display:flex;overflow:hidden;box-shadow:0 25px 50px -12px #00000040}.json-mapper-container .modal-header{background:var(--gray-50);border-bottom:1px solid var(--gray-200);justify-content:space-between;align-items:center;padding:16px 20px;display:flex}.json-mapper-container .modal-title{align-items:center;gap:10px;font-size:18px;font-weight:700;display:flex}.json-mapper-container .modal-title i{color:var(--primary)}.json-mapper-container .modal-close{cursor:pointer;width:36px;height:36px;color:var(--gray-500);background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;font-size:18px;display:flex}.json-mapper-container .modal-close:hover{background:var(--danger-light);color:var(--danger)}.json-mapper-container .modal-body{flex:1;padding:20px;overflow:auto}.json-mapper-container .modal-footer{border-top:1px solid var(--gray-200);background:var(--gray-50);justify-content:flex-end;gap:10px;padding:16px 20px;display:flex}.json-mapper-container .lookup-modal{width:600px}.json-mapper-container .lookup-form{flex-direction:column;gap:16px;display:flex}.json-mapper-container .lookup-form-row{grid-template-columns:1fr 1fr;gap:16px;display:grid}.json-mapper-container .lookup-form-row.full{grid-template-columns:1fr}.json-mapper-container .lookup-form-group{flex-direction:column;gap:6px;display:flex}.json-mapper-container .lookup-form-label{color:var(--gray-600);text-transform:uppercase;align-items:center;gap:6px;font-size:12px;font-weight:600;display:flex}.json-mapper-container .lookup-form-label i{color:var(--gray-400);font-size:11px}.json-mapper-container .lookup-form-input{border:1px solid var(--gray-300);border-radius:6px;padding:10px 14px;font-size:14px}.json-mapper-container .lookup-form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.json-mapper-container .lookup-form-input.mono{font-family:var(--font-mono)}.json-mapper-container .lookup-form-select{border:1px solid var(--gray-300);background:#fff;border-radius:6px;padding:10px 14px;font-size:14px}.json-mapper-container .lookup-form-hint{color:var(--gray-500);font-size:11px}.json-mapper-container .lookup-form-section{background:var(--gray-50);border:1px solid var(--gray-200);border-radius:8px;padding:14px}.json-mapper-container .lookup-form-section-title{color:var(--gray-700);align-items:center;gap:6px;margin-bottom:12px;font-size:12px;font-weight:700;display:flex}.json-mapper-container .lookup-preview{background:var(--cyan-light);border:1px solid var(--cyan-border);border-radius:8px;margin-top:16px;padding:14px}.json-mapper-container .lookup-preview-title{color:var(--cyan);margin-bottom:8px;font-size:11px;font-weight:700}.json-mapper-container .lookup-preview-code{font-family:var(--font-mono);color:var(--gray-700);background:#fff;border-radius:6px;padding:10px 12px;font-size:12px}.json-mapper-container .form-group{margin-bottom:16px}.json-mapper-container .form-label{color:var(--gray-700);margin-bottom:6px;font-size:13px;font-weight:600;display:block}.json-mapper-container .form-input{border:1px solid var(--gray-300);border-radius:6px;width:100%;padding:10px 14px;font-size:14px}.json-mapper-container .form-input:focus{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light);outline:none}.json-mapper-container .form-hint{color:var(--gray-500);margin-top:4px;font-size:12px}.json-mapper-container .test-config{grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;display:grid}.json-mapper-container .test-config.full{grid-template-columns:1fr}.json-mapper-container .test-field{flex-direction:column;gap:6px;display:flex}.json-mapper-container .test-field label{color:var(--gray-600);text-transform:uppercase;font-size:12px;font-weight:600}.json-mapper-container .test-field input{border:1px solid var(--gray-300);font-size:14px;font-family:var(--font-mono);border-radius:6px;padding:10px 14px}.json-mapper-container .test-results{flex:1;grid-template-columns:1fr 1fr;gap:16px;display:grid}.json-mapper-container .test-result-panel{border:1px solid var(--gray-200);background:#fff;border-radius:8px;flex-direction:column;display:flex;overflow:hidden}.json-mapper-container .test-result-label{color:var(--gray-600);background:var(--gray-50);border-bottom:1px solid var(--gray-200);text-transform:uppercase;padding:12px 16px;font-size:12px;font-weight:700}.json-mapper-container .test-result-content{background:var(--gray-900);color:#e2e8f0;font-family:var(--font-mono);white-space:pre-wrap;flex:1;padding:14px;font-size:12px;overflow:auto}.json-mapper-container .test-status{border-radius:8px;align-items:center;gap:10px;margin-bottom:16px;padding:12px 16px;font-size:14px;font-weight:600;display:flex}.json-mapper-container .test-status.success{background:var(--success-light);color:#065f46}.json-mapper-container .test-status.error{background:var(--danger-light);color:#991b1b}.json-mapper-container .test-status.loading{background:var(--primary-light);color:var(--primary)}.json-mapper-container .import-tabs{flex-wrap:wrap;gap:8px;margin-bottom:14px;display:flex}.json-mapper-container .import-tab{border:1px solid var(--gray-300);background:var(--gray-50);cursor:pointer;color:var(--gray-600);border-radius:6px;padding:10px 16px;font-size:13px;font-weight:600}.json-mapper-container .import-tab:hover{border-color:var(--primary);color:var(--primary)}.json-mapper-container .import-tab.active{background:var(--primary);color:#fff;border-color:var(--primary)}.json-mapper-container .split-btn-container{display:flex;position:relative}.json-mapper-container .import-tab.split-main{border-right:none;border-radius:6px 0 0 6px}.json-mapper-container .import-tab.split-dropdown{border-left:1px solid var(--gray-200);border-radius:0 6px 6px 0;padding:10px 8px}.import-tab.split-main.active+.import-tab.split-dropdown.active{border-left-color:#ffffff4d}.json-mapper-container .split-dropdown-menu{border:1px solid var(--gray-200);z-index:100;background:#fff;border-radius:6px;margin-top:4px;position:absolute;top:100%;left:0;right:0;overflow:hidden;box-shadow:0 4px 12px #00000026}.json-mapper-container .split-dropdown-menu button{text-align:left;cursor:pointer;width:100%;color:var(--gray-700);background:#fff;border:none;align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;display:flex}.split-dropdown-menu button:hover{background:var(--primary-light);color:var(--primary)}.json-mapper-container .split-dropdown-menu button i{font-size:14px}.json-mapper-container .import-textarea{width:100%;height:300px;font-family:var(--font-mono);border:1px solid var(--gray-300);resize:vertical;border-radius:8px;padding:14px;font-size:13px}.json-mapper-container .import-error{background:var(--danger-light);color:var(--danger);border-radius:6px;align-items:center;gap:8px;margin-top:12px;padding:12px;font-size:13px;display:flex}.json-mapper-container .empty{text-align:center;color:var(--gray-400);padding:32px}.json-mapper-container .empty i{margin-bottom:12px;font-size:36px;display:block}.json-mapper-container .toast{z-index:2000;border-radius:10px;align-items:center;gap:10px;padding:14px 22px;font-size:14px;font-weight:600;animation:.3s toastIn;display:flex;position:fixed;bottom:20px;right:20px}.json-mapper-container .toast.success{background:var(--success);color:#fff}.json-mapper-container .toast.error{background:var(--danger);color:#fff}@keyframes toastIn{0%{opacity:0;transform:translateY(20px)}}
