.theme-toggle{--tt-bg:#fff;--tt-border:#e3e3e3;--tt-pill:#fff;--tt-active:#000;--tt-idle:rgba(0,0,0,.4);position:relative;display:inline-flex;align-items:center;direction:ltr;padding:4px;border-radius:14px;background:var(--tt-bg);border:1px solid var(--tt-border);font-family:var(--font-sans)}.theme-toggle__thumb{position:absolute;top:4px;left:4px;width:calc(50% - 4px);height:calc(100% - 8px);border-radius:10px;background:var(--tt-pill);transition:transform .3s;will-change:transform}.theme-toggle__thumb.is-dark{transform:translate(100%)}.theme-toggle__opt{outline:none}.theme-toggle__opt:focus-visible{outline:var(--ring-w) solid var(--ring);outline-offset:var(--ring-offset)}.theme-toggle__opt{position:relative;z-index:1;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 14px;border:none;background:transparent;border-radius:10px;color:var(--tt-idle);font-family:inherit;font-size:15px;font-weight:500;line-height:19px;white-space:nowrap;cursor:pointer;transition:color .3s}.theme-toggle__opt svg{width:16px;height:16px;transition:transform var(--dur-base) var(--ease-spring)}.theme-toggle__opt.is-active,.theme-toggle__opt:not(.is-active):hover{color:var(--tt-active)}.theme-toggle__opt.is-active svg{transform:scale(1.1)}.theme-toggle__opt:active svg{transform:scale(.85)}.theme-toggle--compact .theme-toggle__opt{padding:10px;width:40px}[data-theme=light] .theme-toggle__thumb{box-shadow:0 0 0 1px #1018280a,0 6px 16px -4px #10182824,0 2px 5px -2px #10182814}[data-theme=dark] .theme-toggle{--tt-bg:#000;--tt-border:#1b1b1b;--tt-pill:#1b1b1b;--tt-active:#fff;--tt-idle:hsla(0,0%,100%,.4)}.flag{display:inline-block;flex:none;width:calc(var(--flag-size)*1.4);height:var(--flag-size);border-radius:3px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000001f}.flag svg{display:block;width:100%;height:100%}.lang{position:relative;flex:none}.lang__trigger{outline:none}.lang__trigger:focus-visible{outline:var(--ring-w) solid var(--ring);outline-offset:var(--ring-offset)}.lang__trigger{display:inline-flex;align-items:center;gap:var(--s-2);padding:var(--s-2) var(--s-3);border-radius:var(--r-pill);border:1px solid var(--border);background:transparent;color:var(--ink);font-size:var(--fs-sm);font-weight:var(--fw-semibold);cursor:pointer;transition:border-color var(--dur-fast) var(--ease-out),background-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-base) var(--ease-out),color var(--dur-fast) var(--ease-out)}.lang__trigger:hover{border-color:var(--border-strong);background:var(--surface-2)}.lang.is-open .lang__trigger{border-color:var(--accent);background:transparent;box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 16%,transparent)}.lang.is-open .lang__chev{color:var(--accent);transform:rotate(180deg)}.lang__label{min-width:4.5em;text-align:start}.lang--compact .lang__trigger{gap:var(--s-1);padding:var(--s-2)}.lang__chev{width:15px;height:15px;color:var(--muted);transition:transform var(--dur-base) var(--ease-spring)}.lang__sheet{display:flex;flex-direction:column;gap:var(--s-2)}.lang__opt{display:flex;align-items:center;gap:var(--s-3);width:100%;padding:var(--s-2) var(--s-3);border-radius:var(--r-md);color:var(--ink);font-size:var(--fs-sm);font-weight:var(--fw-medium);cursor:pointer;transition:background-color var(--dur-fast) var(--ease-out)}.lang__opt:hover{background:var(--surface-2)}.lang__opt.is-on{background:var(--surface-3);font-weight:var(--fw-semibold)}.lang__opt--sheet{gap:var(--s-4);padding:var(--s-4);border:1px solid var(--border);border-radius:var(--r-lg);font-size:var(--fs-base)}.lang__opt--sheet.is-on{border-color:var(--accent);background:var(--accent-soft)}.lang__opt-label{flex:1 1 auto;text-align:start}.lang__check{width:16px;height:16px;flex:none;color:var(--accent)}.lang__menu{position:fixed;z-index:var(--z-overlay);min-width:13rem;display:flex;flex-direction:column;gap:2px;padding:var(--s-2);border-radius:var(--r-lg);border:1px solid var(--border);background:var(--surface);box-shadow:var(--shadow-lg,0 12px 32px -12px rgba(0,0,0,.4))}.lang-pop-enter-active,.lang-pop-leave-active{transition:opacity var(--dur-fast) var(--ease-out),transform var(--dur-base) var(--ease-spring);transform-origin:top right}.lang-pop-enter-from,.lang-pop-leave-to{opacity:0;transform:translateY(-6px) scale(.97)}
