:root {
  color-scheme: light dark;
  font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  background: Canvas;
  color: CanvasText;
}
* { box-sizing: border-box; }
body { margin: 0; min-height: 100dvh; background: Canvas; color: CanvasText; }
button, input, select { font: inherit; }
a { color: inherit; }
code { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; overflow-wrap: anywhere; }
.shell {
  width: min(1120px, 100%);
  margin: 0 auto;
  padding: calc(18px + env(safe-area-inset-top)) calc(18px + env(safe-area-inset-right)) calc(24px + env(safe-area-inset-bottom)) calc(18px + env(safe-area-inset-left));
}
.page-head {
  display: flex;
  justify-content: space-between;
  gap: 16px;
  align-items: flex-end;
  padding-bottom: 14px;
  border-bottom: 1px solid color-mix(in srgb, CanvasText 18%, transparent);
}
.eyebrow { margin: 0 0 4px; font-size: .72rem; letter-spacing: .12em; opacity: .62; }
h1 { margin: 0; font-size: clamp(1.65rem, 4vw, 2.4rem); font-weight: 650; letter-spacing: -.035em; }
.subtitle { margin: 6px 0 0; max-width: 58rem; opacity: .68; font-size: .92rem; line-height: 1.45; }
.back-link { font-size: .8rem; white-space: nowrap; }
.controls {
  display: grid;
  grid-template-columns: minmax(150px, 240px) minmax(220px, 1fr);
  gap: 10px;
  margin: 14px 0 8px;
}
.field { display: grid; gap: 5px; }
.field label { font-size: .75rem; opacity: .62; }
select, input {
  min-height: 40px;
  width: 100%;
  padding: 0 10px;
  border: 1px solid color-mix(in srgb, CanvasText 24%, transparent);
  border-radius: 8px;
  background: Canvas;
  color: CanvasText;
}
.catalog-meta { margin: 0 0 12px; font-size: .75rem; opacity: .62; }
.catalog-list { display: grid; gap: 8px; }
.catalog-card {
  padding: 12px;
  border: 1px solid color-mix(in srgb, CanvasText 16%, transparent);
  border-radius: 8px;
  background: color-mix(in srgb, Canvas 96%, CanvasText 4%);
}
.catalog-card.status-source-conflict { border-style: dashed; }
.catalog-card.status-transition { border-style: dotted; }
.catalog-head { display: flex; justify-content: space-between; gap: 12px; align-items: flex-start; }
.catalog-head h2 { margin: 0; font-size: 1rem; }
.catalog-category { margin: 0 0 3px; font-size: .67rem; letter-spacing: .08em; text-transform: uppercase; opacity: .55; }
.catalog-badges { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 4px; }
.catalog-badge {
  padding: 2px 5px;
  border: 1px solid color-mix(in srgb, CanvasText 22%, transparent);
  border-radius: 4px;
  font-size: .62rem;
  line-height: 1.3;
  opacity: .72;
}
.catalog-facts {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 6px 14px;
  margin: 12px 0 0;
  font-size: .75rem;
}
.catalog-facts > div { display: grid; grid-template-columns: 9rem 1fr; gap: 8px; align-items: start; }
.catalog-facts dt { opacity: .52; font-family: ui-monospace, SFMono-Regular, Menlo, monospace; }
.catalog-facts dd { margin: 0; line-height: 1.4; }
.catalog-note { margin: 10px 0 0; font-size: .72rem; line-height: 1.45; opacity: .68; }
.catalog-sources { margin-top: 9px; font-size: .68rem; opacity: .65; }
.catalog-sources summary { cursor: pointer; }
.catalog-sources code { display: block; margin-top: 5px; }
footer {
  margin-top: 24px;
  padding-top: 12px;
  border-top: 1px solid color-mix(in srgb, CanvasText 15%, transparent);
  font-size: .7rem;
  line-height: 1.45;
  opacity: .55;
}
@media (max-width: 720px) {
  .page-head { align-items: flex-start; }
  .controls { grid-template-columns: 1fr; }
  .catalog-facts { grid-template-columns: 1fr; }
  .catalog-facts > div { grid-template-columns: 8.4rem 1fr; }
}
@media (max-width: 430px) {
  .shell { padding-left: calc(12px + env(safe-area-inset-left)); padding-right: calc(12px + env(safe-area-inset-right)); }
  .catalog-head { display: grid; }
  .catalog-badges { justify-content: flex-start; }
  .catalog-facts > div { grid-template-columns: 1fr; gap: 2px; }
}
