/* decodigo.css — hoja común de los artículos de decodigo.com
 *
 * Reúne los bloques <style> que estaban repetidos dentro de cada entrada:
 * 171,828 bytes repartidos en 78 entradas pasan a ser este archivo,
 * que el navegador descarga una vez y reutiliza en todas.
 *
 * Las seis familias son independientes y no se pisan: cada regla lleva su
 * prefijo. Los bloques están copiados BYTE A BYTE de lo que había en línea;
 * esto es una extracción, no un rediseño, así que las diferencias entre
 * familias (tamaños de h2, márgenes) se conservan tal cual.
 *
 * Para añadir una entrada nueva a una familia basta con enlazar esta hoja;
 * ya no hay que copiar el <style>.
 */


/* ======== .rs-  ·  Lecciones del curso de Rust  ·  8 entradas  ·  /curso y sus 8 lecciones ======== */
.rs { --oxido:#1e64af; --oxido-osc:#00264f; --tinta:#0f1f33; --suave:#5b6b7c; --linea:#e3e8ee; }
.rs-mig { font-size:.85rem; color:#5b6b7c; margin:0 0 1.4rem; }
.rs-mig a { color:#00264f; text-decoration:none; font-weight:600; }
.rs-mig a:hover { text-decoration:underline; }
.rs-intro { font-size:1.06rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 2rem; }
.rs h2 { font-size:1.7rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.8rem 0 1.1rem; }
.rs h3 { font-size:1.14rem; color:#0f1f33; margin:1.9rem 0 .6rem; }
.rs-fig { margin:1.8rem 0; }
.rs-fig svg { width:100%; height:auto; max-width:860px; display:block; margin:0 auto; }
.rs-fig figcaption { font-size:.82rem; color:#5b6b7c; text-align:center; margin-top:.5rem; }
.rs-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.95rem 1.15rem; margin:1.5rem 0; }
.rs-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.95rem 1.15rem; margin:1.5rem 0; }
.rs-tabla { overflow-x:auto; margin:1.5rem 0; }
.rs-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.rs-tabla th, .rs-tabla td { text-align:left; padding:.6rem .75rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.rs-tabla th { background:#f5f8fb; font-weight:600; }
.rs-tabla td code { background:#f0f4f8; padding:.1rem .35rem; border-radius:3px; white-space:nowrap; }
.rs-sig { display:flex; gap:1rem; flex-wrap:wrap; margin:2.6rem 0 0; padding-top:1.4rem; border-top:1px solid #e3e8ee; }
.rs-sig a { display:inline-block; padding:.6rem 1.15rem; border-radius:999px; font-size:.93rem; font-weight:600; text-decoration:none; border:1px solid #e3e8ee; background:#fff; color:#00264f; }
.rs-sig a:hover { border-color:#1e64af; }
.rs-video { margin:2.6rem 0 0; padding-top:1.5rem; border-top:1px solid #e3e8ee; }
.rs-video .et { font-size:.74rem; letter-spacing:.13em; text-transform:uppercase; color:#7d8a97; font-weight:700; margin:0 0 .7rem; }
.rs-video-caja { position:relative; aspect-ratio:16/9; background:#000; border:1px solid #e3e8ee; border-radius:12px; overflow:hidden; cursor:pointer; }
.rs-video-caja img { width:100%; height:100%; object-fit:cover; display:block; opacity:.82; transition:opacity .2s, transform .35s; }
.rs-video-caja:hover img { opacity:1; transform:scale(1.03); }
.rs-video-caja .play { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:74px; height:74px; padding:0 0 0 5px; border:0; border-radius:50%; background:#1e64af; color:#fff; font-size:1.5rem; line-height:1; cursor:pointer; display:flex; align-items:center; justify-content:center; box-shadow:0 6px 22px rgba(0,0,0,.4); transition:transform .2s, background .2s; }
.rs-video-caja:hover .play { transform:translate(-50%,-50%) scale(1.09); background:#00264f; }
.rs-video-caja .play:focus-visible { outline:3px solid #fff; outline-offset:3px; }
.rs-video-caja.cargado { cursor:default; }
.rs-video-caja iframe { width:100%; height:100%; border:0; display:block; }
.rs-video .pie { font-size:.85rem; color:#5b6b7c; line-height:1.55; margin:.8rem 0 0; }
.rs-video .pie a { color:#00264f; }
.rs-video .pie + .rs-video-caja { margin-top:1.7rem; }
.rs-video-js { display:none; }
@supports not (aspect-ratio: 16/9) { .rs-video-caja { height:0; padding-bottom:56.25%; } }

/* ======== .gl-  ·  Lecciones del curso de Go  ·  8 entradas  ·  /go y sus 8 lecciones ======== */
.gl { --tinta:#0f1f33; --acento:#1e64af; --linea:#e3e8ee; --suave:#5b6b7c; }
.gl-intro { font-size:1.04rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 1.7rem; }
.gl h2 { font-size:1.42rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.5rem 0 1rem; }
.gl h3 { font-size:1.1rem; color:#0f1f33; margin:1.8rem 0 .6rem; }
.gl p { line-height:1.72; }
.gl p code, .gl li code, .gl-nota code, .gl-aviso code, .gl-tabla code { background:#eef3f8; color:#00264f; padding:.08rem .34rem; border-radius:3px; font-size:.93em; }
.gl-salida { white-space:pre; background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:.9rem 0 1.4rem; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.87rem; line-height:1.55; overflow-x:auto; }
.gl-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.4rem; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; }
.gl-salida.err b { color:#ff9a9a; }
.gl-tabla { overflow-x:auto; margin:1.3rem 0; }
.gl-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.gl-tabla th, .gl-tabla td { text-align:left; padding:.5rem .7rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.gl-tabla th { background:#f6f8fa; font-weight:600; }
.gl-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.gl-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.gl-nav { display:flex; gap:.7rem; flex-wrap:wrap; margin:2.4rem 0 0; padding-top:1.3rem; border-top:1px solid #e3e8ee; }
.gl-nav a { display:inline-block; padding:.5rem 1rem; border:1px solid #e3e8ee; border-radius:999px; font-size:.9rem; font-weight:600; color:#00264f; text-decoration:none; background:#fff; }
.gl-nav a:hover { border-color:#1e64af; color:#1e64af; }
.gl-nav a.pri { background:#1e64af; color:#fff; border-color:#1e64af; }
.gl-pie { margin:1.6rem 0 0; font-size:.88rem; color:#5b6b7c; line-height:1.6; }

/* ======== .dk-  ·  Lecciones de Docker  ·  7 entradas  ·  /docker y sus 7 lecciones ======== */
.dk-mig { font-size:.85rem; color:#5b6b7c; margin:0 0 1.4rem; }
.dk-mig a { color:#1e64af; text-decoration:none; font-weight:600; }
.dk-mig a:hover { text-decoration:underline; }
.dk-intro { font-size:1.06rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 2rem; }
.dk h2 { font-size:1.6rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.6rem 0 1rem; }
.dk h3 { font-size:1.14rem; color:#0f1f33; margin:1.9rem 0 .6rem; }
.dk-salida { background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:1rem 0 1.4rem;
  white-space:pre-wrap; word-break:break-word; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.9rem; line-height:1.6; overflow-x:auto; }
.dk-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.35rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.dk-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.95rem 1.15rem; margin:1.5rem 0; }
.dk-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.95rem 1.15rem; margin:1.5rem 0; }
.dk-tabla { overflow-x:auto; margin:1.5rem 0; }
.dk-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.dk-tabla th, .dk-tabla td { text-align:left; padding:.6rem .75rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.dk-tabla th { background:#f5f8fb; font-weight:600; }
.dk-tabla td code { background:#f0f4f8; padding:.1rem .35rem; border-radius:3px; white-space:nowrap; }
.dk-sig { display:flex; gap:1rem; flex-wrap:wrap; margin:2.6rem 0 0; padding-top:1.4rem; border-top:1px solid #e3e8ee; }
.dk-sig a { display:inline-block; padding:.6rem 1.15rem; border-radius:999px; font-size:.93rem; font-weight:600;
  text-decoration:none; border:1px solid #e3e8ee; background:#fff; color:#1e64af; }
.dk-sig a:hover { border-color:#1e64af; }

/* ======== .ge-  ·  Ejemplos sueltos de Go  ·  15 entradas  ·  /go-*  ======== */
.ge { --marca:#00264f; --acento:#1e64af; --linea:#e3e8ee; --suave:#5b6b7c; }
.ge-intro { font-size:1.04rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 1.6rem; }
.ge h2 { font-size:1.42rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.4rem 0 1rem; }
.ge h3 { font-size:1.08rem; color:#0f1f33; margin:1.7rem 0 .6rem; }
.ge p { line-height:1.72; }
.ge-ver { background:#f5f8fb; border:1px solid #e3e8ee; border-radius:12px; padding:1rem 1.2rem; margin:1.4rem 0; }
.ge-ver p { margin:0 0 .5rem; font-size:.82rem; letter-spacing:.07em; text-transform:uppercase; color:#5b6b7c; font-weight:700; }
.ge-ver ul { list-style:none; margin:0; padding:0; display:grid; gap:.4rem; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.ge-ver li { margin:0; }
.ge-ver a { color:#1e64af; text-decoration:none; font-weight:600; font-size:.94rem; }
.ge-ver a:hover { text-decoration:underline; }
.ge-salida { white-space:pre; background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:1rem 0 1.4rem; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.87rem; line-height:1.6; overflow-x:auto; }
.ge-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.35rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.ge-salida.err b { color:#ff9a9a; }
.ge-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.ge-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.ge-tabla { overflow-x:auto; margin:1.4rem 0; }
.ge-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.ge-tabla th, .ge-tabla td { text-align:left; padding:.55rem .72rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.ge-tabla th { background:#f5f8fb; font-weight:600; }
.ge-tabla td code, .ge p code, .ge li code, .ge-nota code, .ge-aviso code { background:#eef3f8; color:#00264f; padding:.08rem .35rem; border-radius:3px; font-size:.93em; }
.ge-tabla td code { white-space:nowrap; }
.ge-pie { margin:2.4rem 0 0; padding-top:1.3rem; border-top:1px solid #e3e8ee; font-size:.9rem; color:#5b6b7c; line-height:1.6; }
.ge-pie a { color:#1e64af; }

/* ======== .rx-  ·  Ejemplos sueltos de Rust  ·  18 entradas  ·  /rust-* ======== */
.rx-intro { font-size:1.04rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 1.6rem; }
.rx h2 { font-size:1.42rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.4rem 0 1rem; }
.rx-ver { background:#f5f8fb; border:1px solid #e3e8ee; border-radius:12px; padding:1rem 1.2rem; margin:1.4rem 0; }
.rx-ver p { margin:0 0 .5rem; font-size:.82rem; letter-spacing:.07em; text-transform:uppercase; color:#5b6b7c; font-weight:700; }
.rx-ver ul { list-style:none; margin:0; padding:0; display:grid; gap:.4rem; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.rx-ver li { margin:0; }
.rx-ver a { color:#1e64af; text-decoration:none; font-weight:600; font-size:.94rem; }
.rx-ver a:hover { text-decoration:underline; }
.rx-salida { white-space:pre-wrap; word-break:break-word; background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:1rem 0 1.4rem; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.9rem; line-height:1.6; overflow-x:auto; }
.rx-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.35rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.rx-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.9rem 1.15rem; margin:1.4rem 0; }
.rx-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.9rem 1.15rem; margin:1.4rem 0; }
.rx-tabla { overflow-x:auto; margin:1.4rem 0; }
.rx-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.rx-tabla th, .rx-tabla td { text-align:left; padding:.55rem .72rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.rx-tabla th { background:#f5f8fb; font-weight:600; }
.rx-tabla td code { background:#f0f4f8; padding:.1rem .35rem; border-radius:3px; white-space:nowrap; }
.rx-pie { margin:2.4rem 0 0; padding-top:1.3rem; border-top:1px solid #e3e8ee; font-size:.9rem; color:#5b6b7c; }
.rx-pie a { color:#1e64af; }

/* ======== .jl-  ·  Lecciones del curso de Java  ·  8 entradas  ·  /java/* ======== */
.jl { --tinta:#0f1f33; --acento:#1e64af; --linea:#e3e8ee; --suave:#5b6b7c; }
.jl-intro { font-size:1.04rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 1.7rem; }
.jl h2 { font-size:1.42rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.5rem 0 1rem; }
.jl h3 { font-size:1.1rem; color:#0f1f33; margin:1.8rem 0 .6rem; }
.jl p { line-height:1.72; }
.jl p code, .jl li code, .jl-nota code, .jl-aviso code, .jl-tabla code { background:#eef3f8; color:#00264f; padding:.08rem .34rem; border-radius:3px; font-size:.93em; }
.jl-salida { white-space:pre; background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:.9rem 0 1.4rem; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.87rem; line-height:1.55; overflow-x:auto; }
.jl-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.4rem; font-size:.7rem; letter-spacing:.09em; text-transform:uppercase; }
.jl-salida.err b { color:#ff9a9a; }
.jl-tabla { overflow-x:auto; margin:1.3rem 0; }
.jl-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.jl-tabla th, .jl-tabla td { text-align:left; padding:.5rem .7rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.jl-tabla th { background:#f6f8fa; font-weight:600; }
.jl-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.jl-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.jl-nav { display:flex; gap:.7rem; flex-wrap:wrap; margin:2.4rem 0 0; padding-top:1.3rem; border-top:1px solid #e3e8ee; }
.jl-nav a { display:inline-block; padding:.5rem 1rem; border:1px solid #e3e8ee; border-radius:999px; font-size:.9rem; font-weight:600; color:#00264f; text-decoration:none; background:#fff; }
.jl-nav a:hover { border-color:#1e64af; color:#1e64af; }
.jl-nav a.pri { background:#1e64af; color:#fff; border-color:#1e64af; }
.jl-pie { margin:1.6rem 0 0; font-size:.88rem; color:#5b6b7c; line-height:1.6; }

/* ======== .ja-  ·  Ejemplos sueltos de Java  ·  11 entradas  ·  /java-* ======== */
.ja { --marca:#00264f; --acento:#1e64af; --linea:#e3e8ee; --suave:#5b6b7c; }
.ja-intro { font-size:1.04rem; color:#33475b; border-left:4px solid #1e64af; padding:.2rem 0 .2rem 1.1rem; margin:0 0 1.6rem; }
.ja h2 { font-size:1.42rem; color:#0f1f33; border-bottom:2px solid #e3e8ee; padding-bottom:.5rem; margin:2.4rem 0 1rem; }
.ja h3 { font-size:1.08rem; color:#0f1f33; margin:1.7rem 0 .6rem; }
.ja p { line-height:1.72; }
.ja-ver { background:#f5f8fb; border:1px solid #e3e8ee; border-radius:12px; padding:1rem 1.2rem; margin:1.4rem 0; }
.ja-ver p { margin:0 0 .5rem; font-size:.82rem; letter-spacing:.07em; text-transform:uppercase; color:#5b6b7c; font-weight:700; }
.ja-ver ul { list-style:none; margin:0; padding:0; display:grid; gap:.4rem; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); }
.ja-ver li { margin:0; }
.ja-ver a { color:#1e64af; text-decoration:none; font-weight:600; font-size:.94rem; }
.ja-ver a:hover { text-decoration:underline; }
.ja-salida { white-space:pre; background:#0f1f33; color:#dbe5ef; border-radius:10px; padding:.9rem 1.15rem; margin:1rem 0 1.4rem; font-family:ui-monospace, Menlo, Consolas, monospace; font-size:.87rem; line-height:1.6; overflow-x:auto; }
.ja-salida b { color:#7db9ff; font-weight:600; display:block; margin-bottom:.35rem; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; }
.ja-salida.err b { color:#ff9a9a; }
.ja-aviso { border-left:4px solid #b08900; background:#fdfaef; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.ja-nota { border-left:4px solid #1e64af; background:#f5f8fb; padding:.9rem 1.15rem; margin:1.4rem 0; font-size:.96rem; line-height:1.65; color:#33475b; }
.ja-tabla { overflow-x:auto; margin:1.4rem 0; }
.ja-tabla table { border-collapse:collapse; width:100%; font-size:.93rem; }
.ja-tabla th, .ja-tabla td { text-align:left; padding:.55rem .72rem; border-bottom:1px solid #e3e8ee; vertical-align:top; }
.ja-tabla th { background:#f5f8fb; font-weight:600; }
.ja-tabla td code, .ja p code, .ja li code, .ja-nota code, .ja-aviso code { background:#eef3f8; color:#00264f; padding:.08rem .35rem; border-radius:3px; font-size:.93em; }
.ja-tabla td code { white-space:nowrap; }
.ja-pie { margin:2.4rem 0 0; padding-top:1.3rem; border-top:1px solid #e3e8ee; font-size:.9rem; color:#5b6b7c; line-height:1.6; }
.ja-pie a { color:#1e64af; }

/* ======== .ref-  ·  Pie de fuentes de las noticias  ·  3 entradas  ·  entradas del blog ======== */
.ref-fuentes { display:block; margin-top:.45rem; font-size:.8rem; line-height:1.5; color:#6b7280; }
.ref-fuentes a { color:#6b7280; }
.ref-fuentes a:hover { color:#1e73be; }
