/* "Hey Sophia" switch card, listening dot, tap prompt. Every control is at least 24px. */
.sw-row{display:flex;align-items:center;justify-content:space-between;gap:8px}
.sw-title{font-size:15px}
.sw-switch{min-width:56px;min-height:32px;padding:0 12px;border-radius:16px;border:1px solid rgba(128,128,128,.6);background:transparent;color:inherit;font:600 13px/1 system-ui,sans-serif}
.sw-switch.on{background:#1f8a4c;border-color:#1f8a4c;color:#fff}
.sw-explain,.sw-state{margin:6px 0 0;font-size:13px;line-height:1.35}
.sw-ind{position:fixed;z-index:80;top:calc(6px + env(safe-area-inset-top));right:6px;width:32px;height:32px;min-width:32px;min-height:32px;padding:0;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:#0b1a12;color:#fff;display:grid;place-items:center;font-size:15px}
.sw-ind-dot{position:absolute;right:3px;top:3px;width:8px;height:8px;border-radius:50%;background:#2ecc71;animation:swpulse 1.6s ease-in-out infinite}
.sw-ind.sw-paused .sw-ind-dot{background:#e0a030;animation:none}
.sw-ind.sw-woke{transform:scale(1.25);box-shadow:0 0 0 4px rgba(46,204,113,.45);transition:transform .15s}
.sw-tap{position:fixed;z-index:90;left:50%;transform:translateX(-50%);bottom:calc(90px + env(safe-area-inset-bottom));min-height:40px;padding:0 16px;border-radius:20px;border:0;background:#1f8a4c;color:#fff;font:700 14px/1 system-ui,sans-serif}
@keyframes swpulse{50%{opacity:.35}}
@media (prefers-reduced-motion:reduce){.sw-ind-dot{animation:none}}
