/* ============================================================
   ARENA NEXUS — Hoja de estilos
   Estética: Gótico Sanguinario (inspirado en Diablo IV)
   Todo comentado en español para edición posterior.
   ============================================================ */

:root {
    /* --- Paleta núcleo --- */
    --negro:        #0a0a0d;
    --negro-panel:  #131015;
    --acero:        #2d2d35;
    --acero-claro:  #4a4651;
    --sangre:       #8B0000;
    --sangre-vivo:  #c1121f;
    --oro:          #B8860B;
    --oro-vivo:     #e6b54a;
    --purpura:      #6b21a8;
    --purpura-vivo: #a855f7;

    /* --- Texto --- */
    --texto:        #e8e2d6;
    --texto-tenue:  #9b9183;
    --texto-oro:    #d8b25a;

    /* --- Rarezas --- */
    --r-comun:      #9ca3af;
    --r-raro:       #3b82f6;
    --r-epico:      #a855f7;
    --r-legendario: #f59e0b;
    --r-mitico:     #c1121f;
    --r-excellent:  #22c55e;

    /* --- Cristal oscuro (glassmorphism) --- */
    --cristal:      rgba(14, 11, 16, 0.72);
    --cristal-borde: rgba(184, 134, 11, 0.35);

    /* --- Fondos principales (capturas locales) --- */
    --bg-intro: url('../intro.png');
    --bg-mid:   url('../mid.png');
    --bg-vault: url('../vault.png');
    --bg-arena: url('../arena.png');
}

* { box-sizing: border-box; margin: 0; padding: 0; }
/* El atributo [hidden] debe ganar SIEMPRE, aunque el elemento tenga display:flex/grid. */
[hidden] { display: none !important; }

html, body {
    height: 100%;
    background: var(--negro);
    color: var(--texto);
    font-family: 'EB Garamond', Georgia, serif;
    overflow: hidden;
    user-select: none;
    -webkit-font-smoothing: antialiased;
}

/* Sin zoom global: cada pantalla es responsiva y ocupa el ancho real del
   monitor (edge-to-edge). Así se adapta a cualquier resolución sin desajustar
   elementos calculados en píxeles (p.ej. el borde eléctrico de los slots). */

h1, h2, h3, h4, .titulo {
    font-family: 'Cinzel', serif;
    letter-spacing: 1px;
    font-weight: 700;
}

#brasas { position: fixed; inset: 0; z-index: 1; pointer-events: none; }
#vineta {
    position: fixed; inset: 0; z-index: 2; pointer-events: none;
    background: radial-gradient(ellipse at center,
                transparent 35%, rgba(0,0,0,0.55) 85%, rgba(0,0,0,0.9) 100%);
}

.pantalla {
    position: fixed; inset: 0; z-index: 3;
    display: none; flex-direction: column;
    background-size: cover; background-position: center; background-repeat: no-repeat;
    animation: aparecer 0.6s ease;
    overflow: hidden;
}
.pantalla.activa { display: flex; }

.pantalla .video-fondo,
.video-global {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    object-fit: cover;
    z-index: 0;
    opacity: 0.65;
    pointer-events: none;
}

.video-global { z-index: 2; }
@keyframes aparecer { from{opacity:0;transform:scale(1.02);} to{opacity:1;transform:scale(1);} }

.velo {
    position: absolute; inset: 0; z-index: 0;
    background:
        radial-gradient(ellipse at 50% 30%, rgba(130, 18, 26, 0.16), transparent 48%),
        linear-gradient(180deg, rgba(5,4,7,0.62) 0%, rgba(5,4,7,0.88) 100%);
}
.pantalla::before {
    content: "";
    position: absolute;
    inset: -12%;
    z-index: 0;
    pointer-events: none;
    background:
        radial-gradient(circle at 16% 72%, rgba(168, 85, 247, 0.14) 0 2px, transparent 3px 180px),
        radial-gradient(circle at 78% 28%, rgba(230, 181, 74, 0.10) 0 2px, transparent 3px 150px),
        radial-gradient(ellipse at 30% 82%, rgba(120, 16, 20, 0.32), transparent 42%),
        radial-gradient(ellipse at 82% 20%, rgba(65, 28, 92, 0.26), transparent 38%),
        repeating-radial-gradient(circle at 50% 50%, rgba(255,255,255,0.035) 0 1px, transparent 1px 20px);
    mix-blend-mode: screen;
    filter: blur(10px);
    opacity: 0.46;
    transform: translate3d(0,0,0);
    animation: bruma-viva 18s ease-in-out infinite alternate;
}
.pantalla::after {
    content: "";
    position: absolute;
    inset: 0;
    z-index: 0;
    pointer-events: none;
    background:
        linear-gradient(115deg, transparent 0 38%, rgba(255,255,255,0.035) 46%, transparent 58% 100%),
        radial-gradient(circle at 50% 105%, rgba(0,0,0,0.55), transparent 38%);
    opacity: 0.32;
    animation: ceniza-lenta 24s linear infinite;
}
.pantalla > *:not(.velo):not(.video-fondo) { position: relative; z-index: 1; }
@keyframes bruma-viva {
    0% { opacity: 0.34; transform: translate3d(-1.5%, 1%, 0) scale(1.02); }
    45% { opacity: 0.56; }
    100% { opacity: 0.42; transform: translate3d(1.5%, -1%, 0) scale(1.08); }
}
@keyframes ceniza-lenta {
    from { background-position: 0 0, center; }
    to { background-position: 160px -220px, center; }
}

/* ============================================================
   COMPONENTES REUTILIZABLES
   ============================================================ */
.btn {
    font-family: 'Cinzel', serif; font-weight: 700;
    text-transform: uppercase; letter-spacing: 1.5px; color: var(--texto);
    background: linear-gradient(180deg, #7a0d0d 0%, #4a0606 100%);
    border: 1px solid var(--oro); border-radius: 4px;
    padding: 14px 26px; cursor: pointer; position: relative;
    transition: transform 0.12s ease, box-shadow 0.2s ease, filter 0.2s;
    box-shadow: 0 0 0 1px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.08), 0 6px 18px rgba(0,0,0,0.6);
    text-shadow: 0 1px 2px #000;
}
.btn:hover { filter: brightness(1.2); box-shadow: 0 0 18px rgba(193,18,31,0.5); }
.btn:active { transform: translateY(1px); }
.btn:disabled { filter: grayscale(0.8) brightness(0.6); cursor: not-allowed; box-shadow:none; }

.btn-ghost { background: var(--cristal); border: 1px solid var(--cristal-borde); color: var(--texto-oro); }
.btn-ghost:hover { border-color: var(--oro-vivo); filter:brightness(1.15); box-shadow:0 0 14px rgba(184,134,11,0.35); }

.btn-mag { background: linear-gradient(180deg,#5b21b6,#2e1065); }
.btn-mag:hover { box-shadow:0 0 18px rgba(168,85,247,0.55); }

.cristal {
    --panel-textura-local: var(--panel-textura, var(--bg-mid));
    background-image:
        linear-gradient(180deg, rgba(10, 8, 11, 0.92), rgba(5, 4, 7, 0.94)),
        var(--panel-textura-local);
    background-size: cover;
    background-position: center;
    background-blend-mode: overlay;
    backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
    border: 1px solid var(--cristal-borde); border-radius: 6px;
    box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 10px 30px rgba(0,0,0,0.55);
}

.divisor { display: flex; align-items: center; gap: 10px; color: var(--oro); font-size: 12px; }
.divisor::before, .divisor::after {
    content: ""; height: 1px; flex: 1;
    background: linear-gradient(90deg, transparent, var(--oro), transparent);
}

.barra { height: 14px; background: #050405; border: 1px solid var(--acero);
         border-radius: 3px; overflow: hidden; position: relative; }
.barra > i { display:block; height:100%; transition: width 0.4s ease; }
.barra-txt { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
             font-size:11px; font-weight:600; text-shadow:0 1px 2px #000; letter-spacing:.5px; }

/* ============================================================
   1) LOGIN / PERSONAJES
   ============================================================ */
#login { background: #05040a; --panel-textura: var(--bg-intro); justify-content: center; align-items: center; }
/* Canvas de la galaxia: ocupa todo el login y queda DETRÁS del contenido */
#galaxia {
    position: absolute; inset: 0; width: 100%; height: 100%;
    z-index: 0; display: block; pointer-events: none;
}
.modo-pill {
    margin: 22px auto 0;
    width: fit-content;
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 6px;
    border-radius: 24px;
    background: var(--cristal);
    border: 1px solid var(--cristal-borde);
}
.modo-btn {
    font-family:'Cinzel'; font-size:12px; text-transform:uppercase; letter-spacing:1px;
    background:transparent; border:1px solid transparent; color:var(--texto-tenue);
    padding:8px 18px; border-radius:18px; cursor:pointer; transition: all .2s ease;
}
.modo-btn:hover { color:var(--texto); }
.modo-btn.activo {
    color: var(--texto); border-color: var(--oro);
    background: linear-gradient(180deg, #7a0d0d 0%, #4a0606 100%);
    box-shadow:0 0 14px rgba(184,134,11,0.4);
}
.modo-pill .server-status { margin-left:4px; padding-right:8px; }
.modo-descripcion { margin-top:10px; font-size:13px; color:var(--texto-tenue); line-height:1.4; }

/* Barra de sesión activa (multijugador autenticado) */
.auth-status {
    margin: 18px auto 0; width:min(420px,90vw); padding:12px 18px;
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    font-size:13px; color:var(--oro-vivo);
}
.auth-status .btn-ghost { padding:8px 16px; font-size:12px; }

/* Panel de login / registro (multijugador sin sesión) */
.auth-panel {
    margin: 22px auto 0; width:min(420px,90vw); padding:20px; text-align:left;
    display:flex; flex-direction:column; gap:10px;
}
.auth-tabs { display:flex; gap:8px; }
.auth-tab { flex:1; font-size:13px; text-transform:none; padding:8px; }
.auth-tab.activo { border-color:var(--oro); box-shadow:0 0 12px rgba(184,134,11,0.35); }
.auth-input {
    width:100%; padding:10px 12px; border-radius:6px; font-family:'EB Garamond';
    background:rgba(0,0,0,0.35); border:1px solid rgba(255,255,255,0.18);
    color:var(--texto, #e8e0d0); font-size:14px;
}
.auth-input:focus { outline:none; border-color:var(--oro); box-shadow:0 0 10px rgba(184,134,11,0.3); }
#auth-form { display:flex; flex-direction:column; gap:8px; }
/* Selector de héroe al crear cuenta */
.avatar-picker { display:flex; flex-direction:column; gap:6px; margin:2px 0; }
.avatar-picker-lbl { font-family:'Cinzel'; font-size:11px; letter-spacing:1px; color:var(--texto-tenue); }
.avatar-grid { display:grid; grid-template-columns:repeat(6,1fr); gap:6px; }
.avatar-th {
    height:46px; border-radius:6px; cursor:pointer; padding:0;
    background-size:cover; background-position:center 22%; background-color:#0c0a0c;
    border:2px solid rgba(255,255,255,0.14); transition:border-color .15s, transform .15s, box-shadow .15s;
}
.avatar-th:hover { transform:translateY(-2px); border-color:var(--oro-vivo); }
.avatar-th.sel { border-color:var(--oro); box-shadow:0 0 12px rgba(184,134,11,0.55); }
.auth-error { color:#e2706b; font-size:12px; min-height:14px; }
.server-status { font-family:'Cinzel'; font-size:12px; letter-spacing:2px; }
.server-status.online { color:#4ade80; }
.server-status.offline { color:#f87171; }
.login-wrap { width: min(720px, 92vw); text-align: center; padding: 20px; position: relative; z-index: 1; }
.logo {
    font-size: clamp(48px, 9vw, 104px); font-weight: 900; line-height: 0.9;
    background: linear-gradient(180deg, #f3e6c4 0%, #c9a24a 45%, #6e4d10 100%);
    -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent;
    filter: drop-shadow(0 4px 10px rgba(0,0,0,0.8)); letter-spacing: 8px;
}
.logo small {
    display:block; font-size: 0.28em; letter-spacing: 22px;
    color: var(--sangre-vivo); -webkit-text-fill-color: var(--sangre-vivo);
    margin-top: 6px; text-shadow: 0 0 18px rgba(193,18,31,0.6);
}
.tarjeta-pj {
    margin: 34px auto 0; width: min(420px, 90vw); padding: 22px; cursor: pointer; border-radius: 8px;
    background: linear-gradient(180deg, rgba(30,26,24,0.92), rgba(12,10,12,0.95)), var(--bg-intro);
    background-size: cover; border: 1px solid var(--cristal-borde);
    box-shadow: inset 0 0 40px rgba(0,0,0,0.7), 0 12px 30px rgba(0,0,0,0.6);
    transition: transform .2s, border-color .2s, box-shadow .2s;
}
.tarjeta-pj:hover { transform: translateY(-4px); border-color: var(--oro-vivo); box-shadow: 0 0 30px rgba(184,134,11,0.4); }
.tarjeta-pj .retrato {
    width: 88px; height: 88px; margin: 0 auto 12px; border-radius: 50%;
    display:flex; align-items:center; justify-content:center; font-size: 44px;
    background: radial-gradient(circle at 50% 30%, #3a2b2b, #0c0a0c);
    border: 2px solid var(--oro); box-shadow: 0 0 20px rgba(139,0,0,0.5);
}
.tarjeta-pj h3 { font-size: 24px; color: var(--texto-oro); }
.tarjeta-pj .clase { color: var(--texto-tenue); font-style: italic; margin-bottom:14px; }
.mini-stats { display:flex; justify-content:center; gap:18px; font-size:14px; }
.mini-stats span b { color: var(--oro-vivo); font-family:'Cinzel'; }
.pie-login { margin-top: 28px; color: var(--texto-tenue); font-size: 12px; letter-spacing:2px; }
.pie-login .online { color:#4ade80; }

/* ============================================================
   HUD SUPERIOR
   ============================================================ */
.hud {
    display:flex; align-items:center; justify-content:space-between; padding: 10px 18px; gap: 14px;
    background: linear-gradient(180deg, rgba(8,6,9,0.95), rgba(8,6,9,0.78));
    border-bottom: 1px solid var(--cristal-borde); flex-wrap: wrap;
}
.hud-logo { font-family:'Cinzel'; font-weight:900; font-size:20px; color:var(--texto); letter-spacing:3px; cursor:pointer; }
.hud-logo b { color: var(--sangre-vivo); }
.recursos { display:flex; gap:10px; flex-wrap:wrap; }
.recurso {
    display:flex; align-items:center; gap:7px; font-weight:600;
    background: var(--cristal); border:1px solid var(--cristal-borde);
    padding:6px 12px; border-radius:4px; font-size:15px; min-width: 92px;
}
.recurso .ico { font-size: 16px; filter: drop-shadow(0 0 4px currentColor); }
.r-oro { color: var(--oro-vivo); } .r-piedra { color: var(--purpura-vivo); } .r-alma { color: #7dd3fc; }
.energia-wrap { min-width: 180px; }
.energia-wrap .lbl { font-size:11px; color:var(--texto-tenue); letter-spacing:1px; display:flex; justify-content:space-between; margin-bottom:3px; }

/* Cabecera de pantalla reutilizable (título + volver) */
.cab-pantalla { display:flex; align-items:center; justify-content:space-between; padding: 14px 22px 0; gap:12px; flex-wrap:wrap; }
.cab-pantalla h2 { font-size: clamp(22px,3vw,30px); color:var(--texto); text-shadow:0 2px 10px #000; }
.cab-pantalla .sub { color:var(--texto-tenue); font-style:italic; font-size:14px; }

/* ============================================================
   2) HUB / EL TABLÓN
   ============================================================ */
#hub { background-image: var(--bg-mid); --panel-textura: var(--bg-mid); }
/* Tormenta de rayos: fondo que aparece SOLO mientras cazas (Aventura).
   z-index:0 = detrás del contenido (que va a z-index:1). Oculto por defecto. */
#tormenta {
    position:absolute; inset:0; z-index:0; pointer-events:none;
    opacity:0; transition:opacity .6s ease;
    background: radial-gradient(ellipse at 50% 0%, rgba(18,26,52,0.55), rgba(2,3,8,0.9) 75%);
}
#tormenta.activa { opacity:1; }
#rayos { position:absolute; inset:0; width:100%; height:100%; display:block; }
.hub-cuerpo {
    flex:1; overflow-y:auto; padding: 22px; display:grid; gap: 22px;
    grid-template-columns: 300px 1fr 240px; align-content: start;
    align-items: stretch;
}
.ficha { padding: 22px; display:flex; flex-direction:column; gap:6px; }
.ficha .retrato-grande {
    width: 120px; height: 120px; margin: 0 auto; border-radius: 6px;
    background: radial-gradient(circle at 50% 25%, #43302b, #0a0809);
    border: 2px solid var(--oro); display:flex; align-items:center; justify-content:center; font-size: 60px;
    box-shadow: 0 0 26px rgba(139,0,0,0.45), inset 0 0 30px rgba(0,0,0,0.6); position: relative;
}
.nivel-badge {
    position:absolute; bottom:-10px; left:50%; transform:translateX(-50%);
    font-family:'Cinzel'; font-weight:700; font-size:12px;
    background: linear-gradient(180deg,#7a0d0d,#3a0404); border:1px solid var(--oro);
    color:var(--texto-oro); padding:3px 14px; border-radius:12px; white-space:nowrap;
}
.ficha .nombre { text-align:center; font-size:24px; color:var(--texto-oro); margin-top:6px; }
/* Título por gloria (ELO) — se muestra bajo el nombre y en la Arena. */
.titulo-jugador { text-align:center; font-family:'Cinzel'; font-size:13px; letter-spacing:1px;
    color:var(--oro-vivo); text-shadow:0 0 10px rgba(184,134,11,0.5); margin-top:2px; }
.arena-titulo { font-family:'Cinzel'; font-size:13px; color:var(--oro-vivo); margin-top:4px; letter-spacing:1px; }
.arena-titulo .js-titulo { color:var(--texto-oro); }
.ficha .clase  { text-align:center; color:var(--texto-tenue); font-style:italic; margin-top:-6px;}
.stat-fila { display:flex; justify-content:space-between; font-size:15px; padding:5px 0;
             border-bottom:1px dashed rgba(184,134,11,0.18); }
.stat-fila span:last-child { color:var(--oro-vivo); font-family:'Cinzel'; font-weight:600; }
.stat-fila.stat-poder { border-bottom:1px solid rgba(184,134,11,0.5); margin-bottom:2px; }
.stat-fila.stat-poder span { color:var(--oro); font-weight:700; letter-spacing:.5px; }
.stat-fila.stat-poder span:last-child { font-size:17px; }
.aviso-puntos {
    text-align:center; color:var(--oro-vivo); font-family:'Cinzel'; font-size:13px; padding:8px;
    border:1px solid var(--oro); border-radius:4px; background:rgba(184,134,11,0.08); cursor:pointer;
    animation: latido 1.6s infinite;
}
@keyframes latido { 0%,100%{box-shadow:0 0 0 rgba(184,134,11,0);} 50%{box-shadow:0 0 16px rgba(184,134,11,0.5);} }
.tablon { display:flex; flex-direction:column; gap:18px; }
.tablon-titulo { font-size: 26px; color: var(--texto); text-align:center; text-shadow:0 2px 10px #000; }
.menu-grid { display:grid; gap:16px; grid-template-columns: repeat(4, 1fr); }
.menu-card {
    padding: 20px; cursor:pointer; text-align:center; display:flex; flex-direction:column;
    align-items:center; gap:8px; transition: transform .15s, border-color .2s, box-shadow .2s;
    position: relative; overflow:hidden;
}
.menu-card:hover { transform: translateY(-5px); border-color: var(--oro-vivo); box-shadow: 0 0 26px rgba(184,134,11,0.35); }
.menu-card .ico { font-size: 40px; filter: drop-shadow(0 0 8px rgba(139,0,0,0.5)); }
.menu-card h4 {
    font-size: 18px; color: var(--texto-oro);
    margin: 0; line-height: 1.15;
}
.menu-card p  { font-size: 15px; line-height:1.3; }
.menu-card .etiqueta {
    position:absolute; top:8px; right:8px; font-size:9px; letter-spacing:1px;
    background:var(--sangre); color:#fff; padding:2px 6px; border-radius:3px; font-family:'Cinzel'; text-transform:uppercase;
}
.menu-card.destacada { border-color: var(--sangre); }
/* Tarjetas del Tablón con imagen de fondo propia (assets/tarjetas home).
   Un degradado oscuro encima mantiene legibles el título y el subtexto. */
.menu-card.tarjeta-img {
    background-size: cover; background-position: center; background-repeat: no-repeat;
    background-blend-mode: normal; justify-content: flex-end; min-height: 90px;
}
.menu-card.tarjeta-img h4 { text-shadow: 0 2px 6px #000, 0 0 14px rgba(0,0,0,0.8); }
.menu-card.tarjeta-img p  { text-shadow: 0 1px 4px #000; }
.tc-caza  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/caza.png'); }
.tc-runa  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/runa.png'); }
.tc-forja { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/forja.png'); }
.tc-pvp   { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/pvp.png'); }
.tc-merc  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/merc.png'); }
.tc-clan  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/clan.png'); }
.tc-rank  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/rank.png'); }
.tc-rito  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/rito.png'); }
.tc-subasta  { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/subasta.png'); }
.tc-progreso { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/progreso.png'); }
.tc-mejora   { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/mejora.png'); }
.tc-chat     { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/chat.png'); }
.tc-opciones { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/opciones.png'); }
.tc-armario   { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/armario.png'); }
.tc-habilidades { background-image: linear-gradient(180deg, rgba(8,6,9,0.25) 30%, rgba(5,4,7,0.88) 100%), url('../assets/tarjetas home/habilidades.png'); }
.tc-conquista { background-image: linear-gradient(180deg, rgba(40,8,10,0.35) 20%, rgba(5,4,7,0.9) 100%), url('../assets/tarjetas home/conquista.png'); }

/* ===== TABLÓN DE CONQUISTA (idle de territorio) ===== */
.conquista-cuerpo { flex:1; overflow:hidden; padding:18px 22px; display:grid;
                    grid-template-columns:250px minmax(0,1fr) 300px; gap:16px; }

/* --- Columna izquierda: ficha del personaje --- */
.conq-ficha { padding:16px; display:flex; flex-direction:column; gap:8px; overflow-y:auto; }
.conq-retrato { height:150px; border:1px solid var(--cristal-borde); border-radius:8px; position:relative;
                background:#0a0a0d center top/cover no-repeat; }
.conq-retrato .nivel-badge { position:absolute; bottom:8px; left:8px; }
.conq-nombre { font-size:19px; color:var(--texto-oro); font-weight:700; text-align:center; }
.conq-titulo { font-size:13px; color:var(--texto-tenue); font-style:italic; text-align:center; margin-top:-4px; }
.conq-stat { display:flex; justify-content:space-between; align-items:center; font-size:14px;
             color:var(--texto-tenue); padding:3px 4px; border-bottom:1px solid rgba(74,70,81,0.25); }
.conq-stat b { color:var(--texto); font-size:15px; }
.conq-stat.stat-poder b { color:var(--oro-vivo); }

/* --- Columna central: tasas + mapa --- */
.conquista-centro { display:flex; flex-direction:column; gap:14px; overflow-y:auto; padding-right:4px; }
.conquista-panel { display:flex; gap:14px; flex-wrap:wrap; padding:16px 18px; justify-content:center; }
.conq-tasa { display:flex; flex-direction:column; align-items:center; gap:4px; flex:1; min-width:130px;
             padding:12px 16px; border:1px solid var(--acero); border-radius:8px; background:rgba(0,0,0,0.35); }
.conq-tasa-lbl { font-size:14px; letter-spacing:.06em; text-transform:uppercase; color:var(--texto-tenue); }
.conq-tasa-val { font-size:28px; color:var(--oro-vivo); font-weight:700; line-height:1; }
.conquista-regiones { display:flex; flex-direction:column; gap:14px; }

.conq-region { padding:0; overflow:hidden; }
.conq-region-cab { display:flex; align-items:center; gap:12px; padding:12px 16px; cursor:pointer;
                   border-bottom:1px solid rgba(184,134,11,0.18); }
.conq-region-cab:hover { background:rgba(184,134,11,0.06); }
.conq-toggle { width:30px; height:30px; flex:none; border:1px solid var(--cristal-borde); border-radius:4px;
               background:var(--cristal); color:var(--oro-vivo); font-size:20px; line-height:1; cursor:pointer; }
.conq-region-info h3 { color:var(--texto-oro); font-size:19px; }
.conq-region-sub { font-size:14px; color:var(--texto-tenue); display:flex; gap:12px; flex-wrap:wrap; align-items:center; margin-top:3px; }
.conq-cacique-lbl { letter-spacing:.04em; }
.conq-region-sub b { color:var(--texto); }
.conq-region-sub b.es-cacique { color:var(--r-excellent); }
.conq-region-sub b.es-rival { color:var(--sangre-vivo); }
.conq-bonus { color:var(--texto-tenue); font-weight:600; border:1px solid rgba(107,33,168,0.4);
              border-radius:20px; padding:2px 10px; font-size:13px; opacity:.65; }
.conq-bonus.activo { color:var(--purpura-vivo); border-color:var(--purpura-vivo); opacity:1;
                     box-shadow:0 0 12px rgba(168,85,247,0.3); }
.conq-propios { color:var(--texto-tenue); opacity:.85; }

.conq-nodos { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; padding:14px 16px; }
.conq-nodos.oculto { display:none; }
.conq-nodo { border:1px solid var(--acero); border-left:3px solid var(--sangre); border-radius:5px;
             padding:11px; background:rgba(0,0,0,0.35); display:flex; flex-direction:column; gap:8px; }
.conq-nodo.mio { border-left-color:var(--r-excellent); background:rgba(34,197,94,0.06); }
.conq-nodo.enemigo { border-left-color:var(--sangre-vivo); background:rgba(193,18,31,0.06); }
.conq-nodo-cab { display:flex; align-items:baseline; justify-content:space-between; gap:8px; }
.conq-nodo-nom { font-size:15px; color:var(--texto); font-weight:600; }
.conq-nodo-owner { font-size:12px; color:var(--sangre-vivo); font-weight:600; overflow:hidden;
                   text-overflow:ellipsis; white-space:nowrap; }
.conq-nodo-rec { display:flex; justify-content:space-between; gap:6px; font-size:13px; color:var(--texto-tenue); }
.conq-nodo-acc { margin-top:auto; }
.conq-btn { width:100%; padding:7px 10px; font-size:13px; }
.conq-asaltar { background:linear-gradient(180deg,#7a0d0d,#c1121f); }
.conq-timer { font-family:monospace; font-size:13px; color:var(--oro-vivo); white-space:nowrap; flex:none; }

/* --- Columna derecha: bitácora de batalla --- */
.conq-bitacora { padding:14px 16px; display:flex; flex-direction:column; overflow:hidden; }
.conq-log { overflow-y:auto; display:flex; flex-direction:column; gap:6px; margin-top:6px; padding-right:4px; }
.conq-log-item { font-size:13px; line-height:1.45; color:var(--texto); border-left:2px solid var(--sangre);
                 padding:2px 0 2px 9px; }
.conq-log-item b { color:var(--texto-oro); }
.conq-log-hora { color:var(--texto-tenue); font-size:11px; margin-right:4px; }
.conq-log-vacio { color:var(--texto-tenue); font-style:italic; font-size:13px; }

@media (max-width:1100px){
    .conquista-cuerpo { grid-template-columns:1fr; overflow-y:auto; }
    .conq-ficha, .conq-bitacora { overflow:visible; }
    .conquista-centro { overflow:visible; }
    .conq-log { max-height:260px; }
}
@media (max-width:900px){ .conq-nodos { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .conq-nodos { grid-template-columns:1fr; } }
/* Tablón del Nexo: altura fija para que la rejilla de cards NO se mueva
   tanto si cazas como si no. Dentro conviven la cacería y el feed. */
.panel-nexo { height:230px; padding:16px 18px; display:flex; flex-direction:column; gap:12px; }
.caceria-bloque { display:none; flex-direction:column; gap:10px; }
.caceria-bloque.activo, #panel-aventura.activo { display:flex; }
.aventura-log { height:64px; overflow-y:auto; font-size:13.5px; line-height:1.5;
                background:rgba(0,0,0,0.4); border:1px solid var(--acero); border-radius:4px; padding:8px 10px; }
.aventura-log .l-oro { color: var(--oro-vivo); }
.aventura-log .l-xp  { color: #86efac; }
.aventura-log .l-sys { color: var(--texto-tenue); font-style:italic; }

/* Feed de actividad global (siempre visible) */
.feed-bloque { flex:1; min-height:0; display:flex; flex-direction:column; gap:8px; }
.feed-estado { font-size:11px; letter-spacing:1px; color:var(--verde, #4ade80); margin-left:8px; }
.nexo-feed { flex:1; min-height:0; overflow-y:auto; font-size:13.5px; line-height:1.5;
             background:rgba(0,0,0,0.35); border:1px solid var(--acero); border-radius:4px; padding:8px 10px; }
.feed-item { display:flex; align-items:baseline; gap:8px; padding:4px 0; border-bottom:1px solid rgba(255,255,255,0.05); }
.feed-item:last-child { border-bottom:none; }
.feed-ico { width:18px; text-align:center; flex-shrink:0; }
.feed-txt { flex:1; }
.feed-txt b { color:var(--oro-vivo); }
.feed-ago { color:var(--texto-tenue); font-size:12px; white-space:nowrap; flex-shrink:0; }
.feed-arena_win .feed-ico { color:#fca5a5; }
.feed-levelup .feed-ico { color:#fbbf24; }
.feed-vacio { color:var(--texto-tenue); font-style:italic; text-align:center; padding:18px 8px; }

/* Panel lateral de jugadores conectados */
.panel-online {
    padding:16px 18px; display:flex; flex-direction:column; gap:12px;
    min-height:0; height:100%; align-self:stretch;
}
.online-estado { font-size:11px; letter-spacing:1px; color:var(--texto-tenue); margin-left:8px; }
.online-list { flex:1; min-height:0; overflow-y:auto; display:flex; flex-direction:column; }
.online-item { display:flex; align-items:center; gap:8px; padding:7px 2px; font-size:13.5px;
               border-bottom:1px solid rgba(255,255,255,0.05); }
.online-item:last-child { border-bottom:none; }
.online-av { width:26px; height:26px; border-radius:50%; flex-shrink:0;
             background-size:cover; background-position:center top; background-color:#0c0a0c;
             border:1px solid var(--cristal-borde); }
.online-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; background:#4b5563; }
.online-dot.online { background:#4ade80; box-shadow:0 0 6px #4ade80; }
.online-dot.idle   { background:#facc15; box-shadow:0 0 6px #facc15; }
.online-dot.away   { background:#4b5563; }
.online-nombre { flex:1; color:var(--texto); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.online-nivel  { color:var(--texto-tenue); font-size:12px; flex-shrink:0; }
.online-vacio { color:var(--texto-tenue); font-style:italic; text-align:center; padding:18px 8px; font-size:13px; }

/* Botón "Salir" inyectado en el HUD de cada pantalla (ver construirHudSalir en navegacion.js) */
.hud-salir { font-size:11px; padding:8px 16px; letter-spacing:1px; }

/* ============================================================
   3) STATS — CÍRCULO DE RUNAS
   ============================================================ */
#stats { background: #0a0508; --panel-textura: var(--bg-vault); }
/* Canvas del plasma: ocupa toda la pantalla y queda DETRÁS del contenido */
#plasma-runas {
    position:absolute; inset:0; width:100%; height:100%;
    z-index:0; display:block; pointer-events:none;
}
.stats-cuerpo { flex:1; overflow-y:auto; padding: 22px; display:grid; gap:24px;
                grid-template-columns: 1fr 360px; align-content:start;
                max-width:1180px; margin:0 auto; width:100%; }
.runa-arena { position:relative; width:min(460px,86vw); aspect-ratio:1; margin:0 auto;
              display:flex; align-items:center; justify-content:center; }
.runa-anillo {
    position:absolute; inset:0; border-radius:50%; border: 2px solid var(--cristal-borde);
    box-shadow: inset 0 0 60px rgba(139,0,0,0.25), 0 0 40px rgba(0,0,0,0.6);
    background: radial-gradient(circle, rgba(20,10,12,0.85), rgba(6,4,7,0.95));
}
.runa-anillo.giro { animation: girar 60s linear infinite; }
@keyframes girar { to { transform: rotate(360deg); } }
.runa-nucleo {
    width: 150px; height:150px; border-radius:50%; z-index:2;
    display:flex; flex-direction:column; align-items:center; justify-content:center;
    background: radial-gradient(circle at 50% 35%, #2a1518, #090608);
    border: 2px solid var(--oro); box-shadow: 0 0 30px rgba(139,0,0,0.6), inset 0 0 24px rgba(0,0,0,0.7);
}
.runa-nucleo .num { font-family:'Cinzel'; font-size:48px; font-weight:900; color:var(--oro-vivo);
                    text-shadow:0 0 20px rgba(184,134,11,0.7); line-height:1; }
.runa-nucleo .lbl { font-size:11px; letter-spacing:2px; color:var(--texto-tenue); text-transform:uppercase; text-align:center; }
.runa {
    position:absolute; width: 130px; z-index:3; background: var(--cristal);
    border:1px solid var(--cristal-borde); border-radius:6px; padding:10px; text-align:center;
    transition: border-color .2s, box-shadow .2s, transform .15s;
}
.runa:hover { border-color: var(--oro); box-shadow: 0 0 20px rgba(184,134,11,0.3); }
.runa .glifo { font-size: 30px; filter: drop-shadow(0 0 6px var(--g, #fff)); }
.runa .r-nom { font-family:'Cinzel'; font-size:14px; color:var(--texto-oro); margin:2px 0; }
.runa .r-val { font-size: 26px; font-family:'Cinzel'; font-weight:700; }
.runa .mas {
    margin-top:6px; width:32px; height:32px; border-radius:50%; border:1px solid var(--oro);
    background:linear-gradient(180deg,#7a0d0d,#3a0404); color:var(--oro-vivo); font-size:20px;
    font-weight:700; cursor:pointer; transition:filter .15s, transform .1s;
}
.runa .mas:hover { filter:brightness(1.3); }
.runa .mas:disabled { filter:grayscale(1) brightness(.5); cursor:not-allowed; }
.runa.norte { top:-6px; left:50%; transform:translateX(-50%); }
.runa.sur   { bottom:-6px; left:50%; transform:translateX(-50%); }
.runa.este  { right:-6px; top:50%; transform:translateY(-50%); }
.runa.oeste { left:-6px; top:50%; transform:translateY(-50%); }
.runa.norte:hover, .runa.sur:hover { transform:translateX(-50%) scale(1.04); }
.runa.este:hover,  .runa.oeste:hover{ transform:translateY(-50%) scale(1.04); }
/* Rejilla de los 8 atributos (Círculo de Runas, versión escalable) */
.attr-puntos { text-align:center; color:var(--texto-tenue); font-size:14px; margin-bottom:14px; }
.attr-puntos b { color:var(--oro-vivo); font-family:'Cinzel'; font-size:18px; }
/* Una sola columna de barras horizontales (imagen · nombre · valor · botón). */
.attr-grid { display:flex; flex-direction:column; gap:8px; max-width:613px; margin:0 auto; width:100%; }
.attr-card {
    display:flex; flex-direction:row; align-items:center; gap:16px; text-align:left;
    min-height:74px; padding:0 18px 0 130px;   /* hueco izquierdo para que se vea el arte */
    background-size:cover; background-position:left center;
    border:1px solid var(--cristal-borde); border-left:3px solid var(--g); border-radius:10px;
    box-shadow:inset 0 0 18px rgba(0,0,0,0.5); position:relative; overflow:hidden;
}
/* Velo horizontal: deja ver el arte a la izquierda y oscurece hacia la derecha
   para que el nombre y el número se lean. Conserva un halo del color del atributo. */
.attr-card::before { content:""; position:absolute; inset:0; pointer-events:none; z-index:0;
    background:linear-gradient(90deg, rgba(6,4,8,0.12) 0%, rgba(6,4,8,0.5) 88px, rgba(6,4,8,0.85) 160px, rgba(6,4,8,0.9) 100%);
    box-shadow:inset 0 0 24px color-mix(in srgb, var(--g) 24%, transparent); }
.attr-card .r-nom { position:relative; z-index:1; flex:1; font-family:'Cinzel'; font-size:18px; letter-spacing:1px;
    color:var(--texto-oro); text-shadow:0 1px 4px #000, 0 0 8px rgba(0,0,0,0.9); }
.attr-card .r-val { position:relative; z-index:1; min-width:42px; text-align:right;
    font-size:27px; font-family:'Cinzel'; font-weight:700; filter:drop-shadow(0 0 6px var(--g)); text-shadow:0 2px 6px #000; }
.attr-card .mas {
    position:relative; z-index:1; flex-shrink:0;
    width:36px; height:36px; border-radius:50%; border:1px solid var(--g); background:rgba(0,0,0,0.55);
    color:var(--texto); font-size:20px; cursor:pointer; line-height:1; transition:filter .15s, box-shadow .15s;
}
.attr-card .mas:hover { filter:brightness(1.3); box-shadow:0 0 12px var(--g); }
.attr-card .mas:disabled { filter:grayscale(1) brightness(.5); cursor:not-allowed; box-shadow:none; }
@media (max-width:620px){ .attr-card { padding-left:96px; } }

.derivados { padding:20px; display:flex; flex-direction:column; gap:10px; justify-content: space-between;}
.derivados h3 { color:var(--texto-oro); font-size:20px; }
.deriv-fila { display:flex; justify-content:space-between; font-size:15px; padding:7px 0;
              border-bottom:1px dashed rgba(184,134,11,0.16); }
.deriv-fila .v { color:var(--oro-vivo); font-family:'Cinzel'; font-weight:600; }
.deriv-fila .ico { margin-right:6px; }

/* ============================================================
   4) FORJA / EQUIPO
   ============================================================ */
#forja { background:#05040a; --panel-textura: var(--bg-vault); }
/* Fondo de galaxia animada de la Forja (lo pinta js/galaxy.js). */
#galaxia-forja { position:absolute; inset:0; width:100%; height:100%; z-index:0; display:block; pointer-events:none; }
.forja-cuerpo { flex:1; overflow-y:auto; padding:22px; display:grid; gap:22px;
                grid-template-columns: 320px 1fr; align-content:start; }
/* Maniquí con ranuras de equipo */
.maniqui { padding:20px; display:flex; flex-direction:column; gap:14px; align-items:center; }
.equip-slots { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; width:100%; }
.slot {
    aspect-ratio:1; border-radius:8px; background:rgba(0,0,0,0.4); border:1px solid var(--acero);
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px;
    cursor:pointer; position:relative; transition:all .18s; padding:6px;
}
.slot:hover { border-color:var(--oro); box-shadow:0 0 16px rgba(184,134,11,0.3); }
.slot .s-ico { font-size:34px; }
.slot .s-lbl { font-size:10px; text-transform:uppercase; color:var(--texto-tenue); letter-spacing:1px; }
.slot .s-nom { font-size:11px; font-family:'Cinzel'; line-height:1.1; }
/* Marcador de pieza de conjunto (set) */
.slot .s-set { position:relative; z-index:1; font-size:9px; font-family:'Cinzel'; letter-spacing:.5px;
    text-shadow:0 1px 3px #000; align-self:flex-start; }
.inv-slot .set-mark { position:absolute; bottom:2px; left:4px; z-index:2; font-size:12px;
    filter:drop-shadow(0 0 4px currentColor); }
.slot.vacio { background-size:cover; background-position:center; background-repeat:no-repeat; cursor:default; }
.slot.vacio:hover { border-color:var(--acero); box-shadow:none; }
/* Slot con objeto equipado: imagen de fondo por calidad + nombre legible abajo. */
.slot.equipado { background-size:cover; background-position:center; background-repeat:no-repeat; justify-content:flex-end; }
.slot.equipado::before { content:''; position:absolute; inset:0; border-radius:8px;
    background:linear-gradient(180deg, rgba(0,0,0,0.08) 38%, rgba(0,0,0,0.85) 100%); }
.slot.equipado .s-nom, .slot.equipado .s-lbl { position:relative; z-index:1; text-shadow:0 1px 4px #000, 0 0 8px rgba(0,0,0,0.9); }
.poder-grande { font-family:'Cinzel'; text-align:center; }
.poder-grande .n { font-size:42px; color:var(--oro-vivo); text-shadow:0 0 18px rgba(184,134,11,0.6); }
.poder-grande .l { font-size:12px; letter-spacing:3px; color:var(--texto-tenue); }
/* Inventario */
.inv-panel { padding:20px; display:flex; flex-direction:column; gap:14px; }
/* Casillas de tamaño FIJO (72px): al cambiar el ancho solo cambia cuántas caben
   por fila, no su forma. Así el inventario no "cambia de aspecto" al redimensionar. */
.inv-grid { display:grid; grid-template-columns:repeat(auto-fill,72px); gap:10px; justify-content:center; }
.inv-slot {
    width:72px; height:72px; border-radius:8px; background:rgba(0,0,0,0.45); border:2px solid var(--acero);
    display:flex; align-items:center; justify-content:center; font-size:28px; cursor:pointer;
    position:relative; transition:transform .1s, box-shadow .2s;
}
.inv-slot { background-size:cover; background-position:center; background-repeat:no-repeat; }
.inv-slot:hover { transform:scale(1.06); }

/* Tooltip de previsualización de objetos */
.obj-tooltip {
    position:fixed; z-index:1000; pointer-events:none;
    background:rgba(8,6,12,0.97); border:1px solid var(--oro); border-radius:8px;
    padding:10px 12px; min-width:170px; max-width:250px;
    box-shadow:0 10px 28px rgba(0,0,0,0.65); font-size:13px;
}
.obj-tooltip .tt-nom { font-family:'Cinzel'; font-size:15px; line-height:1.2; margin-bottom:2px; }
.obj-tooltip .tt-rar { font-size:11px; text-transform:uppercase; letter-spacing:1px; margin-bottom:6px; }
.obj-tooltip .tt-stat { color:var(--texto); }
.obj-tooltip .tt-cmp { margin-top:6px; font-size:12px; border-top:1px solid rgba(255,255,255,0.1); padding-top:6px; }
.obj-tooltip:has(.tt-set-detalle) { max-width:290px; }
/* Panel de conjunto (piezas del set + bonos) — se usa en tooltip y en el modal. */
.tt-set-detalle { margin-top:8px; border-top:1px solid rgba(255,255,255,0.14); padding-top:8px; }
.tt-set-cab { font-family:'Cinzel'; font-size:12.5px; letter-spacing:.4px; margin-bottom:6px; }
.tt-set-piezas { display:flex; flex-direction:column; gap:3px; margin-bottom:7px; }
.tt-set-pieza { display:flex; justify-content:space-between; gap:12px; font-size:12px; color:var(--texto-tenue); }
.tt-set-pieza .tt-set-et { font-size:10.5px; white-space:nowrap; opacity:.85; }
.tt-set-pieza.equipada { color:var(--sc); font-weight:600; }
.tt-set-pieza.equipada .tt-set-et { color:var(--sc); }
.tt-set-pieza.enbolsa { color:var(--texto); }
.tt-set-pieza.falta { opacity:.4; }
.tt-set-bonos { display:flex; flex-direction:column; gap:3px; border-top:1px solid rgba(255,255,255,0.08); padding-top:7px; }
.tt-set-bono { font-size:12px; color:var(--texto-tenue); }
.tt-set-bono b { font-family:'Cinzel'; }
.tt-set-bono.activo { color:var(--texto); }
.tt-set-bono.activo b { color:var(--sc); }
.tt-set-bono.activo::before { content:'✔ '; color:#4ade80; }
/* Badge "+N" del color de la rareza (identificar nivel Y rareza de un vistazo). */
.inv-slot .mejora, .slot.equipado .mejora {
    position:absolute; top:3px; right:3px; z-index:2; font-size:11px; font-family:'Cinzel'; font-weight:700;
    color:var(--rc, var(--r-excellent)); background:rgba(5,5,8,0.85);
    border:1px solid var(--rc, var(--r-excellent)); border-radius:6px; padding:0 5px; line-height:15px;
    box-shadow:0 0 8px color-mix(in srgb, var(--rc, #7df9ff) 70%, transparent); text-shadow:0 1px 2px #000;
}
/* Aura del color de la rareza; el brillo crece con el nivel de mejora (--lvl 1..15). */
.inv-slot.mejorado, .slot.equipado.mejorado {
    border-color:var(--rc, var(--r-excellent));
    box-shadow:0 0 calc(5px + var(--lvl,0) * 1.4px) color-mix(in srgb, var(--rc, #7df9ff) 55%, transparent);
}
.inv-slot.mejorado:hover { box-shadow:0 0 calc(9px + var(--lvl,0) * 1.5px) color-mix(in srgb, var(--rc, #7df9ff) 80%, transparent); }
.inv-slot.vacia { border-style:dashed; cursor:default; }
/* Bordes por rareza */
.rar-0 { border-color: var(--r-comun); }
.rar-1 { border-color: var(--r-raro);  box-shadow: inset 0 0 8px rgba(59,130,246,0.35); }
.rar-2 { border-color: var(--r-epico); box-shadow: inset 0 0 8px rgba(168,85,247,0.4); }
.rar-3 { border-color: var(--r-legendario); box-shadow: inset 0 0 10px rgba(245,158,11,0.5); }
.rar-4 { border-color: var(--r-mitico); box-shadow: inset 0 0 12px rgba(193,18,31,0.6), 0 0 10px rgba(193,18,31,0.4); }
.rar-5 { border-color: var(--r-excellent); box-shadow: inset 0 0 12px rgba(34,197,94,0.5), 0 0 12px rgba(34,197,94,0.45); }

/* ============================================================
   5) MERCADO DE LAS SOMBRAS
   ============================================================ */
#mercado { background:#05040a; --panel-textura: var(--bg-mid); }
/* Fondo PrismaticBurst (WebGL) del Mercado: detrás del contenido */
#mercado .prisma-bg { position:absolute; inset:0; width:100%; height:100%; z-index:0; display:block; }
/* Velo más suave aquí para no apagar el efecto */
#mercado .velo { background:
    radial-gradient(ellipse at 50% 28%, rgba(130,18,26,0.10), transparent 55%),
    linear-gradient(180deg, rgba(5,4,7,0.30) 0%, rgba(5,4,7,0.60) 100%); }
.mercado-cuerpo { flex:1; overflow-y:auto; padding:22px; display:grid; gap:20px;
                  grid-template-columns: repeat(3, 1fr); align-content:start;
                  max-width:1100px; margin:0 auto; width:100%; }
.oferta { padding:18px 16px; display:flex; flex-direction:column; gap:12px; align-items:center; text-align:center; position:relative; overflow:hidden; }
/* Tarjeta-cartel: altura mínima estable para que la imagen/vídeo de fondo
   se vea bien (título arriba, botón abajo) en móvil, tablet y escritorio. */
.cofre-card { background:rgba(0,0,0,0.55); min-height:170px; justify-content:space-between; }
.cofre-card .cofre-media { position:absolute; inset:0; z-index:0; }
.cofre-card .cofre-media img,
.cofre-card .cofre-media video { width:100%; height:100%; object-fit:cover; filter:brightness(0.85) contrast(1.1); }
.cofre-card .cofre-media video { position:absolute; inset:0; opacity:0; transition:opacity .4s ease; }
/* Degradado para que el título y el botón se lean sobre la imagen. */
.cofre-card .cofre-media::after { content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(0,0,0,0.62) 0%, rgba(0,0,0,0.12) 42%, rgba(0,0,0,0.68) 100%);
    transition:opacity .4s ease; }
.cofre-card.reproduciendo .cofre-media video { opacity:1; }
.cofre-card.reproduciendo .cofre-media img { opacity:0; }
.cofre-card.reproduciendo .cofre-media::after { opacity:0; } /* vídeo nítido al reproducir */
.cofre-card > *:not(.cofre-media) { position:relative; z-index:1; }
/* Mientras se reproduce el vídeo del cofre, oculta título y botón. */
.cofre-card h3, .cofre-card .btn { transition:opacity .3s ease; }
.cofre-card.reproduciendo h3,
.cofre-card.reproduciendo .btn { opacity:0; pointer-events:none; }
.cofre-card h3 {
    font-size:18px;
    color:var(--texto-oro);
    text-transform:uppercase;
    letter-spacing:1px;
    margin:0;
    line-height:1.2;
    text-shadow:0 2px 6px #000, 0 0 12px rgba(0,0,0,0.85);
}
.oferta p { font-size:13px; color:var(--texto-tenue); line-height:1.4; min-height:54px; }
.cofre-card .btn {
    width:100%;
    letter-spacing:1px;
    font-size:13px;
}

/* --- Responsive del Mercado --- */
@media (max-width:900px){
    .mercado-cuerpo { grid-template-columns: repeat(auto-fill, minmax(190px,1fr)); padding:16px; gap:14px; }
}
@media (max-width:560px){
    .mercado-cuerpo { grid-template-columns: 1fr 1fr; gap:12px; padding:12px; }
    .cofre-card { min-height:148px; padding:14px 10px; }
    .cofre-card h3 { font-size:14px; }
    .cofre-card .btn { font-size:12px; padding:10px 8px; }
}

/* ============================================================
   6) ARENA PvP
   ============================================================ */
#arena { background-image:var(--bg-arena); --panel-textura: var(--bg-arena); }
.arena-cuerpo { flex:1; overflow:hidden; display:flex; flex-direction:column; }
/* Lista de rivales */
.rivales { display:flex; gap:14px; overflow-x:auto; padding:18px 22px; }
.rival-card {
    min-width:180px; padding:16px; text-align:center; cursor:pointer; flex-shrink:0;
    display:flex; flex-direction:column; gap:8px; align-items:center; transition:all .18s;
}
.rival-card.cargando { cursor:default; pointer-events:none; }
.rival-card .spinner {
    width:32px; height:32px; border-radius:50%; border:3px solid rgba(255,255,255,0.15);
    border-top-color:var(--oro-vivo); animation: girar 0.8s linear infinite;
}
.rival-badge {
    font-size:11px; letter-spacing:1px; font-family:'Cinzel'; color:var(--texto-tenue);
    border:1px solid rgba(255,255,255,0.2); border-radius:999px; padding:2px 8px; display:inline-block;
}
.rival-card:hover { transform:translateY(-5px); border-color:var(--oro-vivo); box-shadow:0 0 22px rgba(184,134,11,0.35); }
.rival-card.sel { border-color:var(--sangre-vivo); box-shadow:0 0 24px rgba(193,18,31,0.5); }
.rival-card .r-av {
    display:block; width:96px; height:96px; border-radius:8px; margin:0 auto;
    background-size:cover; background-position:center top; background-repeat:no-repeat;
    border:1px solid var(--acero); box-shadow:0 4px 14px rgba(0,0,0,0.5);
}
/* Jugador real: marco neutro (su avatar se configurará más adelante). */
.rival-card .r-av-jugador {
    background:radial-gradient(circle at 50% 38%, rgba(184,134,11,0.18), rgba(0,0,0,0.55));
    display:flex; align-items:center; justify-content:center;
}
.rival-card .r-av-jugador::after { content:'?'; font-family:'Cinzel'; font-size:34px; color:rgba(255,255,255,0.35); }
.rival-card h4 { font-size:16px; color:var(--texto-oro); }
.rival-card .r-clase { font-size:12px; color:var(--texto-tenue); font-style:italic; }
.rival-card .r-poder { font-family:'Cinzel'; color:var(--oro-vivo); font-weight:700; }
/* Tablero de combate isométrico */
.combate { flex:1; display:flex; flex-direction:column; gap:10px; padding:0 22px 14px; min-height:0; }
.tablero {
    flex:1; min-height:240px; border-radius:10px; position:relative; overflow:hidden;
    border:2px solid var(--sangre); background:#0a0506;
    box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
/* Canvas del plasma: ocupa el tablero y queda DETRÁS de luchadores y suelo */
#plasma-arena {
    position:absolute; inset:0; width:100%; height:100%;
    z-index:0; display:block; pointer-events:none;
}
.tablero .suelo { z-index:1; }
/* Suelo isométrico (rombo) */
.suelo {
    position:absolute; left:50%; top:62%; width:70%; height:46%;
    transform:translate(-50%,-50%) rotateX(58deg); transform-style:preserve-3d;
    border:1px solid rgba(184,134,11,0.25); border-radius:50%;
    background:repeating-radial-gradient(circle, rgba(184,134,11,0.06) 0 2px, transparent 2px 26px);
    box-shadow:0 0 60px rgba(139,0,0,0.4) inset;
}
.luchador { position:absolute; bottom:30%; text-align:center; z-index:3; transition: left .3s, right .3s; }
.luchador.izq { left:18%; } .luchador.der { right:18%; }
.luchador.golpe .nom { animation: golpear .25s ease; }
@keyframes golpear { 0%{filter:brightness(3);} 30%{transform:translateX(12px) scale(1.08);} 100%{transform:none;} }
.luchador .nom {
    font-family:'Cinzel'; font-weight:700; font-size: clamp(20px, 4vw, 38px); color: var(--texto-oro);
    filter: drop-shadow(0 6px 8px rgba(0,0,0,0.7));
    max-width: 200px; white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.luchador .nom.nom-espera { color: var(--texto-tenue); font-style: italic; font-weight: 400;
    font-size: clamp(16px, 2.6vw, 24px); opacity: 0.8; }
.luchador .vidabar { width:120px; height:12px; margin:4px auto 0; background:#050405;
                     border:1px solid var(--acero); border-radius:3px; overflow:hidden; }
.luchador .vidabar i { display:block; height:100%; transition:width .25s; }
.vs-cartel { position:absolute; top:8px; left:50%; transform:translateX(-50%); font-family:'Cinzel';
             color:var(--oro-vivo); font-size:20px; text-shadow:0 0 10px #000; z-index:4; letter-spacing:2px; }
.proyectil { position:absolute; z-index:5; font-size:22px; pointer-events:none; }
.combate-log { height:90px; overflow-y:auto; font-size:13px; line-height:1.5; font-family:monospace;
               background:rgba(0,0,0,0.55); border:1px solid var(--acero); border-radius:4px; padding:8px; }
.cl-p { color:#60a5fa; } .cl-e { color:#f87171; } .cl-s { color:var(--oro-vivo); }

/* ============================================================
   6-bis) ARENA CLASIFICATORIA — cabecera de rango, rachas y paneles
   ============================================================ */
.arena2 { flex:1; overflow-y:auto; padding:12px 26px 8px; display:flex; flex-direction:column; gap:14px;
    width:100%; }

/* Fila 1: rango / puntos / próximo / rachas */
.ar-topstats { display:grid; grid-template-columns:1.4fr .8fr 1.3fr 1.1fr 1.1fr;
    background:rgba(6,4,6,0.93); border:1px solid var(--cristal-borde); border-radius:12px; overflow:hidden; }
.ar-stat { padding:12px 16px; display:flex; flex-direction:column; gap:5px; justify-content:center; min-height: 100px;
    border-right:1px solid rgba(184,134,11,0.14); }
.ar-stat:last-child { border-right:none; }
.ar-stat-lbl { font-family:'Cinzel'; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--texto-tenue); }
.ar-rango-nom { display:flex; align-items:center; gap:9px; font-family:'Cinzel'; font-size:22px; }
.ar-stat-big { font-family:'Cinzel'; font-size:34px; color:var(--oro-vivo); line-height:1; }
.ar-stat-mid { font-family:'Cinzel'; font-size:18px; }
.ar-stat-sub { font-size:11.5px; color:var(--texto-tenue); }
.ar-stat-sub.asc { color:#4ade80; } .ar-stat-sub.desc { color:#f87171; }
.ar-prog { height:9px; border-radius:5px; background:#050405; border:1px solid var(--acero); overflow:hidden; }
.ar-prog i { display:block; height:100%; background:linear-gradient(90deg,#b45309,#f59e0b,#facc15); }
.ar-diams { display:flex; align-items:center; gap:6px; font-family:'Cinzel'; }
.ar-diams b { color:var(--texto); }
.ar-diam { color:rgba(255,255,255,0.18); font-size:15px; }
.ar-diam.on.asc { color:#4ade80; text-shadow:0 0 8px rgba(74,222,128,.6); }
.ar-diam.on.desc { color:#ef4444; text-shadow:0 0 8px rgba(239,68,68,.6); }
.ar-emb { flex-shrink:0; filter:drop-shadow(0 0 5px rgba(0,0,0,0.6)); }

/* Fila 2: bandas anterior « actual » próximo */
.ar-bandas { display:grid; grid-template-columns:1fr auto 1.3fr auto 1fr; align-items:center; gap:10px;
    background:rgba(6,4,6,0.9); border:1px solid var(--cristal-borde); border-radius:12px; padding:12px 20px; }
.ar-banda { display:flex; flex-direction:column; align-items:center; gap:4px; text-align:center; }
.ar-banda.actual { transform:scale(1.04); }
.ar-banda.vacia { opacity:.4; }
.ar-banda-rol { font-family:'Cinzel'; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--texto-tenue); }
.ar-banda-nom { font-family:'Cinzel'; font-size:17px; }
.ar-banda.actual .ar-banda-nom { font-size:22px; }
.ar-banda-rng { font-size:12px; color:var(--texto-tenue); }
.ar-banda-flecha { font-family:'Cinzel'; font-size:24px; color:var(--oro); }

/* Fila 3: rivales + combate */
.ar-main { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(0,1fr); gap:14px; min-height:340px; }
.ar-panel { background:rgba(6,4,6,0.92); border:1px solid var(--cristal-borde); border-radius:12px;
    padding:14px 16px; display:flex; flex-direction:column; min-height:0; }
.ar-panel-cab { font-family:'Cinzel'; font-size:14px; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--texto-oro); margin-bottom:10px; display:flex; align-items:center; gap:8px; }
.ar-panel-cab.centro { justify-content:center; }
.ar-timer { font-size:11px; color:var(--texto-tenue); font-family:'EB Garamond'; letter-spacing:0; text-transform:none; }
.ar-rivales-panel .rivales { display:grid; grid-template-columns:repeat(auto-fill,minmax(140px,1fr));
    gap:10px; overflow-y:auto; padding:4px; }
.ar-rivales-panel .rival-card { min-width:0; padding:12px 8px; }
.ar-rivales-panel .rival-card .r-av { width:64px; height:64px; }
.rival-card { position:relative; }
.r-nivel { position:absolute; top:8px; right:8px; font-family:'Cinzel'; font-size:12px; color:var(--oro-vivo);
    background:rgba(0,0,0,0.6); border:1px solid var(--oro); border-radius:6px; padding:1px 7px; }
.r-delta { display:flex; flex-direction:column; gap:2px; font-size:10.5px; font-family:'Cinzel'; }
.r-delta .win { color:#4ade80; } .r-delta .loss { color:#f87171; }
.ar-vermas { margin-top:10px; align-self:center; background:none; border:1px solid var(--cristal-borde);
    color:var(--texto-oro); font-family:'Cinzel'; letter-spacing:1px; padding:8px 22px; border-radius:8px; cursor:pointer; }
.ar-vermas:hover { border-color:var(--oro); color:var(--oro-vivo); }

.ar-combate-panel { overflow:hidden; }   /* el plasma nunca se sale del panel */
.ar-combate-panel .tablero { flex:1 1 auto; min-height:0; }   /* se adapta a la altura disponible */
/* Velo oscuro sobre el plasma (z=2), por debajo de luchadores (z=3) y del cartel (z=4),
   para que el texto se lea sin apagar del todo el efecto. */
.ar-combate-panel .tablero::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
    background:radial-gradient(120% 120% at 50% 50%, rgba(6,2,4,0.35) 0%, rgba(6,2,4,0.62) 100%); }
.ar-combate-panel .combate-log { margin-top:10px; height:78px; flex-shrink:0; }
.ar-vs { display:grid; grid-template-columns:1fr auto 1fr; align-items:center; gap:10px; margin-bottom:8px; }
.ar-vs-lado { text-align:center; }
.ar-vs-rol { font-family:'Cinzel'; font-size:11px; letter-spacing:2px; color:var(--texto-tenue); }
.ar-vs-nom { font-family:'Cinzel'; font-size:18px; color:var(--texto); }
.ar-vs-rango { font-size:13px; }
.ar-vs-rec { font-size:13px; margin-top:3px; }
.ar-vs-rec .win { color:#4ade80; } .ar-vs-rec .loss { color:#f87171; }
.ar-vs-wr { font-size:12px; color:var(--texto-tenue); }
.ar-vs-mid { font-family:'Cinzel'; font-size:34px; font-weight:700; color:var(--sangre-vivo);
    text-shadow:0 0 16px rgba(193,18,31,0.7); }

/* Fila 4: paneles inferiores */
.ar-bottom { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; }
.ar-bpanel { background:rgba(6,4,6,0.9); border:1px solid var(--cristal-borde); border-radius:12px; padding:14px 16px; }
.ar-bpanel-cab { font-family:'Cinzel'; font-size:13px; letter-spacing:1.2px; text-transform:uppercase;
    color:var(--texto-oro); margin-bottom:10px; text-align:center; }
.ar-bpanel-cab.asc { color:#4ade80; } .ar-bpanel-cab.desc { color:#f87171; }
.ar-bpanel p { font-size:12.5px; color:var(--texto-tenue); line-height:1.5; margin-bottom:5px; }
.ar-bpanel p.centro { text-align:center; }
.ar-bpanel p.asc { color:#4ade80; } .ar-bpanel p.desc { color:#f87171; }
.ar-serie { display:flex; align-items:center; justify-content:center; gap:8px; margin:10px 0; font-size:18px; }
.ar-serie .ar-diam { font-size:16px; }
.ar-serie-meta { font-size:20px; } .ar-serie-meta.asc { color:#4ade80; } .ar-serie-meta.desc { color:#f87171; }
.ar-rec-timer { font-size:13px; color:var(--texto-tenue); margin:8px 0; }
.ar-rec-timer b { color:var(--oro-vivo); font-family:'Cinzel'; }
.ar-rec-btn { margin-top:6px; padding:9px 18px; font-size:13px; }
.ar-rec-hecho { font-size:12.5px; color:#4ade80; margin-top:6px; }

/* Pie: retar + pestañas */
.ar-footer { display:flex; align-items:center; gap:16px; padding:10px 22px; border-top:1px solid var(--cristal-borde);
    background:rgba(5,3,5,0.65); }
.ar-retar { background:linear-gradient(180deg,#8B0000,#4a0606); border:1px solid #c1121f; font-family:'Cinzel';
    letter-spacing:1px; padding:12px 30px; }
.ar-retar:not([disabled]):hover { box-shadow:0 0 18px rgba(193,18,31,0.5); }
.ar-footer-hint { flex:1; font-size:13px; color:var(--texto-tenue); }
.ar-tabs { display:flex; gap:6px; }
.ar-tab { display:flex; align-items:center; gap:6px; cursor:pointer; padding:8px 14px; border-radius:8px;
    font-family:'Cinzel'; font-size:12.5px; color:var(--texto-tenue); border:1px solid transparent; }
.ar-tab:hover { color:var(--oro-vivo); border-color:var(--cristal-borde); background:rgba(184,134,11,0.08); }
.ar-tab .ico { font-size:11px; }

@media (max-width:1100px){
    .ar-topstats { grid-template-columns:1fr 1fr; }
    .ar-bandas { grid-template-columns:1fr; }
    .ar-banda-flecha { display:none; }
    .ar-main { grid-template-columns:1fr; }
    .ar-bottom { grid-template-columns:1fr 1fr; }
    .ar-footer { flex-wrap:wrap; }
}

/* ============================================================
   7) CLANES
   ============================================================ */
#clanes { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/clan.png'); --panel-textura: var(--bg-mid); }
.clan-cuerpo { flex:1; overflow-y:auto; padding:22px; display:grid; gap:20px; align-content:start; }
.clan-grid { display:grid; gap:18px; grid-template-columns: 1fr 340px; }
.miembro { display:flex; justify-content:space-between; align-items:center; padding:8px 12px;
           border-bottom:1px dashed rgba(184,134,11,0.15); font-size:15px; }
.miembro .m-nom { display:flex; align-items:center; gap:8px; }
.miembro .m-rango { font-size:11px; color:var(--texto-tenue); text-transform:uppercase; letter-spacing:1px; }
.miembro .m-poder { color:var(--oro-vivo); font-family:'Cinzel'; }
.clan-vacio { text-align:center; display:flex; flex-direction:column; gap:16px; align-items:center; padding:30px; }
.clan-vacio .spinner { width:34px; height:34px; border-radius:50%; border:3px solid rgba(255,255,255,0.15);
    border-top-color:var(--oro-vivo); animation:girar .8s linear infinite; }

/* --- Pantalla sin clan: fundar + hermandades --- */
.clan-join { display:grid; grid-template-columns:360px 1fr; gap:18px; max-width:1100px; margin:0 auto; width:100%; align-items:start; }
.clan-fundar, .clan-hermandades { padding:20px; }
.clan-listado-cont { display:flex; flex-direction:column; gap:10px; max-height:460px; overflow-y:auto; }
.clan-listado { display:flex; align-items:center; gap:14px; background:rgba(0,0,0,0.3);
    border:1px solid rgba(255,255,255,0.07); border-radius:10px; padding:10px 14px; }
.clan-listado-vacio { color:var(--texto-tenue); font-style:italic; text-align:center; padding:22px; }
.cl-emb { width:46px; height:46px; flex-shrink:0; border-radius:8px; display:grid; place-items:center;
    font-family:'Cinzel'; font-size:15px; color:var(--oro-vivo); background:linear-gradient(180deg,#2a1a0e,#120a06);
    border:1px solid var(--cristal-borde); }
.cl-info { flex:1; min-width:0; }
.cl-nom { font-family:'Cinzel'; font-size:16px; color:var(--texto); }
.cl-sub { font-size:12px; color:var(--texto-tenue); margin-top:2px; }

/* --- Detalle del clan (organigrama) --- */
.clan-detalle { display:flex; flex-direction:column; gap:16px; max-width:1200px; margin:0 auto; width:100%; }
.clan-cab { display:flex; align-items:center; gap:18px; padding:18px 22px; flex-wrap:wrap; }
.clan-cab-emb { width:70px; height:70px; flex-shrink:0; border-radius:12px; display:grid; place-items:center;
    font-family:'Cinzel'; font-size:22px; color:var(--oro-vivo); background:linear-gradient(180deg,#2a1a0e,#120a06);
    border:1px solid var(--oro); box-shadow:0 0 18px rgba(184,134,11,0.3); }
.clan-cab-info { flex:1; min-width:200px; }
.clan-cab-info h2 { font-family:'Cinzel'; color:var(--texto-oro); font-size:26px; }
.clan-cab-sub { color:var(--texto-tenue); font-size:14px; margin-top:3px; }
.clan-cab-arcas { font-size:13.5px; margin-top:5px; color:var(--texto); }
.clan-cab-acc { display:flex; flex-direction:column; gap:8px; }
.clan-salir { border-color:#7a2418 !important; color:#fca5a5 !important; }
.clan-salir:hover { box-shadow:0 0 12px rgba(122,36,24,0.5); }
.clan-guerra { padding:16px 22px; }

/* --- Jerarquía --- */
.clan-org { padding:18px 22px; display:flex; flex-direction:column; gap:16px; }
.clan-rango-grupo { border-top:1px solid rgba(184,134,11,0.14); padding-top:12px; }
.clan-rango-grupo:first-of-type { border-top:none; padding-top:0; }
.clan-rango-cab { display:flex; align-items:center; gap:10px; margin-bottom:12px; }
.clan-rango-badge { font-family:'Cinzel'; font-size:13px; color:#0a0608; background:var(--rc); border-radius:6px;
    padding:2px 9px; box-shadow:0 0 12px color-mix(in srgb, var(--rc) 55%, transparent); }
.clan-rango-nom { font-family:'Cinzel'; font-size:17px; letter-spacing:1px; }
.clan-rango-n { color:var(--texto-tenue); font-size:13px; }
.clan-miembros { display:grid; grid-template-columns:repeat(auto-fill,minmax(240px,1fr)); gap:10px; }
.clan-miembro { display:flex; align-items:center; gap:12px; background:rgba(0,0,0,0.3);
    border:1px solid rgba(255,255,255,0.07); border-radius:10px; padding:9px 12px; position:relative; }
.clan-miembro.yo { border-color:var(--oro); background:rgba(184,134,11,0.1); }
.clan-m-av { width:48px; height:48px; flex-shrink:0; border-radius:50%; background-size:cover; background-position:center top;
    background-color:#0c0a0c; border:2px solid var(--acero); position:relative; }
.clan-m-dot { position:absolute; right:-1px; bottom:-1px; width:13px; height:13px; border-radius:50%;
    border:2px solid #0a0608; }
.clan-m-dot.on { background:#4ade80; box-shadow:0 0 6px #4ade80; }
.clan-m-dot.off { background:#555; }
.clan-m-info { flex:1; min-width:0; }
.clan-m-nom { font-family:'Cinzel'; font-size:14.5px; color:var(--texto); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.clan-m-tu { color:var(--oro); font-size:11px; }
.clan-m-stats { font-size:12.5px; color:var(--texto-tenue); margin-top:2px; }
.clan-m-pwr { color:var(--oro-vivo); font-family:'Cinzel'; }
.clan-m-acc { display:flex; gap:4px; flex-shrink:0; }
.clan-m-btn { width:26px; height:26px; border-radius:6px; border:1px solid rgba(255,255,255,0.15);
    background:rgba(0,0,0,0.4); color:var(--texto); cursor:pointer; font-size:12px; line-height:1;
    display:grid; place-items:center; transition:filter .15s, box-shadow .15s; }
.clan-m-btn:hover { filter:brightness(1.3); }
.clan-m-btn.up { color:#4ade80; border-color:#4ade8055; }
.clan-m-btn.down { color:#fbbf24; border-color:#fbbf2455; }
.clan-m-btn.crown { color:var(--oro-vivo); border-color:var(--oro); }
.clan-m-btn.kick { color:#f87171; border-color:#f8717155; }
@media (max-width:820px){ .clan-join { grid-template-columns:1fr; } }

/* ============================================================
   8) REENCARNACIÓN / PRESTIGIO
   ============================================================ */
#reencarnar { background-image:var(--bg-intro); --panel-textura: var(--bg-intro); }
.reen-cuerpo { flex:1; overflow-y:auto; display:flex; flex-direction:column; align-items:center;
               justify-content:center; gap:22px; padding:30px; text-align:center; }
.portal {
    width:210px; height:210px; border-radius:50%; position:relative;
    box-shadow: 0 0 60px rgba(168,85,247,0.6);
    animation: pulso-portal 3s ease-in-out infinite;   /* palpita */
}
.portal::before {
    content:""; position:absolute; inset:0; border-radius:50%;
    background: url('../assets/rito/rito.png') center/cover no-repeat;
    animation: girar 18s linear infinite;              /* gira lentamente */
}
@keyframes pulso-portal { 0%,100%{transform:scale(1);} 50%{transform:scale(1.06);} }
.reen-bonos { display:flex; gap:18px; flex-wrap:wrap; justify-content:center; }
.bono-card { padding:16px 22px; min-width:150px; }
.bono-card .b-n { font-family:'Cinzel'; font-size:26px; color:#7dd3fc; }
.bono-card .b-l { font-size:12px; color:var(--texto-tenue); letter-spacing:1px; }

.sello { font-family:'Cinzel'; color:var(--sangre-vivo); letter-spacing:4px; font-size:13px;
         border:1px solid var(--sangre); padding:6px 18px; border-radius:3px; }

/* ============================================================
   RANKING
   ============================================================ */
#ranking { background-image:var(--bg-arena); --panel-textura: var(--bg-arena); }
.ranking-cuerpo { flex:1; min-height:0; overflow-y:auto; padding:22px; display:flex; justify-content:center; align-items:flex-start; }
.tabla-rank { width:min(760px,100%); display:flex; flex-direction:column; }
.rank-fila { display:grid; grid-template-columns: 60px 1fr 170px 100px 110px; align-items:center;
             padding:11px 16px; border-bottom:1px solid rgba(184,134,11,0.12); font-size:16px; }
.rank-rango { display:inline-flex; align-items:center; gap:6px; font-family:'Cinzel'; font-size:13.5px; }
.rank-rango svg { flex-shrink:0; }
.rank-fila.cab { color:var(--texto-tenue); font-family:'Cinzel'; font-size:12px; letter-spacing:1px;
                 text-transform:uppercase; border-bottom:1px solid var(--oro); }
.rank-fila.yo { background:rgba(184,134,11,0.12); border-left:3px solid var(--oro); }
.rank-pos { font-family:'Cinzel'; font-weight:700; font-size:20px; }
.rank-pos.oro1 { color:#fbbf24; } .rank-pos.oro2 { color:#cbd5e1; } .rank-pos.oro3 { color:#d97706; }
.rank-nom { display:flex; align-items:center; gap:8px; }
/* Bola verde de "en línea" (ranking y arena). */
.online-bola { display:inline-block; width:10px; height:10px; border-radius:50%; flex-shrink:0;
    background:#4ade80; box-shadow:0 0 8px #4ade80; }
.arena-bola { position:absolute; top:8px; left:8px; z-index:3; animation:latido 1.6s infinite; }
.rank-poder { color:var(--oro-vivo); font-family:'Cinzel'; text-align:right; }
/* Pestañas del ranking (Humanos / General / Clanes) */
.rank-tabs { display:flex; gap:8px; padding:14px 16px; border-bottom:1px solid var(--cristal-borde); }
.rank-tab {
    flex:1; font-family:'Cinzel'; font-size:13px; letter-spacing:1px; text-transform:uppercase;
    background:transparent; color:var(--texto-tenue); cursor:pointer;
    border:1px solid rgba(255,255,255,0.14); border-radius:6px; padding:9px 8px; transition:all .15s ease;
}
.rank-tab:hover { color:var(--texto); border-color:var(--oro-vivo); }
.rank-tab.activo {
    color:var(--texto); border-color:var(--oro);
    background:linear-gradient(180deg, #7a0d0d 0%, #4a0606 100%);
    box-shadow:0 0 14px rgba(184,134,11,0.4);
}
.rank-aviso { text-align:center; padding:40px 22px; color:var(--texto-tenue); }
.rank-aviso h3 { font-family:'Cinzel'; color:var(--texto-oro); margin-bottom:10px; letter-spacing:1px; }
.rank-aviso p { line-height:1.6; max-width:460px; margin:0 auto; }

/* ============================================================
   SUBASTA
   ============================================================ */
#subasta { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/subasta.png'); --panel-textura: var(--bg-vault); }
.subasta-cuerpo { flex:1; overflow-y:auto; padding:22px; }
.subasta-reloj { font-family:'Cinzel'; font-size:13px; letter-spacing:1px; color:var(--oro-vivo);
                 border:1px solid var(--cristal-borde); border-radius:4px; padding:8px 14px; background:var(--cristal); }
.subasta-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; max-width:1080px; margin:0 auto; }
.subasta-cab-acc { display:flex; align-items:center; gap:14px; }
.subasta-refrescar { font-size:13px; padding:9px 16px; white-space:nowrap; }
.subasta-refrescar .ico { font-size:11px; }
.subasta-card {
    background:var(--cristal); border:1px solid var(--cristal-borde); border-radius:8px;
    padding:14px; display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center;
    transition:transform .15s, box-shadow .2s, border-color .2s;
}
.subasta-card:hover { transform:translateY(-4px); box-shadow:0 0 22px rgba(184,134,11,0.3); }
.subasta-card .sub-img { width:96px; height:96px; border-radius:6px; background-size:cover; background-position:center;
    background-color:#0c0a0c; border:2px solid var(--acero); box-shadow:inset 0 0 20px rgba(0,0,0,0.6); }
.subasta-card.rar-1 .sub-img { border-color:var(--r-raro); }
.subasta-card.rar-2 .sub-img { border-color:var(--r-epico); }
.subasta-card.rar-3 .sub-img { border-color:var(--r-legendario); }
.subasta-card.rar-4 .sub-img { border-color:var(--r-mitico); box-shadow:0 0 16px rgba(193,18,31,0.5); }
.subasta-card.rar-5 .sub-img { border-color:var(--r-excellent); box-shadow:0 0 18px rgba(34,197,94,0.55); }
.sub-nom { font-family:'Cinzel'; font-size:14px; line-height:1.2; }
.sub-stat { font-size:13px; color:var(--texto); }
.sub-req { font-size:12px; color:var(--texto-tenue); }
.sub-req.malo { color:#fca5a5; }
.sub-comprar { width:100%; font-size:13px; padding:9px; margin-top:2px; }
.subasta-card.vendido { opacity:0.5; position:relative; }
.sub-vendido-sello { position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:'Cinzel'; font-weight:700; letter-spacing:3px; color:var(--texto-tenue);
    background:rgba(5,4,7,0.55); border-radius:8px; }

/* ============================================================
   PROGRESO (misiones AFK)
   ============================================================ */
#progreso { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/progreso.png'); --panel-textura: var(--bg-mid); }
.progreso-cuerpo { flex:1; overflow-y:auto; padding:22px; }
.progreso-lista { display:flex; flex-direction:column; gap:12px; max-width:820px; margin:0 auto; }
.prog-fila {
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    background:var(--cristal); border:1px solid var(--cristal-borde); border-radius:8px; padding:16px 20px;
}
.prog-fila.listo { border-color:var(--oro); box-shadow:0 0 16px rgba(184,134,11,0.35); }
.prog-info { flex:1; min-width:0; }
.prog-nom { font-family:'Cinzel'; font-size:17px; color:var(--texto-oro); display:flex; align-items:center; gap:10px; }
.prog-dur { font-size:12px; color:var(--texto-tenue); font-family:'EB Garamond'; }
.prog-listo-badge { font-size:11px; letter-spacing:1px; color:#4ade80; border:1px solid #4ade80;
    border-radius:4px; padding:1px 8px; font-family:'Cinzel'; }
.prog-recompensa { font-size:13px; color:var(--texto-tenue); margin-top:4px; }
.prog-accion { flex-shrink:0; width:180px; display:flex; justify-content:flex-end; }
.prog-btn { min-width:120px; font-size:13px; padding:10px 14px; }
.prog-recoger { background:linear-gradient(180deg,#166534,#052e16); border-color:#4ade80; }
.prog-recoger:hover { box-shadow:0 0 16px rgba(74,222,128,0.4); }
.prog-corriendo { width:180px; }
.prog-corriendo .barra { height:22px; }
@media (max-width:920px){
    .subasta-grid { grid-template-columns:repeat(2,1fr); }
    .prog-fila { flex-direction:column; align-items:stretch; }
    .prog-accion { width:100%; justify-content:stretch; }
    .prog-btn, .prog-corriendo { width:100%; }
}

/* ============================================================
   MEJORAR (La Fragua de Poder)
   ============================================================ */
#mejorar { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/mejora.png'); --panel-textura: var(--bg-vault); }
/* ============================================================
   LA FRAGUA DE PODER — rediseño de cámara de forja (3 columnas
   arriba + paneles inferiores + barra de recursos).
   Canvas del borde eléctrico (lo gestiona js/electricborder.js).
   ============================================================ */
.eb-canvas { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    pointer-events:none; z-index:4; display:block; }

.fragua-cuerpo { flex:1; overflow-y:auto; padding:20px 28px 26px; display:flex; flex-direction:column; gap:20px;
    width:100%; }
.fragua-top { display:grid; grid-template-columns:1.05fr 1.1fr 1.05fr; gap:22px; }
.fragua-bottom { display:grid; grid-template-columns:repeat(3,1fr) 0.85fr; gap:22px; }
.fragua-panel {
    position:relative;
    background:linear-gradient(180deg, rgba(20,16,22,0.82), rgba(6,5,8,0.9));
    border:1px solid var(--cristal-borde); border-radius:12px; padding:22px 26px;
    box-shadow:inset 0 0 34px rgba(0,0,0,0.55), 0 8px 26px rgba(0,0,0,0.45);
}
.fr-vacio { text-align:center; color:var(--texto-tenue); padding:34px 14px; line-height:1.7; font-size:14.5px; }
.fr-vacio span { font-size:13.5px; opacity:0.85; }
.fr-vacio-centro { padding:60px 14px; }
.fr-cab, .fr-panel-cab { font-family:'Cinzel'; letter-spacing:1.5px; text-transform:uppercase;
    color:var(--texto-oro); text-align:center; font-size:15px; margin-bottom:16px; }
.fr-panel-cab { font-size:14px; margin-bottom:14px; }

/* --- Columna izquierda: objeto --- */
.fr-item-top { display:flex; align-items:center; gap:16px; margin-bottom:16px; }
.fr-item-img { width:88px; height:88px; flex-shrink:0; border-radius:10px; background-size:cover; background-position:center;
    background-color:#0c0a0c; border:2px solid var(--acero); box-shadow:0 0 18px rgba(0,0,0,0.5); }
.fr-item-img.rar-1 { border-color:var(--r-raro); }
.fr-item-img.rar-2 { border-color:var(--r-epico); box-shadow:0 0 16px rgba(168,85,247,0.4); }
.fr-item-img.rar-3 { border-color:var(--r-legendario); box-shadow:0 0 16px rgba(245,158,11,0.4); }
.fr-item-img.rar-4 { border-color:var(--r-mitico); box-shadow:0 0 16px rgba(193,18,31,0.45); }
.fr-item-img.rar-5 { border-color:var(--r-excellent); box-shadow:0 0 16px rgba(34,197,94,0.45); }
.fr-item-nom { font-family:'Cinzel'; font-size:23px; line-height:1.15; }
.fr-item-nivel { color:var(--texto-tenue); font-size:15px; margin-top:6px; }
.fr-lvl { color:var(--oro-vivo); }
.fr-arrow { color:var(--oro-vivo); font-weight:700; }
.fr-up { color:#86efac; }
.fr-item-statlbl { font-size:12.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--texto-tenue); font-family:'Cinzel'; }
.fr-item-statval { font-size:32px; color:var(--texto); margin:3px 0 18px; }
.fr-item-statval b { font-family:'Cinzel'; }
.fr-delta { color:#86efac; font-size:17px; font-family:'Cinzel'; margin-left:2px; }

.fr-prob { margin-bottom:16px; }
.fr-prob-row { display:flex; justify-content:space-between; font-size:14px; color:var(--texto-tenue); margin-bottom:6px; }
.fr-prob-ok { color:var(--oro-vivo); font-family:'Cinzel'; }
.fr-prob-safe { color:#86efac; }
.fr-prob-sub { margin-top:7px; margin-bottom:0; }
.fr-prob-bar { height:13px; border-radius:6px; background:#050405; border:1px solid var(--acero); overflow:hidden; }
.fr-prob-bar i { display:block; height:100%; background:linear-gradient(90deg,#b45309,#f59e0b,#4ade80); }

.fr-req { font-size:14px; color:var(--texto-tenue); margin-bottom:18px; }
.fr-req .malo { color:#fca5a5; }

.fr-item-accion { display:flex; align-items:center; gap:14px; }
.fr-btn-wrap { display:flex; flex-direction:column; gap:6px; }
.fr-btn { font-family:'Cinzel'; letter-spacing:1px; font-size:15px; padding:13px 30px;
    background:linear-gradient(180deg,#8B0000,#4a0606); border:1px solid #c1121f; }
.fr-btn:not([disabled]):hover { box-shadow:0 0 18px rgba(193,18,31,0.5); }
.fr-btn-coste { text-align:center; font-family:'Cinzel'; font-size:14px; color:var(--oro-vivo); }
.fr-btn-coste .ico { font-size:12px; }
.fr-prot { display:flex; align-items:center; gap:11px; flex:1; padding:10px 12px; border:1px solid rgba(255,255,255,0.08);
    border-radius:8px; background:rgba(0,0,0,0.25); }
.fr-prot-box { width:26px; height:26px; flex-shrink:0; display:grid; place-items:center; border-radius:5px;
    border:1px solid var(--oro); color:#86efac; font-size:15px; }
.fr-prot-tit { font-size:14px; color:var(--texto); }
.fr-prot-sub { font-size:12.5px; color:var(--texto-tenue); }

/* --- Columna central: nivel de mejora + anillo --- */
.fragua-centro { display:flex; flex-direction:column; align-items:center;
    background:linear-gradient(180deg, rgba(20,16,22,0.82), rgba(6,5,8,0.9)), var(--bg-vault);
    background-size:auto, cover; background-blend-mode:normal, overlay; }
.fr-orbes { display:flex; align-items:center; justify-content:center; gap:14px; margin:6px 0 20px; }
.fr-orbe { display:flex; flex-direction:column; align-items:center; gap:8px; }
.fr-orbe-img { width:86px; height:86px; border-radius:50%; background-size:cover; background-position:center;
    background-color:#0c0a0c; }
.fr-orbe.from .fr-orbe-img { border:3px solid var(--r-raro); box-shadow:0 0 22px rgba(59,130,246,0.55); }
.fr-orbe.to .fr-orbe-img { border:3px solid var(--r-excellent); box-shadow:0 0 26px rgba(34,197,94,0.6); }
.fr-orbe.to.max .fr-orbe-img { border-color:var(--oro-vivo); box-shadow:0 0 26px rgba(230,181,74,0.6); }
.fr-orbe-lbl { font-family:'Cinzel'; font-size:17px; }
.fr-orbe.from .fr-orbe-lbl { color:var(--r-raro); }
.fr-orbe.to .fr-orbe-lbl { color:var(--r-excellent); }
.fr-orbe.to.max .fr-orbe-lbl { color:var(--oro-vivo); }
.fr-orbe-flecha { font-size:26px; color:var(--oro-vivo); text-shadow:0 0 10px rgba(230,181,74,0.6); }
.fr-anillo { position:relative; width:190px; height:190px; margin:4px 0 12px; }
.fr-anillo svg { width:100%; height:100%; }
.fr-anillo-bg { fill:none; stroke:rgba(255,255,255,0.08); stroke-width:6; }
.fr-anillo-fg { fill:none; stroke:url(#frgrad); stroke:var(--oro-vivo); stroke-width:6; stroke-linecap:round;
    filter:drop-shadow(0 0 6px rgba(230,181,74,0.7)); transition:stroke-dasharray .5s ease; }
.fr-anillo-txt { position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.fr-anillo-txt b { font-family:'Cinzel'; font-size:40px; color:var(--oro-vivo); line-height:1; }
.fr-anillo-txt span { font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--texto-tenue); margin-top:4px; }
.fr-garantia { font-size:13.5px; color:var(--texto-tenue); font-style:italic; text-align:center; }

/* --- Columna derecha: bolsa --- */
.fr-bolsa-lista { display:flex; flex-direction:column; gap:10px; max-height:380px; overflow-y:auto; padding-right:4px; }
.fr-fila { position:relative; display:flex; align-items:center; gap:14px; cursor:pointer;
    background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.07); border-radius:9px; padding:11px 14px;
    transition:border-color .15s, background .15s; }
.fr-fila:hover { background:rgba(255,255,255,0.04); }
.fr-fila.sel { border-color:var(--oro); box-shadow:0 0 14px rgba(184,134,11,0.3); background:rgba(184,134,11,0.08); }
.fr-fila-img { width:54px; height:54px; flex-shrink:0; border-radius:6px; background-size:cover; background-position:center;
    background-color:#0c0a0c; border:2px solid var(--acero); }
.fr-fila.rar-1 .fr-fila-img { border-color:var(--r-raro); }
.fr-fila.rar-2 .fr-fila-img { border-color:var(--r-epico); }
.fr-fila.rar-3 .fr-fila-img { border-color:var(--r-legendario); }
.fr-fila.rar-4 .fr-fila-img { border-color:var(--r-mitico); }
.fr-fila.rar-5 .fr-fila-img { border-color:var(--r-excellent); }
.fr-fila-info { flex:1; min-width:0; }
.fr-fila-nom { font-family:'Cinzel'; font-size:15.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.fr-fila-lvl { color:var(--oro-vivo); font-size:13px; }
.fr-fila-stat { font-size:13.5px; color:var(--texto-tenue); margin-top:3px; }
.fr-fila-coste { flex-shrink:0; font-family:'Cinzel'; font-size:14px; color:var(--oro-vivo); }
.fr-fila-coste .ico { font-size:11px; }
.fr-fila-max { flex-shrink:0; font-family:'Cinzel'; font-size:13px; color:var(--texto-tenue); }

/* --- Paneles inferiores --- */
.fr-info-lista { list-style:none; display:flex; flex-direction:column; gap:12px; }
.fr-info-lista li { position:relative; padding-left:22px; font-size:14.5px; color:var(--texto-tenue); line-height:1.55; }
.fr-info-lista li::before { content:'◆'; position:absolute; left:0; top:2px; color:var(--oro); font-size:11px; }
.fr-info-lista b { color:var(--texto); }

.fr-hist-lista { display:flex; flex-direction:column; gap:9px; }
.fr-hist-vacio { color:var(--texto-tenue); font-style:italic; font-size:14px; text-align:center; padding:18px 8px; }
.fr-hist-fila { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:9px;
    background:rgba(0,0,0,0.3); border:1px solid rgba(255,255,255,0.06); border-radius:7px; padding:10px 13px; font-size:14.5px; }
.fr-hist-ico { color:#4ade80; }
.fr-hist-niv { font-family:'Cinzel'; color:var(--texto); }
.fr-hist-res { color:#4ade80; font-size:12px; letter-spacing:1px; font-family:'Cinzel'; grid-column:2; justify-self:start; }
.fr-hist-hace { color:var(--texto-tenue); font-size:13px; }

.fr-bonus-lista { display:flex; flex-direction:column; gap:7px; }
.fr-bonus-fila { display:flex; align-items:center; gap:14px; font-size:14.5px; color:var(--texto-tenue);
    padding:8px 12px; border-radius:6px; }
.fr-bonus-fila.on { color:var(--texto); background:rgba(184,134,11,0.1); }
.fr-bonus-niv { font-family:'Cinzel'; color:var(--oro-vivo); min-width:38px; }
.fr-bonus-fila.on .fr-bonus-niv::after { content:' ✔'; color:#4ade80; }

.fragua-arte { padding:0; overflow:hidden; background:var(--bg-vault); background-size:cover; background-position:center; }
.fragua-arte::after { content:''; position:absolute; inset:0;
    background:url('../assets/tarjetas home/forja.png') center/cover no-repeat;
    box-shadow:inset 0 0 60px rgba(0,0,0,0.6); }

@media (max-width:1150px){
    .fragua-top { grid-template-columns:1fr; }
    .fragua-bottom { grid-template-columns:1fr 1fr; }
    .fragua-arte { display:none; }
}
@media (max-width:680px){
    .fragua-bottom { grid-template-columns:1fr; }
}

/* ============================================================
   CHAT DEL NEXO
   ============================================================ */
#chat { background-image: var(--bg-mid); --panel-textura: var(--bg-mid); }
.chat-cuerpo { flex:1; min-height:0; display:grid; grid-template-columns: 1fr 260px; gap:18px; padding:22px; }
.chat-main { display:flex; flex-direction:column; min-height:0; overflow:hidden; }
.chat-header { font-family:'Cinzel'; font-size:15px; color:var(--texto-oro); letter-spacing:1px;
    padding:14px 18px; border-bottom:1px solid var(--cristal-borde); flex-shrink:0; }
.chat-mensajes { flex:1; min-height:0; overflow-y:auto; padding:14px 18px; display:flex; flex-direction:column; gap:8px; }
.chat-vacio { color:var(--texto-tenue); font-style:italic; text-align:center; margin:auto; padding:20px; }
.chat-msg { display:flex; flex-direction:column; max-width:78%; align-self:flex-start;
    background:rgba(0,0,0,0.35); border:1px solid rgba(255,255,255,0.08); border-radius:8px; padding:7px 12px; }
.chat-msg.mio { align-self:flex-end; background:linear-gradient(180deg, rgba(122,13,13,0.55), rgba(74,6,6,0.55));
    border-color:var(--cristal-borde); }
.chat-autor { font-family:'Cinzel'; font-size:11px; letter-spacing:.5px; color:var(--oro-vivo); margin-bottom:2px; }
.chat-msg.mio .chat-autor { color:var(--texto-oro); }
.chat-body { font-size:14.5px; color:var(--texto); line-height:1.4; word-break:break-word; }
.chat-input-row { display:flex; gap:10px; padding:12px 14px; border-top:1px solid var(--cristal-borde); flex-shrink:0; }
.chat-input { flex:1; padding:11px 14px; border-radius:6px; font-family:'EB Garamond'; font-size:14px;
    background:rgba(0,0,0,0.4); border:1px solid rgba(255,255,255,0.18); color:var(--texto); }
.chat-input:focus { outline:none; border-color:var(--oro); box-shadow:0 0 10px rgba(184,134,11,0.3); }
.chat-input-row .btn { padding:11px 20px; font-size:13px; }

.chat-lateral { padding:14px 12px; display:flex; flex-direction:column; gap:8px; min-height:0; overflow-y:auto; }
.chat-canales { display:flex; flex-direction:column; gap:4px; }
.chat-canal { display:flex; align-items:center; gap:8px; padding:8px 10px; border-radius:6px; cursor:pointer;
    transition:background .15s, border-color .15s; border:1px solid transparent; position:relative; }
.chat-canal:hover { background:rgba(255,255,255,0.05); }
.chat-canal.activo { background:rgba(184,134,11,0.12); border-color:var(--oro); }
.chat-canal-ico { width:24px; text-align:center; font-family:'Cinzel'; color:var(--oro-vivo); font-size:16px; }
.chat-canal-nom { flex:1; color:var(--texto); font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chat-av { width:24px; height:24px; border-radius:50%; flex-shrink:0; background-size:cover; background-position:center top;
    background-color:#0c0a0c; border:1px solid var(--cristal-borde); }
.chat-online-lbl { font-size:11px; letter-spacing:1px; color:var(--texto-tenue); text-transform:uppercase;
    font-family:'Cinzel'; margin:10px 6px 2px; }
.chat-online-vacio { color:var(--texto-tenue); font-style:italic; font-size:12px; padding:6px 10px; }
.chat-unread { width:8px; height:8px; border-radius:50%; background:#c1121f; box-shadow:0 0 6px #c1121f; flex-shrink:0; }
@media (max-width:920px){
    .chat-cuerpo { grid-template-columns:1fr; }
    .chat-lateral { max-height:180px; }
}

/* ============================================================
   OPCIONES
   ============================================================ */
#opciones { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/opciones.png'); --panel-textura: var(--bg-mid); }
.opciones-cuerpo { flex:1; overflow-y:auto; padding:22px; display:flex; flex-direction:column; gap:18px;
    max-width:560px; margin:0 auto; width:100%; }
.opc-bloque { padding:20px; display:flex; flex-direction:column; gap:12px; }
.opc-info { color:var(--texto); font-size:14px; }
.opc-aviso { color:var(--texto-tenue); font-size:13.5px; line-height:1.6; }
.opc-form { display:flex; flex-direction:column; gap:10px; }
.opc-acciones { display:flex; gap:10px; flex-wrap:wrap; }
.opc-peligro { background:linear-gradient(180deg,#7a0d0d,#3a0404); border-color:#c1121f; }
.opc-peligro:hover { box-shadow:0 0 16px rgba(193,18,31,0.5); }

/* ============================================================
   ARMARIO (glosario de conjuntos)
   ============================================================ */
/* ============================================================
   ARMARIO — GRIMORIO DE CONJUNTOS (tomo de dos páginas)
   ============================================================ */
#armario { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/armario.png'); --panel-textura: var(--bg-vault); }
.armario-cuerpo { flex:1; overflow-y:auto; padding:20px 26px 26px; }
.grimorio { display:grid; grid-template-columns:auto minmax(0,1fr) auto; gap:16px; align-items:stretch;
    width:100%; }
/* Colores del pergamino (locales al grimorio). Tono apagado y envejecido para
   que no choque con el fondo oscuro del juego. */
.grimorio { --perg:#bda578; --perg-osc:#9d8355; --tinta:#2c1f10; --tinta-tenue:#5b4728; --perg-borde:#836a3f; }

/* --- Panel lateral izquierdo: progreso --- */
.grim-side { width:150px; flex-shrink:0; display:flex; flex-direction:column; align-items:center; text-align:center;
    background:linear-gradient(180deg, rgba(26,18,14,0.95), rgba(10,7,6,0.97));
    border:1px solid var(--cristal-borde); border-radius:14px; padding:22px 14px;
    box-shadow:inset 0 0 30px rgba(0,0,0,0.6); }
.grim-side-sello { margin-bottom:14px; filter:drop-shadow(0 0 8px rgba(201,162,39,0.5)); }
.grim-side-big, .grim-side-frac { font-family:'Cinzel'; color:var(--oro-vivo); line-height:1; }
.grim-side-big { font-size:52px; }
.grim-side-frac { font-size:30px; margin-top:2px; }
.grim-side-prog { font-family:'Cinzel'; font-size:12px; letter-spacing:2px; text-transform:uppercase; color:var(--texto-tenue); }
.grim-side-lbl { font-size:11.5px; letter-spacing:1.5px; text-transform:uppercase; color:var(--texto-tenue);
    line-height:1.5; margin-top:6px; }
.grim-side-sep { width:60%; height:1px; background:var(--cristal-borde); margin:20px 0; }

/* --- El tomo (dos páginas de pergamino) --- */
.grim-libro { display:grid; grid-template-columns:1fr auto 1fr; min-height:560px;
    background:#2a1a10; border:3px solid #5a3d22; border-radius:16px; padding:10px;
    box-shadow:0 18px 50px rgba(0,0,0,0.6), inset 0 0 40px rgba(0,0,0,0.5); }
.grim-pag { background:
        radial-gradient(135% 125% at 50% 45%, transparent 52%, rgba(50,32,14,0.6) 100%),
        linear-gradient(160deg, var(--perg), var(--perg-osc));
    color:var(--tinta); padding:26px 24px; overflow-y:auto; max-height:640px; }
.grim-pag-izq { border-radius:10px 0 0 10px; box-shadow:inset -18px 0 26px rgba(120,90,50,0.35); }
.grim-pag-der { border-radius:0 10px 10px 0; box-shadow:inset 18px 0 26px rgba(120,90,50,0.35);
    display:flex; flex-direction:column; align-items:center; }
.grim-lomo { width:14px; background:linear-gradient(90deg, rgba(60,40,22,0.6), rgba(30,18,10,0.85), rgba(60,40,22,0.6)); }

/* --- Página izquierda: lista de sets --- */
.grim-lista { display:flex; flex-direction:column; gap:8px; }
.grim-fila { display:flex; align-items:center; gap:12px; cursor:pointer; padding:9px 12px; border-radius:8px;
    border:1px solid transparent; transition:background .15s, border-color .15s; }
.grim-fila:hover { background:rgba(120,80,40,0.12); }
.grim-fila.sel { background:rgba(201,162,39,0.16); border-color:var(--sc);
    box-shadow:0 0 0 1px rgba(201,162,39,0.4) inset; }
.grim-fila-num { font-family:'Cinzel'; font-size:13px; color:var(--tinta-tenue); width:26px; flex-shrink:0;
    border:1px solid var(--perg-borde); border-radius:5px; text-align:center; padding:2px 0; }
.grim-fila-emb { flex-shrink:0; display:flex; }
.grim-fila-info { flex:1; min-width:0; }
.grim-fila-nom { font-family:'Cinzel'; font-size:17px; line-height:1.1;
    display:inline-block; padding:2px 10px; border-radius:6px;
    background:rgba(26,15,7,0.66); border:1px solid rgba(0,0,0,0.3);
    box-shadow:0 1px 3px rgba(0,0,0,0.35);
    text-shadow:0 1px 2px rgba(0,0,0,0.85); }
.grim-fila-bonos { display:flex; flex-wrap:wrap; gap:4px 12px; margin-top:3px; font-size:11.5px; color:var(--tinta-tenue); }
.grim-fila-eq { flex-shrink:0; text-align:center; font-family:'Cinzel'; }
.grim-fila-eq b { display:block; font-size:16px; color:var(--tinta); }
.grim-fila-eq span { font-size:9.5px; letter-spacing:1px; text-transform:uppercase; color:var(--tinta-tenue); }

/* --- Página derecha: detalle --- */
.grim-det-num { font-family:'Cinzel'; font-size:15px; color:var(--tinta-tenue); border:1px solid var(--perg-borde);
    border-radius:6px; padding:2px 12px; margin-bottom:10px; }
.grim-det-nom { display:inline-block; font-family:'Cinzel'; font-size:34px; text-align:center; letter-spacing:1px;
    padding:6px 24px; border-radius:10px;
    background:rgba(26,15,7,0.6); border:1px solid rgba(0,0,0,0.3);
    box-shadow:0 2px 12px rgba(0,0,0,0.4);
    text-shadow:0 1px 3px rgba(0,0,0,0.85); }
.grim-det-nom::after { content:''; display:block; width:180px; height:2px; margin:10px auto 0;
    background:linear-gradient(90deg, transparent, var(--perg-borde), transparent); }
.grim-det-lore { font-family:'EB Garamond','Georgia',serif; font-style:italic; font-size:15px; line-height:1.6;
    text-align:center; color:var(--tinta); opacity:0.85; margin:14px 6px 20px; max-width:440px; }
.grim-det-cab { font-family:'Cinzel'; font-size:12.5px; letter-spacing:2px; text-transform:uppercase;
    color:#7a2418; margin:8px 0 14px; }
.grim-piezas { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; width:100%; margin-bottom:8px; }
.grim-pieza { background:linear-gradient(180deg, rgba(30,20,12,0.92), rgba(12,8,5,0.95));
    border:1px solid #5a3d22; border-radius:9px; padding:12px 8px 10px; text-align:center; }
.grim-pieza-img { width:100%; aspect-ratio:1; border-radius:6px; background-size:cover; background-position:center;
    background-color:#0c0a0c; border:2px solid var(--acero); margin-bottom:8px; }
.grim-pieza.equipada .grim-pieza-img { border-color:var(--sc); box-shadow:0 0 12px color-mix(in srgb, var(--sc) 55%, transparent); }
.grim-pieza.enbolsa .grim-pieza-img { border-color:var(--oro); }
.grim-pieza.falta { opacity:0.5; }
.grim-pieza-nom { font-family:'Cinzel'; font-size:13px; color:var(--texto); line-height:1.2; }
.grim-pieza-slot { font-size:11px; color:var(--texto-tenue); margin:2px 0 6px; }
.grim-pieza-est { font-size:10.5px; letter-spacing:.5px; text-transform:uppercase; font-family:'Cinzel'; color:var(--texto-tenue);
    border-top:1px solid rgba(255,255,255,0.08); padding-top:6px; }
.grim-pieza.equipada .grim-pieza-est { color:var(--r-excellent); }
.grim-pieza.enbolsa .grim-pieza-est { color:var(--oro-vivo); }

.grim-bonos { display:flex; flex-direction:column; gap:5px; width:100%; max-width:460px; }
.grim-bono { display:flex; align-items:center; gap:14px; opacity:0.55; }
.grim-bono.activo { opacity:1; }
.grim-bono-th { flex-shrink:0; width:34px; height:34px; display:grid; place-items:center; border-radius:50%;
    border:2px solid #7a2418; color:#7a2418; font-family:'Cinzel'; font-size:16px; }
.grim-bono.activo .grim-bono-th { background:#7a2418; color:var(--perg); box-shadow:0 0 10px rgba(122,36,24,0.5); }
.grim-bono-desc { font-size:15px; color:var(--tinta); font-family:'EB Garamond','Georgia',serif; }
.grim-bono.activo .grim-bono-desc { font-weight:600; }

/* --- Pestañas laterales I–VIII --- */
.grim-tabs { width:56px; flex-shrink:0; display:flex; flex-direction:column; justify-content:center; gap:8px; }
.grim-tab { display:flex; align-items:center; gap:6px; cursor:pointer; padding:8px 8px 8px 12px;
    background:linear-gradient(90deg, rgba(30,20,12,0.9), rgba(12,8,5,0.6));
    border:1px solid #4a3320; border-left:3px solid var(--sc); border-radius:0 10px 10px 0;
    transition:transform .15s, background .15s; }
.grim-tab:hover { transform:translateX(3px); }
.grim-tab.sel { background:linear-gradient(90deg, color-mix(in srgb, var(--sc) 40%, #1a120c), rgba(12,8,5,0.6));
    transform:translateX(6px); box-shadow:-2px 0 12px color-mix(in srgb, var(--sc) 50%, transparent); }
.grim-tab-num { font-family:'Cinzel'; font-size:12px; color:var(--texto-tenue); }
.grim-tab.sel .grim-tab-num { color:var(--texto); }

@media (max-width:1100px){
    .grimorio { grid-template-columns:1fr; }
    .grim-side { flex-direction:row; width:auto; justify-content:center; gap:26px; padding:14px; }
    .grim-side-sep { display:none; }
    .grim-tabs { flex-direction:row; width:auto; flex-wrap:wrap; justify-content:center; }
    .grim-tab { border-radius:10px; border-left-width:1px; border-top:3px solid var(--sc); }
}
@media (max-width:760px){
    .grim-libro { grid-template-columns:1fr; }
    .grim-lomo, .grim-pag-der { display:none; }
    .grim-piezas { grid-template-columns:repeat(2,1fr); }
}

/* ============================================================
   ÁRBOL DE HABILIDADES
   ============================================================ */
#habilidades { background-image: linear-gradient(180deg, rgba(6,4,8,0.62), rgba(4,3,6,0.86)), url('../assets/tarjetas home/habilidades.png'); --panel-textura: var(--bg-vault); }
.habilidades-cuerpo { flex:1; min-height:0; overflow:auto; padding:14px 22px 22px; display:flex; flex-direction:column; gap:10px; }
.hab-puntos-bar { text-align:center; color:var(--texto-tenue); font-size:14px; }
.hab-puntos-bar b { color:var(--oro-vivo); font-family:'Cinzel'; font-size:18px; }
.arbol-svg-wrap { flex:1; min-height:0; }
.hab-svg { width:100%; height:auto; max-height:100%; display:block; }
.hab-edge { stroke:rgba(255,255,255,0.12); stroke-width:2; }
.hab-edge.on { stroke:var(--oro); stroke-width:3; filter:drop-shadow(0 0 4px rgba(184,134,11,0.6)); }
.hab-nodo { cursor:pointer; }
.hab-nodo circle { fill:#0c0a0c; stroke:var(--nc); stroke-width:2; transition:fill .15s, filter .15s; }
.hab-nodo .hab-nom { fill:var(--texto-tenue); font-size:11px; font-family:'Cinzel'; text-anchor:middle; pointer-events:none; }
.hab-nodo.bloqueado circle { stroke:rgba(255,255,255,0.2); opacity:0.5; }
.hab-nodo.disponible circle { fill:#1a1520; filter:drop-shadow(0 0 6px var(--nc)); }
.hab-nodo.disponible:hover circle { fill:var(--nc); }
.hab-nodo.asignado circle { fill:var(--nc); filter:drop-shadow(0 0 8px var(--nc)); }
.hab-nodo.asignado .hab-nom { fill:var(--texto); }

/* ============================================================
   NAV INFERIOR
   ============================================================ */
.navbar {
    display:flex; gap:4px; padding:8px 14px; flex-wrap:wrap; justify-content:center;
    background: linear-gradient(0deg, rgba(8,6,9,0.97), rgba(8,6,9,0.7));
    border-top: 1px solid var(--cristal-borde);
}
.nav-btn {
    font-family:'Cinzel'; font-size:12px; letter-spacing:1px; color:var(--texto-tenue);
    background:transparent; border:1px solid transparent; border-radius:4px; padding:8px 12px;
    cursor:pointer; transition:all .18s; text-transform:uppercase; display:flex; align-items:center; gap:6px;
}
.nav-btn:hover { color:var(--texto-oro); border-color:var(--cristal-borde); }
.nav-btn.sel { color:var(--texto-oro); border-color:var(--oro); background:rgba(184,134,11,0.1); box-shadow:0 0 12px rgba(184,134,11,0.25); }

/* ============================================================
   MODAL + TOASTS + FLOTANTES
   ============================================================ */
.modal-fondo {
    position:fixed; inset:0; z-index:80; background:rgba(0,0,0,0.82);
    display:flex; align-items:center; justify-content:center; opacity:0; pointer-events:none; transition:opacity .2s;
}
.modal-fondo.activo { opacity:1; pointer-events:auto; }
.modal {
    width:min(420px,92vw); padding:22px; display:flex; flex-direction:column; gap:14px;
    border:2px solid var(--oro); border-radius:8px; background:var(--negro-panel);
    box-shadow:0 14px 40px rgba(0,0,0,0.7);
}
.modal .m-cab { display:flex; gap:14px; align-items:center; }
.modal .m-ico { width:62px; height:62px; border-radius:8px; display:flex; align-items:center;
                justify-content:center; font-size:38px; border:2px solid; }
.modal .m-tit { font-family:'Cinzel'; font-size:20px; }
.modal .m-rar { font-size:11px; text-transform:uppercase; letter-spacing:1px; font-weight:700; }
.modal .m-stat { background:rgba(255,255,255,0.04); padding:10px; border-radius:6px; border-left:3px solid var(--oro); }
.modal .m-acciones { display:flex; gap:10px; flex-wrap:wrap; }
.modal .m-acciones .btn { flex:1; font-size:12px; padding:11px 10px; }

.toasts { position:fixed; bottom:90px; right:18px; z-index:90; display:flex; flex-direction:column; gap:10px; }
.toast {
    background: var(--cristal); border-left:4px solid var(--oro); backdrop-filter: blur(6px);
    padding:12px 18px; border-radius:4px; font-size:15px; max-width:320px; box-shadow:0 8px 24px rgba(0,0,0,0.6);
    animation: entra-toast .3s ease, sale-toast .4s ease 3.4s forwards;
}
@keyframes entra-toast { from{transform:translateX(120%);opacity:0;} to{transform:none;opacity:1;} }
@keyframes sale-toast  { to{transform:translateY(-12px);opacity:0;} }
.flota { position:fixed; z-index:95; font-family:'Cinzel'; font-weight:700; pointer-events:none;
         text-shadow:0 2px 4px #000; animation: subeflota 1s ease-out forwards; }
@keyframes subeflota { 0%{opacity:1;transform:translateY(0) scale(.8);} 100%{opacity:0;transform:translateY(-60px) scale(1.2);} }

::-webkit-scrollbar { width:8px; height:8px; }
::-webkit-scrollbar-track { background:rgba(0,0,0,0.3); }
::-webkit-scrollbar-thumb { background:var(--acero); border-radius:4px; }
::-webkit-scrollbar-thumb:hover { background:var(--oro); }

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width: 920px) {
    .hub-cuerpo, .stats-cuerpo, .forja-cuerpo, .clan-grid { grid-template-columns: 1fr; }
    .menu-grid { grid-template-columns: repeat(2, 1fr); }
    .recurso { min-width: auto; font-size:14px; }
    .energia-wrap { width:100%; order:3; }
}
@media (max-width: 560px) {
    .menu-grid { grid-template-columns: 1fr; }
}
@media (prefers-reduced-motion: reduce) {
    .pantalla, .pantalla::before, .pantalla::after,
    .runa-anillo.giro, .portal, .portal::before, .portal .torbellino {
        animation: none !important;
    }
}
