/* Community-owned FluentCommunity geometry, surfaces, menu states, and semantic buttons. */
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(button,a.el-button,[data-snapweb-control=button],.snapweb-button):not(.is-circle):not(.is-round):not([role=switch]):not([data-snapweb-control=icon]):not(.snapweb-cookies-icon-button):not([data-snapweb-radius=preserve]):not([class*=badge]):not([class*=chip]):not([class*=tag]):not([class*=avatar]):not([class*=reaction]){border-radius:var(--snapweb-community-button-radius,var(--el-border-radius-base,4px))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where([data-snapweb-control=icon],.snapweb-cookies-icon-button):not(.is-circle):not([data-snapweb-radius=preserve]){border-radius:var(--snapweb-community-icon-button-radius,var(--el-border-radius-small,2px))!important}

/* Native navigation: sidebar spaces, top/object menus, profile/dropdown menus, and mobile menu. */
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.spaces .space_contents ul li a,.fcom_top_menu ul.top_menu_items li a,.object_menu ul li a,.fcom_user_context_menu_items .fcom_user_menu_item,.fcom_user_context_menu_items .fcom_profile_sub_menu li,.fcom_mobile_menu .focm_menu_item){border-radius:var(--snapweb-community-menu-radius,8px)!important;color:var(--snapweb-community-menu-text,var(--fcom-menu-text,rgb(84,88,97)))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.spaces .space_contents ul li a,.fcom_top_menu ul.top_menu_items li a,.object_menu ul li a,.fcom_user_context_menu_items .fcom_user_menu_item,.fcom_user_context_menu_items .fcom_profile_sub_menu li,.fcom_mobile_menu .focm_menu_item):hover{background:var(--snapweb-community-menu-hover-background,var(--fcom-menu-hover-bg,rgba(0,0,0,.04)))!important;color:var(--snapweb-community-menu-hover-text,var(--fcom-menu-hover-text,var(--fcom-menu-text,rgb(84,88,97))))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.spaces .space_contents ul li a,.fcom_top_menu ul.top_menu_items li a,.object_menu ul li a,.fcom_user_context_menu_items .fcom_user_menu_item,.fcom_user_context_menu_items .fcom_profile_sub_menu li,.fcom_mobile_menu .focm_menu_item):is(.router-link-active,.router-link-exact-active,.is-active,.active,[aria-current=page]),:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.spaces .space_contents ul li.active>a,.fcom_top_menu ul.top_menu_items li.active>a,.object_menu ul li.active>a,.fcom_user_context_menu_items .fcom_profile_sub_menu li.active){background:var(--snapweb-community-menu-active-background,var(--fcom-menu-active-bg,rgba(0,0,0,.07)))!important;color:var(--snapweb-community-menu-active-text,var(--fcom-menu-active-text,var(--fcom-primary-text,#303133)))!important}

/* Shared portal surfaces; addons can consume the dedicated cookies override. */
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.el-dialog,.el-message-box,.el-popover,.el-popper,.el-dropdown-menu,[data-snapweb-surface]){border-radius:var(--snapweb-community-surface-radius,var(--el-border-radius-base,4px))!important}
.snapweb-cookies-panel{border-radius:var(--snapweb-community-cookies-panel-radius,var(--snapweb-community-surface-radius,14px))!important}
.snapweb-cookies-dialog.is-managing .snapweb-cookies-panel{border-radius:var(--snapweb-community-cookies-expanded-panel-radius,min(var(--snapweb-community-cookies-panel-radius,var(--snapweb-community-surface-radius,14px)),24px))!important}

/* Native inputs, textareas, selects, and Element form wrappers. */
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]):not([type=file]),textarea,select,.el-input__wrapper,.el-select__wrapper,.el-textarea__inner){border-radius:var(--snapweb-community-field-radius,var(--el-border-radius-base,4px))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]):not([type=file]),textarea,select,.el-input__wrapper,.el-select__wrapper,.el-textarea__inner){background-color:var(--snapweb-community-field-background,var(--el-fill-color-blank,#fff))!important;color:var(--snapweb-community-field-text,var(--el-text-color-regular,#303133))!important;border-color:var(--snapweb-community-field-border,var(--el-border-color,#dcdfe6))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.el-input__wrapper,.el-select__wrapper){box-shadow:0 0 0 1px var(--snapweb-community-field-border,var(--el-border-color,#dcdfe6))!important}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(input,textarea)::placeholder{color:var(--snapweb-community-field-placeholder,var(--el-text-color-placeholder,#a8abb2))!important;opacity:1}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]):not([type=hidden]):not([type=button]):not([type=submit]):not([type=reset]):not([type=image]):not([type=file]),textarea,select,.el-input__wrapper,.el-select__wrapper,.el-textarea__inner):focus,:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) :where(.el-input.is-focus .el-input__wrapper,.el-select__wrapper.is-focused){border-color:var(--snapweb-community-field-focus-border,var(--el-color-primary,#545861))!important;box-shadow:0 0 0 2px var(--snapweb-community-field-focus-ring,var(--el-color-primary-light-8,#f0f3f5))!important;outline:none!important}

:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role=secondary]{--snapweb-community-role-background:var(--snapweb-community-secondary-background);--snapweb-community-role-hover-background:var(--snapweb-community-secondary-hover-background);--snapweb-community-role-text:var(--snapweb-community-secondary-text);--snapweb-community-role-border:var(--snapweb-community-secondary-border);--snapweb-community-role-border-width:var(--snapweb-community-secondary-border-width);--snapweb-community-role-font-weight:var(--snapweb-community-secondary-font-weight);--snapweb-community-role-background-size:var(--snapweb-community-secondary-background-size);--snapweb-community-role-animation:var(--snapweb-community-secondary-animation);--snapweb-community-role-shimmer-opacity:var(--snapweb-community-secondary-shimmer-opacity);--snapweb-community-role-shadow:var(--snapweb-community-secondary-shadow);--snapweb-community-role-hover-transform:var(--snapweb-community-secondary-hover-transform)}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role=primary]{--snapweb-community-role-background:var(--snapweb-community-primary-background);--snapweb-community-role-hover-background:var(--snapweb-community-primary-hover-background);--snapweb-community-role-text:var(--snapweb-community-primary-text);--snapweb-community-role-border:var(--snapweb-community-primary-border);--snapweb-community-role-border-width:var(--snapweb-community-primary-border-width);--snapweb-community-role-font-weight:var(--snapweb-community-primary-font-weight);--snapweb-community-role-background-size:var(--snapweb-community-primary-background-size);--snapweb-community-role-animation:var(--snapweb-community-primary-animation);--snapweb-community-role-shimmer-opacity:var(--snapweb-community-primary-shimmer-opacity);--snapweb-community-role-shadow:var(--snapweb-community-primary-shadow);--snapweb-community-role-hover-transform:var(--snapweb-community-primary-hover-transform)}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role=featured]{--snapweb-community-role-background:var(--snapweb-community-featured-background);--snapweb-community-role-hover-background:var(--snapweb-community-featured-hover-background);--snapweb-community-role-text:var(--snapweb-community-featured-text);--snapweb-community-role-border:var(--snapweb-community-featured-border);--snapweb-community-role-border-width:var(--snapweb-community-featured-border-width);--snapweb-community-role-font-weight:var(--snapweb-community-featured-font-weight);--snapweb-community-role-background-size:var(--snapweb-community-featured-background-size);--snapweb-community-role-animation:var(--snapweb-community-featured-animation);--snapweb-community-role-shimmer-opacity:var(--snapweb-community-featured-shimmer-opacity);--snapweb-community-role-shadow:var(--snapweb-community-featured-shadow);--snapweb-community-role-hover-shadow:var(--snapweb-community-featured-hover-shadow);--snapweb-community-role-hover-transform:var(--snapweb-community-featured-hover-transform)}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role=attention]{--snapweb-community-role-background:var(--snapweb-community-attention-background);--snapweb-community-role-hover-background:var(--snapweb-community-attention-hover-background);--snapweb-community-role-text:var(--snapweb-community-attention-text);--snapweb-community-role-border:var(--snapweb-community-attention-border);--snapweb-community-role-border-width:var(--snapweb-community-attention-border-width);--snapweb-community-role-font-weight:var(--snapweb-community-attention-font-weight);--snapweb-community-role-background-size:var(--snapweb-community-attention-background-size);--snapweb-community-role-animation:var(--snapweb-community-attention-animation);--snapweb-community-role-shimmer-opacity:var(--snapweb-community-attention-shimmer-opacity);--snapweb-community-role-shadow:var(--snapweb-community-attention-shadow);--snapweb-community-role-hover-shadow:var(--snapweb-community-attention-hover-shadow);--snapweb-community-role-hover-transform:var(--snapweb-community-attention-hover-transform)}

:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon]){position:relative;isolation:isolate;overflow:hidden;border:var(--snapweb-community-role-border-width,1px) solid var(--snapweb-community-role-border,transparent)!important;background:var(--snapweb-community-role-background)!important;background-size:var(--snapweb-community-role-background-size,100% 100%)!important;color:var(--snapweb-community-role-text)!important;font-weight:var(--snapweb-community-role-font-weight,600)!important;box-shadow:var(--snapweb-community-role-shadow,none)!important;animation:var(--snapweb-community-role-animation,none)!important;transition:background .2s ease,border-color .2s ease,box-shadow .2s ease,transform .2s ease,color .2s ease}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon])::after{content:"";position:absolute;top:0;left:-150%;width:120%;height:100%;border-radius:inherit;pointer-events:none;background:linear-gradient(120deg,transparent,rgba(255,255,255,.38),transparent);opacity:var(--snapweb-community-role-shimmer-opacity,0);transition:left .6s ease;z-index:1}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon]):hover{background:var(--snapweb-community-role-hover-background)!important;background-size:var(--snapweb-community-role-background-size,100% 100%)!important;box-shadow:var(--snapweb-community-role-hover-shadow,var(--snapweb-community-role-shadow,none))!important;transform:var(--snapweb-community-role-hover-transform,none)}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon]):hover::after{left:150%}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon]):focus-visible{outline:2px solid color-mix(in srgb,var(--snapweb-community-role-text,currentColor) 55%,transparent)!important;outline-offset:2px}
:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-community-fcom-search-context,body.snapweb-has-fluentcommunity-wrapper,.fcom_wrap,.fluent_com) [data-snapweb-button-role]:not([data-snapweb-control=icon]):is(:disabled,[aria-disabled=true]){animation-play-state:paused!important;transform:none!important;opacity:.62}

@keyframes snapwebCommunityGradientFlow{0%{background-position:0 50%}50%{background-position:100% 50%}100%{background-position:0 50%}}
@keyframes snapwebCommunityGradientReverse{0%{background-position:100% 50%}50%{background-position:0 50%}100%{background-position:100% 50%}}
@keyframes snapwebCommunityButtonPulse{0%,100%{background-position:0 50%;filter:saturate(1)}50%{background-position:100% 50%;filter:saturate(1.2) brightness(1.06)}}
@keyframes snapwebCommunityButtonBreathe{0%,100%{background-position:0 50%;filter:brightness(1)}50%{background-position:100% 50%;filter:brightness(1.09)}}
@media(prefers-reduced-motion:reduce){:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]{animation:none!important;transition:none!important;transform:none!important}:is(body.snapweb-context-fcom-native,body.snapweb-fcom-native-shell,body.snapweb-has-fluentcommunity-wrapper,body.snapweb-community-fcom-search-context,.fcom_wrap,.fluent_com) [data-snapweb-button-role]::after{display:none!important}}
