/* LP styling for the app's specialized search, review, and knowledge surfaces. */

/* Shared specialized-surface primitives */

.header-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: flex-end;
}

.header-actions form {
  display: inline-flex;
  margin: 0;
}

.header-actions .button,
.header-actions input[type="submit"] {
  margin: 0;
  white-space: nowrap;
}

.status-badge {
  align-items: center;
  background: var(--color-surface-soft-low);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-pill);
  color: var(--color-text-muted);
  display: inline-flex;
  font-family: var(--font-family-ui);
  font-size: 0.6875rem;
  font-weight: 600;
  gap: var(--space-1);
  letter-spacing: 0.035em;
  line-height: 1;
  min-height: 24px;
  padding: 5px 9px;
  text-transform: uppercase;
  white-space: nowrap;
}

.status-badge.completed,
.status-badge.accepted,
.status-badge.published,
.status-badge.pass,
.status-badge.ready,
.status-badge.current,
.status-badge.unchanged,
.status-badge.findings-emitted,
.status-badge.manual-edited,
.status-badge.manual_edited {
  background: color-mix(in srgb, var(--color-success) 11%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-success) 24%, transparent);
  color: var(--color-success);
}

.status-badge.pending,
.status-badge.running,
.status-badge.warn,
.status-badge.queued,
.status-badge.received,
.status-badge.needs-review,
.status-badge.needs-human-review,
.status-badge.new,
.status-badge.content-changed,
.status-badge.metadata-changed,
.status-badge.restored {
  background: color-mix(in srgb, var(--color-warning) 12%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-warning) 30%, transparent);
  color: color-mix(in srgb, var(--color-warning) 72%, var(--color-ink));
}

.status-badge.failed,
.status-badge.rejected,
.status-badge.conflict,
.status-badge.fail,
.status-badge.removed,
.status-badge.unavailable,
.status-badge.unusable {
  background: color-mix(in srgb, var(--color-danger) 9%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-danger) 24%, transparent);
  color: var(--color-danger);
}

.status-badge.not-run,
.status-badge.draft,
.status-badge.historical,
.status-badge.no-actionable-context,
.status-badge.disabled {
  background: var(--color-surface-soft);
  border-color: var(--color-border-subtle);
  color: var(--color-text-muted);
}

/* Embedding Search */

.app-main.search-main {
  max-width: none;
  padding-bottom: var(--space-6);
  width: 100%;
}

.search-page {
  --search-card-min: 210px;
  color: var(--color-ink);
  min-height: calc(100dvh - 148px);
  padding-bottom: 118px;
}

.search-results-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(min(100%, var(--search-card-min)), 1fr));
}

.search-result-card {
  aspect-ratio: 4 / 3;
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  min-width: 0;
  overflow: hidden;
  position: relative;
  transition:
    border-color var(--motion-duration-control) var(--motion-ease-standard),
    box-shadow var(--motion-duration-hover) var(--motion-ease-standard),
    transform var(--motion-duration-control) var(--motion-ease-emphasized);
}

.search-result-card.image-card,
.search-result-card.video-card,
.search-result-card.lottie-card {
  background: var(--color-card-media);
}

.search-result-card.source-card {
  border-color: var(--color-accent);
  box-shadow: var(--shadow-card), 0 0 0 1px var(--color-accent);
}

.search-result-card.great-example-card {
  border-color: color-mix(in srgb, var(--color-agent-avatar) 72%, var(--color-ink));
  box-shadow: var(--shadow-card), 0 0 0 1px var(--color-agent-avatar);
}

.search-result-media-link {
  border-radius: inherit;
  color: inherit;
  display: block;
  height: 100%;
  text-decoration: none;
}

.search-result-media-link:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: -4px;
}

.search-result-card img {
  display: block;
  height: 100%;
  object-fit: cover;
  transition: opacity var(--motion-duration-card-image) var(--motion-ease-standard);
  width: 100%;
}

.search-result-badges {
  align-items: flex-start;
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
  left: var(--space-2);
  max-width: calc(100% - (2 * var(--space-2)));
  position: absolute;
  top: var(--space-2);
  z-index: 3;
}

.search-result-video-badge,
.search-result-badge {
  backdrop-filter: blur(10px);
  background: color-mix(in srgb, var(--color-ink) 82%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-surface) 18%, transparent);
  border-radius: var(--radius-pill);
  color: var(--color-surface);
  font-family: var(--font-family-ui);
  font-size: 0.6875rem;
  font-weight: 600;
  letter-spacing: 0.025em;
  line-height: 1;
  padding: 6px 8px;
  text-transform: uppercase;
}

.search-result-badge.great-example {
  background: color-mix(in srgb, var(--color-agent-avatar) 94%, transparent);
  border-color: color-mix(in srgb, var(--color-ink) 12%, transparent);
  color: var(--color-ink);
}

.search-result-play {
  background: color-mix(in srgb, var(--color-surface) 92%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-ink) 10%, transparent);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-card);
  height: 42px;
  left: 50%;
  position: absolute;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 42px;
  z-index: 2;
}

.search-result-play::before {
  border-bottom: 8px solid transparent;
  border-left: 13px solid var(--color-ink);
  border-top: 8px solid transparent;
  content: "";
  left: 16px;
  position: absolute;
  top: 12px;
}

.search-result-overlay {
  background: linear-gradient(180deg, color-mix(in srgb, var(--color-ink) 44%, transparent), transparent 34%, transparent 52%, color-mix(in srgb, var(--color-ink) 74%, transparent));
  bottom: 0;
  color: var(--color-surface);
  display: flex;
  flex-direction: column;
  font-family: var(--font-family-ui);
  font-size: 0.72rem;
  font-weight: 500;
  gap: var(--space-2);
  justify-content: space-between;
  left: 0;
  opacity: 1;
  padding: var(--space-2) var(--space-3);
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
}

.search-result-overlay a,
.search-result-overlay button,
.search-result-overlay form {
  pointer-events: auto;
}

.search-result-project {
  overflow: hidden;
  text-align: center;
  text-overflow: ellipsis;
  white-space: nowrap;
  width: 100%;
}

.search-result-overlay-bottom {
  display: grid;
  gap: var(--space-2);
}

.search-result-meta,
.search-result-curation-actions {
  align-items: center;
  display: flex;
  gap: var(--space-2);
  justify-content: space-between;
}

.search-result-curation-actions {
  flex-wrap: wrap;
  justify-content: flex-end;
}

.search-result-curation-actions form {
  display: inline-flex;
  margin: 0;
}

.search-curation-button {
  background: color-mix(in srgb, var(--color-surface) 93%, transparent);
  border: 1px solid color-mix(in srgb, var(--color-surface) 34%, transparent);
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font-family: var(--font-family-ui);
  font-size: 0.6875rem;
  font-weight: 600;
  min-height: 32px;
  padding: 6px 9px;
}

.search-curation-button.danger {
  color: var(--color-danger);
}

.search-curation-button:focus-visible {
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.search-text-card {
  display: grid;
  grid-template-rows: auto 1fr auto auto;
  height: 100%;
  padding: var(--space-4);
}

.search-text-card-heading {
  align-items: center;
  display: flex;
  gap: var(--space-2);
  justify-content: space-between;
}

.search-text-card span,
.search-text-card small {
  color: var(--color-text-muted);
  font-family: var(--font-family-ui);
  font-size: 0.72rem;
  font-weight: 500;
  text-transform: capitalize;
}

.search-text-card strong {
  background: color-mix(in srgb, var(--color-agent-avatar) 35%, var(--color-surface));
  border-radius: var(--radius-pill);
  color: var(--color-ink);
  font-family: var(--font-family-ui);
  font-size: 0.68rem;
  padding: 4px 7px;
}

.search-text-card p {
  color: var(--color-ink);
  display: -webkit-box;
  font-family: var(--font-family-reading);
  font-size: 1rem;
  line-height: 1.5;
  margin: var(--space-3) 0;
  overflow: hidden;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 6;
}

.search-empty {
  align-items: center;
  color: var(--color-text-muted);
  display: flex;
  font-family: var(--font-family-reading);
  font-size: 1.25rem;
  justify-content: center;
  min-height: calc(100dvh - 290px);
  padding: var(--space-7) var(--space-4);
  text-align: center;
}

.search-dock {
  align-items: center;
  backdrop-filter: blur(18px);
  background: color-mix(in srgb, var(--color-surface) 94%, transparent);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  bottom: max(var(--space-4), env(safe-area-inset-bottom));
  box-shadow: var(--shadow-floating);
  display: flex;
  gap: var(--space-2);
  left: 50%;
  max-width: min(1180px, calc(100vw - 32px));
  padding: var(--space-2);
  position: fixed;
  transform: translateX(-50%);
  width: max-content;
  z-index: 30;
}

.search-dock-query,
.search-dock-limit {
  background: var(--color-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font: 0.875rem/1.35 var(--font-family-ui);
  min-height: var(--control-height-standard);
  padding: 9px 11px;
}

.search-dock-query {
  min-width: min(32vw, 400px);
}

.search-dock-limit {
  text-align: center;
  width: 68px;
}

.search-dock-query:focus,
.search-dock-limit:focus {
  border-color: var(--color-accent);
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 1px;
}

.search-dock-sources {
  display: flex;
  gap: var(--space-1);
}

.source-toggle {
  color: var(--color-text-muted);
  cursor: pointer;
  display: block;
  font-family: var(--font-family-ui);
  font-size: 0.75rem;
  font-weight: 600;
}

.source-toggle input {
  opacity: 0;
  pointer-events: none;
  position: absolute;
}

.source-toggle span {
  align-items: center;
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  display: flex;
  min-height: var(--control-height-standard);
  padding: 0 var(--space-3);
  white-space: nowrap;
}

.source-toggle input:checked + span {
  background: var(--color-ink);
  border-color: var(--color-ink);
  color: var(--color-surface);
}

.source-toggle input:focus-visible + span {
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.search-dock-density {
  align-items: center;
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  display: flex;
  gap: var(--space-3);
  min-height: var(--control-height-standard);
  padding: 4px 10px;
}

.search-dock-density-track {
  background: var(--color-surface-soft-low);
}

.search-dock-density-fill {
  background: var(--color-accent);
}

.search-dock-density-thumb {
  border-color: var(--color-border-default);
  box-shadow: var(--shadow-card);
}

.search-dock-density-output {
  color: var(--color-text-muted);
  font-family: var(--font-family-ui);
  font-size: 0.75rem;
  font-weight: 600;
}

.search-dock-submit {
  white-space: nowrap;
}

.similar-image-menu {
  background: var(--color-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-floating);
  min-width: 190px;
  padding: var(--space-2);
}

.similar-image-menu a,
.similar-image-menu button {
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font-family: var(--font-family-ui);
  font-size: 0.875rem;
  font-weight: 500;
  min-height: 40px;
  padding: 9px 10px;
}

.similar-image-menu a:hover,
.similar-image-menu a:focus-visible,
.similar-image-menu button:hover,
.similar-image-menu button:focus-visible {
  background: var(--color-surface-soft);
  color: var(--color-ink);
  outline: 0;
  text-decoration: none;
}

/* Blended Discover */

.app-main.discover-main {
  max-width: none;
  width: 100%;
}

.discover-page {
  color: var(--color-ink);
  display: grid;
  gap: var(--space-5);
}

.discover-header {
  align-items: end;
  display: flex;
  gap: var(--space-5);
  justify-content: space-between;
}

.discover-header .lede {
  max-width: 720px;
}

.discover-result-count {
  align-items: end;
  background: var(--color-surface-soft-high);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  display: grid;
  min-width: 124px;
  padding: var(--space-3) var(--space-4);
  text-align: right;
}

.discover-result-count strong {
  color: var(--color-ink);
  font-family: var(--font-family-reading);
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}

.discover-result-count span {
  color: var(--color-text-muted);
  font-size: 0.8rem;
}

.discover-toolbar {
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  display: grid;
  gap: var(--space-4);
  padding: var(--space-4);
}

.discover-query-row {
  align-items: center;
  display: grid;
  gap: var(--space-2);
  grid-template-columns: minmax(220px, 1fr) 76px auto auto;
}

.discover-query,
.discover-limit,
.discover-select select {
  background: var(--color-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font: 0.875rem/1.35 var(--font-family-ui);
  min-height: var(--control-height-standard);
  padding: 9px 11px;
  width: 100%;
}

.discover-query:focus,
.discover-limit:focus,
.discover-select select:focus {
  border-color: var(--color-accent);
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 1px;
}

.discover-limit {
  text-align: center;
}

.discover-debug-toggle,
.discover-check {
  align-items: center;
  display: flex;
  gap: 7px;
}

.discover-debug-toggle {
  color: var(--color-text-muted);
  font: 0.78rem/1 var(--font-family-ui);
  min-height: var(--control-height-standard);
  padding-inline: var(--space-2);
}

.discover-filter-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(260px, 1.3fr) repeat(2, minmax(180px, 1fr));
}

.discover-fieldset {
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  margin: 0;
  padding: 10px 12px 12px;
}

.discover-fieldset legend,
.discover-select > span {
  color: var(--color-text-muted);
  font-family: var(--font-family-ui);
  font-size: 0.72rem;
  font-weight: 600;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.discover-check {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  color: var(--color-ink);
  font: 0.75rem/1.2 var(--font-family-ui);
  min-height: 32px;
  padding: 6px 9px;
}

.discover-check small {
  color: var(--color-text-muted);
  font-size: 0.7rem;
}

.discover-select {
  display: grid;
  gap: 6px;
  min-width: 0;
}

.discover-select select[multiple] {
  min-height: 116px;
}

.discover-active-filters,
.discover-why-row,
.discover-tag-row,
.discover-asset-badges {
  display: flex;
  flex-wrap: wrap;
  gap: 6px;
}

.discover-active-filters span,
.discover-why-row span,
.discover-tag-row span,
.discover-media-badge,
.discover-great-example-badge {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  color: var(--color-text-muted);
  display: inline-flex;
  font: 0.7rem/1.2 var(--font-family-ui);
  padding: 5px 8px;
}

.discover-active-filters span {
  background: var(--color-surface);
  color: var(--color-ink);
}

.discover-great-example-badge {
  background: color-mix(in srgb, var(--color-agent-avatar) 40%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-agent-avatar) 70%, var(--color-ink));
  color: var(--color-ink);
  font-weight: 600;
}

.discover-section {
  display: grid;
  gap: var(--space-3);
}

.discover-section-heading {
  align-items: baseline;
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
}

.discover-section-heading h2 {
  margin-bottom: 0;
}

.discover-section-heading span {
  color: var(--color-text-muted);
  font-size: 0.8rem;
}

.discover-project-row {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.discover-project-card,
.discover-asset-card,
.discover-text-card {
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  min-width: 0;
  transition:
    border-color var(--motion-duration-control) var(--motion-ease-standard),
    box-shadow var(--motion-duration-hover) var(--motion-ease-standard),
    transform var(--motion-duration-control) var(--motion-ease-emphasized);
}

.discover-project-link {
  color: var(--color-ink);
  display: grid;
  gap: var(--space-3);
  padding: var(--space-3);
}

.discover-project-link:hover {
  text-decoration: none;
}

.discover-project-link:focus-visible {
  border-radius: inherit;
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 2px;
}

.discover-project-previews {
  aspect-ratio: 16 / 9;
  background: var(--color-card-media);
  border-radius: var(--radius-sm);
  display: grid;
  gap: 2px;
  grid-template-columns: repeat(2, 1fr);
  overflow: hidden;
}

.discover-project-previews img,
.discover-project-previews .lottie-player {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.discover-project-previews span {
  align-items: center;
  color: var(--color-text-muted);
  display: flex;
  font-size: 0.78rem;
  justify-content: center;
}

.discover-project-body,
.discover-asset-heading,
.discover-text-card > div:first-child {
  align-items: start;
  display: flex;
  gap: var(--space-2);
  justify-content: space-between;
}

.discover-project-body strong,
.discover-asset-body > strong,
.discover-text-card strong {
  color: var(--color-ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.discover-project-body p,
.discover-asset-body p {
  color: var(--color-text-muted);
  font-size: 0.8rem;
  margin: 3px 0 0;
}

.discover-snippet {
  color: var(--color-text-muted);
  font-family: var(--font-family-reading);
  font-size: 0.94rem;
  line-height: 1.45;
  margin: 3px 0 0;
}

.discover-score {
  background: color-mix(in srgb, var(--color-accent) 9%, var(--color-surface));
  border: 1px solid color-mix(in srgb, var(--color-accent) 18%, transparent);
  border-radius: var(--radius-pill);
  color: var(--color-accent-strong);
  flex: 0 0 auto;
  font: 600 0.72rem/1 var(--font-family-ui);
  padding: 6px 8px;
}

.discover-project-card > .discover-why-row {
  border-top: 1px solid var(--color-border-subtle);
  padding: 10px var(--space-3) var(--space-3);
}

.discover-asset-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fill, minmax(230px, 1fr));
}

.discover-asset-card {
  display: grid;
  grid-template-rows: auto 1fr;
  overflow: hidden;
}

.discover-asset-card.great-example-card {
  border-color: color-mix(in srgb, var(--color-agent-avatar) 76%, var(--color-ink));
  box-shadow: var(--shadow-card), 0 0 0 1px var(--color-agent-avatar);
}

.discover-asset-media {
  align-items: center;
  aspect-ratio: 4 / 3;
  background: var(--color-card-media);
  color: var(--color-text-muted);
  display: flex;
  justify-content: center;
  overflow: hidden;
  position: relative;
}

.discover-asset-media:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: -4px;
}

.discover-asset-media img,
.discover-asset-media .lottie-player {
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.discover-asset-body {
  align-content: start;
  display: grid;
  gap: var(--space-2);
  padding: var(--space-3);
}

.discover-asset-body > strong {
  display: block;
  line-height: 1.3;
  overflow-wrap: anywhere;
}

.discover-text-list {
  display: grid;
  gap: var(--space-2);
}

.discover-text-card {
  display: grid;
  gap: var(--space-2);
  padding: var(--space-4);
}

.discover-text-card > p {
  font-family: var(--font-family-reading);
  font-size: 1rem;
  line-height: 1.55;
  margin: 0;
}

.discover-debug pre {
  background: var(--color-ink);
  border-radius: var(--radius-sm);
  color: var(--color-surface-soft-high);
  font: 0.75rem/1.5 var(--font-family-mono);
  overflow: auto;
  padding: var(--space-3);
}

/* Agent feedback review */

.app-main.feedback-main {
  max-width: 1420px;
  width: 100%;
}

.feedback-list {
  display: grid;
  gap: var(--space-3);
}

.feedback-card {
  background: var(--color-surface-soft-high);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: none;
  display: grid;
  gap: var(--space-3);
  padding: var(--space-4);
}

.feedback-card-main {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: minmax(0, 1fr) minmax(360px, 0.55fr);
}

.feedback-card h3 {
  font-family: var(--font-family-ui);
  font-size: 1rem;
  font-weight: 600;
  margin-bottom: 6px;
}

.feedback-card p {
  color: var(--color-text-muted);
  margin: 0;
}

.feedback-card-meta {
  display: grid;
  gap: var(--space-2);
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
}

.feedback-card-meta div {
  background: var(--color-surface);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  min-width: 0;
  padding: 10px;
}

.feedback-card-meta dt,
.feedback-card-meta dd {
  margin: 0;
}

.feedback-card-meta dt {
  color: var(--color-text-muted);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

.feedback-card-meta dd {
  color: var(--color-ink);
  font-size: 0.78rem;
  font-weight: 500;
  overflow-wrap: anywhere;
}

.feedback-card-actions {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
}

.feedback-review-layout {
  align-items: start;
  display: grid;
  gap: var(--space-5);
  grid-template-columns: minmax(0, 1fr) minmax(300px, 360px);
}

.feedback-review-main {
  display: grid;
  gap: var(--space-5);
  min-width: 0;
}

.feedback-review-card {
  background: var(--color-surface-soft-high);
  border-left: 4px solid var(--color-accent);
}

.feedback-review-card .feedback-message {
  color: var(--color-ink);
  font-family: var(--font-family-reading);
  font-size: 1.08rem;
  line-height: 1.55;
}

.feedback-side-panel {
  max-height: calc(100dvh - 116px);
  overflow: auto;
  position: sticky;
  top: 96px;
}

.feedback-panel-heading {
  align-items: start;
  border-bottom: 1px solid var(--color-border-subtle);
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
  margin-bottom: 0;
  padding-bottom: var(--space-4);
}

.feedback-panel-heading h2 {
  margin-bottom: 0;
}

.feedback-panel-tools {
  align-items: center;
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  justify-content: flex-end;
}

.feedback-message-count {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  color: var(--color-text-muted);
  font-size: 0.75rem;
  font-weight: 600;
  padding: 6px 10px;
  white-space: nowrap;
}

.feedback-prompts-toggle-label {
  color: var(--color-text-muted);
  font-size: 0.75rem;
  font-weight: 600;
}

.feedback-prompts-toggle-control {
  background: var(--color-surface-soft-low);
}

.feedback-prompts-toggle-control span {
  background: var(--color-surface);
  box-shadow: var(--shadow-card);
}

.feedback-prompts-toggle-input:checked ~ .feedback-panel-heading .feedback-prompts-toggle-control {
  background: var(--color-ink);
}

.feedback-prompts-toggle-input:focus-visible ~ .feedback-panel-heading .feedback-prompts-toggle-label {
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

.feedback-chat-transcript {
  background: var(--color-surface);
  display: grid;
  gap: clamp(32px, 5vw, 56px);
  padding: var(--space-5) 0 var(--space-2);
}

.feedback-chat-message {
  display: grid;
  gap: var(--space-2);
  justify-items: start;
  min-width: 0;
  width: 100%;
}

.feedback-chat-message--user {
  justify-items: end;
}

.feedback-chat-role {
  color: var(--color-text-muted);
  font-size: 0.68rem;
  font-weight: 600;
  letter-spacing: 0.055em;
  text-transform: uppercase;
}

.feedback-chat-bubble {
  max-width: var(--measure-copy);
}

.feedback-chat-bubble p {
  margin: 0 0 var(--space-3);
}

.feedback-chat-bubble p:last-child {
  margin-bottom: 0;
}

.feedback-chat-message--user .feedback-chat-bubble {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-lg);
  color: var(--color-ink);
  font: 0.94rem/1.45 var(--font-family-ui);
  max-width: min(82%, 500px);
  padding: 14px 18px;
}

.feedback-chat-message--assistant .feedback-chat-bubble {
  color: var(--color-ink);
  font-family: var(--font-family-reading);
  font-size: clamp(1.05rem, 1.7vw, 1.2rem);
  line-height: 1.6;
}

.feedback-chat-message--system .feedback-chat-bubble,
.feedback-chat-message--developer .feedback-chat-bubble,
.feedback-chat-message--message .feedback-chat-bubble {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  color: var(--color-text-muted);
  font-size: 0.82rem;
  padding: var(--space-3) var(--space-4);
}

.feedback-chat-results {
  margin-top: var(--space-2);
  min-width: 0;
  width: 100%;
}

.feedback-chat-project-grid,
.feedback-chat-asset-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
  width: 100%;
}

.feedback-chat-project-card {
  color: var(--color-ink);
  display: grid;
  gap: var(--space-2);
  min-width: 0;
  text-decoration: none;
}

.feedback-chat-project-card:hover {
  text-decoration: none;
}

.feedback-chat-project-card:focus-visible {
  border-radius: var(--radius-md);
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

.feedback-chat-project-media,
.feedback-chat-asset-card {
  background: var(--color-card-media);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  box-shadow: var(--shadow-card);
  overflow: hidden;
  transition:
    box-shadow var(--motion-duration-hover) var(--motion-ease-standard),
    transform var(--motion-duration-control) var(--motion-ease-emphasized);
}

.feedback-chat-project-media {
  aspect-ratio: 16 / 10;
  display: grid;
  place-items: center;
}

.feedback-chat-project-media img {
  display: block;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.feedback-chat-project-placeholder {
  color: var(--color-text-muted);
  font-family: var(--font-family-reading);
  font-size: 2.4rem;
}

.feedback-chat-project-copy {
  display: grid;
  gap: 3px;
  line-height: 1.35;
  padding: 0 2px;
}

.feedback-chat-project-copy strong {
  font-size: 0.875rem;
  font-weight: 600;
}

.feedback-chat-project-copy > span:last-child:not(.feedback-chat-result-kind) {
  color: var(--color-text-muted);
  font-size: 0.75rem;
}

.feedback-chat-result-kind {
  color: var(--color-accent-strong);
  font-size: 0.66rem;
  font-weight: 600;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.feedback-chat-asset-card {
  --feedback-asset-ratio: 4 / 3;
  aspect-ratio: var(--feedback-asset-ratio);
  color: var(--color-surface);
  display: grid;
  grid-template-areas: "asset";
  min-height: 150px;
  position: relative;
  text-decoration: none;
}

.feedback-chat-asset-card:focus-visible {
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 3px;
}

.feedback-chat-asset-card img,
.feedback-chat-asset-placeholder {
  grid-area: asset;
  height: 100%;
  object-fit: cover;
  width: 100%;
}

.feedback-chat-asset-placeholder {
  align-items: center;
  color: var(--color-text-muted);
  display: flex;
  font-size: 0.78rem;
  justify-content: center;
}

.feedback-chat-asset-label {
  align-self: end;
  background: color-mix(in srgb, var(--color-ink) 78%, transparent);
  border-radius: var(--radius-pill);
  display: inline-flex;
  font-size: 0.7rem;
  gap: 5px;
  grid-area: asset;
  justify-self: start;
  line-height: 1.2;
  margin: 10px;
  max-width: calc(100% - 20px);
  overflow: hidden;
  padding: 6px 9px;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.feedback-chat-prompts ul {
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  list-style: none;
  margin: 0;
  padding: 0;
}

.feedback-chat-prompts li {
  align-items: center;
  background: var(--color-surface-soft-high);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-pill);
  box-shadow: var(--shadow-card);
  color: var(--color-text-muted);
  display: inline-flex;
  font-size: 0.72rem;
  font-weight: 500;
  gap: 5px;
  line-height: 1.3;
  max-width: 100%;
  min-height: 34px;
  overflow-wrap: anywhere;
  padding: 7px 11px;
}

.feedback-chat-prompts li span {
  color: var(--color-accent-strong);
}

.feedback-chat-final-results {
  border-top: 1px solid var(--color-border-subtle);
  display: grid;
  gap: var(--space-4);
  padding-top: var(--space-5);
}

.feedback-detail-list dd {
  overflow-wrap: anywhere;
}

.feedback-json-grid {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
  margin-top: var(--space-5);
}

.feedback-json-panel {
  min-width: 0;
}

.feedback-json-panel summary {
  color: var(--color-ink);
  cursor: pointer;
  font-weight: 600;
}

.feedback-json-panel summary:hover {
  color: var(--color-accent-strong);
}

.feedback-json-panel[open] summary {
  margin-bottom: var(--space-3);
}

.feedback-json {
  background: var(--color-ink);
  border-radius: var(--radius-sm);
  color: var(--color-surface-soft-high);
  font: 0.78rem/1.55 var(--font-family-mono);
  max-height: 420px;
  overflow: auto;
  padding: var(--space-4);
  white-space: pre-wrap;
  word-break: break-word;
}

/* Knowledge Pipeline */

.app-main.knowledge-main {
  max-width: var(--layout-frame);
  width: 100%;
}

.app-main.knowledge-main--wide {
  max-width: 1480px;
}

.knowledge-main .page-header {
  align-items: end;
}

.knowledge-main .page-header > div:first-child {
  min-width: 0;
}

.knowledge-dashboard-actions {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  min-width: min(400px, 100%);
}

.knowledge-dashboard-actions .button {
  width: 100%;
}

.knowledge-main .panel {
  min-width: 0;
}

.knowledge-main .panel > h2 + .muted,
.knowledge-main .panel > h3 + .muted {
  margin-top: calc(-1 * var(--space-2));
}

.knowledge-main .metric-grid {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.knowledge-main .metric {
  min-width: 0;
}

.knowledge-main .metric span {
  font-family: var(--font-family-reading);
  font-size: clamp(1.4rem, 2.2vw, 1.85rem);
  font-weight: 400;
  overflow-wrap: anywhere;
}

.knowledge-main .metric p {
  font-size: 0.78rem;
}

.knowledge-main .list {
  gap: var(--space-2);
}

.knowledge-main .list-item {
  background: var(--color-surface-soft-high);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  box-shadow: none;
  padding: var(--space-3) var(--space-4);
}

.knowledge-main .list-item + .list-item {
  margin-top: 0;
}

.knowledge-main .sync-run-main {
  align-items: flex-start;
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
}

.knowledge-main .sync-run-main strong {
  color: var(--color-ink);
  font-size: 0.9rem;
  font-weight: 600;
}

.knowledge-main .sync-run-main small,
.knowledge-main .list-item small {
  color: var(--color-text-muted);
  display: block;
  font-size: 0.75rem;
  margin-top: 2px;
  overflow-wrap: anywhere;
}

.knowledge-main .pipeline-form {
  display: grid;
  gap: var(--space-3);
}

.knowledge-main .pipeline-form label,
.knowledge-main .pipeline-form legend,
.knowledge-main .sanity-filter-grid label {
  color: var(--color-ink);
  font-size: 0.78rem;
  font-weight: 600;
}

.knowledge-main .pipeline-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
.knowledge-main .pipeline-form select,
.knowledge-main .pipeline-form textarea,
.knowledge-main .sanity-filter-grid input,
.knowledge-main .sanity-filter-grid select {
  background: var(--color-surface);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font: 0.875rem/1.45 var(--font-family-ui);
  min-height: var(--control-height-standard);
  padding: 9px 11px;
  width: 100%;
}

.knowledge-main .pipeline-form textarea {
  line-height: 1.55;
  resize: vertical;
}

.knowledge-main .pipeline-form input:focus,
.knowledge-main .pipeline-form select:focus,
.knowledge-main .pipeline-form textarea:focus,
.knowledge-main .sanity-filter-grid input:focus,
.knowledge-main .sanity-filter-grid select:focus {
  border-color: var(--color-accent);
  box-shadow: var(--focus-ring);
  outline: 2px solid var(--color-accent);
  outline-offset: 1px;
}

.knowledge-main .pipeline-form fieldset {
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  padding: var(--space-4);
}

.knowledge-main .check-row {
  align-items: flex-start;
  color: var(--color-ink);
  display: flex;
  gap: var(--space-2);
  line-height: 1.4;
}

.knowledge-main .check-row input[type="checkbox"],
.knowledge-main table input[type="checkbox"] {
  accent-color: var(--color-ink);
  flex: 0 0 auto;
  height: 18px;
  margin-top: 1px;
  width: 18px;
}

.source-option-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.source-option-card {
  align-items: flex-start;
  background: var(--color-surface-soft-high);
  border: 1px solid var(--color-border-default);
  border-radius: var(--radius-md);
  display: flex;
  gap: var(--space-3);
  min-height: 82px;
  padding: var(--space-4);
  transition:
    background-color var(--motion-duration-control) var(--motion-ease-standard),
    border-color var(--motion-duration-control) var(--motion-ease-standard);
}

label.source-option-card {
  cursor: pointer;
}

label.source-option-card:has(input:checked) {
  background: color-mix(in srgb, var(--color-accent) 7%, var(--color-surface));
  border-color: color-mix(in srgb, var(--color-accent) 42%, var(--color-border-default));
}

.source-option-card.readonly {
  align-items: center;
}

.source-option-card input {
  accent-color: var(--color-ink);
  height: 18px;
  margin-top: 2px;
  width: 18px;
}

.source-option-card strong,
.source-option-card small {
  display: block;
}

.source-option-card strong {
  color: var(--color-ink);
  font-size: 0.875rem;
}

.source-option-card small {
  color: var(--color-text-muted);
  font-size: 0.75rem;
  margin-top: 3px;
}

.sanity-catalog-heading,
.sanity-selection-toolbar {
  align-items: flex-start;
  display: flex;
  gap: var(--space-3);
  justify-content: space-between;
}

.sanity-catalog-heading h2,
.sanity-catalog-heading p,
.sanity-selection-count {
  margin-top: 0;
}

.sanity-refresh-summary {
  color: var(--color-text-muted);
  font-size: 0.8rem;
}

.sanity-filter-grid {
  display: grid;
  gap: var(--space-3);
  grid-template-columns: minmax(240px, 1.35fr) repeat(3, minmax(160px, 0.8fr));
  margin: var(--space-4) 0 var(--space-3);
}

.sanity-filter-grid label {
  display: grid;
  gap: 5px;
}

.sanity-selection-toolbar {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  margin-bottom: var(--space-3);
  padding: var(--space-3);
}

.sanity-selection-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 7px;
}

.sanity-selection-count {
  color: var(--color-text-muted);
  flex: 0 0 auto;
  font-size: 0.78rem;
  text-align: right;
}

.sanity-selection-count strong {
  color: var(--color-ink);
}

.knowledge-main .table-wrap {
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  overflow: auto;
}

.knowledge-main .summary-table {
  min-width: 0;
}

.knowledge-main table {
  background: var(--color-surface);
  border-collapse: separate;
  border-spacing: 0;
  min-width: 720px;
  width: 100%;
}

.knowledge-main th,
.knowledge-main td {
  border-bottom: 1px solid var(--color-border-subtle);
  padding: var(--space-3) var(--space-4);
  text-align: left;
  vertical-align: top;
}

.knowledge-main th {
  background: var(--color-surface-soft);
  color: var(--color-text-muted);
  font-size: 0.7rem;
  font-weight: 600;
  letter-spacing: 0.035em;
  text-transform: uppercase;
}

.knowledge-main tbody tr:last-child td {
  border-bottom: 0;
}

.knowledge-main tbody tr:hover td {
  background: var(--color-surface-soft-high);
}

.knowledge-main td {
  color: var(--color-ink);
  font-size: 0.8rem;
}

.knowledge-main td small {
  color: var(--color-text-muted);
  display: block;
  font-size: 0.72rem;
  margin-top: 3px;
}

.sanity-catalog-table-wrap {
  max-height: 720px;
}

.knowledge-main .sanity-catalog-table {
  min-width: 1040px;
}

.knowledge-main .sanity-catalog-table thead {
  position: sticky;
  top: 0;
  z-index: 1;
}

.knowledge-main .sanity-catalog-table td label {
  cursor: pointer;
}

.sanity-unavailable {
  color: var(--color-danger) !important;
}

.sanity-version-comparison {
  display: grid;
  gap: var(--space-4);
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.sanity-version-comparison > div {
  min-width: 0;
}

.knowledge-main .feedback-json,
.knowledge-main pre.feedback-json {
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-sm);
  color: var(--color-ink);
  font: 0.78rem/1.55 var(--font-family-mono);
  max-height: 520px;
  overflow: auto;
  padding: var(--space-4);
  white-space: pre-wrap;
  word-break: break-word;
}

.knowledge-main .sanity-source-preview {
  min-height: 240px;
}

.knowledge-main details {
  border-top: 1px solid var(--color-border-subtle);
  margin-top: var(--space-3);
  padding-top: var(--space-3);
}

.knowledge-main details > summary {
  color: var(--color-ink);
  cursor: pointer;
  font-size: 0.8rem;
  font-weight: 600;
}

.knowledge-main details > summary:hover {
  color: var(--color-accent-strong);
}

.knowledge-main .pipeline-stats {
  display: grid;
  grid-template-columns: minmax(160px, 0.35fr) minmax(0, 1fr);
}

.knowledge-main .pipeline-stats dt,
.knowledge-main .pipeline-stats dd {
  border-color: var(--color-border-subtle);
  min-width: 0;
  overflow-wrap: anywhere;
}

.proposal-bulk-form {
  margin-bottom: var(--space-3);
}

.proposal-review-toolbar {
  align-items: center;
  background: var(--color-surface-soft);
  border: 1px solid var(--color-border-subtle);
  border-radius: var(--radius-md);
  display: flex;
  flex-wrap: wrap;
  gap: var(--space-2);
  padding: var(--space-3);
  position: sticky;
  top: 84px;
  z-index: 2;
}

.proposal-review-toolbar > strong {
  margin-right: auto;
}

.proposal-card-heading,
.proposal-select,
.proposal-quick-actions {
  align-items: flex-start;
  display: flex;
  gap: var(--space-2);
}

.proposal-select {
  color: var(--color-text-muted);
  cursor: pointer;
  font-size: 0.72rem;
  padding-top: 1px;
}

.proposal-select input {
  accent-color: var(--color-ink);
  height: 18px;
  width: 18px;
}

.proposal-quick-actions {
  flex-wrap: wrap;
  margin-top: var(--space-3);
}

.proposal-quick-actions form {
  margin: 0;
}

.proposal-edit-details .pipeline-form {
  margin-top: var(--space-3);
}

@media (hover: hover) and (pointer: fine) {
  .search-result-card:hover,
  .discover-project-card:hover,
  .discover-asset-card:hover,
  .discover-text-card:hover,
  .feedback-chat-project-card:hover .feedback-chat-project-media,
  .feedback-chat-asset-card:hover {
    box-shadow: var(--shadow-card-hover);
    transform: translateY(-2px);
  }
}

@media (min-width: 1500px) {
  .discover-filter-grid {
    grid-template-columns: minmax(240px, 1.2fr) repeat(3, minmax(160px, 0.8fr)) minmax(180px, 1fr);
  }

  .discover-project-row {
    grid-template-columns: repeat(5, minmax(190px, 1fr));
  }
}

@media (max-width: 1180px) {
  .discover-project-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feedback-card-main {
    grid-template-columns: 1fr;
  }

  .feedback-review-layout {
    grid-template-columns: minmax(0, 1fr) minmax(280px, 320px);
  }

  .knowledge-main .metric-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .sanity-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .search-page {
    padding-bottom: 194px;
  }

  .search-dock {
    align-items: stretch;
    flex-wrap: wrap;
    width: calc(100vw - 24px);
  }

  .search-dock-query {
    flex: 1 1 100%;
    min-width: 0;
    order: -1;
  }

  .search-dock-sources {
    flex: 1 1 auto;
    overflow-x: auto;
  }

  .search-dock-density {
    flex: 1 1 190px;
    justify-content: space-between;
  }

  .search-dock-density-control {
    flex: 1 1 auto;
    min-width: 130px;
  }

  .search-dock-submit {
    flex: 1 1 auto;
  }

  .discover-header {
    align-items: stretch;
    flex-direction: column;
  }

  .discover-result-count {
    align-items: baseline;
    display: flex;
    gap: var(--space-2);
    min-width: 0;
    text-align: left;
  }

  .discover-query-row {
    grid-template-columns: minmax(0, 1fr) 76px auto;
  }

  .discover-query-row .button {
    grid-column: 1 / -1;
  }

  .discover-filter-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .discover-fieldset {
    grid-column: 1 / -1;
  }

  .feedback-review-layout,
  .feedback-json-grid {
    grid-template-columns: 1fr;
  }

  .feedback-side-panel {
    max-height: none;
    position: static;
  }

  .source-option-grid,
  .sanity-version-comparison {
    grid-template-columns: 1fr;
  }

  .sanity-catalog-heading,
  .sanity-selection-toolbar {
    align-items: stretch;
    flex-direction: column;
  }

  .sanity-selection-count {
    text-align: left;
  }
}

@media (max-width: 640px) {
  .header-actions {
    justify-content: flex-start;
    width: 100%;
  }

  .header-actions .button,
  .header-actions form,
  .header-actions form .button {
    flex: 1 1 auto;
  }

  .knowledge-dashboard-actions {
    min-width: 0;
  }

  .search-results-grid,
  .discover-project-row,
  .discover-asset-grid,
  .discover-filter-grid,
  .feedback-card-meta,
  .knowledge-main .metric-grid,
  .sanity-filter-grid {
    grid-template-columns: 1fr;
  }

  .search-page {
    padding-bottom: 246px;
  }

  .search-dock-sources {
    flex-basis: 100%;
  }

  .search-dock-density {
    order: 2;
    width: 100%;
  }

  .search-dock-limit,
  .search-dock-submit {
    flex: 1 1 0;
  }

  .discover-query-row {
    grid-template-columns: minmax(0, 1fr) 72px;
  }

  .discover-debug-toggle {
    justify-content: center;
  }

  .discover-query-row .button {
    grid-column: 1 / -1;
  }

  .feedback-panel-heading {
    align-items: stretch;
    flex-direction: column;
  }

  .feedback-panel-tools {
    justify-content: space-between;
  }

  .feedback-chat-project-grid,
  .feedback-chat-asset-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .feedback-chat-message--user .feedback-chat-bubble {
    max-width: 92%;
  }

  .knowledge-main .sync-run-main,
  .knowledge-main .pipeline-stats {
    grid-template-columns: 1fr;
  }

  .knowledge-main .sync-run-main {
    align-items: flex-start;
    flex-direction: column;
  }

  .proposal-review-toolbar {
    position: static;
  }
}

@media (max-width: 420px) {
  .feedback-chat-project-grid,
  .feedback-chat-asset-grid {
    grid-template-columns: 1fr;
  }
}

@media (prefers-reduced-motion: reduce) {
  .search-result-card,
  .discover-project-card,
  .discover-asset-card,
  .discover-text-card,
  .feedback-chat-project-media,
  .feedback-chat-asset-card {
    transition: none;
  }
}
