/* Shared component roles: geometry never depends on data-theme.
   Legacy layouts/media keep their own grid and sizing; state paint is semantic. */
:root{--ed-control-sm:42px;--ed-control-md:48px;--ed-radius-control:10px;--ed-radius-menu:12px;--ed-radius-card:16px;--ed-selected-bg:color-mix(in srgb,var(--ed-accent) 12%,var(--ed-surface));--ed-selected-ink:var(--ed-accent)}
/* Language and theme are the same disclosure component, not an OS popup next to a custom menu. */
:root :is(.language-switcher,.theme-switcher){position:relative;font:600 12px/1.3 Manrope,Arial,sans-serif}
:root :is(.language-switcher,.theme-switcher)>summary{display:flex;align-items:center;justify-content:center;gap:6px;height:var(--ed-control-sm);min-height:var(--ed-control-sm);padding:0 10px;border:1px solid var(--ed-border,currentColor);border-radius:var(--ed-radius-control);background:var(--ed-surface)!important;color:var(--ed-text)!important;box-shadow:none;list-style:none;cursor:pointer;white-space:nowrap;box-sizing:border-box;transition:background-color .16s,border-color .16s,color .16s}
:root :is(.language-switcher,.theme-switcher)>summary::-webkit-details-marker{display:none}
:root :is(.language-switcher,.theme-switcher)>summary svg{width:16px;height:16px;flex:none}
:root :is(.language-switcher,.theme-switcher)>summary:after{content:'';display:block;flex:none;width:5px;height:5px;margin-top:-3px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(45deg)}
:root :is(.language-switcher,.theme-switcher)[open]>summary:after{transform:rotate(225deg);margin-top:3px}
:root :is(.language-switcher,.theme-switcher)>summary:hover,:root :is(.language-switcher,.theme-switcher)[open]>summary{background:var(--ed-hover)!important;border-color:var(--ed-accent)!important}
:root .theme-switcher>summary{width:102px;justify-content:flex-start}
:root .theme-switcher>summary:after{margin-left:auto}
:root .theme-switcher__label{min-width:0;overflow:hidden;text-overflow:ellipsis}
:root .theme-control--enhanced:before{display:none}
:root .theme-control--enhanced select{position:absolute;width:1px!important;height:1px!important;min-height:0!important;opacity:0;clip-path:inset(50%);padding:0;border:0;margin:0;pointer-events:none}
:root :is(.language-switcher__menu,.theme-switcher__menu){position:absolute;top:calc(100% + 8px);right:0;left:auto;width:max-content;min-width:176px;max-width:calc(100vw - 24px);max-height:calc(100dvh - 100px);overflow:auto;padding:6px;display:flex;flex-direction:column;gap:2px;border:1px solid var(--ed-border,currentColor);border-radius:var(--ed-radius-menu);background:var(--ed-surface)!important;color:var(--ed-text)!important;box-shadow:var(--ed-elevated-shadow)!important;z-index:80}
:root :is(.language-switcher__menu a,.theme-switcher__menu button){position:relative;display:flex;align-items:center;justify-content:flex-start;width:100%;min-height:var(--ed-control-sm);margin:0;padding:10px 34px 10px 12px;border:0;border-radius:8px;background:transparent!important;color:var(--ed-text)!important;font:600 13px/1.4 Manrope,Arial,sans-serif;text-align:left;text-decoration:none;white-space:nowrap;cursor:pointer;box-sizing:border-box}
:root :is(.language-switcher__menu a,.theme-switcher__menu button):hover{background:var(--ed-hover)!important;color:var(--ed-text)!important}
:root :is(.language-switcher__menu a,.theme-switcher__menu button):active{background:var(--ed-selected-bg)!important;color:var(--ed-selected-ink)!important}
:root :is(.language-switcher__menu a[aria-current=page],.theme-switcher__menu button[aria-checked=true]){background:var(--ed-selected-bg)!important;color:var(--ed-selected-ink)!important}
:root :is(.language-switcher__menu a[aria-current=page],.theme-switcher__menu button[aria-checked=true]):after{content:'✓';position:absolute;right:12px;font-size:13px;line-height:1}
:root :is(.language-switcher__menu a,.theme-switcher__menu button):focus-visible{outline-offset:-3px!important}
@media(max-width:480px){:root .language-switcher__menu{left:0;right:auto}:root .theme-switcher>summary{width:89px;padding:0 8px;gap:4px;font-size:11px}:root :is(.language-switcher,.theme-switcher)>summary svg{width:14px;height:14px}:root .language-switcher>summary{padding:0 8px;gap:4px;font-size:11px}}
@media(max-width:359px){:root .theme-switcher>summary{width:83px}:root .theme-switcher>summary svg{display:none}}
/* Compact actions vs form actions; neither role changes with theme. */
:root :is(.catalog-filters button,.doc-filters button,.equipment-compare-add,.equipment-comparison button,.comparison-tray button,.can-quote,#can-more,.doc-actions a,.privacy-actions button,.privacy-map button){min-height:var(--ed-control-sm);border-radius:var(--ed-radius-control);border-width:1px;border-style:solid}
:root :is(.quote-form button,.support-form button,.dc-console button,.dc-dialog-head button,.dc-tabs button){min-height:var(--ed-control-md);padding:11px 16px;line-height:24px;border-width:1px;border-style:solid;border-radius:var(--ed-radius-control)}
:root :is(.catalog-filters button,.doc-filters button,.equipment-compare-add,.equipment-comparison button,.doc-actions a,.quote-add,.quote-remove,.dc-console button,.dc-dialog-head button,.dc-tabs button,.privacy-actions button,.privacy-map button){background:var(--ed-surface)!important;color:var(--ed-text)!important;border-color:var(--ed-control-border)!important}
:root :is(.catalog-filters button,.doc-filters button,.equipment-compare-add,.equipment-comparison button,.doc-actions a,.quote-add,.quote-remove,.dc-console button,.dc-dialog-head button,.dc-tabs button,.privacy-actions button,.privacy-map button):hover:not(:disabled){background:var(--ed-hover)!important;border-color:var(--ed-accent)!important}
:root :is(.catalog-filters button[aria-pressed=true],.doc-filters button[aria-pressed=true],.equipment-compare-add[aria-pressed=true],.dc-tabs button[aria-selected=true],.dc-tour-steps button[aria-current=step]){background:var(--ed-primary)!important;color:var(--ed-on-primary)!important;border-color:var(--ed-primary)!important}
:root :is(.catalog-filters button[aria-pressed=true],.doc-filters button[aria-pressed=true],.equipment-compare-add[aria-pressed=true],.dc-tabs button[aria-selected=true]):hover:not(:disabled){background:var(--ed-primary-hover)!important;color:var(--ed-on-primary)!important}
:root :is(.header__quote-link,.product-detail__quote,.equipment-hero__cta:not(.equipment-hero__cta--secondary),.dc-primary,.can-quote,#can-more,.quote-form button[type=submit],.support-form button[type=submit],.doc-actions a:last-child,#comparison-open){background:var(--ed-primary)!important;color:var(--ed-on-primary)!important;border-color:var(--ed-primary)!important}
:root :is(.header__quote-link,.product-detail__quote,.dc-primary,.can-quote,#can-more,.quote-form button[type=submit],.support-form button[type=submit],.doc-actions a:last-child,#comparison-open):hover:not(:disabled){background:var(--ed-primary-hover)!important;color:var(--ed-on-primary)!important;border-color:var(--ed-primary-hover)!important}
:root :is(button,input,select,textarea):disabled{cursor:not-allowed;opacity:.55}
/* Text-entry controls are one role; checkbox/radio/file retain native semantics. */
:root :is(.quote-form,.support-form,.support-search,.doc-search-wrap,.kc-filters,.dc-tools,.equipment-task,.can-filters,.wiki-search) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea){min-height:var(--ed-control-md);border:1px solid var(--ed-control-border,currentColor)!important;border-radius:var(--ed-radius-control);background-color:var(--ed-surface)!important;color:var(--ed-text)!important;box-sizing:border-box;padding:11px 12px;line-height:24px;font:400 16px/24px Manrope,Arial,sans-serif}
:root :is(.quote-form,.support-form,.support-search,.doc-search-wrap,.kc-filters,.dc-tools,.equipment-task,.can-filters,.wiki-search) :is(input:not([type=checkbox]):not([type=radio]):not([type=file]),select,textarea):hover:not(:disabled){border-color:var(--ed-accent)!important}
:root :is(input,select,textarea):is([aria-invalid=true],:user-invalid){border-color:var(--ed-error)!important}
:root :is(.quote-form,.support-form) textarea{min-height:132px;resize:vertical}
:root :is(input[type=checkbox],input[type=radio]){accent-color:var(--ed-primary)}
/* Surface families: cards, accordions and dialogs share paint/elevation; layouts stay local. */
:root :is(.stock-card,.kc-card,.kc-device,.support-card,.support-doc,.doc-device,.dc-feature-grid article,.work-card){border-radius:var(--ed-radius-card)}
:root :is(.quote-form,.dc-console,#dc-dialog,.privacy-dialog){border-radius:20px}
:root :is(.stock-card,.kc-card,.kc-device,.support-card,.support-doc,.doc-device,.dc-feature-grid article,.quote-form,.dc-console,.work-card){background-color:var(--ed-surface)!important;color:var(--ed-text)!important;border-color:var(--ed-border)!important;box-shadow:var(--ed-shadow)!important}
:root :is(.kc-card,.support-card,.stock-card,.dc-feature-grid article):hover{border-color:var(--ed-accent)!important;box-shadow:var(--ed-shadow-hover)!important}
:root :is(.doc-device summary,.dc-panel summary):hover{background-color:var(--ed-hover)!important;color:var(--ed-text)!important}
:root :is(.doc-device[open],.dc-panel details[open]){border-color:var(--ed-accent)!important}
:root :is(.doc-device__chevron,.doc-device__icon,.support-card__icon){color:var(--ed-accent)!important}
:root :is(.doc-device__icon,.support-card__icon){background:var(--ed-selected-bg)!important}
:root :is(.comparison-table-wrap,.can-table-wrap,.dc-table,.wiki-table){border-color:var(--ed-border)!important}
:root :is(.comparison-table-wrap,.dc-table,.wiki-content,.product-detail__specs) :is(th,td){border-color:var(--ed-border)!important;color:var(--ed-text)!important}
:root :is(.comparison-table-wrap,.dc-table,.wiki-content) thead th{background:var(--ed-surface-alt)!important;color:var(--ed-text)!important}
:root .dc-table tr:hover{background:var(--ed-hover)!important}
:root .dc-table tr.is-selected{background:var(--ed-selected-bg)!important;box-shadow:inset 3px 0 var(--ed-accent)!important}
:root :is(#dc-dialog,.privacy-dialog,[role=dialog],.comparison-tray){background:var(--ed-surface)!important;color:var(--ed-text)!important;border-color:var(--ed-border)!important;box-shadow:var(--ed-elevated-shadow)!important}
:root :is(.dc-dialog-head,.dc-dialog-notice){background:var(--ed-surface-alt)!important;color:var(--ed-text)!important;border-color:var(--ed-border)!important}
:root :is(#dc-dialog,.privacy-dialog)::backdrop{background:var(--ed-backdrop)!important}
:root [role=tooltip]{background:var(--ed-surface)!important;color:var(--ed-text)!important;border-color:var(--ed-border)!important;box-shadow:var(--ed-elevated-shadow)!important}
:root .legal-content{color:var(--ed-text)}
:root .legal-content a{color:var(--ed-accent)}
:root .legal-content a:hover{background-color:var(--ed-hover);text-decoration-thickness:2px}
:root .site-footer :is(a,button):hover{color:var(--ed-accent)!important}
:root :is(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:2px solid var(--ed-focus)!important;outline-offset:3px}
@media(prefers-reduced-motion:reduce){:root :is(.language-switcher,.theme-switcher) *{transition:none!important}}
