| /* The default-connection selected wash rides the Item `selected` prop |
| (data-selected → --state-selected-bg), one selected-row implementation |
| across the app. */ |
| |
| .connectionRow[data-disabled="true"] { |
| opacity: var(--opacity-muted); |
| } |
| |
| /* Logo plates match the enabled list (compact 32px) so the page reads as |
| * one column of provider rows top to bottom. */ |
| .providerCatalogRow .providerLogo { |
| width: 32px; |
| height: 32px; |
| /* No radius here: --radius-plate is a ratio, so the size change alone |
| keeps this plate the same shape as the 44px one. Restating a fixed |
| px would re-introduce the size drift PR-UI-13 removed. */ |
| } |
| |
| /* Gated providers carry a real trailing state badge in ItemActions (not an |
| * absolute ::after), tinted by the gate reason. The row itself is a plain |
| * div Item with no render prop, so it is inert — the provider-surface gate |
| * never lets a gated provider read as clickable. The state badge is now the |
| * Astryx Badge; no bespoke state tint rules remain here. */ |
| |
| /* PR-UI-13 (@yuejing 2026-05-22): ProviderLogo size normalization. |
| * |
| * Audit §3.8 — "OnboardingHero (compact) 跟 ProvidersPanel (default) |
| * 大小不同,底图比例感觉不统一". Root cause: the compact override |
| * only resized width/height/border-radius, but inherited the default |
| * `0 8px 16px` drop shadow — at 32px the shadow extends ~25% beyond |
| * the icon, visually drifting from the default size. Border-radius |
| * ratios also drifted (29.5% default vs 31.25% compact vs 33% micro). |
| * |
| * Fix: pin a single ~27-28% border-radius ratio across all three |
| * sizes (md / sm / xs) and scale the drop shadow proportionally. |
| * Inner SVG keeps the existing 72% ratio so brand marks read the |
| * same at every size. |
| * |
| * 2026-07-27: that ratio is now carried by --radius-plate (27%), not |
| * by a per-size px value. The tier convergence had rewritten both |
| * sizes to --radius-surface, which silently reverted this fix — |
| * 8px reads 18.2% at 44px and 25% at 32px, the exact drift the audit |
| * above was raising. A percentage is scale-invariant, so the compact |
| * override no longer needs to restate the radius at all. |
| */ |
| /* Neutral, theme-aware plate. Provider identity now comes from the |
| official brand mark (provider-brand-marks.tsx), so the plate stays a |
| quiet foreground wash in both light and dark — no per-provider tints. */ |
| .providerLogo { |
| width: 44px; |
| height: 44px; |
| display: grid; |
| place-items: center; |
| border-radius: var(--radius-plate); |
| background: var(--foreground-5); |
| color: var(--foreground); |
| box-shadow: inset 0 0 0 1px oklch(from var(--foreground) l c h / 0.06); |
| } |
| |
| .providerLogo[data-compact="true"] { |
| width: 32px; |
| height: 32px; |
| } |
| |
| /* Color marks keep their own fill. Inline monochrome SVGs inherit the plate |
| color; external monochrome assets use a mask because `<img>` documents do |
| not inherit `currentColor`. */ |
| .providerLogo svg, |
| .providerLogo img, |
| .providerLogo .providerAssetMask { |
| width: 64%; |
| height: 64%; |
| display: block; |
| } |
| |
| .providerAssetMask { |
| background: currentColor; |
| mask-position: center; |
| mask-repeat: no-repeat; |
| mask-size: contain; |
| } |