.pt-sw {
    --pt-sw-bg: #ffffff;
    --pt-sw-fg: #1f2933;
    --pt-sw-muted: #6b7280;
    --pt-sw-border: rgba(15, 23, 42, .12);
    --pt-sw-hover: rgba(15, 23, 42, .06);
    --pt-sw-hover-solid: #f1f3f5;
    --pt-sw-shadow: 0 10px 30px rgba(15, 23, 42, .16), 0 2px 6px rgba(15, 23, 42, .08);
    position: relative;
    display: inline-block;
    font-size: 14px;
    line-height: 1.2;
    text-align: left;
    color: var(--pt-sw-fg);
    box-sizing: border-box;
}
.pt-sw--theme-dark {
    --pt-sw-bg: #1f2933;
    --pt-sw-fg: #f5f7fa;
    --pt-sw-muted: #9aa5b1;
    --pt-sw-border: rgba(255, 255, 255, .14);
    --pt-sw-hover: rgba(255, 255, 255, .08);
    --pt-sw-hover-solid: #2c3a47;
}
.pt-sw *, .pt-sw *::before, .pt-sw *::after { box-sizing: border-box; }

.pt-sw .pt-sw__list { list-style: none; margin: 0; padding: 0; }
.pt-sw .pt-sw__item { margin: 0; padding: 0; list-style: none; }
.pt-sw .pt-sw__item::before, .pt-sw .pt-sw__item::marker { content: none; }

.pt-sw .pt-sw__toggle,
.pt-sw .pt-sw__link {
    display: flex; align-items: center; gap: 8px; width: 100%;
    margin: 0; padding: 8px 12px; border: 0; border-radius: 6px;
    background: transparent; color: inherit; font: inherit; line-height: 1.2;
    text-decoration: none; text-transform: none; letter-spacing: normal;
    cursor: pointer; white-space: nowrap; box-shadow: none; min-height: 0;
}
.pt-sw .pt-sw__link:hover, .pt-sw .pt-sw__link:focus-visible,
.pt-sw .pt-sw__toggle:hover, .pt-sw .pt-sw__toggle:focus-visible { background: var(--pt-sw-hover); color: inherit; outline: none; text-decoration: none; }
.pt-sw .pt-sw__label { display: inline-flex; align-items: center; gap: 8px; }

.pt-sw .pt-sw__flag, .pt-sw-menu .pt-sw__flag {
    display: inline-block; flex: none; width: 21px; height: 14px; border-radius: 2px;
    box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); vertical-align: middle; overflow: hidden;
}
.pt-sw .pt-sw__code { font-weight: 600; letter-spacing: .03em; }
.pt-sw .pt-sw__hidden, .pt-sw-menu .pt-sw__hidden { color: #d97706; font-size: 9px; }
.pt-sw .pt-sw__chevron { flex: none; margin-left: auto; transition: transform .15s; opacity: .7; }

.pt-sw--dropdown .pt-sw__toggle { border: 1px solid var(--pt-sw-border); background: var(--pt-sw-bg); }
.pt-sw--dropdown .pt-sw__toggle:hover,
.pt-sw--dropdown .pt-sw__toggle:focus-visible,
.pt-sw--dropdown.is-open .pt-sw__toggle { background: var(--pt-sw-hover-solid); }
.pt-sw--dropdown .pt-sw__list {
    position: absolute; top: calc(100% + 6px); left: 0; z-index: 99999; min-width: 100%;
    padding: 4px; background: var(--pt-sw-bg); border: 1px solid var(--pt-sw-border); border-radius: 8px;
    box-shadow: var(--pt-sw-shadow);
    opacity: 0; visibility: hidden; transform: translateY(-4px); transition: opacity .15s, transform .15s, visibility .15s;
}
.pt-sw--dropdown.pt-sw--up .pt-sw__list { top: auto; bottom: calc(100% + 6px); transform: translateY(4px); }
.pt-sw--dropdown.pt-sw--bottom-right .pt-sw__list,
.pt-sw--dropdown.pt-sw--top-right .pt-sw__list { left: auto; right: 0; }
.pt-sw--dropdown.is-open .pt-sw__list,
.pt-sw--dropdown:focus-within .pt-sw__list { opacity: 1; visibility: visible; transform: none; }
.pt-sw--dropdown.is-open .pt-sw__chevron { transform: rotate(180deg); }
.pt-sw--up.is-open .pt-sw__chevron { transform: none; }
.pt-sw--up .pt-sw__chevron { transform: rotate(180deg); }
@media (hover: hover) and (pointer: fine) {
    .pt-sw--dropdown:not(.pt-sw--floating):hover .pt-sw__list { opacity: 1; visibility: visible; transform: none; }
}

.pt-sw--list .pt-sw__list, .pt-sw--flags .pt-sw__list { display: flex; flex-wrap: wrap; gap: 2px; }
.pt-sw--list .pt-sw__link, .pt-sw--flags .pt-sw__link { width: auto; padding: 6px 8px; }
.pt-sw--list .is-current .pt-sw__link { font-weight: 600; background: var(--pt-sw-hover); }
.pt-sw--flags .pt-sw__link { opacity: .55; }
.pt-sw--flags .is-current .pt-sw__link, .pt-sw--flags .pt-sw__link:hover { opacity: 1; }

.pt-sw--floating { position: fixed; z-index: 99990; }
.pt-sw--floating .pt-sw__toggle { box-shadow: var(--pt-sw-shadow); border-radius: 22px; padding: 9px 14px; }
.pt-sw--floating .pt-sw__list { min-width: 170px; }
.pt-sw--bottom-right { right: 20px; bottom: 20px; }
.pt-sw--bottom-left { left: 20px; bottom: 20px; }
.pt-sw--top-right { right: 20px; top: 20px; }
.pt-sw--top-left { left: 20px; top: 20px; }
body.admin-bar .pt-sw--top-right, body.admin-bar .pt-sw--top-left { top: 52px; }
@media (max-width: 600px) {
    .pt-sw--bottom-right { right: 12px; bottom: 12px; }
    .pt-sw--bottom-left { left: 12px; bottom: 12px; }
    .pt-sw--floating .pt-sw__toggle { padding: 8px 12px; }
}
@media print { .pt-sw--floating { display: none !important; } }

.pt-sw-menu { display: inline-flex; align-items: center; gap: 6px; }

.pt-lang-banner {
    --ptb-bg: #ffffff;
    --ptb-fg: #1f2933;
    --ptb-muted: #6b7280;
    --ptb-accent: #1f2933;
    --ptb-accent-fg: #ffffff;
    --ptb-border: rgba(15, 23, 42, .12);
    position: fixed; left: 50%; bottom: 20px; z-index: 99995;
    display: flex; align-items: center; gap: 18px;
    width: max-content; max-width: calc(100vw - 32px);
    padding: 10px 10px 10px 16px;
    background: var(--ptb-bg); color: var(--ptb-fg);
    border: 1px solid var(--ptb-border); border-radius: 12px;
    box-shadow: 0 12px 32px rgba(15, 23, 42, .18), 0 2px 6px rgba(15, 23, 42, .08);
    font-size: 14px; line-height: 1.35; text-align: left; box-sizing: border-box;
    opacity: 0; transform: translate(-50%, 16px); transition: opacity .25s ease, transform .25s ease;
}
.pt-lang-banner--dark {
    --ptb-bg: #1f2933;
    --ptb-fg: #f5f7fa;
    --ptb-muted: #9aa5b1;
    --ptb-accent: #f5f7fa;
    --ptb-accent-fg: #1f2933;
    --ptb-border: rgba(255, 255, 255, .14);
}
.pt-lang-banner.is-visible { opacity: 1; transform: translate(-50%, 0); }
.pt-lang-banner * { box-sizing: border-box; }
.pt-lang-banner .pt-lang-banner__text { display: flex; align-items: center; gap: 10px; margin: 0; }
.pt-lang-banner .pt-lang-banner__flag { display: inline-block; flex: none; width: 21px; height: 14px; border-radius: 2px; box-shadow: 0 0 0 1px rgba(0, 0, 0, .08); }
.pt-lang-banner .pt-lang-banner__actions { display: flex; align-items: center; gap: 4px; flex: none; }
.pt-lang-banner .pt-lang-banner__switch {
    display: inline-block; margin: 0; padding: 8px 14px; border: 0; border-radius: 8px;
    background: var(--ptb-accent); color: var(--ptb-accent-fg);
    font: inherit; font-weight: 600; line-height: 1.2; text-decoration: none; white-space: nowrap; box-shadow: none;
}
.pt-lang-banner .pt-lang-banner__switch:hover, .pt-lang-banner .pt-lang-banner__switch:focus-visible { opacity: .88; color: var(--ptb-accent-fg); text-decoration: none; }
.pt-lang-banner .pt-lang-banner__close {
    display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; margin: 0; padding: 0;
    border: 0; border-radius: 8px; background: transparent; color: var(--ptb-muted);
    font: inherit; font-size: 22px; line-height: 1; cursor: pointer; box-shadow: none;
}
.pt-lang-banner .pt-lang-banner__close:hover, .pt-lang-banner .pt-lang-banner__close:focus-visible { background: rgba(127, 127, 127, .15); color: var(--ptb-fg); outline: none; }
@media (max-width: 600px) {
    .pt-lang-banner { left: 12px; right: 12px; bottom: 12px; width: auto; max-width: none; flex-wrap: wrap; gap: 10px; transform: translateY(16px); }
    .pt-lang-banner.is-visible { transform: none; }
    .pt-lang-banner .pt-lang-banner__actions { margin-left: auto; }
}
@media (prefers-reduced-motion: reduce) { .pt-lang-banner { transition: none; } }
@media print { .pt-lang-banner { display: none !important; } }
