    :root{
      --upse-blue:#0B4F70; --upse-mar:#2A9D8F; --upse-gold:#F4B000;
      --upse-morada:#6A1B9A; --upse-coral:#FF6B6B; --sand:#FFF7EC; --ink:#0e1b25;
      --bg:#ffffff; --text:#0f172a; --card:#ffffff; --muted:#64748b; --border:#e2e8f0;
    }
    body {
  background: radial-gradient(circle at 30% 30%, #fffdf7, #fefaf2, #fff7ec);
  background-attachment: fixed;
  transition: background 0.4s ease;
}
body.dark {
--bg:#0b1220; --text:#e5e7eb; --card:#111827; --muted:#9ca3af; --border:#1f2937;
}
    *{box-sizing:border-box}
    body{margin:0;background:var(--sand);color:var(--text);font-family:Inter,system-ui,Segoe UI,Arial,sans-serif}
    h1,h2,h3{font-family:Unna,Georgia,serif}

    /* Header */
    .top{
      position: sticky;  
      top: 0;                    /* Se queda pegado arriba */
      z-index: 1000;  
      background:linear-gradient(90deg,var(--upse-blue),var(--upse-mar),var(--upse-morada));
      color:#fff; padding:16px;
    }
    .top-inner{max-width:1100px;margin:0 auto;display:flex;gap:14px;align-items:center;justify-content:space-between}
    .brand{display:flex;gap:10px;align-items:center}
    .brand i{background:#ffffff1a;width:40px;height:40px;display:grid;place-items:center;border-radius:12px}
    .controls{display:flex;gap:8px}


    /* Main */
    main{max-width:1100px;margin:24px auto;padding:0 16px}
    .grid{display:grid;gap:18px}
    @media(min-width:720px){.grid-3{grid-template-columns:repeat(3,1fr)}}
    .card{background:var(--card);border:1px solid var(--border);border-radius:18px;padding:18px;box-shadow:0 8px 30px rgba(2,8,23,.06)}
    .chip{
      display:inline-block;
      border:1px dashed var(--border);padding:.35rem .6rem;border-radius:999px;
      background:#fff;
      font-weight:600}
    body.dark .chip{background:#0b1220
    }

    /* Quiz */
    .quiz-title{font-weight:800;font-size:1.25rem;margin-bottom:8px;color:var(--upse-blue)}
    body.dark .quiz-title{color:#93c5fd}
    .progress{height:8px;background:#eef2f7;border-radius:999px;overflow:hidden}
    body.dark .progress{background:#1f2937}
    .progress-fill{height:100%;background:linear-gradient(90deg,var(--upse-morada),var(--upse-gold));width:0%}
    .quiz-option{background:var(--card);border:1px solid var(--border);padding:.8rem 1rem;border-radius:14px;cursor:pointer;transition:.2s;margin-top:10px}
    .quiz-option:hover{transform:translateX(4px)}
    .quiz-option.correct{background:#dcfce7;border-color:#16a34a}
    .quiz-option.incorrect{background:#fee2e2;border-color:#ef4444}
    body.dark .quiz-option.correct{background:#052e1a}
    body.dark .quiz-option.incorrect{background:#3b0a0a}
    .quiz-feedback{padding:12px;border-radius:12px;background:#f8fafc;margin-top:12px;border:1px dashed var(--border)}
    body.dark .quiz-feedback{background:#0b1220}

    /* Chat */
    .chat-toggle{
      position:fixed;
      bottom:18px;
      right:18px;
      width:58px;
      height:58px;
      border-radius:9999px;
      background:linear-gradient(120deg,var(--upse-blue),var(--upse-mar));
      color:#fff;border:none;
      display:grid;
      place-items:center;
      box-shadow:0 18px 40px rgba(2,8,23,.25);
      cursor:pointer;
      z-index:40;
    }
    .chatbox{
      position:fixed;
      bottom:80px;
      right:30px;
      width:340px;
      height:520px;
      background:var(--card);
      border:1px solid var(--border);
      border-radius:16px;
      box-shadow:0 24px 60px rgba(2,8,23,.25);
      display:none;
      flex-direction:column;
      overflow:hidden;
      z-index:50;
    }
    .chatbox.active{
      display:flex
    }
    .chatbox-header{
      background:linear-gradient(90deg,var(--upse-blue),var(--upse-morada));
      color:#fff;
      padding:12px 14px;
      display:flex;align-items:center;
      justify-content:space-between
    }
    .chatbox-body{
      background:#fff; 
      height: calc(520px - 52px); 
      flex:1;display:flex;
      flex-direction:column
    }
    #chatboxMessages{
      flex:1;
      overflow-y:auto;
      padding:12px;
      scroll-behavior:smooth;
      max-height:380px
    }
    .msg{
      max-width:75%;
      padding:10px 12px;
      border-radius:14px;
      margin:8px 0;
      font-size:.92rem;
      box-shadow:0 6px 18px rgba(2,8,23,.08)
    }
    .msg.ai{
      background:#f1f5f9
    }
    .msg.user{
      background:linear-gradient(90deg,var(--upse-mar),#52c7ba);
      color:#fff;
      margin-left:auto
    }
    body.dark .msg.ai{
      background:#0f172a;
      color:#e5e7eb
    }
    .chatbox-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--card)}
    .chatbox-input{display:flex;gap:8px;padding:10px;border-top:1px solid var(--border);background:var(--card);align-items:center}
    /* Allow the input to shrink on small widths so buttons don't overflow */
    .chatbox-input input{flex:1 1 auto;min-width:0;border:1px solid var(--border);border-radius:12px;padding:.55rem .7rem;background:transparent;color:var(--text);outline:none}
    /* Toolbar should not grow and keep buttons compact */
    .chat-toolbar{flex:0 0 auto;display:flex;gap:8px;align-items:center}
    .btn-chat{padding:.45rem .6rem;min-width:36px;display:inline-flex;align-items:center;justify-content:center}
    .chatbox-input .send{
      flex:0 0 auto;
      background:linear-gradient(90deg,var(--upse-gold),#ffd36e);
      color:#5a4100;
      border-radius:12px;
      padding:.45rem .6rem;
      border:none;
      display:inline-flex;align-items:center;justify-content:center
    }

    /* Ensure toolbar icons are visible and not clipped by rounded corners */
    .chatbox{overflow:visible}

    /* Responsive: make chatbox full-width on very small screens */
    @media (max-width:420px){
      .chatbox{right:12px;left:12px;width:calc(100% - 24px);bottom:80px;height:60vh}
      .chatbox-body{height:calc(60vh - 52px)}
      #chatboxMessages{max-height:calc(60vh - 120px)}
    }
    .chat-hint{
      font-size:.78rem;
      color:var(--muted);
      padding:6px 10px;
      text-align:center
    }
    .chat-toolbar{
      display:flex;
      gap:8px;
      align-items:center
    }



    /* Pills & tags */
    .pill{display:inline-block;font-size:.8rem;padding:.3rem .55rem;border-radius:999px;background:#eef2f7;margin-right:6px}
    body.dark .pill{background:#111827;color:#e5e7eb}

    .section-title{font-weight:800;font-size:1.6rem;margin:10px 0}

    

/* ====== Ribbon superior con gradiente institucional ====== */
.upse-ribbon{
  background: linear-gradient(90deg, var(--upse-blue) 0%, var(--upse-mar) 50%, var(--upse-morada) 100%);
  border-bottom: 3px solid rgba(255,255,255,.2);
  position: sticky; top:0; z-index:50;
}
.upse-wave{
  height: 10px;
  background:
    radial-gradient(12px 8px at 10px 6px, rgba(255,255,255,.8) 55%, transparent 60%) repeat-x;
  background-size: 40px 10px;
  filter: saturate(120%);
  opacity:.6;
}

/* ====== Hero ====== */
.glassy{
  background: linear-gradient(120deg, rgba(255,255,255,.6), rgba(255,255,255,.9));
  backdrop-filter: blur(8px);
  border: 1px solid rgba(255,255,255,.6);
}
.upse-hero {
  background: linear-gradient(120deg, rgba(255,255,255,.85), rgba(255,255,255,.9));
  animation: heroFloat 12s ease-in-out infinite alternate;
}

/* New hero layout: two columns with image on right */
.upse-hero .hero-inner{display:flex;flex-direction:column;gap:18px;align-items:stretch}
.upse-hero .hero-content{flex:1;padding:8px}
.upse-hero .hero-image{flex:0 0 320px;display:flex;align-items:center;justify-content:center;padding:12px}
.upse-hero .hero-image img{width:100%;height:220px;object-fit:cover;border-radius:12px;box-shadow:0 8px 30px rgba(2,8,23,.08)}

@media(min-width:880px){
  .upse-hero .hero-inner{flex-direction:row;align-items:center;padding:28px}
  .upse-hero .hero-image{flex:0 0 360px;height:100%}
  .upse-hero .hero-image img{height:260px}
  .upse-hero .hero-content{padding:14px}
  .upse-hero{padding:6px}
}

@keyframes heroFloat {
  0% { transform: translateY(0px); }
  100% { transform: translateY(-8px); }
}

/* ====== Chips ====== */
.chip{
  font-weight:600; font-size:.85rem;
  padding:.45rem .75rem; border-radius:9999px;
  background: #fff; border:1px dashed #e2e8f0;
  box-shadow: 0 3px 10px rgba(2,8,23,.08);
}
.chip-gold{border-color:var(--upse-gold); color:#7a5400}
.chip-morada{border-color:var(--upse-morada); color:#3f0f61}
.chip-mar{border-color:var(--upse-mar); color:#0b5e58}

/* ====== Cards ====== */
.card-emphasis{
  background:#fff; border-radius:24px; padding:20px;
  box-shadow:0 10px 30px rgba(2,8,23,.08);
}
.card-title{font-weight:800; font-size:1.25rem}
.card-text{color:#475569}

/* ====== Secciones ====== */
.section-title{
  font-family:Unna,serif;
  font-size:1.75rem; font-weight:800; color:var(--ink);
  margin-bottom:18px;
}
.marker{background:linear-gradient(90deg, rgba(244,176,0,.25), rgba(42,157,143,.25)); padding:.25rem .5rem; border-radius:12px}

/* ====== Timeline ====== */
.timeline-item{
  position:relative; background:#fff; border-radius:20px; padding:20px;
  box-shadow:0 12px 34px rgba(2,8,23,.06); border:1px solid #eef2f7;
}
.timeline-item::before{
  content:""; position:absolute; left:18px; top:-28px; height:28px; width:2px;
  background: linear-gradient(var(--upse-gold), var(--upse-morada));
  border-radius:2px;
}
.timeline-dot{position:absolute; width:14px; height:14px; border-radius:9999px; left:14px; top:-38px; box-shadow:0 0 0 4px #fff}


/* ====== Learning cards ====== */
.learn-card{
  background:#fff; border-radius:22px; padding:20px; border:1px solid #eef2f7;
  box-shadow:0 10px 30px rgba(2,8,23,.08);
  transition:transform .25s ease, box-shadow .25s ease;
}
.hover-rise:hover{transform:translateY(-6px); box-shadow:0 18px 46px rgba(2,8,23,.12)}
    .btn-chat{
      font-weight:700;
      padding:.55rem .9rem;
      border-radius:12px;border:1px solid #ffffff33;
      background:#000000;
      color:#fff;
      cursor:pointer
    }
.btn{
  font-weight:700;
  padding:.6rem 1rem; 
  border-radius:14px; 
  border:none; 
  cursor:pointer;
  transition: transform .15s ease, 
  box-shadow .15s ease;
  box-shadow:0 8px 20px rgba(2,8,23,.12);
}
.btn:hover{transform:translateY(-1px)}
.btn-mar{background:linear-gradient(90deg,var(--upse-mar),#52c7ba); color:#fff}
.btn-gold{background:linear-gradient(90deg,var(--upse-gold),#ffd36e); color:#5a4100}
.btn-morada{background:linear-gradient(90deg,var(--upse-morada),#9d4edd); color:#fff}
.btn-coral{background:linear-gradient(90deg,var(--upse-coral),#ff9fa0); color:#5a0b0b}
.btn-mix{background:linear-gradient(90deg,var(--upse-blue),var(--upse-mar)); color:#fff}

/* ====== Glosario ====== */
.glossary .term{border-bottom:2px dotted var(--upse-mar); cursor:help}

/* ====== Quiz ====== */
.quiz .progress{height:8px; background:#eef2f7; border-radius:9999px; overflow:hidden}
.progress-fill{height:100%; background: linear-gradient(90deg,var(--upse-morada),var(--upse-gold))}
.quiz-option{
  background:#fff; border:1px solid #e2e8f0; padding:.75rem 1rem; border-radius:14px; cursor:pointer;
  transition: background .2s ease, transform .1s ease, border-color .2s ease;
}
.quiz-option:hover{background:#fafafa; transform:translateX(4px); border-color:#cbd5e1}
.quiz-option.correct{background:linear-gradient(90deg,#ecfdf5,#fff); border-color: #16a34a}
.quiz-option.incorrect{background:linear-gradient(90deg,#fff1f2,#fff); border-color:#ef4444}
.quiz-feedback{padding:12px; border-radius:12px; background:#f8fafc; border:1px dashed #cbd5e1}

/* ====== CTA ====== */
.cta{
  display:flex; 
  flex-direction:column; 
  gap:16px; 
  align-items:center; 
  justify-content:space-between;
  background:linear-gradient(120deg, rgba(42,157,143,.12), rgba(244,176,0,.12));
  border:1px solid rgba(2,8,23,.06); 
  border-radius:24px; 
  padding:20px;
}
@media (max-width: 720px){
  .cta {
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    gap: 1rem;
    padding: 1.25rem;
    border-radius: 20px;
    background: linear-gradient(120deg, rgba(42,157,143,.10), rgba(244,176,0,.10));
  }

  .cta-content h2 {
    font-size: 1.3rem;
    line-height: 1.4;
  }

  .cta-content p {
    font-size: 0.95rem;
    margin-top: 0.5rem;
  }

  .cta-actions {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
    width: 100%;
  }

  .cta-actions .btn {
    width: 100%;
    text-align: center;
    font-size: 1rem;
    padding: 0.9rem;
    border-radius: 14px;
  }
}


/* ====== Utilidades ====== */
.text-upse-blue{color:var(--upse-blue)}
.bg-upse-gold{background:var(--upse-gold)}
.bg-upse-mar{background:var(--upse-mar)}
.bg-upse-morada{background:var(--upse-morada)}

/* --- Añade esto al final de upse-theme.css --- */

/* 1. Habilitar scroll suave para los anclajes (CTA) */
html {
 scroll-behavior: smooth;
}

/* 2. Estilos para el contenido desplegable "Ver más" */
.info-adicional {
 /* Oculto por defecto */
 max-height: 0;
 overflow: hidden;
 margin-top: 0;
 
 /* Transición suave */
 transition: max-height 0.4s ease-out, margin-top 0.4s ease-out;
 
 /* Estilos del texto */
 font-size: 0.9rem;
 line-height: 1.6;
 color: var(--upse-text-muted); /* O usa: text-slate-600 */
}

/* 3. Clase 'active' que añade el JS */
.info-adicional.active {
 /* Mostrar contenido */
 max-height: 500px; /* (Altura máxima amplia) */
 margin-top: 1.25rem; /* (separación) */
}

/* 4. Estilos para la lista de ítems dentro del desplegable */
.lista-info {
 list-style: none;
 padding-left: 0;
 margin-top: 0.75rem;
 display: flex;
 flex-direction: column;
 gap: 0.5rem;
}

.lista-info li {
 display: flex;
 align-items: flex-start;
 gap: 0.5rem;
}

.lista-info .fa-check {
 color: var(--upse-mar); /* Color del ícono */
 font-size: 0.8rem;
 margin-top: 4px;
}

#bibliografia a {
  color: var(--upse-mar);
  text-decoration: underline;
}
#bibliografia a:hover {
  color: var(--upse-coral);
}
#bibliografia em {
  color: var(--upse-blue);
  font-style: italic;
}

/* ====== MODO OSCURO INSTITUCIONAL ====== */
body.dark {
  background: var(--bg);
  color: var(--text);
}

body.dark .upse-hero {
  background: linear-gradient(120deg, rgba(17,24,39,.7), rgba(17,24,39,.85));
}
/* Fondos translúcidos */
body.dark .glassy {
  background: linear-gradient(120deg, rgba(17,24,39,.7), rgba(17,24,39,.85));
  border-color: rgba(255,255,255,.1);
}

/* Hero y textos */
body.dark .upse-hero .text-upse-blue {
  color: #93c5fd;
}
body.dark .section-title {
  color: #e5e7eb;
}
body.dark .card-text {
  color: #d1d5db;
}

/* Tarjetas y cajas */
body.dark .card,
body.dark .learn-card,
body.dark .timeline-item {
  background: var(--card);
  border-color: var(--border);
  color: var(--text);
  box-shadow: 0 10px 25px rgba(0,0,0,.4);
}

/* Etiquetas, chips y pills */
body.dark .chip {
  background: #1f2937;
  color: #e5e7eb;
  border-color: #374151;
}
body.dark .pill {
  background: #1e293b;
  color: #e2e8f0;
}

/* Timeline */
body.dark .timeline-item::before {
  background: linear-gradient(var(--upse-mar), var(--upse-gold));
}
body.dark .timeline-dot {
  box-shadow: 0 0 0 4px #0b1220;
}

/* Glosario */
body.dark .glossary {
  background: rgba(17,24,39,.85);
  color: #e5e7eb;
}

/* CTA */
body.dark .cta {
  background: linear-gradient(120deg, rgba(42,157,143,.15), rgba(244,176,0,.15));
  border-color: rgba(255,255,255,.1);
}

body.dark .cta-content h2 {
  color: #f3f4f6;
}

body.dark .cta-content p {
  color: #cbd5e1;
}

/* Botones */
body.dark .btn {
  box-shadow: 0 8px 18px rgba(0,0,0,.5);
}
body.dark .btn-chat {
  background: #1f2937;
  border-color: #374151;
}

/* Chatbox */
body.dark .chatbox {
  background: var(--card);
}
body.dark .chatbox-body {
  background: #0f172a;
}
body.dark .chatbox-input {
  background: var(--card);
  border-top-color: var(--border);
}
body.dark .chatbox-input input {
  background: #111827;
  color: #f1f5f9;
}

/* Mensajes del chat */
body.dark .msg.ai {
  background: #1f2937;
  color: #f3f4f6;
}
body.dark .msg.user {
  background: linear-gradient(90deg, var(--upse-blue), var(--upse-mar));
}

/* Bibliografía */
body.dark #bibliografia {
  color: #d1d5db;
}
body.dark #bibliografia a {
  color: #7dd3fc;
}
body.dark #bibliografia a:hover {
  color: var(--upse-gold);
}
body.dark #bibliografia em {
  color: #93c5fd;
}

/* Scrollbar personalizado (opcional) */
body.dark ::-webkit-scrollbar {
  width: 10px;
}
body.dark ::-webkit-scrollbar-thumb {
  background: #374151;
  border-radius: 6px;
}
body.dark ::-webkit-scrollbar-track {
  background: #111827;
}

/* Modo oscuro en el quiz */
body.dark .quiz-option {
  background: #111827;
  color: #f3f4f6;
}
body.dark .quiz-feedback {
  background: #1f2937;
}

/* ====== Sección "Hecha un vistazo a esto" ====== */
.proyectos-destacados {
  background: linear-gradient(135deg, var(--upse-blue), var(--upse-mar), var(--upse-morada));
  color: #fff;
  padding: 60px 0 80px;
  text-align: center;
  border-top: 4px solid var(--upse-gold);
  border-bottom: 4px solid var(--upse-gold);
  box-shadow: 0 0 30px rgba(0, 0, 0, 0.25);
}

.proyectos-destacados .section-title {
  color: #fff;
}

.proyectos-destacados .intro-text {
  font-size: 1.15rem;
  margin: 10px auto 30px;
  max-width: 650px;
  opacity: 0.9;
}

/* Contenedor de botones */
.proyectos-botones {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 1.5rem;
  margin-bottom: 2rem;
}

/* Estilos generales para botones */
.proyectos-botones a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.7rem;
  font-weight: 700;
  font-size: 1.1rem;
  padding: 1rem 2rem;
  border-radius: 999px;
  text-decoration: none;
  transition: all 0.3s ease;
  color: #fff;
  min-width: 220px;
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.25);
}

/* Botón Andy (esqueleto) */
.btn-andy {
  background: linear-gradient(135deg, #0B4F70, #6A1B9A);
  border: 2px solid #F4B00055;
}
.btn-andy:hover {
  transform: translateY(-3px) scale(1.05);
  background: linear-gradient(135deg, #6A1B9A, #0B4F70);
  box-shadow: 0 8px 22px rgba(107, 33, 168, 0.4);
}
.btn-andy i { color: var(--upse-gold); font-size: 1.4rem; }

/* Botón Alisson (bailarín) */
.btn-alisson {
  background: linear-gradient(135deg, #FF6B6B, #F4B000);
  border: 2px solid #ffffff33;
}
.btn-alisson:hover {
  transform: translateY(-3px) scale(1.05);
  background: linear-gradient(135deg, #F4B000, #FF6B6B);
  box-shadow: 0 8px 22px rgba(255, 107, 107, 0.45);
}
.btn-alisson i { color: #fffbea; font-size: 1.4rem; }

/* Botón Gestos */
.btn-gesto {
  background: linear-gradient(135deg, #2A9D8F, #6A1B9A);
  border: 2px solid #ffffff33;
}
.btn-gesto:hover {
  transform: translateY(-3px) scale(1.05);
  background: linear-gradient(135deg, #6A1B9A, #2A9D8F);
  box-shadow: 0 8px 22px rgba(42, 157, 143, 0.45);
}
.btn-gesto i { color: #F4B000; font-size: 1.4rem; }

/* Footer de la sección */
.proyectos-footer {
  font-size: 0.95rem;
  opacity: 0.85;
  margin-top: 30px;
}

/* ====== Modo oscuro ====== */
body.dark .proyectos-destacados {
  background: linear-gradient(135deg, #111827, #1f2937, #312e81);
  color: #e5e7eb;
  border-color: var(--upse-mar);
}
body.dark .proyectos-botones a {
  color: #f9fafb;
}
body.dark .proyectos-footer {
  color: #d1d5db;
}

/* ====== Fondo animado institucional ====== */
.bg-pattern {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background:
    radial-gradient(600px 300px at 90% 10%, rgba(244,176,0,0.08), transparent 70%),
    radial-gradient(500px 250px at 10% 80%, rgba(42,157,143,0.08), transparent 70%),
    radial-gradient(400px 200px at 50% 40%, rgba(106,27,154,0.08), transparent 70%);
  z-index: -1;
  animation: bgMove 40s ease-in-out infinite alternate;
}

@keyframes bgMove {
  0% { background-position: 90% 10%, 10% 80%, 50% 40%; }
  100% { background-position: 80% 20%, 20% 70%, 55% 45%; }
}

body.dark .bg-pattern {
  background:
    radial-gradient(600px 300px at 90% 10%, rgba(244,176,0,0.12), transparent 70%),
    radial-gradient(500px 250px at 10% 80%, rgba(42,157,143,0.12), transparent 70%),
    radial-gradient(400px 200px at 50% 40%, rgba(106,27,154,0.12), transparent 70%);
}


/* Sombras suaves para tarjetas y secciones */
.card, .learn-card, .timeline-item, .glossary {
  transition: transform .3s ease, box-shadow .3s ease;
}
.card:hover, .learn-card:hover, .timeline-item:hover, .glossary:hover {
  transform: translateY(-6px);
  box-shadow: 0 12px 32px rgba(0, 0, 0, 0.2);
}

/* Luz ambiental para títulos */
.section-title::after {
  content: '';
  display: block;
  width: 60px;
  height: 4px;
  margin-top: 8px;
  background: linear-gradient(90deg, var(--upse-mar), var(--upse-gold));
  border-radius: 4px;
  margin-left: auto;
  margin-right: auto;
}

/* ====== Ajustes responsive del Chatbox ====== */

/* ====== Ajustes responsive del Chatbox (revisado) ====== */
@media (max-width: 720px) {
  html, body {
    overflow-x: hidden; /* evita scroll lateral */
  }

  main {
    padding: 0 12px; /* corrige desalineo general */
  }

  header, section, .card, .upse-hero {
    margin-left: auto;
    margin-right: auto;
  }

  /* --- Chatbox --- */
  .chatbox {
    left: 10px;
    right: 10px;
    bottom: 70px;
    width: auto;
    max-width: 480px;
    height: 75vh;
    border-radius: 14px;
  }

  .chatbox-header {
    padding: 10px 12px;
    font-size: 0.9rem;
  }

  #chatboxMessages {
    flex: 1;
    overflow-y: auto;
    padding: 10px;
  }

  .chatbox-input {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px;
  }

  .chatbox-input input {
    flex: 1;
    font-size: 0.9rem;
    padding: 0.55rem 0.75rem;
  }

  .chatbox-input .send {
    flex-shrink: 0;
    padding: 0.55rem 0.7rem;
    border-radius: 10px;
  }

  .chat-toolbar {
    gap: 4px;
  }

  .chat-toolbar .btn-chat {
    padding: 0.45rem 0.55rem;
    font-size: 0.9rem;
  }

  /* Botón flotante más equilibrado */
  .chat-toggle {
    right: 14px;
    bottom: 14px;
    width: 56px;
    height: 56px;
  }
}

/* Scrollbar del chat */
#chatboxMessages {
  scrollbar-width: thin;
  scrollbar-color: var(--upse-mar) transparent;
}
#chatboxMessages::-webkit-scrollbar {
  width: 6px;
}
#chatboxMessages::-webkit-scrollbar-thumb {
  background: var(--upse-mar);
  border-radius: 4px;
}

