/* SUNO WAVE — microphone launcher for minusa.php
   Production-safe: isolated selectors, no overrides of existing player/payment UI. */

:root{
  --sw-voice-cyan:#49fff3;
  --sw-voice-red:#ff5d67;
  --sw-voice-panel:#061526;
}

.swVoiceMicLaunch{
  position:fixed;
  z-index:2147481100;
  left:clamp(14px,3vw,46px);
  bottom:clamp(14px,3vw,34px);
  min-height:58px;
  display:inline-flex;
  align-items:center;
  gap:12px;
  padding:7px 18px 7px 8px;
  border:1px solid rgba(73,255,243,.35);
  border-radius:999px;
  background:
    radial-gradient(circle at 18% 18%,rgba(73,255,243,.17),transparent 42%),
    linear-gradient(180deg,rgba(7,32,55,.92),rgba(3,11,21,.97));
  color:#fff;
  cursor:pointer;
  box-shadow:
    0 18px 52px rgba(0,0,0,.48),
    0 0 30px rgba(73,255,243,.14),
    inset 0 1px 0 rgba(255,255,255,.10);
  backdrop-filter:blur(16px) saturate(125%);
  -webkit-backdrop-filter:blur(16px) saturate(125%);
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease,opacity .18s ease;
  -webkit-tap-highlight-color:transparent;
}
.swVoiceMicLaunch:hover,
.swVoiceMicLaunch:focus-visible{
  outline:0;
  transform:translateY(-2px);
  border-color:rgba(73,255,243,.68);
  box-shadow:
    0 22px 62px rgba(0,0,0,.54),
    0 0 44px rgba(73,255,243,.23),
    inset 0 1px 0 rgba(255,255,255,.14);
}
.swVoiceMicLaunch__icon{
  position:relative;
  width:44px;
  height:44px;
  flex:0 0 44px;
  display:grid;
  place-items:center;
  border-radius:50%;
  color:#fff;
  background:radial-gradient(circle at 38% 30%,rgba(255,255,255,.18),rgba(73,255,243,.10) 38%,rgba(2,13,23,.92) 72%);
  border:1px solid rgba(73,255,243,.38);
  box-shadow:0 0 22px rgba(73,255,243,.19),inset 0 1px 0 rgba(255,255,255,.12);
}
.swVoiceMicLaunch__icon::after{
  content:"";
  position:absolute;
  inset:-5px;
  border-radius:50%;
  border:1px solid rgba(73,255,243,.18);
  opacity:.65;
}
.swVoiceMicLaunch__icon svg{width:23px;height:23px;display:block}
.swVoiceMicLaunch__copy{display:grid;gap:2px;text-align:left;line-height:1.08}
.swVoiceMicLaunch__copy b{font-size:14px;font-weight:950;letter-spacing:.01em}
.swVoiceMicLaunch__copy small{font-size:11px;font-weight:750;color:rgba(226,246,255,.68)}
.swVoiceMicLaunch.is-recording .swVoiceMicLaunch__icon{
  border-color:rgba(255,93,103,.74);
  box-shadow:0 0 0 0 rgba(255,93,103,.26),0 0 28px rgba(255,93,103,.26);
  animation:swVoiceMicPulse 1s ease-in-out infinite;
}
.swVoiceMicLaunch.is-success .swVoiceMicLaunch__icon{
  border-color:rgba(112,240,95,.72);
  box-shadow:0 0 28px rgba(112,240,95,.22);
}
@keyframes swVoiceMicPulse{
  0%,100%{transform:scale(1);box-shadow:0 0 0 0 rgba(255,93,103,.20),0 0 28px rgba(255,93,103,.22)}
  50%{transform:scale(1.055);box-shadow:0 0 0 9px rgba(255,93,103,0),0 0 38px rgba(255,93,103,.34)}
}

.swVoiceMicModal{
  position:fixed;
  inset:0;
  z-index:2147482000;
  display:none;
  place-items:center;
  padding:16px;
}
.swVoiceMicModal.is-open{display:grid}
.swVoiceMicModal__backdrop{
  position:absolute;
  inset:0;
  background:rgba(0,5,13,.78);
  backdrop-filter:blur(14px) saturate(110%);
  -webkit-backdrop-filter:blur(14px) saturate(110%);
  animation:swVoiceBackdropIn .18s ease both;
}
.swVoiceMicModal__shell{
  position:relative;
  z-index:1;
  width:min(620px,calc(100vw - 32px));
  height:min(790px,calc(100dvh - 32px));
  overflow:hidden;
  border:1px solid rgba(73,255,243,.25);
  border-radius:30px;
  background:#0a2235;
  box-shadow:
    0 34px 120px rgba(0,0,0,.72),
    0 0 76px rgba(73,255,243,.12),
    inset 0 1px 0 rgba(255,255,255,.10);
  animation:swVoiceShellIn .24s cubic-bezier(.2,.8,.2,1) both;
}
.swVoiceMicModal__frame{
  display:block;
  width:100%;
  height:100%;
  border:0;
  background:#69b2e5;
}
.swVoiceMicModal__close{
  position:absolute;
  z-index:5;
  top:14px;
  right:14px;
  width:46px;
  height:46px;
  display:grid;
  place-items:center;
  padding:0;
  border:1px solid rgba(255,255,255,.72);
  border-radius:50%;
  background:rgba(255,255,255,.84);
  color:#10243d;
  font:900 29px/1 Arial,sans-serif;
  cursor:pointer;
  box-shadow:0 12px 34px rgba(16,54,91,.20),inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:blur(14px);
  -webkit-backdrop-filter:blur(14px);
  transition:transform .16s ease,background .16s ease;
}
.swVoiceMicModal__close:hover,
.swVoiceMicModal__close:focus-visible{
  outline:0;
  transform:scale(1.05);
  background:#fff;
}
body.swVoiceMicOpen{overflow:hidden!important}

@keyframes swVoiceBackdropIn{from{opacity:0}to{opacity:1}}
@keyframes swVoiceShellIn{
  from{opacity:0;transform:translateY(14px) scale(.985)}
  to{opacity:1;transform:translateY(0) scale(1)}
}

@media(max-width:560px){
  .swPage{padding-bottom:154px!important}
  .swVoiceMicLaunch{
    left:auto;
    right:14px;
    bottom:78px;
    width:58px;
    min-height:58px;
    padding:6px;
    justify-content:center;
    gap:0;
  }
  .swVoiceMicLaunch__icon{width:46px;height:46px;flex-basis:46px}
  .swVoiceMicLaunch__copy{display:none}
  .swVoiceMicModal{padding:0}
  .swVoiceMicModal__shell{
    width:100vw;
    height:100dvh;
    max-width:none;
    max-height:none;
    border:0;
    border-radius:0;
  }
  .swVoiceMicModal__close{
    top:calc(10px + env(safe-area-inset-top));
    right:12px;
    width:44px;
    height:44px;
  }
}

@media(prefers-reduced-motion:reduce){
  .swVoiceMicLaunch,
  .swVoiceMicLaunch__icon,
  .swVoiceMicModal__backdrop,
  .swVoiceMicModal__shell{animation:none!important;transition:none!important}
}
