/* Shared agent history and Git diff dialog. */
.shd-dialog {
    --dm-diff-add-bg: rgba(52,211,153,.09);
    --dm-diff-del-bg: rgba(248,113,113,.09);
    --dm-diff-add-mark: rgba(52,211,153,.26);
    --dm-diff-del-mark: rgba(248,113,113,.26);
    --dm-diff-add-strong: #34d399;
    --dm-diff-del-strong: #fb7185;
    --dm-diff-edit-strong: #818cf8;
    width: min(1240px, calc(100vw - 64px));
    height: min(900px, calc(100dvh - 64px));
    max-width: none; max-height: none; padding: 0;
    color: var(--dm-text, #e2e8f0); background: var(--dm-bg, #0f172a);
    border: 1px solid var(--dm-border, #334155); border-radius: 14px;
    box-shadow: 0 24px 90px #0008; overflow: hidden;
    font: 14px/1.55 system-ui, sans-serif;
}
.shd-dialog[open] { display: flex; flex-direction: column; }
.shd-dialog::backdrop { background: #020617b8; backdrop-filter: blur(3px); }
.shd-dialog [hidden] { display: none !important; }
.shd-header { display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 0 20px; background: var(--dm-card, #1e293b); border-bottom: 1px solid var(--dm-border, #334155); }
.shd-title { flex: 1; min-width: 0; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 15px; }
.shd-button { border: 1px solid var(--dm-border, #475569); border-radius: 6px; background: transparent; color: inherit; padding: 7px 12px; cursor: pointer; font: inherit; line-height: 1.3; }
.shd-button:hover { background: #818cf81a; border-color: #818cf8; }
.shd-button:focus-visible, .shd-history:focus-visible { outline: 2px solid #a5b4fc; outline-offset: 2px; }
.shd-button[aria-pressed="true"] { background: #818cf824; border-color: #818cf8; }
.shd-close { white-space: nowrap; }
.shd-history { border: 0; flex: 1; width: 100%; min-height: 0; background: var(--dm-bg, #0f172a); }
.shd-changes { margin-top: 12px; color: #a5b4fc; }
.shd-changes-inline { margin-top: 0; padding: 5px 12px; font-size: 13px; font-weight: 600; white-space: nowrap; }
.shd-diff { display: flex; flex-direction: column; flex: 1; min-height: 0; }
.shd-range { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 20px; color: var(--dm-text-muted, #94a3b8); font-size: 12px; border-bottom: 1px solid var(--dm-border, #334155); }
.shd-range button { white-space: nowrap; }
.shd-limit { margin: 0; padding: 8px 20px; background: #f59e0b12; color: var(--dm-text-muted, #cbd5e1); font-size: 12px; }
.shd-layout { display: grid; grid-template-columns: 280px minmax(0, 1fr); flex: 1; min-height: 0; }
.shd-commits { overflow: auto; padding: 12px; border-right: 1px solid var(--dm-border, #334155); background: var(--dm-card, #1e293b); }
.shd-commit { display: flex; flex-direction: column; gap: 5px; text-align: left; width: 100%; margin-bottom: 8px; padding: 12px; }
.shd-commit strong { font-size: 13px; overflow-wrap: anywhere; font-weight: 550; }
.shd-commit span { font-size: 11px; color: var(--dm-text-muted, #94a3b8); }
.shd-reading { display: flex; flex-direction: column; min-width: 0; min-height: 0; }
.shd-toolbar { display: flex; align-items: center; gap: 6px; padding: 12px 20px 6px; }
.shd-stats { margin-left: auto; font-size: 12px; color: var(--dm-text-muted, #94a3b8); }
.shd-meta { padding: 4px 20px 12px; color: var(--dm-text-muted, #94a3b8); font-size: 12px; border-bottom: 1px solid var(--dm-border, #334155); overflow-wrap: anywhere; }
.shd-body { overflow: auto; min-height: 0; flex: 1; padding: 22px 28px 48px; font-size: 14px; line-height: 1.7; }
.shd-message { padding: 22px; color: var(--dm-text-muted, #94a3b8); }
.shd-body .shd-message { padding: 12px 0; }
.shd-body :is(h1,h2,h3,h4) { line-height: 1.35; color: inherit; }
.shd-body h1 { font-size: 26px; } .shd-body h2 { font-size: 21px; }
.shd-body a { color: #a5b4fc; }
.shd-body img { max-width: 100%; }
.shd-body pre { white-space: pre-wrap; overflow-wrap: anywhere; padding: 12px; background: #02061740; border-radius: 6px; }
.shd-body code { font-family: Consolas, monospace; font-size: .9em; }
.shd-body table { border-collapse: collapse; width: 100%; }
.shd-body :is(td,th) { border: 1px solid var(--dm-border, #334155); padding: 6px 9px; text-align: left; }
.shd-body blockquote { margin-left: 0; padding-left: 14px; border-left: 3px solid #64748b; }
.shd-body .cb-icon svg { width: 14px; height: 14px; }
.shd-dialog .dm-rdiff-block, .shd-dialog .dm-rdiff-group { position: relative; border-radius: 4px; }
.shd-dialog :is(.dm-rdiff-added,.dm-rdiff-removed,.dm-rdiff-changed) { margin: 6px 0 6px -12px; padding: 1px 12px; border-left: 3px solid; }
.shd-dialog .dm-rdiff-added { background: var(--dm-diff-add-bg); border-color: var(--dm-diff-add-strong); }
.shd-dialog .dm-rdiff-removed { background: var(--dm-diff-del-bg); border-color: var(--dm-diff-del-strong); }
.shd-dialog .dm-rdiff-changed { border-color: var(--dm-diff-edit-strong); }
.shd-dialog .dm-rdiff-ins { background: var(--dm-diff-add-mark); text-decoration: none; }
.shd-dialog .dm-rdiff-del { background: var(--dm-diff-del-mark); text-decoration: line-through; }
.shd-dialog .dm-rdiff-cb-changed { outline: 2px solid var(--dm-diff-edit-strong); }
.shd-dialog .shd-current { box-shadow: 0 0 0 1px #818cf888; }
.shd-dialog .dm-rdiff-fold { display: block; width: 100%; border: 1px dashed #64748b; padding: 6px; color: inherit; background: transparent; cursor: pointer; }
.shd-dialog .dm-rdiff-hidden { display: flex; flex-direction: column; }
.shd-dialog .dm-rdiff-hidden-source { white-space: pre-wrap; overflow-wrap: anywhere; }
.shd-dialog .dm-rdiff-hidden-label { color: #94a3b8; font-size: 11px; }
.shd-dialog .dm-rdiff-code-line { display: block; }
.shd-dialog .dm-rdiff-code-add { background: var(--dm-diff-add-mark); }
.shd-dialog .dm-rdiff-code-del { background: var(--dm-diff-del-mark); text-decoration: line-through; }
.shd-dialog .dm-sdiff { font: 12px/1.6 Consolas, monospace; border: 1px solid var(--dm-border, #334155); border-radius: 5px; overflow: hidden; }
.shd-dialog .dm-sdiff-hunk { padding: 5px 8px; background: #818cf81c; color: var(--dm-text-muted, #94a3b8); white-space: pre-wrap; }
.shd-dialog .dm-sdiff-line { display: grid; grid-template-columns: 3em 3em 1.5em minmax(0,1fr); }
.shd-dialog .dm-sdiff-no { text-align: right; padding-right: 6px; color: #94a3b8; border-right: 1px solid #64748b33; user-select: none; }
.shd-dialog .dm-sdiff-sign { text-align: center; }
.shd-dialog .dm-sdiff-text { white-space: pre-wrap; overflow-wrap: anywhere; padding-right: 8px; }
.shd-dialog .dm-sdiff-add { background: var(--dm-diff-add-bg); }
.shd-dialog .dm-sdiff-del { background: var(--dm-diff-del-bg); }
.shd-dialog .dm-sdiff-add .dm-sdiff-word { background: var(--dm-diff-add-mark); }
.shd-dialog .dm-sdiff-del .dm-sdiff-word { background: var(--dm-diff-del-mark); }
.shd-dialog .dm-sdiff-meta { display: block; padding-left: 7.5em; font-style: italic; color: #94a3b8; }
.shd-history-embedded :is(.ag-header,.ag-stats,.ag-toolbar,#agHistoryBack) { display: none !important; }
.shd-history-embedded .ag-main { padding: 18px; }
.shd-history-embedded .ag-history { border: 0; background: transparent; padding: 6px; }
.shd-card-diff { flex: 0 0 auto; margin-right: 14px; padding: 5px 12px; color: #a5b4fc; font-size: 13px; }
.shd-repo-controls { display: flex; align-items: end; flex-wrap: wrap; gap: 10px; padding: 12px 20px 6px; }
.shd-repo-controls label { display: flex; flex-direction: column; gap: 3px; font-size: 11px; color: #94a3b8; min-width: 0; }
.shd-repo-controls :is(input,select), .shd-commit-select { color: inherit; background: var(--dm-card, #1e293b); border: 1px solid var(--dm-border, #475569); border-radius: 6px; padding: 7px; font: inherit; min-width: 0; max-width: 100%; color-scheme: dark; }
.shd-repo-controls label:first-child { max-width: 180px; }
.shd-repo-note, .shd-repo-status { margin: 0; padding: 4px 20px 8px; font-size: 11px; color: #94a3b8; }
.shd-repo-commitbar { display: flex; gap: 10px; padding: 6px 20px; }
.shd-commit-select { flex: 1; width: 0; text-overflow: ellipsis; }
.shd-files { overflow: auto; min-height: 0; padding: 10px; border-right: 1px solid #334155; background: var(--dm-card, #1e293b); }
.shd-folder { margin: 6px 3px; font: 12px/1.5 Consolas, monospace; color: #94a3b8; overflow-wrap: anywhere; }
.shd-file { display: flex; flex-direction: column; width: 100%; text-align: left; margin-bottom: 6px; padding: 8px; overflow-wrap: anywhere; }
.shd-file strong { font: 12px/1.5 Consolas, monospace; }
.shd-file span, .shd-file-note { font-size: 11px; color: #94a3b8; }
.shd-button:disabled { opacity: .55; cursor: default; }
.shd-repo-layout .shd-body { min-width: 0; }
@media (max-width: 720px) {
    .shd-dialog { width: 100vw; height: 100dvh; margin: 0; border: 0; border-radius: 0; }
    .shd-header { padding: 0 12px; gap: 8px; }
    .shd-header .shd-title { font-size: 13px; }
    .shd-range { align-items: flex-start; padding: 10px 12px; }
    .shd-layout { grid-template-columns: minmax(0,1fr); grid-template-rows: minmax(90px,25%) minmax(0,1fr); }
    .shd-commits { border-right: 0; border-bottom: 1px solid #334155; }
    .shd-commit { padding: 8px; }
    .shd-toolbar { padding: 10px 12px 6px; }
    .shd-body { padding: 18px; }
    .shd-repo-controls { gap: 6px; padding: 8px 12px; }
    .shd-repo-controls label { flex: 1 1 45%; }
    .shd-repo-controls label:first-child { flex-basis: 100%; max-width: none; }
    .shd-repo-commitbar { padding: 4px 12px; }
    .shd-repo-note, .shd-repo-status { padding: 3px 12px; font-size: 10px; }
    .shd-files { border-right: 0; border-bottom: 1px solid #334155; }
}
