:root{
    --bg:#F3F4F7;
    --sidebar-bg:#E9EBF0;
    --surface:#FFFFFF;
    --text:#1C222C;
    --text-muted:#5B6472;
    --border:#DCE0E6;
    --accent:#00BFD6;
    --accent-strong:#04879A;
    --accent-soft:#DEF5F8;
    --code-bg:#EEF0F3;
    --callout-bg:#EAF8FA;
    --callout-border:#04A6BD;
    --warn-bg:#FCEEEC;
    --warn-border:#C15A45;
    --cat-calc:#7CA300;
    --cat-calc-soft:#EEF5D6;
    --cat-reloj:#D2570A;
    --cat-reloj-soft:#FBE7D6;
    --cat-rh:#7B5EC7;
    --cat-rh-soft:#EDE7FA;
    --cat-compras:#2E6FE0;
    --cat-compras-soft:#DCE8FB;
    --cat-ventas:#1E9E6B;
    --cat-ventas-soft:#DCF3E9;
    --cat-inventario:#8B6F47;
    --cat-inventario-soft:#F1E9DE;
    --cat-contabilidad:#4A5B7A;
    --cat-contabilidad-soft:#E3E7EE;
    --cat-config:#C2418C;
    --cat-config-soft:#FBE1F0;
    --cat-tesoreria:#A6790C;
    --cat-tesoreria-soft:#F5E9D1;
    --cat-pagos:#C23B3B;
    --cat-pagos-soft:#FBE4E1;
    --cat-cobranza:#0E8074;
    --cat-cobranza-soft:#DCF0EC;
    --cat-xml:#4B4ACF;
    --cat-xml-soft:#E7E6FB;
    --cat-conteos:#1F8FA8;
    --cat-conteos-soft:#DCF0F3;
    --cat-consignaciones:#8B3A4A;
    --cat-consignaciones-soft:#F5DCE0;
    --cat-produccion:#6B4E8E;
    --cat-produccion-soft:#EDE3F5;
    --cat-preciosunitarios:#3B6E91;
    --cat-preciosunitarios-soft:#DCEAF2;
    --cat-clientes:#E0607E;
    --cat-clientes-soft:#FCE4E9;
    --cat-crm:#C9971F;
    --cat-crm-soft:#F7EAD1;
    --cat-proveedores:#9C4FA8;
    --cat-proveedores-soft:#F3E1F5;
    --cat-capitalhumano:#5C7A9E;
    --cat-capitalhumano-soft:#E1E9F2;
    --cat-negocio:#A65D3D;
    --cat-negocio-soft:#F0DED4;
    --cat-transporte:#5E7A85;
    --cat-transporte-soft:#DFE8EA;
    --cat-reportes:#C94A2B;
    --cat-reportes-soft:#F8DFD8;
    --cat-auditoria:#4A4458;
    --cat-auditoria-soft:#E5E2ED;
    --cat-autorizaciones:#5E8C6A;
    --cat-autorizaciones-soft:#DEEAE1;
  }
  :root[data-theme="dark"]{
    --bg:#14171D;
    --sidebar-bg:#1A1E25;
    --surface:#1E232B;
    --text:#E7E9ED;
    --text-muted:#98A1AE;
    --border:#2B313B;
    --accent:#4DD8EA;
    --accent-strong:#8CE8F2;
    --accent-soft:#133238;
    --code-bg:#252B34;
    --callout-bg:#122B2E;
    --callout-border:#3FC2D6;
    --warn-bg:#2E1F1C;
    --warn-border:#C97A63;
    --cat-calc:#C7E36B;
    --cat-calc-soft:#2A3312;
    --cat-reloj:#FFA35C;
    --cat-reloj-soft:#3A2413;
    --cat-rh:#B9A6F2;
    --cat-rh-soft:#2A2340;
    --cat-compras:#7FAEFF;
    --cat-compras-soft:#16233D;
    --cat-ventas:#6EDBAE;
    --cat-ventas-soft:#123326;
    --cat-inventario:#D9B98A;
    --cat-inventario-soft:#332A1C;
    --cat-contabilidad:#9FB3D6;
    --cat-contabilidad-soft:#232B3A;
    --cat-config:#F08FC7;
    --cat-config-soft:#3A1A2C;
    --cat-tesoreria:#E8C169;
    --cat-tesoreria-soft:#3A2E12;
    --cat-pagos:#F2867E;
    --cat-pagos-soft:#3A1613;
    --cat-cobranza:#5FCBB8;
    --cat-cobranza-soft:#12302B;
    --cat-xml:#A5A3F5;
    --cat-xml-soft:#211F3D;
    --cat-conteos:#6ED3E8;
    --cat-conteos-soft:#123138;
    --cat-consignaciones:#E894A3;
    --cat-consignaciones-soft:#331A1F;
    --cat-produccion:#B79BD9;
    --cat-produccion-soft:#241A30;
    --cat-preciosunitarios:#7BB8DE;
    --cat-preciosunitarios-soft:#142430;
    --cat-clientes:#F0A0B3;
    --cat-clientes-soft:#331A21;
    --cat-crm:#E8C56B;
    --cat-crm-soft:#332B12;
    --cat-proveedores:#D399DB;
    --cat-proveedores-soft:#2E1830;
    --cat-capitalhumano:#9AB4D6;
    --cat-capitalhumano-soft:#1C2734;
    --cat-negocio:#D99B7D;
    --cat-negocio-soft:#2E1D15;
    --cat-transporte:#9DBAC2;
    --cat-transporte-soft:#1B262A;
    --cat-reportes:#E8927C;
    --cat-reportes-soft:#331F19;
    --cat-auditoria:#A79FC2;
    --cat-auditoria-soft:#221E2C;
    --cat-autorizaciones:#9DC2A8;
    --cat-autorizaciones-soft:#1A2A20;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#14171D;
      --sidebar-bg:#1A1E25;
      --surface:#1E232B;
      --text:#E7E9ED;
      --text-muted:#98A1AE;
      --border:#2B313B;
      --accent:#4DD8EA;
      --accent-strong:#8CE8F2;
      --accent-soft:#133238;
      --code-bg:#252B34;
      --callout-bg:#122B2E;
      --callout-border:#3FC2D6;
      --warn-bg:#2E1F1C;
      --warn-border:#C97A63;
      --cat-calc:#C7E36B;
      --cat-calc-soft:#2A3312;
      --cat-reloj:#FFA35C;
      --cat-reloj-soft:#3A2413;
      --cat-rh:#B9A6F2;
      --cat-rh-soft:#2A2340;
      --cat-compras:#7FAEFF;
      --cat-compras-soft:#16233D;
      --cat-ventas:#6EDBAE;
      --cat-ventas-soft:#123326;
      --cat-inventario:#D9B98A;
      --cat-inventario-soft:#332A1C;
      --cat-contabilidad:#9FB3D6;
      --cat-contabilidad-soft:#232B3A;
      --cat-config:#F08FC7;
      --cat-config-soft:#3A1A2C;
      --cat-tesoreria:#E8C169;
      --cat-tesoreria-soft:#3A2E12;
      --cat-pagos:#F2867E;
      --cat-pagos-soft:#3A1613;
      --cat-cobranza:#5FCBB8;
      --cat-cobranza-soft:#12302B;
      --cat-xml:#A5A3F5;
      --cat-xml-soft:#211F3D;
      --cat-conteos:#6ED3E8;
      --cat-conteos-soft:#123138;
      --cat-consignaciones:#E894A3;
      --cat-consignaciones-soft:#331A1F;
      --cat-produccion:#B79BD9;
      --cat-produccion-soft:#241A30;
      --cat-preciosunitarios:#7BB8DE;
      --cat-preciosunitarios-soft:#142430;
      --cat-clientes:#F0A0B3;
      --cat-clientes-soft:#331A21;
      --cat-crm:#E8C56B;
      --cat-crm-soft:#332B12;
      --cat-proveedores:#D399DB;
      --cat-proveedores-soft:#2E1830;
      --cat-capitalhumano:#9AB4D6;
      --cat-capitalhumano-soft:#1C2734;
      --cat-negocio:#D99B7D;
      --cat-negocio-soft:#2E1D15;
      --cat-transporte:#9DBAC2;
      --cat-transporte-soft:#1B262A;
      --cat-reportes:#E8927C;
      --cat-reportes-soft:#331F19;
      --cat-auditoria:#A79FC2;
      --cat-auditoria-soft:#221E2C;
      --cat-autorizaciones:#9DC2A8;
      --cat-autorizaciones-soft:#1A2A20;
    }
  }

  *{box-sizing:border-box;}
  html,body{margin:0;padding:0;}
  body{
    background:var(--bg);
    color:var(--text);
    font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
    font-size:16px;
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3,h4{
    font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
    font-weight:700;
    text-wrap:balance;
    color:var(--text);
  }
  code, .mono{
    font-family:"Cascadia Mono","Consolas","SFMono-Regular",monospace;
    font-size:0.88em;
  }
  a{color:var(--accent-strong);}

  .layout{
    display:grid;
    grid-template-columns:272px minmax(0,1fr);
    max-width:1180px;
    margin:0 auto;
    min-height:100vh;
  }
  nav.toc{
    background:var(--sidebar-bg);
    border-right:1px solid var(--border);
    padding:28px 20px 60px;
    position:sticky;
    top:0;
    align-self:start;
    height:100vh;
    overflow-y:auto;
  }
  nav.toc .brand{
    display:flex;
    align-items:center;
    gap:9px;
    margin-bottom:4px;
  }
  nav.toc .brand img{width:22px;height:22px;flex-shrink:0;}
  nav.toc .brand span{
    font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
    font-weight:700;
    font-size:1.05rem;
    letter-spacing:0.01em;
  }
  nav.toc .brand-sub{
    font-size:0.78rem;
    color:var(--text-muted);
    margin-bottom:22px;
    text-transform:uppercase;
    letter-spacing:0.08em;
  }
  nav.toc .part-label{
    display:flex;
    align-items:center;
    gap:8px;
    font-size:0.8rem;
    font-weight:700;
    margin:28px 0 4px;
    padding-top:16px;
    border-top:1px solid var(--border);
  }
  nav.toc .part-label:first-of-type{border-top:none;padding-top:0;}
  nav.toc .part-label .dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
  nav.toc .part-label.calc{color:var(--cat-calc);}
  nav.toc .part-label.calc .dot{background:var(--cat-calc);}
  nav.toc .part-label.reloj{color:var(--cat-reloj);}
  nav.toc .part-label.reloj .dot{background:var(--cat-reloj);}
  nav.toc .group-label{
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.09em;
    color:var(--text-muted);
    margin:16px 0 6px;
  }
  nav.toc ul{list-style:none;margin:0;padding:0;}
  nav.toc li a{
    display:block;
    padding:5px 8px;
    margin:1px 0;
    border-radius:5px;
    color:var(--text);
    text-decoration:none;
    font-size:0.89rem;
    border-left:2px solid transparent;
  }
  nav.toc li a:hover{background:var(--accent-soft);border-left-color:var(--accent);}

  main{padding:44px 56px 100px;min-width:0;}
  header.title-block{margin-bottom:8px;}
  header.title-block img.logo-full{height:52px;margin-bottom:22px;display:block;}
  header.title-block .eyebrow{
    text-transform:uppercase;
    letter-spacing:0.12em;
    font-size:0.78rem;
    color:var(--accent-strong);
    font-weight:600;
    margin-bottom:10px;
  }
  header.title-block h1{font-size:2.3rem;margin:0 0 12px;}
  header.title-block p.lede{
    font-size:1.08rem;
    color:var(--text-muted);
    max-width:62ch;
    margin:0 0 8px;
  }
  hr.rule{border:none;border-top:1px solid var(--border);margin:36px 0;}

  .part-banner{
    display:flex;
    align-items:baseline;
    gap:16px;
    margin:56px 0 28px;
    padding-bottom:16px;
    border-bottom:2px solid var(--border);
  }
  .part-banner .num{
    font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
    font-size:2.6rem;
    font-weight:700;
    line-height:1;
    opacity:0.55;
  }
  .part-banner .txt h2{margin:0 0 4px;font-size:1.7rem;}
  .part-banner .txt p{margin:0;color:var(--text-muted);max-width:62ch;}
  .part-banner.calc .num{color:var(--cat-calc);}
  .part-banner.reloj .num{color:var(--cat-reloj);}

  section{margin-bottom:52px;scroll-margin-top:20px;}
  section h2{font-size:1.5rem;margin:0 0 6px;padding-top:8px;}
  section h3{font-size:1.15rem;margin:28px 0 10px;}
  section h4{font-size:0.98rem;margin:20px 0 8px;color:var(--text);}
  section > p.desc{color:var(--text-muted);max-width:70ch;margin:0 0 18px;}

  .badge{
    display:inline-block;
    font-size:0.7rem;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:0.06em;
    padding:3px 9px;
    border-radius:100px;
    margin-bottom:10px;
  }
  .badge.calc{background:var(--cat-calc-soft);color:var(--cat-calc);}
  .badge.reloj{background:var(--cat-reloj-soft);color:var(--cat-reloj);}
  .badge.tesoreria{background:var(--cat-tesoreria-soft);color:var(--cat-tesoreria);}
  .badge.pagos{background:var(--cat-pagos-soft);color:var(--cat-pagos);}
  .badge.cobranza{background:var(--cat-cobranza-soft);color:var(--cat-cobranza);}
  .badge.xml{background:var(--cat-xml-soft);color:var(--cat-xml);}

  p{max-width:72ch;}
  ol.steps{padding-left:0;list-style:none;counter-reset:step;max-width:70ch;}
  ol.steps li{
    counter-increment:step;
    position:relative;
    padding-left:44px;
    margin-bottom:18px;
  }
  ol.steps li::before{
    content:counter(step);
    position:absolute;left:0;top:-1px;
    width:28px;height:28px;
    border-radius:50%;
    background:var(--accent-soft);
    color:var(--accent-strong);
    font-weight:700;
    font-size:0.85rem;
    display:flex;align-items:center;justify-content:center;
    font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
  }
  ol.steps li b{display:block;margin-bottom:2px;}
  ol.steps li span.note{color:var(--text-muted);font-size:0.94rem;}

  .table-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:8px;margin:14px 0 22px;}
  table{border-collapse:collapse;width:100%;font-size:0.92rem;background:var(--surface);}
  table caption{caption-side:top;text-align:left;padding:10px 14px;font-size:0.8rem;color:var(--text-muted);}
  th,td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--border);vertical-align:top;}
  thead th{
    background:var(--code-bg);
    font-size:0.72rem;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--text-muted);
    font-weight:700;
  }
  tbody tr:last-child td{border-bottom:none;}
  td.field{font-weight:600;white-space:nowrap;color:var(--accent-strong);}
  td.num{font-variant-numeric:tabular-nums;font-family:"Cascadia Mono","Consolas",monospace;}

  .callout{
    background:var(--callout-bg);
    border-left:3px solid var(--callout-border);
    border-radius:6px;
    padding:14px 18px;
    margin:16px 0;
    max-width:70ch;
  }
  .callout .label{font-weight:700;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--callout-border);margin-bottom:4px;}
  .callout p{margin:0;color:var(--text);}

  .warn{
    background:var(--warn-bg);
    border-left:3px solid var(--warn-border);
    border-radius:6px;
    padding:14px 18px;
    margin:16px 0;
    max-width:70ch;
  }
  .warn .label{font-weight:700;font-size:0.78rem;text-transform:uppercase;letter-spacing:0.05em;color:var(--warn-border);margin-bottom:4px;}
  .warn p{margin:0;color:var(--text);}

  .letter-grid{display:flex;flex-wrap:wrap;gap:10px;margin:16px 0;}
  .letter-chip{
    display:flex;align-items:center;gap:10px;
    background:var(--surface);border:1px solid var(--border);
    border-radius:8px;padding:8px 12px;min-width:210px;
  }
  .letter-chip .glyph{
    font-family:"Cascadia Mono",monospace;font-weight:700;font-size:1.05rem;
    color:var(--accent-strong);background:var(--accent-soft);
    width:34px;height:34px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;
  }
  .letter-chip .txt{font-size:0.86rem;color:var(--text-muted);}
  .letter-chip .txt b{color:var(--text);font-weight:600;}

  footer.end{margin-top:60px;padding-top:20px;border-top:1px solid var(--border);color:var(--text-muted);font-size:0.85rem;display:flex;align-items:center;gap:8px;}
  footer.end img{height:14px;opacity:0.7;}

  .nav-toggle{display:none;}

  @media (max-width:860px){
    .layout{grid-template-columns:1fr;}
    nav.toc{
      position:relative;
      height:auto;
      max-height:none;
      border-right:none;
      border-bottom:1px solid var(--border);
      padding:16px 20px 20px;
    }
    nav.toc.collapsed .toc-body{display:none;}
    .nav-toggle{
      display:flex;
      align-items:center;
      justify-content:space-between;
      width:100%;
      font:inherit;
      font-weight:700;
      font-size:0.95rem;
      color:var(--text);
      background:var(--surface);
      border:1px solid var(--border);
      border-radius:8px;
      padding:10px 14px;
      margin-bottom:2px;
      cursor:pointer;
    }
    .nav-toggle .chev{transition:transform 0.15s ease;}
    nav.toc.collapsed .nav-toggle .chev{transform:rotate(-90deg);}
    main{padding:28px 18px 70px;}
    header.title-block img.logo-full{height:40px;margin-bottom:16px;}
    header.title-block h1{font-size:1.7rem;}
    header.title-block p.lede{font-size:1rem;}
    .part-banner{gap:10px;margin:40px 0 20px;}
    .part-banner .num{font-size:1.9rem;}
    .part-banner .txt h2{font-size:1.35rem;}
    section h2{font-size:1.25rem;}
    .card-grid{grid-template-columns:1fr;}
  }

  @media (max-width:480px){
    main{padding:22px 14px 56px;}
    header.title-block h1{font-size:1.45rem;}
    th,td{padding:8px 10px;font-size:0.85rem;}
  }


/* --- Portal de manuales: hub, categorías, tarjetas, buscador --- */
.layout.hub{grid-template-columns:1fr;max-width:960px;}

.category{margin:44px 0;}
.category-label{
  display:flex;
  align-items:center;
  gap:8px;
  font-size:1.1rem;
  font-weight:700;
  font-family:"Plus Jakarta Sans",-apple-system,"Segoe UI",system-ui,sans-serif;
  margin-bottom:16px;
}
.category-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0;}
.category-asistencia .category-dot{background:var(--cat-rh);}
.category-compras .category-dot{background:var(--cat-compras);}
.category-ventas .category-dot{background:var(--cat-ventas);}
.category-inventario .category-dot{background:var(--cat-inventario);}
.category-contabilidad .category-dot{background:var(--cat-contabilidad);}
.category-config .category-dot{background:var(--cat-config);}
.category-tesoreria .category-dot{background:var(--cat-tesoreria);}
.category-pagos .category-dot{background:var(--cat-pagos);}
.category-cobranza .category-dot{background:var(--cat-cobranza);}
.category-xml .category-dot{background:var(--cat-xml);}
.category-puntodeventa .category-dot{background:var(--cat-reloj);}
.category-insumos .category-dot{background:var(--cat-calc);}
.category-conteos .category-dot{background:var(--cat-conteos);}
.category-consignaciones .category-dot{background:var(--cat-consignaciones);}
.category-produccion .category-dot{background:var(--cat-produccion);}
.category-preciosunitarios .category-dot{background:var(--cat-preciosunitarios);}
.category-clientes .category-dot{background:var(--cat-clientes);}
.category-crm .category-dot{background:var(--cat-crm);}
.category-proveedores .category-dot{background:var(--cat-proveedores);}
.category-capitalhumano .category-dot{background:var(--cat-capitalhumano);}
.category-negocio .category-dot{background:var(--cat-negocio);}
.category-transporte .category-dot{background:var(--cat-transporte);}
.category-reportes .category-dot{background:var(--cat-reportes);}
.category-auditoria .category-dot{background:var(--cat-auditoria);}
.category-autorizaciones .category-dot{background:var(--cat-autorizaciones);}

.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px;}
.card{
  display:block;
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:10px;
  padding:18px 20px;
  text-decoration:none;
  color:var(--text);
  transition:border-color 0.15s ease;
}
.card:hover{border-color:var(--accent);}
.card h3{margin:0 0 6px;font-size:1.05rem;}
.card p{margin:0;color:var(--text-muted);font-size:0.88rem;max-width:none;}
.card.disabled{cursor:default;opacity:0.55;}
.card.disabled:hover{border-color:var(--border);}
.badge-soon{
  display:inline-block;
  font-size:0.68rem;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:0.06em;
  padding:2px 8px;
  border-radius:100px;
  margin-top:8px;
  background:var(--code-bg);
  color:var(--text-muted);
}

.search-wrap{position:relative;margin:18px 0;}
.search-box{
  width:100%;
  padding:9px 12px;
  border:1px solid var(--border);
  border-radius:8px;
  background:var(--surface);
  color:var(--text);
  font-size:0.92rem;
  font-family:inherit;
}
.search-box:focus{outline:2px solid var(--accent);outline-offset:-1px;}
.search-results{
  position:absolute;
  left:0;right:0;top:calc(100% + 6px);
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:8px;
  box-shadow:0 8px 24px rgba(0,0,0,0.12);
  max-height:60vh;
  overflow-y:auto;
  z-index:20;
}
.search-results:empty{display:none;}
.result-group{padding:10px 14px;border-bottom:1px solid var(--border);}
.result-group:last-child{border-bottom:none;}
.result-group .group-title{
  font-size:0.72rem;
  text-transform:uppercase;
  letter-spacing:0.07em;
  color:var(--text-muted);
  margin-bottom:6px;
}
.result-item{display:block;padding:6px 4px;border-radius:5px;text-decoration:none;color:var(--text);}
.result-item:hover{background:var(--accent-soft);}
.result-item .result-title{font-weight:600;font-size:0.9rem;}
.result-item .result-snippet{font-size:0.8rem;color:var(--text-muted);}
.search-empty, .search-offline-notice{padding:14px;font-size:0.88rem;color:var(--text-muted);}
.ticket-cta{padding:14px;border-top:1px solid var(--border);}
.ticket-cta p{margin:0 0 8px;font-size:0.88rem;color:var(--text-muted);}
.ticket-cta button{
  font:inherit;
  padding:6px 14px;
  border-radius:6px;
  border:1px solid var(--border);
  background:var(--code-bg);
  color:var(--text-muted);
  cursor:not-allowed;
}

nav.toc .index-link{
  display:block;
  font-size:0.85rem;
  color:var(--text-muted);
  text-decoration:none;
  margin-bottom:14px;
}
nav.toc .index-link:hover{color:var(--accent-strong);}
