/* =========================================================
   PENTAGRAMA v5 · Susana Valdivé
   Mini agenda + reserva dentro del chatbot
   ========================================================= */

#pg5-root{
  --pg5-bg:#07110d;
  --pg5-bg2:#0b1812;
  --pg5-panel:#09150f;
  --pg5-surface:#0d1c15;
  --pg5-line:rgba(88,145,116,.28);
  --pg5-line-strong:rgba(53,230,161,.52);
  --pg5-text:#f3f7f4;
  --pg5-muted:#9eaaa4;
  --pg5-primary:#35e6a1;
  --pg5-primary-2:#87f4c8;
  --pg5-gold:#d3a84f;
  --pg5-danger:#ff8b8b;
  position:fixed;
  right:22px;
  bottom:22px;
  z-index:2147483000;
  font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
  color:var(--pg5-text);
  line-height:1.4;
  text-align:left;
}

#pg5-root *{box-sizing:border-box}

.pg5-launcher{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:54px;
  padding:9px 16px 9px 9px;
  border:1px solid var(--pg5-line-strong);
  border-radius:999px;
  background:rgba(7,17,13,.94);
  color:var(--pg5-text);
  box-shadow:0 18px 55px rgba(0,0,0,.42),0 0 0 1px rgba(53,230,161,.04);
  backdrop-filter:blur(16px);
  -webkit-backdrop-filter:blur(16px);
  cursor:pointer;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.pg5-launcher:hover{
  transform:translateY(-2px);
  border-color:var(--pg5-primary);
  box-shadow:0 18px 58px rgba(0,0,0,.45),0 0 0 5px rgba(53,230,161,.08);
}
.pg5-launcher-icon,.pg5-avatar{
  display:grid;
  place-items:center;
  width:36px;
  height:36px;
  flex:0 0 36px;
  border-radius:50%;
  color:var(--pg5-primary);
  background:rgba(53,230,161,.10);
  border:1px solid rgba(53,230,161,.30);
}
.pg5-launcher-icon svg,.pg5-avatar svg{width:23px;height:23px}
.pg5-launcher-label{
  font-size:12px;
  letter-spacing:.12em;
  font-weight:800;
}
.pg5-online-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--pg5-primary);
  box-shadow:0 0 14px rgba(53,230,161,.75);
}

.pg5-panel{
  position:absolute;
  right:0;
  bottom:68px;
  width:min(420px,calc(100vw - 30px));
  height:min(690px,calc(100vh - 105px));
  display:flex;
  flex-direction:column;
  overflow:hidden;
  opacity:0;
  visibility:hidden;
  transform:translateY(12px) scale(.985);
  transform-origin:bottom right;
  pointer-events:none;
  border:1px solid var(--pg5-line);
  border-radius:24px;
  background:
    radial-gradient(circle at 90% 0%,rgba(53,230,161,.08),transparent 30%),
    linear-gradient(180deg,rgba(9,21,15,.99),rgba(5,13,9,.99));
  box-shadow:0 28px 85px rgba(0,0,0,.58);
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
}
.pg5-panel.is-open{
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}

.pg5-header{
  display:flex;
  align-items:center;
  gap:11px;
  padding:16px 17px;
  border-bottom:1px solid var(--pg5-line);
  background:rgba(7,17,13,.92);
}
.pg5-headcopy{min-width:0;display:flex;flex-direction:column;gap:2px;flex:1}
.pg5-headcopy strong{
  font-size:13px;
  letter-spacing:.10em;
}
.pg5-headcopy span{
  display:flex;
  align-items:center;
  gap:6px;
  color:var(--pg5-muted);
  font-size:11px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.pg5-headcopy i{
  width:7px;height:7px;border-radius:50%;
  background:var(--pg5-primary);
  box-shadow:0 0 10px rgba(53,230,161,.65);
}
.pg5-close{
  width:34px;height:34px;border-radius:50%;
  border:1px solid var(--pg5-line);
  background:transparent;color:var(--pg5-muted);
  font-size:22px;line-height:1;cursor:pointer;
}
.pg5-close:hover{color:var(--pg5-text);border-color:var(--pg5-line-strong)}

.pg5-messages{
  flex:1;
  min-height:0;
  overflow-y:auto;
  padding:15px 14px 12px;
  scrollbar-width:thin;
  scrollbar-color:rgba(53,230,161,.30) transparent;
}
.pg5-messages::-webkit-scrollbar{width:7px}
.pg5-messages::-webkit-scrollbar-thumb{
  background:rgba(53,230,161,.25);
  border-radius:999px;
}

.pg5-msg{display:flex;margin:0 0 10px}
.pg5-msg-user{justify-content:flex-end}
.pg5-msg-bot{justify-content:flex-start}
.pg5-bubble{
  max-width:86%;
  padding:10px 12px;
  border-radius:15px;
  border:1px solid var(--pg5-line);
  background:var(--pg5-surface);
  color:var(--pg5-text);
  font-size:12.5px;
  line-height:1.55;
  overflow-wrap:anywhere;
}
.pg5-msg-user .pg5-bubble{
  background:linear-gradient(135deg,#22d993,#48edaf);
  color:#04120b;
  border-color:rgba(53,230,161,.65);
  border-bottom-right-radius:5px;
  font-weight:650;
}
.pg5-msg-bot .pg5-bubble{border-bottom-left-radius:5px}
.pg5-bubble a{color:var(--pg5-primary-2);text-decoration:underline}

.pg5-typing .pg5-bubble{
  display:flex;gap:5px;align-items:center;min-width:48px
}
.pg5-typing span{
  width:6px;height:6px;border-radius:50%;
  background:var(--pg5-primary);
  animation:pg5Typing 1s infinite ease-in-out;
}
.pg5-typing span:nth-child(2){animation-delay:.14s}
.pg5-typing span:nth-child(3){animation-delay:.28s}
@keyframes pg5Typing{
  0%,70%,100%{opacity:.25;transform:translateY(0)}
  35%{opacity:1;transform:translateY(-3px)}
}

.pg5-quick,.pg5-dynamic-quick{
  display:flex;
  gap:7px;
  overflow-x:auto;
  padding:9px 14px 7px;
  scrollbar-width:none;
}
.pg5-quick::-webkit-scrollbar,.pg5-dynamic-quick::-webkit-scrollbar{display:none}
.pg5-dynamic-quick{padding:4px 0 12px;margin:0 0 2px}
.pg5-quick button,.pg5-dynamic-quick button{
  flex:0 0 auto;
  border:1px solid var(--pg5-line);
  border-radius:999px;
  background:rgba(255,255,255,.02);
  color:#c9d2ce;
  padding:7px 10px;
  font-size:10.5px;
  font-weight:650;
  cursor:pointer;
  transition:.16s ease;
}
.pg5-quick button:hover,.pg5-dynamic-quick button:hover{
  color:var(--pg5-primary);
  border-color:var(--pg5-line-strong);
  background:rgba(53,230,161,.06);
}

.pg5-preventa{
  margin:0 14px 8px;
  padding:9px 10px;
  border-left:2px solid rgba(53,230,161,.55);
  background:rgba(53,230,161,.035);
  color:var(--pg5-muted);
  font-size:9.5px;
  line-height:1.45;
}
.pg5-preventa strong{color:#d7e0dc}

.pg5-composer{
  display:flex;
  align-items:center;
  gap:8px;
  padding:10px 12px;
  border-top:1px solid var(--pg5-line);
}
.pg5-input{
  flex:1;min-width:0;height:42px;
  border:1px solid var(--pg5-line);
  border-radius:14px;
  background:rgba(255,255,255,.025);
  color:var(--pg5-text);
  outline:none;
  padding:0 13px;
  font-size:12px;
}
.pg5-input::placeholder{color:#74827b}
.pg5-input:focus{
  border-color:var(--pg5-primary);
  box-shadow:0 0 0 3px rgba(53,230,161,.08);
}
.pg5-send{
  width:42px;height:42px;display:grid;place-items:center;
  border:0;border-radius:50%;
  background:var(--pg5-primary);color:#04120b;
  cursor:pointer;
}
.pg5-send svg{width:20px;height:20px}
.pg5-send:hover{filter:brightness(1.06)}

.pg5-legal{
  padding:0 13px 11px;
  color:#728078;
  font-size:8.5px;
  line-height:1.4;
}
.pg5-legal a{color:var(--pg5-primary)}

/* ===== MINI AGENDA ===== */
.pg5-calendar{
  margin:10px 0 12px;
  padding:13px;
  border:1px solid rgba(53,230,161,.30);
  border-radius:18px;
  background:
    radial-gradient(circle at 100% 0%,rgba(53,230,161,.08),transparent 35%),
    rgba(9,22,15,.94);
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.015);
}
.pg5-cal-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:10px;
  margin-bottom:11px;
}
.pg5-cal-head>div{display:flex;flex-direction:column;gap:2px}
.pg5-cal-head strong{font-size:12px;letter-spacing:.04em}
.pg5-cal-head span{font-size:9.5px;color:var(--pg5-muted)}
.pg5-cal-refresh{
  width:30px;height:30px;border-radius:50%;
  border:1px solid var(--pg5-line);
  background:transparent;color:var(--pg5-primary);
  cursor:pointer;font-size:16px;
}
.pg5-cal-refresh:hover{border-color:var(--pg5-primary)}

.pg5-cal-nav{
  display:grid;
  grid-template-columns:30px minmax(0,1fr) 30px;
  align-items:center;
  gap:6px;
}
.pg5-cal-arrow{
  width:30px;height:30px;border-radius:50%;
  border:1px solid var(--pg5-line);
  background:transparent;color:#cbd5d0;
  cursor:pointer;font-size:18px;
}
.pg5-cal-arrow:disabled{opacity:.25;cursor:default}
.pg5-cal-days{
  display:flex;gap:6px;overflow-x:auto;padding:1px;
  scrollbar-width:none;
}
.pg5-cal-days::-webkit-scrollbar{display:none}
.pg5-cal-day{
  flex:0 0 auto;
  min-width:94px;
  padding:8px 8px;
  border:1px solid var(--pg5-line);
  border-radius:12px;
  background:rgba(255,255,255,.018);
  color:#c7d0cb;
  cursor:pointer;
  text-align:left;
}
.pg5-cal-day strong{
  display:block;font-size:9.5px;line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.pg5-cal-day span{display:block;margin-top:3px;font-size:8.5px;color:#79867f}
.pg5-cal-day.is-active{
  border-color:var(--pg5-primary);
  background:rgba(53,230,161,.10);
  color:var(--pg5-primary-2);
}
.pg5-cal-selected-day{
  margin:11px 0 7px;
  color:#e1e7e4;
  font-size:10.5px;
  font-weight:750;
}
.pg5-cal-times{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:6px;
}
.pg5-cal-time{
  min-height:32px;
  border:1px solid var(--pg5-line);
  border-radius:10px;
  background:rgba(255,255,255,.018);
  color:#c6d0cb;
  font-size:10px;
  cursor:pointer;
}
.pg5-cal-time:hover{
  border-color:rgba(53,230,161,.55);
  color:var(--pg5-primary);
}
.pg5-cal-time.is-active{
  border-color:var(--pg5-primary);
  background:var(--pg5-primary);
  color:#03120a;
  font-weight:800;
}
.pg5-cal-reserve{
  width:100%;
  margin-top:10px;
  min-height:38px;
  border:0;border-radius:12px;
  background:linear-gradient(135deg,#22d993,#4ef0b1);
  color:#03120a;
  font-size:11px;
  font-weight:850;
  cursor:pointer;
}
.pg5-cal-reserve:disabled{
  opacity:.38;
  cursor:not-allowed;
}
.pg5-cal-full{
  display:block;
  margin-top:8px;
  text-align:center;
  color:#7f9188;
  font-size:9px;
  text-decoration:none;
}
.pg5-cal-full:hover{color:var(--pg5-primary)}

/* ===== RESPONSIVE ===== */
@media (max-width:640px){
  #pg5-root{right:10px;bottom:10px;left:10px}
  .pg5-launcher{margin-left:auto}
  .pg5-panel{
    position:fixed;
    left:8px;right:8px;
    bottom:76px;
    width:auto;
    height:min(74vh,680px);
    border-radius:20px;
    transform-origin:bottom center;
  }
  .pg5-cal-times{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media (max-width:390px){
  .pg5-panel{left:5px;right:5px;bottom:70px;height:76vh}
  .pg5-launcher-label{display:none}
  .pg5-launcher{padding:8px}
  .pg5-cal-times{grid-template-columns:repeat(2,minmax(0,1fr))}
}
