:root{--c-accent:#8E1B3A;--c-accent-pressed:#741530;--c-accent-tint:rgba(142,27,58,0.10);--c-bg:#F2F2F7;--c-card:#FFFFFF;--c-text-1:#000000;--c-text-2:#636366;--c-separator:rgba(60,60,67,0.18);--f-family:Inter,system-ui,"Helvetica Neue",Arial,sans-serif;--f-size-caption:12px;--f-size-footnote:13px;--f-size-body:15px;--f-size-callout:17px;--f-size-section:22px;--f-size-detail-title:28px;--f-size-page-title:34px;--f-weight-regular:400;--f-weight-semibold:600;--f-weight-bold:700;--f-tracking-title:-0.022em;--sp-gutter:16px;--sp-xs:4px;--sp-s:8px;--sp-m:12px;--sp-l:16px;--sp-xl:24px;--sp-xxl:32px;--r-chip:999px;--r-control:10px;--r-card:12px;--r-tile:24px;--sz-logo-row:48px;--sz-logo-detail:112px;--sz-tap-min:44px;--sz-control-h:40px;--m-fast:150ms;--m-base:200ms;--m-slow:300ms;--m-ease-enter:cubic-bezier(0.2,0.8,0.2,1);--m-ease-exit:cubic-bezier(0.4,0,1,1);--m-press-scale:0.97;--m-ease:var(--m-ease-enter);--m-exit:var(--m-ease-exit);--text-2:var(--c-text-2);--font:var(--f-family)}
@media (prefers-color-scheme:dark){:root:where(:not([data-mode="light"])){--c-accent:#E8768F;--c-accent-tint:rgba(232,118,143,0.16);--c-bg:#000000;--c-card:#1C1C1E;--c-text-1:#FFFFFF;--c-text-2:rgba(235,235,245,0.62);--c-separator:rgba(84,84,88,0.6)}}
:root:where([data-mode="dark"]){--c-accent:#E8768F;--c-accent-tint:rgba(232,118,143,0.16);--c-bg:#000000;--c-card:#1C1C1E;--c-text-1:#FFFFFF;--c-text-2:rgba(235,235,245,0.62);--c-separator:rgba(84,84,88,0.6)}
/* AIcensus audit fixes (AUDIT-FIX-NOTES.md, Nov 3 2026). Linked last on every page. The F prefix (ten ids) (see auditfix.py).
   Values come from the tokens (tokens.json -> :root variables above this block). Each block names its audit module. */

/* AIC-GLB-04: Inter first on every device (system fonts only as fallback) */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body, html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(button,input,select,textarea){font-family:var(--f-family)!important}

/* AIC-GLB-01: one secondary-text colour that passes 4.5:1 (light); dark keeps rgba(235,235,245,.62) */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.hd-d,.hd-c,.hp-fc-t,time,dt){color:var(--c-text-2)!important}

/* AIC-GLB-02: the sticky header is the page colour with a hairline, so scrolled text does not show through */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body header.sh{background:var(--c-bg)!important;-webkit-backdrop-filter:none!important;backdrop-filter:none!important;box-shadow:0 .5px 0 var(--c-separator)!important}
@media (prefers-color-scheme:dark){html:where(:not([data-mode="light"])):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body header.sh{background:var(--c-bg)!important;box-shadow:0 .5px 0 var(--c-separator)!important}}
html:where([data-mode="dark"]):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body header.sh{background:var(--c-bg)!important;box-shadow:0 .5px 0 var(--c-separator)!important}

/* AIC-GLB-06: one page-change animation: the old page fades out (150 ms), then the new one fades in (200 ms). No overlap, no blur. */
html:not(#f1)::view-transition-old(root){animation:var(--m-fast) var(--m-exit) both fxOut!important}
html:not(#f1)::view-transition-new(root){animation:var(--m-base) var(--m-ease) var(--m-fast) both fxIn!important}
@keyframes fxOut{to{opacity:0}}@keyframes fxIn{from{opacity:0}}

/* AIC-GLB-10 + AIC-DIR-10: one motion timing for controls; a press state on chips, switchers and buttons */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.hd-chip,.fm-btn,.vz-vw a,.dp-sw a,.hp-sw a,[data-to],.sh-nav a,.sh-theme,.vz-fb,.vz-chip,.hp-sort,.ag-act,.ag-go){transition:background-color var(--m-fast) var(--m-ease),color var(--m-fast) var(--m-ease),box-shadow var(--m-fast) var(--m-ease),transform var(--m-fast) var(--m-ease)!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.hd-chip,.fm-btn,.vz-vw a,.dp-sw a,[data-to],.sh-theme,.vz-fb,.ag-act,.ag-go):active{transform:scale(var(--m-press-scale))!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .sh-drawer{transition:grid-template-rows var(--m-base) var(--m-ease),opacity var(--m-base) var(--m-ease)!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .vz-flt{transition-duration:var(--m-slow)!important;transition-timing-function:var(--m-ease)!important}
@media (prefers-reduced-motion:reduce){
 html:not(#f1)::view-transition-old(root),html:not(#f1)::view-transition-new(root){animation:none!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.hd-chip,.fm-btn,.vz-vw a,.dp-sw a,[data-to],.sh-theme,.vz-fb,.ag-act,.ag-go):active{transform:none!important}
}

/* AIC-GLB-07: one page-title style (34 px, 700, -0.022em); detail pages keep 28 px */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main :is(h1.value,h1.ptitle,.st-h1,.bl-h1,.bx-h1,h1.hero-t,h1){letter-spacing:var(--f-tracking-title)!important}
@media (min-width:1000px){html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main :is(h1.value,h1.ptitle,h1.bx-lt,h1.bx-title){font-size:var(--f-size-page-title)!important;font-weight:700!important;line-height:1.2!important}}

/* ---------- /directory/ ---------- */
/* AIC-DIR-01: no price chip row (the rail / Filters sheet has the price filter); the Filters button sits in the Filter · Sort row;
   one line per Featured card; the intro paragraph is off on phones */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .vz-pc .vz-chip{display:none!important}
@media (max-width:600px){html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .hp-hero .hp-intro{display:none!important}html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .hp-fc-t{-webkit-line-clamp:1!important;line-clamp:1!important}}

/* AIC-DIR-05: department switcher: each segment as wide as its label + 12 px each side, 40 px high */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .dp-sw{display:flex!important;height:auto!important;min-height:40px!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .hd-bar{height:auto!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .dp-sw>a{flex:1 1 auto!important;padding:0 12px!important;min-height:40px!important;width:auto!important}

/* AIC-DIR-03 / AIC-DIR-08: AI apps + models under the agent rows; the 0-result line under the search box */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .xs-st{margin:8px 0 0!important;font:500 14px/1.4 var(--f-family)!important;color:var(--c-accent)!important;text-align:center}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .xs-st:empty{display:none!important}
@media (prefers-color-scheme:dark){html:where(:not([data-mode="light"])):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .xs-st{color:var(--c-accent)!important}}
html:where([data-mode="dark"]):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .xs-st{color:var(--c-accent)!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .xs-more{display:block}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .xs-more[hidden]{display:none!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .xs-sec{margin-top:24px}


/* AIC-DIR-01 (cont.): the Filters button (phone / tablet) is the third cell of the Filter · Sort row */
@media (max-width:1099px){
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr{grid-template-columns:minmax(0,1fr) minmax(0,1fr) auto!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>:is(.fm-btn,.fm-sort){min-width:0!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr .fm-sort select{padding-left:54px!important;padding-right:24px!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>.vz-pc{display:flex!important;margin:0!important;padding:0 0 0 8px!important;overflow:visible!important;align-items:stretch}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>.vz-pc .vz-fb{height:44px!important;min-height:44px!important;min-width:44px!important;border-radius:var(--r-card)!important;padding:0 13px!important;font-size:15px!important;position:relative}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>.vz-pc .vz-fb>span{position:absolute!important;width:1px!important;height:1px!important;overflow:hidden!important;clip:rect(0 0 0 0)!important;white-space:nowrap!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>.vz-pc .vz-fb>b{position:absolute;top:4px;right:4px;min-width:16px!important;height:16px!important;line-height:16px!important;font-size:10px!important;padding:0 4px!important}
}
@media (min-width:1100px){html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd .fm-row.vz-fmr>.vz-pc{display:none!important}}

/* AIC-DIR-02: desktop /directory/: Featured (row 1) and the department switcher (row 2) span both columns, as wide as on the other
   three tabs; the filter rail starts in row 3. AIC-DIR-04: the same grid is in place before viz.js adds the rail (no shift on load). */
@media (min-width:1100px){
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz{display:grid!important;grid-template-columns:260px minmax(0,1fr);column-gap:28px;max-width:1200px!important;width:auto!important;margin-left:auto!important;margin-right:auto!important;padding-left:32px!important;padding-right:32px!important;box-sizing:border-box}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz>*{grid-column:2;min-width:0}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz>.hp-feat{grid-column:1 / -1!important;grid-row:1!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz>.hd-bar{grid-column:1 / -1!important;grid-row:2!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz>.vz-flt{grid-column:1!important;grid-row:3 / span 40!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body #hd.vz:not(.vz-on)::before{content:"";grid-column:1;grid-row:3 / span 40;min-height:600px}
}

/* AIC-GLB-05: the hero is the same height on Agents, AI Apps, Models and Power-ups, so Featured and the switcher do not move
   between tabs (the /directory/ hero height) */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.fx-dept .hp-hero{box-sizing:border-box!important;min-height:var(--hero-min)!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body{--hero-min:254px}
@media (min-width:601px){html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body{--hero-min:305px}}

/* ---------- agent pages ---------- */
/* AIC-AGT-02: the bottom bar: Save 50 px, then two equal main buttons, 8 px gap (phone; desktop keeps its side card) */
@media (max-width:999px){
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .ag-dock .ag-cta{display:grid!important;grid-template-columns:50px minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .ag-dock .ag-cta>*{width:auto!important;min-width:0!important;margin:0!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .ag-dock .ag-cta>.ag-cmpq{display:none!important}
}

/* AIC-PWR-01: power-up pages use the agent-page header (112 px logo tile, 28 px title) and, on phones, the same bottom bar
   (two equal buttons: Visit site and the category). Save and Compare stay agent-only (they work on the agent list). */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu .ag-hd{grid-template-columns:112px minmax(0,1fr)!important;align-items:center!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu .ag-lw,html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu #ag-logo{width:112px!important;height:112px!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag #ag-logo.pu-lg{border-radius:25px!important;background:var(--c-card)!important;overflow:hidden}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag #ag-logo.pu-lg img{width:100%!important;height:100%!important;object-fit:contain}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu .ag-name{font-size:var(--f-size-detail-title)!important;line-height:34px!important;letter-spacing:var(--f-tracking-title)!important}
@media (max-width:999px){
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu{padding-bottom:84px!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu .ag-hero .ag-cta{position:fixed!important;left:0;right:0;bottom:0;z-index:5;display:grid!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;gap:8px!important;margin:0!important;padding:10px 16px calc(10px + env(safe-area-inset-bottom))!important;background:var(--c-bg)!important;box-shadow:0 -.5px 0 var(--c-separator)!important}
 html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body main.ag.fx-pu .ag-hero .ag-cta>*{width:auto!important;min-width:0!important;height:50px!important;margin:0!important;justify-content:center}
}

/* ---------- Stats ---------- */
/* AIC-STA-01: dark mode: labels on the light pink bars are black (7.4:1), not white (2.8:1) */
@media (prefers-color-scheme:dark){html:where(:not([data-mode="light"])):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.vz-f1,.vz-f2) span{color:#000!important}}
html:where([data-mode="dark"]):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.vz-f1,.vz-f2) span{color:#000!important}
/* AIC-STA-02: range buttons 32 x 44; platform links get 8 px above and below */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .st .vz-seg button,html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .vz .vz-seg button{min-height:32px!important;min-width:44px!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .vz-hl a{display:inline-block;padding-top:8px!important;padding-bottom:8px!important}

/* AIC-GLB-01 (cont.): section counts in the switcher and the agent country line use the same grey; the current tab's count follows its label */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.dp-sw a,.lp-seg button) b{color:var(--c-text-2)!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.dp-sw a:is(.on,[aria-current]),.lp-seg button[aria-selected="true"]) b{color:inherit!important;opacity:1!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .ag-ctn{color:var(--c-text-2)!important}

/* ---------- Compare ---------- */
/* AIC-CMP-01 (light too): the current page number is white on the accent (it was accent on accent) */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .cxl-nums [aria-current]{color:#fff!important}
/* AIC-CMP-01: dark mode: the current page number is black on the accent */
@media (prefers-color-scheme:dark){html:where(:not([data-mode="light"])):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .cxl-nums [aria-current]{color:#000!important}}
html:where([data-mode="dark"]):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .cxl-nums [aria-current]{color:#000!important}

/* ---------- Blog ---------- */
/* AIC-BLG-01: dark mode: fine print uses the dark secondary text (.62), 4.5:1 or more */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.bx-ck,.bx-cap){color:var(--c-text-2)!important}
@media (prefers-color-scheme:dark){html:where(:not([data-mode="light"])):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.bx-ck,.bx-cap,.bx-pgx){color:var(--c-text-2)!important}}
html:where([data-mode="dark"]):not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body :is(.bx-ck,.bx-cap,.bx-pgx){color:var(--c-text-2)!important}

/* AIC-GLB-09: the version in the footer */
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .sf-ver{color:inherit!important;text-decoration:none!important}
html:not(#f1#f2#f3#f4#f5#f6#f7#f8#f9#f10) body .sf-ver:hover{text-decoration:underline!important}
