@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap');

/* ---------- base ---------- */
.ac-app { margin: 0; background: var(--surface); color: var(--on-surface); font-family: var(--font-sans); font-size: 15px; line-height: 22px; letter-spacing: .25px; -webkit-font-smoothing: antialiased; }
.ac-icon { flex: none; display: inline-block; vertical-align: middle; }
.ac-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.ac-kbd { font-family: var(--font-mono); font-size: 14px; line-height: 18px; padding: 0 6px; border: 1px solid var(--outline-variant); border-radius: var(--radius-xs); color: var(--on-surface-variant); }

/* state layer: currentColor at state-* opacity */
.ac-btn, .ac-iconbtn, .ac-chip__main, .ac-chip__remove, .ac-seg__btn, .ac-tab, .ac-th__sort, .ac-facet__head, .ac-facet__opt, .ac-facet__more, .ac-appbar__link, .ac-mx-group button, .ac-search__clear { position: relative; isolation: isolate; }
.ac-btn::before, .ac-iconbtn::before, .ac-chip__main::before, .ac-chip__remove::before, .ac-seg__btn::before, .ac-tab::before, .ac-facet__head::before, .ac-facet__opt::before, .ac-facet__more::before, .ac-appbar__link::before, .ac-mx-group button::before, .ac-search__clear::before, .ac-cb::before {
  content: ''; position: absolute; inset: 0; border-radius: inherit; background: currentColor; opacity: 0; pointer-events: none; z-index: -1; transition: opacity .15s;
}
.ac-btn:hover::before, .ac-iconbtn:hover::before, .ac-chip__main:hover::before, .ac-chip__remove:hover::before, .ac-seg__btn:hover::before, .ac-tab:hover::before, .ac-facet__head:hover::before, .ac-facet__opt:hover::before, .ac-facet__more:hover::before, .ac-appbar__link:hover::before, .ac-mx-group button:hover::before, .ac-search__clear:hover::before, .ac-cb:hover::before { opacity: var(--state-hover); }
.ac-btn:active::before, .ac-iconbtn:active::before, .ac-chip__main:active::before, .ac-seg__btn:active::before, .ac-tab:active::before, .ac-facet__opt:active::before { opacity: var(--state-pressed); }
.ac-btn:disabled::before, .ac-iconbtn:disabled::before, .ac-chip__main:disabled::before { opacity: 0; }

:where(.ac-btn, .ac-iconbtn, .ac-chip__main, .ac-chip__remove, .ac-seg__btn, .ac-tab, .ac-th__sort, .ac-facet__head, .ac-facet__more, .ac-appbar__link, .ac-mx-group button, .ac-search__clear, .ac-table__scroll, .ac-platform__name, .ac-pager select):focus-visible { outline: 2px solid var(--focus-ring); outline-offset: 2px; }

/* ---------- Button ---------- */
.ac-btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: var(--control-m); padding: 0 24px; border: 0; border-radius: var(--radius-full); font: inherit; font-size: 15px; line-height: 22px; font-weight: 500; letter-spacing: .1px; cursor: pointer; white-space: nowrap; text-decoration: none; transition: box-shadow .15s; }
.ac-btn.has-icon { padding-left: 16px; }
.ac-btn.has-trailing { padding-right: 16px; }
.ac-btn--s { height: var(--control-s); padding: 0 16px; font-size: 14px; }
.ac-btn--s.has-icon { padding-left: 12px; }
.ac-btn--filled { background: var(--primary); color: var(--on-primary); }
.ac-btn--filled:hover:not(:disabled) { box-shadow: var(--elevation-1); }
.ac-btn--tonal { background: var(--secondary-container); color: var(--on-secondary-container); }
.ac-btn--outlined { background: transparent; color: var(--primary); box-shadow: inset 0 0 0 1px var(--outline); }
.ac-btn--text { background: transparent; color: var(--primary); padding: 0 12px; }
.ac-btn--text.has-icon { padding-left: 12px; }
.ac-btn:disabled { cursor: not-allowed; opacity: var(--disabled-content); box-shadow: none; }
.ac-btn--filled:disabled, .ac-btn--tonal:disabled { background: var(--surface-container-highest); color: var(--on-surface); }

/* ---------- IconButton ---------- */
.ac-iconbtn { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: var(--radius-full); background: transparent; color: var(--on-surface-variant); cursor: pointer; flex: none; }
.ac-iconbtn--s { width: 32px; height: 32px; }
.ac-iconbtn.is-selected { color: var(--primary); }
.ac-iconbtn--filled { background: var(--primary); color: var(--on-primary); }
.ac-iconbtn--tonal { background: var(--secondary-container); color: var(--on-secondary-container); }
.ac-iconbtn--outlined { box-shadow: inset 0 0 0 1px var(--outline); }
.ac-iconbtn--outlined.is-selected { background: var(--inverse-surface); color: var(--inverse-on-surface); box-shadow: none; }
.ac-iconbtn:disabled { cursor: not-allowed; opacity: var(--disabled-content); }

/* ---------- Chip ---------- */
.ac-chip { display: inline-flex; align-items: center; height: var(--control-s); border-radius: var(--radius-s); box-shadow: inset 0 0 0 1px var(--outline); color: var(--on-surface-variant); background: transparent; vertical-align: middle; }
.ac-chip__main { display: inline-flex; align-items: center; gap: var(--space-2); height: 100%; padding: 0 16px; border: 0; border-radius: inherit; background: transparent; color: inherit; font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .1px; cursor: pointer; white-space: nowrap; }
.ac-chip.has-icon .ac-chip__main { padding-left: 8px; }
.ac-chip--input .ac-chip__main { padding-right: 4px; cursor: default; }
.ac-chip__count { font-family: var(--font-mono); font-size: 14px; font-weight: 400; color: var(--on-surface-variant); font-variant-numeric: tabular-nums; }
.ac-chip__remove { display: inline-grid; place-items: center; width: 24px; height: 24px; margin-right: 4px; padding: 0; border: 0; border-radius: var(--radius-full); background: transparent; color: inherit; cursor: pointer; }
.ac-chip.is-selected, .ac-chip--input { background: var(--secondary-container); color: var(--on-secondary-container); box-shadow: none; }
.ac-chip.is-selected .ac-chip__count, .ac-chip--input .ac-chip__count { color: var(--on-secondary-container); }
.ac-chip--assist { color: var(--on-surface); }
.ac-chip--assist .ac-icon { color: var(--primary); }
.ac-chip.is-disabled { opacity: var(--disabled-content); }

/* ---------- SegmentedButton ---------- */
.ac-seg { display: inline-flex; height: var(--control-m); border-radius: var(--radius-full); box-shadow: inset 0 0 0 1px var(--outline); overflow: hidden; vertical-align: middle; }
.ac-seg--s { height: var(--control-s); }
.ac-seg__btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); min-width: 48px; padding: 0 12px; border: 0; border-left: 1px solid var(--outline); background: transparent; color: var(--on-surface); font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .1px; cursor: pointer; white-space: nowrap; }
.ac-seg--s .ac-seg__btn { font-size: 14px; padding: 0 10px; min-width: 40px; }
.ac-seg__btn:first-child { border-left: 0; padding-left: 16px; }
.ac-seg__btn:last-child { padding-right: 16px; }
.ac-seg__btn.is-selected { background: var(--secondary-container); color: var(--on-secondary-container); }
.ac-seg__btn:focus-visible { outline-offset: -3px; }

/* ---------- SearchField ---------- */
.ac-search { display: inline-flex; align-items: center; gap: var(--space-2); height: var(--control-m); width: 320px; max-width: 100%; padding: 0 8px 0 12px; border-radius: var(--radius-full); background: var(--surface-container-high); color: var(--on-surface-variant); box-sizing: border-box; cursor: text; }
.ac-search--s { height: var(--control-s); width: 240px; padding-left: 10px; }
.ac-search:focus-within { outline: 2px solid var(--focus-ring); outline-offset: 0; }
.ac-search input { flex: 1; min-width: 0; height: 100%; border: 0; outline: 0; background: transparent; color: var(--on-surface); font: inherit; font-size: 15px; }
.ac-search--s input { font-size: 14px; }
.ac-search input::placeholder { color: var(--on-surface-variant); opacity: 1; }
.ac-search input::-webkit-search-cancel-button { display: none; }
.ac-search__clear { display: inline-grid; place-items: center; width: 28px; height: 28px; padding: 0; border: 0; border-radius: var(--radius-full); background: transparent; color: inherit; cursor: pointer; }

/* ---------- Checkbox ---------- */
.ac-cb { position: relative; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: var(--radius-full); color: var(--on-surface); flex: none; vertical-align: middle; }
.ac-cb input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; z-index: 1; }
.ac-cb__box { display: grid; place-items: center; width: 18px; height: 18px; box-sizing: border-box; border: 2px solid var(--on-surface-variant); border-radius: 2px; color: var(--on-primary); transition: background .12s, border-color .12s; }
.ac-cb__box .ac-icon { opacity: 0; }
.ac-cb input:checked + .ac-cb__box, .ac-cb input:indeterminate + .ac-cb__box { background: var(--primary); border-color: var(--primary); }
.ac-cb input:checked + .ac-cb__box .ac-icon, .ac-cb input:indeterminate + .ac-cb__box .ac-icon { opacity: 1; }
.ac-cb input:focus-visible + .ac-cb__box { outline: 2px solid var(--focus-ring); outline-offset: 3px; }
.ac-cb input:disabled { cursor: not-allowed; }
.ac-cb:has(input:disabled) { opacity: var(--disabled-content); }
.ac-cb-label { display: inline-flex; align-items: center; gap: 0; padding-right: 8px; cursor: pointer; font-size: 15px; color: var(--on-surface); }
.ac-cb-label.is-disabled { cursor: not-allowed; opacity: var(--disabled-content); }

/* ---------- Tag ---------- */
.ac-tag { display: inline-flex; align-items: center; gap: var(--space-1); height: 24px; padding: 0 8px; border-radius: var(--radius-xs); font-size: 14px; line-height: 18px; font-weight: 500; letter-spacing: .3px; white-space: nowrap; vertical-align: middle; box-sizing: border-box; }
.ac-tag .ac-icon { margin-left: -2px; }
.ac-tag--s { height: 20px; padding: 0 6px; font-size: 14px; }
.ac-tag--neutral { background: var(--surface-container-highest); color: var(--on-surface-variant); }
.ac-tag--primary { background: var(--primary-container); color: var(--on-primary-container); }
.ac-tag--tertiary { background: var(--tertiary-container); color: var(--on-tertiary-container); }
.ac-tag--success { background: var(--success-container); color: var(--on-success-container); }
.ac-tag--warning { background: var(--warning-container); color: var(--on-warning-container); }
.ac-tag--error { background: var(--error-container); color: var(--on-error-container); }

/* ---------- Score ---------- */
.ac-score { display: inline-flex; align-items: center; gap: var(--space-2); font-family: var(--font-mono); font-size: 14px; line-height: 22px; font-variant-numeric: tabular-nums; white-space: nowrap; }
.ac-score__num { min-width: 3ch; text-align: right; color: var(--on-surface); }
.ac-score__track { position: relative; width: 64px; height: 6px; border-radius: var(--radius-full); background: var(--surface-container-highest); overflow: hidden; }
.ac-score__fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: inherit; background: var(--primary); }
.ac-score--heat { justify-content: center; min-width: 44px; height: 24px; padding: 0 6px; border-radius: var(--radius-xs); font-weight: 500; box-sizing: border-box; }
.ac-score--l1 { background: var(--score-1); color: var(--on-score-low); }
.ac-score--l2 { background: var(--score-2); color: var(--on-score-low); }
.ac-score--l3 { background: var(--score-3); color: var(--on-score-low); }
.ac-score--l4 { background: var(--score-4); color: var(--on-score-high); }
.ac-score--l5 { background: var(--score-5); color: var(--on-score-high); }

/* ---------- PlatformCell ---------- */
.ac-platform { display: inline-flex; align-items: center; gap: var(--space-3); min-width: 0; max-width: 100%; vertical-align: middle; }
.ac-platform__mono, .ac-platform__logo { flex: none; width: 32px; height: 32px; border-radius: var(--radius-s); box-sizing: border-box; }
.ac-platform__mono { display: grid; place-items: center; background: var(--surface-container-highest); color: var(--on-surface-variant); font-size: 14px; font-weight: 600; letter-spacing: .5px; }
.ac-platform__logo { object-fit: contain; background: var(--surface-container-lowest); border: 1px solid var(--outline-variant); padding: 3px; }
.ac-platform--s { gap: var(--space-2); }
.ac-platform--s .ac-platform__mono, .ac-platform--s .ac-platform__logo { width: 24px; height: 24px; font-size: 14px; border-radius: var(--radius-xs); }
.ac-platform__text { display: flex; flex-direction: column; min-width: 0; }
.ac-platform__title { display: inline-flex; align-items: center; gap: var(--space-2); min-width: 0; }
.ac-platform__name { font-size: 15px; line-height: 22px; font-weight: 500; color: var(--on-surface); text-decoration: none; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; border-radius: 2px; }
.ac-platform--s .ac-platform__name { font-size: 14px; }
a.ac-platform__name:hover { text-decoration: underline; text-underline-offset: 2px; }
.ac-platform__meta { font-size: 14px; line-height: 18px; letter-spacing: .4px; color: var(--on-surface-variant); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-weight: 400; }

/* ---------- DataTable ---------- */
.ac-table { --row-h: var(--row-default); --cell-pad: var(--cell-pad-default); display: flex; flex-direction: column; min-width: 0; background: var(--table-row); border: 1px solid var(--outline-variant); border-radius: var(--radius-m); overflow: hidden; color: var(--on-surface); }
.ac-table--compact { --row-h: var(--row-compact); --cell-pad: var(--cell-pad-compact); }
.ac-table--comfortable { --row-h: var(--row-comfortable); --cell-pad: var(--cell-pad-comfortable); }
.ac-table__toolbar { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-2); min-height: 56px; padding: 8px 8px 8px 16px; box-sizing: border-box; border-bottom: 1px solid var(--table-grid); background: var(--table-row); }
.ac-table__title { font-size: 17px; line-height: 24px; font-weight: 500; letter-spacing: .15px; color: var(--on-surface); margin-right: var(--space-1); }
.ac-table__count { font-family: var(--font-mono); font-size: 14px; color: var(--on-surface-variant); }
.ac-table__spacer { flex: 1; }
.ac-table__scroll { position: relative; overflow: auto; min-height: 0; }
.ac-table__scroll:focus-visible { outline-offset: -2px; }
.ac-table table { width: 100%; border-collapse: separate; border-spacing: 0; font-size: 14px; line-height: 22px; letter-spacing: .1px; }
.ac-table th, .ac-table td { height: var(--row-h); padding: 0 var(--cell-pad); box-sizing: border-box; border-bottom: 1px solid var(--table-grid); text-align: left; vertical-align: middle; white-space: nowrap; }
.ac-table thead th { position: sticky; top: 0; z-index: var(--z-sticky-header); height: max(var(--row-h), 36px); background: var(--table-header); color: var(--on-surface-variant); font-size: 14px; line-height: 18px; font-weight: 500; letter-spacing: .3px; border-bottom-color: var(--table-grid-strong); }
.ac-table tbody td, .ac-table tbody th { background: var(--table-row); }
.ac-table tbody th { font-weight: 400; }
.ac-table--zebra tbody tr:nth-child(even) > * { background: var(--table-row-alt); }
.ac-table tbody tr:hover > * { background: var(--table-row-hover); }
.ac-table tbody tr.is-selected > * { background: var(--table-row-selected); }
.ac-table tbody tr.is-clickable { cursor: pointer; }
.ac-table tbody tr:last-child > * { border-bottom: 0; }
.ac-table--grid th + th, .ac-table--grid td + td, .ac-table--grid th + td, .ac-table--grid td + th { border-left: 1px solid var(--table-grid); }
.ac-table .is-end { text-align: right; }
.ac-table .is-center { text-align: center; }
.ac-table .is-numeric { font-family: var(--font-mono); font-variant-numeric: tabular-nums; font-size: 14px; }
.ac-table .is-wrap { white-space: normal; min-width: 160px; }
.ac-table .is-sticky { position: sticky; z-index: var(--z-sticky-col); }
.ac-table thead th.is-sticky { z-index: var(--z-sticky-corner); }
.ac-table__scroll.is-scrolled-x .is-sticky-edge { box-shadow: var(--sticky-edge); }
.ac-table__scroll.is-scrolled-y thead th { box-shadow: var(--header-edge); }
.ac-table__scroll.is-scrolled-y.is-scrolled-x thead th.is-sticky-edge { box-shadow: var(--header-edge), var(--sticky-edge); }
.ac-td-select { width: 48px; padding: 0 4px !important; text-align: center !important; }
.ac-table--compact .ac-cb { width: 32px; height: 32px; }
.ac-td-empty { color: var(--outline); }
.ac-table__empty { height: 120px !important; text-align: center !important; color: var(--on-surface-variant); }
.ac-table__footer { display: flex; align-items: center; gap: var(--space-2); min-height: 52px; padding: 4px 8px 4px 16px; box-sizing: border-box; border-top: 1px solid var(--table-grid); color: var(--on-surface-variant); font-size: 14px; }

.ac-th__sort { display: inline-flex; align-items: center; gap: var(--space-1); max-width: 100%; margin: 0 -4px; padding: 4px; border: 0; border-radius: var(--radius-xs); background: transparent; color: inherit; font: inherit; letter-spacing: inherit; cursor: pointer; }
.ac-th__sort:hover { color: var(--on-surface); }
.is-end > .ac-th__sort { flex-direction: row-reverse; }
.ac-th__icon { opacity: var(--disabled-content); transition: opacity .15s; }
.ac-th__sort:hover .ac-th__icon { opacity: 1; }
th.is-sorted { color: var(--on-surface); }
th.is-sorted .ac-th__icon { opacity: 1; color: var(--primary); }

/* ---------- FeatureMatrix ---------- */
.ac-matrix thead th { height: 56px; }
.ac-mx-corner { min-width: 240px; }
.ac-mx-platform { min-width: 140px; }
.ac-mx-platform .ac-platform__name { color: var(--on-surface); }
.ac-matrix .ac-mx-feature { min-width: 240px; max-width: 320px; white-space: normal; padding-top: 6px; padding-bottom: 6px; }
.ac-mx-feature__label { display: block; font-size: 14px; line-height: 22px; color: var(--on-surface); }
.ac-mx-feature__hint { display: block; font-size: 14px; line-height: 18px; letter-spacing: .4px; color: var(--on-surface-variant); }
.ac-matrix tbody tr.ac-mx-group > th { height: 40px; padding: 0; background: var(--surface-container); border-bottom-color: var(--table-grid-strong); }
.ac-mx-group button { position: sticky; left: 0; display: inline-flex; align-items: center; gap: var(--space-2); height: 40px; padding: 0 12px 0 8px; border: 0; background: transparent; color: var(--on-surface); font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .1px; cursor: pointer; }
.ac-mx-group button .ac-icon { color: var(--on-surface-variant); }
.ac-mx-group__count { font-family: var(--font-mono); font-size: 14px; font-weight: 400; color: var(--on-surface-variant); }
.ac-matrix tbody tr.ac-mx-group:hover > th { background: var(--surface-container); }
.ac-matrix th.is-highlight { background: var(--primary-container); }
.ac-matrix th.is-highlight .ac-platform__name, .ac-matrix th.is-highlight .ac-platform__meta { color: var(--on-primary-container); }
.ac-matrix tbody td.is-highlight, .ac-matrix tfoot td.is-highlight { background: var(--table-row-selected); }
.ac-matrix tfoot th, .ac-matrix tfoot td { background: var(--table-header); border-top: 1px solid var(--table-grid-strong); border-bottom: 0; }
.ac-mx-mark { display: inline-flex; align-items: center; gap: var(--space-1); vertical-align: middle; }
.ac-mx-mark--yes { color: var(--primary); }
.ac-mx-mark--partial { color: var(--on-surface-variant); }
.ac-mx-mark--addon { color: var(--tertiary); }
.ac-mx-mark--no { color: var(--outline); }
.ac-mx-mark > span { color: var(--on-surface); font-size: 14px; }
.ac-mx-note { color: var(--on-surface-variant) !important; }
.ac-mx-text { font-size: 14px; line-height: 18px; color: var(--on-surface); }
.ac-mx-legend { display: flex; flex-wrap: wrap; gap: var(--space-4); padding: 10px 16px; border-top: 1px solid var(--table-grid); background: var(--table-row); }

/* ---------- Pagination ---------- */
.ac-pager { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: var(--space-2) var(--space-6); margin-left: auto; color: var(--on-surface-variant); font-size: 14px; line-height: 18px; }
.ac-pager__size { display: inline-flex; align-items: center; gap: var(--space-2); }
.ac-select { position: relative; display: inline-flex; align-items: center; }
.ac-select select { appearance: none; -webkit-appearance: none; height: 32px; padding: 0 26px 0 10px; border: 0; border-radius: var(--radius-xs); background: transparent; color: var(--on-surface); font-family: var(--font-mono); font-size: 14px; cursor: pointer; }
.ac-select select:hover { background: var(--surface-container-high); }
.ac-select .ac-icon { position: absolute; right: 4px; pointer-events: none; color: var(--on-surface-variant); }
.ac-select option { background: var(--surface-container-high); color: var(--on-surface); }
.ac-pager__range { font-family: var(--font-mono); font-variant-numeric: tabular-nums; color: var(--on-surface); }
.ac-pager__nav { display: inline-flex; gap: 0; }

/* ---------- Tabs ---------- */
.ac-tabs { display: flex; overflow-x: auto; border-bottom: 1px solid var(--outline-variant); scrollbar-width: none; }
.ac-tab { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); height: var(--control-l); padding: 0 16px; border: 0; background: transparent; color: var(--on-surface-variant); font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .1px; cursor: pointer; white-space: nowrap; }
.ac-tab.is-selected { color: var(--primary); }
.ac-tab:focus-visible { outline-offset: -2px; }
.ac-tab__count { min-width: 20px; padding: 0 6px; box-sizing: border-box; border-radius: var(--radius-full); background: var(--surface-container-highest); color: var(--on-surface-variant); font-family: var(--font-mono); font-size: 14px; line-height: 20px; font-weight: 500; }
.ac-tab.is-selected .ac-tab__count { background: var(--primary-container); color: var(--on-primary-container); }
.ac-tab__indicator { position: absolute; left: 12px; right: 12px; bottom: 0; height: 3px; border-radius: 3px 3px 0 0; background: var(--primary); opacity: 0; }
.ac-tab.is-selected .ac-tab__indicator { opacity: 1; }

/* ---------- FacetGroup ---------- */
.ac-facet { border-bottom: 1px solid var(--outline-variant); color: var(--on-surface); }
.ac-facet__head { display: flex; align-items: center; gap: var(--space-2); width: 100%; height: var(--control-l); padding: 0 8px 0 12px; border: 0; border-radius: var(--radius-s); background: transparent; color: inherit; font: inherit; font-size: 15px; font-weight: 500; letter-spacing: .1px; text-align: left; cursor: pointer; }
.ac-facet__title { flex: 1; }
.ac-facet__head .ac-icon { color: var(--on-surface-variant); }
.ac-facet__badge { min-width: 20px; padding: 0 6px; box-sizing: border-box; border-radius: var(--radius-full); background: var(--primary); color: var(--on-primary); font-family: var(--font-mono); font-size: 14px; line-height: 20px; text-align: center; }
.ac-facet__body { display: flex; flex-direction: column; padding: 0 0 8px; }
.ac-facet__opt { display: flex; align-items: center; min-height: 36px; padding-right: 12px; border-radius: var(--radius-s); cursor: pointer; font-size: 14px; color: var(--on-surface); }
.ac-facet__opt .ac-cb { width: 36px; height: 36px; }
.ac-facet__opt .ac-cb::before { display: none; }
.ac-facet__opt.is-disabled { opacity: var(--disabled-content); cursor: not-allowed; }
.ac-facet__label { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ac-facet__count { font-family: var(--font-mono); font-size: 14px; color: var(--on-surface-variant); font-variant-numeric: tabular-nums; }
.ac-facet__more { align-self: flex-start; margin: 4px 0 0 4px; height: 32px; padding: 0 12px; border: 0; border-radius: var(--radius-full); background: transparent; color: var(--primary); font: inherit; font-size: 14px; font-weight: 500; cursor: pointer; }

/* ---------- TopAppBar ---------- */
.ac-appbar { display: flex; align-items: center; gap: var(--space-4); height: var(--topbar-h); padding: 0 12px 0 16px; box-sizing: border-box; background: var(--surface-container); border-bottom: 1px solid var(--outline-variant); color: var(--on-surface); }
.ac-appbar__brand { font-size: 22px; line-height: 28px; font-weight: 600; letter-spacing: -.2px; color: var(--on-surface); white-space: nowrap; }
.ac-appbar__nav { display: flex; gap: var(--space-1); margin-left: var(--space-4); }
.ac-appbar__link { display: inline-flex; align-items: center; height: var(--control-m); padding: 0 16px; border-radius: var(--radius-full); color: var(--on-surface-variant); font-size: 15px; font-weight: 500; letter-spacing: .1px; text-decoration: none; white-space: nowrap; }
.ac-appbar__link.is-active { background: var(--secondary-container); color: var(--on-secondary-container); }
.ac-appbar__spacer { flex: 1; }
.ac-appbar__actions { display: flex; align-items: center; gap: var(--space-1); }
