
#pianista-access-btn{
  position:fixed;left:32px;top:50%;
  width:58px;height:58px;
  background:#CB1516;color:#fff;
  border-radius:14px;
  display:flex;align-items:center;justify-content:center;
  cursor:grab;z-index:99999;
  box-shadow:0 12px 28px rgba(0,0,0,.3);
}
#pianista-access-btn.dragging{cursor:grabbing}

#pianista-access-panel{
  position:fixed;
  background:#fff;
  padding:18px;
  width:260px;
  border-radius:16px;
  box-shadow:0 12px 32px rgba(0,0,0,.25);
  opacity:0;visibility:hidden;
  transition:.2s ease;
  z-index:99998;
}
#pianista-access-panel.active{opacity:1;visibility:visible}

#pianista-access-panel button{
  width:100%;margin-bottom:10px;
  padding:10px;border-radius:8px;
  border:none;background:#CB1516;color:#fff;
}

/* Accessibility modes – isolated */
.pa-contrast body *{background:#000!important;color:#fff!important}
.pa-grayscale body>*:not(#pianista-access-btn):not(#pianista-access-panel){
  filter:grayscale(1)!important
}
.pa-links a{outline:3px dashed #CB1516!important}
.pa-cursor *{cursor:url('https://cur.cursors-4u.net/cursors/cur-2/cur117.cur'),auto!important}
/* Prevent page scrolling while dragging */
.pa-noscroll, .pa-noscroll body{
  overflow: hidden !important;
  touch-action: none !important;
}
#pianista-access-btn{
  touch-action: none; /* stops browser scroll/zoom gestures on the button */
  user-select: none;
  -webkit-user-select: none;
}

/* v4.2 - botão totalmente quadrado */
#pianista-access-btn{
  border-radius: 0 !important;
}

/* v4.2 - cursor grande mais elegante (desktop apenas via .pa-cursor em html) */
.pa-cursor, .pa-cursor *{
  cursor: default !important;
}
.pa-cursor a, .pa-cursor button, .pa-cursor [role="button"], .pa-cursor input, .pa-cursor textarea, .pa-cursor select, .pa-cursor label{
  cursor: pointer !important;
}
/* Aumenta cursor usando um SVG minimalista (preto + contorno branco) */
.pa-cursor *{
  cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cpath d='M10 6 L10 34 L18 28 L22 38 L27 36 L23 26 L33 26 Z' fill='black' stroke='white' stroke-width='2'/%3E%3C/svg%3E") 4 4, auto !important;
}

/* v4.2 - painel responsivo (mobile vira bottom-sheet) */
@media (max-width: 768px){
  #pianista-access-panel{
    left: 8px !important;
    right: 8px !important;
    width: auto !important;
    bottom: 12px !important;
    top: auto !important;
    transform: translateY(8px) scale(1) !important;
    border-radius: 18px !important;
  }
  #pianista-access-panel.active{
    transform: translateY(0) scale(1) !important;
  }
}

/* Alguns frameworks aplicam animação via duração/iterações */
.pa-pause *{
  animation-duration: 0.001ms !important;
  animation-iteration-count: 1 !important;
  transition-duration: 0s !important;
}
/* Para elementos com movimento suave via CSS */
.pa-pause html, .pa-pause body{
  scroll-behavior: auto !important;
}

.pa-text-control{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:10px 0 14px;
}

.pa-text-btn{
  width:42px;
  height:42px;
  font-size:22px;
  line-height:1;
  border:none;
  background:#CB1516;
  color:#fff;
  cursor:pointer;
}

.pa-text-indicator{
  font-size:14px;
  min-width:56px;
  text-align:center;
  font-weight:600;
}

/* Botão flutuante quadrado garantido */
#pianista-access-btn{
  border-radius:0 !important;
}

/* v4.5 - UI controle de fonte (mobile) */
.pa-text-control{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding:12px;
  border:1px solid rgba(0,0,0,.08);
  border-radius:14px;
  margin:10px 0 14px;
}
.pa-text-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}
.pa-text-label{
  font-size:13px;
  font-weight:700;
  opacity:.85;
}
.pa-text-indicator{
  font-size:13px;
  font-weight:800;
  padding:6px 10px;
  border-radius:10px;
  background:rgba(203,21,22,0.08);
  color:#111;
  min-width:64px;
  text-align:center;
}
.pa-text-actions{
  justify-content:flex-end;
}
.pa-text-btn{
  width:48px;
  height:44px;
  font-size:22px;
  line-height:1;
  border:none;
  border-radius:12px;
  background:#CB1516;
  color:#fff;
  cursor:pointer;
}
.pa-text-btn:disabled{
  opacity:.4;
  cursor:not-allowed;
}

/* v4.7 - UI reta (sem arredondamento) */
#pianista-access-panel{ border-radius: 0 !important; }
#pianista-access-panel button{ border-radius: 0 !important; }
.pa-text-control{ border-radius: 0 !important; }
.pa-text-indicator{ border-radius: 0 !important; }
.pa-text-btn{ border-radius: 0 !important; }


/* v4.9 - Tamanho da fonte (compatível com Elementor)
   1) Mantém base para conteúdos em rem/em
   2) Se o site usa Elementor com px via variáveis globais, o JS cria vars base e
      reescreve as variáveis para escalar proporcionalmente (sem quebrar layout). */
:root{ --pa-text-scale: 1; }
html{ font-size: calc(100% * var(--pa-text-scale)); }

/* v5.0 - não escalar o painel */
#pianista-access-panel, #pianista-access-panel *{
  font-size: 14px;
}
#pianista-access-panel h4{ font-size: 16px; }
