/* ============================================================
   EL PRINCIPITO FLOTANTE — widget de ayuda y soporte (v1)
   Compartido por aula-maestro, aula-alumno, aula-padres y ayuda.
   Personaje de la PLATAFORMA (no pastor): idéntico en cualquier
   iglesia. Posición: esquina inferior derecha; nunca tapa los
   botones centrales de acción y se puede minimizar al botón.
   ============================================================ */
.ppw-root{
  --ppw-bg:#FDFAF5; --ppw-ink:#1E293B; --ppw-slate:#475569; --ppw-orange:#D97706;
  --ppw-orange-dark:#B45309; --ppw-navy:#14406B; --ppw-gold:#C9962A; --ppw-border:#EFE5CB;
  position:fixed; right:16px; bottom:16px; z-index:640;
  font-family:"Outfit",-apple-system,"Segoe UI",sans-serif; color:var(--ppw-ink);
  display:flex; flex-direction:column; align-items:flex-end; gap:10px;
}
.ppw-bubble{
  max-width:248px; background:#fff; border:3px solid var(--ppw-gold); border-radius:18px;
  padding:10px 38px 10px 14px; font-weight:700; font-size:.9rem; line-height:1.4;
  box-shadow:0 8px 22px rgba(30,41,59,.18); position:relative; cursor:pointer;
  animation:ppw-bob 3.4s ease-in-out infinite;
}
.ppw-bubble::after{
  content:""; position:absolute; right:26px; bottom:-12px; width:18px; height:18px;
  background:#fff; border-right:3px solid var(--ppw-gold); border-bottom:3px solid var(--ppw-gold);
  transform:rotate(45deg); border-bottom-right-radius:5px;
}
.ppw-bubble .ppw-bubble-x{
  position:absolute; top:4px; right:6px; border:none; background:transparent; cursor:pointer;
  font-size:.85rem; color:var(--ppw-slate); padding:4px; line-height:1;
}
.ppw-fab{
  display:flex; align-items:center; gap:9px; border:3px solid var(--ppw-gold); cursor:pointer;
  background:#fff; border-radius:999px; padding:6px 16px 6px 7px;
  box-shadow:0 8px 22px rgba(30,41,59,.22); font-family:inherit;
  animation:ppw-bob 3.4s ease-in-out infinite;
}
.ppw-fab img{
  width:46px; height:46px; border-radius:50%; object-fit:cover; object-position:top center;
  border:2px solid var(--ppw-border); background:var(--ppw-bg); flex:none;
}
.ppw-fab .ppw-fab-txt{font-weight:900; color:var(--ppw-navy); font-size:.98rem; line-height:1.1; text-align:left;}
.ppw-fab .ppw-fab-txt small{display:block; font-weight:700; color:var(--ppw-orange-dark); font-size:.72rem;}
.ppw-fab:hover{transform:translateY(-2px);}
@keyframes ppw-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}

.ppw-panel{
  width:min(384px, calc(100vw - 24px)); max-height:min(72vh, 660px); overflow:auto;
  background:var(--ppw-bg); border:3px solid var(--ppw-gold); border-radius:22px;
  box-shadow:0 18px 44px rgba(30,41,59,.28); padding:0 0 14px;
}
.ppw-panel[hidden]{display:none !important;}
.ppw-bubble[hidden]{display:none !important;}
.ppw-head{
  position:sticky; top:0; background:linear-gradient(180deg,#FFF6DC, var(--ppw-bg));
  display:flex; align-items:center; gap:10px; padding:12px 14px 10px; border-bottom:2px dashed var(--ppw-border);
  z-index:2;
}
.ppw-head img{width:44px; height:44px; border-radius:50%; object-fit:cover; object-position:top center; border:2px solid var(--ppw-gold); background:#fff;}
.ppw-head .ppw-title{font-weight:900; color:var(--ppw-navy); font-size:1.02rem; line-height:1.15;}
.ppw-head .ppw-title small{display:block; font-weight:700; color:var(--ppw-slate); font-size:.76rem;}
.ppw-head .sp{flex:1;}
.ppw-iconbtn{
  border:2px solid var(--ppw-border); background:#fff; border-radius:10px; cursor:pointer;
  font-family:inherit; font-weight:900; color:var(--ppw-navy); padding:5px 10px; font-size:.9rem;
}
.ppw-where{
  margin:12px 14px 4px; background:#EFF6FF; border:2px solid #BFDBFE; border-radius:14px; padding:11px 13px;
}
.ppw-where .k{font-size:.72rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; color:#075985;}
.ppw-where .t{font-weight:900; color:var(--ppw-navy); font-size:1rem; margin:2px 0;}
.ppw-where .d{font-weight:600; color:var(--ppw-slate); font-size:.9rem; line-height:1.45;}
.ppw-where .main{
  display:inline-block; margin-top:8px; background:var(--ppw-orange); color:#fff; font-weight:900;
  border-radius:10px; padding:7px 12px; font-size:.86rem; box-shadow:0 3px 0 var(--ppw-orange-dark);
}
.ppw-faqs{padding:6px 14px 0;}
.ppw-faqs .k{font-size:.72rem; font-weight:900; letter-spacing:.07em; text-transform:uppercase; color:var(--ppw-orange-dark); margin:8px 0 6px;}
.ppw-faq{border:2px solid var(--ppw-border); border-radius:14px; background:#fff; margin-bottom:8px; overflow:hidden;}
.ppw-faq > button{
  width:100%; text-align:left; border:none; background:transparent; cursor:pointer; font-family:inherit;
  font-weight:800; color:var(--ppw-ink); font-size:.93rem; padding:11px 13px; line-height:1.35;
  display:flex; gap:8px; align-items:flex-start;
}
.ppw-faq > button .arw{margin-left:auto; color:var(--ppw-orange); font-weight:900; flex:none;}
.ppw-faq .ans{padding:0 13px 12px; font-weight:600; color:var(--ppw-slate); font-size:.9rem; line-height:1.5;}
.ppw-faq .ans ol{margin:4px 0 0 18px; padding:0;}
.ppw-faq .ans li{margin:3px 0;}
.ppw-faq .ans a, .ppw-foot a{color:var(--ppw-orange-dark); font-weight:900;}
.ppw-foot{padding:10px 14px 2px; text-align:center;}
.ppw-foot a{
  display:block; background:var(--ppw-navy); color:#fff !important; text-decoration:none;
  border-radius:14px; padding:12px; font-size:.95rem; box-shadow:0 4px 0 #0B2745;
}
@media (max-width:560px){
  .ppw-root{right:10px; bottom:10px;}
  .ppw-bubble{max-width:210px; font-size:.85rem;}
  .ppw-panel{width:calc(100vw - 20px);}
}
@media (prefers-reduced-motion: reduce){
  .ppw-bubble, .ppw-fab{animation:none;}
}
