/* ═══════════════════════════════════════════════════════════════
   Fluyo Beta 5 — Premium Design System
   "Learn Spanish like you live in Spain"
   ═══════════════════════════════════════════════════════════════ */

/* ── Google Fonts: Sora (display) + Inter (body) ── */
@import url('https://fonts.googleapis.com/css2?family=Sora:wght@400;600;700;800&family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');

/* ── Override root with premium design tokens ── */
.spanishos-root {
  --so-accent: #E63946;
  --so-accent2: #FF6B6B;
  --so-gold: #FFB703;
  --so-gold2: #F8961E;
  --so-green: #2DC653;
  --so-blue: #4361EE;
  --so-neon: #E63946;
  --so-neon2: #FF4D6D;
  --so-neon-rgb: 230,57,70;
  --so-neon2-rgb: 255,77,109;
  
  --so-bg: #FAFAF9;
  --so-surface: #FFFFFF;
  --so-surface2: rgba(255,255,255,0.80);
  --so-soft: rgba(20,20,18,0.04);
  --so-border: rgba(20,20,18,0.09);
  --so-border2: rgba(20,20,18,0.14);
  --so-text: #141412;
  --so-muted: rgba(20,20,18,0.55);
  --so-muted2: rgba(20,20,18,0.38);
  
  --so-shadow: 0 4px 24px rgba(0,0,0,0.07), 0 1px 4px rgba(0,0,0,0.04);
  --so-shadow-lg: 0 20px 60px rgba(0,0,0,0.12), 0 4px 16px rgba(0,0,0,0.06);
  --so-shadow-accent: 0 8px 28px rgba(230,57,70,0.18), 0 2px 8px rgba(230,57,70,0.10);
  
  --so-radius: 20px;
  --so-radius-s: 12px;
  --so-radius-xs: 8px;
  --so-max: 1120px;
  --so-topbar-h: 62px;
  --so-bottomnav-h: 58px;
  --so-ease: cubic-bezier(.16,1,.3,1);
  --so-spring: cubic-bezier(.34,1.56,.64,1);
  
  /* Premium font stack */
  font-family: 'Plus Jakarta Sans', 'Sora', system-ui, -apple-system, sans-serif;
  
  /* Ambient wallpaper – subtle warm grain */
  --so-wall:
    radial-gradient(ellipse 900px 500px at 5% -20%, rgba(230,57,70,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 700px 400px at 95% 10%, rgba(67,97,238,0.04) 0%, transparent 55%),
    radial-gradient(ellipse 1200px 300px at 50% 100%, rgba(255,183,3,0.04) 0%, transparent 50%),
    var(--so-bg);
}

/* ── Dark phase (night) ── */
.spanishos-root[data-phase="night"] {
  --so-bg: #111110;
  --so-surface: #1C1C1A;
  --so-surface2: rgba(28,28,26,0.85);
  --so-soft: rgba(255,255,255,0.06);
  --so-border: rgba(255,255,255,0.10);
  --so-border2: rgba(255,255,255,0.16);
  --so-text: #F5F5F0;
  --so-muted: rgba(245,245,240,0.52);
  --so-muted2: rgba(245,245,240,0.35);
  --so-shadow: 0 4px 24px rgba(0,0,0,0.35), 0 1px 4px rgba(0,0,0,0.25);
  --so-wall:
    radial-gradient(ellipse 900px 500px at 5% -20%, rgba(230,57,70,0.09) 0%, transparent 60%),
    radial-gradient(ellipse 700px 400px at 95% 10%, rgba(67,97,238,0.06) 0%, transparent 55%),
    var(--so-bg);
}

/* ── Evening phase ── */
.spanishos-root[data-phase="evening"] {
  --so-bg: #F7F5F2;
  --so-wall:
    radial-gradient(ellipse 900px 500px at 5% -20%, rgba(248,150,30,0.07) 0%, transparent 60%),
    radial-gradient(ellipse 600px 350px at 90% 20%, rgba(230,57,70,0.05) 0%, transparent 55%),
    var(--so-bg);
}

/* ══════════════════════════
   APP SHELL — Premium frame
   ══════════════════════════ */

.spanishos-app {
  max-width: var(--so-max);
  margin: 14px auto;
  background: var(--so-wall);
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  overflow: hidden;
  box-shadow: var(--so-shadow-lg);
  display: flex;
  flex-direction: column;
  height: min(900px, calc(var(--so-vh, 1vh) * 100 - 28px));
  min-height: 440px;
  position: relative;
}

/* ══════════════════════════
   TOPBAR — Refined
   ══════════════════════════ */

.spanishos-top {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  padding: 0 18px;
  height: var(--so-topbar-h);
  background: rgba(255,255,255,0.88);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border-bottom: 1px solid var(--so-border);
  position: relative;
  z-index: 10;
}

.spanishos-root[data-phase="night"] .spanishos-top {
  background: rgba(28,28,26,0.85);
}

/* Logo mark */
.spanishos-logo {
  width: 34px;
  height: 34px;
  border-radius: 10px;
  background: var(--so-accent);
  color: #fff;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: 'Sora', sans-serif;
  font-weight: 800;
  font-size: 16px;
  letter-spacing: -0.5px;
  box-shadow: 0 4px 12px rgba(230,57,70,0.30);
  flex: 0 0 auto;
  position: relative;
  overflow: hidden;
  background: transparent;
  background-image: url('../icons/fluyo-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  box-shadow: none;
}

/* Fluyo rebrand: no icon/logo anywhere, text-only brand */
.spanishos-logo{ display:none !important; }
.so-home-logo{ display:none !important; }
.spanishos-logo::before {
  content: '';
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.22) 0%, transparent 60%);
  border-radius: inherit;
}

.spanishos-title {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 19px;
  letter-spacing: -0.3px;
  color: var(--so-text);
}

/* Slightly larger brand title (used by JS topbar) */
.so-brand-title{ font-size: 20px; letter-spacing: -0.4px; }

.spanishos-sub {
  font-size: 11px;
  font-weight: 500;
  color: var(--so-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 380px;
  letter-spacing: 0.01em;
}

/* Wallet chip — gold accent */
.spanishos-chip.so-wallet {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 13px;
  background: linear-gradient(135deg, rgba(255,183,3,0.14), rgba(248,150,30,0.10));
  border: 1px solid rgba(255,183,3,0.32);
  color: #7A5A00;
  border-radius: 999px;
  padding: 5px 12px;
  letter-spacing: -0.2px;
}
.spanishos-root[data-phase="night"] .spanishos-chip.so-wallet {
  color: #FFD44A;
  background: rgba(255,183,3,0.12);
  border-color: rgba(255,183,3,0.22);
}

/* Status chip */
.spanishos-chip {
  font-size: 12px;
  font-weight: 600;
  padding: 5px 11px;
  border-radius: 999px;
  border: 1px solid var(--so-border);
  background: var(--so-soft);
  color: var(--so-text);
  letter-spacing: 0.01em;
}
.spanishos-chip.ok {
  background: rgba(45,198,83,0.10);
  border-color: rgba(45,198,83,0.28);
  color: #1a7a3a;
}
.spanishos-chip.warn {
  background: rgba(230,57,70,0.09);
  border-color: rgba(230,57,70,0.24);
  color: #9E1A22;
}
.spanishos-chip.mid {
  background: rgba(255,183,3,0.12);
  border-color: rgba(255,183,3,0.30);
  color: #7A5A00;
}
.spanishos-root[data-phase="night"] .spanishos-chip.ok { color: #4AE87A; }
.spanishos-root[data-phase="night"] .spanishos-chip.warn { color: #FF7070; }
.spanishos-root[data-phase="night"] .spanishos-chip.mid { color: #FFD44A; }

/* ══════════════════════════
   SIDEBAR — Desktop nav
   ══════════════════════════ */

.spanishos-sidebar {
  position: relative;
  z-index: 1;
  padding: 14px 10px;
  border-right: 1px solid var(--so-border);
  background: rgba(255,255,255,0.60);
  backdrop-filter: blur(12px);
  display: flex;
  flex-direction: column;
  min-height: 100%;
  gap: 2px;
}
.spanishos-root[data-phase="night"] .spanishos-sidebar {
  background: rgba(28,28,26,0.60);
}

.spanishos-navbtn {
  width: 100%;
  text-align: left;
  padding: 10px 12px;
  border-radius: 11px;
  border: 1px solid transparent;
  background: transparent;
  color: var(--so-muted);
  cursor: pointer;
  margin-bottom: 2px;
  transition: all 0.15s var(--so-ease);
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  font-size: 13.5px;
  display: flex;
  align-items: center;
  gap: 10px;
  position: relative;
}
.spanishos-navbtn .nav-icon {
  font-size: 18px;
  width: 24px;
  text-align: center;
  flex: 0 0 auto;
}
.spanishos-navbtn:hover {
  background: var(--so-soft);
  border-color: var(--so-border);
  color: var(--so-text);
}
.spanishos-navbtn:active { transform: scale(0.98); }
.spanishos-navbtn.active {
  background: rgba(230,57,70,0.09);
  border-color: rgba(230,57,70,0.20);
  color: var(--so-accent);
  box-shadow: none;
}
.spanishos-navbtn.active .nav-icon {
  filter: none;
}

/* ══════════════════════════
   MAIN CONTENT AREA
   ══════════════════════════ */

.spanishos-main {
  position: relative;
  z-index: 1;
  padding: 18px;
  overflow: auto;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
  scroll-behavior: smooth;
}

.spanishos-shell::before {
  background:
    radial-gradient(ellipse 800px 400px at 10% 5%, rgba(230,57,70,0.05), transparent 55%),
    radial-gradient(ellipse 600px 350px at 90% 5%, rgba(67,97,238,0.03), transparent 50%),
    linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.55) 100%);
  animation: soAmbient 22s ease-in-out infinite alternate;
}
.spanishos-root[data-phase="night"] .spanishos-shell::before {
  background:
    radial-gradient(ellipse 800px 400px at 10% 5%, rgba(230,57,70,0.08), transparent 55%),
    radial-gradient(ellipse 600px 350px at 90% 5%, rgba(67,97,238,0.05), transparent 50%),
    linear-gradient(180deg, rgba(28,28,26,0.7) 0%, rgba(28,28,26,0.45) 100%);
}

/* View change animation — smoother */
@keyframes soViewIn {
  from { opacity: 0; transform: translateY(8px) scale(0.995); }
  to   { opacity: 1; transform: translateY(0)   scale(1); }
}
.spanishos-main.so-viewchange .so-view {
  animation: soViewIn 240ms var(--so-ease) both;
}

/* ══════════════════════════
   CARDS — Universal premium
   ══════════════════════════ */

.spanishos-card {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255,255,255,0.92);
  padding: 16px;
  margin-bottom: 14px;
  transition: transform 0.16s var(--so-ease), box-shadow 0.16s var(--so-ease), border-color 0.16s ease;
  position: relative;
  overflow: hidden;
  backdrop-filter: blur(8px);
}
.spanishos-root[data-phase="night"] .spanishos-card {
  background: rgba(28,28,26,0.88);
  border-color: var(--so-border);
}
.spanishos-card[onclick]:hover,
.spanishos-missioncard:hover,
.spanishos-personcard:hover,
.spanishos-worldtopic:hover {
  border-color: rgba(230,57,70,0.25);
  box-shadow: 0 8px 28px rgba(0,0,0,0.09);
  transform: translateY(-2px);
  cursor: pointer;
}

/* Card top accent stripe */
.spanishos-missioncard::before,
.spanishos-personcard::before,
.spanishos-worldtopic::before,
.spanishos-card[onclick]::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 2.5px;
  background: linear-gradient(90deg, var(--so-accent) 0%, rgba(230,57,70,0.0) 100%);
  opacity: 0;
  transition: opacity 0.18s ease;
}
.spanishos-missioncard:hover::before,
.spanishos-personcard:hover::before,
.spanishos-worldtopic:hover::before,
.spanishos-card[onclick]:hover::before { opacity: 1; }

/* ══════════════════════════
   TYPOGRAPHY OVERRIDES
   ══════════════════════════ */

.spanishos-h1, .spanishos-h2, .spanishos-h3 {
  font-family: 'Sora', sans-serif;
  letter-spacing: -0.02em;
  line-height: 1.15;
}
.spanishos-h2 {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 14px;
  color: var(--so-text);
}
.spanishos-h3 {
  font-size: 13px;
  font-weight: 700;
  color: var(--so-muted);
  text-transform: uppercase;
  letter-spacing: 0.06em;
  margin-bottom: 10px;
}

/* ══════════════════════════
   BUTTONS — Premium feel
   ══════════════════════════ */

.spanishos-root button {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 600;
  border-radius: 10px;
  transition: all 0.14s var(--so-ease);
  touch-action: manipulation;
}
.spanishos-root button.primary {
  background: var(--so-accent) !important;
  color: #fff !important;
  border: none !important;
  box-shadow: 0 4px 14px rgba(230,57,70,0.28) !important;
  font-weight: 700;
  letter-spacing: -0.01em;
}
.spanishos-root button.primary:hover {
  box-shadow: 0 6px 20px rgba(230,57,70,0.38) !important;
  transform: translateY(-1px);
}
.spanishos-root button.primary:active {
  transform: scale(0.97) !important;
  box-shadow: 0 2px 8px rgba(230,57,70,0.22) !important;
}
.spanishos-btn {
  padding: 11px 20px;
  border-radius: 11px;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: -0.01em;
  cursor: pointer;
  transition: all 0.14s var(--so-ease);
}
.spanishos-btn.primary {
  background: var(--so-accent);
  color: #fff;
  border: none;
  box-shadow: 0 4px 14px rgba(230,57,70,0.28);
}
.spanishos-btn.primary:hover {
  box-shadow: 0 6px 20px rgba(230,57,70,0.38);
  transform: translateY(-1px);
}

/* ══════════════════════════
   CHAT — Refined bubbles
   ══════════════════════════ */

.spanishos-bubble {
  max-width: 82%;
  width: fit-content;
  border-radius: 18px;
  padding: 11px 14px;
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.95);
  font-size: 14.5px;
  line-height: 1.55;
  letter-spacing: -0.01em;
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.spanishos-root[data-phase="night"] .spanishos-bubble {
  background: rgba(38,38,36,0.90);
  border-color: var(--so-border);
}
.spanishos-msg.user .spanishos-bubble {
  background: linear-gradient(135deg, rgba(230,57,70,0.10) 0%, rgba(230,57,70,0.06) 100%);
  border-color: rgba(230,57,70,0.22);
  color: var(--so-text);
}

/* Typing animation — refined */
.spanishos-typing .dot {
  background: rgba(230,57,70,0.45);
}

/* Input area */
.spanishos-input {
  display: flex;
  gap: 10px;
  align-items: flex-end;
  padding: 10px 14px;
  background: rgba(255,255,255,0.95);
  border-top: 1px solid var(--so-border);
  backdrop-filter: blur(12px);
}
.spanishos-root[data-phase="night"] .spanishos-input {
  background: rgba(28,28,26,0.92);
}
.spanishos-input textarea {
  flex: 1;
  border: 1px solid var(--so-border);
  border-radius: 12px;
  padding: 10px 14px;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-size: 14.5px;
  line-height: 1.45;
  background: var(--so-soft);
  color: var(--so-text);
  resize: none;
  outline: none;
  transition: border-color 0.14s ease, box-shadow 0.14s ease;
  min-height: 44px;
  max-height: 130px;
}
.spanishos-input textarea:focus {
  border-color: rgba(230,57,70,0.40);
  box-shadow: 0 0 0 3px rgba(230,57,70,0.09);
  background: rgba(255,255,255,0.98);
}
.spanishos-root[data-phase="night"] .spanishos-input textarea {
  background: rgba(255,255,255,0.06);
  border-color: var(--so-border);
}

/* Ghost suggestions */
.spanishos-ghost button {
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.88);
  border-radius: 999px;
  padding: 7px 13px;
  font-size: 12.5px;
  font-weight: 600;
  cursor: pointer;
  white-space: nowrap;
  transition: all 0.12s ease;
  color: var(--so-text);
}
.spanishos-ghost button:hover {
  background: rgba(230,57,70,0.08);
  border-color: rgba(230,57,70,0.28);
  color: var(--so-accent);
}

/* ══════════════════════════
   MOBILE BOTTOM NAV — Premium
   ══════════════════════════ */

@media (max-width: 900px) {
  .spanishos-root { --so-accent: #E63946; }
  .spanishos-root a, .spanishos-root a:visited { color: var(--so-accent) !important; }
  
  .spanishos-bottomnav {
    background: rgba(255,255,255,0.96) !important;
    backdrop-filter: blur(24px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(24px) saturate(160%) !important;
    border-top: 1px solid var(--so-border) !important;
    box-shadow: 0 -2px 20px rgba(0,0,0,0.08) !important;
  }
  .spanishos-root[data-phase="night"] .spanishos-bottomnav {
    background: rgba(20,20,18,0.96) !important;
  }
  
  .spanishos-tab {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-weight: 700;
    color: var(--so-muted2);
    transition: all 0.18s var(--so-ease);
  }
  .spanishos-tab.active { color: var(--so-accent); }
  .spanishos-tab .tab-icon { font-size: 22px; line-height: 1; }
  .spanishos-tab .tab-label { font-size: 9.5px; letter-spacing: 0.02em; }
  
  /* Active indicator — pill instead of bar */
  .spanishos-tab::before {
    height: 2.5px;
    background: var(--so-accent);
    border-radius: 0 0 4px 4px;
    left: 25%;
    right: 25%;
  }
  
  /* Mobile app shell */
  .spanishos-app {
    margin: 0;
    border-radius: 0;
    border: none;
    height: calc(var(--so-vh, 1vh) * 100);
    box-shadow: none;
  }

  /* Main content on mobile */
  .spanishos-main {
    padding: 14px 14px calc(var(--so-bottomnav-h) + 12px) 14px;
  }

  /* Cards on mobile */
  .spanishos-card {
    border-radius: 14px;
    padding: 14px;
    margin-bottom: 10px;
  }

  /* Chat on mobile */
  .spanishos-bubble {
    max-width: 90%;
    font-size: 15px;
    padding: 10px 13px;
  }
  .spanishos-input textarea {
    font-size: 16px; /* prevent iOS zoom */
    min-height: 42px;
  }
  
  /* Composer on mobile */
  .spanishos-root[data-app="chat"] .spanishos-composerwrap {
    background: rgba(255,255,255,0.97) !important;
    backdrop-filter: blur(20px) !important;
    border-top: 1px solid var(--so-border) !important;
    border-radius: 18px 18px 0 0 !important;
  }
  .spanishos-root[data-phase="night"][data-app="chat"] .spanishos-composerwrap {
    background: rgba(20,20,18,0.97) !important;
  }
}

/* ══════════════════════════
   INPUTS & FORMS — Login
   ══════════════════════════ */

.spanishos-loginwrap {
  background: var(--so-wall);
  min-height: calc(var(--so-vh, 1vh) * 100 - 30px);
}
.spanishos-logincard {
  background: rgba(255,255,255,0.94);
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  box-shadow: var(--so-shadow-lg);
  backdrop-filter: blur(20px);
  overflow: hidden;
}
.spanishos-root[data-phase="night"] .spanishos-logincard {
  background: rgba(28,28,26,0.92);
}
.spanishos-loginmark {
  background: var(--so-accent);
  border-radius: 12px;
  box-shadow: 0 6px 18px rgba(230,57,70,0.30);
  font-family: 'Sora', sans-serif;
  font-weight: 800;
  background: transparent;
  background-image: url('../icons/fluyo-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  box-shadow: none;
}
.spanishos-logintitle {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  letter-spacing: -0.025em;
}
.spanishos-logincard input.spanishos-inputfield,
.spanishos-logincard textarea.spanishos-inputfield {
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 500;
  background: var(--so-soft) !important;
  border: 1px solid var(--so-border) !important;
  border-radius: 11px !important;
  transition: border-color 0.14s ease, box-shadow 0.14s ease;
  color: var(--so-text) !important;
}
.spanishos-logincard input.spanishos-inputfield:focus,
.spanishos-logincard textarea.spanishos-inputfield:focus {
  border-color: rgba(230,57,70,0.40) !important;
  box-shadow: 0 0 0 3px rgba(230,57,70,0.09) !important;
  background: rgba(255,255,255,0.99) !important;
}

/* ══════════════════════════
   TRABAJO — Premium job cards
   ══════════════════════════ */

.trabajo-card {
  background: rgba(255,255,255,0.92) !important;
  border-radius: 16px !important;
  border: 1px solid var(--so-border) !important;
  transition: all 0.18s var(--so-ease) !important;
  backdrop-filter: blur(8px);
}
.spanishos-root[data-phase="night"] .trabajo-card {
  background: rgba(28,28,26,0.88) !important;
}
.trabajo-card:hover:not(.locked) {
  border-color: rgba(230,57,70,0.28) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.10) !important;
  transform: translateY(-3px) !important;
}
.trabajo-badge {
  background: linear-gradient(135deg, rgba(255,183,3,0.16), rgba(248,150,30,0.10)) !important;
  border: 1px solid rgba(255,183,3,0.30) !important;
  border-radius: 8px !important;
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 12px !important;
  color: #7A5A00 !important;
}
.spanishos-root[data-phase="night"] .trabajo-badge { color: #FFD44A !important; }
.trabajo-title {
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  font-size: 15px !important;
  letter-spacing: -0.02em;
}
.trabajo-timer {
  font-family: 'Sora', monospace;
  font-weight: 700;
  background: linear-gradient(135deg, rgba(255,183,3,0.16), rgba(248,150,30,0.10)) !important;
  border: 1px solid rgba(255,183,3,0.30) !important;
  color: #7A5A00 !important;
  border-radius: 10px !important;
  letter-spacing: 0.02em;
}
.spanishos-root[data-phase="night"] .trabajo-timer { color: #FFD44A !important; }
.trabajo-complete-btn {
  background: var(--so-accent) !important;
  border: none !important;
  border-radius: 10px !important;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700 !important;
  box-shadow: 0 4px 12px rgba(230,57,70,0.24) !important;
}
.trabajo-complete-btn:hover {
  box-shadow: 0 6px 18px rgba(230,57,70,0.34) !important;
  transform: translateY(-1px) !important;
}

/* ══════════════════════════
   MISSION & CHARACTER CARDS
   ══════════════════════════ */

.spanishos-mission-item,
.spanishos-character-card {
  border-radius: 16px !important;
  background: rgba(255,255,255,0.92) !important;
  border: 1px solid var(--so-border) !important;
  backdrop-filter: blur(8px);
}
.spanishos-root[data-phase="night"] .spanishos-mission-item,
.spanishos-root[data-phase="night"] .spanishos-character-card {
  background: rgba(28,28,26,0.88) !important;
}
.spanishos-mission-item:hover,
.spanishos-character-card:hover:not(.locked) {
  border-color: rgba(230,57,70,0.28) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,0.09) !important;
  transform: translateY(-2px) !important;
}

/* ══════════════════════════
   PROGRESS / SKILL TILES
   ══════════════════════════ */

.spanishos-skill {
  background: rgba(255,255,255,0.92) !important;
  border-radius: 14px !important;
  border: 1px solid var(--so-border) !important;
  transition: all 0.16s var(--so-ease);
  backdrop-filter: blur(6px);
}
.spanishos-root[data-phase="night"] .spanishos-skill {
  background: rgba(28,28,26,0.85) !important;
}
.spanishos-skillbar {
  background: var(--so-accent) !important;
  border-radius: 999px !important;
}
.spanishos-skillbadge.ok {
  background: rgba(45,198,83,0.12) !important;
  border-color: rgba(45,198,83,0.28) !important;
  color: #1a7a3a !important;
}
.spanishos-skillbadge.due {
  background: rgba(230,57,70,0.10) !important;
  border-color: rgba(230,57,70,0.28) !important;
  color: #9E1A22 !important;
}

/* ══════════════════════════
   WORLD / MUNDO SECTION
   ══════════════════════════ */

.spanishos-newsitem,
.spanishos-news-item {
  border-radius: 14px !important;
  background: rgba(255,255,255,0.92) !important;
  transition: all 0.15s var(--so-ease) !important;
}
.spanishos-root[data-phase="night"] .spanishos-newsitem,
.spanishos-root[data-phase="night"] .spanishos-news-item {
  background: rgba(28,28,26,0.85) !important;
}

/* ══════════════════════════
   DASHBOARD / INICIO
   ══════════════════════════ */

.spanishos-homehero {
  background: linear-gradient(135deg, rgba(255,255,255,0.97) 0%, rgba(230,57,70,0.025) 100%) !important;
  border: 1.5px solid rgba(230,57,70,0.20) !important;
  border-radius: 18px !important;
}
.spanishos-homehero::before {
  background: linear-gradient(90deg, var(--so-accent), rgba(230,57,70,0.0)) !important;
  height: 2.5px !important;
}
.spanishos-homehero:hover {
  border-color: rgba(230,57,70,0.38) !important;
  box-shadow: 0 16px 40px rgba(230,57,70,0.10) !important;
}

/* Dashboard stat counters */
.spanishos-statitem, .spanishos-stat-box {
  background: rgba(255,255,255,0.92) !important;
  border-radius: 14px !important;
  backdrop-filter: blur(8px);
}
.spanishos-root[data-phase="night"] .spanishos-statitem,
.spanishos-root[data-phase="night"] .spanishos-stat-box {
  background: rgba(28,28,26,0.88) !important;
}

/* ══════════════════════════
   SHEET OVERLAYS
   ══════════════════════════ */

.spanishos-sheetcard {
  background: rgba(255,255,255,0.98) !important;
  border-radius: 22px !important;
  border: 1px solid var(--so-border) !important;
  box-shadow: var(--so-shadow-lg) !important;
  backdrop-filter: blur(20px);
}
.spanishos-root[data-phase="night"] .spanishos-sheetcard {
  background: rgba(28,28,26,0.97) !important;
}

/* ══════════════════════════
   TUENTI BUBBLES (Inicio mobile)
   ══════════════════════════ */

.tuenti-bubble-content {
  background: rgba(255,255,255,0.97) !important;
  border-radius: 20px !important;
  border: 1.5px solid rgba(255,255,255,0.95) !important;
  box-shadow:
    0 12px 40px rgba(0,0,0,0.12),
    0 0 0 1px rgba(230,57,70,0.10),
    inset 0 1.5px 0 rgba(255,255,255,1) !important;
}
.tuenti-bubble:hover .tuenti-bubble-content {
  border-color: rgba(230,57,70,0.50) !important;
  box-shadow:
    0 24px 60px rgba(0,0,0,0.16),
    0 0 0 2.5px rgba(230,57,70,0.35),
    inset 0 1.5px 0 rgba(255,255,255,1),
    0 0 40px rgba(230,57,70,0.22) !important;
}
.tuenti-nombre { font-family: 'Sora', sans-serif; font-weight: 700; letter-spacing: -0.02em; }
.tuenti-titulo { font-family: 'Sora', sans-serif; font-weight: 700; letter-spacing: -0.015em; }
.tuenti-pesetas { color: var(--so-accent) !important; font-family: 'Sora', sans-serif; }
.tuenti-persona .tuenti-bubble-content { border-left: 3.5px solid var(--so-accent) !important; }
.tuenti-trabajo .tuenti-bubble-content { border-left: 3.5px solid #2DC653 !important; }
.tuenti-mundo .tuenti-bubble-content { border-left: 3.5px solid #4361EE !important; }

/* ══════════════════════════
   DIFFICULTY BADGES
   ══════════════════════════ */

.trabajo-difficulty.facil {
  background: rgba(45,198,83,0.12) !important;
  color: #1a7a3a !important;
  border-radius: 6px;
  padding: 3px 9px;
  font-weight: 700;
}
.trabajo-difficulty.medio {
  background: rgba(255,183,3,0.14) !important;
  color: #7A5A00 !important;
  border-radius: 6px;
  padding: 3px 9px;
  font-weight: 700;
}
.trabajo-difficulty.dificil {
  background: rgba(230,57,70,0.10) !important;
  color: #9E1A22 !important;
  border-radius: 6px;
  padding: 3px 9px;
  font-weight: 700;
}

/* ══════════════════════════
   LOGO + SIDEBAR FOOTER
   ══════════════════════════ */

.spanishlab-logo {
  padding: 14px 10px !important;
  border-top: 1px solid var(--so-border) !important;
  opacity: 0.70;
  transition: opacity 0.2s ease;
}
.spanishlab-logo:hover { opacity: 1; }

/* ══════════════════════════
   STATUS DOT
   ══════════════════════════ */

.spanishos-dot {
  background: var(--so-accent);
  box-shadow: 0 0 8px rgba(230,57,70,0.45);
}
@keyframes soStatus {
  0%,100% { transform: scale(1); opacity: 0.55; box-shadow: 0 0 0 rgba(230,57,70,0); }
  50%      { transform: scale(1.18); opacity: 1; box-shadow: 0 0 12px rgba(230,57,70,0.30); }
}

/* ══════════════════════════
   SCROLLBAR — subtle
   ══════════════════════════ */

.spanishos-root ::-webkit-scrollbar { width: 4px; height: 4px; }
.spanishos-root ::-webkit-scrollbar-track { background: transparent; }
.spanishos-root ::-webkit-scrollbar-thumb {
  background: rgba(230,57,70,0.25);
  border-radius: 999px;
}
.spanishos-root ::-webkit-scrollbar-thumb:hover { background: rgba(230,57,70,0.45); }

/* ══════════════════════════
   WELCOME TOAST — Premium
   ══════════════════════════ */

.spanishos-welcome-toast {
  background: linear-gradient(135deg, rgba(230,57,70,0.95), rgba(255,77,109,0.90)) !important;
  border: 1px solid rgba(255,255,255,0.18) !important;
  border-radius: 14px !important;
  box-shadow: 0 16px 40px rgba(230,57,70,0.30), 0 4px 12px rgba(0,0,0,0.12) !important;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* ══════════════════════════
   MOBILE FAB — Home button
   ══════════════════════════ */

.spanishos-homefab {
  background: var(--so-accent) !important;
  box-shadow: 0 8px 24px rgba(230,57,70,0.38) !important;
  border: none !important;
}

/* ══════════════════════════
   RANGE SLIDER
   ══════════════════════════ */

.spanishos-slider input[type=range] {
  background: rgba(230,57,70,0.16) !important;
}
.spanishos-slider input[type=range]::-webkit-slider-thumb {
  background: var(--so-accent) !important;
  box-shadow: 0 3px 10px rgba(230,57,70,0.28) !important;
}

/* ══════════════════════════
   ERROR/FEEDBACK TAGS
   ══════════════════════════ */

.spanishos-tag {
  background: rgba(230,57,70,0.07) !important;
  border: 1px dashed rgba(230,57,70,0.35) !important;
  border-radius: 999px;
  font-size: 12px;
  font-weight: 600;
  padding: 5px 11px;
}

/* ══════════════════════════
   AVATAR — Premium initials
   ══════════════════════════ */

.spanishos-avatar {
  border-radius: 10px;
  background: rgba(230,57,70,0.10) !important;
  font-family: 'Sora', sans-serif;
  font-weight: 700;
  color: var(--so-accent);
}
.spanishos-avatar.big {
  border-radius: 14px;
}

/* ══════════════════════════
   REDUCED MOTION
   ══════════════════════════ */

@media (prefers-reduced-motion: reduce) {
  .spanishos-root * {
    animation-duration: 0.01ms !important;
    transition-duration: 0.1ms !important;
  }
}

/* ══════════════════════════
   NIGHT MODE OVERRIDES
   (Dark text on dark surfaces)
   ══════════════════════════ */

.spanishos-root[data-phase="night"] .spanishos-navbtn {
  color: rgba(245,245,240,0.55);
}
.spanishos-root[data-phase="night"] .spanishos-navbtn:hover {
  color: rgba(245,245,240,0.85);
  background: rgba(255,255,255,0.06);
}
.spanishos-root[data-phase="night"] .spanishos-navbtn.active {
  color: #FF7070;
  background: rgba(230,57,70,0.12);
  border-color: rgba(230,57,70,0.20);
}
.spanishos-root[data-phase="night"] .spanishos-ghost button {
  background: rgba(255,255,255,0.07);
  border-color: rgba(255,255,255,0.12);
  color: rgba(245,245,240,0.70);
}
.spanishos-root[data-phase="night"] .spanishos-ghost button:hover {
  background: rgba(230,57,70,0.14);
  border-color: rgba(230,57,70,0.30);
  color: #FF7070;
}
.spanishos-root[data-phase="night"] .spanishos-bubble {
  color: rgba(245,245,240,0.90);
}
.spanishos-root[data-phase="night"] .spanishos-msg.user .spanishos-bubble {
  background: rgba(230,57,70,0.12);
  border-color: rgba(230,57,70,0.22);
}
.spanishos-root[data-phase="night"] .spanishos-top {
  border-color: var(--so-border);
}
.spanishos-root[data-phase="night"] .spanishos-card {
  color: rgba(245,245,240,0.88);
}

/* ══════════════════════════
   MICRO: Loading state
   ══════════════════════════ */

.spanishos-root.is-thinking .spanishos-logo {
  animation: soLogoThink 1.4s ease-in-out infinite;
}
@keyframes soLogoThink {
  0%,100% { box-shadow: 0 4px 12px rgba(230,57,70,0.30); }
  50%      { box-shadow: 0 4px 24px rgba(230,57,70,0.60), 0 0 0 4px rgba(230,57,70,0.14); }
}

/* ══════════════════════════
   SETTINGS SHEET TOGGLE
   ══════════════════════════ */

.spanishos-toggle input[type=checkbox] {
  accent-color: var(--so-accent);
}

/* ══════════════════════════
   CONECTIVITY / OFFLINE
   ══════════════════════════ */

.spanishos-offline-banner {
  background: rgba(230,57,70,0.92) !important;
  color: #fff;
  font-family: 'Plus Jakarta Sans', sans-serif;
  font-weight: 700;
  border-radius: 0;
}

/* ══════════════════════════
   BETA BADGE — Topbar 
   ══════════════════════════ */

.spanishos-beta-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 3px 8px;
  background: linear-gradient(135deg, rgba(67,97,238,0.12), rgba(67,97,238,0.07));
  border: 1px solid rgba(67,97,238,0.25);
  border-radius: 999px;
  font-family: 'Sora', sans-serif;
  font-size: 10px;
  font-weight: 700;
  color: #2A4FCC;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}
.spanishos-root[data-phase="night"] .spanishos-beta-badge {
  color: #7BA3FF;
  background: rgba(67,97,238,0.14);
  border-color: rgba(67,97,238,0.28);
}

/* SpanishOS UI (v0.3) – light, WP-friendly, mobile-first */

.spanishos-root{
  --so-accent: var(--spanishos-accent, var(--wp--preset--color--primary, #ff1a1a));
  /* Paleta del sistema (neón rojo) – usada por toast y ecosistema */
  --so-neon: #ff0033;
  --so-neon2: #ff2d55;
  --so-neon-rgb: 255,0,51;
  --so-neon2-rgb: 255,45,85;
  --so-bg: var(--spanishos-bg, #ffffff);
  --so-surface: #ffffff;
  --so-soft: rgba(17,17,17,0.04);
  --so-border: rgba(17,17,17,0.10);
  --so-text: #111111;
  --so-muted: rgba(17,17,17,0.65);
  --so-shadow: 0 12px 30px rgba(0,0,0,0.08);
  --so-radius: 22px;
  --so-radius-s: 14px;
  --so-max: 1100px;
  --so-topbar-h: 64px;
  /* Fallback (real height is defined by the bottom bar's content) */
  --so-bottomnav-h: 55px;
  --so-ease: cubic-bezier(.2,.8,.2,1);

  --so-wall: radial-gradient(1200px 420px at 18% -10%, rgba(255,26,26,0.10), transparent 60%),
            radial-gradient(900px 320px at 92% 0%, rgba(17,17,17,0.04), transparent 65%),
            var(--so-bg);
  font-family: inherit;
  color: var(--so-text);
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;



  height: 100%;
  width: 100%;
  overscroll-behavior: none;
  -webkit-tap-highlight-color: transparent;
}

.spanishos-root[data-phase="morning"]{
  --so-wall: radial-gradient(1200px 420px at 18% -10%, rgba(255,26,26,0.11), transparent 62%),
            radial-gradient(900px 320px at 92% 0%, rgba(255,26,26,0.06), transparent 68%),
            var(--so-bg);
}
.spanishos-root[data-phase="afternoon"]{
  --so-wall: radial-gradient(1200px 420px at 18% -10%, rgba(255,26,26,0.08), transparent 62%),
            radial-gradient(900px 320px at 92% 0%, rgba(17,17,17,0.05), transparent 68%),
            var(--so-bg);
}
.spanishos-root[data-phase="evening"]{
  --so-wall: radial-gradient(1200px 420px at 18% -10%, rgba(17,17,17,0.06), transparent 62%),
            radial-gradient(900px 320px at 92% 0%, rgba(255,26,26,0.08), transparent 70%),
            var(--so-bg);
}
.spanishos-root[data-phase="night"]{
  --so-wall: radial-gradient(1200px 420px at 18% -10%, rgba(17,17,17,0.08), transparent 60%),
            radial-gradient(900px 320px at 92% 0%, rgba(0,0,0,0.08), transparent 70%),
            var(--so-bg);


}

.spanishos-app{
  max-width: var(--so-max);
  margin: 12px auto;
  background: var(--so-wall);
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  overflow: hidden;
  box-shadow: var(--so-shadow);
  display:flex;
  flex-direction:column;
  height: min(880px, calc(var(--so-vh, 1vh) * 100 - 24px));
  min-height: 420px;
}

.spanishos-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap: 12px;
  padding: 12px 14px;
  background: var(--so-bg);
  border-bottom: 1px solid var(--so-border);
}

.spanishos-brand{display:flex; gap:10px; align-items:center; min-width: 0;}
.spanishos-logo{
  width: 36px;
  height: 36px;
  border-radius: 12px;
  background: var(--so-accent);
  color: #fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family: inherit;
  font-weight: inherit;
    letter-spacing: 0px;
  font-size: 18px;
  line-height: inherit;
  flex: 0 0 auto;
}
.spanishos-title{font-family: inherit;
  font-weight: inherit;
  letter-spacing: .2px; line-height: 1.05;}
.spanishos-sub{font-size: 12px; color: var(--so-muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 420px;}

.spanishos-row{display:flex; gap:10px; align-items:center; flex-wrap:wrap;}

.spanishos-chip{
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px solid var(--so-border);
  background: var(--so-soft);
  color: var(--so-text);
}


/* Topbar connectivity chip */
.spanishos-chip.ok{ border-color: rgba(46, 204, 113, 0.55); background: rgba(46, 204, 113, 0.08); }
.spanishos-chip.warn{ border-color: rgba(255, 26, 26, 0.45); background: rgba(255, 26, 26, 0.07); }
.spanishos-chip.mid{ border-color: rgba(255, 180, 0, 0.55); background: rgba(255, 180, 0, 0.08); }

.spanishos-status{display:flex; align-items:center; gap:8px;}
.spanishos-dot{width:10px; height:10px; border-radius:999px; background: var(--so-accent);  animation: soStatus 1.8s ease-in-out infinite;
}
.spanishos-muted{color: var(--so-muted);} 
.spanishos-small{font-size: 12px;}

.spanishos-shell{
  display:grid;
  grid-template-columns: 240px 1fr;
  flex: 1;
  min-height: 0;
  background: var(--so-bg);
  position: relative;
  overflow: hidden;
}

/* Subtle “OS wallpaper” (no images; integrates with site colors) */
.spanishos-shell::before{
  content: '';
  position: absolute;
  inset: 0;
  pointer-events: none;
  background:
    radial-gradient(900px 520px at 15% 10%, rgba(255,26,26,0.08), transparent 60%),
    radial-gradient(700px 420px at 85% 0%, rgba(17,17,17,0.05), transparent 58%),
    linear-gradient(180deg, rgba(255,255,255,0.9), rgba(255,255,255,0.75));
  opacity: .9;
  transform: translate3d(0,0,0);
  will-change: transform;
  animation: soAmbient 18s ease-in-out infinite alternate;
}

.spanishos-sidebar{
  position: relative;
  z-index: 1;
  padding: 12px;
  border-right: 1px solid var(--so-border);
  background: linear-gradient(180deg, var(--so-bg), rgba(255,255,255,0.6));
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.spanishos-navbtn{
  width:100%;
  text-align:left;
  padding: 10px 10px;
  border-radius: 14px;
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.85);
  color: var(--so-text);
  cursor:pointer;
  margin-bottom: 10px;
  transition: transform .06s ease;
}
.spanishos-navbtn:active{transform: scale(0.99);} 
.spanishos-navbtn.active{
  border-color: rgba(255,26,26,0.35);
  box-shadow: 0 10px 18px rgba(255,26,26,0.08);
}

.spanishos-main{
  position: relative;
  z-index: 1;
  padding: 14px;
  overflow: auto;
  min-height: 0;
  -webkit-overflow-scrolling: touch;
}

.spanishos-card{
  border: 1px solid var(--so-border);
  border-radius: 18px;
  background: rgba(255,255,255,0.92);
  padding: 12px;
  margin-bottom: 12px;
}

/* --- Buttons + slider: keep brand colors consistent (avoid theme blue / default range blue) --- */
.spanishos-root button{
  font-family: inherit;
  color: var(--so-text);
  border-radius: 18px;
}
.spanishos-root button.primary{
  background: var(--so-accent) !important;
  color: #fff !important;
  border: 1px solid rgba(255,26,26,0.40) !important;
}
.spanishos-root button.primary:active{ transform: scale(0.99); }

.spanishos-slider{ display:flex; align-items:center; gap:8px; }
.spanishos-slider input[type=range]{
  accent-color: var(--so-accent);
  width: 140px;
}
/* Fallback styling for iOS/Safari range controls (avoid default blue). */
.spanishos-slider input[type=range]{
  -webkit-appearance: none;
  appearance: none;
  height: 6px;
  border-radius: 999px;
  background: rgba(255,26,26,0.22);
}
.spanishos-slider input[type=range]::-webkit-slider-thumb{
  -webkit-appearance: none;
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--so-accent);
  border: 2px solid rgba(255,255,255,0.95);
  box-shadow: 0 10px 18px rgba(255,26,26,0.22);
}
.spanishos-slider input[type=range]::-moz-range-thumb{
  width: 16px;
  height: 16px;
  border-radius: 999px;
  background: var(--so-accent);
  border: 2px solid rgba(255,255,255,0.95);
}
.spanishos-slider input[type=range]::-moz-range-track{
  height: 6px;
  border-radius: 999px;
  background: rgba(255,26,26,0.22);
}

.spanishos-h2{font-family: inherit;
  font-weight: inherit;
  font-size: 16px; margin: 0 0 6px 0;}
.spanishos-h3{font-weight: 800; font-size: 13px; margin: 0 0 8px 0;}

.spanishos-tags{display:flex; gap:8px; flex-wrap:wrap; margin-top: 10px;}
.spanishos-tag{
  font-size: 12px;
  padding: 6px 10px;
  border-radius: 999px;
  border: 1px dashed rgba(255,26,26,0.45);
  background: rgba(255,26,26,0.06);
}

.spanishos-cast{display:flex; gap:10px; flex-wrap:wrap; margin-top: 10px;}
.spanishos-person{
  display:flex;
  gap:10px;
  align-items:center;
  padding: 10px;
  border-radius: 16px;
  border: 1px solid var(--so-border);
  background: var(--so-soft);
  min-width: 220px;
}
.spanishos-avatar{
  width: 34px;
  height: 34px;
  border-radius: 12px;
  background: rgba(17,17,17,0.12);
  display:flex;
  align-items:center;
  justify-content:center;
  font-weight: 800;
}
.spanishos-person .meta{min-width:0;}
.spanishos-person .name{font-family: inherit;
  font-weight: inherit;
  }
.spanishos-person .role{font-size:12px; color: var(--so-muted);} 
.spanishos-person .goal{font-size:12px; margin-top: 2px; color: rgba(17,17,17,0.75);} 

.spanishos-chat{
  display:flex;
  flex-direction:column;
  gap: 10px;
  flex: 1;
  min-height: 0;
}
.spanishos-messages{
  flex:1;
  min-height: 0;
  overflow:auto;
  padding-right: 4px;
  padding-bottom: 8px;
  -webkit-overflow-scrolling: touch;
}

/* --- Chat layout: single scroll surface + composer always visible (mobile-safe) --- */
.spanishos-chatview{
  display:flex;
  flex-direction:column;
  gap: 10px;
  height: 100%;
  min-height: 0;
  position: relative;
}
.spanishos-chathead{
  margin-bottom: 0;
}
.spanishos-chathead .chatback{
  flex: 0 0 auto;
  padding: 8px 10px;
  border-radius: 14px;
}
.spanishos-chathead .chatback:active{transform: scale(0.98);}

.spanishos-chathint{ margin-top: -4px; }

/* In chat, prevent nested scrolling: the messages list is the only scroller */
.spanishos-root[data-app="chat"] .spanishos-main{
  overflow: hidden;
  display: flex;
  flex-direction: column;
}
.spanishos-root[data-app="chat"] .so-view{
  height: 100%;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
.spanishos-root[data-app="chat"] .spanishos-chatview{ flex: 1; }
.spanishos-root[data-app="chat"] .spanishos-messages{
  flex: 1;
  min-height: 0;
  overscroll-behavior-y: contain;
  touch-action: pan-y;
}

/* Composer wrapper: stable mobile chat (keyboard-safe) */
.spanishos-composerwrap{
  display:flex;
  flex-direction:column;
  gap: 8px;
}

/* Reserve space for the anchored composer on mobile (measured in JS). */
.spanishos-root[data-app="chat"] .spanishos-chatview{
  padding-bottom: calc(var(--so-composer-h, 0px) + 2px);
}

.spanishos-root[data-app="chat"] .spanishos-composerwrap{
  padding: 8px 0 calc(10px + env(safe-area-inset-bottom)) 0;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.92) 20%, rgba(255,255,255,0.92));
  backdrop-filter: blur(10px);
  z-index: 3;
}

.spanishos-root[data-app="chat"] .spanishos-composerwrap .spanishos-input{
  position: relative;
  bottom: auto;
  padding: 0;
  background: transparent;
  backdrop-filter: none;
}

.spanishos-root[data-app="chat"] .spanishos-composerwrap textarea{
  resize: none;
  min-height: 52px;
}
@media (max-width: 900px){
  .spanishos-chathead{padding: 8px 10px;}
  .spanishos-chathead .chatbrief{display:none;}
  .spanishos-chatextra{display:none;}
  .spanishos-chathint{display:none;}

  /* Give the chat more real estate on phones */
  .spanishos-root[data-app="chat"] .spanishos-chatview{ gap: 6px; }
  .spanishos-root[data-app="chat"] .spanishos-main{ padding: 8px 10px 0 10px !important; padding-bottom: 0 !important; }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-main{ padding-bottom: 96px !important; }
  
  /* Mensajes más compactos en móvil */
  .spanishos-root[data-app="chat"] .spanishos-msg{
    margin-bottom: 8px;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-bubble{
    padding: 9px 11px;
    font-size: 15px;
    line-height: 1.4;
  }

  /* Anchor composer inside the chat view so it doesn't jump with the keyboard */
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0; /* Bottom nav hidden in chat on mobile */
    padding: 8px 10px calc(8px + env(safe-area-inset-bottom)) 10px;
    border-top: 1px solid var(--so-border);
    background: rgba(255,255,255,0.94);
    backdrop-filter: blur(12px);
    border-radius: 18px 18px 0 0;
  }

  .spanishos-root[data-app="chat"] .spanishos-composerwrap .spanishos-input{ gap: 8px; }

  /* Botones más compactos en móvil */
  .spanishos-root[data-app="chat"] .spanishos-input button{
    padding: 8px 12px;
    min-width: 68px;
    font-size: inherit;
    border-radius: 14px;
  }

  /* Text entry: always readable, no zoom, no clipping */
  .spanishos-root[data-app="chat"] .spanishos-input textarea{
    font-size: 16px;
    min-height: 40px;
    max-height: 120px;
    resize: none;
    overflow: auto;
    padding: 8px 10px;
    line-height: 1.35;
  }
}

/* When keyboard is open: hide suggestions too, keep the composer clean */
.spanishos-root.so-kbd .spanishos-ghost{ display:none !important; }
.spanishos-msg{display:flex; margin-bottom: 10px; animation: soIn .14s var(--so-ease) both;}
.spanishos-msg.user{justify-content:flex-end;}

@keyframes soIn{
  from{opacity:0; transform: translateY(4px);}
  to{opacity:1; transform: translateY(0);}
}

/* Typing / breathing indicator (assistant is “...”) */
.spanishos-typing{display:flex; align-items:center; gap:6px; padding: 2px 0;}
.spanishos-typing .dot{
  width: 6px;
  height: 6px;
  border-radius: 999px;
  background: rgba(17,17,17,0.35);
  animation: soDot 1.1s infinite;
}
.spanishos-typing .dot:nth-child(2){animation-delay: .12s;}
.spanishos-typing .dot:nth-child(3){animation-delay: .24s;}

@keyframes soDot{
  0%,80%,100%{transform: translateY(0); opacity: .35;}
  40%{transform: translateY(-3px); opacity: 1;}
}


/* Ambient "living system" motion */
@keyframes soAmbient{
  from{ transform: translate3d(0,0,0) scale(1); }
  to{ transform: translate3d(-12px,-8px,0) scale(1.03); }
}

@keyframes soStatus{
  0%,100%{ transform: scale(1); opacity: .55; box-shadow: 0 0 0 rgba(255,26,26,0.0); }
  50%{ transform: scale(1.15); opacity: 1; box-shadow: 0 12px 28px rgba(255,26,26,0.22); }
}

/* App-level transitions (only when switching views) */
@keyframes soViewIn{
  from{ opacity:0; transform: translateY(10px); }
  to{ opacity:1; transform: translateY(0); }
}
.spanishos-main.so-viewchange .so-view{
  animation: soViewIn 260ms var(--so-ease) both;
}

.spanishos-bubble{
  max-width: 820px;
  width: fit-content;
  border-radius: 18px;
  padding: 10px 12px;
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.95);
}
.spanishos-msg.user .spanishos-bubble{
  background: rgba(255,26,26,0.07);
  border-color: rgba(255,26,26,0.22);
}

.spanishos-double{display:grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px;}
@media (max-width: 900px){
  .spanishos-shell{grid-template-columns: 1fr;}
  .spanishos-sidebar{display:none;}
  .spanishos-double{grid-template-columns: 1fr;}
}

.spanishos-panel{
  border: 1px dashed rgba(17,17,17,0.18);
  border-radius: 16px;
  padding: 10px;
  background: rgba(255,255,255,0.75);
}
.spanishos-panel h4{margin: 0 0 6px 0; font-size: 11px; color: var(--so-muted); text-transform: uppercase; letter-spacing: .08em;}
.spanishos-panel .txt{white-space: pre-wrap;}

.spanishos-micro{font-size: 12px; margin-top: 8px; color: rgba(17,17,17,0.75);} 
.spanishos-micro b{color: var(--so-text);} 

.spanishos-ghost{display:flex; gap:8px; flex-wrap:wrap; margin-bottom: 8px;}
.spanishos-ghost button{
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.85);
  border-radius: 999px;
  padding: 8px 10px;
  font-size: 12px;
  cursor:pointer;
  white-space: nowrap;
}

/* Ghost suggestions más compactas en móvil */
@media (max-width: 900px){
  .spanishos-ghost{
    gap: 6px;
    margin-bottom: 6px;
  }
  .spanishos-ghost button{
    padding: 6px 10px;
    font-size: 13px;
    border-radius: 12px;
  }
}

.spanishos-input{
  display:flex;
  gap: 10px;
  position: sticky;
  bottom: 0;
  z-index: 3;
  padding: 8px 0 calc(8px + env(safe-area-inset-bottom)) 0;
  background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,0.92) 20%, rgba(255,255,255,0.92));
  backdrop-filter: blur(10px);
}
.spanishos-input textarea{
  flex:1;
  min-height: 50px;
  max-height: 180px;
  resize: vertical;
  padding: 10px;
  border-radius: 16px;
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.95);
  color: var(--so-text);
  line-height: 1.35;
  outline: none;
}
.spanishos-input textarea:focus{
  border-color: rgba(255,26,26,0.45);
  box-shadow: 0 0 0 4px rgba(255,26,26,0.10);
}

.spanishos-input button{
  padding: 10px 12px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.92);
  color: var(--so-text);
  cursor:pointer;
  font-weight: 800;
  min-width: 74px;
}
.spanishos-input button.primary{
  background: var(--so-accent);
  color: #fff;
  border-color: rgba(255,26,26,0.4);
}

.spanishos-success{color: #0f8b3a;}
.spanishos-danger{color: #b42318;}

/* Mobile bottom nav */
.spanishos-bottomnav{
  display:none;
  position: sticky;
  bottom: 0;
  z-index: 9;
  border-top: 1px solid var(--so-border);
  background: rgba(255,255,255,0.92);
  backdrop-filter: blur(6px);
  padding-bottom: env(safe-area-inset-bottom);
    padding-bottom: max(6px, calc(env(safe-area-inset-bottom) - 10px));
}
.spanishos-bottomnav .wrap{display:grid; grid-template-columns: repeat(6, 1fr);}
.spanishos-tab{
  padding: 8px 6px;
  border: 0;
  background: transparent;
  cursor:pointer;
  font-size: 11px;
  font-weight: 800;
  color: rgba(17,17,17,0.75);
}
.spanishos-tab .lbl{display:block; line-height:1.1;}
.spanishos-tab.active{color: var(--so-accent);} 

@media (max-width: 900px){
  .spanishos-app{
    height: calc(var(--so-vh, 1vh) * 100);
margin: 0;
    border-radius: 0;
    border-left: 0;
    border-right: 0;
  }
  .spanishos-top{flex-direction: column; align-items:flex-start;}
  .spanishos-top{
    position: sticky;
    top: 0;
    z-index: 12;
    background: rgba(255,255,255,0.88);
    backdrop-filter: blur(10px);
    padding-top: calc(12px + env(safe-area-inset-top));
  }
  .spanishos-sub{max-width: 100%;}

  /* Mobile topbar (v2.2.1): 2 clean rows (brand + actions / stats).
     Prevents the "Live / Pesetas / slider" wrap that looked broken. */
  .so-topbar-mobile{ height: auto; padding-bottom: 10px; }
  .so-topbar-row{ width: 100%; display:flex; align-items:center; }
  .so-topbar-row1{ justify-content: flex-start; gap: 10px; }
  .so-topbar-greeting-mobile{
    flex: 1 1 auto;
    min-width: 0;
    text-align: center;
    font-size: 12px;
    font-weight: 700;
    color: var(--so-muted);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    padding: 0 4px;
  }
  .so-topbar-actions{ display:flex; align-items:center; gap: 10px; flex: 0 0 auto; margin-left: auto; }
  .so-topbar-stats{ margin-top: 8px; gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .so-topbar-stats::-webkit-scrollbar{ display:none; }

  /* Fix: animated logo can look clipped on very small portrait screens */
  .spanishos-logo{ background-size: 90% 90%; }
  .spanishos-root .so-home-logo{ background-size: 90% 90%; }

  .so-topbar-bell{ position: relative; }
  .so-topbar-bell-dot{
    position: absolute;
    top: -5px;
    right: -4px;
    min-width: 18px;
    height: 18px;
    padding: 0 6px;
    border-radius: 999px;
    background: var(--so-accent);
    color: #fff;
    font-size: 11px;
    font-weight: 900;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow: 0 6px 16px rgba(0,0,0,0.18);
  }

  /* Legacy: keep other topbar rows stable. */
  .spanishos-top .spanishos-row{
    width: 100%;
    flex-wrap: nowrap;
    align-items: center;
    gap: 8px !important;
  }

  /* Fix: iOS/Android range control hitbox can overlap adjacent buttons */
  .spanishos-top .spanishos-row{ position: relative; }
  .spanishos-top .spanishos-hamburger,
  .spanishos-top .spanishos-settingsbtn{
    position: relative;
    z-index: 9999 !important;
    flex: 0 0 auto;
    touch-action: manipulation;
  }
  .spanishos-top .spanishos-slider{ position: relative; z-index: 1; }

  .spanishos-slider{
    min-width: 0;
    flex: 1 1 auto;
    justify-content: flex-end;
  }
  .spanishos-slider span.spanishos-small{ display:none; }
  .spanishos-slider input[type=range]{ width: clamp(64px, 22vw, 110px); }
  .spanishos-slider .spanishos-chip{
    font-size: 11px;
    padding: 5px 8px;
    max-width: 90px;
    overflow: hidden;
    text-overflow: ellipsis;
  }
  .spanishos-iconbtn{ padding: 9px 9px; }
  .spanishos-bottomnav{display:block;}
  .spanishos-main{padding-bottom: 64px;}
  .spanishos-main{padding: 12px;}
  .spanishos-ghost{flex-wrap:nowrap; overflow-x:auto; padding-bottom: 6px;}
  .spanishos-ghost::-webkit-scrollbar{display:none;}
  .spanishos-input textarea{font-size: 16px;}
}

/* Extra-small phones: hide the difficulty chip to prevent wrap */
@media (max-width: 420px){
  .spanishos-slider .spanishos-chip{ display:none; }
  .spanishos-slider input[type=range]{ width: clamp(58px, 24vw, 96px); }
}


/* Missing helpers */
.spanishos-h1{font-weight: 950; font-size: 18px; letter-spacing: .2px; margin: 0 0 4px 0;}
.spanishos-divider{height:1px; background: var(--so-border); margin: 12px 0;}
.spanishos-grid{display:grid; grid-template-columns: 1fr; gap: 12px;}

@media (max-width: 900px){
  .spanishos-main{padding-bottom: calc(70px + env(safe-area-inset-bottom));}
}

/* “Breathing” life cues */
.spanishos-root.is-thinking .spanishos-logo{
  animation: soPulse 1.25s var(--so-ease) infinite;
}

@keyframes soPulse{
  0%,100%{transform: scale(1); box-shadow: 0 0 0 rgba(255,26,26,0.0);}
  50%{transform: scale(1.03); box-shadow: 0 18px 40px rgba(255,26,26,0.22);}
}


/* Pulse + Echo */
.spanishos-pulse{display:flex; flex-direction:column; gap:10px; margin-top:10px;}
.spanishos-pulseitem{padding:10px 12px; border:1px solid var(--so-border); border-radius: var(--so-radius-s); background: rgba(255,255,255,0.78); backdrop-filter: blur(6px); animation: soViewIn 260ms var(--so-ease) both;}

.spanishos-pulsetop{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:4px;
  flex-wrap: wrap;
}
.spanishos-pulseicon{
  width:24px;
  height:24px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius: 10px;
  border:1px solid rgba(17,17,17,0.10);
  background: rgba(17,17,17,0.04);
  flex: 0 0 auto;
}

.spanishos-echoes{display:flex; flex-direction:column; gap:12px; margin-top:10px;}
.spanishos-echoitem{display:flex; gap:12px; align-items:flex-start; justify-content:space-between; padding:12px; border:1px solid var(--so-border); border-radius: var(--so-radius-s); background: rgba(255,255,255,0.78); backdrop-filter: blur(6px);}
.spanishos-echoitem button.primary{white-space:nowrap;}

@media (max-width: 520px){
  .spanishos-echoitem{flex-direction:column;}
  .spanishos-echoitem button.primary{width:100%;}
}

@media (prefers-reduced-motion: reduce){
  .spanishos-msg{animation:none;}
  .spanishos-root.is-thinking .spanishos-logo{animation:none;}
  .spanishos-typing .dot{animation:none;}
  .spanishos-shell::before{animation:none;}
  .spanishos-dot{animation:none;}
  .spanishos-main.so-viewchange .so-view{animation:none;}

  /* Ecosistema + panel (Inicio) */
  .spanishos-root .so-entity-inner,
  .spanishos-root .so-nucleus,
  .spanishos-root .so-nucleus::before,
  .spanishos-root .so-nucleus::after,
  .spanishos-root .so-tether,
  .spanishos-root .so-ecoarena::before,
  .spanishos-root .so-ecoarena::after,
  .spanishos-root .so-ecosparks::before,
  .spanishos-root .so-ecosparks::after,
  .spanishos-root .so-livedot,
  .spanishos-root .so-nucleus-burst,
  .spanishos-root .so-sparkline,
  .spanishos-root .so-sparkline-ghost,
  .spanishos-root .so-sparkdot,
  .spanishos-root .so-dashbar-fill::after{ animation:none !important; }
}

/* v0.4 mobile-first refinements + character/mission cards */
.spanishos-avatar.big{width: 46px; height: 46px; border-radius: 16px;}
.spanishos-avatar .initial{font-family: inherit;
  font-weight: inherit;
  }

.spanishos-missioncard{transition: transform .12s var(--so-ease), box-shadow .12s var(--so-ease);}
.spanishos-missioncard:hover{transform: translateY(-1px); box-shadow: 0 14px 30px rgba(0,0,0,0.08);}

.spanishos-personcard .primary{white-space: nowrap;}

.spanishos-nudge{
  border: 1px solid rgba(255,26,26,0.18);
  background: linear-gradient(180deg, rgba(255,26,26,0.07), rgba(255,255,255,0.9));
}

/* More practical mobile tap targets */
@media (max-width: 900px){
  .spanishos-tab{
    padding: 14px 6px;
    min-height: 58px;
    font-size: 12px;
  }
  .spanishos-navbtn{padding: 12px 12px;}
  .spanishos-card{border-radius: 20px;}
  .spanishos-input button{min-width: 86px;}
  .spanishos-input textarea{min-height: 54px;}
  .spanishos-messages{padding-bottom: 14px;}
}

/* ============================================================
   Inicio (móvil): 6 tarjetas en los bordes del contenedor + líneas al núcleo
   - En móvil, SOLO se muestran las líneas que conectan cada tarjeta con el centro.
   - Se desactivan las líneas/retículas decorativas antiguas para que no “ensucien”.
   ============================================================ */

@media (max-width: 900px){
  /* Quitar retícula / bloom antiguos (líneas fantasma) */
  .spanishos-root .so-ecoarena::before,
  .spanishos-root .so-ecoarena::after{
    display:none !important;
  }

  /* Mantener solo las líneas reales (tethers) */
  .spanishos-root .so-ecotethers{
    display:block !important;
    position:absolute;
    inset:0;
    pointer-events:none;
  }
  .spanishos-root .so-ecotethers .so-tether{
    display:block !important;
  }

  /* En móvil, los nodos se posicionan por offsets (px) calculados en JS */
  .spanishos-root .so-entity{
    transform: translate(-50%, -50%) translate(var(--x, 0px), var(--y, 0px)) scale(var(--s));
  }
  .spanishos-root .so-entity:active{
    transform: translate(-50%, -50%) translate(var(--x, 0px), var(--y, 0px)) scale(calc(var(--s) * 0.98));
  }

  /* Tethers: línea desde el centro hacia cada tarjeta */
  .spanishos-root .so-tether{
    width: var(--len, 160px);
    height: 2px;
    transform-origin: 0 50%;
    transform: translateY(-50%) rotate(var(--ang, 0deg));
    opacity: 0.55;
    background: linear-gradient(90deg,
      rgba(255,255,255,0) 0%,
      rgba(var(--so-neon-rgb),0.10) 38%,
      rgba(var(--so-neon-rgb),0.26) 100%);
    filter: drop-shadow(0 0 10px rgba(var(--so-neon-rgb),0.10));
    animation: none; /* menos “ruido” en móvil */
  }

  /* Ajuste de hit area en móvil */
  .spanishos-root .so-entity{
    min-width: 104px;
    max-width: 132px;
  }
}



/* --- OS Planner actions (3 buttons) --- */
.spanishos-actionrow{
  /* Grid makes 3 actions always readable (no clipped labels) */
  display:grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap:10px;
  align-items: stretch;
  margin-top: 12px;
}
.spanishos-actionrow button{
  width: 100%;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.92);
  color: var(--so-text);
  cursor:pointer;
  font-family: inherit;
  font-weight: inherit;
  
  /* Allow long labels without truncation */
  white-space: normal !important;
  text-align: center;
  line-height: 1.15;
  overflow: visible;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
  min-height: 52px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.spanishos-actionrow button.primary{
  background: var(--so-accent);
  color:#fff;
  border-color: rgba(255,26,26,0.4);
}
@media (max-width: 900px){
  .spanishos-actionrow{ grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 520px){
  .spanishos-actionrow{ grid-template-columns: 1fr; }
}

/* --- Double reality: tabs + swipe on mobile --- */
.spanishos-doubletabs{
  display:none;
  gap:8px;
  align-items:center;
}
.spanishos-doubletabs .tab{
  flex:1;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.85);
  border-radius: 999px;
  padding: 8px 10px;
  font-family: inherit;
  font-weight: inherit;
    cursor:pointer;
}
.spanishos-doubletabs .tab.active{
  border-color: rgba(255,26,26,0.28);
  background: rgba(255,26,26,0.08);
}
@media (max-width: 720px){
  .spanishos-double{
    display:block;
    margin-top: 10px;
  }
  .spanishos-doubletabs{display:flex;}
  .spanishos-panel{margin-top: 10px;}
  .spanishos-double[data-mode="you"] .spanishos-panel.native{display:none;}
  .spanishos-double[data-mode="native"] .spanishos-panel.you{display:none;}
}

/* --- One-hand mode (mobile practicality) --- */
.onehand .spanishos-input textarea{
  font-size: 16px;
  min-height: 56px;
}
.onehand .spanishos-ghost{
  flex-wrap:nowrap;
  overflow:auto;
  -webkit-overflow-scrolling: touch;
}
.onehand .spanishos-ghost button{
  padding: 10px 12px;
  font-size: 13px;
}
.onehand .spanishos-input button.send{
  min-width: 96px;
  padding: 14px 14px;
}
@media (max-width: 900px){
  .onehand .spanishos-input button.back{display:none;}
  .onehand .spanishos-bottomnav .wrap{grid-template-columns: repeat(6, 1fr);}
  .onehand .spanishos-tab{padding: 12px 6px;}
}

/* --- Inicio (panel inteligente) --- */
.spanishos-homegrid{display:grid; grid-template-columns: 1fr 1fr; gap:12px;}
.spanishos-homecol{display:flex; flex-direction:column; gap:12px;}
@media (max-width: 900px){
  .spanishos-homegrid{grid-template-columns: 1fr;}
}

.spanishos-radar{display:flex; flex-direction:column; gap:10px; margin-top:10px;}
.spanishos-radaritem{padding:10px 12px; border:1px solid var(--so-border); border-radius: var(--so-radius-s); background: rgba(255,255,255,0.72); backdrop-filter: blur(6px);}

.spanishos-quickpeople{display:flex; gap:8px; flex-wrap:wrap; margin-top:10px;}

.spanishos-bullets{margin: 8px 0 0 18px; padding: 0;}
.spanishos-bullets li{margin: 6px 0; color: rgba(17,17,17,0.82); font-size: inherit;}



/* --- Inicio v2 (panel inteligente) --- */
.spanishos-homegrid2{display:grid; grid-template-columns: 1.2fr 0.8fr; gap:12px;}
.spanishos-homegrid2 .spanishos-homehero{grid-column: 1 / -1;}
@media (max-width: 900px){
  .spanishos-homegrid2{grid-template-columns: 1fr;}
  .spanishos-homegrid2 .spanishos-homehero{grid-column: auto;}
}

.spanishos-homehero{position:relative; overflow:hidden;}
.spanishos-homehero::before{
  content:"";
  position:absolute;
  inset:-60px;
  background:
    radial-gradient(320px 240px at 20% 20%, rgba(255,26,26,0.14), rgba(255,255,255,0)),
    radial-gradient(320px 240px at 80% 30%, rgba(17,17,17,0.06), rgba(255,255,255,0));
  filter: blur(18px);
  opacity: .95;
  animation: soAmbient 7.5s ease-in-out infinite alternate;
  pointer-events:none;
}
.spanishos-homehero > *{ position: relative; z-index: 1; }

/* Inicio: keep the small "?" button neutral (white, dark text) */
.spanishos-homehero .spanishos-iconbtn{
  background: rgba(255,255,255,0.94);
  color: var(--so-text);
  border-color: rgba(17,17,17,0.14);
  box-shadow: 0 10px 24px rgba(0,0,0,0.08);
}

.spanishos-homehint{margin-top:10px; font-size: 15px; line-height: 1.35; color: rgba(17,17,17,0.84);} 

.spanishos-homecta{margin-top:12px;}
.spanishos-bigcta{
  width:100%;
  padding: 14px 14px;
  border-radius: 18px;
  font-weight: 950;
  letter-spacing: -0.01em;
  white-space: normal;
  line-height: 1.15;
}

/* Desktop: primary CTA in Inicio should feel punchy but not oversized */
@media (min-width: 901px){
  .spanishos-homehero .spanishos-bigcta{
    padding: 11px 14px;
    font-size: 15px;
    border-radius: 16px;
    /* Desktop: avoid an overly long full-width CTA */
    max-width: 620px;
    width: 100%;
  }
}

.spanishos-pillbtn{
  border-radius: 999px;
  padding: 10px 12px;
  font-family: inherit;
  font-weight: inherit;
    white-space: normal;
}

.spanishos-clickable{cursor:pointer;}

.spanishos-trend{font-weight: 950; color: rgba(17,17,17,0.72);} 

.spanishos-onboardoverlay{
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(17,17,17,0.52);
  display:flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.spanishos-onboardcard{
  width: min(560px, 100%);
  border-radius: 22px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.98);
  box-shadow: 0 24px 80px rgba(0,0,0,0.28);
  padding: 16px;
}

.spanishos-personmini{
  display:flex;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  padding: 12px;
  border-radius: var(--so-radius);
  border: 1px solid var(--so-border);
  background: rgba(255,255,255,0.78);
  backdrop-filter: blur(6px);
}

@media (max-width: 900px){
  .spanishos-personmini{padding: 12px;}
  .spanishos-bigcta{padding: 14px 14px;}
}
/* Mundo: “alive” bar */
.spanishos-livebar{
  display:flex;
  align-items:center;
  gap:8px;
  margin-top: 10px;
  padding: 8px 10px;
  border-radius: 999px;
  border: 1px solid rgba(17,17,17,0.10);
  background: rgba(17,17,17,0.03);
}
.spanishos-livedot{
  color: var(--so-accent);
  font-size: 10px;
  line-height: inherit;
  animation: soLive 1.25s var(--so-ease) infinite;
}
@keyframes soLive{
  0%,100%{ transform: scale(1); opacity: .55; }
  50%{ transform: scale(1.35); opacity: 1; }
}

/* Give Mundo topic a subtle “living” glow */
.spanishos-worldtopic{
  position: relative;
  overflow: hidden;
}
.spanishos-worldtopic::before{
  content:"";
  position:absolute;
  inset:-40px;
  background:
    radial-gradient(240px 180px at 20% 20%, rgba(255,26,26,0.14), rgba(255,255,255,0)),
    radial-gradient(240px 180px at 80% 30%, rgba(17,17,17,0.06), rgba(255,255,255,0));
  filter: blur(16px);
  opacity: .9;
  animation: soAmbient 6.5s ease-in-out infinite alternate;
  pointer-events:none;
}
.spanishos-worldtopic > *{ position: relative; z-index: 1; }

/* Inicio → Mundo: long options must never truncate on desktop */
.spanishos-worldopts{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.spanishos-worldopts .spanishos-ghostbtn.spanishos-pillbtn{
  white-space: normal !important;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  word-break: break-word;
  line-height: 1.15;
  text-align: left;
  max-width: 100%;
  flex: 1 1 260px;
}
@media (min-width: 901px){
  .spanishos-worldopts{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    align-items: stretch;
  }
  .spanishos-worldopts .spanishos-ghostbtn.spanishos-pillbtn{
    width: 100%;
    min-height: 44px;
    display:flex;
    align-items:center;
  }
}

.spanishos-worldopts{
  display:flex;
  gap:10px;
  flex-wrap:wrap;
}
.spanishos-worldopts .spanishos-ghostbtn.spanishos-pillbtn{
  white-space: normal !important;
  overflow: visible;
  text-overflow: clip;
  overflow-wrap: anywhere;
  word-break: break-word;
  hyphens: auto;
  line-height: 1.2;
  text-align: left;
  flex: 1 1 260px;
}
@media (min-width: 901px){
  .spanishos-worldopts{
    display:grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
  .spanishos-worldopts .spanishos-ghostbtn.spanishos-pillbtn{ width: 100%; }
}

/* --- Quick settings sheet --- */
.spanishos-iconbtn{
  border: 1px solid rgba(255,26,26,0.22);
  background: rgba(255,255,255,0.92);
  border-radius: 14px;
  padding: 10px 10px;
  cursor:pointer;
  font-family: inherit;
  font-weight: inherit;
    line-height: inherit;
  color: var(--so-text);
}
.spanishos-ghostbtn{
  border: 1px solid rgba(255,26,26,0.22);
  background: rgba(255,255,255,0.92);
  border-radius: 999px;
  padding: 8px 10px;
  cursor:pointer;
  font-family: inherit;
  font-weight: inherit;
    color: var(--so-text);
}
.spanishos-ghostbtn{ display:inline-flex; align-items:center; justify-content:center; }
a.spanishos-ghostbtn{ text-decoration:none; }
a.spanishos-muted{ text-decoration:none; }
a.spanishos-muted:hover{ text-decoration:underline; }
.spanishos-ghostbtn.active{
  border-color: rgba(255,26,26,0.28);
  background: rgba(255,26,26,0.08);
}

.spanishos-overlay{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,0.25);
  z-index: 9999;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding: 12px;
}
.spanishos-sheet{
  width:100%;
  max-width: 760px;
}
.spanishos-sheetcard{
  background: rgba(255,255,255,0.98);
  border: 1px solid rgba(17,17,17,0.12);
  border-radius: 22px;
  box-shadow: var(--so-shadow);
  padding: 14px;
}
.spanishos-toggle{
  display:flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
  font-weight: 800;
}
.spanishos-toggle input{ transform: scale(1.1); }


/* Skill tiles (Progreso) */
.spanishos-skillgrid{
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
  margin-top: 10px;
}
@media (min-width: 700px){
  .spanishos-skillgrid{ grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
@media (min-width: 1020px){
  .spanishos-skillgrid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
}
.spanishos-skill{
  border: 1px solid rgba(17,17,17,0.10);
  border-radius: 16px;
  background: rgba(255,255,255,0.94);
  padding: 10px;
  min-height: 118px;
  display:flex;
  flex-direction: column;
  gap: 8px;
}
.spanishos-skilltop{
  display:flex;
  align-items:flex-start;
  justify-content: space-between;
  gap: 10px;
}
.spanishos-skilltitle{
  font-family: inherit;
  font-weight: inherit;
    font-size: 13px;
  line-height: 1.15;
}
.spanishos-skillbadge{
  font-size: 11px;
  padding: 4px 8px;
  border-radius: 999px;
  border: 1px solid rgba(17,17,17,0.10);
  background: rgba(17,17,17,0.04);
  white-space: nowrap;
}
.spanishos-skillbadge.ok{
  border-color: rgba(255,26,26,0.45);
  background: rgba(255,26,26,0.08);
}
.spanishos-skillbadge.due{
  border-color: rgba(255,26,26,0.60);
  background: rgba(255,26,26,0.12);
}

.spanishos-skillbadge.nodata{
  border-color: rgba(17,17,17,0.14);
  background: rgba(17,17,17,0.03);
}
.spanishos-skill.no-data{
  background: rgba(255,255,255,0.86);
}
.spanishos-skill.no-data .spanishos-skillbar{
  opacity: 0.25;
}

.spanishos-skilldesc{
  font-size: 12px;
  color: rgba(17,17,17,0.70);
  line-height: 1.25;
}
.spanishos-skillbarwrap{
  height: 8px;
  border-radius: 999px;
  background: rgba(17,17,17,0.06);
  overflow: hidden;
}
.spanishos-skillbar{
  height: 100%;
  border-radius: 999px;
  background: var(--so-accent);
  width: 40%;
  transition: width 220ms var(--so-ease);
}
.spanishos-skillmeta{
  margin-top: auto;
  display:flex;
  flex-wrap: wrap;
  align-items:center;
  justify-content: space-between;
  gap: 10px;
  font-size: 11px;
}


/* Login screen (SpanishOS gate) */
.spanishos-loginwrap{
  min-height: calc(var(--so-vh, 1vh) * 100 - 30px);
display:flex;
  align-items:center;
  justify-content:center;
  padding: 18px 14px 24px;
  background: var(--so-wall);
}
.spanishos-logincard{
  width: min(520px, 100%);
  background: rgba(255,255,255,0.92);
  border: 1px solid var(--so-border);
  box-shadow: var(--so-shadow);
  border-radius: var(--so-radius);
  padding: 18px;
  backdrop-filter: blur(10px);
  overflow: hidden; /* Asegurar que nada se salga */
  box-sizing: border-box; /* Incluir padding en el ancho */
}
.spanishos-logincard, .spanishos-logincard *{ box-sizing: border-box; }
.spanishos-loginhead{
  display:flex;
  gap: 12px;
  align-items:center;
}
.spanishos-loginmark{
  width: 44px;
  height: 44px;
  border-radius: 14px;
  background: var(--so-accent);
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  font-family: inherit;
  font-weight: inherit;
    font-size: 22px;
  letter-spacing: 0.5px;
  flex: 0 0 auto;
}
.spanishos-logintitle{
  font-family: inherit;
  font-weight: inherit;
    font-size: 18px;
  line-height: 1.1;
}
.spanishos-inputfield{
  width: 100%;
  padding: 12px 12px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.95);
  color: var(--so-accent);
  font-weight: 700;
  outline:none;
  margin-top: 10px;
  box-sizing: border-box; /* Incluir padding y border en el ancho */
  max-width: 100%; /* No exceder el contenedor */
}

/*
  Defensive login inputs:
  Some WP themes apply aggressive input styles (width/line-height) that can make the
  text/field overflow outside the card. Keep SpanishOS inputs self-contained.
*/
/*
  HARD reset for login inputs (themes/builders often override inputs heavily).
  We "unset" and then re-apply our intended look to keep text/placeholder inside.
*/
.spanishos-logincard input.spanishos-inputfield,
.spanishos-logincard textarea.spanishos-inputfield{
  all: unset;
  box-sizing: border-box;
  display: block;
  width: 100% !important;
  max-width: 100% !important;
  min-width: 0;
  padding: 14px 16px;
  min-height: 52px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.95);
  color: var(--so-text);
  font: inherit;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: 0;
  -webkit-text-size-adjust: 100%;
  -webkit-appearance: none;
  appearance: none;
}

.spanishos-logincard input.spanishos-inputfield:focus,
.spanishos-logincard textarea.spanishos-inputfield:focus{
  border-color: rgba(255,26,26,0.45);
  box-shadow: 0 0 0 4px rgba(255,26,26,0.10);
}

.spanishos-logincard .spanishos-inputfield::placeholder{
  opacity: 0.65;
  color: rgba(17,17,17,0.55);
}
.spanishos-inputfield:focus{
  border-color: rgba(255,26,26,0.45);
  box-shadow: 0 0 0 4px rgba(255,26,26,0.10);
}
.spanishos-btn{
  width: 100%;
  margin-top: 12px;
  padding: 12px 14px;
  border-radius: 16px;
  border: 1px solid rgba(17,17,17,0.12);
  background: rgba(255,255,255,0.92);
  color: var(--so-text);
  cursor:pointer;
  font-family: inherit;
  font-weight: inherit;
    min-height: 44px;
}
.spanishos-btn.primary{
  background: var(--so-accent);
  color: #fff;
  border-color: rgba(255,26,26,0.4);
}
.spanishos-loginerror{
  margin-top: 10px;
  color: #b42318;
  font-weight: 700;
}


/* Mobile keyboard handling (iOS/Android): give space and avoid overlaps */
.spanishos-root.so-kbd .spanishos-bottomnav{ display:none !important; }
.spanishos-root.so-kbd .spanishos-main{ padding-bottom: 14px !important; }

/* Mobile: force accent (and link color) to red so the UI never inherits a blue primary from the WP theme */
@media (max-width: 900px){
  .spanishos-root{ --so-accent: #ff1a1a; }
  .spanishos-root a,
  .spanishos-root a:visited{ color: var(--so-accent) !important; }
}

/* Better touch feel */
.spanishos-root button,
.spanishos-navbtn,
.spanishos-tab,
.spanishos-ghost button,
.spanishos-input button{
  touch-action: manipulation;
}

/* === MEJORAS v1.1.0 === */

/* Toast de bienvenida */
.spanishos-welcome-toast {
  position: fixed;
  top: 20px;
  left: 50%;
  transform: translateX(-50%) translateY(-20px);
  /* Toast integrado con el skin (neón rojo) */
  background: linear-gradient(135deg,
    rgba(var(--so-neon-rgb), 0.92) 0%,
    rgba(var(--so-neon2-rgb), 0.92) 100%
  );
  border: 1px solid rgba(var(--so-neon-rgb), 0.35);
  color: rgba(255,255,255,0.98);
  padding: 16px 24px;
  border-radius: 12px;
  font-size: 16px;
  font-weight: 600;
  box-shadow:
    0 10px 28px rgba(0,0,0,0.26),
    0 0 24px rgba(var(--so-neon-rgb), 0.22);
  z-index: 10000;
  opacity: 0;
  transition: all 0.3s ease;
}

.spanishos-welcome-toast.show {
  opacity: 1;
  transform: translateX(-50%) translateY(0);
}

/* Badge de usuario en header (opcional) */
.spanishos-username-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(255, 255, 255, 0.9);
  padding: 6px 12px;
  border-radius: 20px;
  font-size: 13px;
  font-weight: 500;
  color: #333;
  box-shadow: 0 2px 8px rgba(0,0,0,0.1);
  z-index: 100;
}

@media (max-width: 900px) {
  .spanishos-username-badge {
    font-size: 12px;
    padding: 4px 10px;
    top: 8px;
    right: 8px;
  }
  
  .spanishos-welcome-toast {
    top: 10px;
    font-size: 14px;
    padding: 12px 20px;
  }
}


/* Economy: Pesetas - Estilo dorado como Trabajo */
.spanishos-chip.so-wallet { 
  font-weight: 700;
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
  color: var(--so-text);
}

button.primary.so-locked{ opacity:0.85; }
/* ===========================================
   SPANISHOS - TRABAJO UPDATE
   Añade logo SpanishLab y sección de trabajo

/* ============================================
   LOGO SPANISHLAB - SIDEBAR FOOTER
   ============================================ */

/* Logo en sidebar (desktop y móvil) */
.spanishlab-logo {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px 12px;
  margin-top: auto;
  border-top: 1px solid var(--so-border);
  opacity: 0.8;
  transition: opacity 0.2s ease;
}

.spanishlab-logo:hover {
  opacity: 1;
}

.spanishlab-logo img {
  width: 100%;
  height: auto;
  max-width: 180px;
  display: block;
}

/* ============================================

/* ============================================
   MENÚ MÓVIL - 6 BOTONES, LABEL SOLO EN ACTIVO
   ============================================ */

@media (max-width: 900px) {
  
  /* Bottomnav visible por defecto, PERO se oculta con so-kbd */
  .spanishos-bottomnav {
    display: block !important;
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    z-index: 100 !important;
    border-top: 1px solid var(--so-border);
    background: rgba(255,255,255,0.98);
    backdrop-filter: blur(12px);
    padding-bottom: max(2px, env(safe-area-inset-bottom));
    box-shadow: 0 -3px 10px rgba(0,0,0,0.08);
    transition: transform 0.2s ease, opacity 0.2s ease;
  }
  
  /* IMPORTANTE: Ocultar cuando teclado abierto */
  .spanishos-root.so-kbd .spanishos-bottomnav {
    display: none !important;
    transform: translateY(100%) !important;
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }

  .spanishos-bottomnav .wrap {
    display: flex !important;
    justify-content: space-around;
    align-items: stretch;
    width: 100%;
    max-width: 100%;
    overflow: hidden;
  }

  .spanishos-tab {
    flex: 1;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 4px 4px 2px 4px;
    border: 0;
    background: transparent;
    cursor: pointer;
    color: rgba(17,17,17,0.5);
    transition: all 0.15s ease;
    position: relative;
    min-width: 0;
    gap: 1px;
  }

  /* Icono siempre visible */
  .spanishos-tab .tab-icon {
    font-size: 22px;
    line-height: 1;
    transition: transform 0.15s ease;
  }

  /* Label SOLO visible cuando activo */
  .spanishos-tab .tab-label {
    font-size: 10px;
    font-weight: 700;
    line-height: 1;
    text-align: center;
    white-space: nowrap;
    max-width: 100%;
    /* Animación al aparecer */
    animation: fadeIn 0.2s ease;
  }

  @keyframes fadeIn {
    from {
      opacity: 0;
      transform: translateY(-4px);
    }
    to {
      opacity: 1;
      transform: translateY(0);
    }
  }

  .spanishos-tab.active {
    color: var(--so-accent);
  }

  .spanishos-tab.active .tab-icon {
    transform: scale(1.1);
  }

  /* Indicador superior */
  .spanishos-tab::before {
    content: '';
    position: absolute;
    top: 0;
    left: 20%;
    right: 20%;
    height: 3px;
    background: var(--so-accent);
    border-radius: 0 0 3px 3px;
    opacity: 0;
    transform: scaleX(0);
    transition: all 0.2s ease;
  }

  .spanishos-tab.active::before {
    opacity: 1;
    transform: scaleX(1);
  }

  /* Pantallas muy pequeñas */
  @media (max-width: 360px) {
    .spanishos-tab .tab-icon {
      font-size: 20px;
    }
    
    .spanishos-tab .tab-label {
      font-size: 9px;
    }
    
    .spanishos-tab {
      padding: 3px 2px 2px 2px;
      gap: 1px;
    }
  }

  /* Pantallas medianas */
  @media (min-width: 361px) {
    .spanishos-tab .tab-icon {
      font-size: 23px;
    }
    
    .spanishos-tab .tab-label {
      font-size: 10px;
    }
  }
}

/* ============================================
   DISEÑO MODERNO - CARDS
   ============================================ */

/* Misiones modernas */
.spanishos-mission-item {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
}

.spanishos-mission-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.spanishos-mission-item:hover {
  border-color: rgba(255, 26, 26, 0.35);
  box-shadow: 0 8px 20px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

.spanishos-mission-item:hover::before {
  opacity: 1;
}

.spanishos-mission-item.done {
  opacity: 0.75;
}

/* Personas modernas */
.spanishos-character-card {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
}

.spanishos-character-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.spanishos-character-card:hover {
  border-color: rgba(255, 26, 26, 0.35);
  box-shadow: 0 8px 20px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

.spanishos-character-card:hover::before {
  opacity: 1;
}

.spanishos-character-card.locked {
  opacity: 0.6;
  cursor: not-allowed;
}

.spanishos-character-card.locked:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--so-border);
}

/* Progreso moderno */
.spanishos-stat-box {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 14px;
  padding: 16px;
  text-align: center;
  transition: all 0.2s ease;
  margin-bottom: 12px;
}

.spanishos-stat-box:hover {
  border-color: rgba(255, 26, 26, 0.3);
  box-shadow: 0 6px 16px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

/* Mundo - noticias */
.spanishos-news-item {
  border: 1px solid var(--so-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.95);
  padding: 14px;
  margin-bottom: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.spanishos-news-item:hover {
  border-color: rgba(255, 26, 26, 0.3);
  box-shadow: 0 4px 12px rgba(255, 26, 26, 0.08);
  transform: translateY(-1px);
}

/* Facts */
.spanishos-fact-item {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1.5;
  transition: all 0.15s ease;
}

.spanishos-fact-item:hover {
  background: rgba(255, 26, 26, 0.03);
  border-color: rgba(255, 26, 26, 0.2);
}

/* Inicio - highlight */
.spanishos-daily-highlight {
  border: 2px solid rgba(255, 26, 26, 0.3);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 26, 26, 0.02));
  padding: 20px;
  margin-bottom: 20px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
}

.spanishos-daily-highlight::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.6));
  opacity: 0.7;
}

.spanishos-daily-highlight:hover {
  border-color: rgba(255, 26, 26, 0.5);
  box-shadow: 0 12px 28px rgba(255, 26, 26, 0.12);
  transform: translateY(-3px);
}

/* Errores en progreso */
.spanishos-error-row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 14px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 12px;
  margin-bottom: 10px;
  transition: all 0.15s ease;
}

.spanishos-error-row:hover {
  background: rgba(255, 26, 26, 0.03);
  border-color: rgba(255, 26, 26, 0.2);
}

.spanishos-error-count {
  font-size: 14px;
  font-weight: 700;
  color: var(--so-accent);
  background: rgba(255, 26, 26, 0.1);
  padding: 4px 10px;
  border-radius: 8px;
}

/* ============================================
   SECCIÓN TRABAJO
   ============================================ */

/* Header de trabajo */
.trabajo-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 20px;
  flex-wrap: wrap;
  gap: 12px;
}

.trabajo-earnings {
  font-size: 14px;
  font-weight: 600;
  color: var(--so-muted);
}

/* Grid de trabajos */
.trabajo-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  margin-bottom: 24px;
}

/* Card de trabajo */
.trabajo-card {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
}

.trabajo-card::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.trabajo-card:hover {
  border-color: rgba(255, 26, 26, 0.35);
  box-shadow: 0 8px 20px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

.trabajo-card:hover::before {
  opacity: 1;
}

.trabajo-card.locked {
  opacity: 0.6;
  cursor: not-allowed;
}

.trabajo-card.locked:hover {
  transform: none;
  box-shadow: none;
  border-color: var(--so-border);
}

/* Header del trabajo */
.trabajo-header-row {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: 12px;
}

.trabajo-icon {
  font-size: 36px;
  line-height: 1;
}

.trabajo-badge {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
}

/* Título y descripción */
.trabajo-title {
  font-size: 16px;
  font-weight: 700;
  margin: 0 0 6px 0;
  color: var(--so-text);
}

.trabajo-company {
  font-size: 12px;
  color: var(--so-muted);
  margin-bottom: 8px;
}

.trabajo-description {
  font-size: 13px;
  color: var(--so-text);
  line-height: 1.4;
  margin-bottom: 12px;
}

/* Meta info */
.trabajo-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--so-muted);
}

.trabajo-meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

/* Dificultad */
.trabajo-difficulty {
  padding: 2px 8px;
  border-radius: 6px;
  font-weight: 600;
}

.trabajo-difficulty.facil {
  background: rgba(34, 197, 94, 0.15);
  color: #16a34a;
}

.trabajo-difficulty.medio {
  background: rgba(251, 191, 36, 0.15);
  color: #d97706;
}

.trabajo-difficulty.dificil {
  background: rgba(239, 68, 68, 0.15);
  color: #dc2626;
}

/* Trabajo activo en chat */
.trabajo-chat-active {
  position: sticky;
  top: 0;
  z-index: 10;
  background: rgba(255, 255, 255, 0.98);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--so-border);
  margin: -16px -16px 16px -16px;
  padding: 12px 16px;
}

.trabajo-chat-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
}

/* Timer */
.trabajo-timer {
  font-size: 16px;
  font-weight: 700;
  font-family: 'Courier New', monospace;
  color: var(--so-text);
  padding: 6px 12px;
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 8px;
}

.trabajo-timer.active {
  animation: pulse 2s ease-in-out infinite;
}

@keyframes pulse {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.8; }
}

/* Earnings live */
.trabajo-earnings-live {
  font-size: 14px;
  font-weight: 700;
  color: var(--so-accent);
  padding: 6px 12px;
  background: rgba(255, 26, 26, 0.1);
  border-radius: 8px;
}

/* Botón completar */
.trabajo-complete-btn {
  padding: 8px 16px;
  border-radius: 10px;
  border: 1px solid var(--so-accent);
  background: var(--so-accent);
  color: white !important; /* ⭐ Forzar blanco */
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.trabajo-complete-btn:hover {
  background: rgba(255, 26, 26, 0.9);
  color: white !important; /* ⭐ Forzar blanco en hover también */
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(255, 26, 26, 0.2);
}

/* Responsive */
@media (max-width: 900px) {
  .trabajo-grid {
    grid-template-columns: 1fr;
    gap: 12px;
  }
  
  .trabajo-chat-header {
    flex-direction: column;
    align-items: flex-start;
  }
}

/* ============================================
   APLICAR DISEÑO MODERNO A TODAS LAS CARDS
   ============================================ */

/* Cards base - aplicar diseño moderno */
.spanishos-card {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  padding: 16px;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
  margin-bottom: 14px;
}

/* Borde superior animado para cards interactivas */
.spanishos-missioncard,
.spanishos-personcard,
.spanishos-worldtopic,
.spanishos-card[onclick] {
  cursor: pointer;
}

.spanishos-missioncard::before,
.spanishos-personcard::before,
.spanishos-worldtopic::before,
.spanishos-card[onclick]::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.spanishos-missioncard:hover,
.spanishos-personcard:hover,
.spanishos-worldtopic:hover,
.spanishos-card[onclick]:hover {
  border-color: rgba(255, 26, 26, 0.35);
  box-shadow: 0 8px 20px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
  cursor: pointer;
}

/* Desktop: reduce red haze on informational cards (keep identity, lower glow) */
@media (min-width: 901px){
  .spanishos-missioncard:hover,
  .spanishos-personcard:hover,
  .spanishos-worldtopic:hover,
  .spanishos-card[onclick]:hover {
    border-color: rgba(255, 26, 26, 0.22);
    box-shadow: 0 10px 22px rgba(0, 0, 0, 0.10);
  }
  .spanishos-homehero{
    border: 2px solid rgba(255, 26, 26, 0.20);
    background: linear-gradient(135deg, rgba(255, 255, 255, 0.985), rgba(255, 26, 26, 0.012));
  }
}

.spanishos-missioncard:hover::before,
.spanishos-personcard:hover::before,
.spanishos-worldtopic:hover::before,
.spanishos-card[onclick]:hover::before {
  opacity: 1;
}

/* Hero de inicio más destacado */
.spanishos-homehero {
  border: 2px solid rgba(255, 26, 26, 0.3);
  background: linear-gradient(135deg, rgba(255, 255, 255, 0.98), rgba(255, 26, 26, 0.02));
  padding: 20px;
  cursor: pointer;
}

.spanishos-homehero::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.6));
  opacity: 0.7;
}

.spanishos-homehero:hover {
  border-color: rgba(255, 26, 26, 0.5);
  box-shadow: 0 12px 28px rgba(255, 26, 26, 0.12);
  transform: translateY(-3px);
}

/* Ajustar iconos/emojis más grandes */
.spanishos-missioncard .spanishos-h1,
.spanishos-personcard .spanishos-h1 {
  font-size: 20px;
}

/* Stats en progreso - grid moderno */
.spanishos-statgrid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
  gap: 14px;
  margin-bottom: 20px;
}

.spanishos-statitem {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 14px;
  padding: 16px;
  text-align: center;
  transition: all 0.2s ease;
}

.spanishos-statitem:hover {
  border-color: rgba(255, 26, 26, 0.3);
  box-shadow: 0 6px 16px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

/* Badges modernos */
.spanishos-badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
}

/* Info cards con colores */
.spanishos-card.spanishos-nudge {
  background: rgba(255, 215, 0, 0.08);
  border-color: rgba(255, 215, 0, 0.25);
}

/* Noticias del mundo */
.spanishos-newsitem {
  border: 1px solid var(--so-border);
  border-radius: 14px;
  background: rgba(255, 255, 255, 0.95);
  padding: 14px;
  margin-bottom: 12px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.spanishos-newsitem:hover {
  border-color: rgba(255, 26, 26, 0.3);
  box-shadow: 0 4px 12px rgba(255, 26, 26, 0.08);
  transform: translateY(-1px);
}

/* Pulsos del mundo */
.spanishos-pulse {
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 12px;
  padding: 12px 14px;
  margin-bottom: 10px;
  font-size: 14px;
  line-height: 1.5;
  transition: all 0.15s ease;
}

.spanishos-pulse:hover {
  background: rgba(255, 26, 26, 0.03);
  border-color: rgba(255, 26, 26, 0.2);
}

/* Personas en Mundo */
.spanishos-character-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: rgba(255, 255, 255, 0.95);
  border: 1px solid var(--so-border);
  border-radius: 12px;
  margin-bottom: 10px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.spanishos-character-item:hover {
  border-color: rgba(255, 26, 26, 0.3);
  box-shadow: 0 4px 12px rgba(255, 26, 26, 0.08);
  transform: translateY(-1px);
}

/* Responsive */
@media (max-width: 900px) {
  .spanishos-statgrid {
    grid-template-columns: repeat(2, 1fr);
    gap: 12px;
  }
}

/* ============================================
   MEJORAS INSPIRADAS EN SECCIÓN TRABAJO
   ============================================ */

/* Headers de sección más destacados */
.spanishos-h2 {
  font-size: 22px;
  font-weight: 700;
  margin-bottom: 16px;
  display: flex;
  align-items: center;
  gap: 8px;
}

/* Badges y chips mejorados */
.spanishos-chip {
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  transition: all 0.2s ease;
}

/* Status chips con colores específicos */
.spanishos-chip.ok {
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: #16a34a;
}

.spanishos-chip.mid {
  background: rgba(251, 191, 36, 0.15);
  border: 1px solid rgba(251, 191, 36, 0.3);
  color: #d97706;
}

.spanishos-chip.warn {
  background: rgba(239, 68, 68, 0.15);
  border: 1px solid rgba(239, 68, 68, 0.3);
  color: #dc2626;
}

/* Difficulty chip en dificultad */
.spanishos-chip[style*="natural"],
.spanishos-chip[style*="simple"],
.spanishos-chip[style*="advanced"] {
  background: rgba(59, 130, 246, 0.15);
  border: 1px solid rgba(59, 130, 246, 0.3);
  color: #2563eb;
}

/* Meta info mejorada */
.spanishos-meta {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  font-size: 12px;
  color: var(--so-muted);
  margin-top: 8px;
}

.spanishos-meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 4px 8px;
  background: rgba(0, 0, 0, 0.03);
  border-radius: 6px;
}

/* Iconos más grandes en títulos */
.spanishos-h1 {
  font-size: 18px;
  font-weight: 700;
  line-height: 1.3;
}

/* Botones mejorados estilo Trabajo */
.spanishos-btn,
button.primary {
  padding: 10px 18px;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  border: 1px solid var(--so-accent);
  background: var(--so-accent);
  color: white;
  cursor: pointer;
  transition: all 0.2s ease;
}

.spanishos-btn:hover,
button.primary:hover {
  background: rgba(255, 26, 26, 0.9);
  transform: translateY(-1px);
  box-shadow: 0 4px 12px rgba(255, 26, 26, 0.2);
}

.spanishos-ghostbtn {
  padding: 8px 16px;
  border-radius: 10px;
  font-size: 13px;
  font-weight: 600;
  border: 1px solid var(--so-border);
  background: transparent;
  color: var(--so-text);
  cursor: pointer;
  transition: all 0.2s ease;
}

.spanishos-ghostbtn:hover {
  background: rgba(255, 26, 26, 0.05);
  border-color: rgba(255, 26, 26, 0.3);
}

/* Info cards más destacadas */
.spanishos-card.spanishos-nudge,
.spanishos-card[style*="rgba(255,215,0"] {
  background: rgba(255, 215, 0, 0.08) !important;
  border: 1px solid rgba(255, 215, 0, 0.25);
}

/* Grids más consistentes */
.spanishos-row {
  display: flex;
  gap: 12px;
  align-items: center;
  flex-wrap: wrap;
}

/* Separadores sutiles */
hr,
.spanishos-separator {
  border: 0;
  height: 1px;
  background: var(--so-border);
  margin: 20px 0;
}

/* Listas mejoradas */
.spanishos-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

/* Avatares/iconos redondos más bonitos */
.spanishos-avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  background: rgba(255, 215, 0, 0.1);
  border: 2px solid rgba(255, 215, 0, 0.3);
}

/* Stats números más destacados */
.spanishos-stat-value {
  font-size: 32px;
  font-weight: 700;
  color: var(--so-accent);
  line-height: 1;
  margin-bottom: 6px;
}

.spanishos-stat-label {
  font-size: 13px;
  color: var(--so-muted);
  font-weight: 600;
}

/* Misión completada badge */
.spanishos-badge-done {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  padding: 4px 10px;
  border-radius: 8px;
  font-size: 12px;
  font-weight: 600;
  background: rgba(34, 197, 94, 0.15);
  border: 1px solid rgba(34, 197, 94, 0.3);
  color: #16a34a;
}

/* Rewards destacados */
.spanishos-reward {
  display: flex;
  align-items: center;
  gap: 6px;
  padding: 6px 12px;
  background: rgba(255, 215, 0, 0.15);
  border: 1px solid rgba(255, 215, 0, 0.3);
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
}

/* Topbar más moderno */
.spanishos-top {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--so-border);
}

/* Brand más destacado */
.spanishos-logo {
  font-size: 32px;
  width: 48px;
  height: 48px;
  background: linear-gradient(135deg, var(--so-accent), rgba(255, 26, 26, 0.8));
}

/* Títulos de sección con emoji */
.spanishos-section-title {
  display: flex;
  align-items: center;
  gap: 10px;
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 16px;
}

.spanishos-section-title::before {
  content: '';
  width: 4px;
  height: 24px;
  background: linear-gradient(180deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  border-radius: 2px;
}

/* Cards de personajes mejoradas */
.spanishos-personcard {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.spanishos-person-header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 12px;
}

.spanishos-person-avatar {
  font-size: 48px;
  line-height: 1;
}

.spanishos-person-info {
  flex: 1;
  min-width: 0;
}

.spanishos-person-name {
  font-size: 18px;
  font-weight: 700;
  margin-bottom: 4px;
}

.spanishos-person-role {
  font-size: 13px;
  color: var(--so-muted);
}

/* Noticias del mundo mejoradas */
.spanishos-worldtopic {
  position: relative;
  padding-left: 16px;
}

.spanishos-worldtopic::after {
  content: '';
  position: absolute;
  left: 0;
  top: 8px;
  bottom: 8px;
  width: 3px;
  background: linear-gradient(180deg, var(--so-accent), rgba(255, 26, 26, 0.3));
  border-radius: 2px;
}

/* Responsive improvements */
@media (max-width: 900px) {
  .spanishos-h2 {
    font-size: 20px;
  }
  
  .spanishos-stat-value {
    font-size: 28px;
  }
  
  .spanishos-person-avatar {
    font-size: 40px;
  }
}

/* ===== OCULTAR TOPBAR EN CHAT PARA MÁS ESPACIO ===== */
@media (max-width: 900px) {
  .spanishos-root[data-app="chat"] .spanishos-top {
    display: none !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-app {
    border-radius: 0 !important;
    margin: 0 !important;
    height: 100vh !important;
  }
}

/* ============================================
   CHAT MÓVIL - DISEÑO MODERNO Y LIMPIO
   ============================================ */

@media (max-width: 900px) {
  
  /* ===== ESTRUCTURA BASE ===== */
  .spanishos-root[data-app="chat"] .spanishos-main {
    padding: 0 !important;
    height: 100% !important;
    display: flex !important;
    flex-direction: column !important;
    background: #f5f5f5 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-chatview {
    display: flex !important;
    flex-direction: column !important;
    height: 100% !important;
  }
  
  /* ===== HEADER ===== */
  .spanishos-root[data-app="chat"] .spanishos-chathead {
    flex: 0 0 auto !important;
    background: white !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.08) !important;
    padding: 10px 12px !important;
    margin: 0 !important;
    border-radius: 0 !important;
  }
  
  .spanishos-root[data-app="chat"] .chatbrief,
  .spanishos-root[data-app="chat"] .spanishos-chatextra,
  .spanishos-root[data-app="chat"] .spanishos-chathint {
    display: none !important;
  }
  
  .spanishos-root[data-app="chat"] .chatback {
    width: 32px !important;
    height: 32px !important;
    min-width: 32px !important;
    border-radius: 50% !important;
    background: #f5f5f5 !important;
    border: 1px solid #e0e0e0 !important;
    color: #555 !important;
    padding: 0 !important;
    font-size: 18px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-h2 {
    font-size: 10px !important;
    color: #666 !important;
    margin: 0 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-h1 {
    font-size: 16px !important;
    color: #1a1a1a !important;
    margin: 1px 0 0 0 !important;
    font-weight: 700 !important;
    line-height: 1.3 !important;
    display: -webkit-box !important;
    -webkit-line-clamp: 2 !important;
    -webkit-box-orient: vertical !important;
    overflow: hidden !important;
  }
  
  .spanishos-root[data-app="chat"] .chatreset,
  .spanishos-root[data-app="chat"] .spanishos-ghostbtn {
    padding: 5px 10px !important;
    font-size: 11px !important;
    border-radius: 18px !important;
    background: #f5f5f5 !important;
    border: 1px solid #e0e0e0 !important;
  }
  
  .spanishos-root[data-app="chat"] button.primary {
    background: var(--so-accent) !important;
    color: white !important;
  }
  
  /* ===== MENSAJES ===== */
  .spanishos-root[data-app="chat"] .spanishos-messages {
    flex: 1 !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
    padding: 12px !important;
    padding-bottom: 135px !important;
    background: #f5f5f5 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-msg {
    margin-bottom: 12px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-msg.user {
    display: flex !important;
    justify-content: flex-end !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-msg.user .spanishos-bubble {
    background: rgba(255, 26, 26, 0.08) !important;
    color: #1a1a1a !important;
    border: 1px solid rgba(255, 26, 26, 0.15) !important;
    border-radius: 18px 18px 4px 18px !important;
    padding: 12px 16px !important;
    max-width: 80% !important;
    font-size: 16px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-msg.assistant {
    display: flex !important;
    justify-content: flex-start !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-msg.assistant .spanishos-bubble {
    background: white !important;
    color: #1a1a1a !important;
    border: 1px solid rgba(0, 0, 0, 0.08) !important;
    border-radius: 18px 18px 18px 4px !important;
    padding: 12px 16px !important;
    max-width: 80% !important;
    font-size: 16px !important;
  }
  
  /* ===== COMPOSITOR - SIEMPRE VISIBLE ===== */
  .spanishos-root[data-app="chat"] .spanishos-composerwrap {
    position: fixed !important;
    bottom: 55px !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    background: white !important;
    border-top: 1px solid rgba(0, 0, 0, 0.1) !important;
    box-shadow: 0 -2px 8px rgba(0, 0, 0, 0.08) !important;
    padding: 8px 12px !important;
    z-index: 999 !important;
    box-sizing: border-box !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-ghost {
    display: flex !important;
    gap: 8px !important;
    overflow-x: auto !important;
    padding-bottom: 8px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-ghost::-webkit-scrollbar {
    display: none !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-ghost button {
    background: #f0f0f0 !important;
    border: 1px solid #e0e0e0 !important;
    color: #555 !important;
    padding: 8px 14px !important;
    border-radius: 20px !important;
    font-size: 14px !important;
    white-space: nowrap !important;
    flex-shrink: 0 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-input {
    display: flex !important;
    align-items: flex-end !important;
    gap: 8px !important;
    background: #f5f5f5 !important;
    border-radius: 24px !important;
    padding: 4px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-input textarea {
    flex: 1 !important;
    border: none !important;
    background: transparent !important;
    resize: none !important;
    outline: none !important;
    font-size: 16px !important;
    padding: 10px 14px !important;
    min-height: 40px !important;
    max-height: 120px !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-input button.send {
    width: 40px !important;
    height: 40px !important;
    min-width: 40px !important;
    border-radius: 50% !important;
    background: var(--so-accent) !important;
    color: white !important;
    border: none !important;
    padding: 0 !important;
    font-size: 0 !important;
    flex-shrink: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-input button.send::before {
    content: "➤" !important;
    font-size: 18px !important;
  }
  
  /* ===== CON TECLADO ===== */
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-bottomnav {
    display: none !important;
  }
  
  /* Cuando el teclado está abierto, ajustar compositor con transform */
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap {
    bottom: 0 !important;
  }
  
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-messages {
    padding-bottom: 80px !important;
  }
}
  .spanishos-root.so-kbd .spanishos-bottomnav,
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-bottomnav {
    transform: translateY(100%) !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: transform 0.2s ease, opacity 0.2s ease !important;
  }

/* Cuando el teclado está abierto, composer va al fondo */
.spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap {
  bottom: 0 !important;
  padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
}

/* Reducir padding de mensajes cuando teclado abierto (menú oculto) */
.spanishos-root.so-kbd[data-app="chat"] .spanishos-messages {
  padding-bottom: 90px !important; /* compositor (70px) + margen (20px) */
}

/* ============================================
   🎵 MÚSICA + REDISEÑO MUNDO
   ============================================ */

/* === Sección de Música - MISMO ESTILO QUE TRABAJO === */

.mundo-musica-section {
  background: white !important;
  color: var(--so-text) !important;
  border: 1px solid var(--so-border) !important;
  margin-bottom: 20px;
  box-shadow: none !important;
}

/* Header Mundo - Normal sin color especial */
.spanishos-root[data-app="mundo"] > div > .spanishos-card:first-child {
  background: white !important;
  color: var(--so-text) !important;
  border: 1px solid var(--so-border) !important;
  box-shadow: none !important;
}

.spanishos-root[data-app="mundo"] > div > .spanishos-card:first-child .spanishos-h1,
.spanishos-root[data-app="mundo"] > div > .spanishos-card:first-child .spanishos-muted,
.spanishos-root[data-app="mundo"] > div > .spanishos-card:first-child .spanishos-small {
  color: inherit !important;
}

.spanishos-root[data-app="mundo"] > div > .spanishos-card:first-child .spanishos-livebar {
  border-top-color: var(--so-border) !important;
}

.mundo-musica-section .spanishos-h1,
.mundo-musica-section .spanishos-muted {
  color: inherit !important;
}

.mundo-musica-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 16px;
  margin-top: 16px;
}

/* === TARJETAS BASE === */

/* Card de música - MISMO ESTILO QUE TRABAJO-CARD */
.mundo-musica-item {
  border: 1px solid var(--so-border);
  border-radius: 16px;
  background: rgba(255, 255, 255, 0.95);
  padding: 16px;
  cursor: pointer;
  transition: all 0.2s cubic-bezier(.2,.8,.2,1);
  position: relative;
  overflow: hidden;
  min-height: auto;
}

/* Barra superior al hover - igual que trabajo */
.mundo-musica-item::before {
  content: '';
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--so-accent), rgba(255, 26, 26, 0.4));
  opacity: 0;
  transition: opacity 0.2s ease;
}

.mundo-musica-item:hover {
  border-color: rgba(255, 26, 26, 0.35);
  box-shadow: 0 8px 20px rgba(255, 26, 26, 0.08);
  transform: translateY(-2px);
}

.mundo-musica-item:hover::before {
  opacity: 1;
}

/* === DISEÑOS DIFERENCIADOS POR TIPO === */

/* 🎵 Música - Énfasis en el icono grande */
.mundo-card-musica .mundo-musica-flag {
  font-size: 48px !important;
  margin-bottom: 12px;
}

.mundo-card-musica {
  background: linear-gradient(135deg, rgba(255, 26, 26, 0.02) 0%, rgba(255, 26, 26, 0.05) 100%);
}

/* 📺 Series - Layout con banner */
.mundo-card-serie {
  background: linear-gradient(135deg, rgba(139, 92, 246, 0.03) 0%, rgba(139, 92, 246, 0.08) 100%);
  min-height: 180px;
}

.mundo-card-serie .mundo-musica-flag {
  position: absolute;
  top: 12px;
  right: 12px;
  font-size: 32px;
  opacity: 0.4;
}

.mundo-card-serie .mundo-musica-overlay {
  padding-top: 8px;
}

.mundo-card-serie .mundo-musica-title {
  font-size: 18px;
  margin-bottom: 6px;
}

/* 🍽️ Gastronomía - Estilo receta */
.mundo-card-gastronomia {
  background: linear-gradient(135deg, rgba(251, 191, 36, 0.03) 0%, rgba(251, 191, 36, 0.08) 100%);
}

.mundo-card-gastronomia .mundo-musica-flag {
  font-size: 40px;
  margin-bottom: 8px;
}

.mundo-card-gastronomia .mundo-musica-artist {
  display: flex;
  align-items: center;
  gap: 4px;
}

.mundo-card-gastronomia .mundo-musica-artist::before {
  content: '📍';
  font-size: 12px;
}

/* ⚽ Deportes - Estilo marcador */
.mundo-card-deporte {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.03) 0%, rgba(34, 197, 94, 0.08) 100%);
}

.mundo-card-deporte .mundo-musica-flag {
  font-size: 36px;
  margin-bottom: 8px;
}

.mundo-card-deporte .mundo-musica-title {
  font-size: 15px;
  font-weight: 700;
  background: rgba(0, 0, 0, 0.03);
  padding: 8px;
  border-radius: 6px;
  margin: 4px 0;
  text-align: center;
}

.mundo-card-deporte .mundo-musica-artist {
  font-weight: 600;
  color: var(--so-text);
  font-size: 13px;
}

/* 🌤️ Clima - Estilo weather card */
.mundo-card-clima {
  background: linear-gradient(135deg, rgba(59, 130, 246, 0.03) 0%, rgba(59, 130, 246, 0.08) 100%);
}

.mundo-card-clima .mundo-musica-flag {
  font-size: 56px;
  margin-bottom: 8px;
  text-align: center;
}

.mundo-card-clima .mundo-musica-title {
  font-size: 17px;
  text-align: center;
}

.mundo-card-clima .mundo-musica-artist {
  font-size: 24px;
  font-weight: 700;
  color: var(--so-text);
  text-align: center;
  margin: 8px 0;
}

.mundo-card-clima .mundo-musica-genre {
  text-align: center;
  font-size: 13px;
}

/* === ETIQUETAS DE TIPO === */

.mundo-content-badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.5px;
  margin-bottom: 8px;
}

.badge-musica {
  background: rgba(255, 26, 26, 0.1);
  color: #ff1a1a;
}

.badge-serie {
  background: rgba(139, 92, 246, 0.1);
  color: #8b5cf6;
}

.badge-gastronomia {
  background: rgba(251, 191, 36, 0.1);
  color: #f59e0b;
}

.badge-deporte {
  background: rgba(34, 197, 94, 0.1);
  color: #16a34a;
}

.badge-clima {
  background: rgba(59, 130, 246, 0.1);
  color: #3b82f6;
}

/* Sin imagen de fondo, todo texto limpio */
.mundo-musica-overlay {
  position: relative;
  background: transparent;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}

.mundo-musica-flag {
  font-size: 32px;
  line-height: 1;
  margin-bottom: 4px;
}

.mundo-musica-title {
  font-size: 16px;
  font-weight: 700;
  color: var(--so-text);
  margin: 0;
  line-height: 1.3;
}

.mundo-musica-artist {
  font-size: 12px;
  color: var(--so-muted);
  margin: 0;
  font-weight: 400;
}

.mundo-musica-genre {
  font-size: 12px;
  color: var(--so-muted);
  margin: 4px 0 8px 0;
  text-transform: none;
  letter-spacing: 0;
}

.mundo-musica-actions {
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
  margin-top: 8px;
}

.btn-mundo-musica {
  background: transparent;
  border: 1px solid var(--so-border);
  color: var(--so-text);
  padding: 6px 12px;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  transition: all 0.2s ease;
}

.btn-mundo-musica:hover {
  background: var(--so-soft);
  border-color: rgba(255, 26, 26, 0.35);
  color: var(--so-accent);
  transform: none;
  box-shadow: none;
}

/* === Mejoras Header Mundo === */

.spanishos-livebar {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.spanishos-livedot {
  color: #2ecc71;
  font-size: 12px;
  animation: pulse-live 2s ease-in-out infinite;
}

@keyframes pulse-live {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.6;
    transform: scale(1.3);
  }
}

/* === Mejoras Cards de Pulso === */

.spanishos-pulse {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-top: 16px;
}

.spanishos-pulseitem {
  background: #f7fafc;
  border-radius: 12px;
  padding: 16px;
  transition: all 0.2s ease;
  border-left: 3px solid transparent;
}

.spanishos-pulseitem:hover {
  background: #edf2f7;
  transform: translateX(4px);
  border-left-color: var(--so-accent);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
}

.spanishos-pulsetop {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  margin-bottom: 10px;
  gap: 12px;
}

.spanishos-pulseicon {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}

/* === Tema Destacado - Estilo Normal === */

.spanishos-worldtopic {
  background: rgba(255, 215, 0, 0.08) !important;
  color: var(--so-text) !important;
  border: 1px solid rgba(255, 215, 0, 0.3) !important;
  margin-bottom: 20px;
  box-shadow: none !important;
}

.spanishos-worldtopic .spanishos-h1,
.spanishos-worldtopic .spanishos-h2 {
  color: var(--so-text) !important;
}

.spanishos-worldtopic .spanishos-muted,
.spanishos-worldtopic .spanishos-small {
  color: var(--so-muted) !important;
}

.spanishos-worldtopic .spanishos-divider {
  background: var(--so-border) !important;
}

.spanishos-worldtopic .spanishos-bullets li {
  color: var(--so-text);
}

.spanishos-worldtopic button.primary {
  background: transparent !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-text) !important;
}

.spanishos-worldtopic button.primary:hover {
  background: var(--so-soft) !important;
  border-color: rgba(255, 26, 26, 0.35) !important;
  color: var(--so-accent) !important;
  transform: none;
  box-shadow: none;
}

.spanishos-worldtopic .spanishos-ghostbtn {
  background: transparent !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-text) !important;
}

.spanishos-worldtopic .spanishos-ghostbtn:hover {
  background: var(--so-soft) !important;
  border-color: rgba(255, 26, 26, 0.35) !important;
  color: var(--so-accent) !important;
}

/* === Responsive === */

@media (max-width: 768px) {
  .mundo-musica-grid {
    grid-template-columns: 1fr;
  }
  
  .mundo-musica-item {
    min-height: 160px;
  }
}

@media (max-width: 480px) {
  .mundo-musica-title {
    font-size: 14px;
  }
  
  .mundo-musica-artist {
    font-size: 13px;
  }
  
  .btn-mundo-musica {
    font-size: 12px;
    padding: 6px 12px;
  }
}

/* ============================================
   NUEVOS ESTILOS - LAYOUTS VARIADOS
   ============================================ */

/* === SERIES - LISTA NUMERADA === */

.mundo-series-section {
  background: white;
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  padding: 24px;
  margin-bottom: 20px;
}

.mundo-series-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mundo-serie-row {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 12px 0;
  border-bottom: 1px solid var(--so-border);
  transition: all 0.2s ease;
}

.mundo-serie-row:last-child {
  border-bottom: none;
}

.mundo-serie-row:hover {
  background: rgba(255, 26, 26, 0.02);
}

.mundo-serie-number {
  font-size: 20px;
  font-weight: 700;
  color: var(--so-muted);
  min-width: 32px;
  text-align: center;
  flex-shrink: 0;
}

.mundo-serie-info {
  flex: 1;
  min-width: 0;
}

.mundo-serie-title {
  font-size: 15px;
  font-weight: 600;
  color: var(--so-text);
  margin-bottom: 2px;
}

.mundo-serie-meta {
  font-weight: 400;
  color: var(--so-muted);
  font-size: 14px;
}

.mundo-serie-details {
  font-size: 13px;
  color: var(--so-muted);
}

.mundo-serie-btn {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  border: 1px solid var(--so-border);
  background: white;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.mundo-serie-btn:hover {
  background: var(--so-accent);
  color: white;
  border-color: var(--so-accent);
  transform: scale(1.1);
}

/* === GASTRONOMÍA - GRID DE ICONOS === */

.mundo-gastro-section {
  background: white;
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  padding: 24px;
  margin-bottom: 20px;
}

.mundo-gastro-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
  gap: 12px;
}

.mundo-gastro-item {
  background: var(--so-soft);
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 16px 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.mundo-gastro-item:hover {
  background: white;
  border-color: var(--so-border);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.06);
}

.mundo-gastro-icon {
  font-size: 40px;
  margin-bottom: 8px;
}

.mundo-gastro-name {
  font-size: 14px;
  font-weight: 600;
  color: var(--so-text);
  margin-bottom: 4px;
  line-height: 1.2;
}

.mundo-gastro-region {
  font-size: 12px;
  color: var(--so-muted);
}

/* === DEPORTES - TABLA DE RESULTADOS === */

.mundo-deportes-section {
  background: white;
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  padding: 24px;
  margin-bottom: 20px;
}

.mundo-deportes-table {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.mundo-deporte-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px;
  background: var(--so-soft);
  border-radius: 10px;
  border: 1px solid transparent;
  transition: all 0.2s ease;
}

.mundo-deporte-row:hover {
  background: white;
  border-color: var(--so-border);
  box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}

.mundo-deporte-row.destacado {
  background: rgba(255, 215, 0, 0.08);
  border-color: rgba(255, 215, 0, 0.3);
}

.mundo-deporte-row.destacado:hover {
  background: rgba(255, 215, 0, 0.12);
}

.mundo-deporte-icon {
  font-size: 24px;
  flex-shrink: 0;
}

.mundo-deporte-main {
  flex: 1;
  min-width: 0;
}

.mundo-deporte-partido {
  font-size: 14px;
  font-weight: 600;
  color: var(--so-text);
  margin-bottom: 2px;
}

.mundo-deporte-competicion {
  font-size: 12px;
  color: var(--so-muted);
}

.mundo-deporte-resultado {
  font-size: 18px;
  font-weight: 700;
  color: var(--so-text);
  padding: 4px 12px;
  background: white;
  border-radius: 8px;
  border: 1px solid var(--so-border);
  flex-shrink: 0;
}

.mundo-deporte-talk {
  width: 32px;
  height: 32px;
  border-radius: 8px;
  border: 1px solid var(--so-border);
  background: white;
  cursor: pointer;
  font-size: 14px;
  transition: all 0.2s ease;
  flex-shrink: 0;
}

.mundo-deporte-talk:hover {
  background: var(--so-accent);
  border-color: var(--so-accent);
  transform: scale(1.1);
}

/* === CLIMA - SCROLL HORIZONTAL === */

.mundo-clima-section {
  background: white;
  border: 1px solid var(--so-border);
  border-radius: var(--so-radius);
  padding: 24px;
  margin-bottom: 20px;
}

.mundo-clima-scroll {
  display: flex;
  gap: 12px;
  overflow-x: auto;
  padding: 8px 0;
  margin: 0 -24px;
  padding-left: 24px;
  padding-right: 24px;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}

.mundo-clima-scroll::-webkit-scrollbar {
  display: none;
}

.mundo-clima-mini {
  flex-shrink: 0;
  width: 100px;
  background: var(--so-soft);
  border: 1px solid transparent;
  border-radius: 12px;
  padding: 16px 12px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s ease;
}

.mundo-clima-mini:hover {
  background: white;
  border-color: var(--so-border);
  transform: translateY(-4px);
  box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}

.mundo-clima-mini-icon {
  font-size: 36px;
  margin-bottom: 8px;
}

.mundo-clima-mini-temp {
  font-size: 20px;
  font-weight: 700;
  color: var(--so-text);
  margin-bottom: 4px;
}

.mundo-clima-mini-ciudad {
  font-size: 12px;
  color: var(--so-muted);
  font-weight: 500;
}

/* === RESPONSIVE === */

@media (max-width: 768px) {
  .mundo-gastro-grid {
    grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
  }
  
  .mundo-serie-number {
    font-size: 16px;
    min-width: 24px;
  }
  
  .mundo-serie-title {
    font-size: 14px;
  }
  
  .mundo-deporte-resultado {
    font-size: 16px;
    padding: 4px 8px;
  }
  
  .mundo-clima-mini {
    width: 90px;
  }
}

/* ============================================
   MENÚ HAMBURGUESA MÓVIL - VERSIÓN SIMPLE
   ============================================ */

@media (max-width: 900px) {
  /* Ocultar bottom nav */
  .spanishos-bottomnav {
    display: none !important;
  }
  
  .spanishos-main {
    padding-bottom: 12px !important;
  }
  
  /* Sidebar como menú lateral */
  .spanishos-sidebar {
    /* NOTE: another mobile rule earlier sets .spanishos-sidebar{display:none;}
       so we must override it here for the slide-in menu to work. */
    display: flex !important;
    position: fixed !important;
    top: 0 !important;
    left: -280px !important;
    width: 280px !important;
    height: 100vh !important;
    background: white !important;
    box-shadow: 2px 0 20px rgba(0, 0, 0, 0.2) !important;
    transition: left 0.3s ease !important;
    z-index: 10000 !important;
    padding-top: 60px !important;
    overflow-y: auto !important;
  }
  
  .spanishos-sidebar.open {
    left: 0 !important;
  }
  
  /* Overlay */
  .spanishos-menu-overlay {
    position: fixed !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    bottom: 0 !important;
    background: rgba(0, 0, 0, 0.5) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.3s ease !important;
    z-index: 9999 !important;
  }
  
  .spanishos-menu-overlay.visible {
    opacity: 1 !important;
    pointer-events: all !important;
  }

  /* Bandeja de apps (app drawer) centrada */
  .spanishos-apptray-overlay {
    position: fixed !important;
    inset: 0 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    background: rgba(0, 0, 0, 0.55) !important;
    opacity: 0 !important;
    pointer-events: none !important;
    transition: opacity 0.18s ease !important;
    z-index: 20000 !important;
    padding: 18px !important;
  }

  .spanishos-apptray-overlay.visible {
    opacity: 1 !important;
    pointer-events: all !important;
  }

  .spanishos-apptray {
    width: min(92vw, 420px) !important;
    max-height: 78vh !important;
    background: rgba(255, 255, 255, 0.96) !important;
    border: 1px solid rgba(255, 255, 255, 0.7) !important;
    border-radius: 18px !important;
    box-shadow: 0 18px 60px rgba(0,0,0,0.35) !important;
    overflow: hidden !important;
    transform: translateY(10px) scale(0.98);
    transition: transform 0.18s ease !important;
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
  }

  .spanishos-apptray-overlay.visible .spanishos-apptray {
    transform: translateY(0) scale(1);
  }

  .spanishos-apptray-header {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    padding: 12px 12px 8px !important;
  }

  .spanishos-apptray-header > div {
    font-weight: 800 !important;
    letter-spacing: 0.2px !important;
  }

  .spanishos-apptray-close {
    width: 38px !important;
    height: 38px !important;
    border-radius: 12px !important;
    border: 1px solid var(--so-border) !important;
    background: rgba(245,245,245,0.95) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
  }

  .spanishos-apptray-grid {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 14px !important;
    padding: 14px 14px 18px !important;
    overflow: auto !important;
  }

  @media (max-width: 360px){
    .spanishos-apptray-grid{
      grid-template-columns: repeat(2, 1fr) !important;
      gap: 16px !important;
      padding: 16px !important;
    }
    .spanishos-apptray-item{
      padding: 16px 12px !important;
      min-height: 92px !important;
    }
  }


  .spanishos-apptray-item {
    border: 1px solid rgba(0,0,0,0.06) !important;
    background: rgba(250,250,250,0.95) !important;
    border-radius: 16px !important;
    padding: 14px 12px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    min-height: 86px !important;
  }

  .spanishos-apptray-item.active {
    border-color: rgba(0,0,0,0.16) !important;
    background: rgba(240,240,240,0.98) !important;
  }

  .spanishos-apptray-item .app-ic {
    font-size: 28px !important;
    line-height: 1 !important;
  }

  .spanishos-apptray-item .app-tx {
    font-size: 12px !important;
    font-weight: 700 !important;
    opacity: 0.92 !important;
  }
  
  /* Mostrar hamburguesa */
  .spanishos-hamburger {
    display: flex !important;
    font-size: 20px !important;
  }
  
  /* Botón cerrar */
  .spanishos-sidebar-close {
    position: absolute !important;
    top: 12px !important;
    right: 12px !important;
    width: 36px !important;
    height: 36px !important;
    border: 1px solid var(--so-border) !important;
    border-radius: 10px !important;
    background: #f5f5f5 !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    font-size: 20px !important;
    z-index: 10 !important;
  }
  
  /* Ajustar shell */
  .spanishos-shell {
    grid-template-columns: 1fr !important;
  }
  
  /* Compositor de chat */
  .spanishos-root[data-app="chat"] .spanishos-composerwrap {
    position: fixed !important;
    bottom: 0 !important;
    left: 0 !important;
    right: 0 !important;
    background: var(--so-bg) !important;
    border-top: 1px solid var(--so-border) !important;
    padding: 8px 12px !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
    z-index: 10 !important;
  }
  
  .spanishos-root[data-app="chat"] .spanishos-messages {
    padding-bottom: 100px !important;
  }

  /*
    En móvil usamos *solo* la bandeja de apps (app drawer).
    Ocultamos completamente el sidebar para que no asome ni sombra/borde.
  */
  .spanishos-sidebar {
    display: none !important;
    left: auto !important;
    box-shadow: none !important;
    border: 0 !important;
  }

  .spanishos-menu-overlay {
    display: none !important;
  }
}

@media (min-width: 901px) {
  .spanishos-hamburger {
    display: none !important;
  }
  
  .spanishos-sidebar-close {
    display: none !important;
  }
}

/* Tablets/teléfonos táctiles en horizontal: usar bandeja de apps, sin sidebar */
@media (hover: none) and (pointer: coarse) {
  .spanishos-shell { grid-template-columns: 1fr !important; }
  .spanishos-sidebar { display: none !important; }
  .spanishos-menu-overlay { display: none !important; }
  .spanishos-hamburger { display: flex !important; }
}



/* ============================================
   MOBILE FRIENDLY NAV (iOS-proof)
   - En móvil: bottom nav + botón Apps (cajón)
   - Ocultar completamente sidebar + overlay + hamburguesa
   ============================================ */
@media (max-width: 900px){
  /* Mostrar bottom nav SIEMPRE en móvil */
  .spanishos-bottomnav{ display:block !important; }
  .spanishos-main{ padding-bottom: calc(70px + env(safe-area-inset-bottom)) !important; }

  /* Ocultar hamburguesa en móvil (evita conflictos de hitbox con el slider en iOS) */
  .spanishos-hamburger{ display:none !important; }

  /* Ocultar el sidebar de escritorio por completo */
  .spanishos-shell{ grid-template-columns: 1fr !important; }
  .spanishos-sidebar{ display:none !important; width:0 !important; border:0 !important; box-shadow:none !important; }
  .spanishos-menu-overlay{ display:none !important; }

  /* Botón Apps un poco más grande para el dedo */
  .spanishos-tab.so-apps{
    transform: translateY(-8px);
    border: 1px solid rgba(0,0,0,0.10);
    border-radius: 16px;
    background: rgba(255,255,255,0.98);
    box-shadow: 0 6px 18px rgba(0,0,0,0.10);
    padding-top: 8px;
    padding-bottom: 6px;
  }
  .spanishos-tab.so-apps .tab-icon{ font-size: 20px; }
  .spanishos-tab.so-apps .tab-label{ display:block; font-size: 11px; font-weight: 800; }

  /* En móvil, el slider es el principal sospechoso de capturar taps.
     Lo dejamos, pero reducimos su hitbox horizontal. */
  .spanishos-slider input[type=range]{ max-width: 96px; }
}

@media (hover: none) and (pointer: coarse){
  .spanishos-bottomnav{ display:block !important; }
  .spanishos-hamburger{ display:none !important; }
  .spanishos-sidebar{ display:none !important; }
  .spanishos-menu-overlay{ display:none !important; }
}



/* =========================================================
   Mobile navigation rethink (NO bottom bar)
   - Hide sidebar + hamburger (to avoid iOS range hitbox conflicts)
   - Show a floating "Apps" launcher button that opens the app tray
   ========================================================= */

.spanishos-fab-home{
  display:none;
}

@media (max-width: 900px), (hover: none) and (pointer: coarse){
  /* Never show the left sidebar on mobile */
  .spanishos-sidebar{ display:none !important; }
  .spanishos-shell{ grid-template-columns: 1fr !important; }

  /* Disable the desktop hamburger on mobile (use the floating launcher instead) */
  .spanishos-hamburger{ display:none !important; }

  /* Ensure any previous bottom bar is hidden */
  .spanishos-bottomnav{ display:none !important; }

  /* Remove bottom padding that was reserved for bottom bar */
  .spanishos-main{ padding-bottom: 96px !important; }

  /* Floating launcher */
  .spanishos-fab-home{
    display:flex;
    position:fixed;
    right:16px;
    bottom: calc(18px + env(safe-area-inset-bottom));
    z-index: 40000;
    min-width: 56px;
    height: 56px;
    border-radius: 18px;
    padding: 0 14px;
    gap: 8px;
    align-items:center;
    justify-content:center;
    border: 1px solid rgba(0,0,0,0.10);
    background: rgba(255,255,255,0.96);
    box-shadow: 0 10px 30px rgba(0,0,0,0.25);
    -webkit-backdrop-filter: blur(10px);
    backdrop-filter: blur(10px);
    touch-action: manipulation;
  }
  .spanishos-fab-home .ic{
    font-size: 22px;
    line-height: 1;
  }
  .spanishos-fab-home .tx{
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.02em;
  }

  /* En chat, el campo de texto debe quedar siempre libre (sin botón flotante encima). */
.spanishos-root[data-app="chat"] .spanishos-fab-home{ display:none !important; }

  @media (max-width: 420px){
    .spanishos-fab-home{ min-width: 56px; padding: 0 12px; }
    .spanishos-fab-home .tx{ display:none; }
  }
.spanishos-root[data-app="inicio"] .spanishos-fab-home{ display:none !important; }
}


/* ============================================================
   Inicio (v3): Ecosistema vivo + Launcher magnético (estable)
   - Posiciones fijas (ángulos): nunca cambian
   - Solo cambia distancia, tamaño y brillo según prioridad
   ============================================================ */

/* ══════════════════════════════════════════════════════════════════════
   HOME SCREEN  —  so-home-*
   Clean, warm, functional. Sora headings · Plus Jakarta Sans body.
   ══════════════════════════════════════════════════════════════════════ */

/* ── Wrapper ──────────────────────────────────────────────────────── */
.spanishos-root .so-home-screen,
.spanishos-root .so-ecoscreen {
  display: flex;
  flex-direction: column;
  gap: 10px;
}
/* Home screen takes full available height so arena fills nicely */
.spanishos-root[data-app="inicio"] .spanishos-main {
  display: flex;
  flex-direction: column;
}
.spanishos-root[data-app="inicio"] .so-view {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.spanishos-root[data-app="inicio"] .so-home-screen {
  flex: 1;
}

/* ── Header row ───────────────────────────────────────────────────── */
.spanishos-root .so-home-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 2px 2px 0;
}
.spanishos-root .so-home-greeting-text {
  font-family: 'Sora', sans-serif;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--so-text, #141412);
  line-height: 1.1;
}
.spanishos-root .so-home-greeting-sub {
  margin-top: 3px;
  font-size: 12.5px;
  color: var(--so-muted, rgba(20,20,18,0.55));
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 55vw;
}
.spanishos-root .so-home-stats {
  display: flex;
  align-items: center;
  gap: 6px;
  flex-shrink: 0;
}
.spanishos-root .so-home-stat {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 6px 11px;
  border-radius: 12px;
  background: rgba(20,20,18,0.06);
  border: 1px solid rgba(20,20,18,0.08);
  cursor: default;
}
.spanishos-root .so-home-stat-gold {
  background: rgba(255,183,3,0.12);
  border-color: rgba(255,183,3,0.22);
}
.spanishos-root .so-home-stat-fire {
  background: rgba(230,57,70,0.10);
  border-color: rgba(230,57,70,0.18);
}
.spanishos-root .so-home-stat-ic { font-size: 13px; line-height: 1; }
.spanishos-root .so-home-stat-val {
  font-family: 'Sora', sans-serif;
  font-size: 13px;
  font-weight: 800;
  letter-spacing: -0.03em;
  color: var(--so-text, #141412);
  line-height: 1;
}
.spanishos-root .so-home-stat-lbl {
  font-size: 11px;
  font-weight: 600;
  color: var(--so-muted, rgba(20,20,18,0.50));
}

/* Night mode header */
.spanishos-root[data-phase="night"] .so-home-greeting-text { color: rgba(245,240,241,0.94); }
.spanishos-root[data-phase="night"] .so-home-greeting-sub  { color: rgba(245,240,241,0.42); }
/* ── Mobile Inicio header (replaces hidden topbar) ────────────────── */
.spanishos-root .so-home-mhdr {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 4px 2px 0;
}
.spanishos-root .so-home-mhdr-greeting {
  font-family: 'Sora', sans-serif;
  font-size: 20px; font-weight: 800; letter-spacing: -0.04em;
  color: var(--so-text, #141412); line-height: 1.1;
}
.spanishos-root .so-home-mhdr-sub {
  margin-top: 2px; font-size: 11.5px;
  color: var(--so-muted, rgba(20,20,18,0.50));
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spanishos-root .so-home-mhdr-stats {
  display: flex; align-items: center; gap: 5px; flex-shrink: 0;
}
.spanishos-root .so-home-mstat {
  display: flex; align-items: center; gap: 3px;
  padding: 5px 9px; border-radius: 10px;
  background: rgba(20,20,18,0.06); border: 1px solid rgba(20,20,18,0.08);
  font-size: 12px;
}
.spanishos-root .so-home-mstat.gold { background: rgba(244,168,35,0.13); border-color: rgba(244,168,35,0.22); }
.spanishos-root .so-home-mstat.fire { background: rgba(230,57,70,0.10); border-color: rgba(230,57,70,0.18); }
.spanishos-root .so-home-mstat-val {
  font-family: 'Sora', sans-serif; font-size: 12.5px; font-weight: 800;
  letter-spacing: -0.03em; color: var(--so-text, #141412); line-height: 1;
}
.spanishos-root[data-phase="night"] .so-home-mhdr-greeting { color: rgba(245,240,241,0.94); }
.spanishos-root[data-phase="night"] .so-home-mhdr-sub      { color: rgba(245,240,241,0.42); }
.spanishos-root[data-phase="night"] .so-home-mstat         { background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.10); }
.spanishos-root[data-phase="night"] .so-home-mstat-val     { color: rgba(245,240,241,0.90); }


.spanishos-root[data-phase="night"] .so-home-stat          { background: rgba(255,255,255,0.07); border-color: rgba(255,255,255,0.10); }
.spanishos-root[data-phase="night"] .so-home-stat-val      { color: rgba(245,240,241,0.92); }
.spanishos-root[data-phase="night"] .so-home-stat-lbl      { color: rgba(245,240,241,0.38); }


/* ── Home header (Inicio, all devices) ─────────────────────────────── */
.spanishos-root .so-home-hdr{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap: 14px;
  padding: 6px 2px 2px;
}
.spanishos-root .so-home-hdr-left{ min-width:0; }
.spanishos-root .so-home-brandrow{
  display:flex;
  align-items:center;
  gap: 8px;
}
.spanishos-root .so-home-logo{
  width: 28px; height: 28px;
  border-radius: 10px;
  background: var(--so-accent);
  color: #fff;
  display:flex; align-items:center; justify-content:center;
  font-family:'Sora', sans-serif;
  font-weight: 900;
  font-size: 14px;
  box-shadow: 0 4px 12px rgba(230,57,70,0.22);
  flex: 0 0 auto;
  background: transparent;
  background-image: url('../icons/fluyo-logo.png');
  background-size: contain;
  background-repeat: no-repeat;
  background-position: center;
  box-shadow: none;
}
.spanishos-root .so-home-brandname{
  font-family:'Sora', sans-serif;
  font-weight: 900;
  font-size: 14px;
  letter-spacing: -0.03em;
  color: var(--so-text);
}
.spanishos-root .so-home-betabadge{
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.08em;
  padding: 2px 8px;
  border-radius: 999px;
  border: 1px solid rgba(20,20,18,0.08);
  background: rgba(255,255,255,0.70);
  color: rgba(20,20,18,0.70);
}
.spanishos-root .so-home-hdr-greeting{
  font-family:'Sora', sans-serif;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: -0.04em;
  margin-top: 6px;
  color: var(--so-text);
  line-height: 1.05;
}
.spanishos-root .so-home-hdr-sub{
  margin-top: 4px;
  font-size: 12px;
  color: var(--so-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: min(520px, 72vw);
}

/* Inline greeting used on mobile Inicio top row: logo + name + greeting + actions */
.spanishos-root .so-home-hdr-greeting-inline{
  font-family:'Sora', sans-serif;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: -0.02em;
  color: var(--so-muted);
  min-width: 0;
  flex: 1 1 auto;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.spanishos-root .so-home-hdr-right{
  display:flex;
  align-items:center;
  gap: 8px;
  flex-shrink:0;
}
.spanishos-root .so-home-hdr-stats{
  display:flex;
  align-items:center;
  gap: 6px;
}
.spanishos-root .so-home-hstat{
  display:flex;
  align-items:center;
  gap: 4px;
  padding: 6px 10px;
  border-radius: 12px;
  background: rgba(255,255,255,0.72);
  border: 1px solid rgba(20,20,18,0.08);
  font-size: 12px;
}
.spanishos-root .so-home-hstat.gold{ background: rgba(244,168,35,0.12); border-color: rgba(244,168,35,0.20); }
.spanishos-root .so-home-hstat.fire{ background: rgba(230,57,70,0.08); border-color: rgba(230,57,70,0.16); }
.spanishos-root .so-home-hstat-val{
  font-family:'Sora', sans-serif;
  font-size: 12.5px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--so-text);
  line-height: 1;
}
.spanishos-root .so-home-gear{
  width: 38px;
  height: 38px;
  border-radius: 14px;
  border: 1px solid rgba(20,20,18,0.08);
  background: rgba(255,255,255,0.72);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  font-size: 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  -webkit-tap-highlight-color: transparent;
}
.spanishos-root .so-home-gear:active{ transform: scale(0.97); }


/* ── Home header: bell (novedades) ─────────────────────────────── */
.spanishos-root .so-home-bell{
  width: 38px;
  height: 38px;
  border-radius: 14px;
  border: 1px solid rgba(20,20,18,0.08);
  background: rgba(255,255,255,0.72);
  box-shadow: 0 6px 18px rgba(0,0,0,0.08);
  font-size: 18px;
  display:flex;
  align-items:center;
  justify-content:center;
  position: relative;
  -webkit-tap-highlight-color: transparent;
}
.spanishos-root .so-home-bell:active{ transform: scale(0.97); }
.spanishos-root .so-home-bell-dot{
  position:absolute;
  top: 6px;
  right: 6px;
  min-width: 16px;
  height: 16px;
  padding: 0 4px;
  border-radius: 999px;
  background: #E63946;
  color: #fff;
  font-size: 10px;
  font-weight: 900;
  line-height: 16px;
  text-align:center;
  box-shadow: 0 6px 18px rgba(0,0,0,0.18);
}
@media (max-width: 900px){
  .spanishos-root .so-home-bell{ width: 36px; height: 36px; border-radius: 13px; }
  .spanishos-root .so-home-bell-dot{ top: 5px; right: 5px; }
}
.spanishos-root[data-phase="night"] .so-home-bell{
  background: rgba(255,255,255,0.08);
  border-color: rgba(255,255,255,0.12);
  box-shadow: 0 6px 20px rgba(0,0,0,0.35);
}

/* ══════════════════════════════════════════════════════════════════════
   INICIO (v3) — Dashboard grid
   Un solo grid, sin duplicados. Un "Centro de mando" + 6 módulos.
   ══════════════════════════════════════════════════════════════════════ */

.spanishos-root .so-dashgrid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  align-items: stretch;
}
@media (max-width: 900px){
  .spanishos-root .so-dashgrid{ grid-template-columns: repeat(2, 1fr); gap: 8px; }
}

/* Featured / Command Center */
.spanishos-root .so-dash-feature{
  grid-column: 1 / -1;
  text-align: left;
  border: 1px solid rgba(20,20,18,0.08);
  border-radius: 20px;
  background: linear-gradient(135deg, rgba(255,255,255,0.92), rgba(230,57,70,0.04));
  box-shadow: 0 8px 22px rgba(0,0,0,0.07);
  padding: 14px 14px 12px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  overflow: hidden;
}
.spanishos-root .so-dash-feature:active{ transform: scale(0.995); }
.spanishos-root .so-dash-feature-k{
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--so-muted);
  margin-bottom: 10px;
}
.spanishos-root .so-dash-feature-row{
  display:flex;
  align-items:center;
  gap: 12px;
}
.spanishos-root .so-dash-feature-ic{
  width: 46px;
  height: 46px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 22px;
  border: 1px solid rgba(20,20,18,0.06);
  background: rgba(255,255,255,0.75);
  flex: 0 0 auto;
}
.spanishos-root .so-dash-feature-body{ min-width: 0; flex: 1; }
.spanishos-root .so-dash-feature-title{
  font-family:'Sora', sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--so-text);
  line-height: 1.15;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.spanishos-root .so-dash-feature-sub{
  margin-top: 4px;
  font-size: 12px;
  color: var(--so-muted);
  line-height: 1.35;
  white-space: normal;
}
.spanishos-root .so-dash-feature-cta{
  font-family:'Sora', sans-serif;
  font-weight: 900;
  font-size: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(230,57,70,0.12);
  border: 1px solid rgba(230,57,70,0.18);
  color: rgba(230,57,70,0.95);
  flex: 0 0 auto;
}

/* Featured CTA is now a real button (for accessibility + avoids nested buttons issues) */
.spanishos-root .so-dash-feature-ctaBtn{
  font-family:'Sora', sans-serif;
  font-weight: 900;
  font-size: 12px;
  padding: 10px 12px;
  border-radius: 14px;
  background: rgba(230,57,70,0.12);
  border: 1px solid rgba(230,57,70,0.18);
  color: rgba(230,57,70,0.95);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.spanishos-root .so-dash-feature-ctaBtn:active{ transform: scale(0.985); }

/* Command center: quick next actions */
.spanishos-root .so-dash-qrow{
  display:flex;
  align-items:center;
  gap: 8px;
  margin-top: 10px;
  flex-wrap: wrap;
}
.spanishos-root .so-dash-qk{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: rgba(20,20,18,0.46);
}
.spanishos-root .so-dash-q{
  display:flex;
  align-items:center;
  gap: 6px;
  border-radius: 999px;
  padding: 8px 10px;
  border: 1px solid rgba(20,20,18,0.10);
  background: rgba(255,255,255,0.78);
  font-size: 12px;
  font-weight: 900;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
}
.spanishos-root .so-dash-q .ic{ font-size: 14px; line-height: 1; }
.spanishos-root .so-dash-q:active{ transform: scale(0.98); }
@media (max-width: 900px){
  .spanishos-root .so-dash-qrow{
    flex-wrap: nowrap;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .spanishos-root .so-dash-qrow::-webkit-scrollbar{ display:none; }
  .spanishos-root .so-dash-q{ white-space: nowrap; }
}

/* Home header (mobile): stable 2-line layout */
@media (max-width: 900px){
  .spanishos-root .so-home-hdr-mobile{ padding: 6px 2px 8px; }
  .spanishos-root .so-home-hdr-mobile .so-home-hdr-top{
    display:flex;
    align-items:center;
    justify-content: space-between;
    gap: 10px;
  }
  .spanishos-root .so-home-hdr-mobile .so-home-brandrow{ gap: 8px; }
  /* Prevent the animated logo from looking cropped on narrow/vertical screens */
  .spanishos-root .so-home-hdr-mobile .so-home-logo{ background-size: 82%; }
  .spanishos-root .so-home-hdr-mobile .so-home-hdr-actions{
    display:flex;
    align-items:center;
    gap: 8px;
    flex: 0 0 auto;
  }
  .spanishos-root .so-home-hdr-mobile .so-home-hdr-sub{
    max-width: 100%;
    white-space: nowrap;
  }
  .spanishos-root .so-home-hdr-statswrap{
    margin-top: 8px;
    overflow-x: auto;
    padding-bottom: 4px;
  }
  .spanishos-root .so-home-hdr-statswrap::-webkit-scrollbar{ display:none; }
  .spanishos-root .so-home-hdr-stats{
    display:inline-flex;
    gap: 8px;
  }
  .spanishos-root .so-home-hstat{
    padding: 7px 10px;
    border-radius: 14px;
    white-space: nowrap;
  }
}
.spanishos-root .so-dash-feature-why{
  margin-top: 10px;
  font-size: 11px;
  color: var(--so-muted);
}

.spanishos-root .so-dash-feature-meta{
  margin-top: 10px;
  display: flex;
  gap: 8px;
  flex-wrap: wrap;
}
.spanishos-root .so-dash-meta-chip{
  display: inline-flex;
  align-items: center;
  padding: 7px 10px;
  border-radius: 999px;
  border: 1px solid rgba(0,0,0,0.08);
  background: rgba(255,255,255,0.70);
  color: rgba(17,17,17,0.76);
  font-size: 12px;
  font-weight: 800;
}
.spanishos-root[data-phase="night"] .so-dash-meta-chip{
  border-color: rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.06);
  color: rgba(245,240,241,0.78);
}

.spanishos-root[data-phase="night"] .so-dash-feature{
  background: rgba(28,28,26,0.80);
  border-color: rgba(255,255,255,0.10);
  box-shadow: 0 12px 30px rgba(0,0,0,0.32);
}
.spanishos-root[data-phase="night"] .so-dash-feature-title{ color: rgba(245,240,241,0.94); }
.spanishos-root[data-phase="night"] .so-dash-feature-sub,
.spanishos-root[data-phase="night"] .so-dash-feature-why{ color: rgba(245,240,241,0.46); }
.spanishos-root[data-phase="night"] .so-dash-feature-ic{ background: rgba(255,255,255,0.06); border-color: rgba(255,255,255,0.12); }
.spanishos-root[data-phase="night"] .so-dash-feature-cta{ background: rgba(230,57,70,0.16); border-color: rgba(230,57,70,0.22); color: rgba(245,240,241,0.92); }

/* Tiles */
.spanishos-root .so-dash-tile{
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border-radius: 16px;
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(20,20,18,0.07);
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  cursor: pointer;
  text-align: left;
  position: relative;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
  transition: all 0.16s cubic-bezier(.16,1,.3,1);
}
.spanishos-root .so-dash-tile:hover{
  transform: translateY(-2px);
  background: #fff;
  box-shadow: 0 8px 22px rgba(0,0,0,0.09);
  border-color: rgba(230,57,70,0.18);
}
.spanishos-root .so-dash-tile:active{ transform: scale(0.97); }

.spanishos-root .so-dash-tile-ic{
  width: 40px;
  height: 40px;
  border-radius: 13px;
  flex: 0 0 auto;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 20px;
  line-height: 1;
  border: 1px solid rgba(20,20,18,0.06);
}
.spanishos-root .so-dash-tile-body{ flex: 1; min-width: 0; }
.spanishos-root .so-dash-tile-name{
  font-family: 'Sora', sans-serif;
  font-size: 12.5px;
  font-weight: 800;
  letter-spacing: -0.02em;
  color: var(--so-text);
  line-height: 1.1;
  margin-bottom: 3px;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.spanishos-root .so-dash-tile-sub{
  font-size: 11px;
  color: var(--so-muted);
  line-height: 1.25;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.spanishos-root .so-dash-tile-badge{
  position: absolute;
  top: 10px;
  right: 10px;
  height: 18px;
  min-width: 18px;
  padding: 0 6px;
  border-radius: 999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 10px;
  font-weight: 900;
  letter-spacing: 0.02em;
  background: rgba(20,20,18,0.08);
  border: 1px solid rgba(20,20,18,0.10);
  color: rgba(20,20,18,0.80);
}
.spanishos-root .so-dash-tile-badge.kind-red{ background: rgba(230,57,70,0.12); border-color: rgba(230,57,70,0.20); color: rgba(230,57,70,0.95); }
.spanishos-root .so-dash-tile-badge.kind-gold{ background: rgba(244,168,35,0.14); border-color: rgba(244,168,35,0.22); color: rgba(160,110,0,0.95); }
.spanishos-root .so-dash-tile-badge.kind-dot{ width: 18px; padding: 0; }

@media (max-width: 900px){
  .spanishos-root .so-dash-tile{
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding: 12px 11px;
    border-radius: 15px;
  }
  .spanishos-root .so-dash-tile-ic{ width: 38px; height: 38px; border-radius: 12px; font-size: 19px; }
  .spanishos-root .so-dash-tile-name{ font-size: 12px; }
  .spanishos-root .so-dash-tile-sub{ font-size: 10.5px; }
}

.spanishos-root[data-phase="night"] .so-dash-tile{
  background: rgba(28,28,26,0.80);
  border-color: rgba(255,255,255,0.08);
}
.spanishos-root[data-phase="night"] .so-dash-tile:hover{ background: rgba(42,40,38,0.95); }
.spanishos-root[data-phase="night"] .so-dash-tile-name{ color: rgba(245,240,241,0.92); }
.spanishos-root[data-phase="night"] .so-dash-tile-sub{ color: rgba(245,240,241,0.44); }
.spanishos-root[data-phase="night"] .so-dash-tile-ic{ border-color: rgba(255,255,255,0.10); }
.spanishos-root[data-phase="night"] .so-dash-tile-badge{ background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); color: rgba(245,240,241,0.86); }

@media (max-width: 900px){
  .spanishos-root .so-home-hdr{ padding-top: 4px; }
  .spanishos-root .so-home-hdr-greeting{ font-size: 20px; }
  .spanishos-root .so-home-hstat{ padding: 5px 9px; border-radius: 10px; }
  .spanishos-root .so-home-gear{ width: 36px; height: 36px; border-radius: 13px; }
}

/* Night */
.spanishos-root[data-phase="night"] .so-home-brandname{ color: rgba(245,240,241,0.94); }
.spanishos-root[data-phase="night"] .so-home-betabadge{ background: rgba(255,255,255,0.10); border-color: rgba(255,255,255,0.14); color: rgba(245,240,241,0.75); }
.spanishos-root[data-phase="night"] .so-home-hdr-greeting{ color: rgba(245,240,241,0.96); }
.spanishos-root[data-phase="night"] .so-home-hdr-sub{ color: rgba(245,240,241,0.46); }
.spanishos-root[data-phase="night"] .so-home-hstat{ background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); }
.spanishos-root[data-phase="night"] .so-home-hstat-val{ color: rgba(245,240,241,0.92); }
.spanishos-root[data-phase="night"] .so-home-gear{ background: rgba(255,255,255,0.08); border-color: rgba(255,255,255,0.12); box-shadow: 0 6px 20px rgba(0,0,0,0.35); }

/* ── Smart "next action" card ─────────────────────────────────────── */
.spanishos-root .so-home-grid-smart .so-home-next{
  grid-column: 1 / -1;
  text-align: left;
  border: 1px solid rgba(20,20,18,0.08);
  border-radius: 18px;
  background: linear-gradient(135deg, rgba(255,255,255,0.90), rgba(67,97,238,0.04));
  box-shadow: 0 6px 18px rgba(0,0,0,0.07);
  padding: 14px 14px;
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  position: relative;
  overflow: hidden;
}
.spanishos-root .so-home-grid-smart .so-home-next:hover{
  transform: translateY(-1px);
  box-shadow: 0 10px 26px rgba(0,0,0,0.10);
}
.spanishos-root .so-home-grid-smart .so-home-next:active{ transform: scale(0.99); }
.spanishos-root .so-home-next-k{
  font-size: 10.5px;
  font-weight: 900;
  letter-spacing: 0.10em;
  text-transform: uppercase;
  color: var(--so-muted);
  margin-bottom: 10px;
}
.spanishos-root .so-home-next-row{
  display:flex;
  align-items:center;
  gap: 12px;
}
.spanishos-root .so-home-next-ic{
  width: 46px; height: 46px;
  border-radius: 16px;
  display:flex; align-items:center; justify-content:center;
  font-size: 22px;
  border: 1px solid rgba(20,20,18,0.06);
  flex: 0 0 auto;
}
.spanishos-root .so-home-next-body{ min-width: 0; flex: 1; }
.spanishos-root .so-home-next-title{
  font-family:'Sora', sans-serif;
  font-size: 15px;
  font-weight: 900;
  letter-spacing: -0.03em;
  color: var(--so-text);
  line-height: 1.1;
}
.spanishos-root .so-home-next-sub{
  margin-top: 4px;
  font-size: 12px;
  color: var(--so-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.spanishos-root .so-home-next-cta{
  flex: 0 0 auto;
  padding: 8px 12px;
  border-radius: 12px;
  background: rgba(230,57,70,0.08);
  border: 1px solid rgba(230,57,70,0.16);
  font-weight: 900;
  font-size: 12px;
  color: rgba(120,10,22,0.92);
}

@media (max-width: 900px){
  .spanishos-root .so-home-next-sub{ white-space: normal; }
}

.spanishos-root[data-phase="night"] .so-home-grid-smart .so-home-next{
  background: linear-gradient(135deg, rgba(28,28,26,0.86), rgba(67,97,238,0.10));
  border-color: rgba(255,255,255,0.10);
  box-shadow: 0 12px 40px rgba(0,0,0,0.35);
}
.spanishos-root[data-phase="night"] .so-home-next-title{ color: rgba(245,240,241,0.94); }
.spanishos-root[data-phase="night"] .so-home-next-sub{ color: rgba(245,240,241,0.46); }
.spanishos-root[data-phase="night"] .so-home-next-cta{
  background: rgba(230,57,70,0.14);
  border-color: rgba(230,57,70,0.24);
  color: rgba(255,220,230,0.92);
}


/* ── Pulse bar ────────────────────────────────────────────────────── */
.spanishos-root .so-home-pulse {
  width: 100%;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  border-radius: 16px;
  background: linear-gradient(135deg, #fff 0%, rgba(255,240,241,0.92) 100%);
  border: 1.5px solid rgba(230,57,70,0.24);
  box-shadow: 0 4px 16px rgba(230,57,70,0.10), 0 1px 4px rgba(0,0,0,0.04);
  cursor: pointer;
  text-align: left;
  transition: all 0.16s cubic-bezier(.16,1,.3,1);
  position: relative;
  overflow: hidden;
}
.spanishos-root .so-home-pulse::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2.5px;
  background: linear-gradient(90deg, #E63946 0%, rgba(230,57,70,0.15) 100%);
  border-radius: 16px 16px 0 0;
}
.spanishos-root .so-home-pulse:hover  { transform: translateY(-1px); box-shadow: 0 8px 24px rgba(230,57,70,0.16); border-color: rgba(230,57,70,0.38); }
.spanishos-root .so-home-pulse:active { transform: translateY(0); }

.spanishos-root .so-home-pulse-avatar {
  width: 40px; height: 40px; border-radius: 13px; flex-shrink: 0;
  background: rgba(230,57,70,0.10);
  border: 1.5px solid rgba(230,57,70,0.20);
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; line-height: 1;
  animation: soHomeAvatarPulse 3.5s ease-in-out infinite;
}
@keyframes soHomeAvatarPulse {
  0%,100% { transform: scale(1); }
  50%      { transform: scale(1.05); }
}
.spanishos-root .so-home-pulse-body { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.spanishos-root .so-home-pulse-who {
  font-family: 'Sora', sans-serif;
  font-size: 13px; font-weight: 700; letter-spacing: -0.025em;
  color: #141412; line-height: 1.1;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spanishos-root .so-home-pulse-preview {
  font-size: 12.5px; color: rgba(20,20,18,0.58); line-height: 1.3;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spanishos-root .so-home-pulse-cta {
  flex-shrink: 0;
  padding: 7px 14px; border-radius: 10px;
  background: #E63946; color: #fff;
  font-size: 12px; font-weight: 700; letter-spacing: -0.01em;
  pointer-events: none;
  box-shadow: 0 3px 10px rgba(230,57,70,0.28);
}

.spanishos-root[data-phase="night"] .so-home-pulse {
  background: linear-gradient(135deg, rgba(40,26,28,0.97) 0%, rgba(50,22,28,0.94) 100%);
  border-color: rgba(230,57,70,0.28);
}
.spanishos-root[data-phase="night"] .so-home-pulse-who    { color: rgba(245,240,241,0.92); }
.spanishos-root[data-phase="night"] .so-home-pulse-preview { color: rgba(245,240,241,0.48); }

/* ── Orbit arena ──────────────────────────────────────────────────── */
.spanishos-root .so-ecoarena {
  --so-neon: #E63946;
  --so-neon2: #c1121f;
  --so-neon-rgb: 230,57,70;
  --so-neon2-rgb: 193,18,31;
  --px: 0px; --py: 0px;
  position: relative;
  border-radius: 22px;
  border: 1px solid rgba(230,57,70,0.14);
  background:
    radial-gradient(600px 280px at 50% 42%, rgba(230,57,70,0.13), transparent 60%),
    radial-gradient(400px 200px at 18% 12%, rgba(230,57,70,0.08), transparent 55%),
    radial-gradient(400px 200px at 85% 88%, rgba(193,18,31,0.08), transparent 58%),
    rgba(6, 8, 14, 0.93);
  box-shadow: 0 16px 48px rgba(0,0,0,0.22), 0 0 0 1px rgba(255,255,255,0.03) inset;
  overflow: hidden;
  padding: 14px;
  height: clamp(340px, 50vh, 500px);
  flex: 1;
  isolation: isolate;
}
@media (min-width: 901px) {
  .spanishos-root .so-ecoarena {
    background:
      radial-gradient(600px 280px at 50% 42%, rgba(230,57,70,0.08), transparent 60%),
      radial-gradient(400px 200px at 18% 12%, rgba(230,57,70,0.05), transparent 55%),
      radial-gradient(400px 200px at 85% 88%, rgba(193,18,31,0.05), transparent 58%),
      rgba(6, 8, 14, 0.93);
  }
}
.spanishos-root .so-ecoarena::before {
  content: '';
  position: absolute; inset: -2px;
  border-radius: 24px;
  background: conic-gradient(from 0deg at 50% 50%,
    rgba(230,57,70,0.00) 0deg, rgba(230,57,70,0.22) 60deg,
    rgba(230,57,70,0.00) 120deg, rgba(230,57,70,0.12) 200deg,
    rgba(230,57,70,0.00) 270deg, rgba(230,57,70,0.18) 330deg, rgba(230,57,70,0.00) 360deg);
  mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  mask-composite: exclude; -webkit-mask-composite: destination-out;
  padding: 1.5px;
  animation: soArenaBorder 12s linear infinite;
  pointer-events: none;
}
.spanishos-root .so-ecoarena::after {
  content: '';
  position: absolute; inset: 0;
  background: radial-gradient(400px 200px at calc(50% + var(--px,0px)) calc(40% + var(--py,0px)),
    rgba(230,57,70,0.07), transparent 55%);
  pointer-events: none;
  transition: background 0.1s;
}
@keyframes soArenaBorder { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* Mobile arena */
@media (max-width: 900px) {
  .spanishos-root .so-ecoarena {
    height: clamp(270px, 52vw, 380px);
    border-radius: 18px;
    padding: 10px;
  }
  .spanishos-root .so-ecoarena::before,
  .spanishos-root .so-ecoarena::after { border-radius: 20px; }
}

/* Mobile Inicio should use the SAME topbar as the rest of the system */
@media (max-width: 900px) {
  .spanishos-root.is-inicio .spanishos-top,
  .spanishos-root[data-app="inicio"] .spanishos-top {
    display: block !important;
  }
  /* Give Inicio the full screen height on mobile, tight padding */
  .spanishos-root.is-inicio .spanishos-main,
  .spanishos-root[data-app="inicio"] .spanishos-main {
    padding: 14px 14px 12px !important;
    overflow-y: auto;
    -webkit-overflow-scrolling: touch;
  }
  /* Remove the bottom nav padding so the grid fills nicely */
  .spanishos-root.is-inicio .spanishos-main,
  .spanishos-root[data-app="inicio"] .spanishos-main {
    padding-bottom: 14px !important;
  }
  /* Home screen gaps */
  .spanishos-root .so-home-screen {
    gap: 10px;
    height: 100%;
    display: flex;
    flex-direction: column;
  }
  /* Arena fills available space on mobile */
  .spanishos-root .so-ecoarena {
    flex: 1;
    min-height: 240px;
    max-height: 340px;
  }
  /* Grid always at bottom */
  .spanishos-root .so-home-grid {
    flex-shrink: 0;
  }
}

/* ── Nucleus (center button) ──────────────────────────────────────── */
.spanishos-root .so-nucleus {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(-50%, -50%);
  width: clamp(62px, 13vw, 86px);
  height: clamp(62px, 13vw, 86px);
  border-radius: 50%;
  border: none;
  cursor: pointer;
  background: radial-gradient(circle at 38% 36%,
    rgba(230,57,70,0.95) 0%,
    rgba(160,10,22,0.98) 60%,
    rgba(110,0,14,1) 100%);
  box-shadow:
    0 0 0 6px rgba(230,57,70,0.12),
    0 0 0 12px rgba(230,57,70,0.06),
    0 16px 40px rgba(0,0,0,0.28),
    0 0 36px rgba(230,57,70,0.28) inset;
  z-index: 20;
  transition: transform 0.18s cubic-bezier(.34,1.56,.64,1), box-shadow 0.18s ease;
  -webkit-tap-highlight-color: transparent;
  overflow: visible;
}
.spanishos-root .so-nucleus:hover {
  transform: translate(-50%,-50%) scale(1.08);
  box-shadow: 0 0 0 8px rgba(230,57,70,0.16), 0 0 0 18px rgba(230,57,70,0.07),
    0 20px 50px rgba(0,0,0,0.30), 0 0 50px rgba(230,57,70,0.35) inset;
}
.spanishos-root .so-nucleus:active { transform: translate(-50%,-50%) scale(0.95); }
.spanishos-root .so-nucleus-burst,
.spanishos-root .so-nucleus-glint,
.spanishos-root .so-nucleus-inner { position: absolute; inset: 0; border-radius: 50%; pointer-events: none; }
.spanishos-root .so-nucleus-burst {
  background: radial-gradient(circle at 35% 32%, rgba(255,255,255,0.22), transparent 55%);
  animation: soNucleusPulse 4s ease-in-out infinite;
}
.spanishos-root .so-nucleus-glint {
  background: radial-gradient(ellipse 30% 15% at 35% 28%, rgba(255,255,255,0.55), transparent 70%);
}
.spanishos-root .so-nucleus-inner {
  display: flex; align-items: center; justify-content: center;
}
.spanishos-root .so-nucleus-hint {
  position: absolute;
  bottom: -22px; left: 50%; transform: translateX(-50%);
  font-size: 9.5px; font-weight: 700; letter-spacing: 0.07em;
  text-transform: uppercase; color: rgba(255,255,255,0.40);
  white-space: nowrap; pointer-events: none;
}

@keyframes soNucleusPulse {
  0%,100% { transform: scale(1); opacity: 0.80; }
  50%      { transform: scale(1.12); opacity: 1; }
}
.spanishos-root .so-nucleus.tapwave {
  animation: soNucleusTap 1.0s cubic-bezier(.16,1,.3,1) forwards;
}
@keyframes soNucleusTap {
  0%   { transform: translate(-50%,-50%) scale(1); }
  30%  { transform: translate(-50%,-50%) scale(1.22); }
  100% { transform: translate(-50%,-50%) scale(1); }
}
.spanishos-root .so-nucleus.boost .so-nucleus-burst {
  background: radial-gradient(circle at 35% 32%, rgba(255,220,50,0.35), transparent 55%);
  animation: soNucleusPulse 1.8s ease-in-out infinite;
}
.spanishos-root .so-nucleus.react { animation: soNucleusReact 0.6s ease-in-out; }
@keyframes soNucleusReact {
  0%,100% { transform: translate(-50%,-50%) scale(1); }
  50%      { transform: translate(-50%,-50%) scale(1.15); }
}

/* ── Orbit nodes (entity buttons) ────────────────────────────────── */
.spanishos-root .so-econodes { position: absolute; inset: 0; pointer-events: none; }
.spanishos-root .so-entity {
  position: absolute;
  top: 50%; left: 50%;
  transform: translate(calc(-50% + cos(var(--a,0deg)) * var(--r,120px)),
                       calc(-50% + sin(var(--a,0deg)) * var(--r,120px))) scale(var(--s,1));
  width: clamp(58px, 12vw, 78px);
  height: clamp(58px, 12vw, 78px);
  border-radius: 18px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.07);
  backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px);
  cursor: pointer;
  display: flex; align-items: center; justify-content: center;
  pointer-events: auto;
  animation: soEntityIn 0.55s cubic-bezier(.34,1.56,.64,1) calc(var(--d,0s)) both;
  transition: background 0.16s ease, border-color 0.16s ease, transform 0.2s cubic-bezier(.34,1.56,.64,1);
  -webkit-tap-highlight-color: transparent;
  box-shadow: 0 4px 16px rgba(0,0,0,0.25), 0 0 calc(var(--g,0.1) * 30px) rgba(230,57,70,calc(var(--g,0.1)));
  z-index: 10;
}
/* Mobile: use fixed x/y offsets */
@media (max-width: 900px) {
  .spanishos-root .so-entity {
    transform: translate(calc(-50% + var(--x,0px)), calc(-50% + var(--y,0px))) scale(var(--s,1));
    width: clamp(52px,11vw,70px); height: clamp(52px,11vw,70px);
    border-radius: 16px;
  }
}
.spanishos-root .so-entity:hover {
  background: rgba(255,255,255,0.14);
  border-color: rgba(230,57,70,0.35);
  transform: translate(calc(-50% + cos(var(--a,0deg)) * var(--r,120px)),
                       calc(-50% + sin(var(--a,0deg)) * var(--r,120px))) scale(calc(var(--s,1) * 1.10));
}
@media (max-width: 900px) {
  .spanishos-root .so-entity:hover {
    transform: translate(calc(-50% + var(--x,0px)), calc(-50% + var(--y,0px))) scale(calc(var(--s,1) * 1.10));
  }
}
.spanishos-root .so-entity:active {
  transform: translate(calc(-50% + cos(var(--a,0deg)) * var(--r,120px)),
                       calc(-50% + sin(var(--a,0deg)) * var(--r,120px))) scale(0.93) !important;
}
@media (max-width: 900px) {
  .spanishos-root .so-entity:active {
    transform: translate(calc(-50% + var(--x,0px)), calc(-50% + var(--y,0px))) scale(0.93) !important;
  }
}
.spanishos-root .so-entity.hot {
  border-color: rgba(230,57,70,0.50);
  background: rgba(230,57,70,0.14);
  box-shadow: 0 4px 20px rgba(0,0,0,0.28), 0 0 28px rgba(230,57,70,0.30);
}
.spanishos-root .so-entity-inner {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 3px;
}
.spanishos-root .so-entity-ic {
  color: rgba(255,255,255,0.90);
  filter: drop-shadow(0 0 6px rgba(230,57,70,0.30));
  display: flex; align-items: center; justify-content: center;
}
.spanishos-root .so-entity-ic svg { width: 22px; height: 22px; }
.spanishos-root .so-entity-tx {
  font-family: 'Sora', sans-serif;
  font-size: 9px; font-weight: 700; letter-spacing: 0.04em; text-transform: uppercase;
  color: rgba(255,255,255,0.70); line-height: 1;
}
@keyframes soEntityIn {
  from { opacity: 0; transform: translate(-50%,-50%) scale(0.60); }
  to   { opacity: 1; }
}
.spanishos-root .so-entity.wave { animation: soEntityWave 0.9s cubic-bezier(.34,1.56,.64,1) forwards; }
@keyframes soEntityWave {
  0%   { border-color: rgba(230,57,70,0.60); background: rgba(230,57,70,0.18); }
  100% { border-color: rgba(255,255,255,0.12); background: rgba(255,255,255,0.07); }
}

/* ── Tethers ──────────────────────────────────────────────────────── */
.spanishos-root .so-ecotethers { position: absolute; inset: 0; pointer-events: none; z-index: 5; }
.spanishos-root .so-tether {
  position: absolute;
  top: 50%; left: 50%;
  width: calc(var(--r,120px) - 32px);
  height: 1px;
  transform-origin: 0 0;
  transform: rotate(var(--a,0deg));
  background: linear-gradient(90deg, rgba(230,57,70,calc(var(--g,0.1)*0.8)), rgba(230,57,70,0.00));
  animation: soTetherIn 0.55s ease calc(var(--d,0s)) both;
}
@keyframes soTetherIn {
  from { opacity: 0; transform: rotate(var(--a,0deg)) scaleX(0); }
  to   { opacity: 1; transform: rotate(var(--a,0deg)) scaleX(1); }
}
@media (max-width: 900px) {
  .spanishos-root .so-tether {
    width: calc(var(--len,100px) - 30px);
    transform: translateX(var(--x,0px)) translateY(var(--y,0px))
               rotate(calc(var(--ang,0deg) + 180deg)) !important;
  }
}
.spanishos-root .so-tether.wave {
  background: linear-gradient(90deg, rgba(230,57,70,0.85), rgba(230,57,70,0.00));
  animation: soTetherWave 1.1s ease forwards;
}
@keyframes soTetherWave {
  0%   { opacity: 1; filter: brightness(2); }
  100% { opacity: calc(var(--g,0.1)*0.8); filter: brightness(1); }
}
.spanishos-root .so-tether.reward {
  background: linear-gradient(90deg, rgba(255,183,3,0.90), rgba(255,183,3,0.00));
  animation: soTetherReward 0.8s ease-in-out infinite alternate;
}
@keyframes soTetherReward { from { opacity: 0.6; } to { opacity: 1; } }

/* ── Arena sparks / core shadow / warp ────────────────────────────── */
.spanishos-root .so-coreShadow {
  position: absolute; top: 50%; left: 50%;
  transform: translate(-50%,-50%);
  width: 180px; height: 180px; border-radius: 50%;
  background: radial-gradient(circle, rgba(230,57,70,calc(var(--coreShadowO,0.12)*1.2)), transparent 70%);
  pointer-events: none; z-index: 1;
  animation: soCoreShadow 5s ease-in-out infinite;
}
@keyframes soCoreShadow { 0%,100% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.18); } }

.spanishos-root .so-ecosparks { position: absolute; inset: 0; pointer-events: none; z-index: 3; }
.spanishos-root .so-warpfx    { position: absolute; inset: 0; pointer-events: none; z-index: 25; border-radius: 22px; }
.spanishos-root .so-ecoarena.warp .so-warpfx {
  background: radial-gradient(200px 200px at var(--warp-x,50%) var(--warp-y,50%), rgba(230,57,70,0.22), transparent 70%);
  animation: soWarp 0.52s ease-out forwards;
}
@keyframes soWarp { 0% { opacity: 0; transform: scale(0.5); } 40% { opacity: 1; } 100% { opacity: 0; transform: scale(2.5); } }

/* ── Action grid ──────────────────────────────────────────────────── */
.spanishos-root .so-home-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
}
@media (max-width: 900px) {
  .spanishos-root .so-home-grid { grid-template-columns: repeat(3, 1fr); gap: 7px; }
}
.spanishos-root .so-home-card {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 12px 13px;
  border-radius: 16px;
  background: rgba(255,255,255,0.88);
  border: 1px solid rgba(20,20,18,0.07);
  box-shadow: 0 2px 8px rgba(0,0,0,0.05);
  cursor: pointer;
  text-align: left;
  transition: all 0.16s cubic-bezier(.16,1,.3,1);
  position: relative;
  overflow: hidden;
  -webkit-tap-highlight-color: transparent;
}
.spanishos-root[data-phase="night"] .so-home-card {
  background: rgba(28,28,26,0.80);
  border-color: rgba(255,255,255,0.08);
}
.spanishos-root .so-home-card:hover {
  transform: translateY(-2px);
  background: #fff;
  box-shadow: 0 8px 22px rgba(0,0,0,0.09);
  border-color: rgba(230,57,70,0.20);
}
.spanishos-root[data-phase="night"] .so-home-card:hover { background: rgba(42,40,38,0.95); }
.spanishos-root .so-home-card:active { transform: scale(0.97); }

/* Active card — glowing top border */
.spanishos-root .so-home-card-active::before {
  content: '';
  position: absolute;
  top: 0; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, #E63946, rgba(230,57,70,0.15));
  border-radius: 16px 16px 0 0;
}
/* Top-priority card */
.spanishos-root .so-home-card-top {
  background: linear-gradient(135deg, rgba(230,57,70,0.07), rgba(230,57,70,0.03));
  border-color: rgba(230,57,70,0.22);
}
.spanishos-root[data-phase="night"] .so-home-card-top {
  background: linear-gradient(135deg, rgba(60,14,20,0.85), rgba(40,10,15,0.80));
  border-color: rgba(230,57,70,0.28);
}

.spanishos-root .so-home-card-ic {
  width: 40px; height: 40px; border-radius: 13px; flex-shrink: 0;
  border: 1px solid transparent;
  display: flex; align-items: center; justify-content: center;
  font-size: 20px; line-height: 1;
}
.spanishos-root .so-home-card-body { flex: 1; min-width: 0; }
.spanishos-root .so-home-card-name {
  font-family: 'Sora', sans-serif;
  font-size: 12.5px; font-weight: 700; letter-spacing: -0.02em;
  color: var(--so-text, #141412); line-height: 1.1; margin-bottom: 3px;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spanishos-root .so-home-card-status {
  font-size: 11px; color: var(--so-muted, rgba(20,20,18,0.52)); line-height: 1.25;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.spanishos-root[data-phase="night"] .so-home-card-name   { color: rgba(245,240,241,0.92); }
.spanishos-root[data-phase="night"] .so-home-card-status { color: rgba(245,240,241,0.44); }

.spanishos-root .so-home-card-dot {
  width: 7px; height: 7px; border-radius: 50%;
  flex-shrink: 0; margin-left: auto;
}
.spanishos-root .so-home-card-arrow {
  flex-shrink: 0; font-size: 15px; color: rgba(230,57,70,0.70); margin-left: auto; font-weight: 700;
}
.spanishos-root .so-home-badge { display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:99px; font-size:10px; font-weight:800; }
.spanishos-root .so-home-badge-red { background:#E63946; color:#fff; }

/* Mobile: 2-line card (stacked) */
@media (max-width: 900px) {
  .spanishos-root .so-home-grid { gap: 6px; }
  .spanishos-root .so-home-card { flex-direction: column; align-items: flex-start; gap: 7px; padding: 12px 11px; border-radius: 15px; }
  .spanishos-root .so-home-card-ic { width: 38px; height: 38px; border-radius: 12px; font-size: 19px; }
  .spanishos-root .so-home-card-name { font-size: 12px; }
  .spanishos-root .so-home-card-status { font-size: 10.5px; }
  .spanishos-root .so-home-card-dot  { width: 6px; height: 6px; position: absolute; top: 10px; right: 10px; }
  .spanishos-root .so-home-card-arrow { display: none; }
  .spanishos-root .so-home-card-body { width: 100%; }
  .spanishos-root .so-home-card { position: relative; }
}

/* ── Novedades panel (body-mounted, z 199999) — styles ────────────── */
/* (Panel is built fully in JS with inline styles — no CSS needed here) */

/* ── Legacy ecoHUD / commandbar kept for compat ───────────────────── */
.spanishos-root .so-ecoHUD,
.spanishos-root .so-commandbar { display: none !important; }


/* Inicio: show greeting inside topbar on desktop */
.spanishos-root .so-topbar-greeting { display: none; }
@media (min-width: 901px) {
  .spanishos-root.is-inicio .spanishos-top .spanishos-brand .spanishos-sub,
  .spanishos-root[data-app="inicio"] .spanishos-top .spanishos-brand .spanishos-sub { display: none; }
  .spanishos-root.is-inicio .so-topbar-greeting,
  .spanishos-root[data-app="inicio"] .so-topbar-greeting { display: block; font-size: 12px; color: var(--so-muted); margin-top: 2px; }
}


/* ── Reduced-motion ───────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
  .spanishos-root .so-nucleus-burst,
  .spanishos-root .so-coreShadow,
  .spanishos-root .so-home-pulse-avatar { animation: none !important; }
  .spanishos-root .so-entity { animation: none !important; }
  .spanishos-root .so-tether { animation: none !important; opacity: 1 !important; }
}


/* ============================================================
   App tray (all devices)
   - Needed on desktop too (Inicio nucleus / topbar Apps)
   ============================================================ */

.spanishos-apptray-overlay{
  position: fixed;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, 0.55);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.18s ease;
  z-index: 20000;
  padding: 18px;
}

.spanishos-apptray-overlay.visible{
  opacity: 1;
  pointer-events: all;
}

.spanishos-apptray{
  width: min(92vw, 440px);
  max-height: 78vh;
  background: rgba(255, 255, 255, 0.96);
  border: 1px solid rgba(255, 255, 255, 0.70);
  border-radius: 18px;
  box-shadow: 0 18px 60px rgba(0,0,0,0.35);
  overflow: hidden;
  transform: translateY(10px) scale(0.98);
  transition: transform 0.18s ease;
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
}

.spanishos-apptray-overlay.visible .spanishos-apptray{
  transform: translateY(0) scale(1);
}

.spanishos-apptray-header{
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 12px 8px;
}

.spanishos-apptray-header > div{
  font-weight: 800;
  letter-spacing: 0.2px;
}

.spanishos-apptray-close{
  width: 38px;
  height: 38px;
  border-radius: 12px;
  border: 1px solid var(--so-border);
  background: rgba(245,245,245,0.95);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 18px;
}

.spanishos-apptray-grid{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 14px;
  padding: 14px 14px 18px;
  overflow: auto;
}

.spanishos-apptray-item{
  border: 1px solid rgba(0,0,0,0.06);
  background: rgba(250,250,250,0.95);
  border-radius: 18px;
  padding: 14px 12px;
  min-height: 86px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
}

.spanishos-apptray-item.active{
  border-color: rgba(0,0,0,0.16);
  background: rgba(240,240,240,0.98);
}

.spanishos-apptray-item .app-ic{
  font-size: 28px;
  line-height: 1;
}

.spanishos-apptray-item .app-tx{
  font-size: 12px;
  font-weight: 700;
  opacity: 0.92;
}


/* ============================================================
   Work reward FX: sparkline charge + extra nucleus pulse
   (fires when the user earns pesetas in Trabajo)
   ============================================================ */

.spanishos-root .so-nucleus-burst{
  position:absolute;
  inset:-14px;
  border-radius: 999px;
  border: 1px solid rgba(var(--so-neon-rgb),0.14);
  opacity: 0;
  transform: scale(0.92);
  filter: drop-shadow(0 0 12px rgba(var(--so-neon-rgb),0.14));
  pointer-events:none;
}

.spanishos-root .so-nucleus.boost .so-nucleus-burst{
  animation: soNucleusBurst 980ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soNucleusBurst{
  0%{ opacity: 0; transform: scale(0.90); }
  18%{ opacity: 0.70; }
  100%{ opacity: 0; transform: scale(1.28); }
}

/* Extra "reactive" pulse without fighting the nucleus base transform animation */
.spanishos-root .so-nucleus.boost .so-nucleus-inner{
  animation: soNucleusInnerPop 860ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soNucleusInnerPop{
  0%{ transform: scale(1); }
  18%{ transform: scale(1.08); }
  100%{ transform: scale(1); }
}

/* Trabajo node + tether quick charge */
.spanishos-root .so-entity.reward .so-entity-inner{
  animation: soNodeReward 820ms cubic-bezier(.16,1,.3,1) 1;
}
@keyframes soNodeReward{
  0%{ transform: scale(1); box-shadow: none; }
  18%{ transform: scale(1.06); box-shadow: 0 0 28px rgba(255,0,51,0.18); }
  100%{ transform: scale(1); box-shadow: none; }
}

.spanishos-root .so-tether.reward{
  animation: soTetherFlow 5.8s linear infinite, soTetherPulse 2.6s ease-in-out infinite, soTetherCharge 900ms ease-out 1;
}

@keyframes soTetherCharge{
  0%{ opacity: 0.20; background-position: 0% 50%; filter: drop-shadow(0 0 0 rgba(255,0,51,0)); }
  25%{ opacity: 1; filter: drop-shadow(0 0 16px rgba(255,0,51,0.34)); }
  100%{ opacity: 0.85; background-position: 140% 50%; filter: drop-shadow(0 0 8px rgba(255,0,51,0.22)); }
}

/* Sparkline “charge wave” (desktop grid) */
.spanishos-root .so-spark.boost .so-sparkline-ghost{
  stroke-dasharray: 10 10;
  animation: soSparkCharge 900ms cubic-bezier(.16,1,.3,1) 1;
  filter: drop-shadow(0 0 10px rgba(255,0,51,0.30));
}

@keyframes soSparkCharge{
  0%{ stroke-dashoffset: 120; opacity: 0; }
  14%{ opacity: 0.95; }
  100%{ stroke-dashoffset: 0; opacity: 0.25; }
}

.spanishos-root .so-sparkdot{ transform-origin: center; transform-box: fill-box; }

.spanishos-root .so-spark.boost .so-sparkdot{
  animation: soSparkDotPop 740ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soSparkDotPop{
  0%{ transform: scale(1); opacity: 0.8; }
  20%{ transform: scale(1.65); opacity: 1; }
  100%{ transform: scale(1); opacity: 0.9; }
}


/* --- Ecosystem FX: tether wave + warp + dynamic core shadow ---------------- */

.spanishos-root .so-coreShadow{
  position:absolute;
  left:50%;
  top:50%;
  width: 320px;
  height: 320px;
  transform: translate(-50%, -50%);
  pointer-events:none;
  opacity: var(--coreShadowO, 0.18);
  background: radial-gradient(circle,
    rgba(var(--so-neon-rgb), var(--coreGlowO, 0.10)) 0%,
    rgba(var(--so-neon-rgb), 0.05) 18%,
    rgba(var(--so-neon-rgb), 0.00) 58%);
  filter: blur(10px);
}

@media (min-width: 901px){
  .spanishos-root .so-coreShadow{ width: 420px; height: 420px; filter: blur(12px); }
}

/* Wave dot traveling from node -> nucleus along the tether */
.spanishos-root .so-tether.wave::after{
  content:'';
  position:absolute;
  top:50%;
  left:100%;
  width: 10px;
  height: 10px;
  border-radius: 999px;
  transform: translate(-50%, -50%);
  background: rgba(var(--so-neon-rgb), 0.92);
  box-shadow:
    0 0 0 1px rgba(var(--so-neon-rgb), 0.18) inset,
    0 0 18px rgba(var(--so-neon-rgb), 0.60),
    0 8px 22px rgba(0,0,0,0.12);
  animation: soTetherWaveIn 1050ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soTetherWaveIn{
  0%{ left: 100%; opacity: 0; }
  10%{ opacity: 1; }
  85%{ opacity: 1; }
  100%{ left: 0%; opacity: 0; }
}

/* Warp overlay (radial pull) */
.spanishos-root .so-warpfx{
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:0;
  background: radial-gradient(circle at var(--warp-x, 50%) var(--warp-y, 50%),
    rgba(var(--so-neon-rgb), 0.22) 0%,
    rgba(var(--so-neon-rgb), 0.10) 18%,
    rgba(255,255,255,0.00) 56%);
  mix-blend-mode: normal;
}

.spanishos-root .so-ecoarena.warp .so-warpfx{
  opacity:1;
  animation: soWarpFx 520ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soWarpFx{
  0%{ transform: scale(0.90); opacity: 0; filter: blur(0px); }
  20%{ opacity: 1; }
  100%{ transform: scale(1.18); opacity: 0; filter: blur(2px); }
}

/* Nucleus reactive pulse (used by tether waves) */
.spanishos-root .so-nucleus.react .so-nucleus-burst{
  animation: soNucleusBurst 880ms cubic-bezier(.16,1,.3,1) 1;
}
.spanishos-root .so-nucleus.react .so-nucleus-inner{
  animation: soNucleusInnerPop 720ms cubic-bezier(.16,1,.3,1) 1;
}

/* Nucleus tap wave (user taps the center circle "Español") */
.spanishos-root .so-nucleus.tapwave .so-nucleus-burst{
  animation: soNucleusTapWave 1050ms cubic-bezier(.16,1,.3,1) 1;
}
.spanishos-root .so-nucleus.tapwave .so-nucleus-inner{
  animation: soNucleusInnerTap 860ms cubic-bezier(.16,1,.3,1) 1;
}

@keyframes soNucleusTapWave{
  0%{ opacity: 0; transform: scale(0.86); }
  18%{ opacity: 0.86; }
  100%{ opacity: 0; transform: scale(1.42); }
}

@keyframes soNucleusInnerTap{
  0%{ transform: scale(1); }
  18%{ transform: scale(1.10); }
  100%{ transform: scale(1); }
}

/* Trabajo/mission node wave flash */
.spanishos-root .so-entity.wave .so-entity-inner{
  animation: soNodeWaveFlash 900ms cubic-bezier(.16,1,.3,1) 1;
}
@keyframes soNodeWaveFlash{
  0%{ box-shadow: 0 0 0 rgba(var(--so-neon-rgb),0); }
  18%{ box-shadow: 0 0 40px rgba(var(--so-neon-rgb),0.22), 0 0 0 1px rgba(var(--so-neon-rgb),0.12) inset; }
  100%{ box-shadow: 0 0 0 rgba(var(--so-neon-rgb),0); }
}

/* Trabajo roles badge in chat bubbles */
.spanishos-root .spanishos-bubbleRole{
  display:inline-flex;
  align-items:center;
  gap:6px;
  font-size: 11px;
  line-height: 1;
  padding: 6px 10px;
  border-radius: 999px;
  margin: 0 0 6px 0;
  width: fit-content;
  color: rgba(20,20,24,0.78);
  background: rgba(255,255,255,0.70);
  border: 1px solid rgba(0,0,0,0.06);
  box-shadow: 0 10px 26px rgba(0,0,0,0.06);
}

/* Dark bubbles keep label readable */
.spanishos-root .spanishos-bubble.assistant .spanishos-bubbleRole{
  color: rgba(20,20,24,0.78);
}

/* Quick replies (Trabajo): carril horizontal tipo “chips” */
.spanishos-root .spanishos-quick{
  display:flex;
  gap: 8px;
  flex-wrap: nowrap;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  padding: 4px 2px 10px 2px;
  scrollbar-width: none;            /* Firefox */
  scroll-snap-type: x mandatory;    /* sensación “carrusel” */
}
.spanishos-root .spanishos-quick::-webkit-scrollbar{
  display:none;                     /* WebKit */
}
.spanishos-root .spanishos-quickbtn{
  flex: 0 0 auto;
  white-space: nowrap;
  scroll-snap-align: start;
}
.spanishos-root .spanishos-quickbtn{
  appearance:none;
  border: 1px solid rgba(var(--so-neon-rgb), 0.22);
  background: rgba(255,255,255,0.90);
  color: rgba(20,20,24,0.86);
  border-radius: 999px;
  padding: 10px 12px;
  font-size: 12px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 10px 28px rgba(0,0,0,0.06);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  touch-action: manipulation;
  transition: transform 120ms ease, box-shadow 120ms ease;
}
.spanishos-root .spanishos-quickbtn:active{
  transform: scale(0.98);
  box-shadow: 0 8px 20px rgba(0,0,0,0.08);
}


/* ============================================================
   Mobile Inicio layout (edge cards): 3 top + 3 bottom on arena edges
   - Cards sit near the container edges (not clustered near the nucleus)
   - Draw connector lines from each card to the nucleus
   ============================================================ */
@media (max-width: 900px){
  .spanishos-root .so-ecotethers{ display:block !important; position:absolute; inset:0; pointer-events:none; }

  /* Force absolute positioning by grid points */
  .spanishos-root .so-entity{
    left: var(--lx, 50%) !important;
    top: var(--ty, 50%) !important;
    transform: translate(-50%, -50%) scale(var(--s)) !important;
  }
  .spanishos-root .so-entity:active{
    transform: translate(-50%, -50%) scale(calc(var(--s) * 0.98)) !important;
  }

  /* Connector line to nucleus (use ::after to avoid clashing with other pseudo elements) */
  .spanishos-root .so-entity::after{
    content:'';
    position:absolute;
    left:50%;
    top:50%;
    height: 1px;
    width: var(--link, 220px);
    transform-origin: 0 50%;
    transform: rotate(var(--linkA, 0deg));
    /* line + node (near nucleus) */
    background:
      radial-gradient(circle at 100% 50%, rgba(var(--so-neon-rgb),0.55) 0 2px, rgba(var(--so-neon-rgb),0.00) 3px),
      linear-gradient(90deg,
        rgba(255,255,255,0.0) 0%,
        rgba(var(--so-neon-rgb),0.08) 48%,
        rgba(var(--so-neon-rgb),0.18) 100%);
    filter: drop-shadow(0 0 9px rgba(var(--so-neon-rgb),0.10));
    opacity: 0.62;
    pointer-events:none;
  }

  
  /* When nucleus pulses: boost connector visibility */
  .spanishos-root .so-entity.wave::after{
    opacity: 0.92;
    filter: drop-shadow(0 0 16px rgba(var(--so-neon-rgb),0.18));
  }
/* Top row (near top edge) */
  .spanishos-root .so-entity[data-app="trabajo"]{ --lx: 18%; --ty: 22%; --linkA: 35deg;  --link: 240px; }
  .spanishos-root .so-entity[data-app="misiones"]{ --lx: 50%; --ty: 18%; --linkA: 90deg;  --link: 260px; }
  .spanishos-root .so-entity[data-app="mundo"]{   --lx: 82%; --ty: 22%; --linkA: 145deg; --link: 240px; }

  /* Bottom row (near bottom edge) */
  .spanishos-root .so-entity[data-app="personas"]{ --lx: 18%; --ty: 82%; --linkA: -35deg;  --link: 250px; }
  .spanishos-root .so-entity[data-app="chat"]{     --lx: 50%; --ty: 86%; --linkA: -90deg;  --link: 270px; }
  .spanishos-root .so-entity[data-app="progreso"]{ --lx: 82%; --ty: 82%; --linkA: -145deg; --link: 250px; }
}


/* ============================================
   SISTEMA DE NOTIFICACIONES ESTILO TUENTI
   Simple, limpio, adictivo
   ============================================ */

.tuenti-bubbles {
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 15;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 20px;
  flex-wrap: wrap;
  padding: 20px;
}

/* Burbuja individual */
.tuenti-bubble {
  pointer-events: auto;
  cursor: pointer;
  animation: tuentiBubbleIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both;
  transition: all 0.25s cubic-bezier(0.2, 0.8, 0.2, 1);
  filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.2));
}

/* Delay escalonado para cada burbuja */
.tuenti-persona { animation-delay: 0ms; }
.tuenti-trabajo { animation-delay: 100ms; }
.tuenti-mundo { animation-delay: 200ms; }

@keyframes tuentiBubbleIn {
  from {
    opacity: 0;
    transform: scale(0.5) translateY(40px) rotate(-5deg);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0) rotate(0deg);
  }
}

/* Contenido de la burbuja */
.tuenti-bubble-content {
  background: linear-gradient(135deg, 
    rgba(255, 255, 255, 0.98) 0%,
    rgba(255, 255, 255, 0.95) 100%
  );
  backdrop-filter: blur(30px) saturate(180%);
  -webkit-backdrop-filter: blur(30px) saturate(180%);
  border-radius: 24px;
  padding: 20px 24px;
  border: 2px solid rgba(255, 255, 255, 0.9);
  box-shadow: 
    0 8px 32px rgba(0, 0, 0, 0.12),
    0 0 0 1px rgba(var(--so-neon-rgb), 0.15),
    inset 0 2px 0 rgba(255, 255, 255, 1);
  min-width: 260px;
  max-width: 320px;
  display: flex;
  gap: 16px;
  align-items: flex-start;
  transition: all 0.3s cubic-bezier(0.2, 0.8, 0.2, 1);
}

/* Hover effect - muy visible y atractivo */
.tuenti-bubble:hover .tuenti-bubble-content {
  transform: translateY(-6px) scale(1.03);
  border-color: rgba(var(--so-neon-rgb), 0.6);
  box-shadow: 
    0 20px 50px rgba(0, 0, 0, 0.18),
    0 0 0 3px rgba(var(--so-neon-rgb), 0.4),
    inset 0 2px 0 rgba(255, 255, 255, 1),
    0 0 40px rgba(var(--so-neon-rgb), 0.3);
}

.tuenti-bubble:active .tuenti-bubble-content {
  transform: translateY(-2px) scale(1.01);
}

/* Avatar/Icon */
.tuenti-avatar,
.tuenti-icon {
  font-size: 48px;
  flex-shrink: 0;
  filter: drop-shadow(0 4px 8px rgba(0, 0, 0, 0.1));
  line-height: 1;
}

/* Info */
.tuenti-info {
  flex: 1;
  min-width: 0;
}

/* Nombre (solo personas) */
.tuenti-nombre {
  font-size: 17px;
  font-weight: 700;
  color: #111;
  margin-bottom: 6px;
  letter-spacing: -0.02em;
}

/* Mensaje */
.tuenti-mensaje {
  font-size: 15px;
  color: rgba(17, 17, 17, 0.85);
  line-height: 1.4;
  word-wrap: break-word;
}

/* Título (trabajo/mundo) */
.tuenti-titulo {
  font-size: 16px;
  font-weight: 600;
  color: #111;
  margin-bottom: 6px;
  letter-spacing: -0.01em;
}

/* Pesetas */
.tuenti-pesetas {
  font-size: 15px;
  color: var(--so-accent);
  font-weight: 700;
  letter-spacing: -0.01em;
}

/* Preview (mundo) */
.tuenti-preview {
  font-size: 14px;
  color: rgba(17, 17, 17, 0.7);
  line-height: 1.3;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}

/* Efecto de pulsación constante muy sutil */
.tuenti-bubble {
  animation: tuentiBubbleIn 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) both,
             tuentiBubblePulse 3s ease-in-out infinite;
}

@keyframes tuentiBubblePulse {
  0%, 100% {
    filter: drop-shadow(0 10px 30px rgba(0, 0, 0, 0.2));
  }
  50% {
    filter: drop-shadow(0 14px 40px rgba(0, 0, 0, 0.25))
            drop-shadow(0 0 25px rgba(var(--so-neon-rgb), 0.2));
  }
}

/* Animación de salida */
.tuenti-exit .tuenti-bubble {
  animation: tuentiBubbleOut 0.4s cubic-bezier(0.6, 0.04, 0.98, 0.34) both;
}

@keyframes tuentiBubbleOut {
  to {
    opacity: 0;
    transform: scale(0.85) translateY(-30px) rotate(3deg);
  }
}

/* Efecto especial para persona - borde de color */
.tuenti-persona .tuenti-bubble-content {
  border-left: 4px solid var(--so-neon);
}

.tuenti-trabajo .tuenti-bubble-content {
  border-left: 4px solid #4CAF50;
}

.tuenti-mundo .tuenti-bubble-content {
  border-left: 4px solid #2196F3;
}

/* Responsive - Stack vertical en móvil */
@media (max-width: 900px) {
  .tuenti-bubbles {
    flex-direction: column;
    gap: 16px;
    padding: 40px 20px;
  }
  
  .tuenti-bubble-content {
    min-width: auto;
    max-width: 100%;
  }
}


/* ===== Beta 2.0.1 stability overrides ===== */
@media (max-width: 900px) {
  /* Keep Inicio content clear of notches / home indicator in fullscreen PWAs */
  .spanishos-root.is-inicio .spanishos-main,
  .spanishos-root[data-app="inicio"] .spanishos-main {
    padding-top: max(12px, env(safe-area-inset-top)) !important;
    padding-bottom: calc(14px + env(safe-area-inset-bottom)) !important;
  }

  .spanishos-root .so-home-mhdr,
  .spanishos-root .so-home-pulse,
  .spanishos-root .so-home-grid {
    max-width: 100%;
  }

  .spanishos-root .so-home-card {
    min-height: 96px;
  }
}

/* ===== Pulse overlay (stable, fixed) ===== */
.so-pulseOverlay{
  position:fixed;
  inset:0;
  z-index:2147483638;
  display:flex;
  align-items:center;
  justify-content:center;
  padding: max(16px, env(safe-area-inset-top)) 16px max(16px, env(safe-area-inset-bottom)) 16px;
  background: rgba(6,6,6,0.55);
  -webkit-backdrop-filter: blur(6px);
  backdrop-filter: blur(6px);
  opacity:0;
  pointer-events:none;
  transition: opacity 0.22s ease;
  -webkit-tap-highlight-color: transparent;
}
.so-pulseOverlay.visible{ opacity:1; pointer-events:auto; }

.so-pulseCard{
  width:min(420px,92vw);
  background:#FAFAF9;
  border-radius:24px;
  border:1px solid rgba(0,0,0,0.09);
  box-shadow:0 40px 100px rgba(0,0,0,0.36),0 12px 32px rgba(0,0,0,0.16);
  overflow:hidden;
  transform: translateZ(0);
}

.so-pulseOverlay[data-phase="night"] .so-pulseCard{ background: rgba(28,28,26,0.96); border-color: rgba(255,255,255,0.10); }

.so-pulseHead{
  padding:18px 20px 12px;
  border-bottom:1px solid rgba(0,0,0,0.07);
  background: linear-gradient(135deg, rgba(230,57,70,0.06) 0%, rgba(230,57,70,0.02) 100%);
}
.so-pulseOverlay[data-phase="night"] .so-pulseHead{ border-bottom-color: rgba(255,255,255,0.08); background: linear-gradient(135deg, rgba(230,57,70,0.14) 0%, rgba(230,57,70,0.05) 100%); }

.so-pulseHeadTitle{
  font-family:'Sora', sans-serif;
  font-weight:800;
  font-size:17px;
  letter-spacing:-0.03em;
  color:#141412;
}
.so-pulseOverlay[data-phase="night"] .so-pulseHeadTitle{ color: rgba(245,240,241,0.92); }

.so-pulseHeadSub{
  margin-top:4px;
  font-size:12.5px;
  color: rgba(20,20,18,0.52);
}
.so-pulseOverlay[data-phase="night"] .so-pulseHeadSub{ color: rgba(245,240,241,0.44); }

.so-pulseBody{ padding:16px 20px; }

.so-pulseBubble{
  background: rgba(230,57,70,0.08);
  border:1px solid rgba(230,57,70,0.14);
  border-radius:16px;
  padding:12px 14px;
  font-size:14px;
  line-height:1.45;
  color:#141412;
}
.so-pulseOverlay[data-phase="night"] .so-pulseBubble{ background: rgba(230,57,70,0.12); border-color: rgba(230,57,70,0.18); color: rgba(245,240,241,0.92); }

.so-pulseWorldText{
  font-size:14px;
  line-height:1.45;
  color:#141412;
}
.so-pulseOverlay[data-phase="night"] .so-pulseWorldText{ color: rgba(245,240,241,0.92); }

.so-pulseActions{
  display:flex;
  gap:10px;
  padding:14px 20px 18px;
  border-top:1px solid rgba(0,0,0,0.06);
}
.so-pulseOverlay[data-phase="night"] .so-pulseActions{ border-top-color: rgba(255,255,255,0.08); }

.so-pulseBtn{
  flex:1;
  border:none;
  border-radius:14px;
  padding:12px 14px;
  font-weight:800;
  font-size:14px;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  background: rgba(0,0,0,0.06);
  color: rgba(20,20,18,0.80);
}
.so-pulseOverlay[data-phase="night"] .so-pulseBtn{ background: rgba(255,255,255,0.10); color: rgba(245,240,241,0.88); }

.so-pulseBtn.primary{
  background:#E63946;
  color:#fff;
  box-shadow:0 8px 20px rgba(230,57,70,0.28);
}
.so-pulseBtn:active{ transform: scale(0.98); }




/* ═══════════════════════════════════════════════════════════════
   Inicio — friendly arena tone (less aggressive)
   These overrides keep the same structure but soften contrast.
   ═══════════════════════════════════════════════════════════════ */

.spanishos-root .so-ecoarena{
  border-color: rgba(20,20,18,0.08);
  background:
    radial-gradient(520px 240px at 50% 40%, rgba(230,57,70,0.06), transparent 62%),
    radial-gradient(420px 220px at 18% 18%, rgba(67,97,238,0.05), transparent 60%),
    radial-gradient(520px 260px at 86% 84%, rgba(255,183,3,0.05), transparent 62%),
    rgba(255,255,255,0.72);
  box-shadow: 0 12px 34px rgba(0,0,0,0.10), 0 0 0 1px rgba(255,255,255,0.55) inset;
}

.spanishos-root .so-ecoarena::before{
  background: linear-gradient(135deg, rgba(20,20,18,0.10), rgba(20,20,18,0.00));
  animation: none;
  opacity: 0.65;
}
.spanishos-root .so-ecoarena::after{
  background: radial-gradient(380px 220px at calc(50% + var(--px,0px)) calc(40% + var(--py,0px)),
    rgba(20,20,18,0.05), transparent 62%);
}

.spanishos-root .so-tether{
  background: linear-gradient(90deg, rgba(20,20,18,calc(var(--g,0.1)*0.22)), rgba(20,20,18,0.00));
}
.spanishos-root .so-tether.wave{
  background: linear-gradient(90deg, rgba(67,97,238,0.70), rgba(67,97,238,0.00));
}

.spanishos-root .so-entity{
  border-color: rgba(20,20,18,0.10);
  background: rgba(255,255,255,0.78);
  box-shadow: 0 10px 26px rgba(0,0,0,0.10);
}
.spanishos-root .so-entity:hover{
  background: rgba(255,255,255,0.92);
  border-color: rgba(67,97,238,0.22);
}
.spanishos-root .so-entity.hot{
  border-color: rgba(230,57,70,0.22);
  background: rgba(230,57,70,0.06);
  box-shadow: 0 10px 26px rgba(0,0,0,0.10);
}
.spanishos-root .so-entity-ic{
  filter: none;
}
.spanishos-root .so-entity-tx{
  color: rgba(20,20,18,0.62);
}

.spanishos-root .so-nucleus{
  background: radial-gradient(circle at 38% 34%,
    rgba(255,107,107,0.92) 0%,
    rgba(230,57,70,0.95) 58%,
    rgba(193,18,31,1) 100%);
  box-shadow:
    0 0 0 6px rgba(230,57,70,0.10),
    0 0 0 12px rgba(230,57,70,0.05),
    0 16px 40px rgba(0,0,0,0.18),
    0 0 36px rgba(230,57,70,0.18) inset;
}
.spanishos-root .so-nucleus-hint{
  color: rgba(20,20,18,0.42);
}

.spanishos-root .so-coreShadow{
  background: radial-gradient(circle, rgba(230,57,70,0.10), transparent 70%);
}

/* Night: keep original darker contrast */
.spanishos-root[data-phase="night"] .so-ecoarena{
  border-color: rgba(255,255,255,0.10);
  background:
    radial-gradient(600px 280px at 50% 42%, rgba(230,57,70,0.12), transparent 60%),
    radial-gradient(400px 200px at 18% 12%, rgba(230,57,70,0.08), transparent 55%),
    radial-gradient(400px 200px at 85% 88%, rgba(193,18,31,0.08), transparent 58%),
    rgba(6, 8, 14, 0.93);
  box-shadow: 0 16px 48px rgba(0,0,0,0.22), 0 0 0 1px rgba(255,255,255,0.03) inset;
}
.spanishos-root[data-phase="night"] .so-ecoarena::before{
  background: conic-gradient(from 0deg at 50% 50%,
    rgba(230,57,70,0.00) 0deg, rgba(230,57,70,0.22) 60deg,
    rgba(230,57,70,0.00) 120deg, rgba(230,57,70,0.12) 200deg,
    rgba(230,57,70,0.00) 270deg, rgba(230,57,70,0.18) 330deg, rgba(230,57,70,0.00) 360deg);
  animation: soArenaBorder 12s linear infinite;
  opacity: 1;
}
.spanishos-root[data-phase="night"] .so-tether{
  background: linear-gradient(90deg, rgba(230,57,70,calc(var(--g,0.1)*0.8)), rgba(230,57,70,0.00));
}
.spanishos-root[data-phase="night"] .so-entity{
  border-color: rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.07);
  box-shadow: 0 4px 16px rgba(0,0,0,0.25), 0 0 calc(var(--g,0.1) * 30px) rgba(230,57,70,calc(var(--g,0.1)));
}
.spanishos-root[data-phase="night"] .so-entity-tx{
  color: rgba(255,255,255,0.70);
}
.spanishos-root[data-phase="night"] .so-nucleus-hint{
  color: rgba(255,255,255,0.40);
}
.spanishos-root[data-phase="night"] .so-coreShadow{
  background: radial-gradient(circle, rgba(230,57,70,calc(var(--coreShadowO,0.12)*1.2)), transparent 70%);
}

/* Softer top card highlight */
.spanishos-root .so-home-card-top{
  background: linear-gradient(135deg, rgba(67,97,238,0.06), rgba(255,183,3,0.04));
  border-color: rgba(67,97,238,0.18);
}
.spanishos-root[data-phase="night"] .so-home-card-top{
  background: linear-gradient(135deg, rgba(34,30,46,0.86), rgba(40,10,15,0.72));
  border-color: rgba(255,255,255,0.12);
}


/* Fluyo branding overrides */
.spanishos-logo::before{display:none !important;}


/* Fluyo Beta 5: unified topbar across Inicio + desktop + mobile */
.so-topbar-desktop-unified,
.spanishos-top.so-topbar-mobile,
.spanishos-root.is-inicio .spanishos-top,
.spanishos-root[data-app="inicio"] .spanishos-top{
  background:#fff !important;
  border-bottom:1px solid rgba(15,23,42,.08) !important;
}
.so-topbar-desktop-unified{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.so-topbar-desktop-unified .so-topbar-greeting{
  flex:1 1 auto;
  min-width:0;
}
.so-topbar-desktop-unified .so-topbar-actions{
  display:flex;
  align-items:center;
  gap:10px;
}
@media (min-width: 901px){
  .so-topbar-desktop-unified{ min-height:64px; }
}


/* ===== Beta 5 smart home + notifications + intelligent manual ===== */
.so-home-screen-beta3,
.so-home-screen-beta4,
.so-home-screen-beta6{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.so-smart-card{
  border:1px solid var(--so-border);
  background:linear-gradient(180deg, rgba(255,255,255,0.92), rgba(255,255,255,0.82));
  border-radius:18px;
  padding:16px;
  box-shadow:0 12px 28px rgba(0,0,0,0.06);
}
.spanishos-root[data-phase="night"] .so-smart-card{
  background:linear-gradient(180deg, rgba(28,28,26,0.92), rgba(28,28,26,0.82));
}
.so-smart-k{
  font-size:11px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:var(--so-muted);
}
.so-smart-title{
  margin-top:6px;
  font-family:'Sora', sans-serif;
  font-size:22px;
  font-weight:800;
  letter-spacing:-.04em;
  color:var(--so-text);
}
.so-smart-sub{
  margin-top:6px;
  font-size:14px;
  line-height:1.45;
  color:var(--so-muted);
}
.so-smart-reasons{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:12px;
}
.so-smart-reason{
  padding:8px 10px;
  border-radius:999px;
  border:1px solid var(--so-border);
  background:var(--so-soft);
  font-size:12px;
  font-weight:700;
  color:var(--so-text);
}
.so-smart-actions{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
}
.so-smart-action{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:12px 14px;
  border-radius:16px;
  border:1px solid var(--so-border);
  background:rgba(255,255,255,0.72);
  color:var(--so-text);
  text-align:left;
}
.spanishos-root[data-phase="night"] .so-smart-action{
  background:rgba(255,255,255,0.04);
}
.so-smart-action-left{
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.so-smart-action-ic{
  width:42px;
  height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:14px;
  background:var(--so-soft);
  font-size:20px;
  flex:0 0 auto;
}
.so-smart-action-body{ min-width:0; }
.so-smart-action-title{
  font-weight:800;
  font-size:14px;
  color:var(--so-text);
}
.so-smart-action-sub{
  margin-top:2px;
  font-size:12px;
  color:var(--so-muted);
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:min(55vw, 420px);
}
.so-smart-action-go{
  font-size:12px;
  font-weight:800;
  color:var(--so-accent);
  flex:0 0 auto;
}
@media (max-width: 900px){
  .so-smart-card{ padding:14px; }
  .so-smart-title{ font-size:20px; }
  .so-smart-sub{ font-size:13px; }
  .so-smart-action{ padding:11px 12px; }
  .so-smart-action-sub{ max-width:46vw; }
}


/* ===== Beta 5 intelligent manual ===== */
.so-manual-card{
  border-style:solid;
}
.so-manual-steps{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:14px;
}
.so-manual-step{
  width:100%;
  display:flex;
  align-items:center;
  gap:12px;
  border:1px solid var(--so-border);
  background:rgba(255,255,255,0.78);
  border-radius:16px;
  padding:12px 14px;
  text-align:left;
  color:var(--so-text);
}
.spanishos-root[data-phase="night"] .so-manual-step{
  background:rgba(255,255,255,0.04);
}
.so-manual-step-num{
  width:28px;
  height:28px;
  border-radius:999px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:12px;
  font-weight:800;
  background:var(--so-accent);
  color:#fff;
  flex:0 0 auto;
}
.so-manual-step-main{ min-width:0; flex:1; }
.so-manual-step-title{
  font-size:14px;
  font-weight:800;
  color:var(--so-text);
}
.so-manual-step-sub{
  margin-top:2px;
  font-size:12px;
  line-height:1.4;
  color:var(--so-muted);
}
.so-manual-step-ic{
  font-size:18px;
  flex:0 0 auto;
}
.so-manual-minirow{
  margin-top:12px;
  display:flex;
  justify-content:flex-end;
}
.so-manual-mini{
  border:none;
  border-radius:12px;
  padding:10px 12px;
  background:var(--so-soft);
  color:var(--so-text);
  font-weight:700;
}

#__soNovPanel button{ touch-action:manipulation; }
@media (max-width: 900px){
  #__soNovPanel{
    width:min(420px, calc(100vw - 16px));
    max-height:calc(100vh - env(safe-area-inset-top, 0px) - env(safe-area-inset-bottom, 0px) - 24px);
  }
}


/* ===== Beta 5 mobile notification safety ===== */
@media (max-width: 900px){
  #__soNovBackdrop{
    touch-action:none;
  }
  #__soNovPanel{
    overscroll-behavior:contain;
  }
  #__soNovPanel button{
    touch-action:manipulation;
  }
}


/* ──────────────────────────────────────────────────────────
   Supermercado + Arcade Beta 2.3
   ────────────────────────────────────────────────────────── */
.so-store-view,.so-arcade-view{display:grid;gap:16px}
.so-store-hero,.so-arcade-hero{padding:18px;border-radius:22px;background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(255,255,255,.90));border:1px solid rgba(15,23,42,.06);box-shadow:0 12px 28px rgba(15,23,42,.06)}
#spanishos-root[data-phase="night"] .so-store-hero,
#spanishos-root[data-phase="night"] .so-arcade-hero{background:linear-gradient(180deg,rgba(21,24,34,.96),rgba(21,24,34,.88));border-color:rgba(255,255,255,.06)}
.so-store-hero-top,.so-arcade-hero-top,.so-store-card-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.so-store-wallet,.so-arcade-wallet{font-weight:800;color:#b91c1c;background:rgba(185,28,28,.08);padding:8px 12px;border-radius:999px}
.so-store-chips{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.so-store-chip,.so-arcade-start,.so-store-buy{border:0;border-radius:14px;padding:10px 14px;font:inherit;font-weight:700;cursor:pointer;transition:.18s transform,.18s opacity,.18s background}
.so-store-chip{background:rgba(185,28,28,.08);color:#991b1b}
.so-store-chip.active{background:#b91c1c;color:#fff}
.so-store-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.so-store-card{padding:16px;border-radius:20px;display:grid;gap:10px;border:1px solid rgba(15,23,42,.06)}
.so-store-card-title,.so-arcade-mode-title{font-weight:800;font-size:1.02rem}
.so-store-card-price{font-weight:800;color:#b91c1c}
.so-store-card-meta,.so-arcade-mode-desc,.so-arcade-help,.so-store-card-phrase{color:#64748b}
.so-store-card-phrase{font-size:.95rem;line-height:1.4}
.so-store-buy,.so-arcade-start{background:#b91c1c;color:#fff !important}
.so-store-buy.disabled{opacity:.45;cursor:not-allowed}
.so-store-buy:not(.disabled):active,.so-arcade-start:active,.so-store-chip:active,.so-arcade-option:active{transform:scale(.98)}
.so-store-inventory{padding:16px;border-radius:20px}
.so-store-invlist{display:grid;gap:8px;margin-top:12px}
.so-store-invitem{display:flex;align-items:center;justify-content:space-between;padding:11px 12px;border-radius:14px;background:rgba(15,23,42,.04)}
#spanishos-root[data-phase="night"] .so-store-invitem{background:rgba(255,255,255,.05)}
.so-store-invitem .nm{font-weight:700}.so-store-invitem .qt{color:#b91c1c;font-weight:800}
.so-arcade-stats{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.so-arcade-stat{padding:8px 12px;border-radius:999px;background:rgba(15,23,42,.05);font-weight:700}
#spanishos-root[data-phase="night"] .so-arcade-stat{background:rgba(255,255,255,.06)}
.so-arcade-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.so-arcade-mode,.so-arcade-run{padding:16px;border-radius:20px;display:grid;gap:12px}
.so-arcade-progress{font-weight:800;color:#b91c1c}
.so-arcade-prompt{font-size:1.2rem;font-weight:800;line-height:1.25}
.so-arcade-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.so-arcade-option{border:1px solid rgba(185,28,28,.15);background:rgba(185,28,28,.06);color:#7f1d1d;border-radius:16px;padding:16px 14px;font:inherit;font-weight:800;cursor:pointer}
.so-arcade-mini{color:#64748b;font-weight:700}
@media (max-width:900px){
  .so-store-grid,.so-arcade-modes,.so-arcade-options{grid-template-columns:1fr}
  .so-store-hero,.so-arcade-hero,.so-store-card,.so-store-inventory,.so-arcade-mode,.so-arcade-run{border-radius:18px}
  .so-store-wallet,.so-arcade-wallet{font-size:.95rem;padding:7px 10px}
}


/* Fluyo home header mobile tweaks */
@media (max-width:900px){
  .spanishos-root .so-home-brandrow{flex-wrap:wrap;row-gap:4px;}
  .spanishos-root .so-home-brandsep{opacity:.45;font-weight:800;}
  .spanishos-root .so-home-brandgreeting{font-family:'Sora',sans-serif;font-weight:900;font-size:14px;letter-spacing:-.03em;color:var(--so-text);} 
  .spanishos-root .so-home-hdr-mobile .so-home-hdr-sub{margin-top:2px;}
  .spanishos-root .so-home-hdr-mobile .so-home-hdr-greeting{display:none;}
}

/* Supermercado refresh */
.so-store-scene{margin-top:14px;padding:14px;border-radius:18px;background:linear-gradient(135deg,rgba(185,28,28,.08),rgba(185,28,28,.02));border:1px solid rgba(185,28,28,.14)}
.so-store-scene-k,.so-store-recent-k{font-size:11px;font-weight:900;letter-spacing:.08em;text-transform:uppercase;color:#991b1b;margin-bottom:8px}
.so-store-scene-head{display:flex;align-items:center;gap:12px}
.so-store-scene-icon,.so-store-sceneCard-ic{width:42px;height:42px;border-radius:14px;display:flex;align-items:center;justify-content:center;background:rgba(185,28,28,.10);font-size:22px;flex:0 0 auto}
.so-store-scene-copy{min-width:0;flex:1}
.so-store-scene-title{font-size:1.02rem;font-weight:900}
.so-store-scene-progress,.so-store-sceneCard-progress{padding:8px 10px;border-radius:999px;background:#fff;font-weight:900;color:#991b1b;border:1px solid rgba(185,28,28,.14)}
.so-store-basket{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.so-store-basket-item{border:1px dashed rgba(185,28,28,.22);background:rgba(255,255,255,.72);padding:9px 11px;border-radius:999px;font:inherit;font-weight:800;color:#7f1d1d}
.so-store-basket-item.done{background:#b91c1c;color:#fff;border-style:solid}
.so-store-scene-foot{margin-top:10px;color:#64748b;font-weight:700}
.so-store-scenes{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.so-store-sceneCard{display:flex;align-items:center;gap:10px;text-align:left;padding:14px;border:1px solid rgba(15,23,42,.06);border-radius:18px;background:rgba(255,255,255,.92);cursor:pointer}
.so-store-sceneCard.active{border-color:rgba(185,28,28,.22);box-shadow:0 10px 26px rgba(185,28,28,.10)}
.so-store-sceneCard-body{min-width:0;flex:1}.so-store-sceneCard .so-store-card-meta{font-size:.9rem;line-height:1.35}
.so-store-card.needed{border-color:rgba(185,28,28,.18);box-shadow:0 10px 24px rgba(185,28,28,.08)}
.so-store-card-foot,.so-arcade-mode-foot,.so-arcade-run-top,.so-arcade-finish-actions,.so-arcade-run-actions,.so-arcade-mode-top{display:flex;align-items:center;justify-content:space-between;gap:12px}
.so-store-owned{font-weight:700;color:#64748b}.so-store-recent{margin-top:14px;padding-top:12px;border-top:1px solid rgba(15,23,42,.06)}.so-store-recent-list{color:#64748b;line-height:1.45}

/* Arcade refresh */
.so-arcade-mode-badge{padding:7px 10px;border-radius:999px;background:rgba(185,28,28,.08);color:#991b1b;font-size:12px;font-weight:900}
.so-arcade-combo{padding:8px 10px;border-radius:999px;background:rgba(94,96,206,.10);color:#4338ca;font-weight:900}
.so-arcade-option{display:grid;gap:5px;align-content:start;text-align:left;min-height:108px}
.so-arcade-option-emoji{font-size:20px;line-height:1}
.so-arcade-option-main{font-size:1.03rem;font-weight:900;color:#7f1d1d}
.so-arcade-option-sub{font-size:.9rem;color:#64748b;font-weight:700}
.so-arcade-finish{display:grid;gap:10px}.so-arcade-finish-score{font-size:1.15rem;font-weight:900}.so-arcade-finish-reward{font-size:1.05rem;font-weight:900;color:#b91c1c}
@media (max-width:900px){
 .so-store-scenes{grid-template-columns:1fr;}
 .so-store-sceneCard,.so-store-scene-head{align-items:flex-start;}
 .so-store-scene-progress{margin-left:auto;}
 .so-arcade-option{min-height:92px}
}




/* Beta 6.x — Centro de juego y Supermercado más integrados */
.so-store-view,.so-arcade-view{display:grid;gap:18px}
.so-store-wallet,.so-arcade-wallet{
  color: var(--so-blue);
  background: rgba(67,97,238,.10);
}
.so-store-chip,.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn{
  border: 1px solid rgba(67,97,238,.16);
}
.so-store-chip{
  background: rgba(67,97,238,.08);
  color: var(--so-blue);
}
.so-store-chip.active,.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn{
  background: var(--so-blue);
  color: #fff !important;
}
.so-store-chip.active,.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn{
  box-shadow: 0 10px 24px rgba(67,97,238,.20);
}
.so-store-card-price,.so-store-invitem .qt,.so-arcade-progress,.so-arcade-finish-reward{ color: var(--so-blue); }
.so-store-scene{
  background: linear-gradient(135deg, rgba(67,97,238,.10), rgba(123,97,255,.05));
  border: 1px solid rgba(67,97,238,.14);
}
.so-store-scene-k,.so-store-recent-k{ color: var(--so-blue); }
.so-store-scene-icon,.so-store-sceneCard-ic{
  background: rgba(67,97,238,.10);
}
.so-store-scene-progress,.so-store-sceneCard-progress{
  color: var(--so-blue);
  border: 1px solid rgba(67,97,238,.14);
}
.so-store-basket-item{
  border: 1px dashed rgba(67,97,238,.22);
  color: #3146a6;
}
.so-store-basket-item.done{
  background: var(--so-blue);
  border-color: rgba(67,97,238,.18);
}
.so-store-card.needed,.so-store-sceneCard.active{
  border-color: rgba(67,97,238,.18);
  box-shadow: 0 10px 24px rgba(67,97,238,.10);
}
.so-store-card,.so-store-sceneCard,.so-store-inventory,.so-arcade-mode-card,.so-arcade-run-rich{
  background: linear-gradient(180deg, rgba(255,255,255,.98), rgba(247,249,255,.96));
  border: 1px solid rgba(15,23,42,.06);
  box-shadow: 0 12px 30px rgba(15,23,42,.06);
}
#spanishos-root[data-phase="night"] .so-store-card,
#spanishos-root[data-phase="night"] .so-store-sceneCard,
#spanishos-root[data-phase="night"] .so-store-inventory,
#spanishos-root[data-phase="night"] .so-arcade-mode-card,
#spanishos-root[data-phase="night"] .so-arcade-run-rich{
  background: linear-gradient(180deg, rgba(21,24,34,.98), rgba(21,24,34,.90));
  border-color: rgba(255,255,255,.07);
}
.so-arcade-modes-grid{
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 16px;
}
.so-arcade-mode-card{
  position: relative;
  display: grid;
  gap: 12px;
  padding: 18px;
  border-radius: 22px;
  overflow: hidden;
}
.so-arcade-mode-card::before{
  content:'';
  position:absolute;
  inset:0;
  background: linear-gradient(135deg, color-mix(in srgb, var(--game-color) 12%, white), transparent 58%);
  pointer-events:none;
}
.so-arcade-mode-card > *{ position:relative; z-index:1; }
.so-arcade-mode-card-emoji{
  width: 52px;
  height: 52px;
  border-radius: 16px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size: 28px;
  background: color-mix(in srgb, var(--game-color) 12%, white);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--game-color) 22%, white);
}
.so-arcade-mode-card-title{
  font-size: 1.06rem;
  font-weight: 800;
}
.so-arcade-mode-card-desc{
  color:#64748b;
  line-height:1.45;
}
.so-arcade-mode-card-foot{ display:flex; align-items:center; justify-content:space-between; gap:12px; }
.so-arcade-mode-card-badge{
  display:inline-flex;
  align-items:center;
  padding:8px 10px;
  border-radius:999px;
  background: color-mix(in srgb, var(--game-color) 12%, white);
  color: color-mix(in srgb, var(--game-color) 80%, #1f2937);
  font-size: 12px;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: .03em;
}
.so-arcade-mode-card-btn{
  min-width: 46px;
  height: 40px;
  border-radius: 12px;
  padding: 0 14px;
  font-weight: 800;
}
.so-arcade-option{
  border:1px solid rgba(67,97,238,.14);
  background:rgba(67,97,238,.06);
  color:#233876;
}
.so-arcade-option-main{ color:#233876; }
.so-arcade-mode-badge{ background:rgba(67,97,238,.09); color:var(--so-blue); }
@media (max-width: 900px){
  .so-arcade-modes-grid,.so-store-grid{ grid-template-columns: 1fr; }
  .so-arcade-mode-card{ border-radius: 20px; }
}


/* ── Beta 7 polish: mobile composer, unified smart panels, store/game consistency ── */
.so-home-screen-beta7{}
.so-smart-panel{
  display:grid; gap:14px; padding:18px; border-radius:22px;
  background:linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90));
  border:1px solid var(--so-border); box-shadow:var(--so-shadow);
}
#spanishos-root[data-phase="night"] .so-smart-panel{
  background:linear-gradient(180deg, rgba(21,24,34,.96), rgba(21,24,34,.88));
}
.so-smart-panel-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.so-smart-kicker{ font-size:11px; font-weight:900; letter-spacing:.08em; text-transform:uppercase; color:var(--so-blue); }
.so-smart-chip{ padding:8px 12px; border-radius:999px; background:rgba(67,97,238,.10); color:var(--so-blue); font-weight:800; white-space:nowrap; }
.so-smart-actions{ display:flex; flex-wrap:wrap; gap:10px; }
.so-smart-btn{ border:1px solid rgba(67,97,238,.16); background:rgba(67,97,238,.06); color:#233876; border-radius:14px; padding:10px 14px; font:inherit; font-weight:800; cursor:pointer; }
.so-smart-btn.primary{ background:var(--so-blue); color:#fff; border-color:transparent; }

/* Uniform visual language for Supermercado / Centro de juego */
.so-store-wallet,.so-arcade-wallet{ background:rgba(67,97,238,.10); color:var(--so-blue); }
.so-store-chip,.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn,.so-smart-btn{ transition:.18s transform,.18s opacity,.18s box-shadow,.18s background; }
.so-store-card,.so-store-sceneCard,.so-store-inventory,.so-arcade-mode-card,.so-arcade-run-rich,.so-smart-panel{ border-radius:22px; }
.so-store-card-title,.so-store-card-price,.so-arcade-mode-card-title,.so-arcade-progress,.so-arcade-finish-reward{ letter-spacing:-0.01em; }

/* Mobile chat field fix: prevent clipping and preserve full composer width */
@media (max-width: 900px){
  .spanishos-root[data-app="chat"] .spanishos-chatview,
  .spanishos-root[data-app="chat"] .spanishos-composerwrap,
  .spanishos-root[data-app="chat"] .spanishos-input{
    min-width:0; width:100%; box-sizing:border-box;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    padding-left:max(10px, env(safe-area-inset-left));
    padding-right:max(10px, env(safe-area-inset-right));
    padding-bottom:max(8px, env(safe-area-inset-bottom));
  }
  .spanishos-root[data-app="chat"] .spanishos-input{
    display:flex; align-items:flex-end; gap:8px;
  }
  .spanishos-root[data-app="chat"] .spanishos-input textarea{
    flex:1 1 auto !important; min-width:0 !important; width:100% !important; max-width:100% !important;
    box-sizing:border-box; min-height:56px; max-height:160px; line-height:1.4;
    padding:14px 15px; overflow-y:auto; border-radius:16px;
  }
  .spanishos-root[data-app="chat"] .spanishos-input button.send{
    flex:0 0 auto; align-self:stretch; min-height:56px; padding:0 16px; white-space:nowrap;
  }
  .so-smart-panel-top{ flex-direction:column; }
  .so-smart-chip{ align-self:flex-start; }
}


/* RC 1 — mobile chat hardening */
@media (max-width: 900px) {
  .spanishos-root[data-app="chat"] .spanishos-main{
    min-height: calc(var(--so-vh, 1vh) * 100) !important;
    overflow: hidden !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-chatview{
    min-height: 0 !important;
    overflow: hidden !important;
    padding-bottom: calc(var(--so-composer-h, 112px) + var(--so-browser-bottom, 0px)) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-messages{
    flex: 1 1 auto !important;
    min-height: 0 !important;
    padding: 12px 12px calc(var(--so-composer-h, 112px) + var(--so-browser-bottom, 0px) + 14px) !important;
    overscroll-behavior: contain !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 112px) + var(--so-browser-bottom, 0px) + 14px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(env(safe-area-inset-bottom) + var(--so-browser-bottom, 0px)) !important;
    padding: 8px 12px 10px !important;
    border-radius: 20px 20px 0 0 !important;
    box-sizing: border-box !important;
    max-width: 100vw !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap .spanishos-input{
    display: flex !important;
    align-items: flex-end !important;
    gap: 8px !important;
    min-width: 0 !important;
    width: 100% !important;
    box-sizing: border-box !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-input textarea{
    flex: 1 1 auto !important;
    min-width: 0 !important;
    width: auto !important;
    margin: 0 !important;
    padding: 11px 14px !important;
    box-sizing: border-box !important;
    border-radius: 20px !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-input button.send{
    width: 44px !important;
    height: 44px !important;
    min-width: 44px !important;
    margin: 0 !important;
    flex: 0 0 44px !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-ghost{
    padding-bottom: 6px !important;
    margin-bottom: 2px !important;
  }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap{
    bottom: 0 !important;
  }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-messages{
    padding-bottom: calc(var(--so-composer-h, 112px) + 12px) !important;
  }
}


/* RC 1 — stronger visual consistency */
.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn,.so-smart-btn{
  background: var(--so-accent, #ff2b2b) !important;
  color: #fff !important;
  box-shadow: 0 10px 24px rgba(255,43,43,.16);
}
.so-store-buy.disabled{ box-shadow:none; }
.so-arcade-option{
  border-color: rgba(67,97,238,.14) !important;
  background: rgba(67,97,238,.06) !important;
  color: #233876 !important;
}


/* RC2 — revert visual tweaks in Supermercado / Centro de juego to prior style */
.so-store-buy,.so-arcade-start,.so-arcade-mode-card-btn,.so-smart-btn{
  background: var(--so-blue) !important;
  color: #fff !important;
  box-shadow: none !important;
}
.so-store-wallet,.so-arcade-wallet{
  background: rgba(67,97,238,.10) !important;
  color: var(--so-blue) !important;
}
.so-arcade-option{
  border-color: rgba(67,97,238,.14) !important;
  background: rgba(67,97,238,.06) !important;
  color: #233876 !important;
}
.so-store-card,.so-store-sceneCard,.so-store-inventory,.so-arcade-mode-card,.so-arcade-run-rich,.so-smart-panel{
  border-radius: 20px !important;
  box-shadow: 0 12px 28px rgba(15,23,42,.06) !important;
}
.so-smart-panel{
  background: linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90)) !important;
  border: 1px solid rgba(15,23,42,.06) !important;
}
#spanishos-root[data-phase="night"] .so-smart-panel{
  background: linear-gradient(180deg, rgba(21,24,34,.96), rgba(21,24,34,.88)) !important;
}

/* RC2 — tighten mobile chat spacing above browser chrome */
@media (max-width: 900px){
  .spanishos-root[data-app="chat"] .spanishos-chatview{
    padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 0px)) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-messages{
    padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 0px) + 6px) !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 0px) + 6px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    padding: 6px 12px 6px !important;
    bottom: calc(max(0px, env(safe-area-inset-bottom) - 4px) + var(--so-browser-bottom, 0px)) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-ghost{
    margin-bottom: 0 !important;
    padding-bottom: 4px !important;
  }
}


/* ═══════════════════════════════════════════════════════════════════
   FLUYO RC3 — Visual Polish
   Chat composer + Send button + Supermercado/Arcade redesign
   All colors aligned to design system tokens
   ═══════════════════════════════════════════════════════════════════ */

/* ── CHAT INPUT: refined textarea + send button ──────────────────── */

/* Desktop chat input area */
.spanishos-input {
  gap: 10px !important;
  padding: 10px 14px !important;
  background: rgba(255,255,255,0.97) !important;
  border-top: 1px solid var(--so-border) !important;
  backdrop-filter: blur(20px) saturate(160%) !important;
  -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
}

.spanishos-root[data-phase="night"] .spanishos-input {
  background: rgba(22,22,20,0.96) !important;
}

/* Textarea — cleaner, more rounded, warmer feel */
.spanishos-input textarea {
  flex: 1 !important;
  border: 1.5px solid var(--so-border) !important;
  border-radius: 18px !important;
  padding: 13px 16px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-size: 14.5px !important;
  line-height: 1.5 !important;
  background: rgba(250,250,249,0.92) !important;
  color: var(--so-text) !important;
  resize: none !important;
  outline: none !important;
  transition: border-color 0.18s ease, box-shadow 0.18s ease, background 0.18s ease !important;
  min-height: 48px !important;
  max-height: 140px !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04), 0 0 0 0 rgba(230,57,70,0) !important;
}

.spanishos-input textarea:focus {
  border-color: rgba(230,57,70,0.42) !important;
  box-shadow: 0 0 0 3.5px rgba(230,57,70,0.10), 0 1px 4px rgba(0,0,0,0.06) !important;
  background: #fff !important;
}

.spanishos-root[data-phase="night"] .spanishos-input textarea {
  background: rgba(255,255,255,0.07) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: rgba(245,245,240,0.92) !important;
}

.spanishos-root[data-phase="night"] .spanishos-input textarea:focus {
  border-color: rgba(230,57,70,0.45) !important;
  box-shadow: 0 0 0 3.5px rgba(230,57,70,0.12) !important;
  background: rgba(255,255,255,0.09) !important;
}

/* Send button — premium, rounded, with icon feel */
.spanishos-input button.send,
.spanishos-input button[class~="send"] {
  flex: 0 0 auto !important;
  width: 48px !important;
  height: 48px !important;
  min-width: 48px !important;
  border-radius: 16px !important;
  border: none !important;
  background: var(--so-accent) !important;
  color: #fff !important;
  cursor: pointer !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 0 !important; /* hide text, show icon via ::after */
  padding: 0 !important;
  box-shadow: 0 4px 14px rgba(230,57,70,0.30) !important;
  transition: transform 0.15s var(--so-spring), box-shadow 0.15s ease, background 0.15s ease !important;
  align-self: flex-end !important;
}

.spanishos-input button.send::after,
.spanishos-input button[class~="send"]::after {
  content: "➤" !important;
  font-size: 18px !important;
  line-height: 1 !important;
  color: #fff !important;
  transform: translateX(1px) !important;
  display: block !important;
}

.spanishos-input button.send:hover {
  transform: scale(1.06) !important;
  box-shadow: 0 6px 20px rgba(230,57,70,0.38) !important;
}

.spanishos-input button.send:active {
  transform: scale(0.94) !important;
  box-shadow: 0 2px 8px rgba(230,57,70,0.22) !important;
}

/* Back button in chat (secondary) */
.spanishos-input button.back {
  flex: 0 0 auto !important;
  height: 48px !important;
  padding: 0 14px !important;
  border-radius: 14px !important;
  border: 1.5px solid var(--so-border) !important;
  background: rgba(250,250,249,0.92) !important;
  color: var(--so-text) !important;
  font-size: 13px !important;
  font-weight: 700 !important;
  align-self: flex-end !important;
  box-shadow: none !important;
  transition: background 0.15s ease, border-color 0.15s ease !important;
}

.spanishos-input button.back:hover {
  background: rgba(240,239,237,0.98) !important;
  border-color: rgba(20,20,18,0.18) !important;
}

.spanishos-root[data-phase="night"] .spanishos-input button.back {
  background: rgba(255,255,255,0.07) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: rgba(245,245,240,0.80) !important;
}

/* Ghost suggestion pills — refined */
.spanishos-ghost button {
  border: 1.5px solid var(--so-border) !important;
  background: rgba(255,255,255,0.88) !important;
  border-radius: 999px !important;
  padding: 8px 14px !important;
  font-size: 12.5px !important;
  font-weight: 600 !important;
  cursor: pointer !important;
  white-space: nowrap !important;
  transition: all 0.14s ease !important;
  color: var(--so-text) !important;
  box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
}

.spanishos-ghost button:hover {
  background: rgba(230,57,70,0.07) !important;
  border-color: rgba(230,57,70,0.28) !important;
  color: var(--so-accent) !important;
  box-shadow: 0 2px 8px rgba(230,57,70,0.10) !important;
}

.spanishos-root[data-phase="night"] .spanishos-ghost button {
  background: rgba(255,255,255,0.07) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: rgba(245,245,240,0.72) !important;
}

/* ── MOBILE CHAT: same refinements, adapted ──────────────────────── */

@media (max-width: 900px) {
  .spanishos-root[data-app="chat"] .spanishos-composerwrap {
    background: rgba(255,255,255,0.97) !important;
    border-top: 1px solid var(--so-border) !important;
    backdrop-filter: blur(20px) saturate(160%) !important;
    -webkit-backdrop-filter: blur(20px) saturate(160%) !important;
    box-shadow: 0 -4px 24px rgba(0,0,0,0.07) !important;
    border-radius: 22px 22px 0 0 !important;
  }

  .spanishos-root[data-phase="night"][data-app="chat"] .spanishos-composerwrap {
    background: rgba(22,22,20,0.96) !important;
  }

  .spanishos-root[data-app="chat"] .spanishos-input textarea {
    min-height: 46px !important;
    border-radius: 16px !important;
    font-size: 16px !important; /* prevent iOS zoom */
    padding: 12px 14px !important;
  }

  .spanishos-root[data-app="chat"] .spanishos-input button.send {
    width: 46px !important;
    height: 46px !important;
    min-width: 46px !important;
    border-radius: 14px !important;
  }

  .spanishos-root[data-app="chat"] .spanishos-input button.send::after {
    font-size: 17px !important;
  }
}


/* ══════════════════════════════════════════════════════════════════════
   SUPERMERCADO & CENTRO DE JUEGO — Full design system integration
   Uses: --so-accent (red), --so-blue (#4361EE), --so-gold (#FFB703)
   Clean cards with proper Fluyo surface language
   ══════════════════════════════════════════════════════════════════════ */

/* ── Shared hero card ─────────────────────────────────────────────── */
.so-store-hero,
.so-arcade-hero {
  padding: 20px !important;
  border-radius: 22px !important;
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid var(--so-border) !important;
  box-shadow: var(--so-shadow) !important;
}

.spanishos-root[data-phase="night"] .so-store-hero,
.spanishos-root[data-phase="night"] .so-arcade-hero {
  background: rgba(28,28,26,0.92) !important;
  border-color: rgba(255,255,255,0.10) !important;
}

/* ── Wallet chip ──────────────────────────────────────────────────── */
.so-store-wallet,
.so-arcade-wallet {
  font-family: 'Sora', sans-serif !important;
  font-weight: 800 !important;
  font-size: 13px !important;
  background: linear-gradient(135deg, rgba(255,183,3,0.16), rgba(248,150,30,0.10)) !important;
  border: 1px solid rgba(255,183,3,0.32) !important;
  color: #7A5A00 !important;
  border-radius: 999px !important;
  padding: 7px 14px !important;
  letter-spacing: -0.2px !important;
  box-shadow: none !important;
}

.spanishos-root[data-phase="night"] .so-store-wallet,
.spanishos-root[data-phase="night"] .so-arcade-wallet {
  color: #FFD44A !important;
  background: rgba(255,183,3,0.12) !important;
  border-color: rgba(255,183,3,0.22) !important;
}

/* ── Filter chips (Supermercado) ──────────────────────────────────── */
.so-store-chip {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  background: var(--so-soft) !important;
  border: 1.5px solid var(--so-border) !important;
  color: var(--so-muted) !important;
  border-radius: 10px !important;
  padding: 9px 14px !important;
  cursor: pointer !important;
  transition: all 0.15s var(--so-ease) !important;
  box-shadow: none !important;
}

.so-store-chip:hover {
  border-color: rgba(230,57,70,0.28) !important;
  background: rgba(230,57,70,0.06) !important;
  color: var(--so-accent) !important;
}

.so-store-chip.active {
  background: var(--so-accent) !important;
  border-color: rgba(230,57,70,0.0) !important;
  color: #fff !important;
  box-shadow: 0 4px 12px rgba(230,57,70,0.22) !important;
}

/* ── Product / scene cards ────────────────────────────────────────── */
.so-store-card,
.so-store-sceneCard,
.so-store-inventory {
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid var(--so-border) !important;
  border-radius: 20px !important;
  box-shadow: 0 2px 10px rgba(0,0,0,0.04), 0 1px 3px rgba(0,0,0,0.03) !important;
  transition: transform 0.18s var(--so-ease), box-shadow 0.18s var(--so-ease), border-color 0.18s ease !important;
  padding: 18px !important;
}

.so-store-card:hover,
.so-store-sceneCard:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 10px 28px rgba(0,0,0,0.09) !important;
  border-color: rgba(230,57,70,0.22) !important;
}

.so-store-card.needed,
.so-store-sceneCard.active {
  border-color: rgba(230,57,70,0.28) !important;
  box-shadow: 0 8px 24px rgba(230,57,70,0.10) !important;
}

.spanishos-root[data-phase="night"] .so-store-card,
.spanishos-root[data-phase="night"] .so-store-sceneCard,
.spanishos-root[data-phase="night"] .so-store-inventory {
  background: rgba(28,28,26,0.90) !important;
  border-color: rgba(255,255,255,0.10) !important;
}

/* ── Price tag ────────────────────────────────────────────────────── */
.so-store-card-price {
  font-family: 'Sora', sans-serif !important;
  font-weight: 800 !important;
  color: #7A5A00 !important;
  background: rgba(255,183,3,0.14) !important;
  border: 1px solid rgba(255,183,3,0.28) !important;
  border-radius: 8px !important;
  padding: 4px 10px !important;
  font-size: 13px !important;
}

.spanishos-root[data-phase="night"] .so-store-card-price { color: #FFD44A !important; }

/* ── Buy button ───────────────────────────────────────────────────── */
.so-store-buy {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 800 !important;
  font-size: 14px !important;
  background: var(--so-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 11px 18px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(230,57,70,0.26) !important;
  transition: transform 0.15s var(--so-spring), box-shadow 0.15s ease !important;
  letter-spacing: -0.01em !important;
}

.so-store-buy:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(230,57,70,0.34) !important;
}

.so-store-buy:active {
  transform: scale(0.97) !important;
  box-shadow: 0 2px 8px rgba(230,57,70,0.20) !important;
}

.so-store-buy.disabled {
  opacity: 0.45 !important;
  cursor: not-allowed !important;
  transform: none !important;
  box-shadow: none !important;
}

/* ── Scene immersion banner ───────────────────────────────────────── */
.so-store-scene {
  background: linear-gradient(135deg, rgba(230,57,70,0.05) 0%, rgba(67,97,238,0.04) 100%) !important;
  border: 1px solid rgba(230,57,70,0.16) !important;
  border-radius: 18px !important;
  padding: 16px !important;
}

.so-store-scene-k,
.so-store-recent-k {
  font-size: 10.5px !important;
  font-weight: 800 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--so-muted) !important;
  margin-bottom: 10px !important;
}

.so-store-scene-icon,
.so-store-sceneCard-ic {
  background: rgba(230,57,70,0.08) !important;
  border: 1px solid rgba(230,57,70,0.14) !important;
  border-radius: 14px !important;
}

.so-store-scene-progress,
.so-store-sceneCard-progress {
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
  background: rgba(255,255,255,0.88) !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-text) !important;
  border-radius: 999px !important;
  padding: 7px 12px !important;
  font-size: 12.5px !important;
}

.so-store-basket-item {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  border: 1.5px dashed rgba(230,57,70,0.30) !important;
  background: rgba(255,255,255,0.75) !important;
  color: var(--so-text) !important;
  border-radius: 999px !important;
  padding: 9px 14px !important;
  font-size: 13px !important;
}

.so-store-basket-item.done {
  background: var(--so-accent) !important;
  border: 1.5px solid var(--so-accent) !important;
  color: #fff !important;
}

/* ── Inventory list ───────────────────────────────────────────────── */
.so-store-invitem {
  display: flex !important;
  align-items: center !important;
  justify-content: space-between !important;
  padding: 12px 14px !important;
  border-radius: 12px !important;
  background: rgba(250,250,249,0.85) !important;
  border: 1px solid var(--so-border) !important;
  transition: background 0.14s ease !important;
}

.so-store-invitem:hover {
  background: rgba(230,57,70,0.04) !important;
  border-color: rgba(230,57,70,0.18) !important;
}

.so-store-invitem .qt {
  font-family: 'Sora', sans-serif !important;
  font-weight: 800 !important;
  color: #7A5A00 !important;
  background: rgba(255,183,3,0.14) !important;
  padding: 4px 10px !important;
  border-radius: 8px !important;
  font-size: 13px !important;
}

/* ════════════════════════════════════════
   CENTRO DE JUEGO (Arcade)
   ════════════════════════════════════════ */

/* Arcade mode cards */
.so-arcade-mode-card {
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid var(--so-border) !important;
  border-radius: 22px !important;
  box-shadow: 0 4px 16px rgba(0,0,0,0.05) !important;
  padding: 20px !important;
  transition: transform 0.18s var(--so-ease), box-shadow 0.18s var(--so-ease), border-color 0.18s ease !important;
  position: relative !important;
  overflow: hidden !important;
}

.so-arcade-mode-card:hover {
  transform: translateY(-2px) !important;
  box-shadow: 0 12px 32px rgba(0,0,0,0.10) !important;
  border-color: rgba(67,97,238,0.22) !important;
}

/* Color accent strip on top */
.so-arcade-mode-card::after {
  content: '' !important;
  position: absolute !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
  height: 3px !important;
  background: linear-gradient(90deg, color-mix(in srgb, var(--game-color, #4361EE) 80%, transparent), transparent) !important;
  border-radius: 22px 22px 0 0 !important;
  opacity: 0 !important;
  transition: opacity 0.18s ease !important;
}

.so-arcade-mode-card:hover::after { opacity: 1 !important; }

.spanishos-root[data-phase="night"] .so-arcade-mode-card {
  background: rgba(28,28,26,0.90) !important;
  border-color: rgba(255,255,255,0.10) !important;
}

/* Arcade emoji icon */
.so-arcade-mode-card-emoji {
  width: 52px !important;
  height: 52px !important;
  border-radius: 16px !important;
  border: 1px solid rgba(20,20,18,0.08) !important;
  background: var(--so-soft) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-size: 26px !important;
  box-shadow: 0 2px 8px rgba(0,0,0,0.06) !important;
}

/* Arcade badge */
.so-arcade-mode-card-badge {
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 6px 11px !important;
  border-radius: 8px !important;
  background: var(--so-soft) !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-muted) !important;
}

/* Arcade start/play button */
.so-arcade-mode-card-btn,
.so-arcade-start {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 800 !important;
  font-size: 13.5px !important;
  background: var(--so-accent) !important;
  color: #fff !important;
  border: none !important;
  border-radius: 12px !important;
  padding: 11px 18px !important;
  cursor: pointer !important;
  box-shadow: 0 4px 14px rgba(230,57,70,0.24) !important;
  transition: transform 0.15s var(--so-spring), box-shadow 0.15s ease !important;
  letter-spacing: -0.01em !important;
}

.so-arcade-mode-card-btn:hover,
.so-arcade-start:hover {
  transform: translateY(-1px) !important;
  box-shadow: 0 6px 20px rgba(230,57,70,0.32) !important;
}

.so-arcade-mode-card-btn:active,
.so-arcade-start:active {
  transform: scale(0.97) !important;
}

/* Active game run card */
.so-arcade-run-rich {
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid var(--so-border) !important;
  border-radius: 22px !important;
  padding: 20px !important;
  box-shadow: var(--so-shadow) !important;
}

.spanishos-root[data-phase="night"] .so-arcade-run-rich {
  background: rgba(28,28,26,0.92) !important;
  border-color: rgba(255,255,255,0.10) !important;
}

/* Arcade stats chips */
.so-arcade-stat {
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
  font-size: 13px !important;
  padding: 8px 14px !important;
  border-radius: 10px !important;
  background: var(--so-soft) !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-text) !important;
}

/* Progress/score */
.so-arcade-progress,
.so-arcade-finish-reward {
  font-family: 'Sora', sans-serif !important;
  font-weight: 800 !important;
  color: var(--so-accent) !important;
  font-size: 15px !important;
  letter-spacing: -0.02em !important;
}

/* Answer options */
.so-arcade-option {
  border: 1.5px solid var(--so-border) !important;
  background: rgba(255,255,255,0.92) !important;
  color: var(--so-text) !important;
  border-radius: 16px !important;
  padding: 16px 14px !important;
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  cursor: pointer !important;
  transition: all 0.16s var(--so-ease) !important;
  text-align: left !important;
  box-shadow: 0 1px 4px rgba(0,0,0,0.04) !important;
}

.so-arcade-option:hover {
  border-color: rgba(230,57,70,0.30) !important;
  background: rgba(230,57,70,0.05) !important;
  box-shadow: 0 6px 18px rgba(230,57,70,0.08) !important;
  transform: translateY(-1px) !important;
}

.so-arcade-option:active {
  transform: scale(0.98) !important;
}

.so-arcade-option-main {
  font-weight: 800 !important;
  font-size: 15px !important;
  color: var(--so-text) !important;
}

.so-arcade-option-sub {
  font-size: 12.5px !important;
  color: var(--so-muted) !important;
  font-weight: 500 !important;
}

.spanishos-root[data-phase="night"] .so-arcade-option {
  background: rgba(255,255,255,0.06) !important;
  border-color: rgba(255,255,255,0.12) !important;
  color: rgba(245,245,240,0.90) !important;
}

/* Mode badge */
.so-arcade-mode-badge {
  font-size: 11px !important;
  font-weight: 800 !important;
  letter-spacing: 0.04em !important;
  text-transform: uppercase !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: var(--so-soft) !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-muted) !important;
}

/* Combo chip */
.so-arcade-combo {
  font-family: 'Sora', sans-serif !important;
  font-weight: 800 !important;
  padding: 8px 12px !important;
  border-radius: 999px !important;
  background: rgba(45,198,83,0.12) !important;
  border: 1px solid rgba(45,198,83,0.28) !important;
  color: #1a7a3a !important;
  font-size: 13px !important;
}

.spanishos-root[data-phase="night"] .so-arcade-combo { color: #4AE87A !important; }

/* ── Smart panel (shared) ─────────────────────────────────────────── */
.so-smart-panel {
  background: rgba(255,255,255,0.96) !important;
  border: 1px solid var(--so-border) !important;
  border-radius: 22px !important;
  box-shadow: var(--so-shadow) !important;
  padding: 20px !important;
}

.spanishos-root[data-phase="night"] .so-smart-panel {
  background: rgba(28,28,26,0.92) !important;
  border-color: rgba(255,255,255,0.10) !important;
}

.so-smart-kicker {
  font-size: 10.5px !important;
  font-weight: 900 !important;
  letter-spacing: 0.09em !important;
  text-transform: uppercase !important;
  color: var(--so-muted) !important;
}

.so-smart-chip {
  font-family: 'Sora', sans-serif !important;
  font-weight: 700 !important;
  font-size: 12px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: var(--so-soft) !important;
  border: 1px solid var(--so-border) !important;
  color: var(--so-text) !important;
}

.so-smart-btn {
  font-family: 'Plus Jakarta Sans', sans-serif !important;
  font-weight: 700 !important;
  border-radius: 12px !important;
  padding: 11px 16px !important;
  font-size: 14px !important;
  border: 1.5px solid var(--so-border) !important;
  background: var(--so-soft) !important;
  color: var(--so-text) !important;
  cursor: pointer !important;
  transition: all 0.15s var(--so-ease) !important;
}

.so-smart-btn.primary,
.so-smart-btn:hover {
  background: var(--so-accent) !important;
  color: #fff !important;
  border-color: transparent !important;
  box-shadow: 0 4px 14px rgba(230,57,70,0.24) !important;
}

/* ── Responsive: mobile store/arcade ─────────────────────────────── */
@media (max-width: 900px) {
  .so-store-grid,
  .so-arcade-modes-grid,
  .so-arcade-options {
    grid-template-columns: 1fr !important;
  }

  .so-store-hero,
  .so-arcade-hero,
  .so-store-card,
  .so-store-inventory,
  .so-arcade-mode-card,
  .so-arcade-run-rich,
  .so-smart-panel {
    border-radius: 18px !important;
    padding: 16px !important;
  }

  .so-store-chip {
    padding: 8px 12px !important;
    font-size: 12.5px !important;
  }

  .so-store-scenes {
    grid-template-columns: 1fr !important;
  }

  .so-arcade-option {
    min-height: 88px !important;
  }
}



/* RC stability patch — mobile browser bar + touch-friendly store/arcade */
@media (max-width: 900px){
  .spanishos-root[data-app="chat"] .spanishos-chatview{
    padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 58px) + 2px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-messages{
    padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 58px) + 4px) !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 88px) + var(--so-browser-bottom, 58px) + 4px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    bottom: var(--so-browser-bottom, 58px) !important;
    padding: 4px 12px max(4px, env(safe-area-inset-bottom)) !important;
  }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap{
    bottom: 0 !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-ghost,
  .spanishos-root[data-app="chat"] .spanishos-quick,
  .spanishos-root[data-app="chat"] .spanishos-chathint{
    margin-bottom: 0 !important;
  }
}

@media (hover: none), (pointer: coarse){
  .so-store-chip,
  .so-store-card,
  .so-store-sceneCard,
  .so-store-buy,
  .so-store-invitem,
  .so-arcade-mode-card,
  .so-arcade-mode-card-btn,
  .so-arcade-start,
  .so-arcade-option,
  .so-smart-btn{
    -webkit-tap-highlight-color: transparent !important;
  }

  .so-store-chip:hover,
  .so-store-card:hover,
  .so-store-sceneCard:hover,
  .so-store-buy:hover,
  .so-store-invitem:hover,
  .so-arcade-mode-card:hover,
  .so-arcade-mode-card:hover::after,
  .so-arcade-mode-card-btn:hover,
  .so-arcade-start:hover,
  .so-arcade-option:hover,
  .so-smart-btn:hover{
    transform: none !important;
    box-shadow: inherit !important;
    background: inherit !important;
    border-color: inherit !important;
    color: inherit !important;
    opacity: 1 !important;
  }

  .so-store-buy:hover,
  .so-arcade-mode-card-btn:hover,
  .so-arcade-start:hover,
  .so-smart-btn:hover{
    background: var(--so-blue) !important;
    color: #fff !important;
    border-color: transparent !important;
    box-shadow: none !important;
  }

  .so-store-chip.active:hover{
    background: var(--so-accent) !important;
    color: #fff !important;
  }

  .so-store-card:active,
  .so-store-sceneCard:active,
  .so-arcade-mode-card:active,
  .so-arcade-option:active,
  .so-store-buy:active,
  .so-arcade-start:active,
  .so-arcade-mode-card-btn:active,
  .so-smart-btn:active{
    transform: scale(0.985) !important;
  }
}


/* =========================================================
   FLUYO RC4 — stability-only overrides
   ========================================================= */
@media (min-width: 901px){
  .spanishos-root[data-app="chat"] .spanishos-main{ padding-bottom: 18px !important; }
  .spanishos-root[data-app="chat"] .spanishos-chathead{ margin-bottom: 8px !important; }
  .spanishos-root[data-app="chat"] .spanishos-messages{ padding-bottom: 18px !important; }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    position: sticky !important;
    bottom: 0 !important;
    left: auto !important;
    right: auto !important;
    padding: 8px 0 0 0 !important;
    border-top: 0 !important;
    box-shadow: none !important;
    background: linear-gradient(180deg, rgba(255,255,255,0), rgba(255,255,255,.96) 16%, rgba(255,255,255,.98)) !important;
    backdrop-filter: blur(10px) !important;
  }
  .spanishos-root[data-phase="night"][data-app="chat"] .spanishos-composerwrap{
    background: linear-gradient(180deg, rgba(22,22,20,0), rgba(22,22,20,.94) 16%, rgba(22,22,20,.98)) !important;
  }
}
@media (max-width: 900px){
  .spanishos-root[data-app="chat"] .spanishos-chatview{
    padding-bottom: calc(var(--so-composer-h, 104px) + var(--so-browser-bottom, 0px) + 14px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-messages{
    padding-bottom: calc(var(--so-composer-h, 104px) + var(--so-browser-bottom, 0px) + 22px) !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 104px) + var(--so-browser-bottom, 0px) + 22px) !important;
  }
  .spanishos-root[data-app="chat"] .spanishos-composerwrap{
    position: fixed !important;
    left: 0 !important;
    right: 0 !important;
    bottom: calc(var(--so-browser-bottom, 0px) + env(safe-area-inset-bottom)) !important;
    padding: 6px 12px 8px 12px !important;
    border-radius: 22px 22px 0 0 !important;
  }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap{ bottom: 0 !important; }
  .spanishos-root.so-kbd[data-app="chat"] .spanishos-messages{ padding-bottom: calc(var(--so-composer-h, 104px) + 14px) !important; }
}
@media (hover: none), (pointer: coarse){
  .so-store-card,.so-store-sceneCard,.so-store-invitem,.so-store-chip,.so-store-buy,.so-smart-btn,.so-arcade-mode-card,.so-arcade-mode-card-btn,.so-arcade-start,.so-arcade-option{
    -webkit-tap-highlight-color: rgba(0,0,0,0);
  }
  .so-store-card:hover,.so-store-sceneCard:hover,.so-store-invitem:hover,.so-store-chip:hover,.so-store-buy:hover,.so-smart-btn:hover,.so-arcade-mode-card:hover,.so-arcade-mode-card-btn:hover,.so-arcade-start:hover,.so-arcade-option:hover{
    transform: none !important;
    box-shadow: inherit !important;
    filter: none !important;
  }
  .so-arcade-mode-card:hover::after,.so-arcade-mode-card:hover::before,.so-store-card:hover::before,.so-store-sceneCard:hover::before{ opacity: 0 !important; }
}
.spanishos-loginwrap .spanishos-btn.primary,
.spanishos-loginwrap a.spanishos-btn.primary{ text-decoration: none !important; }


/* Access / subscription choice */
.spanishos-accesspage{
  max-width: 1120px;
  margin: 0 auto;
}
.spanishos-accesscard{
  width:min(1040px, 100%);
}
.spanishos-accessproductcard{
  display:grid;
  grid-template-columns:minmax(0, 1.35fr) minmax(320px, 0.85fr);
  gap:22px;
  align-items:stretch;
  padding:24px;
  background:linear-gradient(180deg, rgba(255,255,255,0.98), rgba(255,255,255,0.94));
  border:1px solid rgba(17,17,17,0.08);
  box-shadow:0 24px 60px rgba(17,17,17,0.10);
}
.spanishos-accessmain{
  display:flex;
  flex-direction:column;
  gap:14px;
}
.spanishos-accesseyebrow{
  display:inline-flex;
  align-items:center;
  width:max-content;
  max-width:100%;
  padding:8px 12px;
  border-radius:999px;
  background:rgba(17,17,17,0.05);
  color:var(--so-text);
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.spanishos-accesshero-title{
  font-size:clamp(32px, 5vw, 52px);
  line-height:1.02;
  letter-spacing:-0.03em;
  max-width:11ch;
}
.spanishos-accesshero-subtitle{
  max-width:62ch;
  font-size:15px;
  line-height:1.65;
}
.spanishos-accessproof{
  color:var(--so-text);
  font-weight:600;
  line-height:1.5;
  max-width:56ch;
}
.spanishos-pricebadge{
  display:inline-flex;
  align-items:center;
  gap:8px;
  width:max-content;
  max-width:100%;
  margin-top:4px;
  padding:11px 14px;
  border-radius:999px;
  background:rgba(255,26,26,0.08);
  color:var(--so-text);
  font-weight:700;
}
.spanishos-accesskeypoints{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top:4px;
}
.spanishos-accesskeypoint{
  padding:16px;
  border-radius:18px;
  background:rgba(17,17,17,0.03);
  border:1px solid rgba(17,17,17,0.06);
}
.spanishos-accesskeypointtitle{
  font-size:15px;
  font-weight:700;
  color:var(--so-text);
  margin-bottom:6px;
}
.spanishos-accessmodules{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:2px;
}
.spanishos-accessmodule{
  display:inline-flex;
  align-items:center;
  padding:8px 12px;
  border-radius:999px;
  background:#fff;
  border:1px solid rgba(17,17,17,0.08);
  color:var(--so-text);
  font-size:13px;
  font-weight:600;
}
.spanishos-accessbullets{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
  margin-top:2px;
}
.spanishos-accessbullet{
  padding:16px;
  border:1px solid rgba(17,17,17,0.08);
  border-radius:18px;
  background:rgba(255,255,255,0.82);
  color:var(--so-text);
  line-height:1.55;
}
.spanishos-accessbulletlabel{
  font-size:12px;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  color:rgba(17,17,17,0.62);
  margin-bottom:8px;
}
.spanishos-accesscta{
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  gap:18px;
  padding:22px;
  border-radius:22px;
  background:linear-gradient(180deg, rgba(17,17,17,0.98), rgba(17,17,17,0.92));
  color:#fff;
  min-height:100%;
}
.spanishos-accessctahead{
  display:grid;
  gap:8px;
}
.spanishos-accessctatitle{
  font-size:24px;
  line-height:1.15;
  font-weight:800;
  letter-spacing:-0.02em;
}
.spanishos-accesscta .spanishos-muted,
.spanishos-accesscta .spanishos-small{
  color:rgba(255,255,255,0.72) !important;
}
.spanishos-accessactions{
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-top:4px;
}
.spanishos-accessactions .spanishos-btn,
.spanishos-accessactions .spanishos-accesslink{
  width:100%;
  margin-top:0;
  text-align:center;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:54px;
  text-decoration:none !important;
}
.spanishos-accesscta .spanishos-accesslink,
.spanishos-accesscta .spanishos-ghostbtn{
  background:rgba(255,255,255,0.08);
  border-color:rgba(255,255,255,0.14);
  color:#fff;
}
.spanishos-accesscta .spanishos-btn.primary{
  box-shadow:none;
}
.spanishos-accessfoot{
  line-height:1.6;
}
@media (max-width: 980px){
  .spanishos-accessproductcard{
    grid-template-columns:1fr;
  }
  .spanishos-accesshero-title{ max-width:none; }
}
@media (max-width: 780px){
  .spanishos-accesskeypoints,
  .spanishos-accessbullets{
    grid-template-columns:1fr;
  }
}


/* --- RC stability hotfix: mobile chat safe area + touch devices --- */
@media (max-width: 900px){
  #spanishos-root[data-app="chat"] .spanishos-composerwrap{
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    bottom: calc(var(--so-browser-bottom, 92px) + env(safe-area-inset-bottom, 0px)) !important;
    padding-left: max(10px, env(safe-area-inset-left)) !important;
    padding-right: max(10px, env(safe-area-inset-right)) !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
    border-radius: 22px 22px 0 0 !important;
  }
  #spanishos-root[data-app="chat"] .spanishos-messages,
  #spanishos-root[data-app="chat"] .spanishos-mainchat,
  #spanishos-root[data-app="chat"] .spanishos-chatview{
    padding-bottom: calc(var(--so-composer-h, 118px) + var(--so-browser-bottom, 92px) + 26px) !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 118px) + var(--so-browser-bottom, 92px) + 26px) !important;
  }
  #spanishos-root.so-kbd[data-app="chat"] .spanishos-composerwrap{
    bottom: 0 !important;
    padding-bottom: max(8px, env(safe-area-inset-bottom)) !important;
  }
  #spanishos-root.so-kbd[data-app="chat"] .spanishos-messages,
  #spanishos-root.so-kbd[data-app="chat"] .spanishos-mainchat,
  #spanishos-root.so-kbd[data-app="chat"] .spanishos-chatview{
    padding-bottom: calc(var(--so-composer-h, 118px) + 16px) !important;
    scroll-padding-bottom: calc(var(--so-composer-h, 118px) + 16px) !important;
  }
}

@media (hover: none) and (pointer: coarse){
  .so-store-card:hover,
  .so-store-sceneCard:hover,
  .so-store-chip:hover,
  .so-store-buy:hover,
  .so-arcade-mode-card:hover,
  .so-arcade-option:hover,
  .so-arcade-start:hover,
  .so-arcade-mode-card-btn:hover{
    transform: none !important;
    box-shadow: inherit !important;
    filter: none !important;
  }
  .so-store-card,
  .so-store-sceneCard,
  .so-store-chip,
  .so-store-buy,
  .so-arcade-mode-card,
  .so-arcade-option,
  .so-arcade-start,
  .so-arcade-mode-card-btn{
    -webkit-tap-highlight-color: transparent;
  }
}


/* --- RC9 access page polish + proper scrolling --- */
.spanishos-root.so-authscreen{
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-y:contain;
}
.spanishos-root.so-authscreen .spanishos-loginwrap,
.spanishos-root.so-authscreen .spanishos-accesspage{
  min-height:100%;
}
.spanishos-root.so-authscreen .spanishos-loginwrap{
  align-items:flex-start;
  justify-content:center;
  padding:22px 14px 28px;
}
.spanishos-root.so-authscreen .spanishos-accesspage{
  padding-top:clamp(18px, 3vw, 32px);
  padding-bottom:clamp(24px, 4vw, 40px);
}
.spanishos-accessproductcard{
  gap:26px;
  border-radius:26px;
  overflow:visible;
  background:
    radial-gradient(1000px 420px at 0% -10%, rgba(230,57,70,0.08), transparent 60%),
    radial-gradient(900px 380px at 100% 0%, rgba(17,17,17,0.05), transparent 62%),
    linear-gradient(180deg, rgba(255,255,255,0.99), rgba(255,255,255,0.95));
}
.spanishos-accessstats{
  display:grid;
  grid-template-columns:repeat(3, minmax(0,1fr));
  gap:12px;
}
.spanishos-accessstat,
.spanishos-accessdetailcard{
  padding:16px;
  border-radius:18px;
  border:1px solid rgba(17,17,17,0.07);
  background:rgba(255,255,255,0.78);
  box-shadow:0 8px 24px rgba(17,17,17,0.05);
}
.spanishos-accessstatvalue{
  font-size:20px;
  line-height:1.1;
  font-weight:800;
  letter-spacing:-0.03em;
  color:var(--so-text);
  margin-bottom:6px;
}
.spanishos-accesssectiontitle{
  font-size:13px;
  line-height:1.2;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
  color:rgba(17,17,17,0.6);
  margin-top:6px;
}
.spanishos-accessdetailrail{
  display:grid;
  grid-template-columns:repeat(2, minmax(0,1fr));
  gap:12px;
}
.spanishos-accessdetailtitle{
  font-size:15px;
  font-weight:700;
  color:var(--so-text);
  margin-bottom:6px;
}
.spanishos-accesscta{
  position:sticky;
  top:20px;
  border-radius:24px;
  box-shadow:0 24px 60px rgba(17,17,17,0.18);
}
.spanishos-accessctapanel{
  display:grid;
  gap:10px;
  padding:14px;
  border-radius:18px;
  background:rgba(255,255,255,0.05);
  border:1px solid rgba(255,255,255,0.08);
}
.spanishos-accessctaeyebrow{
  font-size:11px;
  letter-spacing:.08em;
  text-transform:uppercase;
  font-weight:800;
  color:rgba(255,255,255,0.55);
}
.spanishos-accessctalist{
  display:grid;
  gap:9px;
}
.spanishos-accessctaitem{
  position:relative;
  padding-left:18px;
  line-height:1.55;
  color:#fff;
}
.spanishos-accessctaitem::before{
  content:'';
  position:absolute;
  left:0;
  top:.62em;
  width:7px;
  height:7px;
  border-radius:999px;
  background:rgba(255,255,255,0.9);
}
@media (max-width: 980px){
  .spanishos-accesscta{
    position:relative;
    top:auto;
  }
}
@media (max-width: 780px){
  .spanishos-accessstats,
  .spanishos-accessdetailrail{
    grid-template-columns:1fr;
  }
  .spanishos-root.so-authscreen .spanishos-loginwrap{
    padding:14px 10px 24px;
  }
  .spanishos-accessproductcard{
    padding:18px;
    gap:18px;
    border-radius:22px;
  }
  .spanishos-accesshero-title{
    font-size:clamp(28px, 10vw, 40px);
  }
}






/* ═══════════════════════════════════════════════════════════════════
   FLUYO LANDING v8 — Scroll fix + layout reset + login form
   ═══════════════════════════════════════════════════════════════════ */

/* 1. Root scrolls when landing is active */
.spanishos-root.so-authscreen {
  overflow-y: auto !important;
  overflow-x: hidden !important;
  height: calc(var(--so-vh,1vh)*100) !important;
  max-height: none !important;
  overscroll-behavior-y: auto !important;
  -webkit-overflow-scrolling: touch !important;
  display: block !important;
  touch-action: pan-y !important;
}
.spanishos-root.so-authscreen .spanishos-app { display: none !important; }
.spanishos-root.so-authscreen .v8 { height: auto !important; overflow: visible !important; }

/* 2. body/html unlock via JS class */
html.so-landing-open, body.so-landing-open {
  overflow: auto !important; height: auto !important;
  overscroll-behavior: auto !important;
  -webkit-overflow-scrolling: touch !important;
}

/* 3. Kill all inherited grid/flex on .v8 wrapper */
.spanishos-root .v8.spanishos-loginwrap,
.spanishos-root.so-authscreen .v8.spanishos-loginwrap {
  display: block !important;
  align-items: unset !important;
  justify-content: unset !important;
  padding: 0 !important;
  margin: 0 !important;
  max-width: 100% !important;
  width: 100% !important;
  background: #FAFAF8 !important;
  box-sizing: border-box !important;
}
.spanishos-root .v8 .spanishos-accesscard,
.spanishos-root .v8 .spanishos-accessproductcard {
  display: block !important;
  grid-template-columns: unset !important;
  width: 100% !important; max-width: 100% !important;
  margin: 0 !important; padding: 0 !important;
  border: none !important; box-shadow: none !important;
  background: transparent !important;
}

/* 4. Login form card — dark, white text */
.spanishos-root.so-authscreen .v8 .spanishos-logincard {
  background: #111110 !important;
  border: 1px solid rgba(255,255,255,.08) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.3) !important;
  border-radius: 18px !important;
  width: calc(100% - 32px) !important;
  max-width: 420px !important;
  margin: 36px auto 52px !important;
  padding: 24px !important;
  display: block !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-logintitle {
  font-family: 'Bricolage Grotesque', sans-serif !important;
  font-size: 20px !important; font-weight: 800 !important;
  color: #F5F4F0 !important; letter-spacing: -.02em !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-logincard .spanishos-muted { color: rgba(245,244,240,.3) !important; }
.spanishos-root.so-authscreen .v8 .spanishos-logincard p,
.spanishos-root.so-authscreen .v8 .spanishos-logincard span:not(.spanishos-loginmark span),
.spanishos-root.so-authscreen .v8 .spanishos-logincard label { color: rgba(245,244,240,.65) !important; }
.spanishos-root.so-authscreen .v8 .spanishos-loginmark { background: #E63946 !important; color: #fff !important; border-radius: 10px !important; }
.spanishos-root.so-authscreen .v8 input.spanishos-inputfield,
.spanishos-root.so-authscreen .v8 textarea.spanishos-inputfield {
  background: rgba(255,255,255,.05) !important;
  border: 1.5px solid rgba(255,255,255,.1) !important;
  color: #F5F4F0 !important; border-radius: 10px !important;
  font-family: 'DM Sans', sans-serif !important;
}
.spanishos-root.so-authscreen .v8 input.spanishos-inputfield::placeholder,
.spanishos-root.so-authscreen .v8 textarea.spanishos-inputfield::placeholder { color: rgba(245,244,240,.2) !important; opacity: 1 !important; }
.spanishos-root.so-authscreen .v8 input.spanishos-inputfield:focus,
.spanishos-root.so-authscreen .v8 textarea.spanishos-inputfield:focus {
  border-color: rgba(230,57,70,.5) !important;
  box-shadow: 0 0 0 3px rgba(230,57,70,.12) !important;
  background: rgba(255,255,255,.08) !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-btn.primary {
  background: #E63946 !important; border-color: transparent !important;
  color: #fff !important; font-weight: 800 !important;
  border-radius: 10px !important;
  font-family: 'Bricolage Grotesque', sans-serif !important;
  box-shadow: 0 4px 16px rgba(230,57,70,.25) !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-btn.primary:hover { background: #c8313d !important; }
.spanishos-root.so-authscreen .v8 .spanishos-ghostbtn {
  background: rgba(255,255,255,.05) !important;
  border-color: rgba(255,255,255,.1) !important;
  color: rgba(245,244,240,.4) !important; border-radius: 9px !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-ghostbtn.active {
  background: rgba(230,57,70,.1) !important;
  border-color: rgba(230,57,70,.3) !important; color: #E63946 !important;
}
.spanishos-root.so-authscreen .v8 .spanishos-divider { background: rgba(255,255,255,.06) !important; }
.spanishos-root.so-authscreen .v8 .spanishos-loginerror { color: #ff6b6b !important; }
.spanishos-root.so-authscreen .v8 a { color: #E63946 !important; }
.spanishos-root.so-authscreen .v8 .spanishos-small.spanishos-muted { color: rgba(245,244,240,.22) !important; }

/* Force white text on all v8 primary buttons */
.spanishos-root .v8-btn-p,
.spanishos-root .v8-btn-p * {
  color: #fff !important;
}
