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