@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-ext-wght-normal-DO1Apj_S.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Inter;font-style:normal;font-weight:100 900;font-display:swap;src:url(/assets/inter-latin-wght-normal-Dx4kXJAl.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/source-serif-4-latin-ext-wght-normal-BVZ5su8S.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:normal;font-weight:200 900;font-display:swap;src:url(/assets/source-serif-4-latin-wght-normal-DMe4EKeb.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/source-serif-4-latin-ext-wght-italic-B_cmBfNX.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:"Source Serif 4";font-style:italic;font-weight:200 900;font-display:swap;src:url(/assets/source-serif-4-latin-wght-italic-B-rCj6ir.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/jetbrains-mono-latin-400-normal-V6pRDFza.woff2)format("woff2")}@font-face{font-family:JetBrains Mono;font-style:normal;font-weight:600;font-display:swap;src:url(/assets/jetbrains-mono-latin-600-normal-C8RAYTDA.woff2)format("woff2")}:root{--brand-name:"Escuela de IA e Informática";--accent:#2f5bff;--accent-strong:#1e3fd1;--accent-tint:#eef2ff;--accent-line:#c7d4ff;--accent-on-dark:#8fa6ff;--accent-2:#00b8d9;--ink:#0b1220;--ink-2:#1b2436;--text:#1c2433;--muted:#5b6475;--soft:#8a93a5;--line:#e3e6eb;--surface:#f6f7f9;--paper:#fff;--ok:#0e7a4f;--ok-tint:#e7f6ee;--warn:#b45309;--warn-tint:#fff4e0;--bad:#c2362b;--bad-tint:#fdecea;--font-ui:"Inter", -apple-system, "Segoe UI", Helvetica, Arial, sans-serif;--font-body:"Source Serif 4", Georgia, "Times New Roman", serif;--font-mono:"JetBrains Mono", ui-monospace, Menlo, Consolas, monospace;--radius:6px;--radius-lg:12px;--rule:1px solid var(--line);--blue:var(--accent);--blue-d:var(--accent-strong);--teal:var(--accent-2);--green:var(--ok);--amber:var(--warn);--red:var(--bad);--gray:var(--muted);--card:#fff;--safe-b:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font-ui);color:var(--text);background:var(--surface);-webkit-font-smoothing:antialiased;min-height:100vh;line-height:1.55}a{color:var(--accent)}button,input,select,textarea{font:inherit;color:inherit}.muted{color:var(--muted)}.small{font-size:.85rem}.topbar{z-index:30;background:var(--ink);color:#fff;padding-top:env(safe-area-inset-top,0px);border-bottom:1px solid #ffffff14;position:sticky;top:0}.topbar .in{align-items:center;gap:14px;max-width:1120px;min-height:56px;margin:0 auto;padding:0 16px;display:flex}.brand{letter-spacing:-.01em;color:#fff;white-space:nowrap;align-items:center;gap:10px;font-weight:700;text-decoration:none;display:flex}.brand i{background:var(--accent);color:#fff;place-items:center;width:22px;height:22px;font-size:13px;font-style:normal;font-weight:800;display:grid}.nav{scrollbar-width:none;gap:2px;margin-left:auto;display:flex;overflow-x:auto}.nav a{color:#ffffffb3;white-space:nowrap;border-radius:4px;padding:8px 12px;font-size:.9rem;font-weight:600;text-decoration:none}.nav a:hover{color:#fff}.nav a.active{color:#fff;box-shadow:inset 0 -2px 0 var(--accent-on-dark);background:#ffffff1a}.main{max-width:1120px;padding:28px 16px calc(80px + var(--safe-b));margin:0 auto}.steps{scrollbar-width:none;z-index:20;background:linear-gradient(var(--surface) 78%, #f6f7f900);gap:8px;margin:0 -16px;padding:8px 16px 14px;display:flex;position:sticky;top:56px;overflow-x:auto}.steps a{border:1px solid var(--line);color:var(--ink);background:#fff;border-radius:4px;flex-direction:column;flex:none;gap:1px;min-width:100px;padding:9px 14px;font-size:.85rem;font-weight:600;text-decoration:none;display:flex}.steps a b{letter-spacing:.14em;text-transform:uppercase;color:var(--accent);font-size:.66rem}.steps a.active{border-color:var(--ink);box-shadow:inset 0 -3px 0 var(--accent)}.steps a .mini{background:var(--line);height:3px;margin-top:6px;overflow:hidden}.steps a .mini div{background:var(--accent);height:100%}.pagetitle{margin-bottom:24px}.pagetitle h1{letter-spacing:-.045em;color:var(--ink);font-size:clamp(1.9rem,5vw,2.7rem);font-weight:800;line-height:1.04}.kicker{letter-spacing:.18em;text-transform:uppercase;color:var(--accent);align-items:center;gap:8px;margin-bottom:10px;font-size:.7rem;font-weight:700;display:flex}.kicker:before{content:"";background:currentColor;width:8px;height:8px}.lead{font-family:var(--font-body);color:var(--ink-2);max-width:720px;margin-top:10px;font-size:1.12rem;line-height:1.55}h2{letter-spacing:-.03em;color:var(--ink);margin:32px 0 12px;padding-top:12px;font-size:1.4rem;font-weight:800;position:relative}h2:before{content:"";background:var(--accent);width:34px;height:3px;position:absolute;top:0;left:0}h3{letter-spacing:-.015em;color:var(--ink);margin-bottom:8px;font-size:1.05rem}p{margin-bottom:10px}.card p,.card li{font-family:var(--font-body)}.grid{gap:16px;display:grid}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.card{border:1px solid var(--line);border-left:3px solid var(--line);background:#fff;border-radius:4px;margin-bottom:16px;padding:18px 18px 12px}.card .tag{text-transform:uppercase;letter-spacing:.16em;color:var(--accent-strong);margin-bottom:8px;font-size:.66rem;font-weight:700}.card.idea{background:var(--ink);border-color:var(--ink);border-left-color:var(--accent-on-dark);color:#e9edf6}.card.idea .tag{color:var(--accent-on-dark)}.card.idea h3,.card.idea b{color:#fff}.card.idea .muted{color:#b8c0d0}.card.aviso{background:var(--warn-tint);border-color:#f4dcae #f4dcae #f4dcae #d97706}.card.aviso .tag{color:var(--warn)}.card.ejercicio{background:var(--accent-tint);border-color:var(--accent-line);border-left-color:var(--accent)}.card.ejemplo{border-left-color:var(--accent-2)}.card.ejemplo .tag{color:#087f99}.field{margin-bottom:14px;display:block}.flabel{color:var(--ink);font-size:.93rem;font-weight:650;display:block}.fhelp{color:var(--muted);margin-bottom:5px;font-size:.82rem;display:block}input[type=text],input[type=email],input[type=password],input[type=date],input[type=url],input:not([type]),select,textarea{background:#fff;border:1.5px solid #c7ccd6;border-radius:4px;width:100%;padding:11px 13px;font-size:1rem}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline-offset:1px;border-color:var(--accent);outline:3px solid #2f5bff66}textarea{resize:vertical;min-height:44px}input:disabled,textarea:disabled{background:var(--surface);color:var(--muted)}.numwrap{align-items:center;gap:8px;display:flex}.numwrap input{min-width:0}.suffix{color:var(--muted);white-space:nowrap;font-size:.88rem}.check{cursor:pointer;align-items:flex-start;gap:10px;padding:7px 0;font-size:.95rem;display:flex}.check input{width:19px;height:19px;accent-color:var(--accent);flex:none;margin-top:2px}.checklist{margin-bottom:6px}.btn{border:1px solid var(--line);cursor:pointer;color:var(--ink);background:#fff;border-radius:4px;justify-content:center;align-items:center;gap:8px;padding:10px 18px;font-weight:650;text-decoration:none;transition:background .12s;display:inline-flex}.btn:hover{background:var(--surface)}.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff}.btn.primary:hover{background:var(--accent-strong)}.btn.danger{color:var(--bad)}.btn:disabled{opacity:.5;cursor:not-allowed}.small-btn{padding:6px 12px;font-size:.85rem}.row{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.row.end{justify-content:flex-end}.spread{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;display:flex}.tablewrap{border-top:1.5px solid var(--ink);border-bottom:1px solid var(--line);background:#fff;margin:6px 0 14px;overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:.88rem}th{text-align:left;text-transform:uppercase;letter-spacing:.12em;color:var(--muted);border-bottom:1px solid var(--line);white-space:nowrap;padding:10px;font-size:.66rem}td{border-bottom:1px solid var(--line);vertical-align:top;padding:9px 10px}tr:last-child td{border-bottom:0}td:first-child{color:var(--ink);font-weight:650}td input,td select{min-width:70px;padding:7px 9px}.badge{border-radius:3px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block}.badge.verde{background:var(--ok-tint);color:var(--ok)}.badge.ambar{background:var(--warn-tint);color:var(--warn)}.badge.rojo{background:var(--bad-tint);color:var(--bad)}.badge.gris{color:var(--muted);background:#eceef2}.kanban{scroll-snap-type:x proximity;grid-auto-columns:minmax(250px,1fr);grid-auto-flow:column;gap:12px;padding-bottom:12px;display:grid;overflow-x:auto}.col{scroll-snap-align:start;border-top:3px solid var(--ink);background:#eceef2;border-radius:4px;min-height:220px;padding:12px}.col.over{outline:2px dashed var(--accent);background:var(--accent-tint)}.col h4{text-transform:uppercase;letter-spacing:.14em;color:var(--ink);justify-content:space-between;font-size:.72rem;display:flex}.col .help{color:var(--muted);margin:3px 0 10px;font-size:.78rem}.idea-card{border:1px solid var(--line);cursor:grab;background:#fff;border-radius:4px;margin-bottom:9px;padding:12px}.idea-card h5{letter-spacing:-.01em;margin-bottom:4px;font-size:.98rem}.idea-card .sub{color:var(--muted);margin-bottom:8px;font-size:.8rem}.idea-card select{padding:5px 8px;font-size:.8rem}.progress{background:var(--line);height:5px;overflow:hidden}.progress div{background:var(--accent);height:100%;transition:width .3s}.savestate{color:var(--soft);font-size:.8rem}.opt{text-align:left;border:1.5px solid var(--line);cursor:pointer;background:#fff;border-radius:4px;width:100%;margin-bottom:8px;padding:12px 14px;display:block}.opt.on{border-color:var(--accent);box-shadow:inset 3px 0 0 var(--accent)}.opt b{color:var(--ink);display:block}.opt span{color:var(--muted);font-size:.85rem}.bars{flex-direction:column;gap:6px;display:flex}.bar{border-radius:3px;justify-content:space-between;padding:7px 12px;font-size:.9rem;display:flex}.pre{font-family:var(--font-mono);border:1px solid var(--line);border-left:3px solid var(--accent);white-space:pre-wrap;word-break:break-word;background:#fff;border-radius:3px;padding:12px;font-size:.82rem}.stat{border:1px solid var(--line);border-top:3px solid var(--ink);background:#fff;border-radius:3px;padding:12px 14px}.stat b{letter-spacing:-.03em;color:var(--ink);font-size:1.5rem;display:block}.stat span{color:var(--muted);font-size:.8rem}.login{border:1px solid var(--line);border-top:4px solid var(--accent);background:#fff;border-radius:4px;max-width:430px;margin:8vh auto;padding:30px;box-shadow:0 30px 60px -30px #0b12204d}.login h1{color:var(--ink)}.err{color:var(--bad);min-height:1.3em;margin:6px 0;font-size:.9rem}.install{left:12px;right:12px;bottom:calc(12px + var(--safe-b));z-index:50;background:var(--ink);color:#fff;border-radius:4px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;display:flex;position:fixed;box-shadow:0 18px 40px #0b122066}.offline{background:var(--warn-tint);color:#5b3a07;text-align:center;padding:6px;font-size:.85rem}@media (width<=820px){.g2,.g3{grid-template-columns:1fr}.brand span{display:none}}@media print{.topbar,.steps,.btn,.install,.no-print{display:none!important}body{background:#fff}.card{break-inside:avoid}.main{padding:0}}
