.xwk-control,.xwk-dropdown__trigger{display:inline-flex;font-family:inherit}.xwk-dropdown__trigger:hover,.xwk-theme-switch__toggle-btn:hover{background:var(--bg-hover,rgba(0,0,0,.06))}html:not(.xwk-theme-ready) *{transition:none!important}.xwk-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.xwk-control,.xwk-dropdown{position:relative}.xwk-control{align-items:center;gap:.5rem;font-size:inherit}.xwk-control__label{font-size:.875em;color:var(--text-secondary,inherit);white-space:nowrap}.xwk-dropdown__option,.xwk-dropdown__trigger,.xwk-theme-switch__toggle-btn{color:var(--text-primary,inherit);cursor:pointer}.xwk-dropdown__trigger{align-items:center;gap:.375rem;border:none;background:0 0;font-size:inherit;white-space:nowrap}.xwk-dropdown__trigger:focus-visible{outline:2px solid var(--focus-ring,Highlight);outline-offset:2px}.xwk-dropdown__caret{font-size:.7em;opacity:.7;pointer-events:none}.xwk-dropdown__trigger[aria-expanded=true] .xwk-dropdown__caret{transform:rotate(180deg)}.xwk-dropdown__list{position:absolute;top:calc(100% + 4px);left:0;z-index:9999;min-width:100%;list-style:none;margin:0;padding:.25rem 0;background:var(--bg-primary,#fff);border:1px solid var(--border-default,#ccc);border-radius:var(--radius-sm,4px);box-shadow:0 4px 12px rgba(0,0,0,.12)}.xwk-dropdown__option{display:block;padding:.5rem 1rem;white-space:nowrap;font-size:.9em}.xwk-dropdown__option:focus,.xwk-dropdown__option:hover{background:var(--bg-hover,rgba(0,0,0,.06));outline:0}.xwk-dropdown__option[aria-selected=true]{font-weight:600;color:var(--fg-accent,var(--text-primary,inherit))}.xwk-theme-switch__toggle-btn{display:inline-flex;align-items:center;justify-content:center;min-width:2.5rem;min-height:2.5rem;padding:.5rem;border:1px solid var(--border-default,currentColor);border-radius:var(--radius-sm,4px);background:var(--bg-secondary,transparent);font-family:inherit;position:relative}.xwk-theme-switch__toggle-btn:focus-visible{outline:2px solid var(--focus-ring,Highlight);outline-offset:2px}.xwk-ts-icon{position:absolute;display:none;transition:transform .3s cubic-bezier(.34, 1.56, .64, 1),opacity .2s}.xwk-ts-icon--entering{animation:.35s cubic-bezier(.34,1.56,.64,1) forwards xwk-ts-pop}@keyframes xwk-ts-pop{from{transform:rotate(-30deg) scale(.6);opacity:0}to{transform:rotate(0) scale(1);opacity:1}}.xwk-theme-btn{display:inline-flex;align-items:center;gap:10px;padding:8px 16px;background:0 0;border:none;cursor:pointer;color:var(--text-primary,#555);font-family:inherit;font-size:inherit;border-radius:6px;transition:background-color .2s,color .2s;-webkit-appearance:none;appearance:none;user-select:none}.xwk-icon,.xwk-text{left:0;transition:transform .4s cubic-bezier(.4, 0, .2, 1),opacity .4s cubic-bezier(.4, 0, .2, 1);opacity:0}.xwk-theme-btn:hover{background:var(--bg-hover,rgba(0,0,0,.04))}.xwk-theme-btn:focus-visible{outline:2px solid var(--focus-ring,currentColor);outline-offset:2px}.xwk-icon-container{position:relative;width:22px;height:22px;flex-shrink:0;display:flex;justify-content:center;align-items:center}.xwk-icon{position:absolute;width:100%;height:100%;top:0;transform:rotate(-90deg) scale(.4);pointer-events:none}.xwk-text-container{position:relative;display:flex;align-items:center;font-size:1.15rem;font-weight:300;overflow:hidden;text-align:left}.xwk-text{position:absolute;white-space:nowrap;transform:translateY(15px)}[data-theme-state=dark] .xwk-icon-moon,[data-theme-state=dark] .xwk-text-dark,[data-theme-state=light] .xwk-icon-sun,[data-theme-state=light] .xwk-text-light,[data-theme-state=system] .xwk-icon-system,[data-theme-state=system] .xwk-text-system{opacity:1;transform:rotate(0) scale(1)}[data-theme-state=dark] .xwk-text-dark,[data-theme-state=light] .xwk-text-light,[data-theme-state=system] .xwk-text-system{position:relative;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.xwk-dropdown__caret{transition:none}.xwk-ts-icon,.xwk-ts-icon--entering{animation:none;transition:none}.xwk-icon,.xwk-text{transition:none!important;transform:none!important}}

/* ═══════════════════════════════════════════════════════════
   Switch style  [xwk_theme_switch style="switch"]
   iOS-style responsive dark-mode toggle
   ═══════════════════════════════════════════════════════════ */
.xwk-ts-switch{display:inline-flex;align-items:center;gap:.625rem;padding:.5rem 0;min-height:2.75rem}
.xwk-ts-switch__icon{display:flex;align-items:center;flex-shrink:0;color:var(--text-secondary,inherit);width:1.125rem;height:1.125rem}
.xwk-ts-switch__icon svg{width:100%;height:100%;display:block}
.xwk-ts-switch__label{flex:1;color:var(--text-primary,inherit);white-space:nowrap;-webkit-user-select:none;user-select:none;font-size:inherit}
/* Toggle track */
.xwk-ts-switch__toggle{position:relative;width:3.25rem;height:1.75rem;padding:0;border:none;border-radius:999px;background:var(--toggle-track,rgba(0,0,0,.2));cursor:pointer;transition:background .25s cubic-bezier(.4,0,.2,1);-webkit-appearance:none;appearance:none;flex-shrink:0;display:flex;align-items:center}
/* Expand touch target to >=44px without growing the visual pill (WCAG 2.5.5) */
.xwk-ts-switch__toggle::before{content:"";position:absolute;inset:-8px 0;border-radius:inherit}
.xwk-ts-switch__toggle[aria-checked="true"]{background:var(--toggle-track-on,#3b82f6)}
.xwk-ts-switch__toggle:focus-visible{outline:2px solid var(--focus-ring,Highlight);outline-offset:2px}
/* Thumb (circle) */
.xwk-ts-switch__thumb{position:absolute;top:50%;left:.25rem;width:1.25rem;height:1.25rem;border-radius:50%;background:#fff;transform:translateY(-50%);transition:left .25s cubic-bezier(.34,1.56,.64,1);pointer-events:none;box-shadow:0 1px 4px rgba(0,0,0,.25)}
.xwk-ts-switch__toggle[aria-checked="true"] .xwk-ts-switch__thumb{left:calc(100% - 1.5rem)}
/* Responsive: full-width row at narrow viewport (default <=767px) */
@media (max-width:767px){.xwk-ts-switch{width:100%;justify-content:space-between}}
/* JS also toggles .xwk-ts-mobile when a custom breakpoint is set via data-breakpoint */
.xwk-ts-mobile.xwk-ts-switch{width:100%;justify-content:space-between}
@media (prefers-reduced-motion:reduce){.xwk-ts-switch__toggle,.xwk-ts-switch__thumb{transition:none}}