.tool-hero{display:flex;flex-wrap:wrap;gap:32px;align-items:flex-start;margin-bottom:1rem;}
.hero-text{flex:1;min-width:260px;}
.hero-text h1{font-size:40px;font-weight:700;line-height:1.2;margin-bottom:0;}
.hero-subtitle{font-size:18px;color:var(--light-black-color,#65666A);max-width:640px;margin-bottom:1rem;margin-top:0;}
@media (max-width:767px){.hero-text h1{font-size:clamp(1.75rem,5vw,2.5rem);}.hero-subtitle{font-size:clamp(1rem,3vw,1.125rem);}}
.compare-interface{margin-bottom:2rem;}
.initContainer{display:block;}
.compare-layout{display:grid;grid-template-columns:1fr auto 1fr;gap:1.5rem;align-items:start;margin-bottom:2rem;}
.compare-panel{background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;box-shadow:0 1px 3px rgba(0,0,0,0.1);transition:box-shadow 0.2s ease;}
.compare-panel:hover{box-shadow:0 4px 6px rgba(0,0,0,0.1);}
.panel-header{display:flex;justify-content:space-between;align-items:center;padding:1rem 1.25rem;background:var(--panel-header-bg,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);}
.panel-title-group{display:flex;align-items:center;gap:0.75rem;}
.panel-title{font-size:1rem;font-weight:600;color:var(--text-primary,#111827);margin:0;}
.panel-badge{display:inline-flex;align-items:center;padding:0.25rem 0.75rem;font-size:0.75rem;font-weight:500;border-radius:12px;background:var(--badge-bg,#e5e7eb);color:var(--badge-text,#6b7280);}
.panel-badge.valid{background:#d1fae5;color:#065f46;}
.panel-badge.error{background:#fee2e2;color:#991b1b;}
.panel-editor{position:relative;flex:1;min-height:400px;}
.json-input{width:100%;height:100%;min-height:400px;padding:1rem;border:none;outline:none;font-size:14px;line-height:1.6;color:var(--text-primary,#111827);background:transparent;resize:none;tab-size:2;font-family:ui-monospace,SFMono-Regular,Monaco,Consolas,monospace;}
.json-input::placeholder{color:var(--text-muted,#9ca3af);}
.json-input.error{border:1px solid #fecaca;background:#fef2f2;}
.error-message{position:absolute;bottom:0;left:0;right:0;padding:0.75rem 1rem;background:#fee2e2;color:#991b1b;font-size:0.875rem;border-top:1px solid #fecaca;display:none;}
.error-message:not(:empty){display:block;}
.compare-controls{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0;}
.compare-controls .xd-opts{display:flex;flex-wrap:wrap;align-items:center;gap:0.75rem;justify-content:center;}
.compare-controls .xd-opts-vertical{flex-direction:column;align-items:flex-start;}
.compare-controls .xd-opts-vertical .xd-opt{display:flex;align-items:center;gap:0.5rem;width:100%;}
.compare-controls .xd-opt{display:flex;align-items:center;gap:0.5rem;cursor:pointer;font-size:0.8125rem;color:var(--text-secondary,#6b7280);}
.compare-controls .xd-opt input[type="checkbox"]{width:16px;height:16px;accent-color:#667eea;}
.btn-compare{display:flex;flex-direction:column;align-items:center;gap:0.5rem;padding:1rem 1.5rem;background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border:none;border-radius:12px;font-size:0.875rem;font-weight:600;cursor:pointer;transition:all 0.3s ease;box-shadow:0 4px 6px rgba(102,126,234,0.3);min-width:100px;}
.btn-compare:hover{transform:translateY(-2px);box-shadow:0 6px 12px rgba(102,126,234,0.4);}
.btn-compare:active{transform:translateY(0);}
.btn-compare:disabled{opacity:0.6;cursor:not-allowed;transform:none;}
.compare-icon{width:20px;height:20px;}
.compare-text{font-size:0.875rem;font-weight:600;}
.control-divider{width:1px;height:20px;background:var(--border-color,#e5e7eb);}
.btn-secondary{display:flex;align-items:center;gap:0.5rem;padding:0.5rem 1rem;background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:8px;color:var(--text-secondary,#6b7280);font-size:0.875rem;font-weight:500;cursor:pointer;transition:all 0.2s ease;white-space:nowrap;}
.btn-secondary:hover{background:var(--hover-bg,#f3f4f6);color:var(--text-primary,#111827);border-color:var(--border-hover,#d1d5db);}
.compare-results{margin-top:2rem;background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;overflow:hidden;box-shadow:0 1px 3px rgba(0,0,0,0.1);}
.results-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;background:var(--panel-header-bg,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);}
.results-title{font-size:1.125rem;font-weight:600;color:var(--text-primary,#111827);margin:0;}
.results-stats{font-size:0.875rem;color:var(--text-secondary,#6b7280);}
.results-content{border-top:1px solid var(--border-color,#e5e7eb);background:#fafafa;}
.results-content-unified{display:flex;flex-direction:column;}
.diff-unified-header{display:grid;grid-template-columns:1fr 1fr;gap:0;padding:0.75rem 1rem;background:var(--panel-header-bg,#f9fafb);border-bottom:1px solid var(--border-color,#e5e7eb);font-size:0.875rem;font-weight:600;color:var(--text-secondary,#6b7280);}
.diff-unified{flex:1;overflow:auto;max-height:500px;font-family:ui-monospace,SFMono-Regular,Monaco,Consolas,monospace;font-size:13px;line-height:1.8;}
.diff-row{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:1.8em;border-bottom:1px solid #eee;}
.diff-row:hover{background:rgba(0,0,0,0.02);}
.diff-side{display:flex;min-width:0;border-right:1px solid #e5e7eb;}
.diff-row .diff-side:last-child{border-right:none;}
.diff-gutter{flex-shrink:0;width:48px;padding:0 0.5rem;background:#f5f5f5;color:#999;font-size:12px;text-align:right;line-height:1.8;user-select:none;border-right:1px solid #e0e0e0;}
.diff-code{flex:1;padding:0 0.75rem;overflow-x:auto;white-space:pre;word-wrap:normal;line-height:1.8;min-height:1.8em;}
.diff-row.removed .diff-side:first-child .diff-code{background:#f8d7da;color:#721c24;}
.diff-row.removed .diff-side:first-child .diff-gutter{background:#f8d7da;color:#721c24;}
.diff-row.added .diff-side:last-child .diff-code{background:#d4edda;color:#155724;}
.diff-row.added .diff-side:last-child .diff-gutter{background:#d4edda;color:#155724;}
.diff-row.modified .diff-side .diff-code{background:#fff3cd;color:#856404;}
.diff-row.modified .diff-side .diff-gutter{background:#fff3cd;color:#856404;}
.diff-gutter-empty{color:#ccc;}
.results-actions{display:flex;gap:0.75rem;padding:1rem 1.5rem;background:var(--panel-header-bg,#f9fafb);border-top:1px solid var(--border-color,#e5e7eb);}
.btn-action-primary,.btn-action-secondary{display:flex;align-items:center;gap:0.5rem;padding:0.625rem 1.25rem;border:1px solid var(--border-color,#e5e7eb);border-radius:8px;font-size:0.875rem;font-weight:500;cursor:pointer;transition:all 0.2s ease;}
.btn-action-primary{background:linear-gradient(135deg,#667eea 0%,#764ba2 100%);color:#fff;border-color:transparent;}
.btn-action-primary:hover{transform:translateY(-1px);box-shadow:0 4px 6px rgba(102,126,234,0.3);}
.btn-action-secondary{background:var(--card-bg,#fff);color:var(--text-secondary,#6b7280);}
.btn-action-secondary:hover{background:var(--hover-bg,#f3f4f6);color:var(--text-primary,#111827);border-color:var(--border-hover,#d1d5db);}
@media (max-width:1024px){.compare-layout{grid-template-columns:1fr;gap:1rem;}.compare-controls{flex-direction:row;flex-wrap:wrap;justify-content:center;padding:0.75rem;background:var(--card-bg,#fff);border:1px solid var(--border-color,#e5e7eb);border-radius:12px;}.btn-compare{flex-direction:row;min-width:auto;padding:0.75rem 1.25rem;}.control-divider{width:20px;height:1px;}}
@media (max-width:767px){.panel-header{padding:0.75rem 1rem;flex-wrap:wrap;gap:0.5rem;}.panel-title{font-size:0.875rem;}.panel-editor{min-height:300px;}.json-input{min-height:300px;font-size:13px;padding:0.75rem;}.compare-controls .xd-opts{order:3;width:100%;}.btn-compare{width:100%;justify-content:center;}.btn-secondary{flex:1;justify-content:center;min-width:0;}.results-header{flex-direction:column;align-items:flex-start;gap:0.5rem;padding:1rem;}.results-actions{flex-direction:column;padding:0.75rem 1rem;}.btn-action-primary,.btn-action-secondary{width:100%;justify-content:center;}.diff-unified{font-size:12px;}}
.btn-compare.loading{position:relative;color:transparent;pointer-events:none;}
.btn-compare.loading::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:20px;height:20px;border:2px solid rgba(255,255,255,0.3);border-top-color:#fff;border-radius:50%;animation:xd-spin 0.7s linear infinite;}
@keyframes xd-spin{to{transform:translate(-50%,-50%) rotate(360deg);}}
