/* Shared facet controls use only the existing Chaos Labs theme tokens. */
.af-record,.af-filters,.af-takeaways,.af-source-list {
  color:var(--tx2); font-family:var(--sans); font-size:var(--atlas-small,.875rem);
  line-height:1.55; letter-spacing:normal; text-transform:none; min-width:0;
}
.af-record { display:grid; gap:var(--space-2); margin-block:var(--space-3); }
.af-record *, .af-filters * { box-sizing:border-box; }
.af-axis { display:grid; grid-template-columns:112px minmax(0,1fr); gap:var(--space-2); align-items:start; }
.af-axis-name { font-size:var(--atlas-caption,.8125rem); font-weight:500; padding-top:var(--space-2); color:var(--tx2); }
.af-axis-values,.af-chip-list { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-1) var(--space-2); min-width:0; }
.af-chip {
  display:inline-flex; align-items:center; justify-content:flex-start; gap:var(--space-1);
  min-height:36px; max-width:100%; padding:var(--space-1) var(--space-2);
  border:1px solid var(--line); border-radius:4px; background:var(--panel2);
  color:var(--tx2); font:inherit; font-size:var(--atlas-caption,.8125rem);
  line-height:1.45; text-decoration:none; white-space:normal; overflow-wrap:anywhere; text-align:left;
}
.af-chip--mechanisms { color:var(--acc); border-color:color-mix(in srgb,var(--acc) 23%,var(--line)); background:color-mix(in srgb,var(--acc) 6%,var(--panel)); }
.af-chip--severity { color:var(--orange); border-color:color-mix(in srgb,var(--orange) 23%,var(--line)); background:color-mix(in srgb,var(--orange) 6%,var(--panel)); }
.af-chip--evidence { color:var(--purple); border-color:color-mix(in srgb,var(--purple) 23%,var(--line)); background:color-mix(in srgb,var(--purple) 6%,var(--panel)); }
.af-chip:hover { border-color:currentColor; text-decoration:underline; text-underline-offset:3px; }
.af-missing { color:var(--tx2); font-size:var(--atlas-caption,.8125rem); padding-block:var(--space-2); }
.af-more { min-width:0; max-width:100%; }
.af-more > summary {
  cursor:pointer; min-height:36px; padding:var(--space-2) var(--space-1);
  font-size:var(--atlas-caption,.8125rem); line-height:1.45; color:var(--tx2);
  list-style-position:inside; overflow-wrap:anywhere;
}
.af-more > summary:hover { color:var(--acc); }
.af-more[open] { flex-basis:100%; }
.af-more--mechanisms > .af-chip-list { padding-block:var(--space-1) var(--space-2); }
.af-severity-content { padding:var(--space-3); border:1px solid var(--line); border-radius:4px; background:var(--panel); color:var(--tx2); }
.af-severity-content > p { font-size:var(--atlas-caption,.8125rem); margin:0 0 var(--space-3); }
.af-vector { display:grid; gap:var(--space-3); margin:0; }
.af-vector > div { display:grid; grid-template-columns:100px minmax(0,1fr); gap:var(--space-2); align-items:start; }
.af-vector dt { color:var(--tx); font-size:var(--atlas-caption,.8125rem); padding-top:var(--space-2); }
.af-vector dd { display:flex; align-items:center; flex-wrap:wrap; gap:var(--space-2); min-width:0; margin:0; font-size:var(--atlas-caption,.8125rem); }
.af-vector dd > span { flex:1 1 180px; overflow-wrap:anywhere; }
.af-vector .af-chip { flex-shrink:0; }
.af-filterbar { display:flex; flex-wrap:wrap; gap:var(--space-2); align-items:start; }
.af-filter { position:relative; min-width:0; }
.af-filter > summary {
  display:flex; align-items:center; justify-content:space-between; gap:var(--space-2); list-style:none;
  min-height:44px; padding:var(--space-2) var(--space-3); border:1px solid var(--line2);
  border-radius:4px; background:var(--panel); color:var(--tx); font:inherit; cursor:pointer;
}
.af-filter > summary::-webkit-details-marker { display:none; }
.af-filter > summary::after { content:"⌄"; color:var(--tx2); }
.af-filter[open] > summary::after { content:"⌃"; }
.af-filter--mechanisms > summary { border-color:color-mix(in srgb,var(--acc) 40%,var(--line)); }
.af-filter--severity > summary { border-color:color-mix(in srgb,var(--orange) 40%,var(--line)); }
.af-filter--evidence > summary { border-color:color-mix(in srgb,var(--purple) 40%,var(--line)); }
.af-filter > summary:hover,.af-filter[open] > summary { background:var(--panel2); }
.af-filter-number { font:inherit; color:var(--tx2); min-width:20px; text-align:center; }
.af-filter-panel {
  position:absolute; top:calc(100% + var(--space-2)); left:0; z-index:30;
  width:360px; max-width:calc(100vw - 48px); padding:var(--space-4);
  border:1px solid var(--line2); border-radius:6px; background:var(--panel); color:var(--tx);
  box-shadow:0 8px 24px color-mix(in srgb,var(--tx) 12%,transparent);
}
.af-filter--evidence .af-filter-panel { left:auto; right:0; }
.af-filter-panel fieldset { border:0; margin:0; padding:0; min-width:0; }
.af-filter-panel legend { color:var(--tx); font-weight:600; padding:0; font-size:var(--atlas-small,.875rem); }
.af-filter-hint,.af-filter-semantics { font-size:var(--atlas-caption,.8125rem); color:var(--tx2); line-height:1.55; margin:var(--space-2) 0; }
.af-filter-semantics { margin-top:var(--space-3); }
.af-checklist { max-height:300px; overflow-y:auto; overscroll-behavior:contain; scrollbar-gutter:stable; padding-right:var(--space-1); }
.af-choice {
  display:flex; gap:var(--space-2); align-items:flex-start; min-height:44px; padding:var(--space-2);
  cursor:pointer; border-radius:4px; font:inherit; color:var(--tx); text-transform:none;
}
.af-choice:hover,.af-choice:has(input:focus-visible) { background:var(--panel2); }
.af-choice input[type="checkbox"] { width:18px; height:18px; min-width:18px; flex:0 0 18px; margin:3px 0 0; accent-color:var(--acc); }
.af-filter--severity .af-choice input { accent-color:var(--orange); }
.af-filter--evidence .af-choice input { accent-color:var(--purple); }
.af-choice-copy { display:grid; gap:var(--space-1); min-width:0; overflow-wrap:anywhere; }
.af-choice-copy small { color:var(--tx2); font-size:var(--atlas-caption,.8125rem); line-height:1.5; }
.af-choice--unsupported { color:var(--orange); }
.af-dimension-label { display:grid; gap:var(--space-1); font-size:var(--atlas-caption,.8125rem); margin-block:var(--space-3); color:var(--tx2); }
.af-dimension-label select { font:inherit; font-size:var(--atlas-small,.875rem); background:var(--panel2); color:var(--tx); border:1px solid var(--line2); border-radius:4px; min-height:44px; padding:var(--space-2); width:100%; }
.af-filter-done,.af-reset { font:inherit; font-size:var(--atlas-caption,.8125rem); min-height:44px; padding:var(--space-2) var(--space-3); cursor:pointer; color:var(--tx); background:var(--panel); border:1px solid var(--line2); border-radius:4px; }
.af-filter-done { margin-top:var(--space-3); width:100%; }
.af-filter-done:hover,.af-reset:hover { background:var(--panel2); color:var(--acc); }
.af-selected { display:flex; flex-wrap:wrap; align-items:center; gap:var(--space-2); margin-top:var(--space-2); min-width:0; }
.af-remove { cursor:pointer; min-height:44px; gap:var(--space-2); }
.af-remove-x { font-size:1.125rem; line-height:1; flex-shrink:0; }
.af-unsupported { color:var(--tx2); font-size:var(--atlas-caption,.8125rem); }
.af-filters :is(a,button,input,summary,select):focus-visible,
.af-record :is(a,summary):focus-visible,.af-takeaways :is(a,summary):focus-visible {
  outline:2px solid var(--acc); outline-offset:3px;
}
.af-sr { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
.af-source-list { margin:var(--space-2) 0; padding-left:var(--space-5); }
.af-source-list li { padding-left:var(--space-1); overflow-wrap:anywhere; max-width:100%; }
.af-source-list li + li { margin-top:var(--space-2); }
.af-source-sentence + .af-source-sentence { display:block; margin-top:var(--space-2); }
.af-source-list a { color:var(--acc); text-decoration:underline; text-underline-offset:3px; }
.af-source-more > summary { min-height:44px; }
@media (max-width:700px) {
  .af-filterbar { display:grid; grid-template-columns:1fr; }
  .af-filter > summary { width:100%; }
  .af-filter-panel,.af-filter--evidence .af-filter-panel { position:static; width:100%; max-width:100%; margin-top:var(--space-2); box-shadow:none; }
  .af-axis { grid-template-columns:1fr; gap:var(--space-1); }
  .af-axis-name { padding-top:0; }
  .af-chip,.af-more > summary { min-height:44px; }
  .af-axis + .af-axis { margin-top:var(--space-1); }
  .af-vector > div { grid-template-columns:1fr; gap:var(--space-1); }
  .af-vector dt { padding-top:0; }
  .af-vector dd { align-items:flex-start; }
  .af-filter-panel { padding:var(--space-3); }
  .af-checklist { max-height:280px; }
}
@media (prefers-reduced-motion:reduce) {
  .af-filters *,.af-record * { scroll-behavior:auto; transition:none; }
}
