/* ════════════════════════════════════════════════════
   02-panel.css — Panel principal, header, nav, content
   ════════════════════════════════════════════════════ */

#main-panel {
  position: fixed;
  top: 0; right: 0;
  width: var(--panel-w);
  max-width: 100vw;             /* nunca más ancho que la pantalla */
  height: 100vh;
  height: 100dvh;              /* altura dinámica: no corta con la barra del móvil */
  background: #090909;
  border-left: 1px solid #1a1a1a;
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform .28s ease;
  z-index: 50;
}
#main-panel.open { transform: translateX(0); }

/* ── Móvil: panel a pantalla completa y nav más estrecho ── */
@media (max-width: 760px) {
  :root { --panel-w: 100vw; --nav-w: 144px; }
  #panel-head { padding: 12px 14px 10px; gap: 10px; }
  #panel-close { width: 34px; height: 34px; font-size: 20px; }
}

/* ── Header ─────────────────────────────────────── */

#panel-head {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 14px 18px 12px;
  border-bottom: 1px solid #1a1a1a;
  flex-shrink: 0;
  gap: 16px;
}
#panel-title-block { display: flex; flex-direction: column; gap: 4px; }
#panel-title { font: 11px/1 var(--mono); letter-spacing: .26em; color: #fff; }
#panel-meta  { font: 10px/1 var(--mono); letter-spacing: .07em; color: #333; }

#panel-head-right { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
#countdown { font: 10px/1 var(--mono); letter-spacing: .10em; color: #2e2e2e; }
/* v19.1: × cerrar mucho más visible — en modo expo es la única salida */
#panel-close {
  background: none;
  border: 1px solid #5a5a5a;
  border-radius: 50%;
  color: #ccc;
  font-size: 22px; font-weight: 300;
  cursor: pointer; line-height: 1;
  width: 38px; height: 38px;
  display: flex; align-items: center; justify-content: center;
  transition: color .15s, border-color .15s, background .15s, transform .15s;
}
#panel-close:hover {
  color: #fff; border-color: var(--accent);
  background: var(--accent); transform: scale(1.08);
}

/* ── Body split ──────────────────────────────────── */

#panel-body { display: flex; flex: 1; overflow: hidden; }

/* ── Nav sidebar ─────────────────────────────────── */

#panel-nav {
  width: var(--nav-w);
  flex-shrink: 0;
  border-right: 1px solid #141414;
  display: flex;
  flex-direction: column;
  overflow-y: auto;
  padding: 8px 0 0;
}
#panel-nav::-webkit-scrollbar { width: 3px; }
#panel-nav::-webkit-scrollbar-thumb { background: #1e1e1e; }

/* v19.1: separación clara entre secciones del nav */
.nav-group { padding: 0 0 12px; border-bottom: 1px solid #222; margin-bottom: 4px; }
.nav-group:last-of-type { border-bottom: none; margin-bottom: 0; }

/* v19.1: etiquetas de sección con tratamiento de "header", no de botón */
.nav-group-label {
  font: 9px/1 var(--mono);
  letter-spacing: .28em;
  color: var(--accent);          /* rojo acento — claramente label, no botón */
  padding: 14px 14px 6px;
  text-transform: uppercase;
  opacity: 0.75;
  position: relative;
}
.nav-group-label::before {
  content: '';
  display: inline-block;
  width: 6px; height: 6px;
  background: var(--accent);
  margin-right: 8px;
  vertical-align: middle;
  border-radius: 50%;
  opacity: 0.7;
}

#panel-nav button[data-tab] {
  display: block; width: 100%;
  background: none; border: none;
  color: #b5ada3;        /* era var(--muted) #555 — ahora cómodo de leer */
  font: 10px/1 var(--mono); letter-spacing: .10em;
  padding: 9px 14px; text-align: left; cursor: pointer;
  border-left: 2px solid transparent;
  transition: color .15s, border-color .15s, background .12s;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
#panel-nav button[data-tab]:hover { color: #fff; background: #0d0d0d; }
#panel-nav button[data-tab].active {
  color: #fff;
  border-left-color: var(--accent);
  background: #0d0d0d;
}
#panel-nav button.nav-iso-btn.active {
  border-left-color: var(--green);
  color: var(--green);
}

#nav-footer {
  margin-top: auto;
  padding: 12px 10px;
  border-top: 1px solid #111;
  display: flex;
  flex-direction: column;
  gap: 6px;
}
/* v19.1: REFRESH+EXIT como acciones en el nav, encajan en el flujo de tabs */
.nav-actions {
  display: flex; flex-direction: column; gap: 6px;
  padding: 6px 10px 10px;
}

/* v19.1: botón MODO EXPO al inicio del nav */
.nav-expo { padding: 8px 10px 10px; border-bottom: 1px solid #222; }
#expo-btn {
  width: 100%; background: none;
  border: 1px solid var(--green);
  color: var(--green);
  font: 11px/1 var(--mono); letter-spacing: .18em;
  padding: 9px 8px; cursor: pointer; border-radius: 2px;
  transition: background .15s, color .15s;
}
#expo-btn:hover { background: rgba(0,255,154,0.08); }
#expo-btn[data-on="1"] {
  background: var(--green); color: #000;
}

/* v19.1: sliders + input numérico en panel VISUAL (ojos, palabras, etc.) */
.slider-row {
  display: flex; flex-direction: column; gap: 4px;
  padding: 6px 14px 8px;
}
.slider-row label {
  font: 9px/1 var(--mono); letter-spacing: .14em;
  color: #888; text-transform: uppercase;
  display: flex; justify-content: space-between;
}
.slider-row label span { color: var(--green); font-weight: bold; }
.slider-with-input { display: flex; gap: 8px; align-items: center; }
.slider-with-input input[type="range"]  { flex: 1; min-width: 0; }
.slider-with-input input[type="number"] {
  width: 42px; flex-shrink: 0;
  background: #0a0a0a; border: 1px solid #333;
  color: #fff; font: 10px var(--mono);
  padding: 4px 5px; border-radius: 2px;
  text-align: center;
}
.slider-with-input input[type="number"]:focus { outline: 1px solid var(--green); border-color: var(--green); }
#refresh-btn, #exit-btn {
  background: none; border: 1px solid #3a3a3a;   /* v19.1: borde algo más visible */
  color: #b5ada3; font: 10px/1 var(--mono); letter-spacing: .12em;  /* v19.1: texto legible */
  padding: 7px 10px; cursor: pointer; border-radius: 2px;
  transition: color .2s, border-color .2s; width: 100%;
}
#refresh-btn:hover { color: var(--accent); border-color: var(--accent); }
#exit-btn:hover    { color: #ff5566;        border-color: #ff5566; }

#nav-progress { display: flex; flex-direction: column; gap: 5px; padding: 2px 0 8px; }
#nav-progress.hidden { display: none; }
#nav-progress-label {
  font: 9px/1 var(--mono); letter-spacing: .14em; color: var(--accent);
}
#nav-progress-bar {
  width: 100%; height: 3px; background: #181818; border-radius: 2px; overflow: hidden;
}
#nav-progress-fill {
  height: 100%; width: 0%; background: var(--accent);
  transition: width .2s ease;
}
#nav-progress-count {
  font: 9px/1 var(--mono); letter-spacing: .08em; color: #6a6a6a;
}
#nav-progress-feed {
  font: 9px/1.25 var(--mono); color: #4a4a4a;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}

/* v19: estado idle (esperando próximo refresh) más apagado */
#nav-progress.idle #nav-progress-label { color: #4a4a4a; }
#nav-progress.idle #nav-progress-fill  { background: #2a2a2a; }
#nav-progress.idle #nav-progress-count { color: #5a5a5a; }
#nav-progress.idle #nav-progress-feed  { color: #3a3a3a; font-style: italic; }

/* ── Content area ────────────────────────────────── */

#panel-content {
  flex: 1; overflow-y: auto; overflow-x: hidden;
  padding: 22px 24px 40px; position: relative;
}
#panel-content::-webkit-scrollbar { width: 4px; }
#panel-content::-webkit-scrollbar-thumb { background: #1e1e1e; border-radius: 2px; }

/* ── Panel sections ──────────────────────────────── */

.panel { display: none; }
.panel.active { display: block; }

.section-title {
  font: 10px/1 var(--mono); letter-spacing: .16em;
  color: var(--muted); margin-bottom: 18px; text-transform: uppercase;
}

/* ── Loading bar (dentro del panel) ─────────────── */

#loading-section { padding: 32px 0 20px; }
#loading-status  { font: 11px/1 var(--mono); letter-spacing: .14em; color: var(--muted); margin-bottom: 16px; }
#loading-bar-track { background: var(--bg3); height: 2px; width: 100%; margin-bottom: 14px; }
#loading-bar-fill  { height: 100%; background: var(--accent); width: 0%; transition: width .25s ease; }
#loading-feed      { font: 10px/1 var(--mono); letter-spacing: .08em; color: #2a2a2a; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
