/* Graph-intelligence surfaces: palette, search, explore, insights, lanes, projects, policy, drawer ops. Tokens only. */
.search-trigger { min-width: 260px; justify-content: space-between; color: var(--ink-muted); background: var(--surface);
  border-color: var(--rule); }
.search-trigger:hover { border-color: var(--rule-strong); color: var(--ink); }
kbd { font: var(--type-mono); font-size: 10.5px; padding: 0 5px; border: 1px solid var(--rule); border-bottom-width: 2px;
  border-radius: var(--radius-control); color: var(--ink-muted); background: var(--canvas); }
.project-pick { display: inline-flex; flex-direction: row; align-items: center; gap: var(--space-2); color: var(--ink-muted); }
#project-switcher { font: var(--type-label); min-height: 30px; }
.who-team { font: var(--type-label); }

/* command palette: a modal dialog, ink frame, results as a hairline ledger */
dialog.palette { width: min(680px, 94vw); margin: 10vh auto auto; padding: 0; border: 2px solid var(--rule-strong);
  border-radius: var(--radius-panel); background: var(--canvas); color: var(--ink); box-shadow: var(--elev-overlay); }
dialog.palette::backdrop { background: var(--scrim); }
#palette-input { width: 100%; min-height: 48px; border: 0; border-bottom: var(--section-rule); border-radius: 0;
  font: var(--type-title); font-weight: 500; padding: 0 var(--space-4); background: var(--surface); }
#palette-input:focus-visible { outline: none; }
#palette-list { list-style: none; margin: 0; padding: 0; max-height: 52vh; overflow-y: auto; }
.palette-option { display: flex; gap: var(--space-3); align-items: center; padding: var(--space-2) var(--space-4);
  border-bottom: var(--hairline); cursor: pointer; min-height: 40px; }
.palette-option[aria-selected='true'] { background: var(--inverse-surface); color: var(--inverse-ink);
  box-shadow: inset var(--rail-width) 0 0 var(--signal); }
.palette-option[aria-selected='true'] .id { background: var(--signal); color: var(--on-signal); border-color: var(--signal); }
.palette-option:hover { background: var(--surface-sunken); }
.palette-empty { padding: var(--space-4); }
.palette-hint { margin: 0; padding: var(--space-2) var(--space-4); border-top: var(--hairline); }

/* results: ledger rows with stamped id, title, state, tags, snippet */
.search-bar input[type='search'] { min-height: 36px; }
.results { border-top: var(--hairline); }
.result-row { display: grid; gap: var(--space-1); padding: var(--space-3) 0; border-bottom: var(--hairline); color: var(--ink);
  text-decoration: none; }
.result-row:hover { background: var(--surface); box-shadow: inset var(--rail-width) 0 0 var(--rule-strong); padding-inline-start: var(--space-3); }
.result-head { display: flex; gap: var(--space-2); align-items: center; flex-wrap: wrap; }
.result-title { font: var(--type-label); font-size: 14px; }
.result-row .type { font: var(--type-section); letter-spacing: var(--tracking-section); color: var(--ink-muted); }
.result-row .score { margin-inline-start: auto; color: var(--ink-muted); }
.result-snippet { color: var(--ink-muted); font: var(--type-caption); max-width: 110ch; display: -webkit-box;
  -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
ol.plain { list-style: none; margin: 0; padding: 0; }
td.actions-cell { width: 1%; white-space: nowrap; }
td.actions-cell .row { flex-wrap: nowrap; justify-content: flex-end; }
mark { background: var(--signal); color: var(--on-signal); padding: 0 2px; }
.tags { display: inline-flex; flex-wrap: wrap; gap: var(--space-1); }
.tag { font: var(--type-mono); font-size: 10.5px; padding: 0 5px; border: 1px solid var(--rule-strong); border-radius: var(--radius-control); }
.tag.attr { border-style: dashed; color: var(--ink-muted); }
.facet-chips { display: flex; flex-wrap: wrap; gap: var(--space-1); margin-bottom: var(--space-3); }
.facet-chip { cursor: pointer; min-height: 24px; }
.facet-chip.on, .facet-value.on { background: var(--inverse-surface); color: var(--inverse-ink); }

/* explore: facet columns + results */
.explore { display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 3fr); gap: var(--space-6); align-items: start; }
.facets { display: grid; gap: var(--space-5); }
.facet-group { border-top: var(--section-rule); padding-top: var(--space-2); }
.facet-values { display: grid; border-top: var(--hairline); }
.facet-value { justify-content: space-between; width: 100%; border: 0; border-bottom: var(--hairline); border-radius: 0;
  background: transparent; min-height: 32px; padding: 0 var(--space-2); }
.facet-value:hover { background: var(--surface); }
.facet-count { color: inherit; opacity: 0.75; }

/* insights: rule groups, severity rail, findings */
.insights { display: grid; gap: var(--space-5); }
.rule-group { border-top: var(--section-rule); padding: var(--space-2) 0 0 calc(var(--space-3) + var(--rail-width)); }
.rule-group.sev-critical { box-shadow: inset var(--rail-width) 0 0 var(--status-danger); }
.rule-group.sev-major { box-shadow: inset var(--rail-width) 0 0 var(--status-warn); }
.rule-group.sev-minor { box-shadow: inset var(--rail-width) 0 0 var(--status-info); }
.findings .finding { padding: var(--space-2) 0; border-bottom: var(--hairline); display: grid; gap: var(--space-1); }
.findings .finding p { margin: 0; }
.suggestion { font: var(--type-caption); }
a.ref { text-decoration: none; }

/* lanes: one ledger column per agent */
.lanes { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(240px, 1fr); border-top: var(--section-rule); overflow-x: auto; }
.lane { padding: var(--space-2) var(--space-3); border-inline-start: var(--hairline); display: grid; gap: var(--space-2); align-content: start; }
.lane:first-child { border-inline-start: 0; padding-inline-start: 0; }
.lane-head { display: flex; justify-content: space-between; align-items: baseline; padding-bottom: var(--space-2); border-bottom: var(--hairline); }
.lane-cmd { justify-content: space-between; }
.lane-command { font: var(--type-mono); background: var(--surface-sunken); padding: 2px 6px; border: 1px solid var(--rule); overflow-wrap: anywhere; }
.lane-items { display: grid; gap: var(--space-1); }
.lane-item { padding: var(--space-2) var(--space-2) var(--space-2) calc(var(--space-2) + var(--rail-width) + 1px); background: var(--surface); border: 1px solid var(--rule); }
.lane-item.critical { border-color: var(--rule-strong); border-width: 2px; }
.lane-title { font: var(--type-label); overflow-wrap: anywhere; margin-top: var(--space-1); }
.wave { margin-inline-start: auto; }
.path-chain li:not(:last-child)::after { content: '→'; margin-inline-start: var(--space-2); color: var(--ink-muted); }
.lanes-slot { display: grid; gap: var(--space-4); }

/* projects + policy */
tr.project-row.current td:first-child { box-shadow: inset var(--rail-width) 0 0 var(--signal), inset calc(var(--rail-width) + 1px) 0 0 var(--rule-strong); padding-inline-start: calc(var(--space-3) + var(--rail-width) + 2px); }
.key-input { width: 88px; text-transform: uppercase; font: var(--type-mono); }
label.check { flex-direction: row; display: flex; align-items: center; gap: var(--space-2); font: var(--type-body); color: var(--ink); }
.stack-tight { display: grid; gap: var(--space-2); margin-top: var(--space-3); }
.policy-result:empty { display: none; }

/* drawer: edit form, comments, annotations, proof, pause */
.drawer-head { padding-inline-end: 40px; }
.paused-badge { font: var(--type-mono); font-size: 10.5px; font-weight: 700; padding: 1px 6px; border: 2px solid var(--rule-strong);
  color: var(--ink); background: var(--surface-sunken); text-transform: uppercase; letter-spacing: 0.04em; }
.edit-form { display: grid; gap: var(--space-3); margin: var(--space-3) 0; }
.edit-field { display: grid; gap: var(--space-1); }
.edit-field textarea, .comment-form textarea, .annotation-form textarea { padding: var(--space-2) var(--space-3); min-height: 56px; }
.comments .comment { padding: var(--space-2) 0; border-bottom: var(--hairline); }
.comments .comment.reply { margin-inline-start: var(--space-5); padding-inline-start: var(--space-3); border-inline-start: 2px solid var(--rule); }
.comment-body { margin: var(--space-1) 0 0; white-space: pre-wrap; }
.comment-form { margin-top: var(--space-2); align-items: flex-end; }
button.link { border: 0; background: transparent; text-decoration: underline; padding: 0 var(--space-1); min-height: 22px; }
.annotations .annotation { padding: var(--space-2) 0; border-bottom: var(--hairline); display: grid; gap: var(--space-1); }
.annotation-data { font: var(--type-mono); color: var(--ink-muted); overflow-wrap: anywhere; }
.annotation-results li { padding: 2px 0; }
.annotation-form { display: grid; gap: var(--space-2); margin-top: var(--space-2); }
.form-error { color: var(--status-danger); font: var(--type-caption); margin: 0; }
.proof-checks { border-top: var(--hairline); }
.proof-check { padding: var(--space-2) 0 var(--space-2) calc(var(--space-2) + var(--rail-width)); border-bottom: var(--hairline);
  box-shadow: inset var(--rail-width) 0 0 var(--rule); display: grid; gap: var(--space-1); }
.proof-check.proven { box-shadow: inset var(--rail-width) 0 0 var(--status-ok); }
.proof-evidence { border-bottom: 0; padding: 2px 0; }
.artifact { overflow-wrap: anywhere; }
.add-validation { margin-top: var(--space-3); display: grid; gap: var(--space-2); }
.related-row { padding: var(--space-1) 0; border-bottom: var(--hairline); }

/* graph tools, path and impact marks */
.graph-tools { gap: var(--space-2); }
.graph-tools input { min-height: 28px; font: var(--type-caption); }
.tool-sep { width: 1px; align-self: stretch; background: var(--rule); margin: 0 var(--space-1); }
.chip.path-key { background: var(--inverse-surface); color: var(--inverse-ink); }
.chip.impact-key { border-style: dashed; border-width: 2px; }
svg.graph.has-path .node[data-path='false'], svg.graph.has-path .edge:not(.on-path) { opacity: 0.35; }
svg.graph .node[data-path='true'] .box { fill: var(--inverse-surface); stroke-width: 2.5; }
svg.graph .node[data-path='true'] .title, svg.graph .node[data-path='true'] .label, svg.graph .node[data-path='true'] .state { fill: var(--inverse-ink); }
svg.graph .edge.on-path line { stroke: var(--rule-strong); stroke-width: 3; }
svg.graph .node[data-impact='true'] .box { stroke-dasharray: 6 3; stroke-width: 2.5; }
svg.graph .node[data-impact='true'] .rail { fill: var(--status-warn); }

/* how a search hit matched */
.match { font: var(--type-mono); font-size: 10px; color: var(--ink-muted); border: 1px dotted var(--rule-strong); padding: 0 4px;
  border-radius: var(--radius-control); white-space: nowrap; }
.match-semantic { border-style: solid; color: var(--status-info); border-color: var(--status-info); }
.todo-results .results { border-top: 0; }

/* agent runs browser */
.runs-filters { display: grid; gap: var(--space-2); padding-bottom: var(--space-3); border-bottom: var(--hairline); }
.runs-filters select[multiple] { min-height: 56px; padding: var(--space-1); font: var(--type-caption); min-width: 220px; }
.runs-filters label { flex-direction: row; display: flex; gap: var(--space-2); align-items: flex-start; }
.runs-pager { justify-content: flex-end; }
.run-summary-line { max-width: 52ch; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }

@media (max-width: 760px) {
  .topbar { gap: var(--space-2); padding: 0 var(--space-3); min-width: 0; }
  .who-team, .project-pick .seq, #create-team { display: none; }
  #project-switcher { max-width: 116px; }
  #team-switcher { max-width: 120px; }
  .search-trigger kbd { display: none; }
  .search-trigger::before { content: '⌕'; font-size: 16px; }
}

@media (max-width: 960px) {
  .explore { grid-template-columns: minmax(0, 1fr); }
  .search-trigger { min-width: 0; }
  .search-trigger span:first-child { display: none; }
}
