.dif-wrapper{max-width:100%}.dif-input-layout{display:grid;grid-template-columns:1fr 1fr;gap:12px}.dif-input-pane{display:flex;flex-direction:column}.dif-input-label{display:block;font-weight:700;font-size:14px;color:var(--swp-ink);margin-bottom:6px}.dif-textarea{width:100%;min-height:140px;padding:10px 12px;border:1px solid var(--swp-border);border-radius:8px;font-family:Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:1.6;color:var(--swp-ink);background:var(--swp-surface);resize:vertical;box-sizing:border-box;transition:border-color .15s,box-shadow .15s}.dif-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px #4a90e226}.dif-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-bottom:10px}.dif-mode-btn,.dif-granularity-btn{padding:5px 12px;font-size:13px;font-weight:600;border:1px solid var(--swp-border);border-radius:6px;background:var(--swp-surface);color:var(--swp-ink-2);cursor:pointer;transition:background .15s,border-color .15s}.dif-mode-btn:hover,.dif-granularity-btn:hover{background:var(--swp-paper-2);border-color:var(--color-primary)}.dif-mode-btn--active,.dif-granularity-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dif-presets-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:12px}.dif-preset-btn{padding:4px 10px;font-size:12px;font-weight:600;border:1px solid var(--swp-border);border-radius:20px;background:var(--swp-surface);color:var(--swp-ink-2);cursor:pointer;transition:background .15s,border-color .15s}.dif-preset-btn:hover{background:var(--swp-paper-2);border-color:var(--color-primary)}.dif-preset-btn--active{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.dif-truncate-warn{padding:8px 12px;background:#fffbeb;border:1px solid #fbbf24;border-radius:6px;font-size:13px;color:#92400e;margin-bottom:10px}.dif-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.dif-stats-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-bottom:10px}.dif-stat-chip{padding:3px 10px;font-size:12px;font-weight:700;border-radius:20px}.dif-stat-chip--add{background:#d1fae5;color:#065f46}.dif-stat-chip--remove{background:#fee2e2;color:#991b1b}.dif-stat-chip--change{background:#fef3c7;color:#92400e}.dif-result{border:1px solid var(--swp-border);border-radius:8px;overflow:hidden;font-family:Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:1.6}.dif-side-by-side{display:grid;grid-template-columns:1fr 1fr}.dif-pane-a{border-right:1px solid var(--swp-border);overflow-x:auto}.dif-pane-b{overflow-x:auto}.dif-line-row{display:flex;align-items:baseline;min-height:22px;padding:1px 0;transition:background .15s,border-color .15s}.dif-line-num{min-width:40px;padding:0 8px;font-size:11px;color:var(--swp-ink-muted, #aaa);text-align:right;user-select:none;flex-shrink:0}.dif-line-code{padding:0 8px;white-space:pre;word-break:normal;flex:1}.dif-line--equal{background:transparent}.dif-line--add{background:#d1fae5}.dif-line--remove{background:#fee2e2}.dif-line--change{background:#fef3c7}.dif-char-add{background:#6ee7b7;border-radius:2px}.dif-char-remove{background:#fca5a5;border-radius:2px;text-decoration:line-through;text-decoration-color:#dc2626}.dif-unified{overflow-x:auto}.dif-unified-pre{margin:0;padding:12px;font-family:Menlo,Consolas,Monaco,monospace;font-size:13px;line-height:1.6;white-space:pre;color:var(--swp-ink)}.dif-actions{display:flex;gap:8px;align-items:center;margin-top:12px;flex-wrap:wrap}.dif-copy-btn,.dif-reset-btn{padding:6px 14px;font-size:13px;font-weight:600;border-radius:6px;border:1px solid var(--swp-border);cursor:pointer;transition:background .15s,border-color .15s}.dif-copy-btn{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dif-copy-btn:hover{opacity:.88}.dif-reset-btn{background:var(--swp-surface);color:var(--swp-ink-2)}.dif-reset-btn:hover{background:var(--swp-paper-2);border-color:var(--color-primary)}.dif-copy-feedback{font-size:13px;color:#38a169;font-weight:700;min-height:20px}.dif-empty-state{text-align:center;padding:48px 24px;color:var(--swp-ink-muted);font-size:15px}@media(max-width:639px){.dif-wrapper{overflow-x:hidden}.dif-input-layout,.dif-side-by-side{grid-template-columns:1fr}.dif-pane-a{border-right:none;border-bottom:1px solid var(--swp-border)}.dif-textarea{font-size:16px}}
