@use 'mixins' as *; // ---------- Settings popup ---------- .settings-overlay { @include overlay(120); } .settings-modal { @include sheet(460px, min(560px, calc(100vh - 110px))); &:focus, &:focus-visible { outline: none; } } .settings-modal-head { @include sheet-head; } .settings-title { @include sheet-title; } .settings-modal-body { @include sheet-body; } .settings-group + .settings-group { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--border); } .settings-group-head { display: flex; flex-direction: column; gap: 2px; margin-bottom: 12px; } .settings-group-title { font-size: 0.92rem; font-weight: 700; color: var(--text); } .settings-group-hint { font-size: 0.8rem; color: var(--muted); } // segmented control: the settings' light / dark switch and the profile's // language row; wraps so a narrow screen never clips the last choice .theme-switch { @include segmented; flex-wrap: wrap; } .theme-option { display: inline-flex; align-items: center; gap: 7px; @include segmented-tab(8px 16px, 0.86rem); } // accent colour swatches .accent-swatches { display: flex; flex-wrap: wrap; gap: 14px; } .accent-swatch { display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; border: 0; padding: 0; color: #fff; background: linear-gradient(135deg, var(--swatch), var(--swatch-2)); transition: transform 0.12s, box-shadow 0.15s; &:hover { transform: scale(1.1); } &:active { transform: scale(0.94); } &.active { box-shadow: 0 0 0 2px var(--bg-elev), 0 0 0 4px var(--swatch); } } @include popup-anim( 'settings-popup', '.settings-modal', 0.16s, transform 0.2s cubic-bezier(0.22, 0.61, 0.36, 1), -10px );