@import url('https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@500;600;700&family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400;500;600&display=swap');

:root{
  --paper:#F5F6F0;
  --paper-line:#DDE0D3;
  --ink:#1C2B39;
  --ink-soft:#45566A;
  --blue:#2F6FAA;
  --blue-dark:#204C79;
  --yellow:#E8B93B;
  --green:#6FA96F;
  --red:#C0604B;
  --code-bg:#16212C;
  --code-text:#E7E4D8;
  --code-key:#E8B93B;
  --code-str:#8FC28F;
  --code-com:#6F8299;
  --radius:10px;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
  margin:0;
  background:
    linear-gradient(var(--paper-line) 1px, transparent 1px) 0 0/100% 32px,
    var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  font-size:16px;
  line-height:1.65;
  display:flex;
  min-height:100vh;
}

/* ---------- SIDEBAR ---------- */
.sidebar{
  width:260px;
  flex-shrink:0;
  background:var(--ink);
  color:var(--code-text);
  padding:28px 22px 40px;
  position:sticky;
  top:0;
  height:100vh;
  overflow-y:auto;
}
.sidebar .marca{
  display:flex;
  align-items:baseline;
  gap:8px;
  margin-bottom:6px;
}
.sidebar .marca .snake{font-size:22px;}
.sidebar h1{
  font-family:'Space Grotesk',sans-serif;
  font-size:19px;
  margin:0 0 2px;
  color:#fff;
}
.sidebar .subtitulo{
  font-size:12.5px;
  color:#93A4B8;
  margin-bottom:28px;
  letter-spacing:.02em;
}
.sidebar nav ol{
  list-style:none;
  margin:0;
  padding:0;
  counter-reset:tema;
}
.sidebar nav li{
  counter-increment:tema;
  margin-bottom:2px;
}
.sidebar nav a{
  display:flex;
  gap:10px;
  align-items:baseline;
  color:#C7D2DE;
  text-decoration:none;
  font-size:14px;
  padding:8px 10px;
  border-radius:8px;
  transition:background .15s ease, color .15s ease;
}
.sidebar nav a::before{
  content:counter(tema,decimal-leading-zero);
  font-family:'JetBrains Mono',monospace;
  font-size:12px;
  color:var(--yellow);
  flex-shrink:0;
}
.sidebar nav a:hover{background:#22334480;color:#fff;}
.sidebar nav a.activo{
  background:var(--blue);
  color:#fff;
  font-weight:600;
}
.sidebar .separador{
  border:none;
  border-top:1px solid #2A3B4C;
  margin:18px 0;
}

/* ---------- CONTENIDO ---------- */
main{
  flex:1;
  max-width:840px;
  margin:0 auto;
  padding:56px 48px 100px;
}
.eyebrow{
  font-family:'JetBrains Mono',monospace;
  font-size:13px;
  color:var(--blue);
  background:#E4ECF3;
  display:inline-block;
  padding:4px 10px;
  border-radius:6px;
  margin-bottom:14px;
}
h1.titulo{
  font-family:'Space Grotesk',sans-serif;
  font-size:38px;
  line-height:1.15;
  margin:0 0 8px;
  color:var(--ink);
}
.intro{
  font-size:17px;
  color:var(--ink-soft);
  margin-bottom:36px;
  max-width:640px;
}
h2{
  font-family:'Space Grotesk',sans-serif;
  font-size:24px;
  margin:44px 0 14px;
  padding-top:6px;
  border-top:2px solid var(--ink);
  padding-top:14px;
}
h3{
  font-family:'Space Grotesk',sans-serif;
  font-size:18px;
  margin:28px 0 10px;
  color:var(--blue-dark);
}
p{margin:0 0 14px;}
ul,ol{margin:0 0 16px;padding-left:22px;}
li{margin-bottom:6px;}
code{
  font-family:'JetBrains Mono',monospace;
  background:#E9E7DA;
  padding:2px 6px;
  border-radius:5px;
  font-size:.9em;
  color:var(--blue-dark);
}

pre{
  background:var(--code-bg);
  color:var(--code-text);
  border-radius:var(--radius);
  padding:18px 20px;
  overflow-x:auto;
  font-family:'JetBrains Mono',monospace;
  font-size:14px;
  line-height:1.55;
  margin:0 0 20px;
  position:relative;
}
pre code{background:none;padding:0;color:inherit;}
pre::before{
  content:'●  ●  ●';
  display:block;
  color:#3A4C5E;
  font-size:11px;
  letter-spacing:4px;
  margin-bottom:10px;
}

/* notas al margen tipo post-it */
.nota, .cuidado, .curioso{
  border-left:4px solid var(--blue);
  background:#E4ECF3;
  padding:14px 18px;
  border-radius:0 8px 8px 0;
  margin:20px 0;
  font-size:15px;
}
.cuidado{border-left-color:var(--red);background:#F5E7E2;}
.curioso{border-left-color:var(--green);background:#E9F2E4;}
.nota b, .cuidado b, .curioso b{font-family:'Space Grotesk',sans-serif;}

/* tabla de comandos */
table{
  width:100%;
  border-collapse:collapse;
  margin:0 0 24px;
  font-size:14.5px;
}
th{
  text-align:left;
  font-family:'Space Grotesk',sans-serif;
  background:var(--ink);
  color:#fff;
  padding:10px 14px;
}
td{
  padding:10px 14px;
  border-bottom:1px solid var(--paper-line);
  vertical-align:top;
}
tr:nth-child(even) td{background:#EEEFE6;}
td code{white-space:nowrap;}

/* ejercicios */
.ejercicio{
  border:1.5px solid var(--paper-line);
  background:#FBFBF7;
  border-radius:var(--radius);
  padding:22px 24px;
  margin:0 0 26px;
}
.ejercicio-cabecera{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-bottom:10px;
}
.ejercicio-cabecera h3{margin:0;}
.nivel{
  font-family:'JetBrains Mono',monospace;
  font-size:11.5px;
  padding:4px 10px;
  border-radius:20px;
  color:#fff;
  white-space:nowrap;
}
.n1{background:var(--green);}
.n2{background:var(--blue);}
.n3{background:var(--yellow);color:#5a4300;}
.n4{background:var(--red);}

details{margin-top:12px;}
summary{
  cursor:pointer;
  font-family:'JetBrains Mono',monospace;
  font-size:13.5px;
  color:var(--blue-dark);
  font-weight:600;
  padding:8px 0;
}
summary:hover{color:var(--blue);}

/* navegación inferior */
.paginacion{
  display:flex;
  justify-content:space-between;
  margin-top:56px;
  padding-top:22px;
  border-top:1px solid var(--paper-line);
}
.paginacion a{
  font-family:'Space Grotesk',sans-serif;
  font-size:14.5px;
  color:var(--blue-dark);
  text-decoration:none;
  font-weight:600;
}
.paginacion a:hover{color:var(--blue);}

@media (max-width:820px){
  body{flex-direction:column;}
  .sidebar{width:100%;height:auto;position:relative;}
  main{padding:32px 22px 60px;}
  h1.titulo{font-size:29px;}
}
