html,body,#root{min-width:320px;min-height:100%;margin:0}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}body{font-family:Inter,Arial,Helvetica,sans-serif}button,textarea{font-family:inherit}button{cursor:pointer}.app{color:#111827;background:#f7f9fc;min-height:100vh;transition:background .25s,color .25s}.topbar{background:#fff;border-bottom:1px solid #e2e8f0;justify-content:space-between;align-items:center;min-height:126px;padding:22px 34px;display:flex}.brand{align-items:center;gap:18px;display:flex}.brand-logo{color:#fff;background:linear-gradient(135deg,#4f46e5,#7c3aed);border-radius:18px;justify-content:center;align-items:center;width:70px;height:70px;font-size:28px;font-weight:800;display:flex;box-shadow:0 10px 25px #4f46e533}.brand h1{color:#111827;margin:0;font-size:34px;line-height:1.1}.brand h1 span{color:#5146e5}.brand p{color:#64748b;margin:8px 0 0;font-size:16px}.theme-switch{background:#f1f5f9;border:1px solid #dbe3ee;border-radius:12px;padding:4px;display:flex;box-shadow:0 4px 12px #0f172a0d}.theme-switch button{color:#334155;background:0 0;border:none;border-radius:9px;padding:11px 18px;font-size:14px;font-weight:700}.theme-switch button.active{color:#4338ca;background:#fff;box-shadow:0 3px 10px #0f172a1a}.main{width:min(1600px,100% - 44px);margin:auto;padding:26px 0 35px}.pro-tip{color:#4338ca;background:#f5f3ff;border:1px solid #ddd6fe;border-radius:14px;align-items:center;gap:9px;min-height:68px;padding:16px 22px;font-size:17px;display:flex}.pro-tip strong{font-weight:800}.workspace{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;margin-top:24px;display:grid}.editor-card{background:#fff;border:1px solid #dce4ee;border-radius:17px;min-width:0;padding:19px;box-shadow:0 8px 28px #0f172a0e}.card-header{justify-content:space-between;align-items:center;gap:12px;min-height:44px;margin-bottom:14px;display:flex}.title{align-items:center;gap:12px;display:flex}.title h2{color:#111827;margin:0;font-size:22px}.code-icon{color:#4f46e5;background:#eef2ff;border-radius:11px;justify-content:center;align-items:center;width:40px;height:40px;font-size:14px;font-weight:800;display:flex}.card-actions{gap:9px;display:flex}.card-actions button{color:#111827;background:#fff;border:1px solid #d5dfeb;border-radius:10px;min-height:44px;padding:0 17px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s}.card-actions button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 4px 12px #0f172a14}.card-actions button.download{color:#fff;background:linear-gradient(135deg,#4f46e5,#6d4be8);border:none}.card-actions button:disabled{opacity:.45;cursor:not-allowed}.editor-wrapper,.output-wrapper{background:#fff;border:1px solid #d7e0eb;border-radius:12px;height:430px;display:flex;position:relative;overflow:hidden}.line-numbers{text-align:right;color:#94a3b8;-webkit-user-select:none;user-select:none;background:#f8fafc;border-right:1px solid #e2e8f0;flex:0 0 50px;width:50px;padding-top:17px;padding-right:13px;font-family:Consolas,Monaco,monospace;font-size:14px;line-height:1.6}.line-numbers div{height:22.4px}.error-line-number{background:#fee2e2;font-weight:800;color:#dc2626!important}.json-editor{resize:none;color:#000;white-space:pre;background:#fff;border:none;outline:none;flex:1;width:0;height:100%;padding:17px;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.6;overflow:auto}.json-editor::placeholder{color:#94a3b8}.json-editor:focus{box-shadow:inset 0 0 0 2px #4f46e51a}.json-output{color:#111827;white-space:pre;background:#fff;flex:1;width:0;height:100%;margin:0;padding:17px;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.6;overflow:auto}.code-line{min-height:22.4px}.output-placeholder{color:#94a3b8;font-family:Consolas,Monaco,monospace}.json-key{color:#7c3aed;font-weight:600}.json-string{color:#047857}.json-number{color:#2563eb}.json-boolean{color:#d97706;font-weight:600}.dark .json-key{color:#c4b5fd}.dark .json-string{color:#6ee7b7}.dark .json-number{color:#93c5fd}.dark .json-boolean{color:#fbbf24}.dragging{border:2px dashed #6366f1}.drop-overlay{z-index:5;color:#4f46e5;pointer-events:none;background:#eef2fff5;flex-direction:column;justify-content:center;align-items:center;gap:6px;display:flex;position:absolute;inset:0}.drop-overlay strong{font-size:19px}.drop-overlay span{color:#64748b;font-size:12px}.stats{color:#64748b;align-items:center;gap:20px;min-height:38px;padding-top:9px;font-size:12px;display:flex}.stats span:first-child{margin-right:auto}.valid{color:#15803d;font-weight:700}.invalid{color:#dc2626;font-weight:700}.main-buttons{align-items:center;gap:12px;margin-top:16px;display:flex}.main-buttons button{color:#111827;background:#fff;border:1px solid #d6dfeb;border-radius:10px;min-height:46px;padding:0 18px;font-size:15px;font-weight:700;transition:transform .15s,box-shadow .15s}.main-buttons button:hover{transform:translateY(-1px);box-shadow:0 5px 14px #0f172a14}.main-buttons button.primary{color:#fff;background:linear-gradient(135deg,#4f46e5,#6d4be8);border:none}.main-buttons kbd{color:#64748b;background:#eef2f7;border-radius:5px;margin-left:8px;padding:4px 7px;font-size:10px}.main-buttons .primary kbd{color:#fff;background:#ffffff2e}.modal-overlay{z-index:9999;background:#0f172a33;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.error-modal{text-align:center;background:#fff;border:1px solid #e2e8f0;border-radius:13px;width:330px;padding:21px;animation:.18s modalIn;position:relative;box-shadow:0 25px 70px #0f172a2e}@keyframes modalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.modal-close{color:#64748b;background:0 0;border:none;font-size:22px;position:absolute;top:7px;right:10px}.warning-icon{color:#92400e;background:#fef3c7;border-radius:50%;justify-content:center;align-items:center;width:38px;height:38px;margin:auto;font-size:20px;font-weight:800;display:flex}.error-modal h2{color:#111827;margin:9px 0 5px;font-size:18px}.error-modal p{color:#64748b;margin:0 0 13px;font-size:12px}.error-location{color:#475569;background:#eef2ff;border:1px solid #c7d2fe;border-radius:8px;padding:9px;font-size:11px}.error-location strong{color:#4f46e5}.modal-button{color:#fff;background:#4f46e5;border:none;border-radius:7px;min-width:85px;margin-top:13px;padding:8px 18px;font-size:12px;font-weight:700}.app.dark{color:#fff;background:#080d18}.dark .topbar{background:#0d1422;border-color:#263244}.dark .brand h1{color:#fff}.dark .brand p{color:#94a3b8}.dark .theme-switch{background:#111827;border-color:#334155}.dark .theme-switch button{color:#cbd5e1}.dark .theme-switch button.active{color:#fff;background:#1e293b}.dark .pro-tip{color:#c4b5fd;background:#17133d;border-color:#3730a3}.dark .editor-card{background:#0f172a;border-color:#263244}.dark .title h2{color:#fff}.dark .code-icon{color:#c4b5fd;background:#1e1b4b}.dark .editor-wrapper,.dark .output-wrapper{background:#0b1120;border-color:#334155}.dark .line-numbers{color:#64748b;background:#111827;border-color:#334155}.dark .json-editor,.dark .json-output{color:#fff;background:#0b1120}.dark .json-editor::placeholder,.dark .output-placeholder{color:#64748b}.dark .card-actions button,.dark .main-buttons button{color:#fff;background:#111827;border-color:#334155}.dark .main-buttons kbd{color:#cbd5e1;background:#1e293b}.dark .stats{color:#94a3b8}.dark .error-modal{background:#111827;border-color:#334155}.dark .error-modal h2{color:#fff}@media (width<=900px){.topbar{flex-direction:column;align-items:flex-start;gap:20px;min-height:auto}.theme-switch{align-self:flex-end}.workspace{grid-template-columns:1fr}}@media (width<=650px){.main{width:calc(100% - 20px);padding-top:15px}.brand h1{font-size:28px}.brand p{font-size:13px}.brand-logo{width:56px;height:56px;font-size:22px}.pro-tip{padding:13px;font-size:13px}.editor-card{padding:13px}.card-header{flex-direction:column;align-items:flex-start}.card-actions{width:100%}.card-actions button{flex:1}.editor-wrapper,.output-wrapper{height:360px}.main-buttons{flex-wrap:wrap}.main-buttons button{flex:45%}.stats{flex-wrap:wrap;gap:9px}.stats span:first-child{width:100%;margin-right:0}}@media (width<=430px){.main-buttons button{flex:100%;width:100%}.theme-switch{align-self:stretch}.theme-switch button{flex:1}}.error-navigation{border-top:1px solid #e2e8f0;justify-content:space-between;align-items:center;gap:14px;width:100%;margin-top:18px;padding-top:16px;display:flex}.error-count{color:#64748b;white-space:nowrap;font-size:13px;font-weight:700}.error-nav-buttons{align-items:center;gap:8px;display:flex}.error-nav-buttons .button{cursor:pointer;border-radius:9px;padding:8px 13px;font-size:13px;font-weight:700;transition:transform .15s,box-shadow .15s}.error-nav-buttons .button:hover{transform:translateY(-1px)}.error-nav-buttons .secondary{color:#475569;background:#f8fafc;border:1px solid #dbe3ed}.error-nav-buttons .primary{color:#fff;background:linear-gradient(135deg,#4f46e5,#6366f1);border:1px solid #0000}.dark .error-navigation{border-top-color:#334155}.dark .error-count{color:#94a3b8}.dark .error-nav-buttons .secondary{color:#e2e8f0;background:#1e293b;border-color:#475569}.dark .error-nav-buttons .primary{background:linear-gradient(135deg,#6366f1,#7c3aed)}.error-location{color:#64748b;text-align:center;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;margin-top:16px;padding:11px 14px;font-size:14px;line-height:1.5}.error-location strong{color:#4338ca;font-weight:800}.dark .error-location{color:#94a3b8;background:#172033;border-color:#334155}.dark .error-location strong{color:#a5b4fc}.close-button{min-width:110px;margin-top:18px}@media (width<=600px){.error-navigation{flex-direction:column;align-items:stretch}.error-count{text-align:center}.error-nav-buttons{width:100%}.error-nav-buttons .button{flex:1}.error-location{font-size:13px}}.formatter-seo{--seo-text:#475569;--seo-heading:#111827;--seo-border:#e2e8f0;--seo-panel:#f8fafc;--seo-accent:#4f46e5;--seo-accent-bg:#eef2ff;border:1px solid var(--seo-border);max-width:860px;color:var(--seo-text);overflow-wrap:anywhere;background:#fff;border-radius:17px;margin:32px auto 0;padding:clamp(20px,4vw,40px);font-size:15px;line-height:1.75;box-shadow:0 8px 28px #0f172a0a}.formatter-seo h2{border-top:1px solid var(--seo-border);color:var(--seo-heading);letter-spacing:-.02em;margin:28px 0 12px;padding-top:24px;font-size:clamp(20px,2.5vw,24px);line-height:1.3}.formatter-seo>h2:first-child{border-top:0;margin-top:0;padding-top:0}.formatter-seo h3{color:var(--seo-heading);margin:20px 0 6px;font-size:17px;line-height:1.5}.formatter-seo p{max-width:72ch;margin:0}.formatter-seo ol{border:1px solid var(--seo-border);background:var(--seo-panel);border-radius:12px;gap:12px;margin:16px 0 0;padding:18px 20px 18px 44px;display:grid}.formatter-seo li{padding-left:6px}.formatter-seo li::marker{color:var(--seo-accent);font-weight:700}.formatter-seo-faq{border:1px solid var(--seo-border);background:var(--seo-panel);border-radius:12px;margin-top:28px;padding:20px}.formatter-seo-faq h2{border:0;margin:0 0 16px;padding:0}.formatter-seo-faq h3{border-top:1px solid var(--seo-border);margin-top:18px;padding-top:18px}.formatter-seo-faq h2+h3{border:0;margin-top:0;padding-top:0}.dark .formatter-seo{--seo-text:#cbd5e1;--seo-heading:#f1f5f9;--seo-border:#263244;--seo-panel:#111827;--seo-accent:#a5b4fc;box-shadow:none;background:#0f172a}@media (width<=600px){.formatter-seo{margin-top:24px;padding:20px 16px}.formatter-seo-faq{padding:16px}}.header-actions{align-items:center;gap:18px;display:flex}.tool-nav{background:#f1f5f9;border:1px solid #dbe3ee;border-radius:12px;gap:6px;padding:4px;display:flex}.tool-nav a{color:#475569;border-radius:8px;padding:10px 13px;font-size:14px;font-weight:700;text-decoration:none}.tool-nav a.active{color:#4338ca;background:#fff;box-shadow:0 3px 10px #0f172a1a}.page-intro{margin-bottom:18px}.page-intro h2{margin:0;font-size:28px}.page-intro p{color:#64748b;margin:8px 0 0}.jolt-status{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:12px;margin-bottom:20px;padding:13px 16px;font-size:14px}.jolt-status.error{color:#b91c1c;background:#fef2f2;border-color:#fecaca}.jolt-status.warning{color:#92400e;background:#fffbeb;border-color:#fde68a}.jolt-status.success{color:#15803d;background:#f0fdf4;border-color:#bbf7d0}.jolt-workspace{grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;display:grid}.jolt-workspace .editor-wrapper,.jolt-workspace .output-wrapper{height:430px}.dark .tool-nav{background:#111827;border-color:#334155}.dark .tool-nav a{color:#cbd5e1}.dark .tool-nav a.active{color:#fff;background:#1e293b}.dark .page-intro p{color:#94a3b8}.dark .jolt-status{color:#c7d2fe;background:#172554;border-color:#3730a3}.dark .jolt-status.error{color:#fecaca;background:#450a0a;border-color:#991b1b}.dark .jolt-status.warning{color:#fde68a;background:#451a03;border-color:#92400e}.jolt-error-category{color:#4338ca;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;margin-bottom:10px;padding:5px 9px;font-size:11px;font-weight:700;display:inline-block}.jolt-error-modal .error-location{margin-top:2px}.dark .jolt-error-category{color:#c7d2fe;background:#172554;border-color:#3730a3}@media (width<=1180px){.jolt-workspace{grid-template-columns:repeat(2,minmax(0,1fr))}.jolt-output-card{grid-column:span 2}}@media (width<=900px){.header-actions{justify-content:space-between;width:100%}.jolt-workspace{grid-template-columns:1fr}.jolt-output-card{grid-column:auto}}@media (width<=650px){.header-actions{flex-direction:column;align-items:stretch}.tool-nav{overflow-x:auto}.tool-nav a{white-space:nowrap;text-align:center;flex:1}}.json-diff-page .diff-intro h2{margin:0;font-size:28px}.json-diff-page .diff-location,.json-diff-page .diff-value-type{margin:7px 0;font-size:13px;display:block}.json-diff-page .diff-type-change{font-weight:700}.json-diff-page .diff-validity{color:#64748b;margin-top:10px;display:block}.dark .json-diff-page .diff-validity{color:#94a3b8}.json-diff-page .diff-badge.changed{color:#92400e;background:#fef3c7}.json-diff-page .diff-change.changed{border-left-color:#d97706}.json-diff-page .diff-change mark{color:inherit;background:#fef3c7}.json-diff-page .diff-change.added mark{background:#dcfce7}.json-diff-page .diff-change.removed mark{background:#fee2e2}.dark .json-diff-page .diff-badge.changed{color:#fde68a;background:#451a03}.dark .json-diff-page .diff-change mark{background:#78350f}.dark .json-diff-page .diff-change.added mark{background:#14532d}.dark .json-diff-page .diff-change.removed mark{background:#7f1d1d}.json-diff-page .diff-intro p,.json-diff-page .diff-muted{color:#64748b;line-height:1.6}.json-diff-page .diff-gutter{background:#f8fafc;flex:0 0 60px;overflow:hidden}.json-diff-page .diff-gutter .line-numbers{width:60px;min-height:100%;padding-bottom:40px}.json-diff-page .json-editor{white-space:pre;overflow:auto}.json-diff-page .diff-results{margin-top:24px}.json-diff-page .diff-error{color:#b91c1c;overflow-wrap:anywhere;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:12px;padding:12px}.json-diff-page .diff-summary,.json-diff-page .diff-change-heading{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.json-diff-page .diff-summary{margin-bottom:18px}.json-diff-page .diff-badge{text-transform:capitalize;border-radius:6px;padding:5px 10px;font-size:13px;font-weight:700;display:inline-block}.json-diff-page .diff-badge.added,.json-diff-page .diff-success{color:#166534;background:#dcfce7}.json-diff-page .diff-badge.removed{color:#991b1b;background:#fee2e2}.json-diff-page .diff-badge.modified{color:#92400e;background:#fef3c7}.json-diff-page .diff-success{border-radius:10px;padding:18px}.json-diff-page .diff-success p{margin:8px 0 0}.json-diff-page .diff-list{max-height:720px;overflow:auto}.json-diff-page .diff-change{border:1px solid #dce4ee;border-left:4px solid;border-radius:10px;margin-bottom:14px;padding:16px}.json-diff-page .diff-change.added{border-left-color:#16a34a}.json-diff-page .diff-change.removed{border-left-color:#dc2626}.json-diff-page .diff-change.modified{border-left-color:#d97706}.json-diff-page .diff-change-heading code{overflow-wrap:anywhere;min-width:0}.json-diff-page .diff-values{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.json-diff-page .diff-values>div{min-width:0}.json-diff-page .diff-values h3{color:#64748b;font-size:13px}.json-diff-page .diff-values pre{white-space:pre;background:#f8fafc;border-radius:6px;max-height:300px;margin:0;padding:12px;font:14px/1.6 Consolas,Monaco,monospace;overflow:auto}.dark .json-diff-page .diff-intro p,.dark .json-diff-page .diff-muted,.dark .json-diff-page .diff-values h3{color:#94a3b8}.dark .json-diff-page .diff-gutter,.dark .json-diff-page .diff-values pre{background:#111827}.dark .json-diff-page .diff-change{border-top-color:#334155;border-bottom-color:#334155;border-right-color:#334155}.dark .json-diff-page .diff-badge.added,.dark .json-diff-page .diff-success{color:#bbf7d0;background:#052e16}.dark .json-diff-page .diff-badge.removed,.dark .json-diff-page .diff-error{color:#fecaca;background:#450a0a;border-color:#991b1b}.dark .json-diff-page .diff-badge.modified{color:#fde68a;background:#451a03}@media (width<=650px){.json-diff-page .diff-values{grid-template-columns:1fr}.json-diff-page .card-actions{flex-wrap:wrap}.json-diff-page .diff-change{padding:12px}}
