.diff-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:12px}.diff-editor-panel{display:flex;flex-direction:column}.diff-editor-panel .tool-panel__body{display:flex;flex:1;min-height:0;flex-direction:column}.diff-editor{position:relative;overflow:auto;width:100%;height:360px;min-height:260px;max-height:72vh;resize:vertical;background:color-mix(in srgb,var(--waludo-paper) 88%,#ffffff)}.diff-editor:focus-within{box-shadow:var(--tool-shadow-focus-inset)}.diff-cm-host{width:100%;height:100%;min-width:0}.diff-cm-host .cm-editor{height:100%;background:transparent;color:var(--waludo-text);outline:none}.diff-cm-host .cm-editor.cm-focused{outline:none}.diff-cm-host .cm-scroller{height:100%;overflow:auto;font-family:var(--waludo-font-mono);font-size:var(--tool-font-size-control);font-variant-ligatures:none;line-height:1.75;scrollbar-gutter:stable}.diff-cm-host .cm-content{min-height:100%;padding:17px 26px 17px 8px;caret-color:var(--waludo-strong);tab-size:4}.diff-cm-host .cm-line{box-sizing:border-box;min-height:21px;padding:0 10px;border-radius:0;overflow-wrap:anywhere}.diff-cm-host .cm-gutters{border:0;border-right:1px solid color-mix(in srgb,var(--waludo-line) 64%,transparent);background:color-mix(in srgb,var(--waludo-paper) 94%,#ffffff);color:var(--waludo-muted-2)}.diff-cm-host .cm-lineNumbers .cm-gutterElement{min-width:46px;padding:0 8px 0 4px;color:var(--waludo-muted-2);font-family:var(--waludo-font-mono);font-size:var(--tool-font-size-caption);line-height:1.75;text-align:right}.diff-cm-host .cm-activeLine,.diff-cm-host .cm-activeLineGutter{background:transparent}.diff-cm-host .cm-cursor{border-left:1px solid var(--waludo-strong)}.diff-cm-host .cm-selectionBackground,.diff-cm-host .cm-content ::selection{background:color-mix(in srgb,var(--waludo-accent) 28%,transparent)!important}.diff-cm-host .cm-placeholder{color:var(--waludo-muted-2)}.diff-cm-host .cm-line.diff-cm-line--removed,.diff-cm-host .cm-line.diff-cm-line--added{border-radius:var(--tool-radius-micro)}.diff-cm-host .cm-line.diff-cm-line--removed:not(.is-change-start),.diff-cm-host .cm-line.diff-cm-line--added:not(.is-change-start){border-top-left-radius:0;border-top-right-radius:0}.diff-cm-host .cm-line.diff-cm-line--removed:not(.is-change-end),.diff-cm-host .cm-line.diff-cm-line--added:not(.is-change-end){border-bottom-left-radius:0;border-bottom-right-radius:0}.diff-cm-line--removed{background:color-mix(in srgb,var(--waludo-error) 10%,transparent)}.diff-cm-line--added{background:color-mix(in srgb,var(--waludo-success) 11%,transparent)}.diff-cm-mark--removed{border-radius:var(--tool-radius-micro);background:color-mix(in srgb,var(--waludo-error) 23%,transparent)}.diff-cm-mark--added{border-radius:var(--tool-radius-micro);background:color-mix(in srgb,var(--waludo-success) 24%,transparent)}.diff-cm-spacer{display:block;box-sizing:border-box;width:100%;border-top:1px solid color-mix(in srgb,var(--waludo-line) 38%,transparent);border-bottom:1px solid color-mix(in srgb,var(--waludo-line) 38%,transparent);background:repeating-linear-gradient(135deg,transparent 0 3px,color-mix(in srgb,var(--waludo-line) 34%,transparent) 3px 4px,transparent 4px 7px);pointer-events:none}.diff-editor__map{position:absolute;z-index:2;top:8px;right:20px;bottom:24px;width:3px;border-radius:var(--tool-radius-pill);background:color-mix(in srgb,var(--waludo-line) 40%,transparent);pointer-events:none}.diff-editor__map span{position:absolute;left:0;width:100%;min-height:3px;border-radius:var(--tool-radius-pill)}.diff-editor__map--removed span{background:color-mix(in srgb,var(--waludo-error) 68%,transparent)}.diff-editor__map--added span{background:color-mix(in srgb,var(--waludo-success) 72%,transparent)}.diff-input-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:34px;padding:7px 14px;border-top:1px dashed var(--waludo-line);background:color-mix(in srgb,var(--waludo-paper) 92%,#ffffff);color:var(--waludo-muted);font-family:var(--waludo-font-mono);font-size:var(--tool-font-size-caption)}.diff-input-meta>span:after{content:" lines";opacity:.65}.diff-input-meta .diff-legend{display:inline-flex;align-items:center;gap:6px;letter-spacing:.04em;text-transform:uppercase}.diff-input-meta .diff-legend strong{color:var(--waludo-text);font-size:var(--tool-font-size-caption)}.diff-input-meta .diff-legend:before{content:"";width:7px;height:7px;border-radius:var(--tool-radius-micro)}.diff-input-meta .diff-legend:after{content:none}.diff-legend--removed:before{background:color-mix(in srgb,var(--waludo-error) 72%,transparent)}.diff-legend--added:before{background:color-mix(in srgb,var(--waludo-success) 76%,transparent)}.diff-command-bar{display:grid;grid-template-columns:minmax(0,auto) minmax(180px,1fr) auto;align-items:center;gap:10px 16px;margin:12px 0 0;padding:10px;border:1px solid var(--waludo-line);border-radius:var(--tool-radius-inner);background:color-mix(in srgb,var(--waludo-panel) 92%,#ffffff);box-shadow:var(--tool-shadow-panel)}.diff-command-controls,.diff-command-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.diff-command-actions{justify-content:flex-end}.diff-check{display:inline-flex;align-items:center;gap:6px;color:var(--waludo-muted);font-size:var(--tool-font-size-caption);cursor:pointer}.diff-check input{accent-color:var(--waludo-accent)}.diff-command-status{display:flex;align-items:center;justify-content:center;min-width:0;gap:8px;color:var(--waludo-muted);font-family:var(--waludo-font-mono);font-size:var(--tool-font-size-caption);text-align:center}.diff-command-status>span{flex:0 0 auto;width:7px;height:7px;border-radius:var(--tool-radius-pill);background:currentColor;color:var(--waludo-muted-2);box-shadow:var(--tool-shadow-status)}.diff-command-status strong{overflow:hidden;color:var(--waludo-text);font-weight:500;text-overflow:ellipsis;white-space:nowrap}.diff-command-status[data-state=changed]>span{color:var(--waludo-accent)}.diff-command-status[data-state=same]>span{color:var(--waludo-success)}@media(max-width:980px){.diff-command-bar{grid-template-columns:1fr auto}.diff-command-status{grid-column:1 / -1;grid-row:2;justify-content:flex-start;padding:0 4px 2px}}@media(max-width:820px){.diff-input-grid{grid-template-columns:1fr}.diff-editor{height:300px;min-height:230px}}@media(max-width:620px){.diff-command-bar{grid-template-columns:1fr}.diff-command-status{grid-column:auto;grid-row:auto}.diff-command-actions{justify-content:stretch}.diff-command-actions .tool-button{flex:1 1 auto}}
