.commit-graph { --cg-gutter: 44px; --cg-row-height: 26px; --cg-dot-hollow: var(--cui-card-bg, #fff); width: 100%; min-width: 0; border: 1px solid var(--cui-border-color, #d8dbe0); border-radius: .75rem; background: var(--cui-card-bg, #fff); overflow: hidden; box-shadow: 0 4px 14px rgba(15, 23, 42, .035); }
.commit-graph__toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; padding: .55rem .85rem; border-bottom: 1px solid var(--cui-border-color, #d8dbe0); background: var(--cui-card-bg, #fff); }
.commit-graph__toolbar-label { margin: 0; color: var(--cui-emphasis-color, #080a0c); font-size: .875rem; font-weight: 600; }
.commit-graph__select { max-width: 20rem; padding: .2rem 1.6rem .2rem .5rem; border: 1px solid var(--cui-border-color, #d8dbe0); border-radius: .4rem; background: var(--cui-card-bg, #fff); color: var(--cui-body-color, #212631); font-size: .875rem; font-weight: 600; cursor: pointer; }
.commit-graph__select:focus-visible { outline: 2px solid var(--cui-primary, #321fdb); outline-offset: 1px; }
.commit-graph__search { margin-left: auto; }
.commit-graph__search .nova-grid-search-input { width: 13rem; }
.commit-graph__toolbar-count { color: var(--cui-secondary-color, #6b7280); font-size: .72rem; white-space: nowrap; }
.commit-graph__toolbar-count--empty { color: var(--cui-emphasis-color, #080a0c); font-weight: 600; }
.commit-graph__empty { padding: 1.5rem .85rem; color: var(--cui-secondary-color, #6b7280); font-size: .82rem; text-align: center; }
.commit-graph__scroll { width: 100%; max-width: 100%; overflow-x: auto; overscroll-behavior-inline: contain; }
.commit-graph__head { display: grid; align-items: center; min-width: 42rem; height: 2.4rem; border-bottom: 1px solid var(--cui-border-color, #d8dbe0); background: var(--cui-card-bg, #fff); color: var(--cui-emphasis-color, #080a0c); font-size: .875rem; font-weight: 600; }
/* Head cells reuse the row modifiers, so the muted/monospace row styling has to be undone here. */
.commit-graph__head .commit-graph__cell { color: inherit; font-family: inherit; font-size: inherit; font-weight: inherit; }
.commit-graph__body { position: relative; min-width: 42rem; }
.commit-graph__svg { position: absolute; top: 0; left: 0; pointer-events: none; }
.commit-graph__svg path { pointer-events: none; }
.commit-graph__rows { position: relative; }
.commit-graph__row { border-bottom: 1px solid transparent; }
.commit-graph__row:hover { background: rgba(50, 31, 219, .035); }
.commit-graph__row--selected { border-bottom-color: var(--cui-border-color, #d8dbe0); background: rgba(50, 31, 219, .05); }
.commit-graph__row--match { background: rgba(var(--brand-primary-rgb, var(--bs-primary-rgb, 13, 110, 253)), .10); box-shadow: inset 2px 0 0 var(--brand-primary, var(--bs-primary, #0d6efd)); }
.commit-graph__row--match:hover { background: rgba(var(--brand-primary-rgb, var(--bs-primary-rgb, 13, 110, 253)), .15); }
.commit-graph__line { display: grid; align-items: center; height: var(--cg-row-height); }
.commit-graph__line--clickable { cursor: pointer; }
.commit-graph__cell { min-width: 0; padding-right: .75rem; overflow: hidden; font-size: .78rem; line-height: 1.2; text-overflow: ellipsis; white-space: nowrap; }
.commit-graph__cell--graph { padding: 0; }
.commit-graph__cell--title { display: flex; align-items: baseline; gap: .35rem; color: var(--cui-body-color, #212631); }
.commit-graph__cell--date, .commit-graph__cell--author { color: var(--cui-secondary-color, #6b7280); font-size: .74rem; }
.commit-graph__cell--future { color: var(--cui-primary, #321fdb); font-weight: 600; }
.commit-graph__cell--id { color: var(--cui-secondary-color, #9ca3af); font-family: var(--cui-font-monospace, ui-monospace, SFMono-Regular, Menlo, monospace); font-size: .7rem; }
.commit-graph__summary { min-width: 0; overflow: hidden; font-weight: 550; text-overflow: ellipsis; white-space: nowrap; }
.commit-graph__subtitle { flex: 0 1 auto; min-width: 0; overflow: hidden; color: var(--cui-secondary-color, #9ca3af); font-size: .72rem; text-overflow: ellipsis; white-space: nowrap; }
.commit-graph__subtitle::before { content: "·"; margin-right: .35rem; }
.commit-graph__ref { flex: 0 0 auto; padding: .04rem .4rem; border: 1px solid var(--cg-ref-colour, #0085d9); border-radius: 999px; background: color-mix(in srgb, var(--cg-ref-colour, #0085d9) 12%, transparent); color: var(--cg-ref-colour, #0085d9); font-size: .68rem; font-weight: 700; }
.commit-graph__ref--head { background: var(--cg-ref-colour, #0085d9); color: var(--cui-white, #fff); }
.commit-graph__pill { flex: 0 0 auto; padding: .04rem .4rem; border: 1px solid transparent; border-radius: 999px; font-size: .68rem; font-weight: 700; }
.commit-graph__pill.commit-graph--pending { border-color: var(--cui-primary-border-subtle, #9d92e6); background: var(--cui-primary-bg-subtle, #cfc7f3); color: var(--cui-primary-text-emphasis, #3634a3); }
.commit-graph__pill.commit-graph--blocked { border-color: var(--cui-warning-border-subtle, #fcd88a); background: var(--cui-warning-bg-subtle, #feecc5); color: var(--cui-warning-text-emphasis, #764705); }
.commit-graph__pill.commit-graph--failed { border-color: var(--cui-danger-border-subtle, #f2a9a9); background: var(--cui-danger-bg-subtle, #f9d4d4); color: var(--cui-danger-text-emphasis, #671414); }
.commit-graph__pill.commit-graph--abandoned { border-color: var(--cui-border-color, #d8dbe0); background: var(--cui-tertiary-bg, #f3f4f7); color: var(--cui-secondary-color, #6b7280); text-decoration: line-through; }
.commit-graph__details { padding: .1rem .85rem .7rem var(--cg-gutter); }
.commit-graph__details-heading { margin-bottom: .35rem; color: var(--cui-body-color, #212631); font-size: .8rem; font-weight: 700; white-space: normal; }
.commit-graph__details-list { display: grid; grid-template-columns: max-content minmax(0, 1fr); margin: 0; gap: .1rem .75rem; }
.commit-graph__details-term { color: var(--cui-secondary-color, #6b7280); font-size: .72rem; font-weight: 600; }
.commit-graph__details-value { margin: 0; color: var(--cui-body-color, #212631); font-size: .74rem; overflow-wrap: anywhere; }
.commit-graph__line--clickable:focus-visible { outline: 2px solid var(--cui-primary, #321fdb); outline-offset: -2px; border-radius: .25rem; }
.commit-graph__dot { pointer-events: auto; cursor: pointer; }
.commit-graph__hit { pointer-events: auto; }
.commit-graph__stub { opacity: .38; }
.commit-graph__more { display: flex; align-items: center; height: var(--cg-row-height); padding-left: var(--cg-gutter); color: var(--cui-secondary-color, #9ca3af); font-size: .72rem; font-style: italic; }
.commit-graph--focused .commit-graph__svg .is-dimmed { opacity: .14; }
.commit-graph--focused .commit-graph__row.is-dimmed { opacity: .32; }
.commit-graph__svg path, .commit-graph__svg .commit-graph__dot, .commit-graph__row { transition: opacity .12s ease; }
