:root{--bg-primary: #ffffff;--bg-secondary: #f8fafc;--bg-tertiary: #f1f5f9;--text-primary: #0f172a;--text-secondary: #475569;--text-tertiary: #94a3b8;--border-color: #e2e8f0;--border-subtle: #f1f5f9;--primary: #2563eb;--primary-hover: #1d4ed8;--primary-light: #dbeafe;--success: #10b981;--success-bg: #d1fae5;--error: #ef4444;--error-bg: #fee2e2;--added-bg: #dcfce7;--added-border: #22c55e;--added-text: #166534;--removed-bg: #fee2e2;--removed-border: #ef4444;--removed-text: #991b1b;--unchanged-bg: var(--bg-primary);--unchanged-border: var(--border-subtle);--diff-highlight-added: #86efac;--diff-highlight-removed: #fca5a5;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .05);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--container-max: 1280px;--spacing-unit: .25rem;--json-key: #0451a5;--json-string: #a31515;--json-number: #098658;--json-boolean: #0000ff;--json-null: #0000ff;--json-punctuation: #000000}body.dark{--bg-primary: #0f172a;--bg-secondary: #1e293b;--bg-tertiary: #334155;--text-primary: #f1f5f9;--text-secondary: #cbd5e1;--text-tertiary: #64748b;--border-color: #334155;--border-subtle: #1e293b;--primary: #3b82f6;--primary-hover: #60a5fa;--primary-light: #1e3a8a;--success-bg: #064e3b;--error-bg: #7f1d1d;--added-bg: #14532d;--added-border: #22c55e;--added-text: #86efac;--removed-bg: #450a0a;--removed-border: #ef4444;--removed-text: #fca5a5;--unchanged-bg: var(--bg-primary);--unchanged-border: var(--border-color);--diff-highlight-added: #166534;--diff-highlight-removed: #7f1d1d;--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / .3);--shadow-md: 0 4px 6px -1px rgb(0 0 0 / .3), 0 2px 4px -2px rgb(0 0 0 / .3);--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / .3), 0 4px 6px -4px rgb(0 0 0 / .3);--json-key: #9cdcfe;--json-string: #ce9178;--json-number: #b5cea8;--json-boolean: #569cd6;--json-null: #569cd6;--json-punctuation: #d4d4d4}*{margin:0;padding:0;box-sizing:border-box}body{background-color:var(--bg-secondary);color:var(--text-primary);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6;transition:background-color .3s ease,color .3s ease}.container{max-width:var(--container-max);margin:0 auto;padding:0 1.5rem}header{background:var(--bg-primary);border-bottom:1px solid var(--border-color);position:sticky;top:0;z-index:100;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:var(--shadow-sm)}.header-content{display:flex;justify-content:space-between;align-items:center;padding:1rem 0}.logo-title{display:flex;align-items:center;gap:.75rem}.site-logo{width:32px;height:32px;display:block}h1{font-size:1.5rem;font-weight:700;color:var(--text-primary);letter-spacing:-.025em}.header-right{display:flex;align-items:center;gap:1rem}.theme-toggle{display:flex;align-items:center}.switch{position:relative;display:inline-block;width:52px;height:28px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-tertiary);transition:.3s;border-radius:34px;border:2px solid var(--border-color)}.slider:before{position:absolute;content:"";height:20px;width:20px;left:2px;bottom:2px;background-color:var(--bg-primary);transition:.3s;border-radius:50%;box-shadow:var(--shadow-sm)}input:checked+.slider{background-color:var(--primary)}input:checked+.slider:before{transform:translate(24px)}.slider:hover{opacity:.9}main{padding:1.5rem 0 4rem;min-height:calc(100vh - 200px)}.ad-container{margin:2rem 0;display:none;justify-content:center}.ad-placeholder{background:var(--bg-tertiary);border:2px dashed var(--border-color);border-radius:.5rem;padding:2rem;text-align:center;min-height:100px;display:flex;align-items:center;justify-content:center;width:100%;max-width:728px}.ad-label{color:var(--text-tertiary);font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.json-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(350px,1fr));gap:1.5rem;margin:0 0 2rem}.json-box{background:var(--bg-primary);border-radius:.75rem;padding:1.5rem;box-shadow:var(--shadow-sm);border:1px solid var(--border-color);transition:box-shadow .2s ease}.json-box:hover{box-shadow:var(--shadow-md)}.label{font-weight:600;font-size:.875rem;color:var(--text-primary);margin-bottom:.75rem;display:block;text-transform:uppercase;letter-spacing:.05em}.input-container{display:flex;border:2px solid var(--border-color);background-color:var(--bg-secondary);border-radius:.5rem;overflow:hidden;transition:border-color .2s ease}.input-container:focus-within{border-color:var(--primary);box-shadow:0 0 0 3px var(--primary-light)}.line-numbers{background:var(--bg-tertiary);color:var(--text-tertiary);padding:.75rem .5rem;text-align:right;border-right:2px solid var(--border-color);-webkit-user-select:none;user-select:none;white-space:pre;font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;font-size:.875rem;line-height:1.5}.textarea-wrapper{position:relative;flex:1;display:flex}.syntax-highlight{position:absolute;inset:0;padding:.75rem;font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;font-size:.875rem;line-height:1.5;white-space:pre-wrap;word-wrap:break-word;overflow:hidden;pointer-events:none;color:var(--text-primary);tab-size:2}textarea{flex:1;resize:vertical;min-height:300px;border:none;outline:none;font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;font-size:.875rem;padding:.75rem;color:transparent;caret-color:var(--text-primary);background:transparent;line-height:1.5;tab-size:2;position:relative;z-index:1;-webkit-text-fill-color:transparent}textarea::placeholder{color:var(--text-tertiary);opacity:1;-webkit-text-fill-color:var(--text-tertiary)}textarea::-webkit-input-placeholder{color:var(--text-tertiary);opacity:1;-webkit-text-fill-color:var(--text-tertiary)}.beautify-btn{margin-top:1rem;padding:.625rem 1.25rem;border:2px solid var(--border-color);border-radius:.5rem;background-color:var(--bg-primary);color:var(--text-primary);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;width:100%;justify-content:center}.beautify-btn:hover{background-color:var(--bg-tertiary);border-color:var(--primary);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.beautify-btn:active{transform:translateY(0)}.beautify-btn svg{width:16px;height:16px}.compare-section{display:flex;justify-content:center;align-items:center;gap:1rem;margin:2rem 0;flex-wrap:wrap}.compare-btn{padding:.875rem 2.5rem;border:none;border-radius:.5rem;background:linear-gradient(135deg,var(--primary) 0%,var(--primary-hover) 100%);color:#fff;font-weight:600;font-size:1rem;cursor:pointer;transition:all .3s ease;box-shadow:var(--shadow-md);display:inline-flex;align-items:center;gap:.5rem}.compare-btn:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.compare-btn:active{transform:translateY(0)}.compare-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.compare-btn svg{width:20px;height:20px}.view-mode-toggle{display:flex;gap:0;background:var(--bg-primary);border:2px solid var(--border-color);border-radius:.5rem;overflow:hidden}.view-mode-btn{padding:.625rem 1rem;border:none;background:transparent;color:var(--text-secondary);font-weight:500;font-size:.875rem;cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;border-right:1px solid var(--border-color)}.view-mode-btn:last-child{border-right:none}.view-mode-btn svg{width:18px;height:18px}.view-mode-btn:hover{background:var(--bg-secondary);color:var(--text-primary)}.view-mode-btn.active{background:var(--primary);color:#fff}.view-mode-btn.active:hover{background:var(--primary-hover)}.diff-section{margin-top:3rem}.diff-section h3{font-size:1.5rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem}.diff-output{border:2px solid var(--border-color);border-radius:.75rem;font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;font-size:.875rem;overflow:auto;box-shadow:var(--shadow-md)}.unified-view:empty:before,.diff-pane-content:empty:before{content:"No comparison yet. Enter JSON in both fields and click Compare.";display:block;padding:3rem;text-align:center;color:var(--text-tertiary);font-family:Inter,sans-serif}.diff-line{display:flex;align-items:flex-start;line-height:1.5;transition:background-color .15s ease}.diff-line .line-num-container{background:var(--bg-tertiary);border-right:2px solid var(--border-color);min-width:60px;padding:0 .5rem;text-align:right;-webkit-user-select:none;user-select:none;flex-shrink:0}.diff-line .line-num{color:var(--text-tertiary);font-weight:500}.diff-line .line-content{flex:1;padding:0 .75rem;white-space:pre-wrap;word-break:break-word}.diff-line.added,.diff-line.added .line-num-container{background-color:var(--added-bg)}.diff-line.added .line-content{color:var(--added-text)}.diff-line.removed,.diff-line.removed .line-num-container{background-color:var(--removed-bg)}.diff-line.removed .line-content{color:var(--removed-text)}.diff-line.unchanged{background-color:var(--unchanged-bg)}.diff-line.unchanged .line-content{color:var(--text-secondary)}.diff-line.unchanged:hover{background-color:var(--bg-secondary)}.diff-highlight{background-color:var(--diff-highlight-added);padding:.125rem 0;font-weight:600}.diff-line.removed .diff-highlight{background-color:var(--diff-highlight-removed)}.side-by-side-container{display:grid;grid-template-columns:1fr 1fr;gap:0;background:var(--bg-primary)}.side-by-side-pane{border-right:1px solid var(--border-color);overflow:auto}.side-by-side-pane:last-child{border-right:none}.pane-header{background:var(--bg-tertiary);color:var(--text-primary);font-weight:600;padding:.2rem;border-bottom:2px solid var(--border-color);text-align:center;font-size:.875rem;text-transform:uppercase;letter-spacing:.05em}.diff-pane-content{font-family:SF Mono,Monaco,Cascadia Code,Courier New,monospace;font-size:.875rem}.side-by-side-pane .diff-line.empty{background-color:var(--bg-tertiary);opacity:.5}.features{margin-top:4rem;padding:3rem 0;background:var(--bg-primary);border-radius:1rem;box-shadow:var(--shadow-sm)}.feature-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem;padding:0 2rem}.feature{text-align:center}.feature-icon{font-size:2rem;margin-bottom:1rem}.feature h4{font-size:1.125rem;font-weight:600;color:var(--text-primary);margin-bottom:.5rem}.feature p{font-size:.875rem;color:var(--text-secondary);line-height:1.6}.how-to-use{margin-top:4rem;background:var(--bg-primary);padding:3rem 2rem;border-radius:1rem;box-shadow:var(--shadow-sm)}.how-to-use h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:2rem;text-align:center}.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem;margin-top:2rem}.step{background:var(--bg-secondary);padding:2rem;border-radius:.75rem;border:1px solid var(--border-color);transition:all .3s ease}.step:hover{transform:translateY(-4px);box-shadow:var(--shadow-md)}.step h3{font-size:1.25rem;font-weight:600;color:var(--primary);margin-bottom:1rem}.step p{font-size:.9375rem;color:var(--text-secondary);line-height:1.7}.about-section{margin-top:3rem;background:var(--bg-primary);padding:3rem 2rem;border-radius:1rem;box-shadow:var(--shadow-sm)}.about-section h2{font-size:2rem;font-weight:700;color:var(--text-primary);margin-bottom:1.5rem;text-align:center}.about-section p{font-size:1rem;color:var(--text-secondary);line-height:1.8;margin-bottom:1rem;max-width:900px;margin-left:auto;margin-right:auto}.about-section p:last-child{margin-bottom:0}footer{background:var(--bg-primary);border-top:1px solid var(--border-color);padding:2rem 0;margin-top:4rem;text-align:center}footer p{color:var(--text-secondary);font-size:.875rem}.toast{position:fixed;bottom:2rem;right:2rem;background:var(--bg-primary);color:var(--text-primary);padding:1rem 1.5rem;border-radius:.5rem;box-shadow:var(--shadow-lg);border:2px solid var(--border-color);font-weight:500;z-index:1000;opacity:0;transform:translateY(1rem);transition:all .3s ease;max-width:400px}.toast.show{opacity:1;transform:translateY(0)}.toast-success{border-color:var(--success);background:var(--success-bg);color:var(--success)}.toast-error{border-color:var(--error);background:var(--error-bg);color:var(--error)}#topBtn{position:fixed;bottom:2rem;right:2rem;z-index:99;border:none;background:var(--primary);color:#fff;border-radius:50%;width:3rem;height:3rem;box-shadow:var(--shadow-lg);cursor:pointer;transition:all .3s ease;padding:0;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transform:scale(.8)}#topBtn.visible{opacity:1;visibility:visible;transform:scale(1)}#topBtn svg{width:24px;height:24px}#topBtn:hover{background:var(--primary-hover);transform:scale(1) translateY(-3px);box-shadow:0 12px 20px -5px #0003,0 6px 8px -6px #0003}#topBtn:active{transform:scale(1) translateY(-1px)}@media(max-width:768px){.json-inputs{grid-template-columns:1fr}.compare-section{flex-direction:column}.view-mode-toggle{width:100%}.view-mode-btn{flex:1;justify-content:center}.compare-btn{width:100%;justify-content:center}.side-by-side-container{grid-template-columns:1fr;gap:1rem}.side-by-side-pane{border-right:none;border-bottom:1px solid var(--border-color)}.side-by-side-pane:last-child{border-bottom:none}.feature-grid{grid-template-columns:1fr;padding:0 1rem}.steps{grid-template-columns:1fr}.how-to-use,.about-section{padding:2rem 1rem}.how-to-use h2,.about-section h2{font-size:1.5rem}.ad-placeholder{padding:1.5rem}.toast{left:1rem;right:1rem;bottom:1rem}#topBtn{bottom:1rem;right:1rem}}@media(max-width:480px){.container{padding:0 1rem}.hero{padding:2rem 0 1.5rem}.hero h2{font-size:1.75rem}.json-box{padding:1rem}textarea{min-height:200px}}.json-key{color:var(--json-key);font-weight:500}.json-string{color:var(--json-string)}.json-number{color:var(--json-number)}.json-boolean{color:var(--json-boolean);font-weight:500}.json-null{color:var(--json-null);font-weight:500}.json-punctuation{color:var(--json-punctuation)}
