/* mibl_langsw.css — the language menu's styles, moved out of mibl_lang_switcher.php (audit P1 #9, 2026-10-02).
   It was ~7 KB of inline <style> re-sent byte-identical with every page view; the nowdoc it lived in had no PHP at all.
   Loaded from the same position the inline block had, so the cascade is unchanged. */
/* ── Trigger — deliberately quiet. The toolbar already carries a brand
      wordmark, five nav groups, a wallet chip and a user menu; a loud
      language control would fight all of them. Boldness is spent in the
      panel, not here. ────────────────────────────────────────────────── */
.mibl-langsw{position:relative;display:inline-flex;align-items:center}
.mibl-langsw__btn{display:inline-flex;align-items:center;gap:7px;padding:6px 10px;
  border-radius:11px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.11);color:#e2e8f0;cursor:pointer;
  font:600 11.5px/1 inherit;letter-spacing:.4px;
  transition:background .18s ease,border-color .18s ease,transform .18s ease}
.mibl-langsw__btn:hover{background:rgba(255,255,255,.12);border-color:rgba(0,212,255,.42)}
.mibl-langsw__btn:active{transform:translateY(1px)}
.mibl-langsw__btn:focus-visible{outline:2px solid #00d4ff;outline-offset:2px}
.mibl-langsw__btnmark{font-size:14px;line-height:1;min-width:1em;text-align:center}
.mibl-langsw__code{opacity:.72}

/* ── Panel ─────────────────────────────────────────────────────────────
   Reparented to <body> at boot, so it is always positioned by JS. */
.mibl-langsw__panel{position:fixed;z-index:100002;width:272px;max-height:min(70vh,520px);
  overflow-y:auto;overscroll-behavior:contain;
  background:rgba(8,8,24,.975);backdrop-filter:blur(26px);-webkit-backdrop-filter:blur(26px);
  border:1px solid rgba(255,255,255,.11);border-radius:16px;
  box-shadow:0 24px 64px rgba(0,0,0,.66),inset 0 1px 0 rgba(255,255,255,.05);
  padding:6px}
.mibl-langsw__panel[hidden]{display:none}
/* Same shimmer as .pub-header-wrap::before — ties it to the header it drops from. */
.mibl-langsw__panel::before{content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(0,212,255,.42),rgba(167,139,250,.3),transparent);
  border-radius:16px 16px 0 0;pointer-events:none}

.mibl-langsw__grab{display:none}
.mibl-langsw__head{display:flex;align-items:center;justify-content:space-between;
  padding:9px 10px 7px}
.mibl-langsw__eyebrow{font-size:9.5px;font-weight:700;letter-spacing:1.6px;
  text-transform:uppercase;color:rgba(226,232,240,.42)}
.mibl-langsw__x{background:none;border:0;color:rgba(226,232,240,.5);font-size:19px;
  line-height:1;cursor:pointer;padding:2px 5px;border-radius:7px}
.mibl-langsw__x:hover{color:#e2e8f0;background:rgba(255,255,255,.07)}
.mibl-langsw__x:focus-visible{outline:2px solid #00d4ff;outline-offset:1px}

/* ── Rows — the specimen sheet ─────────────────────────────────────────
   Grid, not flex: the mark column is a fixed track so every glyph sits on
   the same axis no matter how wide the script's advance is. */
.mibl-langsw__opt{display:grid;grid-template-columns:30px 1fr auto;align-items:center;
  gap:11px;padding:8px 10px;border-radius:11px;text-decoration:none;color:#e2e8f0;
  position:relative;transition:background .15s ease}
.mibl-langsw__opt:hover{background:rgba(255,255,255,.07)}
.mibl-langsw__opt:focus-visible{outline:2px solid #00d4ff;outline-offset:-2px}
.mibl-langsw__mark{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;
  background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.07);
  font-size:15px;line-height:1}
.mibl-langsw__native{font-size:13.5px;font-weight:600;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mibl-langsw__en{font-size:10px;color:rgba(226,232,240,.4);letter-spacing:.2px;white-space:nowrap}

/* Active row: the signal bar. A tuner needle, and the only accent in here. */
.mibl-langsw__opt.is-current{background:rgba(0,212,255,.09)}
.mibl-langsw__opt.is-current::before{content:'';position:absolute;
  inset-inline-start:0;top:9px;bottom:9px;width:2px;border-radius:2px;
  background:#00d4ff;box-shadow:0 0 9px rgba(0,212,255,.85)}
.mibl-langsw__opt.is-current .mibl-langsw__mark{
  background:rgba(0,212,255,.14);border-color:rgba(0,212,255,.32);color:#7fe6ff}

/* Open sweep — rows arrive in sequence, like a dial passing across a band.
   ~180ms end to end; anything slower reads as sluggish on a menu. */
.mibl-langsw__panel:not([hidden]) .mibl-langsw__opt{animation:mibl-langsw-in .19s ease both;
  animation-delay:calc(var(--i) * 11ms)}
@keyframes mibl-langsw-in{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

/* ── Bottom sheet ──────────────────────────────────────────────────────
   Applied for the mobile shell AND for narrow viewports on the desktop
   shell, which serves phones too. Eleven rows anchored at the top of a
   phone is a thumb-stretch; at the bottom it is reachable. */
.mibl-langsw__scrim{position:fixed;inset:0;background:rgba(2,2,10,.62);z-index:100001;
  backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}
.mibl-langsw__scrim[hidden]{display:none}

.mibl-langsw--sheet .mibl-langsw__panel,
.mibl-langsw__panel.is-sheet{
  inset:auto 0 0 0!important;width:auto!important;max-width:none;max-height:78vh;
  /* Above the floating action buttons. The Aria assistant and the mobile menu
     FAB sit at 8999-99500 and were covering the last rows of the sheet, so
     Korean and Chinese could not be tapped. 100002 clears every public-site
     layer (the highest is a 100000 lightbox) while staying under the
     admin-only builder chrome, which never coexists with this. */
  border-radius:20px 20px 0 0;border-bottom:0;
  padding:0 8px calc(10px + env(safe-area-inset-bottom));
  animation:mibl-langsw-up .26s cubic-bezier(.22,1,.36,1) both}
@keyframes mibl-langsw-up{from{transform:translateY(100%)}to{transform:none}}

.mibl-langsw--sheet .mibl-langsw__grab,
.mibl-langsw__panel.is-sheet .mibl-langsw__grab{
  display:block;width:38px;height:4px;border-radius:4px;margin:9px auto 3px;
  background:rgba(255,255,255,.2)}
.mibl-langsw--sheet .mibl-langsw__head,
.mibl-langsw__panel.is-sheet .mibl-langsw__head{padding:5px 12px 8px}
.mibl-langsw--sheet .mibl-langsw__opt,
.mibl-langsw__panel.is-sheet .mibl-langsw__opt{padding:12px 12px;gap:13px;
  grid-template-columns:36px 1fr auto}
.mibl-langsw--sheet .mibl-langsw__mark,
.mibl-langsw__panel.is-sheet .mibl-langsw__mark{width:36px;height:36px;font-size:17px}
.mibl-langsw--sheet .mibl-langsw__native,
.mibl-langsw__panel.is-sheet .mibl-langsw__native{font-size:15px}

@media (prefers-reduced-motion:reduce){
  .mibl-langsw__panel:not([hidden]) .mibl-langsw__opt,
  .mibl-langsw--sheet .mibl-langsw__panel,
  .mibl-langsw__panel.is-sheet{animation:none}
  .mibl-langsw__btn{transition:none}
}
@media print{.mibl-langsw{display:none}}
