/* Real language links work before JS; JS also upgrades the original RU/EN link. */
.site-language { position:relative; flex:none; color:var(--site-ink,#242820); font-family:Arial,sans-serif; letter-spacing:normal; }
.site-language-summary { box-sizing:border-box; display:flex; align-items:center; justify-content:center; gap:5px; width:52px; min-height:44px; padding:5px 2px; border:0; border-radius:8px; list-style:none; cursor:pointer; direction:ltr; -webkit-tap-highlight-color:transparent; }
.site-language-summary::-webkit-details-marker { display:none; }
.site-language-summary::marker { content:""; }
.site-language-summary svg { display:block; flex:none; width:18px; height:18px; fill:none; stroke:currentColor; stroke-width:1.5; stroke-linecap:round; stroke-linejoin:round; }
.site-language-code { font-size:11px; line-height:1; font-weight:500; letter-spacing:.025em; }
.site-language-summary:hover,.site-language[open]>.site-language-summary { background:#eef4fa; color:#174a7a; }
.site-language-panel { position:absolute; z-index:4; top:calc(100% + 9px); right:0; left:auto; box-sizing:border-box; width:min(360px,calc(100vw - 24px)); max-height:55vh; max-height:55dvh; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; scrollbar-gutter:stable; touch-action:pan-y; padding:10px; border:1px solid #dde3e8; border-radius:14px; background:#fff; color:#242820; box-shadow:0 12px 38px #17365326; direction:ltr; text-align:left; }
.site-language-heading { margin:0 3px 6px; padding:7px 8px 10px; border-bottom:1px solid #e9edf0; color:#66727b; font-size:12px; line-height:1.5; font-weight:400; letter-spacing:0; }
.site-language-list { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:2px 4px; margin:0; padding:0; list-style:none; }
.site-language-list li { min-width:0; margin:0; padding:0; list-style:none; }
.site-language-list a { box-sizing:border-box; display:flex; align-items:center; justify-content:space-between; gap:8px; min-height:44px; padding:9px 10px; border-radius:7px; color:inherit; text-decoration:none; font-size:14px; font-weight:400; line-height:1.5; letter-spacing:0; overflow-wrap:anywhere; }
.site-language-list a:hover { background:#eef4fa; color:#174a7a; }
.site-language-list a[aria-current="true"] { background:#fff1c2; color:#242820; }
.site-language-list a[aria-current="true"]::after { content:"✓"; flex:none; font-family:Arial,sans-serif; font-size:13px; }
.site-language :is(summary,a):focus-visible { outline:2px solid var(--site-accent,#b53829); outline-offset:2px; }
@media(max-width:700px) {
  .site-language-summary { width:44px; gap:4px; }
  .site-language-panel { position:fixed; top:64px; right:20px; width:min(360px,calc(100vw - 40px)); }
}
@media(max-width:420px) {
  .site-language-panel { right:12px; width:min(260px,calc(100vw - 24px)); padding:8px; }
  .site-language-list { grid-template-columns:1fr; }
  .site-language-list a { min-height:44px; padding:9px 12px; }
}
@media(max-width:374px) {
  .site-header-tools:has(.site-language) { gap:6px; }
  .site-language-summary { width:32px; flex-direction:column; gap:4px; }
  .site-language-summary svg { width:16px; height:16px; }
  .site-language-code { font-size:9px; }
}
@media(forced-colors:active) {
  .site-language-panel { border-color:CanvasText; }
  .site-language-list a[aria-current="true"] { outline:1px solid Highlight; }
}

/* Searchable language directory: a fixed toolbar and independently scrolling choices. */
.site-language-panel { width:min(620px,calc(100vw - 32px)); max-height:min(70dvh,var(--language-available-height,640px)); padding:16px; }
.site-language-panel.site-language-searchable { display:flex; flex-direction:column; overflow:hidden; }
.site-language-bar { display:flex; flex:none; align-items:center; justify-content:space-between; gap:12px; margin-bottom:8px; }
.site-language-bar .site-language-heading { margin:0; padding:0 4px; border:0; font-size:18px; font-weight:600; color:#242820; }
.site-language-close { flex:none; display:grid; place-items:center; width:40px; height:40px; padding:0; border:0; border-radius:50%; background:#f3f4f2; color:#242820; font:26px/1 Arial,sans-serif; cursor:pointer; }
.site-language-close:hover { background:#e8ecef; }
.site-language-search-row { display:flex; flex:none; align-items:center; gap:12px; margin:0 0 12px; }
.site-language-search { box-sizing:border-box; width:100%; min-width:0; min-height:46px; padding:10px 14px; border:1px solid #cbd3d9; border-radius:10px; background:#fff; color:#242820; font:16px/1.5 Arial,sans-serif; letter-spacing:normal; }
.site-language-search::placeholder { color:#637079; opacity:1; }
.site-language-count { flex:none; min-width:48px; color:#66727b; font:13px/1.5 Arial,sans-serif; text-align:center; }
.site-language-list { grid-template-columns:repeat(3,minmax(0,1fr)); gap:5px; }
.site-language-searchable .site-language-list { min-height:0; overflow:auto; overscroll-behavior:contain; -webkit-overflow-scrolling:touch; touch-action:pan-y; scrollbar-gutter:stable; padding:3px; }
.site-language-list li[hidden] { display:none; }
.site-language-list a { min-height:64px; padding:10px; border:1px solid transparent; border-radius:10px; font-size:15px; }
.site-language-list a[aria-current="true"] { border-color:#efa900; background:#fff3c9; }
.site-language-names { display:flex; flex-direction:column; min-width:0; gap:2px; }
.site-language-names small { color:#606b73; font:12px/1.4 Arial,sans-serif; }
.site-language :is(input,button):focus-visible { outline:2px solid #174a7a; outline-offset:2px; }
@media(max-width:700px) {
  .site-language-panel { top:var(--language-panel-top,64px); left:12px; right:12px; width:auto; max-height:min(74dvh,var(--language-available-height,620px)); padding:12px; }
  .site-language-list { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .site-language-list a { padding:9px; }
}
@media(max-width:350px) {
  .site-language-panel { left:8px; right:8px; padding:8px; }
  .site-language-list a { padding:8px 6px; font-size:14px; }
  .site-language-names small { font-size:11px; }
}
