/* ForoMudok - estilos globales */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}

:root{
  --bg0:#060a0f; --bg1:#0c1219; --bg2:#111c27; --bg3:#162030; --bg4:#1e2d3d;
  --border:#1e3a4f; --border2:rgba(0,245,255,0.2);
  --cyan:#00f5ff; --cyan2:#00c8d4; --green:#00ff88;
  --purple:#b44fff; --red:#ff2d55; --orange:#ff6b35; --yellow:#ffd60a;
  --text:#d0e8f5; --text2:#7fa8c0; --text3:#4a6a80;
  --glow:0 0 12px rgba(0,245,255,0.4),0 0 30px rgba(0,245,255,0.1);
  --glow-g:0 0 10px rgba(0,255,136,0.5);
  --r:8px;
  --font:Arial, Helvetica, sans-serif; --font-h:Arial, Helvetica, sans-serif; --font-m:'Courier New', monospace;
  --app-height:100vh;
  --vvh:100vh;
  --keyboard-offset:0px;
}

html,body{
  height:100%;min-height:var(--app-height);overflow:hidden;background:var(--bg0);color:var(--text);font-family:var(--font);
/* Area segura solo arriba y laterales; abajo lo maneja cada componente */
  padding-top:env(safe-area-inset-top, 0px);
  padding-bottom:0;
  padding-left:env(safe-area-inset-left, 0px);
  padding-right:env(safe-area-inset-right, 0px);
  overscroll-behavior:none;
  -webkit-text-size-adjust:100%;
}
::-webkit-scrollbar{width:4px;height:4px}
::-webkit-scrollbar-track{background:var(--bg1)}
::-webkit-scrollbar-thumb{background:var(--cyan2);border-radius:2px}
/* GRID BACKGROUND */
.grid-bg{
  position:fixed;inset:0;pointer-events:none;z-index:0;
  background-image:linear-gradient(rgba(0,245,255,0.035) 1px,transparent 1px),
    linear-gradient(90deg,rgba(0,245,255,0.035) 1px,transparent 1px);
  background-size:40px 40px;
}
.grid-bg::after{
  content:'';position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 60% at 50% 0%,rgba(0,245,255,0.05) 0%,transparent 70%);
}
/* NAVBAR */
.navbar{
  position:sticky;top:0;z-index:200;
  display:flex;align-items:center;gap:8px;
  padding:0 12px;
  padding-top:env(safe-area-inset-top,0px);
  padding-left:max(12px,env(safe-area-inset-left));
  padding-right:max(12px,env(safe-area-inset-right));
  height:calc(52px + env(safe-area-inset-top,0px));
  background:rgba(6,10,15,.92);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
}
.logo{
  font-family:var(--font-h);font-size:1.4rem;font-weight:700;letter-spacing:3px;
  background:linear-gradient(90deg,var(--cyan),var(--green));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;white-space:nowrap;
  flex-shrink:0;
}
.logo span{-webkit-text-fill-color:var(--purple)}
.site-header-logo{display:block;max-width:180px;max-height:44px;width:auto;height:auto;object-fit:contain}
.nav-badge{font-family:var(--font-m);font-size:0.58rem;color:var(--cyan2);border:1px solid var(--cyan2);padding:1px 6px;border-radius:3px;opacity:.7;flex-shrink:0}
/* BARRA URL estilo navegador */
.nav-urlbar{
  flex:1;min-width:0;
  display:flex;align-items:center;gap:8px;
  background:var(--bg3);
  border:1px solid var(--border);
  border-radius:24px;
  padding:5px 12px;
  height:34px;
  transition:border-color .2s, box-shadow .2s;
  cursor:default;
  overflow:hidden;
}
.nav-urlbar:focus-within,
.nav-urlbar:hover{
  border-color:rgba(0,245,255,.3);
  box-shadow:0 0 0 2px rgba(0,245,255,.06);
}
.nav-urlbar-lock{
  color:var(--green);font-size:.75rem;flex-shrink:0;
}
.nav-urlbar-text{
  flex:1;min-width:0;
  font-family:var(--font-m);font-size:.72rem;
  color:var(--text2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  letter-spacing:.3px;
}
.nav-urlbar-text strong{ color:var(--cyan2); }
.nav-urlbar-reload{
  background:none;border:none;color:var(--text3);
  font-size:.85rem;cursor:pointer;padding:2px 4px;flex-shrink:0;
  border-radius:4px;transition:color .15s, background .15s;line-height:1;
}
.nav-urlbar-reload:hover{ color:var(--cyan);background:rgba(0,245,255,.08); }
.nav-spacer{width:4px;flex-shrink:0}
.nav-flex-spacer{flex:1;min-width:0}
.nav-btn{
  display:flex;align-items:center;gap:5px;padding:6px 12px;
  background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);
  color:var(--text2);font-family:var(--font);font-size:.8rem;cursor:pointer;transition:all .2s;white-space:nowrap;
}
.nav-btn svg{width:15px;height:15px;fill:currentColor;flex-shrink:0}
.nav-btn.btn-icon{padding:6px 10px}
.nav-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.nav-btn.active{background:rgba(0,245,255,0.08);border-color:var(--cyan);color:var(--cyan)}
.nav-user{display:flex;align-items:center;gap:8px;cursor:pointer}
.nav-avatar{width:34px;height:34px;border-radius:50%;border:2px solid var(--cyan);object-fit:cover;box-shadow:var(--glow);flex-shrink:0}
.nav-username{font-size:.85rem;font-weight:700}
.role-badge{font-family:var(--font-m);font-size:.58rem;padding:1px 6px;border-radius:3px;font-weight:700;letter-spacing:1px;display:inline-block}
.role-admin{background:rgba(255,45,85,.15);color:var(--red);border:1px solid var(--red)}
.role-mod{background:rgba(180,79,255,.15);color:var(--purple);border:1px solid var(--purple)}
.role-user{background:rgba(0,200,212,.08);color:var(--cyan2);border:1px solid var(--border)}
/* LAYOUT */
#app{
  display:flex;flex-direction:column;
/* Heredar el alto del body que ya tiene safe-area padding */
  height:100%;
  min-height:var(--app-height);
}
.app-layout{position:relative;z-index:1;flex:1;display:flex;flex-direction:column;overflow:hidden}
.main-col{flex:1;overflow-y:auto;padding:18px 16px;min-height:0}
/* DESKTOP (>900px): chat lateral izquierdo + muro a la derecha */
@media(min-width:901px){
  .app-layout{ flex-direction:row; }
  .chat-col{
    display:none !important;
  }
/* Area de resize con borde derecho arrastrable */
  .chat-resize-handle{ display:none !important; }
  .main-col{ order:1; } /* muro va segundo = derecha */
}
/* MOVIL (<=900px): chat oculto, usa panel flotante */
@media(max-width:900px){ .chat-col{ display:none !important; } }
/* MOVIL <=600px: barra compacta */
@media(max-width:600px){
  /* En móvil el kebab siempre visible (no hay hover) */
  .cm-kebab-btn{ opacity:1 !important; }
  .main-col{ padding:10px 8px }
  .post-embed{ max-width:100%; max-height:220px }
/* Navbar: dos filas compactas para que entren todos los accesos */
  .navbar{
    flex-wrap:wrap;
    gap:6px;
    padding:0 10px;
    padding-bottom:8px;
    padding-top:env(safe-area-inset-top,0px);
    padding-left:max(10px,env(safe-area-inset-left));
    padding-right:max(10px,env(safe-area-inset-right));
    height:auto;
    min-height:calc(52px + env(safe-area-inset-top,0px));
  }
  .nav-badge{ display:none }
  .nav-urlbar{ display:none }
  .nav-spacer-mobile{
    display:block !important;
    flex-basis:100%;
    width:100%;
    height:0;
  }
  .nav-username, .role-badge{ display:none }
  .nav-avatar{ width:30px; height:30px }
  .nav-btn{
    padding:5px 8px;
    font-size:.74rem;
    min-width:auto;
  }
  .nav-btn > span:not(#notif-count-badge){ display:none }
  .notif-bell-wrap .nav-btn{ padding-right:10px }
  .notif-bell-wrap #notif-count-badge{ right:-2px; top:-3px }
  .logo{ font-size:1.2rem; letter-spacing:2px }
  .nav-flex-spacer{
    flex:1 1 auto;
    min-width:12px;
  }
  .nav-guest-btns{ gap:5px; flex-shrink:0 }
  .nav-guest-register{
    padding:6px 10px; font-size:.72rem; letter-spacing:0;
    white-space:nowrap; flex-shrink:0;
  }
  .nav-login-btn{
    padding:6px 12px; font-size:.72rem; letter-spacing:0;
    white-space:nowrap; flex-shrink:0;
  }
  #nav-exit-btn{ padding:5px 9px; font-size:.72rem }
  #notif-panel{
    position:fixed !important;
    top:auto !important;
    right:max(8px, env(safe-area-inset-right)) !important;
    left:auto !important;
    width:min(94vw, 340px) !important;
    max-height:58vh !important;
  }
}
/* Pantallas muy chicas <=360px */
@media(max-width:360px){
  .logo{ font-size:1rem; letter-spacing:1px }
  .nav-guest-register{ display:none } /* solo INGRESAR */
  .nav-login-btn{ padding:6px 10px; font-size:.7rem }
}
/* PANEL */
.panel{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);padding:16px;margin-bottom:16px}
.panel-title{
  font-family:var(--font-h);font-size:.95rem;font-weight:700;letter-spacing:2px;
  color:var(--cyan);text-transform:uppercase;margin-bottom:14px;
  display:flex;align-items:center;gap:8px;
}
.panel-title::before{content:'';width:3px;height:16px;background:var(--cyan);border-radius:2px;flex-shrink:0}
/* BUTTONS */
.btn{
  display:inline-flex;align-items:center;gap:5px;padding:8px 16px;border-radius:var(--r);
  font-family:var(--font);font-size:.83rem;font-weight:600;cursor:pointer;border:none;
  transition:all .2s;letter-spacing:.4px;white-space:nowrap;
}
.btn-primary{background:linear-gradient(135deg,#00c8d4,#00f5ff);color:#000}
.btn-primary:hover{box-shadow:var(--glow);transform:translateY(-1px)}
.btn-ghost{background:transparent;border:1px solid var(--border);color:var(--text2)}
.btn-ghost:hover{border-color:var(--cyan);color:var(--cyan)}
.btn-danger{background:rgba(255,45,85,.12);border:1px solid var(--red);color:var(--red)}
.btn-danger:hover{background:rgba(255,45,85,.25)}
.btn-green{background:rgba(0,255,136,.1);border:1px solid var(--green);color:var(--green)}
.btn-sm{padding:4px 10px;font-size:.75rem}
.btn-icon{padding:5px 8px}
/* FORMS */
input,textarea,select{
  background:var(--bg3);border:1px solid var(--border);border-radius:var(--r);
  color:var(--text);font-family:var(--font);font-size:.88rem;padding:9px 12px;
  outline:none;transition:border-color .2s;width:100%;
}
input:focus,textarea:focus,select:focus{border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,245,255,.08)}
textarea{resize:vertical;min-height:80px}
label.form-label{font-size:.78rem;color:var(--text2);margin-bottom:4px;display:block;font-weight:500}
.form-row{margin-bottom:12px}
.file-btn{
  display:inline-flex;align-items:center;gap:6px;padding:7px 14px;
  background:var(--bg3);border:1px dashed var(--border);border-radius:var(--r);
  color:var(--text2);font-size:.8rem;cursor:pointer;transition:all .2s;
}
.file-btn:hover{border-color:var(--cyan);color:var(--cyan)}
.file-btn-camera{
  border-color:var(--purple);color:var(--purple);
}
.file-btn-camera:hover{border-color:#c084fc;color:#c084fc;}
/* Tarjeta de publicación con diseño moderno */
.post-card{
  background:var(--bg2);
  border:1px solid var(--border);
  border-radius:14px;
  margin-bottom:16px;
  overflow:hidden;
  transition:border-color .25s, box-shadow .25s;
  position:relative;
}
.post-card::before{
  content:'';position:absolute;top:0;left:0;right:0;height:2px;
  background:linear-gradient(90deg,transparent,var(--cyan2),transparent);
  opacity:0;transition:opacity .25s;
}
.post-card:hover{
  border-color:rgba(0,245,255,.25);
  box-shadow:0 4px 24px rgba(0,0,0,.3), 0 0 0 1px rgba(0,245,255,.07);
}
.post-card:hover::before{ opacity:1; }

.post-header{
  display:flex;align-items:center;gap:10px;
  padding:14px 16px 10px;
}
.post-avatar{
  width:42px;height:42px;border-radius:10px;
  border:2px solid var(--border);
  object-fit:cover;flex-shrink:0;
  transition:border-color .2s, box-shadow .2s;
}
.post-header .av-wrap{
  border-radius:10px;
}
.post-header .av-wrap::before,
.post-header .av-wrap::after{
  border-radius:12px;
}
.post-avatar:hover{
  border-color:var(--cyan);
  box-shadow:0 0 0 3px rgba(0,245,255,.15);
}
.post-meta{
  flex:1;
  min-width:0;
  display:flex;
  align-items:center;
}
.post-meta .flex.ic.g2{
  align-items:center;
  min-height:42px;
}
.post-username{
  font-weight:700;font-size:.9rem;
  letter-spacing:.3px;
  display:inline-flex;
  align-items:center;
  line-height:1;
}
.post-follow-btn{
  margin-left:8px;
  border:1px solid rgba(239,49,86,.42);
  border-radius:999px;
  background:rgba(239,49,86,.12);
  color:#ef3156;
  padding:4px 10px;
  font-size:.68rem;
  font-weight:900;
  cursor:pointer;
}
.post-follow-btn.is-following{
  border-color:rgba(239,49,86,.62);
  background:#ef3156;
  color:#fff;
}
.post-time{
  font-size:.62rem;color:var(--text3);
  font-family:var(--font-m);margin-top:1px;
}
.post-time--footer{
  text-align:center;
  padding:8px 12px 12px;
  margin-top:0;
  letter-spacing:0;
  display:block;
  clear:both;
}
.post-header .role-badge,
.user-wall-meta .role-badge{display:none!important}
.edited-tag{font-size:.65rem;color:var(--text3);font-style:italic;margin-left:4px}

.post-body{
  padding:2px 16px 14px;
  font-size:.9rem;line-height:1.7;
  white-space:pre-wrap;word-break:break-word;
  color:var(--text);
}
/* Imagen del post */
.post-img{
  width:100%;max-height:500px;
  object-fit:contain;display:block;
  background:linear-gradient(180deg,var(--bg0),var(--bg1));
  cursor:zoom-in;
  transition:filter .2s;
}
.post-img:hover{ filter:brightness(1.05); }
.post-video{
  width:100%;max-height:420px;
  border-radius:0;display:block;background:#000;
}
/* ── Reproductor de video mejorado ─────────────────────────── */
.custom-video-wrap{
  position:relative;background:#000;border-radius:10px;
  overflow:hidden;box-shadow:0 4px 24px rgba(0,0,0,.55);
}
.custom-video-wrap video{
  display:block;width:100%;max-height:480px;
  cursor:pointer;
}
.custom-video-wrap.custom-video-native{
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(5,8,14,.98),rgba(8,12,18,.98));
}
.custom-video-wrap.custom-video-native video{
  max-height:min(70vh, 520px);
  border-radius:10px;
  background:#000;
  cursor:auto;
}
.custom-video-wrap.custom-video-native video::-webkit-media-controls-panel{
  padding-inline:8px;
}
.custom-video-wrap.custom-video-enhanced{
  border:1px solid rgba(255,255,255,.08);
  background:linear-gradient(180deg,rgba(5,8,14,.98),rgba(8,12,18,.98));
}
.custom-video-wrap.custom-video-enhanced video{
  width:100%;
  max-height:min(70vh, 520px);
  background:#000;
  cursor:pointer;
  position:relative;
  z-index:1;
  opacity:1 !important;
  visibility:visible !important;
  object-fit:contain;
}
.custom-video-wrap.custom-video-enhanced .cvb-overlay{
  background:linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.22));
  z-index:2;
  pointer-events:none;
  opacity:0;
  transition:opacity .2s ease;
}
.custom-video-wrap.custom-video-enhanced .cvb-overlay-icon{
  width:64px;
  height:64px;
  box-shadow:0 10px 24px rgba(0,0,0,.35);
  opacity:.98;
}
.custom-video-wrap.custom-video-enhanced.cvb-paused .cvb-overlay{
  opacity:1;
  pointer-events:auto;
}
.custom-video-wrap.custom-video-enhanced .cvb-loading{
  z-index:3;
}
/* Overlay de play al centro al pausar */
.cvb-overlay{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  pointer-events:none;opacity:0;transition:opacity .25s;
}
.cvb-overlay-icon{
  width:56px;height:56px;border-radius:50%;
  background:rgba(0,0,0,.62);backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  font-size:1.5rem;color:#fff;
}
.custom-video-wrap.cvb-paused .cvb-overlay{ opacity:1; }
/* Barra de controles */
.custom-video-bar{
  display:flex;align-items:center;gap:6px;
  padding:7px 12px;
  background:linear-gradient(0deg,rgba(5,8,14,.98),rgba(10,14,22,.88));
  font-size:.72rem;color:var(--text2);
  flex-wrap:nowrap;
}
.cvb-bar-advanced{
  padding:12px 14px;
}
.cvb-btn{
  background:none;border:none;color:var(--text2);
  cursor:pointer;font-size:1rem;padding:3px 5px;
  transition:color .15s,transform .1s;border-radius:4px;
  line-height:1;flex-shrink:0;
}
.cvb-btn:hover{ color:var(--cyan);transform:scale(1.15); }
.cvb-btn:active{ transform:scale(.95); }
/* Barra de progreso — más alta para facilitar click/drag en móvil */
.cvb-progress-wrap{
  flex:1;display:flex;flex-direction:column;justify-content:center;
  cursor:pointer;padding:6px 0;min-width:0;
}
.cvb-progress-wrap-advanced{ width:100%; padding:2px 0 6px; }
.cvb-progress-inline{
  position:relative;
  flex:1 1 320px;
  min-width:220px;
  height:18px;
  display:flex;
  align-items:center;
}
.cvb-progress-track{
  position:absolute;
  left:0;
  right:0;
  top:50%;
  height:5px;
  transform:translateY(-50%);
  border-radius:999px;
  background:rgba(255,255,255,.14);
  overflow:hidden;
  pointer-events:none;
}
.cvb-seek{
  position:relative;
  width:100%;
  margin:0;
  height:18px;
  background:transparent;
  -webkit-appearance:none;
  appearance:none;
  cursor:pointer;
  z-index:2;
  touch-action:pan-y;
}
.cvb-seek::-webkit-slider-runnable-track{
  height:18px;
  background:transparent;
}
.cvb-seek::-webkit-slider-thumb{
  -webkit-appearance:none;
  appearance:none;
  width:14px;
  height:14px;
  margin-top:2px;
  border:none;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 3px rgba(0,251,251,.18), 0 0 10px rgba(0,251,251,.38);
}
.cvb-seek::-moz-range-track{
  height:18px;
  background:transparent;
  border:none;
}
.cvb-seek::-moz-range-thumb{
  width:14px;
  height:14px;
  border:none;
  border-radius:50%;
  background:var(--cyan);
  box-shadow:0 0 0 3px rgba(0,251,251,.18), 0 0 10px rgba(0,251,251,.38);
}
.cvb-progress{
  height:5px;border-radius:3px;
  position:relative;overflow:visible;
  background:rgba(255,255,255,.15);
}
.cvb-buffer{
  position:absolute;top:0;left:0;height:100%;
  background:rgba(255,255,255,.2);border-radius:3px;transition:width .4s;
}
.cvb-played{
  position:absolute;top:0;left:0;height:100%;border-radius:3px;
  background:linear-gradient(90deg,var(--cyan),var(--purple));z-index:1;
}
/* Pulgar en la barra */
.cvb-thumb{
  position:absolute;top:50%;right:0;transform:translate(50%,-50%);
  width:13px;height:13px;border-radius:50%;z-index:2;
  background:var(--cyan);box-shadow:0 0 6px var(--cyan);
  opacity:0;transition:opacity .2s;pointer-events:none;
}
.cvb-progress-wrap:hover .cvb-thumb{ opacity:1; }
.cvb-progress-wrap:hover .cvb-progress{ height:7px; }
.cvb-time{
  font-family:var(--font-m);font-size:.65rem;white-space:nowrap;
  color:var(--text2);min-width:72px;text-align:center;
}
.cvb-time-wide{
  min-width:98px;
  text-align:left;
}
.cvb-controls-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:nowrap;
}
.cvb-controls-left,
.cvb-controls-right{
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
  flex-shrink:0;
}
.cvb-controls-right{
  flex-wrap:nowrap;
  justify-content:flex-end;
}
/* Volumen */
.cvb-vol-wrap{ display:flex;align-items:center;gap:4px;flex-shrink:0; }
.cvb-vol-wrap-wide{ gap:8px; }
.cvb-vol{
  width:54px;height:4px;border-radius:2px;cursor:pointer;
  background:rgba(255,255,255,.2);
  -webkit-appearance:none;appearance:none;outline:none;flex-shrink:0;
}
.cvb-vol-wide{ width:104px; }
.cvb-vol::-webkit-slider-thumb{
  -webkit-appearance:none;width:11px;height:11px;
  border-radius:50%;background:var(--cyan);cursor:pointer;
}
/* Selector de velocidad */
.cvb-speed{
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);
  color:var(--text2);font-size:.62rem;font-family:var(--font-m);
  border-radius:4px;padding:2px 4px;cursor:pointer;outline:none;
  -webkit-appearance:none;appearance:none;
}
.cvb-speed-wide{
  min-width:68px;
  padding:4px 6px;
}
.cvb-speed:hover{ border-color:var(--cyan);color:var(--cyan); }
.cvb-cast{ font-size:.95rem; }
/* Loading spinner en video */
.cvb-loading{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(0,0,0,.55);pointer-events:none;opacity:0;transition:opacity .2s;
}
.cvb-loading.active{ opacity:1; }
.cvb-spinner{
  width:32px;height:32px;border-radius:50%;
  border:3px solid rgba(255,255,255,.15);
  border-top-color:var(--cyan);
  animation:cvb-spin .8s linear infinite;
}
@keyframes cvb-spin{ to{transform:rotate(360deg)} }
/* Responsive: ocultar volumen en pantalla chica */
@media(max-width:420px){
  .cvb-vol-wrap{ display:none; }
  .cvb-speed{ display:none; }
  .custom-video-wrap.custom-video-native video{
    max-height:52vh;
  }
  .custom-video-wrap.custom-video-enhanced video{
    max-height:52vh;
  }
  .cvb-bar-advanced{
    padding:10px 12px 12px;
    gap:8px;
  }
  .cvb-controls-row{
    gap:8px;
    flex-wrap:wrap;
  }
  .cvb-controls-left,
  .cvb-controls-right{
    width:auto;
    justify-content:flex-start;
  }
  .cvb-progress-inline{
    order:3;
    flex-basis:100%;
    min-width:0;
  }
  .cvb-time-wide{
    min-width:auto;
  }
}
.post-embed{
  width:100%;aspect-ratio:16/9;
  border:none;display:block;
  border-radius:0;
  margin:0;
}
.post-sticker{
  max-width:140px;max-height:140px;
  border-radius:10px;display:block;
  margin:4px 16px 14px;
  cursor:zoom-in;
  transition:transform .2s;
}
.post-sticker:hover{ transform:scale(1.05); }
/* Barra de acciones inferior del post */
.post-footer{
  display:flex;align-items:center;justify-content:flex-end;
  gap:6px;padding:8px 12px;
  border-top:1px solid rgba(255,255,255,.04);
  background:rgba(0,0,0,.15);
}
/* LIGHTBOX */
.lightbox-overlay{
  position:fixed;inset:0;z-index:9000;
  background:rgba(0,0,0,.95);
  display:flex;align-items:center;justify-content:center;
  cursor:zoom-out;
  animation:lbIn .18s ease;
}
@keyframes lbIn{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}
.lightbox-overlay img{
  max-width:94vw;max-height:90vh;
  object-fit:contain;border-radius:6px;
  box-shadow:0 0 80px rgba(0,0,0,.9);
  cursor:default;
  animation:lbIn .18s ease;
}
.lightbox-close{
  position:fixed;top:14px;right:16px;
  background:rgba(255,255,255,.12);
  backdrop-filter:blur(8px);
  border:1px solid rgba(255,255,255,.2);
  color:#fff;font-size:1.3rem;cursor:pointer;
  border-radius:50%;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;
  z-index:9001;transition:background .2s;
}
.lightbox-close:hover{background:rgba(255,45,85,.4);}
/* Chat con estilo MSN Messenger */
/* Header: barra degradada azul-celeste tipo MSN */
.chat-header{
  flex-shrink:0;
  display:flex;align-items:center;justify-content:space-between;
  padding:8px 10px;
  background:linear-gradient(180deg,#1f6fb5 0%,#1557a0 40%,#0d3d7a 100%);
  border-bottom:2px solid #0a2d5e;
  position:relative;
  overflow:hidden;
}
.chat-header::after{
  content:'';position:absolute;top:0;left:0;right:0;height:1px;
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);
}
.chat-title{
  font-family:var(--font-h);
  font-size:.82rem;font-weight:700;
  color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.5);
  letter-spacing:.3px;
  display:flex;align-items:center;gap:7px;
}
/* Bolita verde de "en línea" */
.chat-title::before{
  content:'';width:8px;height:8px;border-radius:50%;flex-shrink:0;
  background:radial-gradient(circle at 35% 35%,#7fff00,#3cb000);
  box-shadow:0 0 4px rgba(60,176,0,.8),inset 0 1px 1px rgba(255,255,255,.4);
  animation:pulse 2.5s infinite;
}
/* rea de mensajes: fondo beige/crema tipo MSN */
.chat-msgs{
  flex:1;overflow-y:auto;
  padding:10px 12px;
  display:flex;flex-direction:column;gap:0;
  background:linear-gradient(180deg,#f5f0e8 0%,#ede8dc 100%);
  scroll-behavior:smooth;
}
.chat-msgs::-webkit-scrollbar{width:8px}
.chat-msgs::-webkit-scrollbar-track{background:#e0dace}
.chat-msgs::-webkit-scrollbar-thumb{
  background:linear-gradient(180deg,#a0c4e8,#6b9fd4);
  border-radius:4px;border:1px solid #8ab5e0;
}
/* Desktop */
@media(min-width:901px){
  .chat-col{flex-direction:column}
  .chat-col .cm-bubble{max-width:100%}
  .chat-col .cm-kebab-btn{opacity:0;}
  .chat-col .cm-bubble:hover .cm-kebab-btn{ opacity:1; }
  .chat-col .chat-input-row{flex-direction:row;gap:6px;align-items:center}
  .chat-col .chat-btns{flex-direction:row;align-items:center;gap:6px}
  .chat-float{ display:none !important; }
  .float-chat-panel{ display:none !important; }
}
/* Mensaje MSN */
.chat-msg{
  display:flex;gap:8px;align-items:flex-end;
  padding:4px 0;
  animation:msgIn .15s ease;
}
.chat-msg.notif-focus{
  border-radius:14px;
  padding:6px 8px;
  margin:2px -8px;
  background:linear-gradient(90deg, rgba(0,245,255,.16), rgba(138,92,255,.1));
  box-shadow:0 0 0 1px rgba(0,245,255,.35), 0 0 26px rgba(0,245,255,.14);
  animation:msgNotifPulse 2.2s ease;
}
@keyframes msgIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}
@keyframes msgNotifPulse{
  0%{transform:scale(.985);box-shadow:0 0 0 0 rgba(0,245,255,.45), 0 0 0 1px rgba(0,245,255,.5)}
  35%{transform:scale(1);box-shadow:0 0 0 10px rgba(0,245,255,0), 0 0 28px rgba(0,245,255,.22)}
  100%{transform:scale(1);box-shadow:0 0 0 0 rgba(0,245,255,0), 0 0 26px rgba(0,245,255,.14)}
}
/* Avatar estilo MSN: cuadrado con borde verde */
.cm-avatar{
  width:34px;height:34px;
  border-radius:50%;
  border:2px solid rgba(114,239,93,.7);
  object-fit:cover;flex-shrink:0;
  cursor:pointer;
  box-shadow:0 8px 14px rgba(0,0,0,.18);
  margin:0 2px 4px 0;
}
.cm-avatar:hover{border-color:#3cb000;}
/* Burbuja estilo MSN: nombre en color + texto en negro */
.cm-bubble{
  background:#fff;
  border:1px solid #c8c0b0;
  border-radius:18px 18px 18px 6px;
  padding:8px 12px 6px;
  max-width:min(82%, 420px);
  min-width:72px;
  position:relative;
  box-shadow:0 8px 16px rgba(0,0,0,.1);
  display:inline-flex;
  flex-direction:column;
  align-items:flex-start;
}
/* Triangulo MSN en la esquina */
.cm-bubble::before{
  content:'';position:absolute;
  top:8px;left:-7px;
  border:4px solid transparent;
  border-right-color:#c8c0b0;
}
.cm-bubble::after{
  content:'';position:absolute;
  top:9px;left:-5px;
  border:3px solid transparent;
  border-right-color:#fff;
}
/* Mensajes propios con fondo azul claro */
.chat-msg.own{flex-direction:row-reverse;}
.chat-msg.own .cm-bubble{
  background:#355d29;
  border-color:#4d863d;
  border-radius:18px 18px 6px 18px;
  margin-left:auto;
}
.chat-msg.own .cm-bubble::before{
  left:auto;right:-7px;
  border-right-color:transparent;
  border-left-color:#a8c8e8;
}
.chat-msg.own .cm-bubble::after{
  left:auto;right:-5px;
  border-right-color:transparent;
  border-left-color:#e8f4ff;
}
/* Nombre de usuario estilo MSN en negrita y color */
.cm-user{
  font-family:var(--font);
  font-size:.72rem;font-weight:700;
  color:#57d65b;
  margin-bottom:4px;
  letter-spacing:.04em;
  text-transform:uppercase;
}
.chat-msg.own .cm-user{ color:#dff7d7; }
/* Texto del mensaje con fuente tipo MSN */
.cm-text{
  font-family:var(--font);
  font-size:.94rem;line-height:1.45;
  word-break:break-word;white-space:pre-wrap;
  color:#17211a;
}
.chat-msg.own .cm-text{ color:#f5fff1; }
/* Hora */
.cm-time{
  font-size:.54rem;color:#738276;
  margin-top:4px;
  font-family:var(--font-m);
  display:flex;align-items:center;gap:4px;
  justify-content:flex-end;
  align-self:flex-end;
  max-width:100%;
  opacity:.78;
  line-height:1.1;
  letter-spacing:.02em;
  white-space:nowrap;
}
.chat-msg.own .cm-time{
  justify-content:flex-end;
  color:#d0e0cb;
}
/* ── Kebab menu (3 puntos) en burbuja de chat ─────────────── */
.cm-kebab-wrap{
  position:absolute;top:4px;right:5px;
  z-index:10;
}
.cm-kebab-btn{
  background:none;border:none;cursor:pointer;
  color:#bbb;font-size:1rem;line-height:1;
  padding:0 3px;border-radius:4px;
  transition:color .15s,background .15s;
  display:flex;align-items:center;justify-content:center;
  width:22px;height:22px;
  opacity:0;transition:opacity .15s;
}
.cm-bubble:hover .cm-kebab-btn,
.cm-bubble:focus-within .cm-kebab-btn,
.cm-kebab-btn.open{
  opacity:1;
}
.cm-kebab-btn:hover{ background:rgba(0,0,0,.1);color:#333; }
/* Dropdown del menú */
.cm-menu{
  position:absolute;top:26px;right:0;
  background:#fff;
  border:1px solid #d0c8bc;
  border-radius:8px;
  box-shadow:0 6px 20px rgba(0,0,0,.18);
  min-width:130px;
  overflow:hidden;
  display:none;
  z-index:999;
}
.cm-menu.open{ display:block; }
.cm-menu-item{
  display:flex;align-items:center;gap:8px;
  padding:9px 14px;
  font-size:.78rem;font-family:var(--font);
  cursor:pointer;border:none;background:none;width:100%;
  text-align:left;transition:background .12s;color:#333;
}
.cm-menu-item:hover{ background:#f0f0f0; }
.cm-menu-item.danger{ color:#d93025; }
.cm-menu-item.danger:hover{ background:#fce8e6; }
/* Para mensajes propios: menú sale a la izquierda */
.chat-msg.own .cm-menu{
  right:auto;left:0;
}
/* Espacio extra arriba de la burbuja para no pisar el texto con el botón */
.cm-bubble{ padding-top:6px; }
/* Quitar los viejos estilos de acciones */
.cm-actions{ display:none; }
/* Barra separadora de fecha (tipo MSN "Hoy") */
.msn-date-sep{
  display:flex;align-items:center;gap:8px;
  padding:6px 0;font-size:.68rem;
  color:#888;font-family:var(--font-m);
}
.msn-date-sep::before,.msn-date-sep::after{
  content:'';flex:1;height:1px;background:#c8c0b0;
}
/* Input area MSN */
/* Entrada de chat identica en escritorio y flotante */
.chat-input-area,
.fcp-input {
  flex-shrink:0;
  display:flex;flex-direction:row;
  align-items:center;gap:8px;
  padding:8px 10px calc(8px + env(safe-area-inset-bottom,0px)) 10px;
  border-top:1px solid var(--border);
  background:var(--bg2);
}
/* Textarea */
.chat-input-area textarea,
.fcp-input textarea {
  flex:1;min-width:0;
  min-height:42px;max-height:120px;
  padding:11px 16px;
  font-size:.92rem;font-family:var(--font);
  line-height:1.45;
  border-radius:22px;
  background:var(--bg3);
  border:1px solid var(--border);
  color:var(--text);
  resize:none;outline:none;
  transition:border-color .2s, box-shadow .2s;
}
.chat-input-area textarea:focus,
.fcp-input textarea:focus {
  border-color:var(--cyan);
  box-shadow:0 0 0 2px rgba(0,245,255,.1);
}
/* Botones a la derecha */
.chat-btns,
.fcp-input-btns {
  display:flex;flex-direction:row;
  align-items:center;gap:8px;flex-shrink:0;
}
/* Botones del chat con estilo gaming igual al panel de comentarios */
.chat-send-btn {
  width:48px;height:48px;border-radius:18px;
  background:linear-gradient(180deg,#6eff45,#49d62c);
  border:1px solid rgba(154,255,120,.24);
  color:#08210a;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
  box-shadow:0 10px 24px rgba(71,214,44,.22), inset 0 1px 0 rgba(255,255,255,.22);
  transition:transform .16s, box-shadow .16s, border-color .16s, filter .16s;
}
.chat-send-btn svg,.chat-sticker-btn svg,.chat-float svg,.modal-close svg,.my-sticker-del svg{
  width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;
}
.chat-send-btn:hover {
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 14px 28px rgba(71,214,44,.28), inset 0 1px 0 rgba(255,255,255,.26);
  border-color:rgba(154,255,120,.34);
  filter:saturate(1.04);
}
.chat-sticker-btn {
  width:48px;height:48px;border-radius:18px;
  background:linear-gradient(180deg,rgba(38,45,47,.96),rgba(28,34,35,.98));
  border:1px solid rgba(255,255,255,.07);
  color:#66ebf1;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
  box-shadow:0 8px 18px rgba(0,0,0,.16), inset 0 1px 0 rgba(255,255,255,.04);
  transition:border-color .16s,color .16s,transform .16s,box-shadow .16s,background .16s;
}
.chat-sticker-btn:hover {
  color:#aaf8fb;
  border-color:rgba(0,245,255,.22);
  background:linear-gradient(180deg,rgba(42,50,52,.98),rgba(31,38,39,1));
  transform:translateY(-2px) scale(1.02);
  box-shadow:0 12px 22px rgba(0,245,255,.1), inset 0 1px 0 rgba(255,255,255,.06);
}
.chat-send-btn:active,
.chat-sticker-btn:active{
  transform:translateY(0) scale(.98);
}
.chat-input-row { display:contents; } /* compatibilidad por si algo lo referencia */
.chat-img-thumb{
  max-width:100%;max-height:200px;
  border-radius:10px;display:block;margin-top:6px;
  object-fit:contain;cursor:zoom-in;
  transition:filter .2s;
}
.chat-img-thumb:hover{filter:brightness(1.05);}
.chat-sticker-thumb{
  max-width:100px;max-height:100px;
  border-radius:8px;display:block;
  margin-top:6px;cursor:zoom-in;
  transition:transform .2s;
}
.chat-sticker-thumb:hover{transform:scale(1.08);}
.chat-embed{width:100%;aspect-ratio:16/9;border:none;border-radius:6px;margin-top:4px;display:block}
/* STICKER PICKER */
.sticker-wrap{position:relative}
.sticker-picker{
  position:absolute;bottom:calc(100% + 4px);right:0;width:210px;background:var(--bg2);
  border:1px solid var(--border);border-radius:var(--r);padding:10px;
  display:flex;flex-wrap:wrap;gap:5px;z-index:300;max-height:180px;overflow-y:auto;box-shadow:0 4px 20px rgba(0,0,0,.5);
}
.s-item{width:53px;height:53px;cursor:pointer;border-radius:6px;overflow:hidden;border:1px solid var(--border);transition:border-color .2s}
.s-item:hover{border-color:var(--cyan)}
.s-item img{width:100%;height:100%;object-fit:cover}
.sticker-context-menu{
  position:fixed;z-index:1600;min-width:172px;background:var(--bg2);border:1px solid var(--border);
  border-radius:8px;padding:6px;box-shadow:0 12px 32px rgba(0,0,0,.45);display:grid;gap:4px;
}
.sticker-context-menu button{
  border:0;background:transparent;color:var(--text1);text-align:left;padding:8px 10px;border-radius:6px;
  cursor:pointer;font-size:.82rem;font-family:inherit;
}
.sticker-context-menu button:hover{background:rgba(255,255,255,.08);color:var(--cyan)}
/* MODAL */
.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.75);z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px}
.modal{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:24px;width:100%;max-width:460px;max-height:90vh;overflow-y:auto;position:relative;animation:slideUp .2s ease}
@keyframes slideUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.modal-title{font-family:var(--font-h);font-size:1.2rem;font-weight:700;letter-spacing:2px;color:var(--cyan);text-transform:uppercase;margin-bottom:18px}
.modal-close{position:absolute;top:14px;right:14px;background:var(--bg3);border:1px solid var(--border);color:var(--text2);width:28px;height:28px;border-radius:6px;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:.9rem}
.modal-close:hover{border-color:var(--red);color:var(--red)}
/* AUTH */
/* Panel de acceso sobre el foro y no en pantalla completa */
.auth-screen{
  position:fixed;inset:0;
  background:rgba(0,0,0,.6);
  backdrop-filter:blur(4px);
  display:flex;align-items:center;justify-content:center;
  z-index:2000;
  opacity:0;pointer-events:none;
  transition:opacity .25s ease;
}
.auth-screen.visible{
  opacity:1;pointer-events:all;
}
.auth-box{
  background:var(--bg1);
  border:1px solid var(--border);
  border-radius:18px;
  padding:28px 28px 24px;
  width:100%;max-width:380px;margin:16px;
  box-shadow:0 20px 60px rgba(0,0,0,.7), 0 0 0 1px rgba(0,245,255,.08);
  animation:authIn .25s ease;
  position:relative;
}
@keyframes authIn{from{transform:scale(.95) translateY(-10px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}
.auth-logo{
  font-family:var(--font-h);font-size:2rem;font-weight:700;
  letter-spacing:4px;text-align:center;margin-bottom:2px;
  background:linear-gradient(90deg,var(--cyan),var(--green));
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
}
.auth-sub{text-align:center;color:var(--text3);font-size:.72rem;margin-bottom:20px;font-family:var(--font-m);letter-spacing:2px}
.auth-tabs{display:flex;gap:0;margin-bottom:16px;border:1px solid var(--border);border-radius:var(--r);overflow:hidden}
.auth-tab{flex:1;padding:9px;text-align:center;cursor:pointer;font-weight:600;font-size:.85rem;color:var(--text2);background:transparent;border:none;transition:all .2s;font-family:var(--font)}
.auth-tab.active{background:rgba(0,245,255,.1);color:var(--cyan)}
/* Boton de acceso en la barra para usuarios no logueados */
.nav-login-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;border-radius:20px;
  background:linear-gradient(135deg,rgba(0,245,255,.15),rgba(0,245,255,.05));
  border:1px solid var(--cyan);color:var(--cyan);
  font-size:.78rem;font-weight:700;font-family:var(--font-h);
  letter-spacing:1px;cursor:pointer;
  transition:all .2s;
}
.nav-login-btn:hover{
  background:linear-gradient(135deg,rgba(0,245,255,.28),rgba(0,245,255,.12));
  box-shadow:var(--glow);
}
/* ADMIN TABLE */
.admin-table{width:100%;border-collapse:collapse;font-size:.83rem}
.admin-table th{text-align:left;padding:8px 10px;color:var(--text2);border-bottom:1px solid var(--border);font-family:var(--font-h);font-size:.75rem;letter-spacing:1px;text-transform:uppercase;font-weight:600}
.admin-table td{padding:8px 10px;border-bottom:1px solid rgba(255,255,255,.03);vertical-align:middle}
.admin-table tr:last-child td{border-bottom:none}
.admin-table tr:hover td{background:rgba(255,255,255,.02)}
/* TABS */
.tabs{display:flex;gap:4px;margin-bottom:16px;flex-wrap:wrap}
.tab{padding:6px 14px;border:1px solid var(--border);border-radius:var(--r);font-size:.82rem;font-weight:600;cursor:pointer;color:var(--text2);background:var(--bg2);transition:all .2s}
.tab.active{background:rgba(0,245,255,.08);border-color:var(--cyan);color:var(--cyan)}
/* STICKER MANAGER */
.my-stickers{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.my-sticker{position:relative;width:54px;height:54px}
.my-sticker img{width:100%;height:100%;object-fit:cover;border-radius:8px;border:1px solid var(--border)}
.my-sticker-del{position:absolute;top:-5px;right:-5px;background:var(--red);border:none;color:#fff;border-radius:50%;width:16px;height:16px;font-size:.6rem;cursor:pointer;display:flex;align-items:center;justify-content:center}
/* TOAST */
.toast{
  position:fixed;bottom:20px;left:50%;transform:translateX(-50%);z-index:4000;
  background:var(--bg2);border:1px solid var(--cyan);border-radius:8px;
  padding:10px 20px;font-size:.82rem;color:var(--text);box-shadow:var(--glow);
  animation:toastIn .3s ease;font-family:var(--font-m);letter-spacing:.4px;pointer-events:none;
}
.toast.err{border-color:var(--red);box-shadow:0 0 12px rgba(255,45,85,.4)}
@keyframes toastIn{from{opacity:0;transform:translateX(-50%) translateY(8px)}to{opacity:1;transform:translateX(-50%) translateY(0)}}
/* FEED INTERESTS */
.feed-interest-overlay{position:fixed;inset:0;z-index:3900;display:flex;align-items:center;justify-content:center;padding:18px;background:rgba(0,0,0,.72);backdrop-filter:blur(6px);animation:feedFade .18s ease}
.feed-interest-modal{width:min(760px,100%);max-height:min(88vh,760px);overflow:auto;background:linear-gradient(180deg,rgba(17,28,39,.98),rgba(8,13,20,.98));border:1px solid var(--border);border-radius:12px;padding:22px;box-shadow:0 24px 70px rgba(0,0,0,.72),0 0 0 1px rgba(0,245,255,.08);animation:feedRise .2s ease}
.feed-interest-head{display:flex;justify-content:space-between;gap:14px;margin-bottom:18px}
.feed-interest-kicker{font-family:var(--font-m);font-size:.72rem;letter-spacing:2px;text-transform:uppercase;color:var(--cyan)}
.feed-interest-modal h2{margin:4px 0 0;font-family:var(--font-h);font-size:1.35rem;color:var(--text);letter-spacing:0}
.feed-interest-copy{margin:7px 0 0;color:var(--text2);font-size:.86rem;line-height:1.45;max-width:620px}
.feed-interest-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.feed-interest-card{min-height:132px;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.035);color:var(--text);display:grid;align-content:center;justify-items:center;gap:6px;cursor:pointer;transition:transform .15s ease,border-color .15s ease,background .15s ease,box-shadow .15s ease;position:relative;overflow:hidden}
.feed-interest-card:hover{transform:translateY(-2px);border-color:rgba(0,245,255,.5)}
.feed-interest-card.learned{border-color:rgba(255,212,121,.34);background:linear-gradient(180deg,rgba(255,212,121,.08),rgba(255,255,255,.035))}
.feed-interest-card.selected{background:rgba(0,245,255,.18);border-color:var(--cyan);box-shadow:0 0 0 2px rgba(0,245,255,.36),var(--glow);transform:translateY(-2px)}
.feed-interest-card.selected .feed-interest-icon{background:var(--cyan);color:#051011;box-shadow:0 0 16px rgba(0,245,255,.42)}
.feed-interest-card.selected .feed-interest-name{color:var(--cyan)}
.feed-interest-icon{width:38px;height:38px;border-radius:8px;display:grid;place-items:center;background:rgba(0,245,255,.08);font-size:1.1rem}
.feed-interest-name{font-weight:800;font-size:.86rem;text-align:center}
.feed-interest-source{min-height:16px;padding:3px 7px;border-radius:999px;background:rgba(255,255,255,.07);color:var(--text2);font-size:.66rem;font-weight:800;text-align:center}
.feed-interest-card.learned .feed-interest-source{background:rgba(255,212,121,.16);color:var(--yellow)}
.feed-interest-card.selected .feed-interest-source{background:rgba(0,245,255,.16);color:var(--cyan)}
.feed-interest-detail{font-size:.68rem;color:var(--text3);text-align:center;min-height:14px}
.feed-interest-meter{width:74%;height:5px;border-radius:999px;background:rgba(255,255,255,.08);overflow:hidden}
.feed-interest-meter i{display:block;height:100%;width:0;border-radius:inherit;background:linear-gradient(90deg,var(--cyan),var(--yellow));box-shadow:0 0 10px rgba(0,245,255,.28)}
.feed-interest-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px;flex-wrap:wrap}
@keyframes feedFade{from{opacity:0}to{opacity:1}}
@keyframes feedRise{from{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}
@media (max-width:720px){.feed-interest-modal{padding:18px}.feed-interest-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.feed-interest-card{min-height:126px}.feed-interest-actions{display:grid;grid-template-columns:1fr;width:100%}}
.np-category-row{display:flex;align-items:center;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.np-category-row label{font-family:var(--font-m);font-size:.72rem;letter-spacing:1.4px;text-transform:uppercase;color:var(--cyan)}
.np-category-select{min-width:210px;flex:0 1 280px;background:var(--bg1);border:1px solid var(--border);border-radius:8px;color:var(--text1);font-size:.86rem;padding:8px 10px;outline:none}
.np-category-select:focus{border-color:var(--cyan);box-shadow:var(--glow)}
.np-category-combobox{position:relative;min-width:210px;flex:1 1 280px}
.np-category-input{width:100%;background:var(--bg1);border:1px solid var(--border);border-radius:8px;color:var(--text);font-size:.86rem;padding:10px 12px;outline:none}
.np-category-input:focus{border-color:var(--cyan);box-shadow:var(--glow)}
.np-category-suggest{position:absolute;left:0;right:0;top:calc(100% + 6px);z-index:60;display:none;overflow:hidden;border:1px solid var(--border);border-radius:10px;background:rgba(8,13,20,.98);box-shadow:0 18px 38px rgba(0,0,0,.42)}
.np-category-suggest.open{display:block}
.np-category-suggest button{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;border:0;background:transparent;color:var(--text);padding:10px 12px;text-align:left;cursor:pointer}
.np-category-suggest button:hover{background:rgba(0,245,255,.1);color:var(--cyan)}
.np-category-suggest button span{font-size:.68rem;color:var(--text3)}
.np-category-suggest button.create{color:var(--yellow);font-weight:900}
.np-category-chips{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}
.np-category-chip{display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(0,245,255,.24);border-radius:999px;background:rgba(0,245,255,.1);color:var(--cyan);font-weight:900;font-size:.78rem;padding:5px 8px}
.np-category-chip button{border:0;background:transparent;color:inherit;font-weight:900;cursor:pointer;padding:0 2px}
/* CHAT FLOAT BTN */
.float-chat-backdrop{
  position:fixed;
  inset:0;
  z-index:285;
  background:rgba(3,8,14,.42);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  opacity:0;
  pointer-events:none;
  transition:opacity .24s ease;
}
.float-chat-backdrop.open{
  opacity:1;
  pointer-events:auto;
}
.chat-float{
  position:fixed;
  bottom:calc(20px + env(safe-area-inset-bottom, 0px) + var(--keyboard-offset));
  left:auto;
  right:max(18px, calc(env(safe-area-inset-right, 0px) + 14px));
  z-index:360;
  min-width:64px;
  height:64px;
  padding:0 16px 0 8px;
  border-radius:999px;
  background:linear-gradient(135deg,rgba(8,20,34,.95),rgba(16,38,56,.98));
  border:1px solid rgba(0,245,255,.22);
  cursor:pointer;
  box-shadow:0 18px 40px rgba(0,0,0,.42), 0 0 0 1px rgba(0,245,255,.06);
  display:none;
  align-items:center;
  justify-content:center;
  gap:10px;
  transition:transform .2s ease, box-shadow .25s ease, opacity .22s ease;
  user-select:none;
  overflow:visible;
  transform:translateY(0);
}
.chat-float.is-open{
  opacity:0;
  pointer-events:none;
  transform:translateY(14px) scale(.82);
}
.chat-float:active{transform:scale(.94)}
.chat-float:hover{box-shadow:0 20px 44px rgba(0,0,0,.5), 0 0 0 1px rgba(0,245,255,.12)}
.chat-float-ring{
  position:absolute;
  inset:-6px;
  border-radius:999px;
  border:1px solid rgba(0,245,255,.14);
  opacity:.9;
  pointer-events:none;
  animation:chatFloatPulse 2.8s ease-out infinite;
}
.chat-float-core{
  width:48px;
  height:48px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#061118;
  background:linear-gradient(135deg,#7affd8 0%, #00f5ff 58%, #66b3ff 100%);
  box-shadow:0 10px 22px rgba(0,245,255,.34), inset 0 1px 0 rgba(255,255,255,.65);
  flex-shrink:0;
}
.chat-float-core svg{width:22px;height:22px;fill:currentColor}
.chat-float-label{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  line-height:1.05;
  color:#e8fbff;
  text-align:left;
}
.chat-float-label strong{
  font-size:.82rem;
  font-weight:700;
  letter-spacing:.3px;
}
.chat-float-label span{
  font-size:.62rem;
  color:rgba(208,232,245,.78);
}
@keyframes chatFloatPulse{
  0%{transform:scale(.94);opacity:.55}
  70%{transform:scale(1.05);opacity:0}
  100%{transform:scale(1.05);opacity:0}
}
@keyframes chatFloatBob{
  0%,100%{transform:translateY(0)}
  50%{transform:translateY(-4px)}
}
@media(max-width:900px){.chat-float{display:flex}}
@media(min-width:901px){
  .float-chat-backdrop{ display:none !important; }
  .chat-float{ display:flex !important; }
  .float-chat-panel{ display:flex !important; }
}
.float-chat-panel{
  position:fixed;
  bottom:calc(92px + env(safe-area-inset-bottom, 0px) + var(--keyboard-offset));
  left:auto;
  right:max(14px, env(safe-area-inset-right, 0px));
  width:min(680px,calc(100vw - 32px));
  max-width:calc(100vw - 32px);
  height:min(520px,calc(var(--vvh) - 150px));
  max-height:calc(var(--vvh) - 150px);
  background:linear-gradient(180deg,#0d1823 0%, #0a121b 100%);
  border:1px solid rgba(0,245,255,.22);
  border-radius:24px;
  display:flex;
  flex-direction:column;
  z-index:290;
  box-shadow:0 18px 48px rgba(0,0,0,.62), 0 0 0 1px rgba(0,245,255,.08);
  opacity:0;
  transform:translateY(40px) scale(.96);
  transform-origin:right bottom;
  pointer-events:none;
  transition:opacity .24s ease, transform .34s cubic-bezier(.22,1,.36,1);
}
.float-chat-panel.open{
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:all;
}
.fcp-header{
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:10px 14px 12px;
  border-bottom:1px solid rgba(0,245,255,.14);
  flex-shrink:0;
  border-radius:24px 24px 0 0;
  background:linear-gradient(180deg,rgba(18,40,58,.98),rgba(11,23,36,.96));
}
.fcp-handle{
  width:52px;
  height:4px;
  border-radius:999px;
  background:rgba(208,232,245,.18);
  margin:0 auto 10px;
}
.fcp-title-wrap{display:flex;align-items:center;gap:10px;min-width:0}
.fcp-status{
  width:10px;
  height:10px;
  border-radius:50%;
  background:#6bff9a;
  box-shadow:0 0 0 5px rgba(107,255,154,.12), 0 0 14px rgba(107,255,154,.55);
  flex-shrink:0;
}
.fcp-title{font-family:var(--font-h);font-size:.95rem;font-weight:700;letter-spacing:1px;color:#f2fbff}
.fcp-subtitle{font-size:.68rem;color:rgba(208,232,245,.72);margin-top:2px}
.fcp-close{
  width:42px;
  height:42px;
  border-radius:16px;
  border:1px solid rgba(255,215,10,.38);
  background:linear-gradient(180deg,rgba(255,224,102,.96),rgba(255,196,0,.84));
  color:#231500;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  position:relative;
  overflow:hidden;
  cursor:pointer;
  box-shadow:0 10px 24px rgba(0,0,0,.22), 0 0 0 1px rgba(255,215,10,.14), 0 0 22px rgba(255,215,10,.22), inset 0 1px 0 rgba(255,255,255,.32);
  backdrop-filter:blur(10px);
  -webkit-backdrop-filter:blur(10px);
  transition:transform .2s ease, background .2s ease, border-color .2s ease, box-shadow .2s ease, filter .2s ease;
  animation:fcp-close-pulse 2.2s ease-in-out infinite;
}
.fcp-close-glow{
  position:absolute;
  inset:auto auto -12px -10px;
  width:28px;
  height:28px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,215,10,.62), rgba(255,215,10,0));
  opacity:.8;
  pointer-events:none;
}
.fcp-close svg{
  width:18px;
  height:18px;
  position:relative;
  z-index:1;
}
.fcp-close:hover{
  transform:translateY(-2px) scale(1.04);
  background:linear-gradient(180deg,rgba(255,239,147,1),rgba(255,204,0,.92));
  border-color:rgba(255,215,10,.62);
  box-shadow:0 16px 30px rgba(0,0,0,.28), 0 0 0 1px rgba(255,215,10,.2), 0 0 24px rgba(255,215,10,.34);
  filter:saturate(1.08);
}
.fcp-close:hover svg{
  transform:rotate(90deg);
}
.fcp-close:active{
  transform:scale(.96);
  animation:none;
}
@keyframes fcp-close-pulse{
  0%,100%{ box-shadow:0 10px 24px rgba(0,0,0,.22), 0 0 0 1px rgba(255,215,10,.14), 0 0 18px rgba(255,215,10,.2), inset 0 1px 0 rgba(255,255,255,.32); }
  50%{ box-shadow:0 12px 28px rgba(0,0,0,.24), 0 0 0 1px rgba(255,215,10,.24), 0 0 28px rgba(255,215,10,.36), inset 0 1px 0 rgba(255,255,255,.4); }
}
.fcp-msgs{
  flex:1;
  overflow-y:auto;
  padding:10px 12px;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:
    radial-gradient(circle at top, rgba(0,245,255,.08), transparent 38%),
    linear-gradient(180deg,#101b26 0%, #0c141d 100%);
}
.fcp-input{
  padding:8px 10px;
  padding-bottom:calc(12px + env(safe-area-inset-bottom, 0px));
  border-top:1px solid rgba(0,245,255,.14);
  flex-shrink:0;
  display:flex;gap:6px;align-items:flex-end;
  background:rgba(9,18,27,.95);
  border-radius:0 0 24px 24px;
}
.fcp-input textarea{
  flex:1;min-height:36px;max-height:90px;padding:8px 12px;
  font-size:.85rem;border-radius:20px;resize:none;
  background:var(--bg3);border:1px solid var(--border);
}
.fcp-input textarea:focus{border-color:var(--cyan)}
.fcp-input-btns{display:flex;flex-direction:row;gap:4px;align-items:flex-end}
#fcp-sticker-picker{
  position:absolute;
  bottom:calc(100% + 8px) !important;
  right:0 !important;
  left:auto !important;
  width:210px;
}
@media(max-width:420px){
  .chat-float{
    width:62px;
    min-width:62px;
    padding:0;
    border-radius:50%;
    left:auto;
    right:calc(12px + env(safe-area-inset-right, 0px));
    transform:none;
  }
  .chat-float-label{display:none}
  .chat-float.is-open{ transform:translateY(14px) scale(.82); }
  .chat-float:active{ transform:scale(.94); }
}
/* MISC */
.flex{display:flex}.ic{align-items:center}.g2{gap:8px}.g3{gap:12px}.f1{flex:1}.jb{justify-content:space-between}
.tms{font-size:.75rem}.txs{font-size:.68rem}.tmut{color:var(--text2)}.tdim{color:var(--text3)}
.tcyan{color:var(--cyan)}.tgreen{color:var(--green)}.tred{color:var(--red)}
.mono{font-family:var(--font-m)}
.mt1{margin-top:4px}.mt2{margin-top:8px}.mt3{margin-top:12px}.mb1{margin-bottom:4px}.mb2{margin-bottom:8px}
.w100{width:100%}.divider{height:1px;background:var(--border);margin:12px 0}
.ol-dot{width:8px;height:8px;border-radius:50%;background:var(--green);box-shadow:var(--glow-g);flex-shrink:0}
.empty-st{text-align:center;padding:40px 20px;color:var(--text3)}
.confirm-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.8);z-index:5000;
  display:flex;align-items:center;justify-content:center;padding:20px;
  animation:toastIn .15s ease;
}
.confirm-box{
  background:var(--bg2);border:1px solid var(--border);border-radius:12px;
  padding:24px;width:100%;max-width:320px;text-align:center;
}
.confirm-msg{font-size:.95rem;margin-bottom:20px;line-height:1.5;color:var(--text)}
.confirm-btns{display:flex;gap:10px;justify-content:center}
.empty-icon{font-size:2.5rem;margin-bottom:10px;opacity:.5}
.profile-cover{height:90px;background:linear-gradient(135deg,var(--bg3),var(--bg4));position:relative;border-radius:var(--r) var(--r) 0 0;overflow:hidden;display:flex;align-items:center;justify-content:center}
.profile-cover-txt{font-family:var(--font-h);font-size:1.2rem;letter-spacing:4px;color:rgba(0,245,255,.15);font-weight:700}
.av{border-radius:50%;object-fit:cover;flex-shrink:0}
/* Carga de archivo con input oculto sobre boton visible */
.file-upload-wrap{position:relative;display:inline-flex;overflow:hidden;vertical-align:middle}
.file-upload-wrap.w100{display:flex;width:100%}
.file-upload-wrap input[type=file]{
  position:absolute;top:0;left:0;width:100%;height:100%;
  opacity:0;cursor:pointer;font-size:100px;
/* Un font-size grande hace que el area tactil cubra todo el boton */
}
.file-upload-wrap .file-btn,
.file-upload-wrap .btn{
  pointer-events:none;/* El toque va al input y no al boton */
  flex:1;
}
/* PERFIL MEJORADO */
.profile-wrap{background:var(--bg2);border:1px solid var(--border);border-radius:var(--r);overflow:hidden;margin-bottom:16px}
.profile-cover-new{
  height:120px;
  background:linear-gradient(135deg,#060a0f 0%,#0c1e30 50%,#0a1520 100%);
  position:relative;overflow:hidden;
}
.profile-cover-new::before{
  content:'FOROMUDOK';font-family:var(--font-h);font-size:3rem;font-weight:700;
  letter-spacing:6px;color:rgba(0,245,255,0.06);
  position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  white-space:nowrap;pointer-events:none;
}
.profile-cover-new::after{
  content:'';position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 60%,rgba(6,10,15,0.8) 100%);
}
/* Avatar grande sobre el cover */
.profile-avatar-area{
  position:relative;
  display:flex;align-items:flex-end;gap:14px;
  padding:0 20px 14px;
  margin-top:-44px;
}
.profile-av-wrap{
  position:relative;flex-shrink:0;
  width:88px;height:88px;
}
.profile-av-img{
  width:88px;height:88px;border-radius:50%;
  border:3px solid var(--bg1);
  object-fit:cover;
  box-shadow:0 0 0 2px var(--cyan),var(--glow);
  background:var(--bg3);
  display:block;
}
.profile-av-edit-btn{
  position:absolute;bottom:2px;right:2px;
  width:26px;height:26px;border-radius:50%;
  background:var(--cyan);border:2px solid var(--bg1);
  display:flex;align-items:center;justify-content:center;
  font-size:.75rem;cursor:pointer;z-index:5;
  box-shadow:0 2px 8px rgba(0,0,0,.5);
  overflow:hidden; /* para el file-upload-wrap */
  transition:transform .15s, box-shadow .15s, background .15s;
}
.profile-av-edit-btn:hover{
  transform:scale(1.06);
  background:#4ff7ff;
  box-shadow:0 4px 12px rgba(0,0,0,.55), 0 0 14px rgba(0,245,255,.38);
}
.profile-av-edit-btn svg{width:12px;height:12px;fill:#03131a;pointer-events:none}
.profile-av-edit-btn .file-upload-wrap{
  position:absolute;inset:0;border-radius:50%;
}
.profile-av-edit-btn .file-upload-wrap input[type=file]{
  position:absolute;inset:0;opacity:0;cursor:pointer;font-size:100px;border-radius:50%;
}
.profile-av-edit-btn .file-upload-wrap .file-btn{
  width:100%;height:100%;display:flex;align-items:center;justify-content:center;
  font-size:.75rem;color:#000;pointer-events:none;font-weight:700;
}
.profile-info-area{flex:1;min-width:0;padding-top:20px}
.profile-display-name{font-size:1.2rem;font-weight:800;color:var(--text);line-height:1.2}
.profile-username-tag{font-family:var(--font-m);font-size:.72rem;color:var(--text3);margin-top:2px}
.profile-desc-text{font-size:.85rem;color:var(--text2);margin-top:6px;line-height:1.5}
.profile-since{font-family:var(--font-m);font-size:.68rem;color:var(--text3);margin-top:6px}
.profile-stats{display:flex;gap:16px;padding:10px 20px 14px;border-top:1px solid var(--border)}
.profile-stat{text-align:center}
.profile-stat-num{font-family:var(--font-h);font-size:1.1rem;font-weight:700;color:var(--cyan)}
.profile-stat-lbl{font-size:.68rem;color:var(--text3);margin-top:1px}
.profile-friends{
  border-top:1px solid var(--border);
  padding:14px 20px 18px;
  cursor:pointer;
}
.profile-friends:focus{outline:2px solid var(--cyan);outline-offset:3px}
.profile-friends-head{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  margin-bottom:12px;flex-wrap:wrap;
}
.profile-friends-title{
  font-size:.8rem;font-weight:800;letter-spacing:1.4px;text-transform:uppercase;color:var(--cyan);
}
.profile-friends-count{
  font-family:var(--font-m);font-size:.68rem;color:var(--text3);
}
.profile-friends-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px;
}
.profile-friend-card{
  display:flex;flex-direction:column;gap:10px;
  min-width:0;padding:10px 12px;border-radius:12px;
  background:linear-gradient(180deg,rgba(255,255,255,.04),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.06);
  transition:border-color .15s,transform .15s,box-shadow .15s,background .15s;
}
.profile-friend-card:hover{
  border-color:rgba(0,245,255,.24);
  background:linear-gradient(180deg,rgba(0,245,255,.07),rgba(255,255,255,.02));
  transform:translateY(-1px);
  box-shadow:0 0 16px rgba(0,245,255,.08);
}
.profile-friend-main{
  display:flex;align-items:center;gap:10px;
  min-width:0;background:none;border:none;padding:0;
  color:inherit;cursor:pointer;text-align:left;
}
.profile-friend-avatar{
  width:42px;height:42px;border-radius:50%;object-fit:cover;flex-shrink:0;
  border:2px solid rgba(0,245,255,.18);background:var(--bg3);
}
.profile-friend-meta{min-width:0;display:flex;flex-direction:column;gap:2px}
.profile-friend-name{
  font-size:.8rem;font-weight:700;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.profile-friend-user{
  font-size:.68rem;color:var(--text3);font-family:var(--font-m);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.profile-friend-actions{
  display:flex;gap:6px;flex-wrap:wrap;
}
.profile-friend-action{
  display:inline-flex;align-items:center;justify-content:center;gap:5px;
  min-height:28px;padding:0 10px;border-radius:999px;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);
  color:var(--text2);font-size:.7rem;font-weight:700;font-family:var(--font);
  cursor:pointer;transition:border-color .15s,color .15s,background .15s,transform .15s;
}
.profile-friend-action-icon{display:inline-grid;place-items:center;line-height:0}
.profile-friend-action svg{display:block;width:13px;height:13px;fill:currentColor}
.profile-friend-action:hover{transform:translateY(-1px)}
.profile-friend-action.chat:hover{
  color:var(--cyan);border-color:rgba(0,245,255,.24);background:rgba(0,245,255,.06);
}
.profile-friend-action.remove:hover{
  color:var(--red);border-color:rgba(255,45,85,.24);background:rgba(255,45,85,.06);
}
.profile-friends-empty{
  padding:18px 14px;border-radius:12px;border:1px dashed rgba(255,255,255,.08);
  color:var(--text3);font-size:.8rem;text-align:center;background:rgba(255,255,255,.02);
}
.profile-friends-open-more{width:100%;border:1px solid var(--border);border-radius:8px;background:rgba(0,245,255,.08);color:var(--cyan);font-weight:900;padding:10px;cursor:pointer}
.profile-friends-modal-overlay{position:fixed;inset:0;z-index:4200;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(0,0,0,.72);backdrop-filter:blur(7px)}
.profile-friends-modal{width:min(720px,100%);max-height:min(88vh,760px);display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,rgba(17,28,39,.98),rgba(8,13,20,.98));box-shadow:0 24px 70px rgba(0,0,0,.72),var(--glow)}
.profile-friends-modal-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px;border-bottom:1px solid var(--border)}
.profile-friends-modal-titlebar{display:flex;align-items:center;gap:12px;min-width:0}
.profile-friends-modal-title-icon{width:40px;height:40px;display:grid;place-items:center;flex-shrink:0;border:1px solid var(--border);border-radius:12px;background:rgba(0,245,255,.08);color:var(--cyan)}
.profile-friends-modal-title-icon svg{display:block;width:19px;height:19px;fill:currentColor}
.profile-friends-modal-kicker{font-family:var(--font-m);font-size:.7rem;letter-spacing:2px;text-transform:uppercase;color:var(--cyan)}
.profile-friends-modal h2{margin:4px 0 0;font-family:var(--font-h);font-size:1.35rem;color:var(--text)}
.profile-friends-modal-close{width:34px;height:34px;display:grid;place-items:center;border:1px solid var(--border);border-radius:50%;background:rgba(255,255,255,.06);color:var(--text);font-weight:900;cursor:pointer}
.profile-friends-modal-close svg{display:block;width:16px;height:16px}
.profile-friends-search-wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;padding:14px 18px;border-bottom:1px solid rgba(255,255,255,.07)}
.profile-friends-search-shell{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:9px;min-height:40px;border:1px solid var(--border);border-radius:999px;background:rgba(0,0,0,.24);padding:0 14px;color:var(--text3)}
.profile-friends-search-icon{display:grid;place-items:center;line-height:0}
.profile-friends-search-icon svg{display:block;width:15px;height:15px}
.profile-friends-search{width:100%;min-height:38px;border:0;border-radius:0;background:transparent;color:var(--text);padding:0;outline:none}
.profile-friends-search-shell:focus-within{border-color:var(--cyan);box-shadow:var(--glow)}
.profile-friends-modal-count{font-family:var(--font-m);font-size:.66rem;color:var(--text3);white-space:nowrap}
.profile-friends-modal-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding:16px;overflow:auto}
.profile-friend-card--modal{min-height:96px}
@media (max-width:720px){.profile-friends-modal{max-height:86vh}.profile-friends-modal-list{grid-template-columns:1fr}.profile-friends-search-wrap{grid-template-columns:1fr}.profile-friends-modal-count{justify-self:end}}
/* Formulario de edicion mejorado */
#profile-edit-form{border:1px solid var(--cyan);box-shadow:0 0 20px rgba(0,245,255,0.08)}
.avatar-edit-preview{
  display:flex;align-items:center;gap:14px;
  background:var(--bg3);border:1px solid var(--border);
  border-radius:var(--r);padding:12px;margin-bottom:8px;
}
.avatar-edit-preview img{width:64px;height:64px;border-radius:50%;object-fit:cover;border:2px solid var(--cyan);box-shadow:var(--glow)}
.avatar-edit-preview .file-upload-wrap{flex:1}
.avatar-edit-preview .file-btn{width:100%;justify-content:center;border-radius:20px}
@keyframes slideDown{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}
.post-card.post-card--enter{animation:slideDown .2s ease;}
@keyframes counterBump{0%{transform:scale(1)}45%{transform:scale(1.16)}100%{transform:scale(1)}}
.react-count.counter-bump,
[id^="ccount-"].counter-bump{animation:counterBump .24s ease;display:inline-block;}
@keyframes pulse {
  0%,100%{ opacity:1; transform:scale(1); }
  50%{ opacity:.5; transform:scale(1.3); }
}
/* Chat flotante con animación de notificación */
.chat-float.has-notif {
  animation: chatBounce 0.6s ease infinite alternate;
}
@keyframes chatBounce {
  0%   { transform: scale(1); box-shadow: var(--glow); }
  100% { transform: scale(1.15); box-shadow: 0 0 20px rgba(0,245,255,0.8), 0 0 40px rgba(0,245,255,0.4); }
}
.chat-float .notif-badge {
  position: absolute;
  top: -4px; right: -4px;
  background: var(--red);
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  font-family: var(--font-m);
  min-width: 18px; height: 18px;
  border-radius: 9px;
  display: flex; align-items: center; justify-content: center;
  border: 2px solid var(--bg0);
  padding: 0 3px;
  box-shadow: 0 0 8px rgba(255,45,85,0.6);
}
.chat-float .msn-unread-badge {
  position: absolute;
  top: -4px;
  right: -4px;
  z-index: 5;
  background: var(--red);
  color: #fff;
  font-size: .6rem;
  font-weight: 700;
  font-family: var(--font-m);
  min-width: 18px;
  height: 18px;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--bg0);
  padding: 0 3px;
  box-shadow: 0 0 8px rgba(255,45,85,0.6);
}
.chat-float.has-msn-unread {
  animation: chatBounce 0.6s ease infinite alternate;
}
/* Asegurar position:relative en el boton para que el badge se posicione bien */
.chat-float { position: fixed; }
/* PULL TO REFRESH */
.ptr-indicator {
  position: fixed;
  top: calc(56px + env(safe-area-inset-top, 0px));
  left: 50%;
  transform: translateX(-50%) translateY(-80px);
  z-index: 500;
  background: var(--bg2);
  border: 1px solid var(--border);
  border-radius: 50px;
  padding: 8px 18px;
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: .82rem;
  color: var(--cyan);
  font-family: var(--font-m);
  letter-spacing: 1px;
  box-shadow: var(--glow);
  transition: transform .2s ease, opacity .2s ease;
  opacity: 0;
  pointer-events: none;
  white-space: nowrap;
}
.ptr-indicator.ptr-pulling {
  opacity: 1;
  transform: translateX(-50%) translateY(10px);
}
.ptr-indicator.ptr-releasing {
  opacity: 1;
  transform: translateX(-50%) translateY(10px);
  color: var(--green);
  border-color: var(--green);
  box-shadow: var(--glow-g);
}
.ptr-indicator.ptr-loading {
  opacity: 1;
  transform: translateX(-50%) translateY(10px);
}
.ptr-spinner {
  width: 14px; height: 14px;
  border: 2px solid currentColor;
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin .6s linear infinite;
  flex-shrink: 0;
}
@keyframes spin { to { transform: rotate(360deg); } }
.dm-typing-indicator {
  display: none;
  align-items: center;
  gap: 5px;
  min-height: 24px;
  padding: 0 14px 8px;
  color: var(--text3);
  font-size: .72rem;
  font-weight: 700;
}
.dm-typing-indicator.active { display: flex; }
.dm-typing-indicator i {
  width: 5px;
  height: 5px;
  border-radius: 999px;
  background: var(--cyan);
  opacity: .35;
  animation: dmTypingPulse 1s ease-in-out infinite;
}
.dm-typing-indicator i:nth-child(3) { animation-delay: .14s; }
.dm-typing-indicator i:nth-child(4) { animation-delay: .28s; }
@keyframes dmTypingPulse {
  0%, 100% { opacity: .35; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
}
.msn-chat-buzz-btn {
  flex: 0 0 auto;
  width: 32px;
  height: 32px;
  border: 1px solid var(--border);
  border-radius: 10px;
  background: var(--bg3);
  color: var(--text);
  font-weight: 900;
  cursor: pointer;
}
.msn-chat-buzz-btn:hover {
  border-color: var(--cyan);
  color: var(--cyan);
}
.msn-chat-buzz-btn:disabled {
  cursor: wait;
  opacity: .72;
}
.dm-buzz-shake {
  animation: dmBuzzEarthquake 1.05s cubic-bezier(.36,.07,.19,.97) both;
  transform-origin: center center;
  will-change: transform, filter;
}
.dm-buzz-earthquake {
  filter: saturate(1.18) contrast(1.04);
}
@keyframes dmBuzzEarthquake {
  0%, 100% { transform: translate3d(0,0,0) rotate(0deg); }
  8% { transform: translate3d(-9px, 3px, 0) rotate(-1.4deg); }
  16% { transform: translate3d(10px, -4px, 0) rotate(1.2deg); }
  24% { transform: translate3d(-13px, 5px, 0) rotate(-1.8deg); }
  32% { transform: translate3d(12px, -6px, 0) rotate(1.7deg); }
  40% { transform: translate3d(-10px, 4px, 0) rotate(-1.3deg); }
  48% { transform: translate3d(9px, -3px, 0) rotate(1deg); }
  56% { transform: translate3d(-7px, 3px, 0) rotate(-.8deg); }
  64% { transform: translate3d(6px, -2px, 0) rotate(.7deg); }
  72% { transform: translate3d(-4px, 2px, 0) rotate(-.45deg); }
  84% { transform: translate3d(3px, -1px, 0) rotate(.25deg); }
}
.msn-group-image-preview {
  width: min(360px, 78vw);
  aspect-ratio: 1;
  display: grid;
  place-items: center;
  margin: 0 auto;
  border: 1px solid var(--border);
  border-radius: 12px;
  background: var(--bg3);
  overflow: hidden;
}
.msn-group-image-preview img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.msn-chat-peer img[onclick] {
  cursor: zoom-in;
}
/* PANEL LIMPIEZA CHAT */
.limpieza-grid{
  display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));
  gap:8px;margin:10px 0;
}
.limpieza-opt{
  background:var(--bg3);border:1px solid var(--border);border-radius:10px;
  padding:10px 8px;text-align:center;cursor:pointer;
  transition:all .2s;
}
.limpieza-opt:hover,.limpieza-opt.selected{
  border-color:var(--cyan);background:rgba(0,245,255,.08);color:var(--cyan);
}
.limpieza-opt-icon{font-size:1.3rem;display:block;margin-bottom:4px}
.limpieza-opt-label{font-size:.72rem;font-weight:700;letter-spacing:.5px;text-transform:uppercase}
.limpieza-opt-sub{font-size:.62rem;color:var(--text3);margin-top:2px}
/* Calendario inline */
.cal-wrap{
  background:var(--bg3);border:1px solid var(--border);border-radius:12px;
  padding:14px;margin-top:8px;display:none;
}
.cal-wrap.open{display:block}
.cal-wrap input[type=date]{
  width:100%;padding:9px 12px;border-radius:8px;
  background:var(--bg2);border:1px solid var(--border);
  color:var(--text);font-size:.88rem;
  color-scheme:dark;
}
.cal-wrap input[type=date]:focus{border-color:var(--cyan)}
/* BOOKMARKS BAR */
.bookmarks-bar{
  display:flex;align-items:center;gap:4px;
  padding:3px 14px;
  padding-left:max(14px, env(safe-area-inset-left));
  background:var(--bg2);
  border-bottom:1px solid var(--border);
  overflow-x:auto;overflow-y:hidden;
  scrollbar-width:none;flex-shrink:0;
  -webkit-overflow-scrolling:touch;
}
.bookmarks-bar::-webkit-scrollbar{display:none}
.bookmark-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:3px 10px;border-radius:6px;
  background:transparent;border:none;
  color:var(--text2);font-size:.75rem;
  cursor:pointer;white-space:nowrap;flex-shrink:0;
  transition:background .15s, color .15s;
  text-decoration:none;
}
.bookmark-btn:hover{
  background:var(--bg3);color:var(--text);
}
.bookmark-btn svg,.bookmark-btn img{
  width:14px;height:14px;flex-shrink:0;border-radius:2px;
}
.bookmark-sep{
  width:1px;height:16px;background:var(--border);
  flex-shrink:0;margin:0 2px;
}
/* NubeMudok icon color */
.nube-icon{ color:var(--cyan) }
/* GUEST UI */
/* Banner invitando a loguear sobre el chat y el input del post */
.guest-banner{
  background:linear-gradient(135deg,rgba(0,245,255,.08),rgba(0,200,212,.04));
  border:1px solid rgba(0,245,255,.2);
  border-radius:12px;padding:14px 16px;
  text-align:center;margin:8px 10px;
  display:none;
}
.guest-banner p{font-size:.82rem;color:var(--text2);margin-bottom:10px;line-height:1.5}
.guest-banner .flex{justify-content:center;gap:8px}
/* Blur en el chat para invitados */
.chat-msgs.guest-blur{
  filter:blur(4px);
  pointer-events:none;
  user-select:none;
}
/* Ocultar el input del chat para invitados */
.chat-input-area.guest-hidden,
.fcp-input.guest-hidden{
  display:none!important;
}
/* Botones navbar para invitados */
.nav-guest-btns{
  display:none;
  align-items:center;gap:6px;
}
.nav-guest-btns .nav-login-btn{
  padding:5px 12px;font-size:.75rem;
}
.nav-guest-register{
  display:inline-flex;align-items:center;gap:5px;
  padding:5px 12px;border-radius:20px;
  background:transparent;
  border:1px solid var(--border);color:var(--text2);
  font-size:.75rem;font-weight:700;font-family:var(--font-h);
  letter-spacing:.5px;cursor:pointer;transition:all .2s;
}
.nav-guest-register:hover{border-color:var(--green);color:var(--green)}
/* INSTAGRAM PREVIEW */
.instagram-embed-wrap{
  margin:10px 0 12px;
  width:100%;
  overflow:hidden;
}
.instagram-embed-wrap .instagram-media{
  margin:0 auto !important;
}
.instagram-embed-wrap.instagram-private-only .instagram-media{
  display:none !important;
}
.post-embed-instagram{
  max-height:none;
}
.chat-embed-instagram{
  max-width:min(360px,100%);
}
.ig-preview{
  display:flex;align-items:center;gap:12px;
  background:linear-gradient(135deg,#1a0a2e,#0d1a2e);
  border:1px solid #833ab4;
  border-radius:12px;margin:8px 0;
  padding:12px 14px;text-decoration:none;
  transition:border-color .2s, box-shadow .2s;
  overflow:hidden;
}
.ig-preview:hover{
  border-color:#e1306c;
  box-shadow:0 0 16px rgba(225,48,108,.25);
}
.ig-preview-icon{
  width:44px;height:44px;flex-shrink:0;border-radius:10px;
  background:linear-gradient(45deg,#f09433,#e6683c,#dc2743,#cc2366,#bc1888);
  display:flex;align-items:center;justify-content:center;
}
.ig-preview-icon svg{fill:#fff}
.ig-preview-body{flex:1;min-width:0}
.ig-preview-label{font-size:.7rem;color:rgba(255,255,255,.5);letter-spacing:.5px;text-transform:uppercase;margin-bottom:2px}
.ig-preview-title{font-size:.88rem;font-weight:700;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ig-preview-sub{font-size:.72rem;color:rgba(255,255,255,.45);margin-top:2px}
.ig-preview-arrow{color:rgba(255,255,255,.3);font-size:1.1rem;flex-shrink:0}
.ig-preview-open{
  flex-shrink:0;
  min-height:30px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  padding:0 12px;
  border-radius:999px;
  background:rgba(255,255,255,.12);
  border:1px solid rgba(255,255,255,.16);
  color:#fff;
  font-size:.74rem;
  font-weight:800;
  text-decoration:none;
}
.ig-preview-fallback{
  display:none;
  margin-bottom:8px;
}
.instagram-embed-wrap.instagram-private-only .ig-preview-fallback{
  display:flex;
}
.link-preview{
  display:flex;align-items:center;gap:12px;
  margin:10px 0;padding:12px;
  border-radius:14px;
  border:1px solid rgba(0,245,255,.16);
  background:linear-gradient(135deg,rgba(14,20,31,.98),rgba(12,28,38,.94));
  text-decoration:none;
  transition:border-color .2s, transform .18s, box-shadow .2s;
  overflow:hidden;
}
.link-preview:hover{
  border-color:rgba(0,245,255,.32);
  transform:translateY(-1px);
  box-shadow:0 10px 28px rgba(0,0,0,.28), 0 0 18px rgba(0,245,255,.08);
}
.link-preview-thumb{
  width:104px;height:72px;
  border-radius:10px;
  flex-shrink:0;
  overflow:hidden;
  background:linear-gradient(135deg,rgba(0,245,255,.1),rgba(138,92,255,.14));
  border:1px solid rgba(255,255,255,.08);
  display:flex;align-items:center;justify-content:center;
  position:relative;
}
.link-preview-thumb img,
.link-preview-thumb video{
  width:100%;height:100%;object-fit:cover;display:block;
}
.link-preview-thumb svg{
  width:28px;height:28px;fill:#fff;opacity:.9;
}
.link-preview-badge{
  position:absolute;left:8px;bottom:8px;
  padding:3px 7px;border-radius:999px;
  background:rgba(4,10,17,.75);
  border:1px solid rgba(255,255,255,.1);
  color:#fff;font-size:.62rem;font-weight:700;
  letter-spacing:.5px;text-transform:uppercase;
}
.link-preview-body{flex:1;min-width:0}
.link-preview-label{
  font-size:.68rem;color:var(--cyan2);
  letter-spacing:.8px;text-transform:uppercase;
}
.link-preview-title{
  margin-top:4px;
  color:#fff;font-size:.9rem;font-weight:700;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.link-preview-sub{
  margin-top:4px;
  color:var(--text3);font-size:.74rem;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.link-preview-arrow{
  color:rgba(255,255,255,.34);
  font-size:1.2rem;flex-shrink:0;
}
.link-preview-video .link-preview-thumb::after{
  content:'';
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(0,0,0,0),rgba(0,0,0,.28));
}
.link-preview-site .link-preview-thumb{
  background:linear-gradient(135deg,rgba(0,245,255,.18),rgba(138,92,255,.22));
}
.link-preview-image .link-preview-thumb{
  background:linear-gradient(135deg,rgba(42,183,126,.18),rgba(0,245,255,.12));
}
.link-hover-preview{
  position:fixed;
  z-index:1200;
  width:min(320px,calc(100vw - 24px));
  display:none;
  pointer-events:none;
}
.link-hover-preview .link-preview{
  margin:0;
  box-shadow:0 16px 36px rgba(0,0,0,.32), 0 0 18px rgba(0,245,255,.08);
}
.post-link-inline{
  margin:10px 0 4px;
}
.post-link-inline a{
  color:var(--cyan);
  text-decoration:underline;
  word-break:break-all;
  font-size:.82rem;
}
/* LIKE / DISLIKE (estilo Facebook) */
.post-reactions{
  display:flex;align-items:center;justify-content:flex-start;gap:8px;flex-wrap:wrap;
  padding:8px 14px 12px;
  border:1px solid #000;
  border-radius:16px;
}
.react-btn{
  flex:none;display:inline-flex;align-items:center;justify-content:flex-start;
  gap:8px;min-height:34px;padding:0 12px;border-radius:999px;
  font-size:.78rem;font-weight:700;cursor:pointer;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);
  color:#111;font-family:var(--font);
  transition:background .15s, color .15s, transform .1s, border-color .15s, box-shadow .15s;
  user-select:none;
}
.react-btn:hover{
  background:rgba(255,255,255,.07);
  border-color:rgba(255,255,255,.14);
}
.react-btn:active{ transform:scale(.95); }
.react-btn.like-btn.active{
  color:var(--cyan);
  background:rgba(0,245,255,.08);
  border-color:rgba(0,245,255,.26);
  box-shadow:0 0 14px rgba(0,245,255,.12);
}
.react-btn.like-btn.active .react-icon{ filter:drop-shadow(0 0 4px rgba(0,245,255,.6)); }
.react-btn.dislike-btn.active{
  color:var(--red);
  background:rgba(255,45,85,.08);
  border-color:rgba(255,45,85,.24);
  box-shadow:0 0 14px rgba(255,45,85,.1);
}
.react-btn.dislike-btn.active .react-icon{ filter:drop-shadow(0 0 4px rgba(255,45,85,.6)); }
.react-icon{
  width:22px;height:22px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02));
  border:1px solid rgba(255,255,255,.06);
  line-height:1;flex-shrink:0;
}
.react-icon svg{ width:13px;height:13px;fill:currentColor }
.react-count{ font-family:var(--font-m); font-size:.72rem; font-weight:700; }
.react-sep{ display:none; }
/* Animacion pop */
.react-btn.pop{ animation:reactPop .18s ease; }
@keyframes reactPop{0%{transform:scale(1)}45%{transform:scale(1.25)}100%{transform:scale(1)}}
/* Cambio entre post y comentarios con mostrar y ocultar */
/* El frente y el reverso se muestran alternadamente.
   El card toma el alto de lo visible. Sin slides ni minHeight. */

.post-face-front{
  display:flex;
  flex-direction:column;
}
.post-face-back{
  display:none;
  flex-direction:column;
}
/* Al flipear */
.post-card.is-flipped .post-face-front{
  display:none;
}
.post-card.is-flipped .post-face-back{
  display:flex;
}
/* Animacion suave al cambiar de lado */
@keyframes faceIn{
  from{ opacity:0; transform:translateY(6px); }
  to{   opacity:1; transform:translateY(0);   }
}
.post-card:not(.is-flipped) .post-face-front{
  animation:faceIn .25s ease;
}
.post-card.is-flipped .post-face-back{
  animation:faceIn .25s ease;
}
/* Borde morado cuando esta en modo comentarios */
.post-card.is-flipped{
  border-color:rgba(180,79,255,.4);
}
/* Boton comentar */
.react-sep{width:1px;background:rgba(255,255,255,.08);height:28px;flex-shrink:0;align-self:center;}
.comment-btn{
  flex:none;display:inline-flex;align-items:center;justify-content:flex-start;
  gap:8px;min-height:34px;padding:0 12px;border-radius:999px;
  font-size:.78rem;font-weight:700;cursor:pointer;
  border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.03);
  color:#111;font-family:var(--font);
  transition:background .15s,color .15s,border-color .15s,box-shadow .15s;user-select:none;
}
.comment-btn:hover,.comment-btn.active{
  background:rgba(180,79,255,.08);
  color:var(--purple);
  border-color:rgba(180,79,255,.24);
  box-shadow:0 0 14px rgba(180,79,255,.12);
}
.comment-btn-icon{
  width:22px;height:22px;border-radius:8px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,rgba(180,79,255,.2),rgba(0,245,255,.12));
  border:1px solid rgba(180,79,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.comment-btn-icon svg{width:13px;height:13px;fill:currentColor}
.comment-btn:hover .comment-btn-icon,
.comment-btn.active .comment-btn-icon{
  border-color:rgba(180,79,255,.45);
  box-shadow:0 0 18px rgba(180,79,255,.18), inset 0 1px 0 rgba(255,255,255,.1);
}
/* Panel reverso */
.comments-back-header{
  display:flex;align-items:center;justify-content:space-between;
  gap:8px;
  padding:10px 14px;
  border-bottom:1px solid var(--border);
  flex-shrink:0;
  flex-wrap:wrap;
}
.comments-back-title{
  font-family:var(--font-h);font-size:.9rem;font-weight:700;
  letter-spacing:2px;color:var(--purple);text-transform:uppercase;
  display:flex;align-items:center;gap:6px;
}
.comments-back-close{
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  color:var(--text2);font-size:.78rem;font-weight:600;
  cursor:pointer;padding:5px 14px;border-radius:20px;
  transition:all .15s;font-family:var(--font);white-space:nowrap;
}
.comments-back-close:hover{border-color:var(--purple);color:var(--purple);}
/* Lista de comentarios que crece con el contenido sin max-height */
.comments-list{
  padding:12px 14px 6px;
  display:flex;flex-direction:column;gap:10px;
/* Sin max-height; se expande hacia abajo con el contenido */
  scroll-behavior:smooth;
}
/* Botón más reciente en el encabezado */
.comments-goto-latest{
  display:inline-flex;align-items:center;gap:5px;
  padding:4px 10px;
  background:rgba(180,79,255,.12);
  border:1px solid rgba(180,79,255,.35);
  border-radius:20px;
  color:var(--purple);
  font-size:.73rem;font-weight:700;cursor:pointer;
  font-family:var(--font);
  transition:all .2s;
  white-space:nowrap;
  opacity:1;
}
.comments-goto-latest:hover{
  background:rgba(180,79,255,.25);
  border-color:var(--purple);
}
.comments-goto-latest.fading{
  opacity:0;
  pointer-events:none;
  transition:opacity .35s;
}
.comment-item{display:flex;gap:10px;animation:faceIn .2s ease;}
.comment-avatar{
  width:32px;height:32px;border-radius:50%;object-fit:cover;
  border:1.5px solid var(--border);flex-shrink:0;cursor:pointer;
  transition:border-color .2s;margin-top:2px;
}
.comment-avatar:hover{border-color:var(--cyan);}
.comment-body{flex:1;min-width:0;}
.comment-bubble{
  background:var(--bg3);border:1px solid rgba(255,255,255,.06);
  border-radius:4px 14px 14px 14px;padding:8px 12px;
}
.comment-username{font-size:.72rem;font-weight:700;color:var(--cyan2);margin-bottom:3px;}
.comment-text{font-size:.85rem;line-height:1.55;color:var(--text);word-break:break-word;white-space:pre-wrap;}
.comment-time{font-size:.62rem;color:var(--text3);margin-top:4px;font-family:var(--font-m);}
.comment-meta-actions{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.comment-del-btn{
  width:30px;height:30px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  background:rgba(10,18,28,.78);
  border:1px solid rgba(255,255,255,.08);
  color:var(--text2);cursor:pointer;
  transition:transform .15s,border-color .15s,color .15s,box-shadow .15s,background .15s;
  flex-shrink:0;
}
.comment-del-btn svg{width:14px;height:14px;fill:currentColor}
.comment-del-btn:hover{transform:translateY(-1px)}
.comment-del-btn.comment-edit-btn:hover{
  color:var(--cyan);
  border-color:rgba(0,245,255,.35);
  box-shadow:0 0 14px rgba(0,245,255,.16);
}
.comment-del-btn.comment-trash-btn:hover{
  color:var(--red);
  border-color:rgba(255,45,85,.38);
  box-shadow:0 0 14px rgba(255,45,85,.16);
}
.comment-empty{text-align:center;padding:28px 16px;color:var(--text3);font-size:.84rem;}
/* Input comentario */
.comment-input-area{
  display:block;
  padding:10px 12px 14px;
  border-top:1px solid var(--border);
  flex-shrink:0;
}
.notif-more-btn{
  width:calc(100% - 24px);
  margin:8px 12px 10px;
  border:1px solid rgba(0,245,255,.2);
  border-radius:999px;
  background:rgba(0,245,255,.06);
  color:var(--cyan);
  padding:8px 10px;
  font-weight:800;
  cursor:pointer;
}
.msn-self-status-dot{
  width:10px;
  height:10px;
  border-radius:50%;
  display:inline-block;
  margin-right:6px;
  box-shadow:0 0 0 3px rgba(255,255,255,.35);
  vertical-align:middle;
}
.msn-self-status-dot[data-status="connected"]{background:#39d36b}
.msn-self-status-dot[data-status="busy"]{background:#ff4d68}
.msn-self-status-dot[data-status="unavailable"]{background:#ffc94d}
.msn-self-status-dot[data-status="invisible"]{background:#9aa8b6}
.dm-audio-speed{
  border:0;
  border-radius:999px;
  width:54px;
  min-width:54px;
  height:24px;
  background:rgba(23,49,60,.82);
  color:#24465f;
  color:#fff;
  font-size:.58rem;
  font-weight:900;
  padding:0 8px;
  outline:none;
  cursor:pointer;
}
.dm-paste-preview{
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border:1px solid rgba(38,169,224,.25);
  border-radius:12px;
  background:rgba(255,255,255,.64);
  color:#254a63;
  font-size:.75rem;
}
.dm-paste-preview img{
  width:42px;
  height:42px;
  border-radius:8px;
  object-fit:cover;
}
.dm-paste-preview span{flex:1;min-width:0;font-weight:800}
.dm-paste-preview button{
  border:0;
  border-radius:999px;
  background:#fff;
  color:#d12f55;
  padding:5px 9px;
  font-weight:800;
  cursor:pointer;
}
.dm-msg.is-editing .dm-bubble{
  outline:2px solid var(--cyan);
  box-shadow:0 0 0 4px rgba(0,245,255,.14);
}
.dm-inline-edit{
  width:100%;
  min-width:180px;
  min-height:74px;
  border:1px solid rgba(38,169,224,.35);
  border-radius:12px;
  background:rgba(255,255,255,.82);
  color:#173044;
  padding:9px 10px;
  resize:vertical;
  font:inherit;
}
.dm-inline-edit-actions{
  display:flex;
  gap:8px;
  justify-content:flex-end;
  margin-top:8px;
}
.dm-inline-edit-actions button{
  border:0;
  border-radius:999px;
  padding:7px 11px;
  font-weight:800;
  cursor:pointer;
}
.dm-inline-edit-actions button:last-child{background:var(--cyan);color:#05202a}
@media (max-width:700px){
  .comment-btn > span:not(.comment-btn-icon):not([id^="ccount-"]){display:none}
  .comment-btn{padding:0 9px;min-width:34px;justify-content:center}
  .post-time{font-size:.56rem;line-height:1.25}
  .post-reactions{gap:6px;padding:7px 9px 10px}
  #user-wall-stream-section .upm-channel{
    transform:scale(.92);
    transform-origin:top center;
    margin-bottom:-28px;
  }
  #user-wall-stream-section .upm-channel iframe{
    max-height:260px;
  }
}
@media (max-width:430px){
  #user-wall-stream-section .upm-channel{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:8px!important;
    align-items:start;
  }
  #user-wall-stream-section .upm-channel > *{
    min-width:0!important;
    width:100%!important;
  }
  #user-wall-stream-section .upm-channel iframe{
    width:100%!important;
    max-height:220px;
  }
}
.comment-input-wrap{
  position:relative;
  display:flex;
  flex-direction:column;
  gap:8px;
  width:100%;
}
.comment-tools-bar{
  display:flex;
  align-items:center;
  gap:8px;
  padding:6px 8px;
  border-radius:14px;
  background:rgba(10,18,28,.6);
  border:1px solid rgba(255,255,255,.06);
}
.comment-input-row{
  display:flex;
  align-items:flex-end;
  gap:8px;
  width:100%;
}
.comment-input-area textarea{
  flex:1;min-height:46px;max-height:140px;padding:11px 14px;
  font-size:.85rem;font-family:var(--font);line-height:1.45;
  border-radius:18px;background:var(--bg3);border:1px solid var(--border);
  color:var(--text);resize:none;outline:none;transition:border-color .2s;
  min-width:0;box-sizing:border-box;width:100%;
}
.comment-input-area textarea:focus{border-color:var(--purple);box-shadow:0 0 0 2px rgba(180,79,255,.1);}
.comment-send-btn{
  width:42px;height:42px;border-radius:14px;
  background:linear-gradient(135deg,#7e3ff2,#c654ff);
  border:1px solid rgba(255,255,255,.14);color:#fff;cursor:pointer;flex-shrink:0;
  display:flex;align-items:center;justify-content:center;
  transition:transform .15s,box-shadow .15s,border-color .15s;
}
.comment-send-btn svg{width:16px;height:16px;fill:currentColor}
.comment-send-btn:hover{transform:translateY(-1px) scale(1.04);box-shadow:0 0 16px rgba(180,79,255,.45);border-color:rgba(255,255,255,.26);}
.comment-guest-note{
  text-align:center;padding:14px;font-size:.8rem;color:var(--text3);
  border-top:1px solid var(--border);
}
/* MINI POST PREVIEW (parte superior del reverso) */
.comments-post-preview{
  display:flex;align-items:center;gap:10px;
  padding:10px 14px;
  background:var(--bg3);
  border-bottom:1px solid var(--border);
  flex-shrink:0;
  position:sticky;top:0;z-index:2;
}
.cpp-avatar{
  width:36px;height:36px;border-radius:50%;object-fit:cover;
  border:2px solid var(--border);flex-shrink:0;
}
.cpp-body{flex:1;min-width:0;}
.cpp-username{
  font-size:.75rem;font-weight:700;color:var(--cyan2);
  display:flex;align-items:center;gap:6px;margin-bottom:2px;
}
.cpp-text{
  font-size:.78rem;color:var(--text2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  max-width:100%;
  line-height:1.35;
}
.cpp-media{
  font-size:.72rem;color:var(--text3);font-style:italic;
}
/* MENCIONES @ */
.mention-highlight{ color:var(--cyan);font-weight:700; }
.mention-suggest{
  position:absolute;bottom:calc(100% + 4px);left:0;right:0;
  background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  max-height:200px;overflow-y:auto;z-index:100;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.mention-item{
  display:flex;align-items:center;gap:8px;padding:8px 12px;cursor:pointer;
  transition:background .15s;font-size:.83rem;
}
.mention-item:hover,.mention-item.active{ background:rgba(0,245,255,.08); }
.mention-item img{ width:26px;height:26px;border-radius:50%;object-fit:cover; }
/* STICKER en comentario */
.comment-sticker-picker{
  position:absolute;bottom:calc(100% + 4px);left:0;
  background:var(--bg2);border:1px solid var(--border);border-radius:10px;
  padding:8px;display:grid;grid-template-columns:repeat(4,1fr);gap:4px;
  width:200px;max-height:180px;overflow-y:auto;z-index:200;
  box-shadow:0 8px 24px rgba(0,0,0,.4);
}
.comment-img-btn{
  min-width:0;height:30px;padding:0 12px;border-radius:999px;background:rgba(10,18,28,.78);
  border:1px solid rgba(255,255,255,.08);color:var(--text2);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  transition:border-color .15s,color .15s,transform .15s,box-shadow .15s;flex-shrink:0;
}
.comment-img-btn svg,.comment-sticker-btn svg{width:15px;height:15px;fill:currentColor}
.comment-img-btn span,.comment-sticker-btn span{
  font-size:.72rem;
  font-weight:700;
  letter-spacing:.02em;
}
.comment-img-btn:hover{
  border-color:rgba(0,245,255,.35);color:var(--cyan);
  transform:translateY(-1px);box-shadow:0 0 14px rgba(0,245,255,.16);
}
.comment-sticker-btn{
  min-width:0;height:30px;padding:0 12px;border-radius:999px;background:rgba(10,18,28,.78);
  border:1px solid rgba(255,255,255,.08);color:var(--text2);
  cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:7px;
  transition:border-color .15s,color .15s,transform .15s,box-shadow .15s;
  flex-shrink:0;
}
.comment-sticker-btn:hover{
  color:var(--purple);border-color:rgba(180,79,255,.35);
  transform:translateY(-1px);box-shadow:0 0 14px rgba(180,79,255,.16);
}
/* AMIGOS */
.friend-btn{
  display:inline-flex;align-items:center;gap:6px;
  padding:6px 14px;border-radius:20px;font-size:.78rem;font-weight:600;
  cursor:pointer;border:1px solid var(--border);background:transparent;
  color:var(--text2);font-family:var(--font);transition:all .2s;
}
.friend-btn:hover,.friend-btn.pending{ border-color:var(--cyan);color:var(--cyan); }
.friend-btn.accepted{ border-color:var(--green);color:var(--green); }
/* NOTIFICACIONES */
.notif-item{
  display:flex;align-items:flex-start;gap:10px;
  padding:10px 14px;border-bottom:1px solid rgba(255,255,255,.04);
  cursor:pointer;transition:background .15s;
}
.notif-item:hover{ background:rgba(0,245,255,.04); }
.notif-item.unread{ background:rgba(0,245,255,.06); }
.notif-av{ width:32px;height:32px;border-radius:50%;object-fit:cover;flex-shrink:0; }
.notif-text{ flex:1;font-size:.8rem;line-height:1.45;color:var(--text2); }
.notif-text strong{ color:var(--text); }
.notif-time{ font-size:.62rem;color:var(--text3);font-family:var(--font-m);margin-top:2px; }
/* Area segura en movil que respeta notch y barra */
html,body{
  padding-top: env(safe-area-inset-top, 0px);
  padding-bottom: env(safe-area-inset-bottom, 0px);
}
.navbar{
  padding-top: calc(env(safe-area-inset-top, 0px));
}
/* Heart reaction button */
.heart-btn { color: var(--text2); }
.heart-btn.active { color: #ff2d55 !important; }
.heart-btn.active .react-icon { color: #ff2d55; }
.react-count--heart { background: rgba(255,45,85,.15); color: #ff2d55; border-radius: 10px; padding: 1px 7px; }
/* Red report button */
.report-btn--red,
.report-btn { color: var(--red) !important; border-color: rgba(255,45,85,.25) !important; }
.report-btn:hover { background: rgba(255,45,85,.1) !important; }

/* SITE FOOTER */
.site-footer {
  background: var(--bg1);
  border-top: 1px solid var(--border);
  padding: 20px 16px;
  flex-shrink: 0;
}
.site-footer-inner {
  max-width: 900px;
  margin: 0 auto;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.site-footer-logo {
  display: flex;
  align-items: center;
  gap: 10px;
}
.footer-logo-img {
  width: 32px;
  height: 32px;
  object-fit: contain;
  border-radius: 6px;
}
.footer-site-name {
  font-family: var(--font-h);
  font-size: .95rem;
  font-weight: 700;
  color: var(--cyan);
  letter-spacing: 2px;
}
.site-footer-links {
  display: flex;
  gap: 16px;
}
.footer-link {
  color: var(--text2);
  font-size: .78rem;
  text-decoration: none;
  transition: color .2s;
}
.footer-link:hover { color: var(--cyan); }
.site-footer-copy {
  font-size: .72rem;
  color: var(--text3);
  font-family: var(--font-m);
}

/* ── TRANSICIÓN SUAVE ENTRE PÁGINAS ── */
#page-wall, #page-profile, #page-marketplace, #page-user-wall {
  will-change: opacity;
}

/* Messenger: globos de chats abiertos y carpetas fijas */
.msn-panel{
  display:flex;
  flex-direction:column;
  gap:10px;
  min-height:0;
}
.msn-open-bubbles{
  display:none;
  gap:8px;
  overflow-x:auto;
  overscroll-behavior-x:contain;
  scroll-snap-type:x proximity;
  padding:2px 2px 8px;
  margin:0 0 2px;
  -webkit-overflow-scrolling:touch;
}
.msn-open-bubbles.has-items{
  display:flex;
}
body.messenger-chat-active .msn-open-bubbles{
  display:none;
}
.msn-open-bubbles::-webkit-scrollbar{height:6px}
.msn-open-bubbles::-webkit-scrollbar-track{background:rgba(255,255,255,.28);border-radius:999px}
.msn-open-bubbles::-webkit-scrollbar-thumb{background:#8ab5e0;border-radius:999px}
.msn-open-bubble{
  position:relative;
  flex:0 0 68px;
  width:68px;
  min-height:78px;
  border:1px solid rgba(91,145,190,.45);
  border-radius:18px;
  background:linear-gradient(180deg,#f9fdff,#cce7f7);
  color:#1b354b;
  cursor:pointer;
  scroll-snap-align:start;
  padding:8px 6px 7px;
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:5px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.85),0 4px 10px rgba(45,89,120,.12);
  transition:transform .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.msn-open-bubble:hover,
.msn-open-bubble.active{
  transform:translateY(-2px);
  border-color:#2d7ec2;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 18px rgba(45,126,194,.2);
}
.msn-open-bubble img{
  width:38px;
  height:38px;
  border-radius:50%;
  object-fit:cover;
  border:2px solid #fff;
  box-shadow:0 0 0 1px rgba(58,126,176,.34);
}
.msn-open-bubble span{
  max-width:58px;
  font-size:.64rem;
  font-weight:700;
  line-height:1.1;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.msn-open-bubble b{
  position:absolute;
  top:-5px;
  right:-5px;
  width:18px;
  height:18px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#fff;
  border:1px solid rgba(91,145,190,.55);
  color:#376987;
  font-size:.7rem;
  line-height:1;
  font-family:Arial,sans-serif;
}
.msn-folder-list{
  display:flex;
  flex-direction:column;
  gap:6px;
}
.msn-folder{
  border:1px solid rgba(91,145,190,.24);
  border-radius:12px;
  overflow:hidden;
  background:rgba(255,255,255,.34);
}
.msn-folder.has-unread .msn-folder-head{
  background:linear-gradient(180deg,rgba(255,235,239,.92),rgba(255,198,209,.72));
  border-left:4px solid #ef3156;
}
.msn-folder-count.has-unread,
.msn-contact-unread,
.msn-group-unread{
  background:#ef3156!important;
  color:#fff!important;
}
.msn-folder-head{
  width:100%;
  min-height:38px;
  display:flex;
  align-items:center;
  gap:8px;
  padding:7px 10px;
  border:0;
  background:linear-gradient(180deg,rgba(255,255,255,.75),rgba(215,237,249,.62));
  color:#213d54;
  cursor:pointer;
  text-align:left;
  font-family:var(--font);
}
.msn-folder-icon{
  width:24px;
  height:22px;
  border-radius:6px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  flex-shrink:0;
  background:linear-gradient(180deg,#ffd875,#efae24);
  border:1px solid rgba(149,103,18,.28);
  color:#654409;
  font-size:.68rem;
  font-weight:800;
}
.msn-folder-title{
  flex:1;
  min-width:0;
  font-size:.76rem;
  font-weight:800;
  letter-spacing:.02em;
  text-transform:uppercase;
}
.msn-folder-count{
  min-width:22px;
  height:20px;
  padding:0 7px;
  border-radius:999px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:rgba(76,137,184,.16);
  color:#2f678d;
  font-size:.68rem;
  font-weight:800;
}
.msn-folder-body{
  padding:6px 8px 8px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.msn-folder-create{
  width:100%;
  border:1px dashed rgba(47,103,141,.36);
  border-radius:9px;
  background:rgba(255,255,255,.38);
  color:#2f678d;
  padding:6px 8px;
  cursor:pointer;
  font-size:.7rem;
  font-weight:800;
  text-align:left;
}
.msn-folder-item{
  display:flex;
  align-items:center;
  gap:8px;
  width:100%;
  border:0;
  background:transparent;
  color:#244159;
  padding:5px 4px;
  text-align:left;
}
.msn-folder-item span:last-child{
  display:flex;
  flex-direction:column;
  min-width:0;
}
.msn-folder-item strong{
  font-size:.73rem;
  line-height:1.15;
}
.msn-folder-item small,
.msn-folder-empty{
  color:#6f8798;
  font-size:.66rem;
}
.msn-folder-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#52d76f;
  box-shadow:0 0 0 4px rgba(82,215,111,.14);
  flex-shrink:0;
}
.msn-chat-tabs{
  display:flex;
  gap:6px;
  overflow-x:auto;
  padding-bottom:5px;
  flex-shrink:0;
}
.msn-chat-tab{
  flex:0 0 auto;
}
