:root{
  --blue-deep:#1a2b6b;--blue-mid:#2d4faa;--blue-bright:#3b6ef8;
  --green:#4ade80;--green-soft:#ecfdf5;
  --blue-light:#e8eeff;--text-primary:#0f1629;--text-secondary:#4a5270;--text-muted:#7b839e;
  --bg-page:#f4f6fd;--bg-card:#ffffff;--border-card:rgba(30,50,150,.08);
  --radius-card:20px;
  --shadow-card:0 4px 24px rgba(20,40,120,.07),0 1px 4px rgba(20,40,120,.04);
  --shadow-btn:0 8px 28px rgba(43,79,170,.28);
  --font-display:'DM Serif Display',Georgia,serif;
  --font-body:'DM Sans',system-ui,sans-serif;
}
*{box-sizing:border-box}
html,body{overflow-x:clip;max-width:100%}
body{
  font-family:var(--font-body);font-size:16px;line-height:1.68;color:var(--text-primary);
  background:var(--bg-page);
  background-image:radial-gradient(ellipse 80% 50% at 50% -10%,rgba(74,222,128,.09) 0%,transparent 70%);
  min-height:100vh;margin:0;display:block;
}
#introPrincipal{overflow:visible}
.introWrap{max-width:1100px;margin:0 auto;padding:28px 24px 56px}
.hero{
  position:relative;background:linear-gradient(135deg,#11245c 0%,var(--blue-mid) 58%,#245a87 100%);
  border-radius:28px;padding:36px 40px 32px;overflow:hidden;
  box-shadow:0 24px 60px rgba(20,40,130,.28),0 4px 12px rgba(20,40,130,.18);margin-bottom:32px;
}
.hero::before,.hero::after{content:'';position:absolute;border-radius:50%;background:rgba(255,255,255,.06);pointer-events:none}
.hero::before{width:340px;height:340px;top:-120px;right:-80px}
.hero::after{width:220px;height:220px;bottom:-90px;left:30px;background:rgba(74,222,128,.08)}
.heroTopBar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px;position:relative;z-index:1}
.logoMini{display:block;flex-shrink:0}
.heroBadge{
  display:inline-flex;align-items:center;gap:6px;background:rgba(255,255,255,.15);
  border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.9);
  border-radius:999px;font-size:.78rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;
  padding:5px 14px;backdrop-filter:blur(8px);margin-bottom:10px;width:fit-content;position:relative;z-index:1;
}
.heroDesc{position:relative;z-index:1;margin-top:14px;color:rgba(255,255,255,.86);font-size:1.02rem;line-height:1.7;max-width:760px}
.heroDesc p{margin:0}
.heroLinks{position:relative;z-index:1;margin-top:24px;display:flex;flex-wrap:wrap;gap:10px}
.heroLinkBtn{
  display:inline-flex;align-items:center;gap:8px;padding:9px 20px;border-radius:999px;
  background:rgba(255,255,255,.14);border:1px solid rgba(255,255,255,.28);color:#fff;text-decoration:none;
  font-size:.88rem;font-weight:600;letter-spacing:.01em;backdrop-filter:blur(6px);transition:background .18s,transform .15s,box-shadow .18s;
}
.heroLinkBtn:hover{background:rgba(255,255,255,.24);transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.18);text-decoration:none}
.heroLinkBtn svg{opacity:.75;flex-shrink:0}
.volverBtn{
  display:inline-flex!important;align-items:center;gap:6px;padding:10px 20px!important;border-radius:999px!important;
  background:rgba(255,255,255,.18)!important;border:1px solid rgba(255,255,255,.3)!important;color:#fff!important;
  text-decoration:none!important;font-weight:700!important;font-size:.88rem;letter-spacing:.03em;backdrop-filter:blur(8px);
  transition:background .18s,transform .15s;
}
.volverBtn:hover{background:rgba(255,255,255,.28)!important;transform:translateY(-1px)}
.trabajoBtn{
  display:inline-flex!important;align-items:center;padding:11px 24px!important;border-radius:999px!important;background:#fff!important;
  border:none!important;color:var(--blue-deep)!important;text-decoration:none!important;font-weight:800!important;font-size:.88rem;
  letter-spacing:.02em;box-shadow:var(--shadow-btn)!important;transition:transform .15s,box-shadow .18s;
}
.trabajoBtn:hover{transform:translateY(-2px);box-shadow:0 14px 36px rgba(43,79,170,.36)!important;text-decoration:none}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:16px;margin-bottom:16px}
.span4{grid-column:span 4}.span5{grid-column:span 5}.span6{grid-column:span 6}.span7{grid-column:span 7}.span8{grid-column:span 8}.span12{grid-column:span 12}
.card,.accentCard{
  background:var(--bg-card)!important;border:1px solid var(--border-card)!important;border-radius:var(--radius-card)!important;
  box-shadow:var(--shadow-card)!important;padding:26px 28px!important;transition:box-shadow .2s,transform .2s;
}
.card:hover,.accentCard:hover{box-shadow:0 8px 36px rgba(20,40,120,.11),0 2px 6px rgba(20,40,120,.05)!important;transform:translateY(-1px)}
.card h2,.accentCard h2{font-family:var(--font-display);font-size:1.3rem!important;font-weight:400!important;color:var(--blue-deep);margin:0 0 14px!important;letter-spacing:0}
.card p,.accentCard p{margin:0 0 10px;line-height:1.72;color:var(--text-secondary);text-align:justify}
.card p strong,.accentCard p strong{color:var(--text-primary)}
.card ul,.accentCard ul,.card ol,.accentCard ol{margin:0;padding-left:20px}
.card li,.accentCard li{margin:8px 0;color:var(--text-secondary);line-height:1.6}
.card li strong,.accentCard li strong{color:var(--text-primary)}
.miniTitle{font-size:.78rem!important;font-weight:700!important;text-transform:uppercase;letter-spacing:.12em;color:var(--blue-bright);margin:0 0 8px!important}
.muted{color:var(--text-muted)!important;font-size:.94rem;line-height:1.65;margin:10px 0 0!important}
.k{background:linear-gradient(135deg,var(--blue-light) 0%,#f0f4ff 100%)!important;border:1px solid rgba(59,110,248,.14)!important;border-radius:14px!important;padding:18px 20px!important;overflow-x:auto;margin:12px 0;max-width:100%}
.formulaGrid{display:grid;grid-template-columns:1fr;gap:12px;margin-top:12px}
.formulaBox{border-radius:12px;padding:14px 16px;font-size:.93rem;line-height:1.6;background:#f4f6fd;border:1px solid var(--border-card);color:var(--text-secondary)}
.formulaBox strong{display:block;margin-bottom:4px;color:var(--text-primary);font-size:.88rem;text-transform:uppercase;letter-spacing:.04em}
.exampleStep{margin:18px 0;padding-left:16px;border-left:3px solid rgba(59,110,248,.28)}
.exampleStep p{margin:0 0 10px;color:var(--text-secondary);line-height:1.65}
.exampleStep p strong{color:var(--blue-deep)}
.solutionFinal{margin-top:18px;padding:16px 18px;border-radius:14px;background:linear-gradient(135deg,#f0fdf4 0%,#f6f8ff 100%);border:1px solid rgba(34,197,94,.24)}
.solutionFinal p{margin:0 0 10px;color:var(--text-primary);font-weight:700}
.solutionFinal .k{margin-bottom:0}
.alertBox{background:#fff7ed;border:1px solid #fdba74;border-radius:12px;padding:14px 16px;margin:12px 0;font-size:.93rem;line-height:1.6;color:#92400e}
.alertBox strong{color:#7c2d12}
.herramienta-cta{
  background:linear-gradient(135deg,var(--blue-deep),var(--blue-mid));border-radius:20px;padding:28px 32px;
  display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:4px;flex-wrap:wrap;
}
.herramienta-cta p{margin:0;color:rgba(255,255,255,.86);font-size:1rem;line-height:1.6;max-width:780px}
.herramienta-cta p strong{color:#fff}

.systemInputGrid{display:grid;grid-template-columns:1fr 1fr auto;gap:10px;align-items:end;margin-top:12px}
.systemInputGrid label{display:block;margin-bottom:5px}
.systemInputGrid .inputEcuacion{width:100%;min-width:0}
.helpList{text-align:left;margin:12px auto 0;max-width:720px;color:var(--text-secondary)}
.helpList li{margin:8px 0}
.sysLatexBlock{padding:8px 0;overflow-x:auto}
.matrixResultGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start}
.matrixResultCard{border:1px solid var(--border);border-radius:10px;background:#fff;padding:14px;overflow-x:auto}
.matrixResultCard .matLabel{display:block;margin-bottom:10px;min-width:0;font-size:16px}
.checkOk{color:#15803d;font-weight:800}
.checkBad{color:#b91c1c;font-weight:800}

/* Oculta la fila inicial (sin etiqueta) del paso a paso de la biblioteca */
.sistEcPasoAPaso .tpasos>tbody>tr:first-child{display:none}

@media(max-width:900px){
  .span4,.span5,.span6,.span7,.span8,.span12{grid-column:span 12}
  .hero{padding:28px 24px 26px}
  .introWrap{padding:16px 16px 40px}
  .formulaGrid,.matrixResultGrid{grid-template-columns:1fr}
  .herramienta-cta{flex-direction:column;align-items:flex-start}
}
@media(max-width:700px){
  .systemInputGrid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .heroTopBar{flex-wrap:wrap;gap:10px}
  .heroTopBar>div{flex-wrap:wrap;gap:10px;justify-content:flex-start}
  .trabajoBtn{font-size:.78rem!important;padding:9px 16px!important;white-space:nowrap}
  .volverBtn{font-size:.82rem;padding:8px 16px!important}
  .logoMini{width:120px;height:auto}
  .hero{padding:22px 18px 22px!important}
  .introWrap{padding:14px 12px 32px!important}
}
