.theme-switcher{position:relative}.theme-switcher__trigger{border:1.5px solid var(--color-border);background:var(--color-surface-alt);width:34px;height:34px;color:var(--color-accent-strong);cursor:pointer;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;transition:border-color .15s,background-color .15s;display:flex}.theme-switcher__trigger:hover{border-color:var(--color-accent-strong)}.theme-switcher__menu{background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-md);box-shadow:var(--shadow-card);z-index:50;flex-direction:column;gap:2px;min-width:150px;max-height:320px;padding:6px;display:flex;position:absolute;top:calc(100% + 8px);right:0;overflow-y:auto}.theme-switcher__option{border-radius:var(--radius-sm);font-family:var(--font-body);color:var(--color-text);cursor:pointer;text-align:left;background:0 0;border:none;align-items:center;gap:10px;padding:8px 10px;font-size:.85rem;font-weight:700;transition:background-color .15s;display:flex}.theme-switcher__option:hover{background:var(--color-surface-alt)}.theme-switcher__option--active{background:var(--color-accent)}.theme-switcher__swatch{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:22px;height:22px;display:flex}
.bottom-nav{box-sizing:border-box;background:var(--color-surface);border-top:1.5px solid var(--color-border);width:100%;max-width:100vw;padding:6px 4px calc(6px + env(safe-area-inset-bottom));z-index:50;justify-content:space-around;align-items:stretch;display:none;position:fixed;bottom:0;left:0;right:0}@media (max-width:640px){.bottom-nav{display:flex}}.bottom-nav__item{text-align:center;min-width:0;font-family:var(--font-body);color:var(--color-text-secondary);white-space:normal;word-break:break-word;cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:8px 2px;font-size:.72rem;font-weight:700;line-height:1.15;text-decoration:none;transition:color .15s;display:flex}.bottom-nav__item--active{color:var(--color-accent-strong);font-weight:800}.bottom-nav__menu-btn{font-family:var(--font-body)}.bottom-sheet-overlay{-webkit-backdrop-filter:blur(2px);z-index:90;background:#00000059;align-items:flex-end;animation:.15s bottom-sheet-fade-in;display:flex;position:fixed;inset:0}@keyframes bottom-sheet-fade-in{0%{opacity:0}to{opacity:1}}.bottom-sheet{background:var(--color-surface);border-top:1.5px solid var(--color-border);width:100%;max-height:75vh;padding:10px 20px calc(20px + env(safe-area-inset-bottom));box-shadow:var(--shadow-card);border-radius:24px 24px 0 0;animation:.2s bottom-sheet-slide-up;overflow-y:auto}@keyframes bottom-sheet-slide-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}.bottom-sheet__handle{background:var(--color-border);border-radius:999px;width:40px;height:4px;margin:0 auto 12px}.bottom-sheet__header{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.bottom-sheet__title{font-family:var(--font-heading);color:var(--color-text);font-size:1.1rem;font-weight:800}.bottom-sheet__close{background:var(--color-accent);width:30px;height:30px;color:var(--color-accent-strong);cursor:pointer;border:none;border-radius:50%;font-size:1.2rem;line-height:1}.bottom-sheet__content{flex-direction:column;gap:18px;display:flex}.bottom-sheet__group-label{text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-faint);margin-bottom:8px;font-size:.75rem;font-weight:800}.bottom-sheet__grid{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.bottom-sheet__item{text-align:center;background:var(--color-surface-alt);border:1px solid var(--color-border);font-family:var(--font-body);color:var(--color-text);border-radius:14px;padding:12px 10px;font-size:.88rem;font-weight:700;text-decoration:none;transition:background .15s,color .15s;display:block}.bottom-sheet__item:hover{background:var(--color-accent)}.bottom-sheet__item--active{background:var(--color-accent);border:1px solid var(--color-accent-strong);color:var(--color-accent-strong)}.bottom-sheet__header-actions{align-items:center;gap:8px;display:flex}@media (max-width:640px){body:has(.bottom-nav){padding-bottom:calc(64px + env(safe-area-inset-bottom))}}
