/* ==========================================================
   JRC CORE  -  estilo de la casa (oscuro + dorado)
   Paleta heredada de ERZ Store / logo JRC
   ========================================================== */
:root{
  --bg:#0e0e11;
  --bg-2:#15151a;
  --panel:#1b1b22;
  --panel-2:#20202a;
  --border:#2b2b36;
  --text:#e9e9ef;
  --muted:#9a9aab;
  --gold:#c9a24b;
  --gold-2:#e6c877;
  --ok:#2fbf71;
  --warn:#e0a030;
  --danger:#e2574c;
  --info:#4b9fe1;
  --radius:14px;
  --sidebar-w:210px;
  --font:"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}

*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);color:var(--text);font-family:var(--font);
  font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;
}
a{color:inherit;text-decoration:none}

/* ---------- estructura ---------- */
.layout{display:flex;min-height:100vh}

.sidebar{
  width:var(--sidebar-w);flex-shrink:0;background:var(--bg-2);
  border-right:1px solid var(--border);padding:18px 0;
  display:flex;flex-direction:column;position:sticky;top:0;height:100vh;
}
.marca{display:flex;align-items:center;gap:10px;padding:0 16px 22px}
.marca-logo{
  width:34px;height:34px;border-radius:50%;background:var(--gold);
  display:flex;align-items:center;justify-content:center;
  color:#171200;font-size:11px;font-weight:700;letter-spacing:.5px;flex-shrink:0;
}
.marca-txt strong{display:block;font-size:15px;font-weight:600;line-height:1.2}
.marca-txt span{font-size:11px;color:var(--muted)}

.nav a{
  display:flex;align-items:center;gap:10px;padding:10px 16px;
  color:var(--muted);font-size:13px;border-left:2px solid transparent;
  transition:background .15s,color .15s;
}
.nav a:hover{background:var(--panel);color:var(--text)}
.nav a.activo{background:var(--panel-2);color:var(--text);border-left-color:var(--gold)}
.nav a .ico{width:16px;text-align:center;font-size:14px}
.nav-sep{margin:14px 16px 6px;font-size:10px;color:#5c5c6b;letter-spacing:1px}

.pie-sidebar{margin-top:auto;padding:12px 16px;font-size:11px;color:#5c5c6b;border-top:1px solid var(--border)}

/* ---------- contenido ---------- */
.contenido{flex:1;min-width:0;display:flex;flex-direction:column}
.topbar{
  border-bottom:1px solid var(--border);padding:14px 22px;
  display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.topbar h1{font-size:17px;font-weight:600}
.topbar .dcha{display:flex;align-items:center;gap:12px;font-size:12px;color:var(--muted)}
.principal{padding:20px 22px;flex:1}

/* ---------- botones ---------- */
.btn{
  background:transparent;border:1px solid var(--border);color:var(--text);
  padding:7px 14px;border-radius:9px;font-size:13px;cursor:pointer;font-family:inherit;
  transition:border-color .15s,background .15s;
}
.btn:hover{border-color:var(--gold);background:var(--panel)}
.btn-oro{background:var(--gold);border-color:var(--gold);color:#171200;font-weight:600}
.btn-oro:hover{background:var(--gold-2);border-color:var(--gold-2)}

/* ---------- tarjetas de metricas ---------- */
.metricas{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:20px}
.metrica{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px}
.metrica .etq{font-size:12px;color:var(--muted)}
.metrica .val{font-size:26px;font-weight:600;margin-top:4px;line-height:1.1}
.metrica .sub{font-size:11px;color:var(--muted);margin-top:3px}
.metrica .val.oro{color:var(--gold-2)}
.metrica .val.ok{color:var(--ok)}
.metrica .val.alerta{color:var(--danger)}

/* ---------- panel / caja ---------- */
.caja{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;margin-bottom:20px}
.caja-cab{padding:13px 16px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
.caja-cab h2{font-size:14px;font-weight:600}
.caja-cab .nota{font-size:11px;color:var(--muted)}

/* ---------- tabla ---------- */
table{width:100%;border-collapse:collapse}
thead th{
  text-align:left;font-size:10px;font-weight:500;color:var(--muted);
  letter-spacing:.6px;padding:10px 16px;border-bottom:1px solid var(--border);
}
tbody td{padding:12px 16px;border-bottom:1px solid var(--panel-2);font-size:13px}
tbody tr:last-child td{border-bottom:none}
tbody tr:hover{background:var(--panel-2)}
tbody tr.fila-alerta{background:rgba(226,87,76,.07);box-shadow:inset 2px 0 0 var(--danger)}

/* ---------- etiquetas de estado ---------- */
.etiqueta{display:inline-block;padding:3px 9px;border-radius:7px;font-size:11px;font-weight:500}
.e-ok{background:rgba(47,191,113,.14);color:var(--ok)}
.e-warn{background:rgba(224,160,48,.14);color:var(--warn)}
.e-danger{background:rgba(226,87,76,.14);color:var(--danger)}
.e-info{background:rgba(75,159,225,.14);color:var(--info)}
.e-mudo{background:var(--panel-2);color:var(--muted)}

/* ---------- barra de uso ---------- */
.barra{height:6px;background:var(--panel-2);border-radius:99px;overflow:hidden;margin-top:8px}
.barra i{display:block;height:100%;background:var(--gold);border-radius:99px}
.barra i.alto{background:var(--danger)}
.barra i.medio{background:var(--warn)}

.dos-col{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media(max-width:900px){.dos-col{grid-template-columns:1fr}}
.recurso{display:flex;justify-content:space-between;align-items:baseline;font-size:13px}
.recurso + .recurso{margin-top:14px}
.recurso b{font-weight:600}
.muted{color:var(--muted)}
.oro{color:var(--gold-2)}

/* ---------- mapa de la plataforma ---------- */
.barra-estado{display:flex;gap:10px;margin-bottom:14px;flex-wrap:wrap}
.chip{display:flex;align-items:center;gap:8px;background:var(--panel);border:1px solid var(--border);
  border-radius:10px;padding:9px 14px}
.chip i{font-size:17px}
.chip-n{font-size:20px;font-weight:600;line-height:1}
.chip-t{font-size:11px;color:var(--muted)}
.chip-srv{margin-left:auto;font-family:var(--font-mono)}
.nota-lente{font-size:11px;color:var(--muted);margin:-6px 0 12px;display:none}

.lentes{display:flex;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.lente{background:var(--bg-2);border:1px solid var(--border);color:var(--muted);
  font-size:12px;font-family:inherit;padding:7px 14px;border-radius:9px;cursor:pointer;transition:.12s}
.lente:hover{color:var(--text);border-color:var(--gold)}
.lente.on{background:var(--panel-2);border-color:var(--gold);color:var(--gold-2)}

.mapa-caja{position:relative;overflow:hidden;background:#08080b;padding:8px}
.mapa-caja .rejilla{position:absolute;inset:0;
  background-image:linear-gradient(#131319 1px,transparent 1px),linear-gradient(90deg,#131319 1px,transparent 1px);
  background-size:24px 24px;opacity:.6;pointer-events:none}
.mapa-caja svg{position:relative;width:100%;height:auto;display:block}

.nodo{cursor:pointer}
.nodo:hover{filter:brightness(1.18)}
@keyframes ltr{0%,100%{opacity:1}50%{opacity:.25}}
.ltr{animation:ltr 1.6s ease-in-out infinite}
@keyframes gl{0%,100%{opacity:.12}50%{opacity:.04}}
.gl{animation:gl 3s ease-in-out infinite}
