/* SENSIK mobile header + audio download progress. Load AFTER other SENSIK styles. */
@media (max-width: 767.98px) {
  .snv-nav,
  .snv-nav.has-profile {
    display: grid !important;
    grid-template-columns: 36px minmax(0, 1fr) 42px !important;
    grid-template-areas: "menu brand actions" !important;
    align-items: center !important;
    gap: 8px !important;
    width: min(calc(100% - 24px), 680px) !important;
    min-width: 0 !important;
    padding-top: 9px !important;
    padding-bottom: 9px !important;
  }

  .snv-nav > .snv-mobile-menu-toggle {
    grid-area: menu !important;
    justify-self: start !important;
    position: relative !important;
    z-index: 2 !important;
    width: 36px !important;
    min-width: 36px !important;
    height: 36px !important;
    min-height: 36px !important;
    margin: 0 !important;
  }

  .snv-nav > .snv-brand {
    grid-area: brand !important;
    justify-self: center !important;
    align-self: center !important;
    display: inline-flex !important;
    width: max-content !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 !important;
    gap: 6px !important;
    overflow: hidden !important;
    white-space: nowrap !important;
    text-decoration: none !important;
  }

  .snv-nav > .snv-brand > .snv-brand-mark {
    flex: 0 0 31px !important;
    width: 31px !important;
    min-width: 31px !important;
    height: 31px !important;
  }

  .snv-nav > .snv-brand > span:last-child {
    display: block !important;
    min-width: 0 !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    line-height: 1.1 !important;
  }

  .snv-nav > .snv-brand small {
    display: block !important;
    max-width: 100% !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
    font-size: 6.5px !important;
    letter-spacing: .08em !important;
  }

  .snv-nav > .snv-nav-links { display: none !important; }

  .snv-nav > .snv-nav-actions,
  .snv-nav > .snv-nav-actions.has-profile {
    grid-area: actions !important;
    justify-self: end !important;
    align-self: center !important;
    display: flex !important;
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    margin: 0 !important;
    padding: 0 !important;
    flex: 0 0 42px !important;
    justify-content: flex-end !important;
    gap: 0 !important;
    overflow: visible !important;
  }

  .snv-nav-actions > .snv-profile-menu {
    width: 42px !important;
    min-width: 42px !important;
    max-width: 42px !important;
    margin: 0 !important;
    flex: 0 0 42px !important;
  }

  .snv-nav-actions .snv-profile-trigger {
    display: grid !important;
    place-items: center !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 0 0 auto !important;
    padding: 0 !important;
    border-radius: 12px !important;
  }

  .snv-nav-actions .snv-profile-trigger-label,
  .snv-nav-actions .snv-profile-chevron { display: none !important; }

  /* Premium has a sticky Lifetime entry point on mobile; avoid squeezing the header. */
  .snv-nav-actions > .snv-premium-action,
  .snv-nav-actions > .snv-premium-link,
  .snv-nav-actions > .snv-btn-primary { display: none !important; }

  .snv-nav-actions > .snv-login-action,
  .snv-nav-actions > button.snv-btn {
    width: auto !important;
    min-width: 74px !important;
    max-width: 100% !important;
    min-height: 38px !important;
    height: 38px !important;
    padding: 0 10px !important;
    font-size: 12px !important;
    line-height: 1 !important;
    white-space: nowrap !important;
  }

  .snv-nav-actions .snv-nav-label-full { display: none !important; }
  .snv-nav-actions .snv-nav-label-compact { display: inline !important; }
}

@media (max-width: 380px) {
  .snv-nav,
  .snv-nav.has-profile {
    grid-template-columns: 34px minmax(0, 1fr) 40px !important;
    gap: 6px !important;
  }
  .snv-nav > .snv-mobile-menu-toggle { width: 34px !important; min-width: 34px !important; height: 34px !important; min-height: 34px !important; }
  .snv-nav > .snv-brand > .snv-brand-mark { flex-basis: 29px !important; width: 29px !important; min-width: 29px !important; height: 29px !important; }
  .snv-nav > .snv-nav-actions,
  .snv-nav > .snv-nav-actions.has-profile { width: 40px !important; min-width: 40px !important; max-width: 40px !important; flex-basis: 40px !important; }
  .snv-nav-actions > .snv-profile-menu { width: 40px !important; min-width: 40px !important; max-width: 40px !important; flex-basis: 40px !important; }
  .snv-nav-actions .snv-profile-trigger { width: 38px !important; min-width: 38px !important; max-width: 38px !important; height: 38px !important; min-height: 38px !important; }
  .snv-nav-actions > .snv-login-action,
  .snv-nav-actions > button.snv-btn { min-width: 68px !important; padding-inline: 7px !important; font-size: 11px !important; }
}

/* Download status panel shared by fetch-based audio downloads. */
.snv-download-progress {
  position: fixed;
  z-index: 1000005;
  right: 18px;
  bottom: 18px;
  display: grid;
  grid-template-columns: 54px minmax(0, 1fr) 32px;
  align-items: center;
  gap: 12px;
  width: min(410px, calc(100vw - 28px));
  padding: 13px 14px;
  border: 1px solid rgba(92, 241, 219, .28);
  border-radius: 18px;
  background: linear-gradient(145deg, rgba(10, 24, 35, .98), rgba(5, 12, 20, .98));
  color: #eafaf8;
  box-shadow: 0 18px 55px rgba(0, 0, 0, .42), 0 0 28px rgba(51, 220, 200, .08);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  font-family: Inter, system-ui, sans-serif;
}
.snv-download-progress[hidden] { display: none !important; }
.snv-download-progress__ring { width: 52px; height: 52px; display: grid; place-items: center; position: relative; }
.snv-download-progress__ring svg { width: 52px; height: 52px; transform: rotate(-90deg); overflow: visible; }
.snv-download-progress__track { fill: none; stroke: rgba(122, 160, 180, .2); stroke-width: 4; }
.snv-download-progress__arc { fill: none; stroke: #54efd9; stroke-width: 4; stroke-linecap: round; stroke-dasharray: 138.23; stroke-dashoffset: 138.23; transition: stroke-dashoffset .16s ease; }
.snv-download-progress.is-indeterminate .snv-download-progress__ring svg { animation: snvDownloadSpin 1.15s linear infinite; }
.snv-download-progress.is-indeterminate .snv-download-progress__arc { stroke-dasharray: 42 96; stroke-dashoffset: 0; }
.snv-download-progress.is-success .snv-download-progress__arc { stroke: #54efd9; stroke-dashoffset: 0; }
.snv-download-progress.is-error { border-color: rgba(255, 119, 145, .42); }
.snv-download-progress.is-error .snv-download-progress__arc { stroke: #ff7891; stroke-dasharray: 138.23; stroke-dashoffset: 0; }
.snv-download-progress__value { position: absolute; inset: 0; display: grid; place-items: center; color: #eafffb; font-size: 10px; font-weight: 900; font-variant-numeric: tabular-nums; }
.snv-download-progress__body { min-width: 0; display: grid; gap: 5px; }
.snv-download-progress__title { margin: 0 0 3px; font-size: 12px; line-height: 1.3; font-weight: 850; }
.snv-download-progress__detail { margin: 0; color: #9cb5c2; font-size: 11px; line-height: 1.45; overflow-wrap: anywhere; }
.snv-download-progress__meter { position: relative; display: block; width: 100%; height: 4px; overflow: hidden; margin-top: 3px; border: 1px solid rgba(129, 177, 194, .13); border-radius: 999px; background: rgba(1, 7, 14, .7); }
.snv-download-progress__meter span { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #42e6c9, #59c8ff, #9e8cff); box-shadow: 0 0 13px rgba(75, 220, 210, .36); transition: width .18s linear; }
.snv-download-progress.is-indeterminate .snv-download-progress__meter span { width: 30%; animation: snvDownloadMeterSweep 1.35s ease-in-out infinite; }
.snv-download-progress.is-success .snv-download-progress__meter span { width: 100%; background: linear-gradient(90deg, #43e4c5, #64f6da); }
.snv-download-progress.is-error .snv-download-progress__meter span { width: 100%; background: linear-gradient(90deg, #f18aa8, #ff7891); }
@keyframes snvDownloadMeterSweep { 0% { transform: translateX(-120%); opacity: .65; } 100% { transform: translateX(430%); opacity: 1; } }
.snv-download-progress__close { display: grid; place-items: center; width: 30px; height: 30px; border: 1px solid rgba(145, 177, 191, .2); border-radius: 10px; background: rgba(255,255,255,.035); color: #dffaf6; font-size: 16px; cursor: pointer; }
@keyframes snvDownloadSpin { to { transform: rotate(270deg); } }
@media (max-width: 767.98px) {
  .snv-download-progress { right: 12px; left: 12px; bottom: calc(96px + env(safe-area-inset-bottom)); width: auto; grid-template-columns: 50px minmax(0, 1fr) 30px; gap: 10px; padding: 11px 12px; border-radius: 16px; }
  body.snv-generation-overlay-visible.snv-download-panel-visible .snv-download-progress { bottom: calc(10px + env(safe-area-inset-bottom)); }
  .snv-download-progress__ring, .snv-download-progress__ring svg { width: 48px; height: 48px; }
}
@media (prefers-reduced-motion: reduce) {
  .snv-download-progress.is-indeterminate .snv-download-progress__ring svg { animation-duration: 3s; }
  .snv-download-progress__arc, .snv-download-progress__meter span { transition: none; }
}
