.settings-drawer { position: absolute; top: 0; right: 0; bottom: 0; z-index: 15; width: min(560px, 100%); display: flex; flex-direction: column; background: var(--panel-strong); border-left: 1px solid var(--line-strong); backdrop-filter: blur(18px); box-shadow: -30px 0 80px rgba(0, 0, 0, 0.55); animation: slide-in 220ms cubic-bezier(0.2, 0.8, 0.2, 1); } @keyframes slide-in { from { transform: translateX(30px); opacity: 0; } } .settings-drawer .panel-head { padding: 12px 16px; } .settings-nav { display: flex; gap: 4px; padding: 8px 12px; border-bottom: 1px solid var(--line); overflow-x: auto; } .settings-nav button { padding: 6px 10px; border-radius: 6px; border: 1px solid transparent; background: transparent; color: var(--ink-3); font-family: var(--font-display); font-size: 10px; letter-spacing: 0.14em; text-transform: uppercase; cursor: pointer; white-space: nowrap; } .settings-nav button.active { color: var(--accent); border-color: var(--line-strong); background: rgba(var(--accent-rgb), 0.1); } .settings-body { flex: 1; min-height: 0; overflow-y: auto; padding: 16px 18px 24px; } .settings-body .card { padding: 12px 14px; margin-bottom: 14px; border: 1px solid var(--line); border-radius: 8px; background: rgba(var(--accent-rgb), 0.04); } .test-result { display: flex; align-items: center; gap: 8px; font-family: var(--font-mono); font-size: 12px; padding: 8px 10px; border-radius: 6px; border: 1px solid var(--line); } .test-result.ok { color: var(--success); border-color: rgba(var(--success-rgb), 0.5); } .test-result.fail { color: var(--danger); border-color: rgba(var(--danger-rgb), 0.5); } .theme-swatches { display: flex; gap: 8px; } .swatch { width: 34px; height: 34px; border-radius: 50%; border: 2px solid transparent; cursor: pointer; box-shadow: inset 0 0 0 3px var(--bg-0); } .swatch.active { border-color: #fff; } .level-meter { height: 8px; border-radius: 4px; background: rgba(var(--accent-rgb), 0.1); overflow: hidden; } .level-meter > div { height: 100%; background: linear-gradient(90deg, var(--accent), var(--success)); transition: width 60ms linear; } .switch { width: 100%; background: transparent; border-left: none; border-right: none; border-top: none; color: inherit; text-align: left; font: inherit; } /* Segmented choice (voice gender, capture mode…) */ .segmented { display: inline-flex; border: 1px solid var(--line); border-radius: 10px; overflow: hidden; background: rgba(255, 255, 255, 0.03); } .segmented button { padding: 8px 16px; background: transparent; border: none; color: var(--ink-1); font: inherit; font-size: 13px; letter-spacing: 0.02em; cursor: pointer; transition: background 0.15s, color 0.15s; } .segmented button + button { border-left: 1px solid var(--line); } .segmented button:hover { color: var(--ink-0); background: rgba(var(--accent-rgb), 0.08); } .segmented button.active { color: #03101c; background: var(--accent); font-weight: 600; }