@import url('https://fonts.googleapis.com/css2?family=Zilla+Slab:wght@500;600;700&family=Public+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@500;600&display=swap');
  :root{
    --ink:#0A2F52;
    --ink-soft:#4C6478;
    --ink-faint:#4F6B88;
    --paper:#EEF2F6;
    --surface:#FFFFFF;
    --surface-2:#E5EBF1;
    --line:rgba(10,47,82,0.14);
    --blue:#0067B5;
    --blue-strong:#004D8A;
    --blue-soft:#DCEBF7;
    --green:#477528;
    --green-soft:#E7F1DC;
    --amber:#7D591D;
    --amber-soft:#F1E3C6;
    --brick:#8C3128;
    --brick-soft:#F1DAD6;
    --shadow:0 1px 2px rgba(10,47,82,0.06), 0 8px 20px rgba(10,47,82,0.06);
    --sobre-color:#FFFFFF;
    /* Paleta de datos (ranuras 1-6 de la paleta de referencia, validadas contra
       esta superficie: banda de luminosidad, croma, daltonismo y visión normal). */
    --serie-1:#2a78d6;    --graf-grid:#E4E9EE; --graf-eje:#C3CBD3;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ink:#E7EEF4;
      --ink-soft:#ABBECE;
      --ink-faint:#94ACC0;
      --paper:#0B1E30;
      --surface:#122B45;
      --surface-2:#17324F;
      --line:rgba(231,238,244,0.14);
      --blue:#4FA8E8;
      --blue-strong:#7CC2F2;
      --blue-soft:rgba(79,168,232,0.18);
      --green:#8FCB5B;
      --green-soft:rgba(143,203,91,0.18);
      --amber:#D8AE63;
      --amber-soft:rgba(216,174,99,0.16);
      --brick:#E0847A;
      --brick-soft:rgba(224,132,122,0.16);
      --shadow:0 1px 2px rgba(0,0,0,0.35), 0 8px 24px rgba(0,0,0,0.3);
      --sobre-color:#06172A;
      --serie-1:#3987e5;      --graf-grid:#21405F; --graf-eje:#2F527A;
    }
  }
  :root[data-theme="dark"]{
    --sobre-color:#06172A;
    --serie-1:#3987e5;    --graf-grid:#21405F; --graf-eje:#2F527A;
    --ink:#E7EEF4;
    --ink-soft:#ABBECE;
    --ink-faint:#94ACC0;
    --paper:#0B1E30;
    --surface:#122B45;
    --surface-2:#17324F;
    --line:rgba(231,238,244,0.14);
    --blue:#4FA8E8;
    --blue-strong:#7CC2F2;
    --blue-soft:rgba(79,168,232,0.18);
    --green:#8FCB5B;
    --green-soft:rgba(143,203,91,0.18);
    --amber:#D8AE63;
    --amber-soft:rgba(216,174,99,0.16);
    --brick:#E0847A;
    --brick-soft:rgba(224,132,122,0.16);
    --shadow:0 1px 2px rgba(0,0,0,0.35), 0 8px 24px rgba(0,0,0,0.3);
  }
  /* Tamaño de letra y tema elegidos por la persona (se recuerdan en su navegador;
     es preferencia de pantalla, no información de negocio). */
  #app{zoom:var(--zoom,1);color:var(--ink);}
  #app[data-tema="claro"]{
    color-scheme:light;
    --sobre-color:#FFFFFF;
    --serie-1:#2a78d6;    --graf-grid:#E4E9EE; --graf-eje:#C3CBD3;
    --ink:#0A2F52;--ink-soft:#4C6478;--ink-faint:#4F6B88;--paper:#EEF2F6;--surface:#FFFFFF;
    --surface-2:#E5EBF1;--line:rgba(10,47,82,0.14);--blue:#0067B5;--blue-strong:#004D8A;
    --blue-soft:#DCEBF7;--green:#477528;--green-soft:#E7F1DC;--amber:#7D591D;--amber-soft:#F1E3C6;
    --brick:#8C3128;--brick-soft:#F1DAD6;--shadow:0 1px 2px rgba(10,47,82,0.06), 0 8px 20px rgba(10,47,82,0.06);
  }
  #app[data-tema="oscuro"]{
    color-scheme:dark;
    --sobre-color:#06172A;
    --serie-1:#3987e5;    --graf-grid:#21405F; --graf-eje:#2F527A;
    --ink:#E7EEF4;--ink-soft:#ABBECE;--ink-faint:#94ACC0;--paper:#0B1E30;--surface:#122B45;
    --surface-2:#17324F;--line:rgba(231,238,244,0.14);--blue:#4FA8E8;--blue-strong:#7CC2F2;
    --blue-soft:rgba(79,168,232,0.18);--green:#8FCB5B;--green-soft:rgba(143,203,91,0.18);
    --amber:#D8AE63;--amber-soft:rgba(216,174,99,0.16);--brick:#E0847A;--brick-soft:rgba(224,132,122,0.16);
    --shadow:0 1px 2px rgba(0,0,0,0.35), 0 8px 24px rgba(0,0,0,0.3);
  }
  .side-prefs{display:flex;gap:6px;flex-wrap:wrap;}
  .side-prefs .btn{font-size:12px;padding:5px 9px;}
  .nota-asignado{background:var(--surface);border:1px dashed var(--line);border-radius:8px;padding:9px 12px;}
  /* ---- El reparto del bot de localizaciones ---- */
  .campo-bot{display:flex;flex-direction:column;gap:6px;background:var(--surface);
    border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:10px;padding:12px 14px;}
  .campo-bot .field input{max-width:220px;font-variant-numeric:tabular-nums;}
  .bot-reparto{margin:0;font-size:13px;color:var(--ink-soft);}
  .bot-reparto b{font-family:'IBM Plex Mono',monospace;font-size:15px;color:var(--blue-strong);
    font-variant-numeric:tabular-nums;}
  .paso-reparto{font-size:12.5px;line-height:1.5;margin:9px 0 0;color:var(--blue-strong);
    background:var(--blue-soft);border-radius:8px;padding:9px 12px;max-width:74ch;}
  .paso-reparto b{font-weight:700;font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .sla-bot{margin:0;font-size:12.5px;line-height:1.55;color:var(--blue-strong);
    background:var(--blue-soft);border-radius:8px;padding:8px 11px;max-width:74ch;}
  .sla-bot b{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .sla-bot.falta{color:var(--amber);background:var(--amber-soft);}
  .row-aviso.bot,.pa-aviso.bot{background:var(--blue-soft);color:var(--blue-strong);font-weight:700;}
  @media print{ .campo-bot{display:none;} }
  details.ayuda{font-size:12.5px;color:var(--ink-faint);}
  details.ayuda summary{cursor:pointer;font-weight:600;color:var(--ink-soft);list-style:none;width:fit-content;}
  details.ayuda summary::-webkit-details-marker{display:none;}
  details.ayuda summary::before{content:"\25B8  ";}
  details.ayuda[open] summary::before{content:"\25BE  ";}
  details.ayuda summary:hover{color:var(--blue-strong);}
  details.ayuda p{margin:8px 0 0;line-height:1.55;max-width:74ch;}
  details.ayuda p b{color:var(--ink-soft);}
  @media print{ details.ayuda{display:none;} }
  .fechas-rapidas{display:flex;gap:4px;margin-top:4px;flex-wrap:wrap;}
  .fechas-rapidas button{font-family:inherit;font-size:11.5px;font-weight:600;color:var(--ink-soft);
    background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:2px 10px;cursor:pointer;}
  .fechas-rapidas button:hover{border-color:var(--blue);color:var(--blue-strong);}
  .fechas-rapidas button:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  @media print{ #app{zoom:1;} .side-prefs,.fechas-rapidas{display:none;} }
  *{box-sizing:border-box;}
  html{color-scheme:light dark;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Public Sans',system-ui,-apple-system,sans-serif;
    padding-inline:20px;
    padding-block:36px;
    line-height:1.45;
  }
  #app{max-width:1160px;margin-inline:auto;display:flex;flex-direction:column;gap:22px;}
  .logo-badge{height:38px;width:auto;display:block;}
  .eyebrow{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:12px;letter-spacing:0.09em;text-transform:uppercase;color:var(--ink-faint);}
  h1{font-family:'Zilla Slab',Georgia,serif;font-weight:700;font-size:clamp(28px,4vw,38px);margin:2px 0 0;text-wrap:balance;letter-spacing:-0.01em;}
  h2{font-family:'Zilla Slab',Georgia,serif;font-weight:600;font-size:20px;margin:0;}
  .subtitle{color:var(--ink-soft);font-size:15px;max-width:60ch;margin:0;}
  header.top{display:flex;flex-wrap:wrap;gap:16px;justify-content:space-between;align-items:flex-start;}
  .head-left{display:flex;gap:14px;align-items:flex-start;min-width:260px;}
  .head-text{display:flex;flex-direction:column;gap:6px;}
  button{font-family:inherit;cursor:pointer;color:inherit;}
  .btn{border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:8px;padding:9px 14px;font-size:13.5px;font-weight:600;display:inline-flex;align-items:center;gap:6px;text-decoration:none;transition:border-color .15s, transform .15s;}
  .btn:hover{border-color:var(--blue);}
  .btn:active{transform:translateY(1px);}
  .btn-primary{background:var(--blue);border-color:var(--blue);color:var(--sobre-color,#fff);}
  .btn-primary:hover{background:var(--blue-strong);border-color:var(--blue-strong);}
  .btn-ghost{background:transparent;border-color:transparent;color:var(--ink-soft);padding:6px 8px;}
  .btn-ghost:hover{color:var(--brick);border-color:var(--brick);background:var(--brick-soft);}
  .btn-small{padding:6px 10px;font-size:12.5px;}
  .btn{white-space:nowrap;}
  .card-actions{flex-wrap:wrap;}
  .link-back{font-size:13px;font-weight:600;color:var(--blue);background:none;border:none;padding:0;display:inline-flex;align-items:center;gap:4px;}
  .link-back:hover{color:var(--blue-strong);}
  .admin-pill{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.04em;background:var(--blue-soft);color:var(--blue-strong);border-radius:999px;padding:4px 10px;display:inline-flex;align-items:center;gap:6px;}
  .login-wrap{min-height:60vh;display:flex;align-items:center;justify-content:center;padding-block:20px;}
  .login-card{background:var(--surface);border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow);padding:28px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:16px;}
  .login-head{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;}
  .login-head img{height:42px;width:auto;}
  .login-head h1{font-size:22px;margin:0;}
  .login-head p{font-size:13px;color:var(--ink-soft);margin:0;}
  .login-card form{display:flex;flex-direction:column;gap:12px;}
  .login-card .field input{font-size:15px;padding:10px 12px;}
  .login-foot{font-size:11.5px;color:var(--ink-faint);text-align:center;margin:0;}
  .user-pill{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11.5px;letter-spacing:.04em;background:var(--blue-soft);color:var(--blue-strong);border-radius:999px;padding:5px 12px;display:inline-flex;align-items:center;gap:8px;}
  .head-actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end;}
  .rol-pill{font-size:11px;font-weight:700;border-radius:999px;padding:3px 9px;background:var(--surface-2);color:var(--ink-soft);white-space:nowrap;}
  .rol-pill.edita{background:var(--blue-soft);color:var(--blue-strong);}
  .rol-pill.dueno{background:var(--green-soft);color:var(--green);}
  .user-list{display:flex;flex-direction:column;gap:10px;}
  .user-row{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;box-shadow:var(--shadow);}
  .user-row .who{display:flex;flex-direction:column;gap:2px;flex:1 1 180px;min-width:0;}
  .user-row .who b{font-size:14.5px;font-weight:600;}
  .user-row .who span{font-family:'IBM Plex Mono',monospace;font-size:12px;color:var(--ink-faint);}
  .user-row .pills{display:flex;gap:6px;flex-wrap:wrap;}
  .user-row .acts{display:flex;gap:6px;flex-wrap:wrap;margin-left:auto;}
  .toolbar{display:flex;flex-direction:column;gap:10px;}
  .search-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center;}
  .search-box{flex:1 1 320px;display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:12px 14px;}
  .search-box svg{flex:none;color:var(--ink-faint);}
  .search-box input{border:none;background:none;outline:none;color:var(--ink);font-size:15px;width:100%;font-family:'Public Sans',sans-serif;}
  .search-box input::placeholder{color:var(--ink-faint);}
  .hint{font-size:12.5px;color:var(--ink-faint);margin:0;}
  .hint b{color:var(--ink-soft);}
  .chips{display:flex;flex-wrap:wrap;gap:8px;}
  .chip{font-size:12.5px;font-weight:600;border-radius:999px;padding:5px 12px;border:1px solid var(--line);color:var(--ink-soft);background:var(--surface);display:inline-flex;gap:6px;align-items:center;}
  .chip b{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);}
  .chip.warn{background:var(--brick-soft);color:var(--brick);border-color:transparent;}
  button.chip{cursor:pointer;font-family:inherit;transition:background .12s,border-color .12s,color .12s;}
  button.chip:hover{border-color:var(--blue-strong);}
  button.chip.activo{background:var(--blue-soft);color:var(--blue-strong);border-color:transparent;}
  button.chip.activo b{color:var(--blue-strong);}
  button.chip.warn:hover{border-color:var(--brick);}
  button.chip.warn.activo{background:var(--brick);color:var(--sobre-color,#fff);}
  button.chip.warn.activo b{color:var(--sobre-color,#fff);}
  .message{border-radius:10px;padding:10px 14px;font-size:13.5px;font-weight:500;}
  .message.error{background:var(--brick-soft);color:var(--brick);}
  .message.info{background:var(--blue-soft);color:var(--blue-strong);}
  .section-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;}
  .clients-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:14px;}
  .client-card{background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow);text-align:left;cursor:pointer;transition:border-color .15s;}
  .client-card:hover{border-color:var(--blue);}
  .client-card h3{font-family:'Zilla Slab',serif;font-size:17px;margin:0;}
  .client-card .count{font-size:12.5px;color:var(--ink-soft);}
  .client-card .mini-chips{display:flex;gap:6px;flex-wrap:wrap;}
  .mini-chip{font-size:11px;font-weight:700;border-radius:999px;padding:3px 8px;}
  .mini-chip.p{background:var(--blue-soft);color:var(--blue-strong);}
  .mini-chip.f{background:var(--green-soft);color:var(--green);}
  .mini-chip.a{background:var(--amber-soft);color:var(--amber);}
  .attention-badge{align-self:flex-start;font-size:11.5px;font-weight:700;background:var(--brick-soft);color:var(--brick);border-radius:999px;padding:3px 9px;}
  .grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;}
  .detalle-uno{display:block;}
  .lote-lista{display:flex;flex-direction:column;gap:8px;}
  .lote-item{display:flex;flex-direction:column;gap:8px;}
  .lote-head-linea{display:flex;gap:8px;align-items:flex-end;}
  .lote-head-linea .lote-head{flex:1 1 auto;min-width:0;}
  .lote-head-sp{flex:none;width:26px;}
  .lote-head-sp.accion{width:136px;}
  .lote-linea{display:flex;align-items:stretch;gap:8px;}
  .lote-linea .lote-row{flex:1 1 auto;min-width:0;}
  .lote-check{display:flex;align-items:center;padding:0 2px;flex:none;}
  .lote-check input{width:18px;height:18px;cursor:pointer;accent-color:var(--blue);}
  .btn-cerrar{flex:none;align-self:stretch;width:136px;justify-content:center;display:flex;align-items:center;gap:5px;white-space:nowrap;
    font-family:inherit;font-size:12.5px;font-weight:600;color:var(--blue-strong);background:var(--blue-soft);
    border:1px solid transparent;border-radius:10px;padding:0 13px;cursor:pointer;}
  .btn-cerrar:hover{border-color:var(--blue);}
  .btn-cerrar:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  .barra-masiva{display:flex;flex-wrap:wrap;gap:10px;align-items:flex-end;
    background:var(--blue-soft);border:1px solid var(--blue);border-radius:12px;padding:12px 14px;margin-bottom:4px;}
  .barra-masiva .bm-cuenta{font-weight:700;color:var(--blue-strong);font-size:13.5px;align-self:center;}
  .barra-masiva label{display:flex;flex-direction:column;gap:3px;font-size:11px;font-weight:700;
    letter-spacing:.04em;text-transform:uppercase;color:var(--blue-strong);}
  .barra-masiva select,.barra-masiva input[type=date]{font-family:'Public Sans',sans-serif;font-size:13.5px;
    padding:7px 9px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);}
  .barra-masiva .bm-etapa{flex:1 1 240px;min-width:0;}
  .barra-masiva .bm-etapa select{width:100%;}
  @media print{ .lote-check,.btn-cerrar,.barra-masiva{display:none !important;} }
  @media (max-width:760px){
    .lote-linea{flex-wrap:wrap;}
    .btn-cerrar{width:100%;justify-content:center;padding:9px 13px;}
  }
  .lote-head{display:grid;grid-template-columns:minmax(140px,1.4fr) minmax(130px,1.1fr) 78px 82px 82px 100px;gap:14px;padding:0 16px 0 17px;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;}
  .lote-head .num{text-align:right;}
  .lote-row{display:grid;grid-template-columns:minmax(140px,1.4fr) minmax(130px,1.1fr) 78px 82px 82px 100px;gap:12px;align-items:center;width:100%;text-align:left;
    background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:10px;padding:12px 16px;
    font-family:inherit;color:var(--ink);box-shadow:var(--shadow);cursor:pointer;transition:border-color .12s,box-shadow .12s;}
  .lote-row:hover{border-color:var(--blue);box-shadow:0 0 0 2px var(--blue-soft), var(--shadow);}
  .lote-row:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  .lote-row.alerta{border-left-color:var(--brick);}
  .lote-row.final{border-left-color:var(--green);}
  .row-col{display:flex;flex-direction:column;gap:2px;min-width:0;}
  .row-col.num{align-items:flex-end;text-align:right;}
  .row-id{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13.5px;color:var(--ink);overflow-wrap:anywhere;}
  .row-num{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13.5px;color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap;}
  .row-sub{font-size:11px;color:var(--ink-faint);overflow-wrap:anywhere;}
  .row-col .badge{align-self:flex-start;}
  .row-avisos{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;}
  .row-aviso{font-size:11px;font-weight:600;border-radius:999px;padding:3px 9px;}
  .row-aviso.cola{background:var(--amber-soft);color:var(--amber);}
  .row-aviso.alerta{background:var(--brick-soft);color:var(--brick);}
  .row-aviso.nota{background:var(--surface-2);color:var(--ink-soft);font-weight:400;font-style:italic;border-radius:6px;overflow-wrap:anywhere;}
  @media (max-width:760px){
    .lote-head{display:none;}
    .lote-row{grid-template-columns:1fr 1fr;gap:10px;}
    .row-col.num{align-items:flex-start;text-align:left;}
  }
  .card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:18px;display:flex;flex-direction:column;gap:11px;box-shadow:var(--shadow);}
  .card.editando{grid-column:1/-1;}
  .card-top{display:flex;justify-content:space-between;align-items:flex-start;gap:10px;flex-wrap:wrap;}
  .lote-id{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14.5px;color:var(--ink);letter-spacing:.01em;white-space:nowrap;}
  .badge{font-size:12px;font-weight:700;border-radius:999px;padding:4px 11px;max-width:100%;overflow-wrap:break-word;}
  .badge .badge-icono{font-weight:700;margin-right:5px;}
  .badge-flujo{background:var(--blue-soft);color:var(--blue-strong);}
  .badge-final{background:var(--green-soft);color:var(--green);}
  .badge-pausa{background:var(--amber-soft);color:var(--amber);}
  .badge-revision{background:var(--brick-soft);color:var(--brick);}
  .badge-otra{background:var(--surface-2);color:var(--ink-soft);border:1px dashed var(--line);}
  .note-strip.otra{background:var(--surface-2);color:var(--ink-soft);}
  input.etapa-otra{font-family:'Public Sans',sans-serif;font-size:13.5px;padding:7px 10px;border:1px dashed var(--blue);border-radius:7px;background:var(--surface);color:var(--ink);margin-top:6px;width:100%;}
  .hist-edit-row input.etapa-otra{flex:1 1 100%;margin-top:0;}
  .cliente{font-family:'Zilla Slab',serif;font-weight:600;font-size:18px;margin:0;text-wrap:balance;}
  .sub-pill{align-self:flex-start;font-size:11.5px;font-weight:600;background:var(--surface-2);color:var(--ink-soft);border:1px solid var(--line);border-radius:999px;padding:3px 10px;}
  .meta{display:flex;gap:16px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-soft);}
  .meta span{display:flex;flex-direction:column;gap:2px;}
  .meta b{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;color:var(--ink);font-variant-numeric:tabular-nums;}
  .progress-track{height:6px;border-radius:999px;background:var(--surface-2);overflow:hidden;}
  .progress-fill{height:100%;border-radius:999px;background:var(--blue);}
  .progress-fill.final{background:var(--green);}
  .progress-label{font-size:11.5px;color:var(--ink-faint);display:flex;justify-content:space-between;}
  .note-strip{font-size:12.5px;border-radius:8px;padding:8px 10px;}
  .note-strip.pausa{background:var(--amber-soft);color:var(--amber);}
  .note-strip.revision{background:var(--brick-soft);color:var(--brick);}
  .note-strip.ok{background:var(--green-soft);color:var(--green);}
  .mes-titulo{font-family:'Zilla Slab',Georgia,serif;font-size:17px;margin:18px 0 8px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
  .mes-titulo span{font-family:'Public Sans',sans-serif;font-size:12px;font-weight:500;color:var(--ink-faint);}
  table.resumen tr.fila-vencida td{background:var(--brick-soft);}
  table.resumen tr.fila-hecha td{color:var(--ink-faint);}
  table.resumen .alerta-txt{color:var(--brick);font-weight:700;}
  .solo-impresion{display:none;}
  form.carga-rapida{margin-top:18px;}
  .cr-lista{display:flex;flex-direction:column;gap:6px;max-height:560px;overflow-y:auto;
    background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;}
  .cr-fila{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding-bottom:6px;border-bottom:1px dotted var(--line);}
  .cr-fila:last-child{border-bottom:none;padding-bottom:0;}
  .cr-lote{display:flex;flex-direction:column;gap:1px;flex:1 1 260px;min-width:0;}
  .cr-lote b{font-family:'IBM Plex Mono',monospace;font-size:13px;color:var(--ink);}
  .cr-lote span{font-size:11.5px;color:var(--ink-faint);overflow-wrap:anywhere;}
  .cr-listo{color:var(--green);font-weight:700;}
  .cr-campo{display:flex;flex-direction:column;gap:2px;font-size:10.5px;font-weight:700;letter-spacing:.04em;
    text-transform:uppercase;color:var(--ink-faint);flex:0 0 auto;}
  .cr-campo input{font-family:'Public Sans',sans-serif;font-size:13px;padding:6px 8px;border:1px solid var(--line);
    border-radius:6px;background:var(--surface);color:var(--ink);width:160px;}
  .cr-sug{font-size:11px;color:var(--ink-faint);flex:0 0 auto;padding-bottom:7px;white-space:nowrap;}
  .cr-acciones{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .cr-acciones .hint{flex:1 1 280px;}
  .mes-titulo.vencido{color:var(--brick);}
  .mes-titulo.vencido span{color:var(--brick);}
  .queue-alert{font-size:12.5px;border-radius:8px;padding:8px 10px;background:var(--amber-soft);color:var(--amber);font-weight:600;}
  .attention-alert{font-size:12.5px;border-radius:8px;padding:8px 10px;background:var(--brick-soft);color:var(--brick);font-weight:600;}
  .stage-meta{display:flex;flex-direction:column;gap:2px;border-top:1px solid var(--line);padding-top:9px;font-size:12px;color:var(--ink-soft);}
  .stage-meta .review{color:var(--ink-faint);}
  .sla{border-top:1px solid var(--line);padding-top:11px;display:flex;flex-direction:column;gap:5px;}
  .sla-cab{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;}
  .sla-tit{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;}
  .sla-chip{font-size:11.5px;font-weight:700;border-radius:999px;padding:3px 10px;white-space:nowrap;}
  .sla-chip.ok{background:var(--green-soft);color:var(--green);}
  .sla-chip.tarde{background:var(--brick-soft);color:var(--brick);}
  .sla-txt{margin:0;font-size:12.5px;line-height:1.55;color:var(--ink-soft);max-width:74ch;}
  .sla-txt b{color:var(--ink);font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .sla.tarde .sla-txt b{color:var(--ink);}
  /* ---- Tiempos por área ---- */
  .areas-linea{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:4px 0 14px;}
  .areas-linea .hint{margin-left:4px;}
  .area-mini{font-family:inherit;font-size:13px;font-weight:600;color:var(--ink-soft);
    background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--ink-faint);
    border-radius:9px;padding:7px 13px;cursor:pointer;display:inline-flex;gap:7px;align-items:baseline;}
  .area-mini b{font-weight:700;}
  .area-mini:hover{border-color:var(--blue);}
  .area-mini:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  .area-mini.ok{border-left-color:var(--green);} .area-mini.ok b{color:var(--green);}
  .area-mini.tarde{border-left-color:var(--brick);} .area-mini.tarde b{color:var(--brick);}
  .area-mini.libre{border-left-color:var(--line);} .area-mini.libre b{color:var(--ink-faint);}

  .area-tarjeta{background:var(--surface);border:1px solid var(--line);border-left:5px solid var(--ink-faint);
    border-radius:14px;padding:20px 22px;margin-top:16px;box-shadow:var(--shadow);
    display:flex;flex-direction:column;gap:14px;break-inside:avoid;}
  .area-tarjeta.ok{border-left-color:var(--green);}
  .area-tarjeta.tarde{border-left-color:var(--brick);}
  .area-tarjeta.libre{border-left-color:var(--line);}
  .at-cab{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;}
  .at-cab h3{font-family:'Zilla Slab',Georgia,serif;font-size:22px;margin:0;color:var(--ink);}
  .at-veredicto{font-size:14px;font-weight:700;border-radius:999px;padding:6px 16px;white-space:nowrap;}
  .at-veredicto.ok{background:var(--green-soft);color:var(--green);}
  .at-veredicto.tarde{background:var(--brick-soft);color:var(--brick);}
  .at-veredicto.libre{background:var(--surface-2);color:var(--ink-soft);}
  .at-nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 22px;}
  .at-num{display:flex;flex-direction:column;gap:1px;background:var(--surface-2);border-radius:11px;padding:13px 16px;}
  .at-num b{font-family:'IBM Plex Mono',monospace;font-size:30px;font-weight:600;color:var(--ink);
    font-variant-numeric:tabular-nums;line-height:1.1;}
  .at-num span{font-size:12px;color:var(--ink-soft);}
  .at-frase{margin:0;font-size:14px;line-height:1.55;color:var(--ink-soft);max-width:74ch;}
  .at-frase b{color:var(--ink);}
  .at-vacia{margin:0;font-size:13px;font-style:italic;color:var(--ink-faint);}
  .at-tabla td,.at-tabla th{padding:8px 12px;}
  .at-tabla td.cli{font-family:'IBM Plex Mono',monospace;font-size:13px;white-space:nowrap;}
  .at-tabla td.num,.at-tabla th.num{white-space:nowrap;}
  .at-tabla td.num b{font-family:'IBM Plex Mono',monospace;font-size:15px;}
  .at-tabla .sla-chip{white-space:nowrap;}
  details.historico{border-top:1px solid var(--line);padding-top:12px;display:block;}
  details.historico > summary{cursor:pointer;font-size:14px;font-weight:700;color:var(--blue-strong);
    list-style:none;width:fit-content;display:flex;gap:9px;align-items:baseline;flex-wrap:wrap;}
  details.historico > summary::-webkit-details-marker{display:none;}
  details.historico > summary::before{content:"\25B8";color:var(--ink-faint);}
  details.historico[open] > summary::before{content:"\25BE";}
  details.historico > summary:hover{color:var(--blue);}
  details.historico .hist-n{font-size:12px;font-weight:500;color:var(--ink-faint);}
  details.historico > *:not(summary){margin-top:12px;}
  @media print{ details.historico{display:none;} }
  @media print{
    .area-tarjeta{box-shadow:none;border:1px solid #999;border-left:5px solid #333;page-break-inside:avoid;}
    .at-num{background:#f2f2f2;}
    .at-veredicto{border:1px solid #666;}
  }
  .areas{display:flex;flex-direction:column;gap:8px;margin-top:20px;}
  .area-fila{display:flex;align-items:center;gap:10px 18px;flex-wrap:wrap;background:var(--surface);
    border:1px solid var(--line);border-left:3px solid var(--blue);border-radius:10px;padding:11px 15px;box-shadow:var(--shadow);}
  .area-fila.tarde{border-left-color:var(--brick);}
  .area-nom{font-weight:700;font-size:14px;color:var(--ink);flex:1 1 200px;}
  .area-dato{font-size:12px;color:var(--ink-soft);display:flex;flex-direction:column;gap:1px;}
  .area-dato b{font-family:'IBM Plex Mono',monospace;font-size:14px;color:var(--ink);font-variant-numeric:tabular-nums;}
  .area-dato span{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);font-weight:700;}
  .area-fila .sla-chip{margin-left:auto;}
  .sla-config{margin-top:18px;font-size:12.5px;color:var(--ink-faint);}
  .sla-config > summary{cursor:pointer;font-weight:600;color:var(--ink-soft);list-style:none;width:fit-content;}
  .sla-config > summary::-webkit-details-marker{display:none;}
  .sla-config > summary::before{content:"\25B8  ";}
  .sla-config[open] > summary::before{content:"\25BE  ";}
  .sla-config > summary:hover{color:var(--blue-strong);}
  .sla-config table{width:100%;border-collapse:collapse;font-size:13px;}
  .sla-config th{font-size:10.5px;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-faint);
    font-weight:700;text-align:left;padding:5px 8px;}
  .sla-config td{padding:5px 8px;border-top:1px solid var(--line);}
  .sla-config input[type=number]{width:110px;font-family:'Public Sans',sans-serif;font-size:13px;padding:6px 8px;
    border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);}
  .sla-config .form-actions{margin-top:10px;}
  .resumen-tiempos{display:flex;flex-direction:column;gap:10px;border-top:1px solid var(--line);padding-top:11px;}
  .resumen-tiempos .rt{display:flex;flex-direction:column;gap:1px;}
  .resumen-tiempos{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 16px;}
  .rt{background:var(--surface-2);border-radius:10px;padding:10px 12px;}
  .rt-lbl{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;}
  .rt-num{font-family:'IBM Plex Mono',monospace;font-size:21px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.2;}
  .rt-sub{font-size:11px;color:var(--ink-faint);}
  .rt.cliente{background:var(--amber-soft);}
  .rt.cliente .rt-lbl,.rt.cliente .rt-num,.rt.cliente .rt-sub{color:var(--amber);}
  .rt-detalle{grid-column:1/-1;font-size:12.5px;color:var(--ink-soft);}
  .rt-titulo{margin:0 0 4px;line-height:1.5;}
  .rt-titulo b{color:var(--ink);}
  .rt-detalle ul{margin:0;padding-left:16px;display:flex;flex-direction:column;gap:2px;}
  .rt-detalle li{line-height:1.45;}
  .rt-detalle li b{color:var(--amber);}
  .row-aviso.devuelto{background:var(--amber-soft);color:var(--amber);}
  .historial{border-top:1px solid var(--line);padding-top:9px;font-size:12px;}
  .historial summary{cursor:pointer;font-weight:700;color:var(--ink);list-style:none;font-size:12.5px;}
  .historial summary::-webkit-details-marker{display:none;}
  .historial summary::before{content:"\25B8  ";}
  .historial[open] summary::before{content:"\25BE  ";}
  .paso-nota-habiles{font-size:12px;color:var(--ink-faint);margin:8px 0 2px;}
  .paso-nota-habiles b{color:var(--ink-soft);font-weight:600;}
  .pasos{display:flex;flex-direction:column;margin-top:6px;}
  .paso{position:relative;padding:12px 0 14px 20px;border-left:2px solid var(--line);}
  .paso:last-child{border-left-color:transparent;}
  .paso::before{content:"";position:absolute;left:-6px;top:17px;width:10px;height:10px;border-radius:50%;background:var(--surface);box-shadow:0 0 0 2px var(--line);}
  .paso.demora{border-left-color:var(--amber);}
  .paso.demora::before{background:var(--amber);box-shadow:0 0 0 2px var(--amber);}
  .paso.actual::before{background:var(--blue);box-shadow:0 0 0 2px var(--blue),0 0 0 5px var(--blue-soft);}
  .paso-cab{display:flex;align-items:baseline;justify-content:space-between;gap:10px;flex-wrap:wrap;}
  .paso-editar{font-family:inherit;font-size:11.5px;font-weight:600;color:var(--blue-strong);
    background:var(--blue-soft);border:1px solid transparent;border-radius:999px;padding:3px 11px;
    cursor:pointer;white-space:nowrap;}
  .paso-editar:hover{border-color:var(--blue);}
  .paso-editar:focus-visible{outline:2px solid var(--blue);outline-offset:2px;}
  .paso-form{display:flex;flex-direction:column;gap:11px;background:var(--surface-2);
    border:1px solid var(--blue);box-shadow:0 0 0 3px var(--blue-soft);border-radius:10px;
    padding:13px 14px;margin-top:9px;}
  .paso-form .form-actions{justify-content:flex-end;}
  .paso-form .form-actions .btn-ghost{margin-right:auto;}

  .paso-cab h4{font-family:'Public Sans',sans-serif;font-size:14.5px;font-weight:700;margin:0;color:var(--ink);overflow-wrap:anywhere;}
  .paso-cab h4 em{font-style:normal;font-size:11.5px;font-weight:700;color:var(--blue-strong);}
  .paso-total{font-family:'IBM Plex Mono',monospace;font-size:12px;font-variant-numeric:tabular-nums;color:var(--ink-faint);white-space:nowrap;}
  .paso-datos{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:8px 18px;margin-top:8px;
    background:var(--surface-2);border-radius:10px;padding:11px 14px;}
  .paso-dl{margin:0;display:flex;flex-direction:column;gap:4px;min-width:0;}
  .paso-dl > div{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:2px 0;}
  .paso-dl dt{font-size:12px;color:var(--ink-soft);min-width:0;}
  .paso-dl dd{margin:0;font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-variant-numeric:tabular-nums;color:var(--ink);white-space:nowrap;text-align:right;}
  .paso-dl dd .sin{font-family:'Public Sans',sans-serif;font-style:italic;color:var(--ink-faint);font-size:12px;}
  .paso-dl dd b{font-weight:700;}
  .paso-dl > div.alto{background:var(--amber-soft);border-radius:6px;padding:3px 8px;margin:0 -8px;}
  .paso-dl > div.alto dt,.paso-dl > div.alto dd{color:var(--amber);font-weight:700;}
  .paso-aviso{font-size:12.5px;line-height:1.55;margin:9px 0 0;background:var(--amber-soft);color:var(--amber);border-radius:8px;padding:9px 12px;max-width:74ch;}
  .paso-aviso b{color:inherit;font-weight:700;}
  .paso-nota{font-size:12.5px;line-height:1.5;margin:9px 0 0;color:var(--ink-soft);border-left:3px solid var(--blue);background:var(--blue-soft);border-radius:0 8px 8px 0;padding:8px 11px;max-width:74ch;}
  .paso-nota b{color:var(--blue-strong);font-weight:700;}
  .paso-falta{font-size:12px;font-style:italic;color:var(--ink-faint);margin:8px 0 0;}
  .paso-cierre{font-size:12.5px;line-height:1.5;margin:9px 0 0;color:var(--green);background:var(--green-soft);border-radius:8px;padding:9px 12px;max-width:74ch;}
  .paso-cierre b{color:inherit;font-weight:700;}
  .paso.entregado::before{background:var(--green);box-shadow:0 0 0 2px var(--green);}
  .paso-par{font-size:11px;font-weight:700;border-radius:999px;padding:2px 8px;background:var(--blue-soft);color:var(--blue-strong);white-space:nowrap;vertical-align:1px;}
  .paso.paralela{border-left-style:dashed;border-left-color:var(--blue);}
  .paso.paralela::before{background:var(--blue-soft);box-shadow:0 0 0 2px var(--blue);}
  .paso-paralelo{font-size:12.5px;line-height:1.5;margin:9px 0 0;color:var(--blue-strong);background:var(--blue-soft);border-radius:8px;padding:9px 12px;max-width:74ch;}
  .paso-paralelo b{font-weight:700;}
  .hist-paralelo{display:block;margin-top:4px;font-size:11.5px;font-weight:600;color:var(--amber);background:var(--amber-soft);border-radius:6px;padding:4px 8px;overflow-wrap:break-word;}
  .hist-nota{display:block;margin-top:4px;font-size:11.5px;color:var(--ink-soft);border-left:2px solid var(--blue);padding-left:8px;overflow-wrap:break-word;}
  .seg-ultima{font-size:12px;color:var(--ink-soft);font-style:italic;overflow-wrap:break-word;}
  .seg-form{margin-top:2px;}
  .hist-lbl{display:flex;flex-direction:column;gap:2px;font-size:10.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-faint);flex:1 1 130px;min-width:120px;}
  .hist-sub{font-family:'IBM Plex Mono',monospace;font-size:11px;font-variant-numeric:tabular-nums;color:var(--ink-faint);}
  .notas{margin:0;font-size:13px;line-height:1.55;color:var(--ink-soft);white-space:pre-wrap;overflow-wrap:break-word;
    border-left:3px solid var(--blue);background:var(--blue-soft);border-radius:0 8px 8px 0;padding:9px 12px;}
  .bloque-admin{border-top:1px solid var(--line);padding-top:11px;display:flex;flex-direction:column;gap:7px;}
  .bloque-tit{margin:0;font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;}
  .bloque-tit span{font-family:'IBM Plex Mono',monospace;font-size:11px;letter-spacing:0;text-transform:none;color:var(--ink-soft);font-weight:600;}
  .checklist{display:flex;flex-wrap:wrap;gap:6px;font-size:12px;}
  .chk{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:999px;padding:4px 11px;color:var(--ink-faint);background:var(--surface);max-width:100%;}
  .chk .chk-icono{font-weight:700;line-height:1;}
  .chk .chk-fecha{font-family:'IBM Plex Mono',monospace;font-size:11px;opacity:.85;}
  .chk.done{color:var(--green);border-color:transparent;background:var(--green-soft);font-weight:600;}
  .chk.fact{background:var(--amber-soft);color:var(--amber);border-color:transparent;font-weight:600;}
  .chk.fact.vencida{background:var(--brick-soft);color:var(--brick);}
  .chk.fact.done{background:var(--green-soft);color:var(--green);}
  .card-actions{display:flex;gap:8px;border-top:1px solid var(--line);padding-top:10px;}
  .card-actions.arriba{border-top:none;padding-top:0;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:2px;}
  .historial summary .orden{font-weight:400;color:var(--ink-faint);font-size:11.5px;}
  .empty{text-align:center;color:var(--ink-faint);padding:40px 20px;font-size:14px;border:1px dashed var(--line);border-radius:14px;}
  form.inline{display:flex;flex-direction:column;gap:12px;background:var(--surface-2);border:1px solid var(--line);border-radius:12px;padding:16px;}
  form.avanzar-form{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft);}
  form.inline h3{font-family:'Zilla Slab',serif;font-size:16px;margin:0;}
  .field{display:flex;flex-direction:column;gap:4px;}
  .field label{font-size:12px;font-weight:600;color:var(--ink-soft);}
  .field input,.field select,.field textarea{font-family:'Public Sans',sans-serif;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--ink);}
  .field textarea{resize:vertical;min-height:56px;font-family:'Public Sans',sans-serif;}
  .field-row{display:flex;gap:10px;flex-wrap:wrap;}
  .field-row .field{flex:1 1 140px;}
  .checklist-edit{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;}
  .checklist-edit .row{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .checklist-edit .row label.chk-label{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:500;flex:1 1 200px;}
  .checklist-edit .row input[type=date]{flex:1 1 140px;padding:6px 8px;font-size:13px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);}
  .form-actions{display:flex;gap:8px;justify-content:flex-end;}
  footer.foot{font-size:12px;color:var(--ink-faint);text-align:center;padding-top:10px;}
  .version-app{font-family:'IBM Plex Mono',ui-monospace,monospace;font-size:11px;color:var(--ink-faint);margin-top:4px;overflow-wrap:anywhere;}
  .version-aviso{margin-top:8px;text-align:left;}
  .shell{display:flex;gap:26px;align-items:flex-start;}
  .sidebar{flex:0 0 218px;width:218px;position:sticky;top:24px;display:flex;flex-direction:column;gap:18px;}
  .sidebar .logo-badge{height:34px;}
  .nav{display:flex;flex-direction:column;gap:4px;}
  .nav-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;border:1px solid transparent;background:none;color:var(--ink-soft);font-size:13.5px;font-weight:600;padding:9px 11px;border-radius:9px;font-family:inherit;}
  .nav-item svg{flex:none;color:var(--ink-faint);}
  .nav-item:hover{background:var(--surface);color:var(--ink);}
  .nav-item.activo{background:var(--surface);border-color:var(--line);color:var(--blue-strong);box-shadow:var(--shadow);}
  .nav-item.activo svg{color:var(--blue);}
  .nav-corte{display:block;height:1px;background:var(--line);margin:7px 11px;}
  .bienvenida{display:flex;align-items:center;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;
    background:var(--surface);border:1px solid var(--line);border-radius:14px;
    padding:13px 20px;margin-bottom:20px;box-shadow:var(--shadow);}
  .bv-quien{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;min-width:0;}
  .bv-saludo{font-size:14px;color:var(--ink-soft);}
  .bv-nombre{font-family:'Zilla Slab',Georgia,serif;font-size:22px;font-weight:700;color:var(--ink);overflow-wrap:anywhere;}
  .bv-datos{display:flex;align-items:center;gap:8px;flex-wrap:wrap;}
  .rol-pill.dueno{background:var(--green-soft);color:var(--green);}
  @media print{ .bienvenida .btn{display:none;} .bienvenida{box-shadow:none;} }
  @media (max-width:560px){ .bv-nombre{font-size:19px;} }
  .side-user{display:flex;flex-direction:column;gap:8px;align-items:flex-start;border-top:1px solid var(--line);padding-top:14px;}
  .side-user .nav-item{margin-bottom:2px;}
  .side-rol{font-size:11.5px;color:var(--ink-faint);}
  .content{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;gap:20px;}
  @media (max-width:820px){
    .shell{flex-direction:column;gap:16px;}
    .sidebar{position:static;width:100%;flex:none;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;}
    .nav{flex-direction:row;flex-wrap:wrap;gap:6px;}
    .side-user{border-top:none;padding-top:0;flex-direction:row;flex-wrap:wrap;align-items:center;}
  }
  .hist-edit{display:flex;flex-direction:column;gap:8px;background:var(--surface);border:1px solid var(--line);border-radius:8px;padding:10px;}
  .hist-edit:empty{display:none;}
  .hist-edit-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
  .hist-botones{display:flex;gap:8px;flex-wrap:wrap;}
  .hist-edit-row input.hist-fecha:not([value]),.hist-edit-row input.hist-fecha[value='']{border-color:var(--amber);}
  .hist-edit-row{border-bottom:1px solid var(--line);padding-bottom:8px;}
  .hist-edit-row:last-child{border-bottom:none;padding-bottom:0;}
  .hist-edit-row select,.hist-edit-row input[type=date]{font-family:'Public Sans',sans-serif;font-size:13px;padding:6px 8px;border:1px solid var(--line);border-radius:6px;background:var(--surface);color:var(--ink);}
  .hist-edit-row select.hist-etapa{flex:1 1 100%;min-width:0;}
  .hist-edit-row input.hist-fecha,.hist-edit-row input.hist-inicio,.hist-edit-row input.hist-fin{width:100%;}
  .hist-edit-row input.hist-inicio,.hist-edit-row input.hist-fin{border-style:dashed;}
  .graf{margin:0 0 18px;background:var(--surface);border:1px solid var(--line);border-radius:14px;
    padding:16px 18px 10px;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:10px;break-inside:avoid;}
  .g-tit{font-family:'Zilla Slab',Georgia,serif;font-size:17px;font-weight:600;color:var(--ink);margin:0;}
  .g-tit span{font-family:'Public Sans',sans-serif;font-size:12.5px;font-weight:500;color:var(--ink-faint);}
  .g-leyenda{display:flex;flex-wrap:wrap;gap:6px 16px;}
  .g-key{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;color:var(--ink-soft);}
  .g-key i{width:12px;height:12px;border-radius:3px;flex:none;}
  .g-lienzo{position:relative;}
  .g-lienzo svg{display:block;width:100%;height:auto;overflow:visible;}
  .g-grid{stroke:var(--graf-grid);stroke-width:1;}
  .g-eje{stroke:var(--graf-eje);stroke-width:1;}
  .g-tick,.g-mes{fill:var(--ink-faint);font-family:'Public Sans',sans-serif;font-size:11px;font-variant-numeric:tabular-nums;}
  .g-valor{fill:var(--ink);font-family:'IBM Plex Mono',monospace;font-size:12px;font-weight:600;}
  .g-barra{cursor:default;transition:opacity .12s;}
  .g-barra:hover,.g-barra:focus{opacity:.78;}
  .g-barra:focus{outline:2px solid var(--blue);outline-offset:1px;}
  .g-tip{position:absolute;pointer-events:none;z-index:5;background:var(--surface);color:var(--ink);
    border:1px solid var(--line);border-radius:9px;box-shadow:var(--shadow);padding:8px 11px;
    font-size:12.5px;min-width:150px;transform:translate(-50%,-100%);}
  .g-tip .t-val{font-family:'IBM Plex Mono',monospace;font-size:17px;font-weight:600;
    color:var(--ink);font-variant-numeric:tabular-nums;display:block;}
  .g-tip .t-serie{display:flex;align-items:center;gap:7px;color:var(--ink-soft);margin-top:1px;}
  .g-tip .t-serie i{width:14px;height:2px;border-radius:2px;flex:none;}
  .g-tip .t-mes{color:var(--ink-faint);font-size:11.5px;}
  .g-tip .t-pie{color:var(--ink-faint);font-size:11.5px;border-top:1px solid var(--line);margin-top:6px;padding-top:5px;}
  @media print{ .g-tip{display:none;} .graf{box-shadow:none;} }
  .anio-row{display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
  .anio-row label{font-size:12.5px;font-weight:600;color:var(--ink-soft);}
  .anio-row select{font-family:'Public Sans',sans-serif;font-size:14px;padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);}
  .resumen-frase{font-size:15.5px;color:var(--ink-soft);margin:0;max-width:60ch;}
  .resumen-frase b{color:var(--ink);font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .tabla-wrap{overflow-x:auto;background:var(--surface);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shadow);}
  table.resumen{width:100%;color:var(--ink);border-collapse:collapse;font-size:13.5px;min-width:460px;}
  table.resumen th,table.resumen td{padding:11px 14px;text-align:left;border-bottom:1px solid var(--line);}
  table.resumen th{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;background:var(--surface-2);}
  table.resumen td.cli{font-weight:600;color:var(--ink);}
  table.resumen .num{text-align:right;font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  table.resumen tbody tr:last-child td{border-bottom:none;}
  table.resumen .sub-num{font-size:10.5px;font-weight:400;color:var(--ink-faint);}
  table.resumen tbody tr.activo td{background:var(--blue-soft);color:var(--blue-strong);}
  table.resumen tfoot td{font-weight:700;background:var(--surface-2);border-bottom:none;border-top:1px solid var(--line);color:var(--ink);}
  /* ---- Panel de activos ---- */
  .pa-modo{display:inline-flex;gap:6px;margin-left:auto;}
  .pa-tabla td,.pa-tabla th{padding:7px 12px;vertical-align:top;}
  .pa-tabla td.cli{min-width:190px;}
  .pa-tabla .pa-id{white-space:nowrap;}
  .pa-tabla .sub-num,.pa-tabla td.num{white-space:nowrap;}
  .pa-tabla .badge{white-space:nowrap;}
  .pa-tabla .pa-id{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:13px;color:var(--ink);}
  .pa-tabla .pa-sub{font-size:11px;color:var(--ink-faint);margin-top:1px;}
  .pa-tabla .pa-previas{font-size:11px;color:var(--ink-faint);margin-top:3px;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px;}
  .pa-tabla .pa-avisos{gap:4px;}
  .pa-tabla .pa-aviso{font-size:11px;padding:2px 8px;white-space:nowrap;}
  .pa-tabla .pa-avisos{flex-direction:column;align-items:flex-start;}
  .pa-tabla .badge{font-size:11.5px;padding:3px 9px;}
  .pa-tabla td.num b{font-family:'IBM Plex Mono',monospace;font-size:14px;}
  tr.pa-fila-grupo td{background:var(--surface-2);font-family:'Zilla Slab',Georgia,serif;font-size:15px;
    font-weight:600;color:var(--ink);padding-top:12px;}
  tr.pa-fila-grupo td span{font-family:'Public Sans',sans-serif;font-size:11.5px;font-weight:500;color:var(--ink-faint);}
  .pa-grupo{display:flex;flex-direction:column;gap:10px;margin-top:22px;}
  .pa-cliente{font-family:'Zilla Slab',Georgia,serif;font-size:18px;margin:0;display:flex;
    align-items:baseline;gap:10px;flex-wrap:wrap;border-bottom:1px solid var(--line);padding-bottom:6px;}
  .pa-cliente span{font-family:'Public Sans',sans-serif;font-size:12.5px;font-weight:500;color:var(--ink-faint);}
  .pa-lote{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--blue);
    border-radius:12px;padding:13px 16px;display:flex;flex-direction:column;gap:9px;box-shadow:var(--shadow);}
  .pa-lote.alerta{border-left-color:var(--brick);}
  .pa-cab{display:flex;align-items:baseline;gap:8px 16px;flex-wrap:wrap;}
  .pa-id{font-family:'IBM Plex Mono',monospace;font-weight:600;font-size:14px;color:var(--ink);}
  .pa-sub{font-size:11.5px;color:var(--ink-faint);}
  .pa-dato{font-size:12px;color:var(--ink-soft);}
  .pa-dato b{font-family:'IBM Plex Mono',monospace;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;}
  .pa-ahora{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
  .pa-desde{font-size:12.5px;color:var(--ink-soft);}
  .pa-desde b{color:var(--ink);font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .ruta{display:flex;align-items:stretch;gap:5px;flex-wrap:wrap;}
  .ruta-vacia{font-size:12px;font-style:italic;color:var(--ink-faint);}
  .ruta-paso{display:flex;flex-direction:column;gap:1px;background:var(--surface-2);border-radius:8px;
    padding:5px 10px;min-width:0;border:1px solid transparent;}
  .ruta-paso .rp-fecha{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);
    font-variant-numeric:tabular-nums;white-space:nowrap;}
  .ruta-paso .rp-etapa{font-size:12px;font-weight:600;color:var(--ink-soft);}
  .ruta-paso .rp-dias{font-family:'IBM Plex Mono',monospace;font-size:10.5px;color:var(--ink-faint);
    font-variant-numeric:tabular-nums;}
  .ruta-paso.lenta{background:var(--amber-soft);}
  .ruta-paso.lenta .rp-fecha,.ruta-paso.lenta .rp-etapa,.ruta-paso.lenta .rp-dias{color:var(--amber);}
  .ruta-paso.actual{background:var(--blue-soft);border-color:var(--blue);}
  .ruta-paso.actual .rp-fecha,.ruta-paso.actual .rp-dias{color:var(--blue-strong);}
  .ruta-paso.actual .rp-etapa{color:var(--blue-strong);font-weight:700;}
  .ruta-flecha{align-self:center;color:var(--ink-faint);font-size:15px;}
  .pa-avisos{display:flex;flex-wrap:wrap;gap:6px;}
  .pa-aviso{font-size:11.5px;font-weight:600;border-radius:999px;padding:3px 10px;}
  .pa-aviso.alerta{background:var(--brick-soft);color:var(--brick);}
  .pa-aviso.espera{background:var(--amber-soft);color:var(--amber);}
  .pa-aviso.ok{background:var(--green-soft);color:var(--green);}
  .pa-aviso.factura{background:var(--surface-2);color:var(--ink-soft);}
  .pa-nota{margin:0;font-size:12.5px;font-style:italic;color:var(--ink-soft);
    border-left:2px solid var(--line);padding-left:9px;overflow-wrap:break-word;}
  .tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(158px,1fr));gap:12px;}
  .tile{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:3px;box-shadow:var(--shadow);}
  .tile-label{font-size:10.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-faint);font-weight:700;}
  .tile-num{font-family:'IBM Plex Mono',monospace;font-size:clamp(19px,2vw,24px);overflow-wrap:anywhere;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums;line-height:1.15;}
  .tile-sub{font-size:11.5px;color:var(--ink-faint);}
  .anio-grupo{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-top:6px;}
  .anio-grupo h3{font-family:'Zilla Slab',Georgia,serif;font-size:18px;margin:0;color:var(--ink);}
  .anio-grupo .meta-anio{font-size:12.5px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;}
  .client-card .count b{font-family:'IBM Plex Mono',monospace;font-variant-numeric:tabular-nums;color:var(--ink);}
  .link-lote{background:none;border:none;padding:0;font-family:'IBM Plex Mono',monospace;font-size:13px;font-weight:600;color:var(--blue);}
  .link-cliente{background:none;border:none;padding:0;font-family:'Public Sans',sans-serif;font-size:13.5px;font-weight:600;color:var(--blue);text-align:left;}
  .link-cliente:hover{color:var(--blue-strong);text-decoration:underline;}
  .link-lote:hover{color:var(--blue-strong);text-decoration:underline;}
  .card.resaltado{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-soft), var(--shadow);}
  @media (prefers-reduced-motion:reduce){ .btn{transition:none;} }

  /* ---- Informe para imprimir / guardar como PDF ---- */
  .informe-controles{display:flex;flex-direction:column;gap:8px;}
  .informe-controles .anio-row{align-items:center;}
  .informe-controles .chk-label{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--ink-soft);font-weight:500;}
  .informe{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow);}
  .inf-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;
    border-bottom:2px solid var(--ink);padding-bottom:12px;margin-bottom:16px;}
  .inf-top h1{font-family:'Zilla Slab',Georgia,serif;font-size:23px;margin:0;}
  .inf-top p{margin:3px 0 0;font-size:13px;color:var(--ink-soft);}
  .inf-sello{display:flex;flex-direction:column;align-items:flex-end;gap:1px;font-size:11.5px;color:var(--ink-soft);text-align:right;}
  .inf-sello span:first-child{font-weight:700;color:var(--ink);letter-spacing:.06em;text-transform:uppercase;}
  .inf-grupo{margin-bottom:16px;break-inside:auto;}
  .inf-grupo h3{font-family:'Zilla Slab',Georgia,serif;font-size:15px;margin:0 0 7px;padding-bottom:4px;
    border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;}
  .inf-grupo h3 span{font-family:'Public Sans',sans-serif;font-size:11.5px;font-weight:500;color:var(--ink-faint);}
  .inf-lote{padding:7px 0;border-bottom:1px dotted var(--line);break-inside:avoid;}
  .inf-lote:last-child{border-bottom:none;}
  .inf-cab{display:flex;gap:10px;align-items:baseline;flex-wrap:wrap;}
  .inf-id{font-family:'IBM Plex Mono',monospace;font-size:12.5px;font-weight:600;color:var(--ink);}
  .inf-etapa{font-size:12.5px;font-weight:700;color:var(--blue-strong);}
  .inf-nums{font-size:11.5px;color:var(--ink-soft);margin-left:auto;font-variant-numeric:tabular-nums;white-space:nowrap;}
  .inf-sub{font-size:11px;color:var(--ink-faint);}
  .inf-ruta{font-size:11px;color:var(--ink-soft);line-height:1.6;margin-top:3px;}
  .inf-ruta b{color:var(--ink);}
  .inf-ruta .flecha{color:var(--ink-faint);}
  .inf-aviso{font-size:11px;color:var(--amber);font-weight:600;margin-top:3px;}
  .inf-nota{font-size:11px;color:var(--ink-faint);font-style:italic;margin-top:2px;}
  .inf-pie{font-size:10.5px;color:var(--ink-faint);border-top:1px solid var(--line);padding-top:8px;margin:14px 0 0;}

  @media print{
    @page{size:A4 portrait;margin:14mm 12mm;}
    body{background:#fff;color:#000;padding:0;font-size:10pt;}
    .sidebar,.no-print,footer.foot,.message{display:none !important;}
    .shell{display:block;}
    .content{gap:0;}
    .informe{border:none;box-shadow:none;border-radius:0;padding:0;background:#fff;}
    .inf-top{border-bottom:2px solid #000;}
    .inf-top h1,.inf-id,.inf-ruta b{color:#000;}
    .inf-top p,.inf-sello,.inf-nums,.inf-sub,.inf-ruta,.inf-nota,.inf-pie,.inf-grupo h3 span{color:#444;}
    .inf-etapa{color:#000;}
    .inf-grupo h3{color:#000;border-bottom:1px solid #999;}
    .inf-lote{border-bottom:1px dotted #bbb;}
    .inf-aviso{color:#000;font-weight:700;}
    .inf-ruta .flecha{color:#888;}
    .solo-impresion{display:flex !important;}
    .informe-facturacion{background:#fff;}
    .mes-titulo{color:#000;page-break-after:avoid;}
    .tabla-wrap{overflow:visible;border:none;box-shadow:none;border-radius:0;background:#fff;}
    table.resumen{font-size:9pt;min-width:0;}
    table.resumen th{background:#eee;color:#000;}
    table.resumen td,table.resumen th{border-bottom:1px solid #ccc;padding:5px 7px;}
    table.resumen tr.fila-vencida td{background:#f4f4f4;font-weight:700;}
    .link-lote{color:#000;text-decoration:none;}
  }
