    html, body { height: 100%; margin: 0; }
    #container { height: calc(100vh - 140px); }
    #editors { height: 100%; }
    #diffEditor { height: 100%; }

    @keyframes slideIn {
      from { opacity: 0; transform: translateY(-10px); }
      to   { opacity: 1; transform: translateY(0); }
    }
    .animate-in { animation: slideIn 0.3s ease-out; }

    .drop-zone { transition: all 0.2s ease; }
    .drop-zone.drag-over {
      background-color: rgba(59,130,246,0.1);
      border-color: rgb(59,130,246);
    }

    .tooltip { position: relative; }
    .tooltip:hover::after {
      content: attr(data-tooltip);
      position: absolute;
      bottom: 100%; left: 50%;
      transform: translateX(-50%);
      padding: 4px 8px;
      background: rgba(0,0,0,0.9);
      color: white; font-size: 12px;
      white-space: nowrap; border-radius: 4px;
      margin-bottom: 4px; z-index: 1000;
    }

    /* ── XML Semantic Diff Styles ── */
    #xmlDiffContainer {
      font-family: 'Fira Mono', 'Cascadia Code', monospace;
      font-size: 13px;
      overflow-y: auto;
      height: 100%;
      padding: 16px;
      background: #0f1117;
      border-radius: 0 0 12px 12px;
      border: 1px solid rgba(55,65,81,0.5);
      border-top: none;
    }

    .xd-section { margin-bottom: 6px; }

    .xd-added {
      background: rgba(34,197,94,0.12);
      border-left: 3px solid #22c55e;
      padding: 4px 10px;
      border-radius: 0 4px 4px 0;
      color: #86efac;
    }
    .xd-removed {
      background: rgba(239,68,68,0.12);
      border-left: 3px solid #ef4444;
      padding: 4px 10px;
      border-radius: 0 4px 4px 0;
      color: #fca5a5;
    }
    .xd-changed {
      background: rgba(251,191,36,0.10);
      border-left: 3px solid #f59e0b;
      padding: 4px 10px;
      border-radius: 0 4px 4px 0;
      color: #fde68a;
    }
    .xd-same {
      color: #6b7280;
      padding: 2px 10px;
    }
    .xd-path {
      font-size: 11px;
      opacity: 0.6;
      margin-bottom: 2px;
    }
    .xd-label {
      display: inline-block;
      font-size: 10px;
      font-weight: 700;
      padding: 1px 6px;
      border-radius: 3px;
      margin-right: 6px;
      letter-spacing: 0.05em;
    }
    .xd-label-add    { background: #166534; color: #86efac; }
    .xd-label-del    { background: #7f1d1d; color: #fca5a5; }
    .xd-label-change { background: #78350f; color: #fde68a; }

    .xd-summary {
      display: flex; gap: 12px; flex-wrap: wrap;
      padding: 10px 14px;
      background: rgba(255,255,255,0.04);
      border-radius: 8px;
      margin-bottom: 14px;
      border: 1px solid rgba(255,255,255,0.07);
      font-size: 12px;
    }
    .xd-summary-item { display: flex; align-items: center; gap: 5px; }
    .xd-dot { width: 8px; height: 8px; border-radius: 50%; }

    .xd-error {
      color: #f87171;
      padding: 20px;
      text-align: center;
      font-size: 14px;
    }

    .mode-btn {
      padding: 4px 12px;
      border-radius: 6px;
      font-size: 12px;
      font-weight: 600;
      transition: all 0.15s;
      border: 1px solid transparent;
    }
    .mode-btn.active {
      background: linear-gradient(135deg, #3b82f6, #8b5cf6);
      color: white;
      border-color: transparent;
    }
    .mode-btn:not(.active) {
      background: rgba(255,255,255,0.06);
      color: #9ca3af;
      border-color: rgba(255,255,255,0.1);
    }
    .mode-btn:not(.active):hover {
      background: rgba(255,255,255,0.1);
      color: #d1d5db;
    }

    .xml-badge {
      display: inline-flex; align-items: center; gap: 4px;
      background: linear-gradient(135deg,#7c3aed,#2563eb);
      color: white; font-size: 10px; font-weight: 700;
      padding: 2px 7px; border-radius: 4px; letter-spacing: 0.06em;
    }

    .json-badge {
      display: inline-flex; align-items: center; gap: 4px;
      background: linear-gradient(135deg,#d97706,#b45309);
      color: white; font-size: 10px; font-weight: 700;
      padding: 2px 7px; border-radius: 4px; letter-spacing: 0.06em;
    }

    /* ── JSON Semantic Diff container (reuses xd-* classes) ── */
    #jsonDiffContainer {
      font-family: 'Fira Mono', 'Cascadia Code', monospace;
      font-size: 13px;
      overflow-y: auto;
      height: 100%;
      padding: 16px;
      background: #0f1117;
      border-radius: 0 0 12px 12px;
      border: 1px solid rgba(55,65,81,0.5);
      border-top: none;
    }