/* Bola flutuante de Acessos Rápidos */
/* ---------- Botão flutuante de Acessos Rápidos ---------- */
.quick-fab{ position:fixed; right:24px; bottom:24px; z-index:45; width:56px; height:56px; }
.quick-fab[style*="left"]{ right:auto; bottom:auto; }
.fab-btn{ touch-action:none; cursor:grab; border:2px solid rgba(255,255,255,.95); width:56px; height:56px; border-radius:999px; background:#fff; color:var(--wine); position:relative;
  display:flex; align-items:center; justify-content:center;
  box-shadow:0 10px 24px -8px rgba(142,27,46,.6), 0 2px 6px rgba(0,0,0,.12); transition:transform .2s, background .2s; }
.fab-btn:hover{ background:#fff5f7; transform:scale(1.06); }
.fab-btn:focus-visible{ outline:3px solid var(--wine-100); outline-offset:3px; }
.fab-ico{ position:absolute; display:flex; transition:transform .25s, opacity .2s; }
.fab-ico-close{ opacity:0; transform:rotate(-90deg); }
.fab-open .fab-ico-open{ opacity:0; transform:rotate(90deg); }
.fab-open .fab-ico-close{ opacity:1; transform:none; }
.fab-logo{ width:34px; height:34px; object-fit:contain; filter:drop-shadow(0 1px 1px rgba(80,10,25,.18)); }
.fab-dragging .fab-btn{ cursor:grabbing; transform:scale(1.1); transition:none; box-shadow:0 16px 32px -8px rgba(142,27,46,.7); }
.fab-menu{ position:absolute; right:0; bottom:calc(100% + 12px); width:260px; max-height:min(70vh,480px); display:flex; flex-direction:column; background:var(--card);
  border:1px solid var(--border); border-radius:1rem; box-shadow:0 18px 40px -12px rgba(15,15,20,.35);
  transform-origin:bottom right; transform:translateY(8px) scale(.96); opacity:0; visibility:hidden;
  transition:transform .18s, opacity .18s, visibility .18s; }
.fab-open .fab-menu{ transform:none; opacity:1; visibility:visible; }
/* menu abre para o lado com mais espaço, conforme onde a bola foi solta */
.fab-below .fab-menu{ bottom:auto; top:calc(100% + 12px); transform-origin:top right; }
.fab-on-left .fab-menu{ right:auto; left:0; transform-origin:bottom left; }
.fab-below.fab-on-left .fab-menu{ transform-origin:top left; }
.fab-menu-head{ display:flex; align-items:center; gap:.5rem; padding:.85rem 1rem .6rem; font-weight:800; font-size:.875rem; color:var(--text); border-bottom:1px solid var(--border); }
.fab-menu-list{ overflow-y:auto; padding:.4rem; }
.fab-item{ display:flex; align-items:center; gap:.65rem; width:100%; padding:.4rem .5rem; border-radius:.65rem; font-size:.85rem; font-weight:600; color:var(--text); text-align:left; transition:.15s; }
.fab-item:hover{ background:rgba(142,27,46,.06); color:var(--wine); }
.fab-item:hover .qa-icon{ background:var(--wine); color:#fff; }
@media (max-width:640px){ .quick-fab{ right:16px; bottom:16px; } .fab-menu{ width:min(260px, calc(100vw - 32px)); } }

.fab-item{ position:relative; }
.fab-item .qa-ext{ position:static; margin-left:auto; color:var(--muted); }
