/* Frente Árido · estilos del sitio (landing, panel y lobby). Paleta y tipografía de public/juego/estilos.css */
:root{
  --bg:#1d2220;--bg2:#171b1a;--panel:rgba(31,39,41,.92);--panel-solido:#232c2e;--line:#3f4c4c;--line2:#344041;
  --ink:#ece5d1;--muted:#a9a48f;--amber:#e8a33d;--accentbg:#5a3f16;--ok:#79c25a;--bad:#e0553d;--cyan:#6fd3e0;
  --btn:#2c3739;--btnh:#37464a;--btnline:#4b5a5a;--radius:3px;
  --atlas:#5fb4ff;--hierro:#ff7a45;--guerrilla:#b8d057;
  --font:"Bahnschrift","DIN Alternate","Roboto Condensed","Arial Narrow",system-ui,sans-serif;
  --ancho:1120px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
a{color:inherit}
img,svg{display:block}
.contenedor{width:100%;max-width:var(--ancho);margin:0 auto;padding:0 20px}
.oculto-visual{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.saltar{position:absolute;left:12px;top:-60px;background:var(--accentbg);border:1px solid var(--amber);padding:8px 12px;z-index:20}
.saltar:focus{top:12px}

/* Botones (mismo lenguaje que el cliente) */
.btn{font:inherit;font-size:15px;color:var(--ink);background:var(--btn);border:1px solid var(--btnline);border-radius:var(--radius);padding:9px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;gap:8px;transition:background .12s,border-color .12s}
.btn:hover{background:var(--btnh)}
.btn:focus-visible,a:focus-visible{outline:2px solid var(--amber);outline-offset:2px}
.btn.primario{background:var(--accentbg);border-color:var(--amber)}
.btn.primario:hover{background:#6b4b1b}
.btn.grande{font-size:17px;padding:12px 22px}
.btn.fantasma{background:transparent;border-color:transparent;color:var(--muted)}
.btn.fantasma:hover{color:var(--ink);background:var(--btn)}

/* Barra superior */
.barra{position:sticky;top:0;z-index:10;background:rgba(23,27,26,.88);backdrop-filter:blur(6px);border-bottom:1px solid var(--line2)}
.barra .contenedor{display:flex;align-items:center;gap:18px;height:60px}
.marca{display:flex;align-items:center;gap:10px;text-decoration:none;font-weight:600;font-size:19px;letter-spacing:.02em}
.marca svg{width:28px;height:28px}
.marca small{font-size:12px;color:var(--muted);font-weight:400;border:1px solid var(--line);padding:1px 6px;border-radius:2px}
.barra nav{display:flex;gap:4px;margin-left:12px}
.barra nav a{color:var(--muted);text-decoration:none;padding:6px 10px;border-radius:var(--radius);font-size:15px}
.barra nav a:hover{color:var(--ink);background:var(--btn)}
.barra .acciones{margin-left:auto;display:flex;gap:8px}
.marca,.btn{white-space:nowrap}
@media (max-width:760px){.barra nav{display:none}.barra .contenedor{gap:10px}.barra .acciones{gap:4px}.barra .acciones .btn{padding:7px 10px;font-size:14px}}
@media (max-width:440px){.contenedor{padding:0 14px}.marca small{display:none}.marca{font-size:16px;gap:8px}.marca svg{width:24px;height:24px}.barra .acciones .btn{padding:6px 8px;font-size:13px}}

/* Encabezado principal de la landing */
.portada{position:relative;overflow:hidden;border-bottom:1px solid var(--line2);background:
  linear-gradient(90deg,rgba(20,24,23,.96) 0%,rgba(20,24,23,.84) 42%,rgba(20,24,23,.45) 100%),
  linear-gradient(0deg,var(--bg) 0%,transparent 30%),
  url(../img/portada.webp) center 40%/cover no-repeat,var(--bg2)}
.portada .contenedor{display:grid;grid-template-columns:1.05fr 1fr;gap:48px;align-items:center;padding-top:72px;padding-bottom:80px}
.etiqueta{display:inline-block;color:var(--amber);font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:14px}
.portada h1{font-size:clamp(40px,6vw,68px);line-height:1.02;margin:0 0 18px;font-weight:700;letter-spacing:-.01em}
.portada h1 span{color:var(--amber)}
.portada p.intro{font-size:19px;color:var(--muted);max-width:34em;margin:0 0 28px}
.portada .cta{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.portada .nota{margin-top:18px;font-size:14px;color:var(--muted)}
@media (max-width:900px){.portada .contenedor{grid-template-columns:1fr;padding-top:48px;gap:36px}}

/* Vista táctica decorativa (imita la interfaz del juego) */
.tactica{position:relative;border:1px solid var(--line);border-radius:4px;background:#202826;box-shadow:0 30px 60px -30px rgba(0,0,0,.7)}
.tactica svg.mapa{width:100%;height:auto}
.tactica .chips{position:absolute;top:10px;left:10px;right:10px;display:flex;gap:6px;flex-wrap:wrap}
.chip{background:var(--panel);border:1px solid var(--line);padding:4px 9px;border-radius:3px;font-size:13px;display:inline-flex;gap:6px;align-items:baseline;color:var(--muted)}
.chip b{font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.chip.ambar b{color:var(--amber)}
.tactica .panelito{position:absolute;right:10px;bottom:10px;background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:8px 11px;min-width:190px}
.tactica .panelito strong{display:block;font-size:15px}
.tactica .panelito span{font-size:12px;color:var(--muted)}
.tactica .panelito .barrita{height:5px;background:#121a1c;margin-top:6px;border-radius:1px;overflow:hidden}
.tactica .panelito .barrita i{display:block;height:100%;width:72%;background:var(--ok)}

/* Secciones */
.seccion{padding:84px 0;border-bottom:1px solid var(--line2)}
.seccion.alterna{background:var(--bg2)}
.seccion h2{font-size:clamp(28px,3.4vw,40px);line-height:1.1;margin:0 0 12px;font-weight:600}
.seccion .bajada{color:var(--muted);font-size:17px;max-width:40em;margin:0 0 40px}

/* Facciones */
.facciones{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.faccion{--acento:var(--amber);background:var(--fp,var(--panel));border:1px solid var(--fl,var(--line));border-radius:var(--fr,3px);padding:22px 22px 24px;display:flex;flex-direction:column}
.faccion.atlas{--acento:var(--atlas);--fp:rgba(22,32,43,.93);--fl:#3b5468;--fr:2px;box-shadow:inset 0 1px 0 rgba(150,200,255,.12)}
.faccion.hierro{--acento:var(--hierro);--fp:rgba(35,26,23,.95);--fl:#64463b;--fr:0;border-width:2px}
.faccion.guerrilla{--acento:var(--guerrilla);--fp:rgba(33,35,24,.93);--fl:#5c5f3b;--fr:7px;border-style:dashed}
.faccion header{display:flex;align-items:center;gap:12px;margin-bottom:6px}
.faccion header svg{width:40px;height:40px;flex:none}
.faccion h3{margin:0;font-size:21px;font-weight:600}
.faccion .lema{color:var(--acento);font-size:14px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 14px}
.faccion ul{list-style:none;margin:0;padding:0;display:grid;gap:8px}
.faccion li{padding-left:16px;position:relative;color:var(--ink);font-size:15px}
.faccion li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;background:var(--acento)}
@media (max-width:900px){.facciones{grid-template-columns:1fr}}

/* Modos de juego */
.modos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line2);border:1px solid var(--line2)}
.modo{background:var(--bg);padding:24px 22px}
.seccion.alterna .modo{background:var(--bg2)}
.modo .num{font-size:13px;color:var(--amber);font-variant-numeric:tabular-nums;letter-spacing:.1em}
.modo h3{margin:8px 0 8px;font-size:19px;font-weight:600}
.modo p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:900px){.modos{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.modos{grid-template-columns:1fr}}

/* Carrera del comandante */
.carrera{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.lista-datos{list-style:none;margin:0;padding:0;display:grid;gap:14px}
.lista-datos li{display:grid;grid-template-columns:140px 1fr;gap:12px;padding-bottom:14px;border-bottom:1px solid var(--line2)}
.lista-datos li b{color:var(--amber);font-weight:600}
.lista-datos li span{color:var(--muted)}
.rangos{background:var(--panel);border:1px solid var(--line);border-radius:3px;padding:20px}
.rangos h3{margin:0 0 14px;font-size:15px;color:var(--muted);font-weight:500;letter-spacing:.06em;text-transform:uppercase}
.rango{display:grid;grid-template-columns:28px 1fr auto;gap:10px;align-items:center;padding:7px 0}
.rango .ins{width:28px;height:18px;display:flex;gap:2px;align-items:flex-end}
.rango .ins i{width:6px;background:var(--cyan)}
.rango .xp{height:4px;background:#121a1c;border-radius:1px;overflow:hidden}
.rango .xp i{display:block;height:100%;background:var(--cyan)}
.rango small{color:var(--muted);font-variant-numeric:tabular-nums;font-size:13px}
@media (max-width:900px){.carrera{grid-template-columns:1fr}.lista-datos li{grid-template-columns:1fr;gap:2px}}

/* Llamado final y pie */
.cierre{padding:84px 0;text-align:center}
.cierre h2{font-size:clamp(28px,3.4vw,40px);margin:0 0 12px;font-weight:600}
.cierre p{color:var(--muted);margin:0 auto 28px;max-width:34em}
.cierre .cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.pie{border-top:1px solid var(--line2);background:var(--bg2);padding:28px 0;font-size:14px;color:var(--muted)}
.pie .contenedor{display:flex;flex-wrap:wrap;gap:12px 28px;justify-content:space-between}
.pie p{margin:0}

/* ======================= Panel (páginas con sesión) ======================= */
.barra nav a.activo{color:var(--ink);background:var(--btn);box-shadow:inset 0 -2px 0 var(--amber)}
.barra .usuario{color:var(--muted);font-size:14px;align-self:center;margin-right:4px}
.barra form{margin:0}
@media (max-width:760px){
  .barra .usuario{display:none}
  .app .barra .contenedor{flex-wrap:wrap;height:auto;padding-top:8px;padding-bottom:0;row-gap:4px}
  .app .barra nav{display:flex;order:3;width:100%;margin:0;overflow-x:auto}
  .app .barra nav a{white-space:nowrap;border-radius:0}
}
.pagina{padding-top:28px;padding-bottom:56px}
.aviso{padding:10px 14px;border-radius:3px;margin-bottom:16px;border:1px solid;background:var(--panel)}
.aviso.error{border-color:var(--bad);color:#f3a493}
.aviso.ok{border-color:var(--ok);color:#b9e3a4}
.btn.mini{font-size:13px;padding:4px 9px}
.bien{color:var(--ok)!important}
.mal{color:var(--bad)!important}
.vacio{color:var(--muted);margin:6px 0;font-size:15px}

/* Ficha del comandante */
.ficha{display:grid;grid-template-columns:minmax(280px,1.1fr) 2fr;gap:20px 32px;background:
  radial-gradient(ellipse 60% 120% at 0% 0%,rgba(232,163,61,.09),transparent 60%),var(--panel-solido);
  border:1px solid var(--line);border-radius:4px;padding:22px 24px}
.ficha-id{display:flex;gap:18px;align-items:center}
.ficha .etiqueta{margin:0 0 2px}
.ficha h1{margin:0 0 10px;font-size:30px;line-height:1.1;font-weight:600;word-break:break-word}
.insignia{flex:none;width:76px;height:76px;display:grid;place-items:center;background:var(--amber);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.insignia span{width:70px;height:70px;display:grid;place-items:center;background:var(--accentbg);font-size:32px;font-weight:700;color:var(--ink);
  clip-path:polygon(50% 0,100% 25%,100% 75%,50% 100%,0 75%,0 25%)}
.xp-carrera small{display:block;color:var(--muted);font-size:13px;margin-top:5px;font-variant-numeric:tabular-nums}
.xp-barra{height:6px;background:#121a1c;border-radius:1px;overflow:hidden;width:100%;max-width:320px}
.xp-barra i{display:block;height:100%;background:var(--cyan)}
.ficha-datos{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin:0;background:var(--line2);border:1px solid var(--line2);align-self:center}
.ficha-datos>div{background:var(--panel-solido);padding:12px 14px}
.ficha-datos dt{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.ficha-datos dd{margin:2px 0;font-size:30px;font-weight:600;line-height:1.1;font-variant-numeric:tabular-nums}
.ficha-datos dd span{font-size:18px;color:var(--muted);font-weight:400}
.ficha-datos small{font-size:13px;color:var(--muted)}
.ficha-acciones{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px;border-top:1px solid var(--line2);padding-top:16px}
@media (max-width:980px){.ficha{grid-template-columns:1fr}}
@media (max-width:560px){.ficha-datos{grid-template-columns:1fr 1fr}.ficha{padding:18px}}

/* Franja de retos y partidas activas */
.franja{margin-top:14px;display:grid;gap:8px}
.franja-item{display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--cyan);border-radius:3px;padding:9px 12px}
.franja-item.reto{border-left-color:var(--amber);background:rgba(90,63,22,.35)}
.franja-item form{margin:0}

/* Columnas */
.tablero{display:grid;grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:20px;margin-top:20px;align-items:start}
.col-principal,.col-lateral{display:grid;gap:20px;min-width:0}
@media (max-width:980px){.tablero{grid-template-columns:1fr}}
.bloque{background:var(--panel-solido);border:1px solid var(--line);border-radius:4px;padding:16px 18px}
.bloque-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.bloque h2{margin:0;font-size:19px;font-weight:600;color:var(--amber)}
.contador{font-size:13px;color:var(--muted);border:1px solid var(--line);border-radius:2px;padding:0 7px}
.pestanas{display:flex;gap:2px;background:#1b2224;border:1px solid var(--line2);border-radius:3px;padding:2px;flex-wrap:wrap}
.pestanas a{text-decoration:none;color:var(--muted);font-size:14px;padding:4px 10px;border-radius:2px}
.pestanas a:hover{color:var(--ink)}
.pestanas a.activa{background:var(--accentbg);color:var(--ink)}

/* Filas del historial */
.partida{display:grid;grid-template-columns:96px 30px minmax(0,1fr) 64px 50px 140px;gap:12px;align-items:center;padding:10px 12px;
  border:1px solid var(--line2);border-left:3px solid var(--muted);background:rgba(23,27,26,.55);border-radius:2px}
.partida+.partida{margin-top:6px}
.partida.victoria{border-left-color:var(--ok);background:linear-gradient(90deg,rgba(121,194,90,.09),rgba(23,27,26,.55) 40%)}
.partida.derrota{border-left-color:var(--bad);background:linear-gradient(90deg,rgba(224,85,61,.09),rgba(23,27,26,.55) 40%)}
.partida-res strong{display:block;font-size:16px}
.partida.victoria .partida-res strong{color:var(--ok)}
.partida.derrota .partida-res strong{color:var(--bad)}
.partida-res span,.partida-dato small,.partida-info .detalle{font-size:12px;color:var(--muted)}
.partida-fac svg{width:28px;height:28px}
.sin-fac{color:var(--muted)}
.partida-info{display:flex;flex-direction:column;min-width:0}
.partida-info .rival{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--muted)}
.partida-info .rival b{color:var(--ink);font-weight:500}
.partida-dato{font-variant-numeric:tabular-nums}
.partida-dato small{display:block}
.partida-fin{display:flex;flex-direction:column;align-items:flex-end;gap:4px;font-size:13px;color:var(--muted)}
.partida-acc{display:flex;gap:4px}
.partida-acc form{margin:0}
@media (max-width:700px){
  .partida{grid-template-columns:1fr 1fr 1fr;gap:8px 12px}
  .partida-res{grid-column:1/3}.partida-fac{grid-column:3;justify-self:end}.partida-info{grid-column:1/-1}
  .partida-fin{grid-column:3}
}

/* Campaña */
.campanias{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.campania{border:1px solid var(--line2);border-top:2px solid var(--acento,var(--amber));padding:12px;border-radius:2px;background:rgba(23,27,26,.55)}
.campania.atlas{--acento:var(--atlas)}.campania.hierro{--acento:var(--hierro)}.campania.guerrilla{--acento:var(--guerrilla)}
.campania h3{display:flex;align-items:center;gap:8px;margin:0 0 10px;font-size:15px;font-weight:600}
.campania h3 svg{width:22px;height:22px}
.campania ol{list-style:none;margin:0;padding:0;display:grid;gap:6px;counter-reset:m}
.campania li{display:flex;justify-content:space-between;gap:8px;font-size:14px;color:var(--muted);counter-increment:m}
.campania li::before{content:counter(m);color:var(--acento);width:14px;flex:none}
.campania li span:first-of-type{flex:1}
.campania li.hecha{color:var(--ink)}
.estrellas{display:flex;gap:2px;align-items:center}
.estrellas i{width:11px;height:11px;background:#3a4446;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.estrellas i.llena{background:var(--amber)}
@media (max-width:700px){.campanias{grid-template-columns:1fr}}

/* Amigos */
.amigo,.solicitud{display:flex;align-items:center;gap:6px;padding:8px 0;border-top:1px solid var(--line2)}
.amigo>div{flex:1;min-width:0}
.amigo b{display:block;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.amigo small{color:var(--muted);font-size:13px;font-variant-numeric:tabular-nums}
.amigo form,.solicitud form{margin:0}
.solicitud{background:rgba(90,63,22,.25);padding:8px;border:1px solid var(--accentbg);border-radius:3px;margin-bottom:6px}
.solicitud span{flex:1;font-size:14px}
.solicitud.enviada{background:none;border:none;border-top:1px solid var(--line2);border-radius:0;padding:8px 0;margin:0;color:var(--muted)}
.agregar{margin-top:12px;padding-top:12px;border-top:1px solid var(--line2)}
.agregar label{display:block;font-size:13px;color:var(--muted);margin-bottom:5px}
.agregar div{display:flex;gap:6px}
.agregar input{flex:1;min-width:0;font:inherit;font-size:14px;color:var(--ink);background:#1b2224;border:1px solid var(--btnline);border-radius:3px;padding:7px 9px}
.agregar input:focus{outline:2px solid var(--amber);outline-offset:0;border-color:transparent}

/* Encabezado de página interna */
.cabecera-pagina{margin-bottom:18px}
.cabecera-pagina .etiqueta{margin-bottom:2px}
.cabecera-pagina h1{margin:0;font-size:32px;font-weight:600;line-height:1.1}

/* Formularios */
.formulario{display:grid;gap:16px}
.campo{display:grid;gap:5px;align-content:start}
.campo label{font-size:14px;color:var(--muted)}
.campo input{font:inherit;font-size:16px;color:var(--ink);background:#1b2224;border:1px solid var(--btnline);border-radius:3px;padding:9px 11px;width:100%;max-width:460px}
.campo input:focus{outline:2px solid var(--amber);outline-offset:0;border-color:transparent}
.campo input[aria-invalid="true"]{border-color:var(--bad)}
.campos-dobles{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:460px}
.campos-dobles .campo input{max-width:none}
@media (max-width:560px){.campos-dobles{grid-template-columns:1fr}}
.ayuda{margin:0;font-size:13px;color:var(--muted)}
.ayuda.alerta{color:var(--amber)}
.error-campo{margin:0;font-size:13px;color:#f3a493}
.acciones-form{display:flex;gap:8px;align-items:center}
.enlace{font:inherit;font-size:inherit;background:none;border:none;padding:0;color:var(--ink);text-decoration:underline;cursor:pointer}
.bloque-cab-texto{display:block}
.bloque-cab-texto p{margin:4px 0 0;color:var(--muted);font-size:14px;max-width:46em}
.lista-simple{margin:0;padding-left:18px;display:grid;gap:6px;font-size:15px}
.lista-simple li::marker{color:var(--amber)}
.btn.peligro{background:#4a1f17;border-color:var(--bad)}
.btn.peligro:hover{background:#5d271d}
.bloque.peligro{border-color:#5a2a22}
.bloque.peligro h2{color:#f3a493}
details summary{list-style:none;width:max-content}
details summary::-webkit-details-marker{display:none}
details[open] summary{display:none}
.confirmar-borrado{border:1px solid #5a2a22;background:rgba(74,31,23,.25);padding:14px;border-radius:3px}

/* Página de cuenta */
.cuenta{display:grid;grid-template-columns:260px minmax(0,1fr);gap:20px;align-items:start}
.cuenta-secciones{display:grid;gap:20px}
.cuenta-resumen{display:flex;flex-direction:column;align-items:center;text-align:center;gap:4px;position:sticky;top:80px}
.cuenta-resumen strong{font-size:19px;font-weight:600;margin-top:8px;word-break:break-word}
.cuenta-resumen .grado{color:var(--amber);font-size:14px}
.cuenta-resumen dl{width:100%;margin:14px 0;display:grid;text-align:left}
.cuenta-resumen dl div{display:flex;justify-content:space-between;gap:8px;padding:7px 0;border-top:1px solid var(--line2);font-size:14px}
.cuenta-resumen dt{color:var(--muted)}
.cuenta-resumen dd{margin:0;font-variant-numeric:tabular-nums}
.cuenta-resumen .btn{width:100%;justify-content:center}
.insignia.chica{width:60px;height:60px}
.insignia.chica span{width:55px;height:55px;font-size:25px}
@media (max-width:860px){.cuenta{grid-template-columns:1fr}.cuenta-resumen{position:static}}

/* Escalafón */
.escalafon{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
.escalafon th{text-align:left;font-weight:400;font-size:12px;color:var(--muted);letter-spacing:.08em;text-transform:uppercase;padding:0 6px 6px}
.escalafon td{padding:6px;border-top:1px solid var(--line2)}
.escalafon td:first-child{color:var(--muted);width:30px}
.escalafon tbody tr:nth-child(-n+3) td:first-child{color:var(--amber);font-weight:600}
.escalafon tr.yo td{background:rgba(232,163,61,.10)}
.escalafon tr.yo td:nth-child(2){color:var(--amber)}
.escalafon tr.separado td{border-top:1px dashed var(--line)}

/* Imágenes de facción en la landing */
.faccion{overflow:hidden}
.faccion .arte{width:calc(100% + 44px);max-width:none;height:170px;object-fit:cover;object-position:center 55%;margin:-22px -22px 0;border-bottom:1px solid var(--fl,var(--line))}
.faccion header .retrato{width:56px;height:56px;margin-top:-30px;border:2px solid var(--acento);border-radius:3px;object-fit:cover;background:var(--panel-solido);flex:none}
.faccion header{margin-top:4px}
/* Panel, cuenta y lobby: plano topográfico tenue de fondo */
body.app{background:linear-gradient(rgba(29,34,32,.9),rgba(29,34,32,.94)),url(../img/fondo-panel.webp) center top/cover fixed no-repeat,var(--bg)}

/* ---------- Controles comunes: listas desplegables y tablas ---------- */
select,.control{font:inherit;font-size:15px;color:var(--ink);background:#1b2224;border:1px solid var(--btnline);border-radius:3px;padding:8px 34px 8px 11px;
  -webkit-appearance:none;appearance:none;cursor:pointer;max-width:100%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23e8a33d' stroke-width='2'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 11px center}
select:hover{border-color:#5b6a6a}
select:focus{outline:2px solid var(--amber);outline-offset:0;border-color:transparent}
select option{background:#1b2224;color:var(--ink)}
.campo select{width:100%;max-width:460px}
.tabla{width:100%;border-collapse:collapse;font-size:15px}
.tabla th{text-align:left;color:var(--muted);font-weight:500;font-size:13px;letter-spacing:.04em;padding:6px 8px;border-bottom:1px solid var(--line2)}
.tabla td{padding:8px;border-top:1px solid var(--line2);vertical-align:middle}
.tabla tr:first-child td{border-top:none}
.tabla td.num{font-variant-numeric:tabular-nums}
.tabla td.acc{text-align:right;white-space:nowrap}
.tabla td.acc form{display:inline;margin:0}
.tabla-scroll{overflow-x:auto}
.nueva-sala{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;margin-top:14px;padding-top:14px;border-top:1px solid var(--line2)}
.nueva-sala label{display:grid;gap:4px;font-size:13px;color:var(--muted)}
.nueva-sala form{display:contents}
.estado-tr{font-size:13px;color:var(--muted)}
.estado-tr.activo{color:var(--ok)}
.pila{display:grid;gap:20px;align-content:start}
.migas{display:flex;gap:8px;align-items:center;margin-bottom:6px;font-size:14px}
.migas a{color:var(--muted);text-decoration:none}
.migas a:hover{color:var(--ink)}

/* ---------- Acceso: inicio de sesión, registro y recuperación ---------- */
.acceso{min-height:100vh;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,1fr);background:var(--bg)}
.acceso-arte{position:relative;overflow:hidden;background:
  linear-gradient(90deg,transparent 55%,var(--bg) 100%),
  linear-gradient(0deg,rgba(23,27,26,.92) 0%,transparent 45%),
  url(../img/portada.webp) center/cover no-repeat,var(--bg2)}
.acceso-arte .texto{position:absolute;left:40px;right:40px;bottom:40px;max-width:30em}
.acceso-arte h2{font-size:clamp(28px,3.4vw,42px);line-height:1.05;margin:0 0 10px;font-weight:700}
.acceso-arte h2 span{color:var(--amber)}
.acceso-arte p{margin:0;color:var(--muted)}
.acceso-arte .retratos{display:flex;gap:8px;margin-top:18px}
.acceso-arte .retratos img{width:52px;height:52px;border-radius:3px;border:1px solid var(--line);object-fit:cover}
.acceso-panel{display:flex;flex-direction:column;justify-content:center;padding:40px clamp(20px,5vw,64px)}
.acceso-panel .marca{margin-bottom:28px;align-self:flex-start}
.acceso-caja{width:100%;max-width:420px}
.acceso-caja h1{margin:0 0 4px;font-size:28px;font-weight:600}
.acceso-caja .bajada{margin:0 0 22px;color:var(--muted);font-size:15px}
.acceso-caja .formulario{gap:14px}
.acceso-caja .campo input{max-width:none}
.acceso-caja .linea{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;font-size:14px}
.acceso-caja .linea a,.acceso-pie a{color:var(--amber);text-decoration:none}
.acceso-caja .linea a:hover,.acceso-pie a:hover{text-decoration:underline}
.casilla{display:inline-flex;align-items:center;gap:8px;color:var(--muted);cursor:pointer}
.casilla input{width:16px;height:16px;accent-color:var(--amber)}
.acceso-caja .btn.primario{width:100%;justify-content:center;text-align:center}
.acceso-pie{margin-top:22px;padding-top:16px;border-top:1px solid var(--line2);font-size:14px;color:var(--muted)}
.error-campo{margin:2px 0 0;font-size:13px;color:#f3a493}
@media (max-width:860px){.acceso{grid-template-columns:1fr}.acceso-arte{min-height:200px}.acceso-arte .texto{left:20px;right:20px;bottom:18px}.acceso-arte .retratos{display:none}}

/* ---------- Landing: arsenal y novedades ---------- */
.arsenal-tabs{display:flex;gap:6px;flex-wrap:wrap;margin:18px 0 16px}
.arsenal-tabs label{cursor:pointer;padding:7px 14px;border:1px solid var(--line);border-radius:3px;color:var(--muted);background:var(--panel)}
.arsenal-tabs label:hover{color:var(--ink)}
.arsenal input[type=radio]{position:absolute;opacity:0;pointer-events:none}
.arsenal .galeria{display:none;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px}
#ars-atlas:checked~.galeria.atlas,#ars-hierro:checked~.galeria.hierro,#ars-guerrilla:checked~.galeria.guerrilla{display:grid}
#ars-atlas:checked~.arsenal-tabs label[for=ars-atlas],#ars-hierro:checked~.arsenal-tabs label[for=ars-hierro],#ars-guerrilla:checked~.arsenal-tabs label[for=ars-guerrilla]{color:var(--ink);background:var(--accentbg);border-color:var(--amber)}
#ars-atlas:focus-visible~.arsenal-tabs label[for=ars-atlas],#ars-hierro:focus-visible~.arsenal-tabs label[for=ars-hierro],#ars-guerrilla:focus-visible~.arsenal-tabs label[for=ars-guerrilla]{outline:2px solid var(--amber)}
.unidad{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:3px;overflow:hidden}
.unidad img{display:block;width:100%;height:auto;aspect-ratio:4/3;object-fit:cover}
.unidad figcaption{padding:8px 10px;font-size:14px}
.novedades{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line2);border:1px solid var(--line2);margin-top:22px}
.novedad{background:var(--bg);padding:18px 18px 20px}
.seccion.alterna .novedad{background:var(--bg2)}
.novedad h3{margin:0 0 6px;font-size:17px;font-weight:600}
.novedad p{margin:0;color:var(--muted);font-size:15px}
@media (max-width:900px){.novedades{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.novedades{grid-template-columns:1fr}}
