:root {
  --bg: #0b1220;
  --panel: #111827;
  --panel2: #1a2336;
  --border: #2a3650;
  --text: #e8eefc;
  --muted: #9aa8c7;
  --brand: #5b8cff;
  --brand2: #7c5cff;
  --ok: #34d399;
  --warn: #fbbf24;
  --danger: #f87171;
  --chip: #243047;
}
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; font-family: Inter, ui-sans-serif, system-ui, -apple-system, Segoe UI, Roboto, sans-serif; background: var(--bg); color: var(--text); }
a { color: inherit; text-decoration: none; }
.shell { min-height: 100vh; display: grid; grid-template-columns: 240px 1fr; }
.sidebar { background: #0a1020; border-right: 1px solid var(--border); padding: 20px 14px; position: sticky; top: 0; height: 100vh; }
.brand { display: flex; gap: 10px; align-items: center; font-weight: 700; margin-bottom: 24px; }
.brand .logo { width: 32px; height: 32px; border-radius: 10px; background: linear-gradient(135deg, var(--brand), var(--brand2)); display:grid; place-items:center; font-size:14px; }
.nav a { display:block; padding:10px 12px; border-radius:10px; color: var(--muted); margin-bottom: 4px; font-size: 14px; }
.nav a:hover, .nav a.active { background: var(--chip); color: var(--text); }
.main { padding: 24px 28px 48px; }
.topbar { display:flex; justify-content:space-between; align-items:center; margin-bottom: 22px; gap: 12px; flex-wrap: wrap; }
.h1 { font-size: 28px; font-weight: 700; margin: 0; }
.sub { color: var(--muted); margin: 6px 0 0; font-size: 14px; }
.btn { display:inline-flex; align-items:center; gap:8px; background: var(--brand); color:white; border:0; border-radius:10px; padding:10px 14px; font-weight:600; cursor:pointer; font-size:14px; }
.btn.secondary { background: transparent; border:1px solid var(--border); color: var(--text); }
.btn.ghost { background: var(--chip); }
.grid { display:grid; gap:16px; }
.grid-3 { grid-template-columns: repeat(3, minmax(0,1fr)); }
.grid-2 { grid-template-columns: repeat(2, minmax(0,1fr)); }
.card { background: var(--panel); border:1px solid var(--border); border-radius:16px; padding:18px; }
.card h3 { margin:0 0 8px; font-size:16px; }
.muted { color: var(--muted); font-size:13px; }
.metric { font-size:32px; font-weight:700; }
.pill { display:inline-flex; padding:4px 10px; border-radius:999px; background: var(--chip); color: var(--muted); font-size:12px; }
.pill.ok { color: var(--ok); background: rgba(52,211,153,.12); }
.pill.warn { color: var(--warn); background: rgba(251,191,36,.12); }
.pill.danger { color: var(--danger); background: rgba(248,113,113,.12); }
.table { width:100%; border-collapse: collapse; font-size:14px; }
.table th, .table td { text-align:left; padding:10px 8px; border-bottom:1px solid var(--border); }
.table th { color: var(--muted); font-weight:600; font-size:12px; text-transform: uppercase; letter-spacing:.04em; }
.progress { height:8px; background:#0d1526; border-radius:99px; overflow:hidden; }
.progress > span { display:block; height:100%; background: linear-gradient(90deg, var(--brand), var(--brand2)); }
.chat { display:flex; flex-direction:column; gap:10px; max-height:520px; overflow:auto; }
.bubble { padding:12px 14px; border-radius:14px; max-width:92%; font-size:14px; line-height:1.45; }
.bubble.ai { background: var(--panel2); align-self:flex-start; }
.bubble.me { background: rgba(91,140,255,.18); align-self:flex-end; }
.input-row { display:flex; gap:8px; margin-top:12px; }
.input-row input, select, textarea { width:100%; background:#0d1526; border:1px solid var(--border); color:var(--text); border-radius:10px; padding:10px 12px; font: inherit; }
.field { margin-bottom:12px; }
.field label { display:block; font-size:12px; color:var(--muted); margin-bottom:6px; }
.bpmn { background:#0d1526; border:1px dashed var(--border); border-radius:14px; min-height:420px; padding:16px; position:relative; overflow:auto; }
.lane { border:1px solid var(--border); border-radius:12px; margin-bottom:12px; background: rgba(255,255,255,.02); }
.lane-h { padding:8px 12px; border-bottom:1px solid var(--border); color:var(--muted); font-size:12px; font-weight:600; }
.lane-b { display:flex; gap:10px; padding:14px; align-items:center; flex-wrap:wrap; }
.node { background: var(--panel2); border:1px solid var(--border); border-radius:10px; padding:10px 12px; font-size:12px; min-width:120px; text-align:center; }
.node.start, .node.end { border-radius:999px; background: rgba(52,211,153,.12); border-color: rgba(52,211,153,.35); }
.node.gateway { transform: rotate(0deg); background: rgba(251,191,36,.1); }
.arrow { color: var(--muted); }
.matrix { position:relative; height:320px; background:#0d1526; border-radius:14px; border:1px solid var(--border); }
.dot { position:absolute; width:14px; height:14px; border-radius:50%; background: var(--brand); transform:translate(-50%,50%); box-shadow:0 0 0 6px rgba(91,140,255,.15); }
.dot label { position:absolute; left:16px; top:-6px; white-space:nowrap; font-size:11px; color:var(--text); }
.axes { position:absolute; inset:16px; border-left:1px solid var(--border); border-bottom:1px solid var(--border); }
.axes::before { content:"Impacto"; position:absolute; left:-8px; top:-8px; font-size:11px; color:var(--muted); transform:rotate(-90deg); transform-origin:left top; }
.axes::after { content:"Esfuerzo →"; position:absolute; right:0; bottom:-18px; font-size:11px; color:var(--muted); }
.steps { display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px; }
.step { padding:8px 12px; border-radius:999px; background: var(--chip); color:var(--muted); font-size:12px; }
.step.on { background: rgba(91,140,255,.2); color: var(--text); }
.landing { max-width:1100px; margin:0 auto; padding:40px 20px 80px; }
.hero { text-align:center; padding:40px 0 30px; }
.hero h1 { font-size:44px; margin:0 0 12px; line-height:1.1; }
.hero p { color:var(--muted); font-size:18px; max-width:720px; margin:0 auto 24px; }
.price { font-size:36px; font-weight:700; }
.price span { font-size:14px; color:var(--muted); font-weight:500; }
.demo-banner { background: rgba(251,191,36,.1); border:1px solid rgba(251,191,36,.35); color:#fde68a; padding:8px 12px; border-radius:10px; font-size:12px; margin-bottom:16px; }
@media (max-width: 960px) {
  .shell { grid-template-columns: 1fr; }
  .sidebar { position: relative; height: auto; }
  .grid-3, .grid-2 { grid-template-columns: 1fr; }
}

.powered { margin-top: 24px; padding-top: 14px; border-top: 1px solid var(--border); color: var(--muted); font-size: 12px; text-align: center; }
.sidebar .powered { border: 0; margin-top: 32px; text-align: left; padding-top: 0; }
