:root{
  --ink:#0f172a; --ink2:#334155; --muted:#64748b; --line:#e2e8f0;
  --bg:#f8fafc; --card:#fff;
  --brand:#2563eb; --brand-dark:#1d4ed8;
  --ok:#059669; --ok-bg:#ecfdf5; --warn:#b45309; --warn-bg:#fffbeb;
  --alta:#dc2626; --alta-bg:#fef2f2; --media:#d97706; --baja:#0891b2;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);
  font:16px/1.65 ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  -webkit-font-smoothing:antialiased}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}

/* HERO */
.hero{background:linear-gradient(135deg,#1e3a8a 0%,#2563eb 55%,#0ea5e9 100%);color:#fff;padding:64px 0 56px}
.badge{display:inline-block;background:rgba(255,255,255,.16);border:1px solid rgba(255,255,255,.3);
  padding:6px 14px;border-radius:999px;font-size:13px;font-weight:600;letter-spacing:.02em}
.hero h1{margin:18px 0 6px;font-size:clamp(34px,5vw,54px);line-height:1.1;font-weight:800;letter-spacing:-.02em}
.hero .dot{color:#7dd3fc}
.hero .sub{margin:0 0 26px;font-size:clamp(16px,2vw,19px);color:#dbeafe;max-width:60ch}
.cta{display:inline-block;background:#fff;color:var(--brand-dark);text-decoration:none;
  padding:13px 26px;border-radius:10px;font-weight:700;box-shadow:0 8px 20px rgba(2,6,23,.22)}
.cta:hover{background:#eff6ff}
.hint{margin:12px 0 0;font-size:14px;color:#bfdbfe}
.hint code{background:rgba(255,255,255,.18);padding:2px 7px;border-radius:5px}

/* NAV */
.nav{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.92);backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line)}
.navwrap{display:flex;gap:6px;overflow-x:auto;padding-top:10px;padding-bottom:10px}
.nav a{color:var(--ink2);text-decoration:none;font-size:14px;font-weight:600;
  padding:8px 14px;border-radius:8px;white-space:nowrap}
.nav a:hover{background:#eff6ff;color:var(--brand-dark)}
.nav a.on{background:var(--brand);color:#fff}

section{padding:52px 0;border-bottom:1px solid var(--line)}
section:last-of-type{border-bottom:0}
h2{font-size:clamp(24px,3.2vw,32px);margin:0 0 8px;letter-spacing:-.02em}
h3{font-size:20px;margin:34px 0 10px}
.lead{color:var(--muted);margin:0 0 22px;max-width:75ch}

/* KPIs */
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin:22px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;
  box-shadow:0 1px 3px rgba(2,6,23,.05)}
.kpi .k{display:block;font-size:34px;font-weight:800;letter-spacing:-.03em;color:var(--brand-dark)}
.kpi .l{display:block;margin-top:4px;font-size:14px;color:var(--ink2);font-weight:600}
.kpi .l small{font-weight:400;color:var(--muted)}
.kpi.ok .k{color:var(--ok)}

/* CALLOUTS */
.callout{border-radius:12px;padding:18px 20px;margin:22px 0;border:1px solid;font-size:15px}
.callout.good{background:var(--ok-bg);border-color:#a7f3d0;color:#065f46}
.callout.warn{background:var(--warn-bg);border-color:#fde68a;color:#78350f}

/* TABLAS */
.tbl{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);
  border-radius:12px;overflow:hidden;font-size:15px;margin:8px 0 18px}
.tbl th,.tbl td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}
.tbl thead th{background:#f1f5f9;font-size:13px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink2)}
.tbl tbody tr:last-child td{border-bottom:0}
.tbl tbody tr:hover{background:#f8fafc}
.tbl .r{text-align:right;font-variant-numeric:tabular-nums}
.tbl .c{text-align:center}
.tbl small{color:var(--muted)}
td.ok,.c.ok{color:var(--ok);font-weight:700}
.c.pend{color:var(--warn);font-weight:700}
.c.parc{color:#0891b2;font-weight:700}
.c.alta{color:var(--alta);font-weight:700}
.c.media{color:var(--media);font-weight:700}
.c.baja{color:var(--baja);font-weight:700}
.matriz td:first-child{font-weight:600}
.tbl-wrap{overflow-x:auto}

/* ARBOL */
.tree{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px 20px;margin:12px 0 20px}
.node{padding:7px 0;font-size:15px}
.node.lvl1{font-weight:700;color:var(--ink)}
.node.lvl2{padding-left:26px;color:var(--ink2);font-weight:600}
.node.lvl3{padding-left:52px;color:var(--muted);font-size:14px}
.tag{display:inline-block;background:#eff6ff;color:var(--brand-dark);font-size:12px;font-weight:700;
  padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle}

/* CARDS */
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin-top:22px}
.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:20px;
  box-shadow:0 1px 3px rgba(2,6,23,.05)}
.card h3{margin:0 0 4px;font-size:17px;color:var(--brand-dark)}
.card .where{margin:0 0 10px;font-size:12.5px;color:var(--muted);font-weight:600;
  background:#f1f5f9;display:inline-block;padding:3px 9px;border-radius:6px}
.card p{margin:9px 0;font-size:14.5px;color:var(--ink2)}
.card .use{border-top:1px dashed var(--line);padding-top:10px;color:var(--ink)}
.chip{display:inline-block;background:#eff6ff;color:var(--brand-dark);font-size:12px;font-weight:700;
  padding:2px 8px;border-radius:6px;margin:0 2px}

/* CASOS */
.caso{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--brand);
  border-radius:12px;padding:20px;margin:16px 0;box-shadow:0 1px 3px rgba(2,6,23,.05)}
.caso-h{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.caso-h h3{margin:0;font-size:18px}
.num{flex:0 0 32px;height:32px;border-radius:50%;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px}
.mini{width:100%;border-collapse:collapse;font-size:14.5px}
.mini th{text-align:left;width:170px;padding:7px 12px 7px 0;color:var(--muted);
  font-weight:600;vertical-align:top;white-space:nowrap}
.mini td{padding:7px 0;color:var(--ink2);vertical-align:top}
.tip{margin:12px 0 0;padding:10px 14px;background:#f8fafc;border-radius:8px;
  font-size:14px;color:var(--ink2);border-left:3px solid #cbd5e1}

/* AVISOS */
.avisos{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:14px;margin:20px 0}
.aviso{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;border-top:3px solid}
.aviso h4{margin:0 0 8px;font-size:15.5px}
.aviso p{margin:0;font-size:14.5px;color:var(--ink2)}
.aviso.alta{border-top-color:var(--alta)}
.aviso.alta h4{color:var(--alta)}
.aviso.media{border-top-color:var(--media)}
.aviso.media h4{color:var(--media)}
.aviso.baja{border-top-color:var(--baja)}
.aviso.baja h4{color:var(--baja)}

footer{background:var(--ink);color:#cbd5e1;padding:28px 0;font-size:14px}
footer b{color:#fff}

@media (max-width:640px){
  .hero{padding:44px 0 38px}
  section{padding:38px 0}
  .mini th{width:auto;display:block;padding-bottom:0}
  .mini td{display:block;padding-top:2px;padding-bottom:10px}
}
@media print{
  .nav,.cta{display:none}
  .hero{background:#1e3a8a!important;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  section{page-break-inside:avoid}
}

/* CORTE (antes / despues) */
.corte{display:flex;align-items:stretch;gap:14px;margin:22px 0;flex-wrap:wrap}
.corte-b{flex:1 1 260px;background:var(--card);border:1px solid var(--line);border-radius:14px;padding:18px 20px;border-top:4px solid}
.corte-b.hist{border-top-color:#94a3b8}
.corte-b.nuevo{border-top-color:var(--ok)}
.corte-b .et{display:inline-block;font-size:12px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.corte-b.nuevo .et{color:var(--ok)}
.corte-b h4{margin:6px 0 8px;font-size:17px}
.corte-b p{margin:0;font-size:14.5px;color:var(--ink2)}
.corte-flecha{align-self:center;font-size:26px;color:var(--muted);font-weight:700}

/* PASOS */
.pasos{margin:18px 0}
.paso{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:16px 18px;margin-bottom:10px}
.pnum{flex:0 0 30px;height:30px;border-radius:8px;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-top:2px}
.paso h4{margin:0 0 5px;font-size:16px}
.paso p{margin:0;font-size:14.5px;color:var(--ink2)}
.cuando{display:inline-block;background:#eff6ff;color:var(--brand-dark);font-size:12px;font-weight:700;
  padding:2px 9px;border-radius:999px;margin-left:8px;vertical-align:middle;white-space:nowrap}

/* filas pendientes de definir */
.tbl td.pend{color:var(--warn);font-weight:700}

@media (max-width:640px){ .corte-flecha{transform:rotate(90deg);align-self:center} }

/* PEDIDOS (que necesitamos del cliente) */
.pedidos{margin:20px 0}
.pedido{display:flex;gap:16px;align-items:flex-start;background:var(--card);border:1px solid var(--line);
  border-radius:12px;padding:18px 20px;margin-bottom:12px}
.pedido.destacado{border-color:#bfdbfe;background:#f8fbff}
.pl{flex:0 0 30px;height:30px;border-radius:50%;background:var(--brand);color:#fff;
  display:flex;align-items:center;justify-content:center;font-weight:800;font-size:15px;margin-top:2px;text-transform:uppercase}
.pedido h4{margin:0 0 6px;font-size:17px}
.pedido p{margin:0 0 6px;font-size:14.5px;color:var(--ink2)}
.pedido .para{margin:8px 0 0;padding-top:8px;border-top:1px dashed var(--line);color:var(--ink)}
.nota{font-size:14px;color:var(--muted);font-style:italic;margin:10px 0 0}
