:root{
  --bg:#0b0f0c;
  --panel:#0f1411;
  --grid:#121712;
  --text:#c8facc;
  --muted:#86d394;
  --accent:#42ff5e;
  --danger:#ff5577;
  --mono: ui-monospace, SFMono-Regular, Menlo, Consolas, "Liberation Mono", monospace;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--mono);line-height:1.6}
a{color:var(--accent);text-decoration:none}
a:hover{text-decoration:underline}
.header{
  padding:28px 20px;border-bottom:1px solid #164e1f;
  background:linear-gradient(180deg,rgba(10,20,12,.6),rgba(10,20,12,0));
}
.brand{display:flex;gap:12px;align-items:center}
.brand .dot{width:10px;height:10px;background:var(--accent);box-shadow:0 0 10px var(--accent),0 0 20px var(--accent);border-radius:50%;animation:blink 1.4s infinite}
@keyframes blink{0%,80%{opacity:1} 85%{opacity:.2} 90%{opacity:1}}
h1{margin:0;font-size:20px;letter-spacing:.02em}
.sub{color:var(--muted);font-size:13px;margin-top:6px}
.container{max-width:1100px;margin:0 auto;padding:22px}
.grid{
  display:grid;gap:16px;
  grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
}
.card{
  background:linear-gradient(180deg,var(--panel),var(--grid));
  border:1px solid #174f1f;border-radius:8px;overflow:hidden;position:relative;
  box-shadow:0 0 0 1px rgba(66,255,94,.06),0 6px 18px rgba(0,0,0,.35);
  transition:transform .15s ease, box-shadow .15s ease, border-color .15s ease;
}
.card:hover{transform:translateY(-2px);border-color:#26ff57;box-shadow:0 0 0 1px rgba(66,255,94,.18),0 10px 24px rgba(0,0,0,.5)}
.card img{width:100%;height:160px;object-fit:contain;object-position:center;background: #fff;filter:saturate(0.9) contrast(1.05)}
.card-body{padding:14px 14px 12px}
.card h3{margin:0 0 8px;font-size:16px}
.tags{display:flex;gap:8px;flex-wrap:wrap;margin:8px 0}
.tag{
  font-size:11px;color:var(--muted);border:1px dashed #1f6b2b;border-radius:4px;
  padding:2px 6px;background:rgba(66,255,94,.06)
}
.row{display:flex;justify-content:space-between;align-items:center}
.price{font-weight:700;color:var(--accent)}
.btn{
  display:inline-flex;align-items:center;gap:8px;font-size:12px;padding:8px 10px;border:1px solid #1f6b2b;border-radius:6px;
  background:rgba(66,255,94,.08);color:var(--accent)
}
.btn:hover{background:rgba(66,255,94,.15)}
.footer{padding:26px 20px;color:#6dbb78;border-top:1px solid #164e1f;font-size:12px}
.marquee{
  margin:18px 0;padding:10px;border:1px dashed #1e5a27;border-radius:6px;color:#86d394;
  background:repeating-linear-gradient(90deg,rgba(66,255,94,.05) 0 12px, transparent 12px 24px)
}
code.inline{background:rgba(66,255,94,.08);border:1px solid #1f6b2b;border-radius:4px;padding:2px 6px}

.card .card-body h3.titulo {
  margin-bottom: 0;          /* elimina espacios abajo */
}
.card .card-body h5.subtitulo {
  margin-top: 0;          /* elimina espacios arriba */
  line-height: 1.2;   /* ajusta altura del renglón */
  font-weight: 600;   /* opcional: estilo */
}

.card .card-body h3.titulo a {
  color:var(--text)
}

.card .card-body h5.subtitulo a {
  color:var(--text)
}



.fold > summary {
  list-style: none;           /* oculta el marcador por defecto */
  cursor: pointer;
  padding-left: 18px;         /* espacio para el icono */
  position: relative;
  padding-bottom: 10px;
}
.fold > summary::before {
  content: "▾";               /* cambia a triángulo al expandir (o usa "+" / "−") */
  position: absolute;
  left: 0; top: 0;
  width: 14px;
  color: #42ff5e;
}
.fold[open] > summary::before {
  content: "–";               /* guion cuando está plegado */  
}
.fold > summary::-webkit-details-marker { display: none; } /* oculta marcador nativo en WebKit */
.fold{line-height: 0;}
.fold > pre {
  font-size: 16px;
  margin: 0;
  padding: 8px 0 0 0;
  background: transparent;
  line-height: 1;
}

/* 3) Envuelve el contenido en un body para romper colapso de márgenes */
.fold__body{
  margin: 4px 0 0 0;           /* espacio controlado bajo el título */
  padding: 0;
  line-height: 1.4;            /* estable para el bloque expandido */
}

/* 4) Ajusta pre/code: sin padding-top, sin márgenes y sin “saltos gordos” */
.fold__body pre{
  margin: 0;
  padding: 0;                  /* quita el padding-top que añade aire */
  font-size: 16px;
  background: transparent;
  white-space: pre-wrap;       /* permite saltos sin huecos excesivos */
  tab-size: 2;
}
.fold__body code{
  display:block;
  padding:0;
  font: inherit;
  color: inherit;
}

/* 5) Si usas <br> dentro del bloque, que no amplifique el interlineado */
.fold__body br{ line-height: 0; }

/* Por defecto (cerrado), muestra {...} y oculta "{" */
.fold > summary .sig--open{ display:none; }
.fold > summary .sig--closed{ display:inline; }

/* Cuando está expandido (details[open]), invierte la visibilidad */
.fold[open] > summary .sig--open{ display:inline; }
.fold[open] > summary .sig--closed{ display:none; }

.filters{ display:flex; flex-wrap:wrap; gap:8px; margin:0 }
.filter-chip{
  border:1px solid #1f6b2b; color:#42ff5e; background:rgba(66,255,94,.08);
  padding:6px 10px; border-radius:999px; font-size:12px; cursor:pointer;
}
.filter-chip.active{ background:rgba(66,255,94,.18); }
.card.is-hidden{ display:none; }

/* Contenedor del panel */
.filters-panel{
  border:1px solid #1f6b2b;
  border-radius:8px;
  background:linear-gradient(180deg,var(--panel),var(--grid));
  margin: 12px 0 16px;
}

/* Cabecera desplegable */
.filters-panel > summary{
  list-style:none;
  cursor:pointer;
  padding:10px 12px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--text);
}
.filters-panel > summary::-webkit-details-marker{ display:none; }
.filters-panel > summary::marker{ content:""; }

/* Caret que rota al abrir */
.filters-panel > summary .caret{ transition: transform .15s ease; color: var(--accent); }
.filters-panel[open] > summary .caret{ transform: rotate(180deg); }

/* Cuerpo del panel */
.filters-panel .filters{ padding: 8px 12px 12px; }

/* Responsive: en móvil usas checkboxes; en desktop, chips */
@media (max-width: 767px){
  .filters--chips{ display:none; }
  .filters--checks{ display:block; }
}
@media (min-width: 768px){
  .filters--chips{ display:flex; gap:8px; flex-wrap:wrap; }
  .filters--checks{ display:none; }
}

.filters-panel fieldset
{
  border: transparent;
  border-radius: 0;
}

/* Filas de checkbox (ya corregidas para alinear label al lado) */
.filters--checks .row{
  display:flex; align-items:center; justify-content:flex-start; gap:10px; padding:3px 0;
}
