.pf-language { position: relative; display: inline-block; line-height: 1; text-align: left; }
.pf-language-toggle,
.pf-language-option {
  appearance: none; box-sizing: border-box; display: flex; align-items: center;
  justify-content: center; gap: 10px; min-height: 44px; padding: 10px 12px;
  border: 1px solid #dbe2e9; border-radius: 12px; background: #fff;
  color: #475569; cursor: pointer; font: inherit; margin: 0;
}
.pf-language-toggle { min-width: 76px; box-shadow: 0 2px 8px #0f172a12; }
.pf-language-toggle:hover { background: #f1f5f9; border-color: #94a3b8; }
.pf-language-toggle:focus-visible,
.pf-language-option:focus-visible { outline: 3px solid #0284c7; outline-offset: 3px; }
.pf-language-flag { display: block; width: 28px; height: 20px; border-radius: 3px; object-fit: cover; box-shadow: 0 0 0 1px #0f172a18; }
.pf-language-chevron { flex: 0 0 12px; }
.pf-language-toggle[aria-expanded="true"] .pf-language-chevron { transform: rotate(180deg); }
.pf-language-menu {
  position: absolute; z-index: 10000; right: 0; top: calc(100% + 8px);
  min-width: 76px; padding: 5px; border: 1px solid #e2e8f0;
  border-radius: 14px; background: #fff; box-shadow: 0 8px 28px #0f172a26;
}
.pf-language-menu[hidden] { display: none !important; }
.pf-language-option { position: relative; width: 100%; border: 0; border-radius: 8px; padding: 12px 18px; }
.pf-language-option:hover { background: #f1f5f9; }
.pf-language-option[aria-checked="true"] { background: #e0f2fe; }
.pf-language-check { position: absolute; right: 3px; top: 4px; color: #0369a1; font: bold 11px/1 sans-serif; visibility: hidden; }
.pf-language-option[aria-checked="true"] .pf-language-check { visibility: visible; }
.pf-language-floating { position: fixed; z-index: 10000; right: 18px; bottom: 18px; }
.pf-language-floating .pf-language-menu,
.pf-sidebar-footer .pf-language-menu,
.login-container .pf-language-menu { top: auto; bottom: calc(100% + 8px); }
.login-container > .pf-language { display: table; margin: 20px auto 0; }
.pf-sidebar-footer > .pf-language { margin: 4px 12px 10px; }
.pf-sidebar-footer .pf-language-menu { right: auto; left: 0; }

/* Keep the selector visible in the profile menu, including collapsed sidebars. */
#user-dropdown { min-width: 240px; }
.pf-profile-language { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: 8px 16px; padding: 8px 16px; font-size: 14px; }
.pf-profile-language .pf-language { display: contents; }
/* Expand inside the profile card so mobile overflow rules cannot clip flags. */
.pf-profile-language .pf-language-menu { position: static; grid-column: 1 / -1; display: grid; grid-template-columns: repeat(4, 1fr); gap: 2px; }
.pf-profile-language .pf-language-option { padding: 10px 6px; }

@media print { .pf-language, .pf-language-floating { display: none !important; } }
