/* buttons.css - standard button styling: the .standard family, form submit/reset/button controls, .page_action_button,
   button.small and button.button_danger. Composer buttons are NOT here (they stay in the composer files).
   Oct 14 2026 - moved here from the per-page theme CSS files; each section names its source file. Colors come from catalog tokens. */

/* Pagination, tooltips, action buttons, color swatches (moved from new_base_aesthetics.css) */
/* Shared small square action used by compact edit, delete, and remove controls. */
.sq_action_button {
    position: relative;
    display: inline-grid;
    box-sizing: border-box;
    width: 2.25rem;
    min-width: 2.25rem;
    max-width: 2.25rem;
    height: 2.25rem;
    min-height: 2.25rem;
    max-height: 2.25rem;
    margin: 0;
    padding: max(.15rem, var(--layout-theme-zone-pad, 0px));
    place-items: center;
    justify-self: start;
    color: var(--primary-font-color);
    background: transparent;
    background-image: none;
    border: 0;
    border-radius: var(--radius-none);
    text-align: center;
    text-decoration: none;
    cursor: pointer;
}

/* Shared borderless overflow action for Persona and conversation menus. */
button.persona_action_menu_button {
    background: transparent;
    background-image: none;
    border: 0;
    box-shadow: none;
}

/* Shared images and swatches */
/* Opt-in responsive images for ordinary public pages. Posts, Feed, Composer, avatars, icons, swatches, and... */
/* RETIRED 2026-08-28: no current page opts into the legacy page_image helpers. .page_image { box-sizing:... */

/* Canonical square color swatch. Feature controls may provide their own size through... */
:is([data-color-swatch], .public_color_swatch_input, .theme_color_swatch_input, .messaging_color_swatch_input, .reply_color_swatch_input, [data-color-choice], .composer_background_swatch, .composer_overlay_frame_swatch) {
    box-sizing: border-box;
    width: 2.75rem;
    min-width: 2.75rem;
    max-width: 2.75rem;
    height: 2.75rem;
    min-height: 2.75rem;
    max-height: 2.75rem;
    aspect-ratio: 1 / 1;
    padding: 0;
    overflow: hidden;
    background-color: var(--new-base-aesthetics-rule-background-color);
    border: 2px solid var(--new-base-aesthetics-rule-border-color);
    border-radius: var(--radius-none);
}

:is(.public_color_swatch_input, .theme_color_swatch_input, .messaging_color_swatch_input, .reply_color_swatch_input)::-webkit-color-swatch-wrapper {
    padding: 0;
}

:is(.public_color_swatch_input, .theme_color_swatch_input, .messaging_color_swatch_input, .reply_color_swatch_input)::-webkit-color-swatch,
:is(.public_color_swatch_input, .theme_color_swatch_input, .messaging_color_swatch_input, .reply_color_swatch_input)::-moz-color-swatch {
    border: 0;
    border-radius: var(--radius-none);
}

/* No universal time override is required. */

/* Sept 30 2026 - her report: composer-button tooltips "not styled correctly." Root cause: this was reading... */
.ui_global_tooltip {
    position: fixed;
    z-index: 2147483647;
    box-sizing: border-box;
    width: max-content;
    max-width: min(18rem, calc(100vw - 1rem));
    padding: 0.35rem 0.5rem;
    color: var(--page-card-text);
    background: var(--page-card-background);
    border: var(--border-1) solid var(--page-card-border);
    border-radius: min(var(--radius-large), var(--radius-large));
    box-shadow: var(--shadow-backdrop);
    text-align: center;
    white-space: normal;
    pointer-events: none;}

.ui_global_tooltip[hidden] {
    display: none !important;
}

/* The body-level tooltip replaces legacy generated-content tooltips. */
/* UNUSED - disabled
.ui_tooltips_ready :is(
    .toolbar_tooltip_control:not([data-post-action-count]),
    .post_action_icon:not([data-post-action-count]),
    .save_glyph_button,
    .post_reply_edit_toggle,
    .post_reply_toolbar button[aria-label],
    .composer_toolbar button[aria-label],
    .quick_post_toolbar button[aria-label],
    .message_delete_form button
)::after {
    display: none !important;
}
*/

/* her request: shared pagination (global_includes/pagination). Centred summary above one centred row: first,... */
.pagination_control {
  display: grid;
  gap: .5rem;
  justify-items: center;
  width: 100%;
  margin-block-start: 1rem;
}

.pagination_summary {
  margin: 0;
  text-align: center;
}

.pagination_row {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .35rem;
}

.pagination_button {
  display: inline-grid;
  place-items: center;
  padding: 0;
  color: var(--glyph);
  background: transparent;
  border: 0;
  cursor: pointer;
}

.pagination_button:disabled {
  cursor: default;
  opacity: .4;
}

.pagination_row > input.pagination_input {
  flex: 0 0 auto;
  width: 4.5rem;
  max-width: 4.5rem;
  text-align: center;
}

.pagination_size_row {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: .5rem;
}

.pagination_size_row > select.pagination_size {
  flex: 0 0 auto;
  width: auto;
  max-width: 100%;
}

.pagination_control[aria-busy="true"],
[data-pagination-region][aria-busy="true"] .pagination_control {
  cursor: progress;
}

/* ---- from new_base_aesthetics.css (9 rules) ---- */
:is(.standard, .standard_left, .standard_center, .standard_right, .standard_full) {
  margin-block: max(3px, var(--zone-10)) !important;
}
:is(.standard, .standard_left, .standard_center, .standard_right, .standard_full) {
  --button-radius-shared: var(--radius-large);
}
:is( .standard, .standard_left, .standard_center, .standard_right, .standard_full, form button[type="submit"]:not(.sq_action_button):not(.post_action_icon):not(.post_reply_submit):not(.theme_color_trigger):not(.persona_switcher_select):not(.messaging_chat_option_control):not([data-ui-icon-only="1"]):not(.custom_theme_emergency_restore_button), form button[type="reset"]:not(.sq_action_button):not([data-ui-icon-only="1"]), form button[type="button"].button_danger:not(.sq_action_button), form input[type="submit"], form input[type="button"], form input[type="reset"], form a.button, .page_action_button, .content_action_bar.page_content_top_actions > :is(a, button, input[type="submit"], input[type="button"]), .content_action_bar.page_content_bottom_actions > :is(a, button, input[type="submit"], input[type="button"]) ):not(.post_feed *:not(.standard)):not(.post_card *:not(.standard)):not(.post_composer *:not(.standard)):not(.post_composer_page *:not(.standard)):not(.popup_corner_close):not(:has(.popup_corner_close)) {
  display: inline-flex !important;
  box-sizing: border-box !important;
  flex: 0 0 auto !important;
  width: auto;
  min-width: 3.4375rem;
  /* Oct 13 2026 - her request: every standard button is at least 55px wide (token in css_visual_catalog.css) */
    min-height: 2.25rem !important;
  /* Oct 9 2026 - her report: shop.php Add to Cart buttons stretched tall inside the product card's grid form (a grid/flex item with height:auto stretches to its row). fit-content keeps every standard button at its own default height (min-height + padding) wherever it sits. */
    height: fit-content !important;
  max-width: 100% !important;
  padding: .45rem .75rem !important;
  align-items: center !important;
  justify-content: center !important;
  gap: .4rem !important;
  /* Sept 29 2026 - her instruction: plug the --theme-zone-button-surface-* hot-zone
       tokens into this shared .standard button rule, superseding the
       --person-surface/--person-border colors that were here. The corner/
       border hot zones (--theme-zone-button-top-border-*, --button-*-corner-*, etc)
       are intentionally not wired yet - she said not to worry about those
       for now, just the surface. inner-glow/outer-glow/shadow are all
       still "none" today (inert) but layered here the same way
       header.css's body rule layers --theme-zone-body-surface-inner-glow/-outer-glow/
       -shadow, so real values will take effect once set without another
       code change. */
    color: var(--button-standard-text-color, var(--primary-font-color)) !important; /* Oct 20 2026 #820 - theme catalogs may set it (light-grey: secondary font) */
  -webkit-text-fill-color: currentColor;
  background-color: var(--theme-zone-button-surface-background-color) !important;
  background-image: var(--theme-zone-button-surface-background-image), var(--button-standard-background-image) !important;
  background-position: center !important;
  background-repeat: no-repeat, var(--button-standard-background-repeat, no-repeat) !important;
  background-size: 100% 100% !important;
  box-shadow:
        inset var(--theme-zone-button-surface-inner-glow),
        var(--theme-zone-button-surface-outer-glow),
        var(--theme-zone-button-surface-shadow) !important;
  border: var(--border-1) solid var(--theme-zone-button-surface-border-color) !important;
  border-radius: var(--button-radius-shared, var(--radius-small)) !important;
  text-align: center !important;
  text-decoration: none !important;
  white-space: nowrap !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  cursor: pointer !important;
}
:is(.standard, .standard_left, .standard_center, .standard_right, .standard_full, .page_action_button):not(.popup_corner_close):not(:has(.popup_corner_close)):is(:hover, :focus-visible, :active) {
  /* Oct 20 2026 #820 - hover/active tokens (light-grey: tertiary); fallbacks keep the previous look in themes that do not set them */
  color: var(--button-standard-hover-text-color, var(--popup-button-hover-text)) !important;
  background-color: var(--button-standard-hover-background-color, var(--person-surface)) !important;
  border-color: var(--button-standard-hover-border-color, color-mix(in srgb, var(--primary-accent-color) 20%, transparent)) !important;
}
button.small {
  display: inline-flex !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: max-content !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: .45rem .75rem !important;
  align-items: center !important;
  justify-content: center !important;
  color: var(--color-button-text) !important;
  background-color: var(--person-surface) !important;
  border: var(--border-1) solid var(--person-border) !important;
  border-radius: var(--radius-small) !important;
  text-decoration: none !important;
  white-space: nowrap !important;
}
button.small:is(:hover, :focus-visible) {
  color: var(--popup-button-hover-text) !important;
  background-color: var(--person-surface) !important;
  border-color: color-mix(in srgb, var(--primary-accent-color) 20%, transparent) !important;
}
button.button_danger {
  padding: .31rem !important;
  background-color: var(--color-button-bg) !important;
  border: var(--border-1) solid var(--button-decline-border) !important;
  border-radius: var(--radius-large) !important;
}
:where(:is( .standard, .standard_left, .standard_center, .standard_right, .standard_full, form button[type="submit"]:not(.sq_action_button):not(.post_action_icon):not(.post_reply_submit):not(.theme_color_trigger):not(.persona_switcher_select):not(.messaging_chat_option_control):not([data-ui-icon-only="1"]):not(.custom_theme_emergency_restore_button), form button[type="reset"]:not(.sq_action_button):not([data-ui-icon-only="1"]), form button[type="button"].button_danger:not(.sq_action_button), form input[type="submit"], form input[type="button"], form input[type="reset"], form a.button, .page_action_button, .content_action_bar.page_content_top_actions > :is(a, button, input[type="submit"], input[type="button"]), .content_action_bar.page_content_bottom_actions > :is(a, button, input[type="submit"], input[type="button"]) ):not(.post_feed *:not(.standard)):not(.post_card *:not(.standard)):not(.post_composer *:not(.standard)):not(.post_composer_page *:not(.standard)):not(.popup_corner_close):not(:has(.popup_corner_close))) {
  position: relative;
}
:is( .standard, .standard_left, .standard_center, .standard_right, .standard_full, form button[type="submit"]:not(.sq_action_button):not(.post_action_icon):not(.post_reply_submit):not(.theme_color_trigger):not(.persona_switcher_select):not(.messaging_chat_option_control):not([data-ui-icon-only="1"]):not(.custom_theme_emergency_restore_button), form button[type="reset"]:not(.sq_action_button):not([data-ui-icon-only="1"]), form button[type="button"].button_danger:not(.sq_action_button), form input[type="submit"], form input[type="button"], form input[type="reset"], form a.button, .page_action_button, .content_action_bar.page_content_top_actions > :is(a, button, input[type="submit"], input[type="button"]), .content_action_bar.page_content_bottom_actions > :is(a, button, input[type="submit"], input[type="button"]) ):not(.post_feed *:not(.standard)):not(.post_card *:not(.standard)):not(.post_composer *:not(.standard)):not(.post_composer_page *:not(.standard)):not(.popup_corner_close):not(:has(.popup_corner_close)) {
  --zone-t: var(--zone-10);
  --zone-top-left-corner-img: var(--theme-zone-button-top-left-corner-background-image, none);
  --zone-top-left-corner-clr: var(--theme-zone-button-top-left-corner-background-color, transparent);
  --zone-top-left-corner-img-opacity: var(--theme-zone-button-top-left-corner-background-image-opacity, 1);
  --zone-top-left-corner-clr-opacity: var(--theme-zone-button-top-left-corner-background-color-opacity, 1);
  --zone-top-left-corner-inner-glow: var(--theme-zone-button-top-left-corner-inner-glow, none);
  --zone-top-left-corner-outer-glow: var(--theme-zone-button-top-left-corner-outer-glow, none);
  --zone-top-left-corner-shadow: var(--theme-zone-button-top-left-corner-shadow, none);
  --zone-top-right-corner-img: var(--theme-zone-button-top-right-corner-background-image, none);
  --zone-top-right-corner-clr: var(--theme-zone-button-top-right-corner-background-color, transparent);
  --zone-top-right-corner-img-opacity: var(--theme-zone-button-top-right-corner-background-image-opacity, 1);
  --zone-top-right-corner-clr-opacity: var(--theme-zone-button-top-right-corner-background-color-opacity, 1);
  --zone-top-right-corner-inner-glow: var(--theme-zone-button-top-right-corner-inner-glow, none);
  --zone-top-right-corner-outer-glow: var(--theme-zone-button-top-right-corner-outer-glow, none);
  --zone-top-right-corner-shadow: var(--theme-zone-button-top-right-corner-shadow, none);
  --zone-bottom-left-corner-img: var(--theme-zone-button-bottom-left-corner-background-image, none);
  --zone-bottom-left-corner-clr: var(--theme-zone-button-bottom-left-corner-background-color, transparent);
  --zone-bottom-left-corner-img-opacity: var(--theme-zone-button-bottom-left-corner-background-image-opacity, 1);
  --zone-bottom-left-corner-clr-opacity: var(--theme-zone-button-bottom-left-corner-background-color-opacity, 1);
  --zone-bottom-left-corner-inner-glow: var(--theme-zone-button-bottom-left-corner-inner-glow, none);
  --zone-bottom-left-corner-outer-glow: var(--theme-zone-button-bottom-left-corner-outer-glow, none);
  --zone-bottom-left-corner-shadow: var(--theme-zone-button-bottom-left-corner-shadow, none);
  --zone-bottom-right-corner-img: var(--theme-zone-button-bottom-right-corner-background-image, none);
  --zone-bottom-right-corner-clr: var(--theme-zone-button-bottom-right-corner-background-color, transparent);
  --zone-bottom-right-corner-img-opacity: var(--theme-zone-button-bottom-right-corner-background-image-opacity, 1);
  --zone-bottom-right-corner-clr-opacity: var(--theme-zone-button-bottom-right-corner-background-color-opacity, 1);
  --zone-bottom-right-corner-inner-glow: var(--theme-zone-button-bottom-right-corner-inner-glow, none);
  --zone-bottom-right-corner-outer-glow: var(--theme-zone-button-bottom-right-corner-outer-glow, none);
  --zone-bottom-right-corner-shadow: var(--theme-zone-button-bottom-right-corner-shadow, none);
  --zone-top-border-img: var(--theme-zone-button-top-border-background-image, none);
  --zone-top-border-clr: var(--theme-zone-button-top-border-background-color, transparent);
  --zone-top-border-img-opacity: var(--theme-zone-button-top-border-background-image-opacity, 1);
  --zone-top-border-clr-opacity: var(--theme-zone-button-top-border-background-color-opacity, 1);
  --zone-top-border-inner-glow: var(--theme-zone-button-top-border-inner-glow, none);
  --zone-top-border-outer-glow: var(--theme-zone-button-top-border-outer-glow, none);
  --zone-top-border-shadow: var(--theme-zone-button-top-border-shadow, none);
  --zone-right-border-img: var(--theme-zone-button-right-border-background-image, none);
  --zone-right-border-clr: var(--theme-zone-button-right-border-background-color, transparent);
  --zone-right-border-img-opacity: var(--theme-zone-button-right-border-background-image-opacity, 1);
  --zone-right-border-clr-opacity: var(--theme-zone-button-right-border-background-color-opacity, 1);
  --zone-right-border-inner-glow: var(--theme-zone-button-right-border-inner-glow, none);
  --zone-right-border-outer-glow: var(--theme-zone-button-right-border-outer-glow, none);
  --zone-right-border-shadow: var(--theme-zone-button-right-border-shadow, none);
  --zone-bottom-border-img: var(--theme-zone-button-bottom-border-background-image, none);
  --zone-bottom-border-clr: var(--theme-zone-button-bottom-border-background-color, transparent);
  --zone-bottom-border-img-opacity: var(--theme-zone-button-bottom-border-background-image-opacity, 1);
  --zone-bottom-border-clr-opacity: var(--theme-zone-button-bottom-border-background-color-opacity, 1);
  --zone-bottom-border-inner-glow: var(--theme-zone-button-bottom-border-inner-glow, none);
  --zone-bottom-border-outer-glow: var(--theme-zone-button-bottom-border-outer-glow, none);
  --zone-bottom-border-shadow: var(--theme-zone-button-bottom-border-shadow, none);
  --zone-left-border-img: var(--theme-zone-button-left-border-background-image, none);
  --zone-left-border-clr: var(--theme-zone-button-left-border-background-color, transparent);
  --zone-left-border-img-opacity: var(--theme-zone-button-left-border-background-image-opacity, 1);
  --zone-left-border-clr-opacity: var(--theme-zone-button-left-border-background-color-opacity, 1);
  --zone-left-border-inner-glow: var(--theme-zone-button-left-border-inner-glow, none);
  --zone-left-border-outer-glow: var(--theme-zone-button-left-border-outer-glow, none);
  --zone-left-border-shadow: var(--theme-zone-button-left-border-shadow, none);
}

/* ---- from feed.css (2 rules) ---- */
.feed_card .post_reply_composer_action > .standard_right {
  margin-left:0!important;
}
.feed_card .post_reply_composer_action > .standard_right:first-child {
  margin-left:auto!important;
}

/* ---- from page_actions.css (7 rules) ---- */
:is(.bottom_action_bar, .page_content_bottom_actions) > .standard_right {
  justify-self: end;
  margin-left: auto;
}
.standard, .standard_left {
  justify-self: start;
}
.standard_center {
  justify-self: center;
  margin-inline: auto !important;
}
.standard_full, .standard.standard_full {
  flex: 1 1 100% !important;
  width: 100% !important;
  max-width: 100% !important;
  justify-self: stretch;
}
.standard_right {
  justify-self: end !important;
  margin-inline-start: auto !important;
  margin-left: auto !important;
}
.standard_right:first-child {
  margin-left: auto !important;
}
.standard_right ~ .standard_right {
  margin-left: 5px !important;
}

/* ---- from theme_editor.css (1 rules) ---- */
.custom_theme_save_restore_actions>.page_action_button {
  margin:0
}

/* ---- from widgets.css (2 rules) ---- */
:is(.public_widget, .widget_card):not(.widget_communication_connections):not(.messaging_participants) :is( button, input[type="submit"], input[type="reset"], input[type="button"], a.button ):not(.widget_navigation_button):not(.public_widget_toggle):not(.widget_toggle):not(.sq_action_button) {
  display: inline-flex !important;
  box-sizing: border-box !important;
  width: auto !important;
  min-width: 0 !important;
  max-width: 100% !important;
  min-height: 2.25rem !important;
  margin: 0 !important;
  padding: 0.45rem 0.75rem !important;
  align-items: center !important;
  justify-content: center !important;
  white-space: normal !important;
}
#communities-search-widget .standard_right, #communities-join-room-widget .standard_right, #connections-search-widget .standard_right {
  flex: 0 0 auto;
  margin-inline-start: auto !important;
  margin-left: auto !important;
}

/* ==========================================================================
   Selection buttons, switches, glyph buttons, password toggle
   ========================================================================== */

/* Issue #17: selection buttons (approved). One shared grid and one big button for Avatar Frame and... */
.selection_button_grid {
  display: grid;
  gap: 0.75rem;
  grid-template-columns: repeat(auto-fill, minmax(max(8rem, calc((100% - 2.25rem) / 4)), 1fr));
  align-items: stretch;
}

.selection_button_cell {
  display: flex;
  min-width: 0;
  flex-direction: column;
  gap: 0.35rem;
  text-align: center;
}

.selection_button_cell > .selection_button { flex: 1 1 auto; }

button.selection_button,
a.selection_button {
  display: flex;
  box-sizing: border-box;
  width: 100%;
  min-width: 0;
  flex-direction: column;
  align-items: center;
  gap: 0.4rem;
  padding: 0.6rem;
  border: 2px solid var(--page-card-border);
  border-radius: var(--radius-large);
  background: var(--interior-feature-card-background);
  background-image: var(--feature-gradient);
  color: var(--page-card-text);
  text-align: center;
  cursor: pointer;}

button.selection_button:hover:not(:disabled),
button.selection_button:focus-visible,
a.selection_button:hover,
a.selection_button:focus-visible {
  border-color: var(--page-link-color);
}

button.selection_button.is_selected {
  border-color: var(--page-link-color);
  box-shadow: 0 0 0 2px var(--page-link-color);
}

button.selection_button:disabled { color: var(--page-card-text); cursor: default; }

button.selection_button.is_locked:disabled { opacity: 0.6; cursor: not-allowed; }

.selection_button_media {
  display: flex;
  width: 100%;
  aspect-ratio: 1 / 1;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.selection_button_media > img {
  display: block;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

/* Oct 5 2026: glyph (not picture) inside a selection button, e.g. the shopping cart on the theme.php "Unlock... */

.selection_button_media_empty {
  border: 2px dashed var(--page-card-border);
  border-radius: var(--radius-large);
}

a.selection_button { text-decoration: none; }

/* the global button rule sets white-space:nowrap (inherited by this label), so long labels such as "Use Default... */
.selection_button_label { overflow-wrap: anywhere; white-space: normal;}

.selection_button_note { color: var(--page-muted-text);}

.selection_button_state {
  margin-top: auto;
  padding: 0.2rem 0.6rem;
  border: 1px solid var(--page-card-border);
  border-radius: 999px;}

.selection_button.is_selected .selection_button_state { color: var(--form-success-text); }

.selection_button_preview { text-align: center;}

/* her request (Edit Persona avatar choice): the Default card is as tall as the uploaded-avatar card (every... */
/* her request: the two avatar cards sit side by side (an inline two-column grid) instead of stacking, whatever... */
.persona_avatar_choice_grid { margin-bottom: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); }

.persona_avatar_choice_grid .selection_button_label { min-height: 2.4em;}

/* Issue #87, approved by her: on/off switch used in the "YouTube disabled" popup (post_embeds.js builds <input... */
/* her request: a toggle and its text are their own nested grid (toggle | label), so the text always starts at... */
label:has(> input[role="switch"]) {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  align-items: center;
  column-gap: 0.6rem;
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"] {
  appearance: none;
  -webkit-appearance: none;
  position: relative;
  flex: 0 0 auto;
  width: 4.5rem;
  min-width: 4.5rem;
  max-width: 4.5rem;
  height: 2rem;
  min-height: 2rem;
  max-height: 2rem;
  margin: 0;
  vertical-align: middle;
  cursor: pointer;
  background: var(--toggle-off-background);
  border: 0;
  border-radius: 999px;
  transition: background-color 0.15s ease;
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]::before {
  content: "";
  position: absolute;
  top: 50%;
  left: 0.25rem;
  width: 1.5rem;
  height: 1.5rem;
  background: var(--toggle-knob-color);
  border-radius: 50%;
  transform: translateY(-50%);
  transition: left 0.15s ease;
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]::after {
  content: attr(data-off-label);
  position: absolute;
  top: 50%;
  right: 0.6rem;
  transform: translateY(-50%);
  color: var(--toggle-text-color);}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:checked {
  background: var(--toggle-on-background);
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:checked::before {
  left: calc(100% - 1.5rem - 0.25rem);
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:checked::after {
  content: attr(data-on-label);
  right: auto;
  left: 0.6rem;
}

/* Compact toggle (inside .control_compact / .public_widget): 0.8 x the normal sizes above. */
:is(.control_compact, .public_widget) :is(.yusaso_message_dialog, .checkbox_row) input[role="switch"],
:is(.yusaso_message_dialog, .checkbox_row) :is(.control_compact, .public_widget) input[role="switch"],
:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:is(.control_compact, .public_widget) {
  width: 3.6rem;
  min-width: 3.6rem;
  max-width: 3.6rem;
  height: 1.6rem;
  min-height: 1.6rem;
  max-height: 1.6rem;
}
:is(.control_compact, .public_widget) :is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]::before,
:is(.yusaso_message_dialog, .checkbox_row) :is(.control_compact, .public_widget) input[role="switch"]::before,
:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:is(.control_compact, .public_widget)::before {
  left: 0.2rem;
  width: 1.2rem;
  height: 1.2rem;
}
:is(.control_compact, .public_widget) :is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]::after,
:is(.yusaso_message_dialog, .checkbox_row) :is(.control_compact, .public_widget) input[role="switch"]::after,
:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:is(.control_compact, .public_widget)::after {
  right: 0.48rem;
}
:is(.control_compact, .public_widget) :is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:checked::before,
:is(.yusaso_message_dialog, .checkbox_row) :is(.control_compact, .public_widget) input[role="switch"]:checked::before,
:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:is(.control_compact, .public_widget):checked::before {
  left: calc(100% - 1.2rem - 0.2rem);
}
:is(.control_compact, .public_widget) :is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:checked::after,
:is(.yusaso_message_dialog, .checkbox_row) :is(.control_compact, .public_widget) input[role="switch"]:checked::after,
:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:is(.control_compact, .public_widget):checked::after {
  right: auto;
  left: 0.48rem;
}

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:disabled { cursor: progress; opacity: 0.6; }

:is(.yusaso_message_dialog, .checkbox_row) input[role="switch"]:focus-visible { outline: 2px solid var(--toggle-focus-outline); outline-offset: 2px; }

/* Glyph + text buttons (Oct 11 2026 - her request, Q532 approved) A button or link that shows a... */
html body :is(button, a, input[type="button"], input[type="submit"]).glyph_buttons {
    display: inline-flex;
    box-sizing: border-box;
    align-items: center;
    gap: var(--gap-0-4rem);
    padding: 0.25rem 0.5rem;
    color: var(--primary-font-color) !important;
    -webkit-text-fill-color: var(--primary-font-color) !important;
    background: transparent !important;
    background-image: none !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    text-decoration: none;
    cursor: pointer;}

html body .glyph_buttons :is(.glyph, .semantic_icon) {
    flex: none;
    color: inherit;
}

/* Glyph-only buttons (Oct 13 2026 - her ruling, Q804) A button that is ONLY a glyph is not a regular... */
:where(button[data-ui-icon-only="1"], .password_visibility_toggle) {
    color: var(--glyph);
    background: none;
    border: 0;
    box-shadow: none;
}

/* Password box with its show/hide eye (Oct 13 2026 - moved here from authentication.css so Register,... */
.password_visibility_field {
  position:relative;
  display:inline-flex;
  width:min(100%,24rem);
  align-items:center;
}

.password_visibility_field input {
  width:100%;
  padding-right:2.75rem;
}

.password_visibility_toggle {
  position:absolute;
  right:.35rem;
  display:inline-flex;
  width:2rem;
  min-width:2rem;
  height:2rem;
  min-height:2rem;
  padding:0;
  align-items:center;
  justify-content:center;
  cursor:pointer;
}
