.dv-help-fab {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  right: auto;
  bottom: max(66px, calc(env(safe-area-inset-bottom) + 66px));
  z-index: 99980;
  width: 42px;
  min-width: 42px;
  height: 42px;
  overflow: hidden;
  border: 1.5px solid rgba(255,255,255,0.86);
  border-radius: 999px;
  background: #7b3ee6;
  color: #fff;
  font: 900 0/1 Poppins, Arial, sans-serif;
  letter-spacing: 0;
  box-shadow: 0 10px 24px rgba(22, 8, 52, 0.24);
  cursor: pointer;
  padding: 0;
  transition: width 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.dv-floating-tools-toggle {
  position: fixed;
  right: max(16px, env(safe-area-inset-right));
  bottom: max(96px, calc(env(safe-area-inset-bottom) + 96px));
  z-index: 120010;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 44px;
  height: 44px;
  padding: 0 13px;
  border: 1.5px solid rgba(255,255,255,0.86);
  border-radius: 999px;
  background: #08070d;
  color: #fff;
  box-shadow: 0 14px 34px rgba(16, 10, 28, 0.28);
  font: 900 0.66rem/1 Poppins, Arial, sans-serif;
  letter-spacing: 0;
  text-transform: uppercase;
  cursor: pointer;
}

.dv-floating-tools-toggle::before {
  content: "Hide";
}

body.dv-tools-collapsed .dv-floating-tools-toggle {
  bottom: max(16px, env(safe-area-inset-bottom));
  background: linear-gradient(135deg, #6d28d9, #f59e0b);
}

body.dv-tools-collapsed .dv-floating-tools-toggle::before {
  content: "Tools";
}

body.dv-tools-collapsed .dv-help-fab,
body.dv-tools-collapsed .dv-help-panel,
body.dv-tools-collapsed .dv-help-popover,
body.dv-tools-collapsed .dv-help-hotspot-layer,
body.dv-tools-collapsed .tv-assistant,
body.dv-tools-collapsed .dv-common-dashboard-button {
  opacity: 0;
  pointer-events: none;
  transform: translateY(10px) scale(0.94);
}

.dv-help-fab::before {
  content: "?";
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  font: 900 1rem/1 Poppins, Arial, sans-serif;
}

.dv-help-fab:hover,
.dv-help-fab:focus-visible,
.dv-help-fab.is-open {
  width: 86px;
  transform: translateY(-1px);
  outline: none;
  box-shadow: 0 14px 30px rgba(22, 8, 52, 0.32);
}

.dv-help-fab:hover::before,
.dv-help-fab:focus-visible::before {
  content: "Help";
  text-transform: uppercase;
}

.dv-help-fab.is-open::before,
.dv-help-fab.is-open:hover::before,
.dv-help-fab.is-open:focus-visible::before {
  content: "Close";
  text-transform: uppercase;
}

.dv-help-fab.has-guide-nudge::after {
  content: "";
  position: absolute;
  right: 1px;
  top: 1px;
  width: 10px;
  height: 10px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #ffb020;
  box-shadow: 0 0 0 0 rgba(255, 176, 32, 0.55);
  animation: dvHelpNudgePulse 1.35s ease-out infinite;
}

@keyframes dvHelpNudgePulse {
  70% {
    box-shadow: 0 0 0 7px rgba(255, 176, 32, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(255, 176, 32, 0);
  }
}

.dv-help-panel {
  position: fixed;
  left: max(14px, env(safe-area-inset-left));
  right: auto;
  bottom: max(112px, calc(env(safe-area-inset-bottom) + 112px));
  z-index: 99979;
  width: min(360px, calc(100vw - 24px));
  max-height: min(620px, calc(100vh - 90px));
  overflow: auto;
  border: 2px solid rgba(38, 20, 76, 0.92);
  border-radius: 20px;
  background: rgba(255,255,255,0.96);
  color: #160d2c;
  box-shadow: 0 22px 54px rgba(18, 8, 43, 0.28);
  backdrop-filter: blur(18px);
  padding: 14px;
}

.dv-help-panel[hidden],
.dv-help-popover[hidden] {
  display: none;
}

.dv-help-panel-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
  margin-bottom: 14px;
}

.dv-help-panel h2 {
  margin: 0;
  color: #5b21b6;
  font: 800 0.96rem/1.25 Poppins, Arial, sans-serif;
}

.dv-help-panel p {
  margin: 6px 0 0;
  color: #4c4165;
  font: 600 0.78rem/1.5 Poppins, Arial, sans-serif;
}

.dv-help-close {
  width: 32px;
  height: 32px;
  border: 1.5px solid rgba(91, 33, 182, 0.28);
  border-radius: 999px;
  background: #fff;
  color: #5b21b6;
  font: 800 1rem/1 Poppins, Arial, sans-serif;
  cursor: pointer;
}

.dv-help-toggle-row {
  display: flex;
  gap: 8px;
  margin: 10px 0;
}

.dv-help-toggle {
  border: 1.5px solid #5b21b6;
  border-radius: 999px;
  background: #5b21b6;
  color: #fff;
  padding: 8px 11px;
  font: 800 0.68rem/1 Poppins, Arial, sans-serif;
  text-transform: uppercase;
  cursor: pointer;
}

.dv-help-toggle.is-muted {
  background: #fff;
  color: #5b21b6;
}

.dv-help-list {
  display: grid;
  gap: 8px;
}

.dv-help-card {
  border: 1.5px solid rgba(91, 33, 182, 0.18);
  border-radius: 14px;
  background: rgba(247, 244, 255, 0.84);
  padding: 10px;
}

.dv-help-card button {
  display: block;
  width: 100%;
  border: 0;
  background: transparent;
  color: #160d2c;
  text-align: left;
  font: 800 0.8rem/1.35 Poppins, Arial, sans-serif;
  cursor: pointer;
}

.dv-help-card p {
  margin-top: 8px;
  color: #4c4165;
}

.dv-help-hotspot-layer {
  position: fixed;
  inset: 0;
  z-index: 99970;
  pointer-events: none;
}

.dv-help-hotspot {
  position: fixed;
  width: 22px;
  height: 22px;
  border: 2px solid #fff;
  border-radius: 999px;
  background: #7b3ee6;
  color: #fff;
  font: 900 0.66rem/1 Poppins, Arial, sans-serif;
  box-shadow: 0 8px 18px rgba(22, 8, 52, 0.22);
  cursor: pointer;
  pointer-events: auto;
}

.dv-help-hotspot:hover,
.dv-help-hotspot:focus-visible {
  outline: none;
  transform: scale(1.08);
}

.dv-help-popover {
  position: fixed;
  z-index: 99990;
  left: 50%;
  top: 50%;
  width: min(440px, calc(100vw - 28px));
  transform: translate(-50%, -50%);
  border: 2px solid rgba(38, 20, 76, 0.92);
  border-radius: 20px;
  background: rgba(255,255,255,0.98);
  color: #160d2c;
  box-shadow: 0 24px 68px rgba(18, 8, 43, 0.34);
  padding: 18px;
}

.dv-help-popover h3 {
  margin: 0 36px 8px 0;
  color: #5b21b6;
  font: 800 1.02rem/1.3 Poppins, Arial, sans-serif;
}

.dv-help-popover p {
  margin: 0;
  color: #33264d;
  font: 600 0.9rem/1.65 Poppins, Arial, sans-serif;
}

@media (max-width: 720px) {
  .dv-help-fab {
    left: max(12px, env(safe-area-inset-left));
    right: auto;
    bottom: max(62px, calc(env(safe-area-inset-bottom) + 62px));
  }

  .dv-help-panel {
    left: 12px;
    right: 12px;
    bottom: max(112px, calc(env(safe-area-inset-bottom) + 112px));
    width: auto;
  }

  .dv-floating-tools-toggle {
    bottom: max(88px, calc(env(safe-area-inset-bottom) + 88px));
    height: 40px;
    min-width: 40px;
    padding: 0 11px;
    font-size: 0.6rem;
  }
}

/* Global Divyaverse button capitalization */
button,
[role="button"],
.primary-button,
.outline-button,
.compact-button,
.cta-button,
.ghost-button,
.idea-button,
.nav-link,
.dashboard-link-button,
.calendar-toggle,
.calendar-details-button,
.calendar-start-button,
.calendar-asset-button,
.calendar-video-link,
.calendar-song-link,
.festival-calendar-button,
.festival-vault-button {
  text-transform: uppercase !important;
}
