  /* ---- Comercial > Presupuestos: toolbar JUS, tarjetas de cálculo,
     documento PDF (deliberadamente NO usa tokens de tema — el documento
     debe verse igual en modo claro/oscuro, ver comercial/index.js). ---- */

  .jus-vigente-box{
    display:flex; align-items:center; gap:.6rem; font-size:13px; color:var(--text-dim);
    background:var(--bg-elev); border:1px solid var(--border-soft); border-radius:var(--radius-s);
    padding:.5rem .75rem;
  }
  .presu-jus-fecha{color:var(--text-faint); font-size:12px;}
  .presu-jus-falta{color:var(--warn);}
  .presu-toolbar-right{display:flex; align-items:center; gap:.6rem; flex-wrap:wrap;}
  .presu-actor-select{width:auto; height:34px;}

  .presu-header{margin-bottom:var(--space-4);}
  .presu-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-4);}
  .presu-card{box-shadow:var(--shadow-card);}
  .presu-card-title{font-size:var(--text-h3); margin:0 0 var(--space-2);}
  .presu-card-calculo{grid-column:1 / -1;}
  .presu-readonly-value{
    height:36px; display:flex; align-items:center; padding:0 .65rem; font-size:13.5px;
    color:var(--text-dim); background:var(--bg-sunken); border-radius:var(--radius-s);
  }
  .presu-jus-linea{font-size:13px; color:var(--text-dim); margin:.2rem 0 .8rem;}
  .presu-subtotal-row{font-size:13px; color:var(--text-dim); margin:.4rem 0 .8rem;}
  .presu-total-box{
    display:flex; align-items:center; justify-content:space-between; gap:.8rem;
    background:var(--bg-sunken); border-radius:var(--radius-m); padding:.85rem 1rem; margin-top:.6rem;
  }
  .presu-total-box > div{display:flex; flex-direction:column; gap:.15rem;}
  .presu-total-box span{font-size:11.5px; text-transform:uppercase; letter-spacing:.04em; color:var(--text-faint);}
  .presu-total-ars{font-family:var(--font-display); font-size:22px; font-weight:600; color:var(--text);}
  .presu-adicional-add-row{display:flex; gap:.5rem; margin-bottom:.6rem; flex-wrap:wrap;}
  .presu-adicional-add-row input{flex:1; min-width:120px; height:34px; border-radius:var(--radius-s); border:1px solid var(--border); background:var(--bg); padding:0 .6rem; font-size:13px; font-family:inherit; color:var(--text);}
  .presu-hint{color:var(--text-faint); font-size:12.5px; margin:.3rem 0 0;}
  .presu-info-aprobacion{font-size:13px; color:var(--text-dim); margin-bottom:.7rem;}
  .presu-plan-resultado{
    display:grid; grid-template-columns:repeat(3,1fr); gap:.6rem; margin-top:.8rem;
    font-size:12.5px; color:var(--text-dim);
  }
  .presu-plan-resultado b{display:block; font-size:15px; color:var(--text); font-family:var(--font-display);}

  @media (max-width:900px){
    .presu-grid{grid-template-columns:1fr;}
    .presu-card-calculo{grid-column:auto;}
  }
  @media (max-width:560px){
    .presu-plan-resultado{grid-template-columns:1fr;}
  }

  /* ---- Documento (vista previa + fuente del PDF) ----
     Colores literales a propósito: el papel debe verse siempre blanco y
     sobrio, sin importar el tema claro/oscuro de la app en pantalla. */
  .pdf-preview-wrap{background:#e7e5e0; padding:1.5rem; border-radius:var(--radius-m); display:flex; justify-content:center; overflow-x:auto;}
  .pdf-doc{
    width:794px; min-height:1000px; background:#ffffff; color:#1c1c1a;
    padding:52px 56px; font-family:Georgia, 'Times New Roman', serif; box-shadow:0 4px 18px rgba(0,0,0,.18);
  }
  /* La vista previa se inyecta dentro de .modal-body, cuya regla global
     ".modal-body b{color:var(--text)}" tiene la misma especificidad que
     cualquier ".pdf-doc b" — sin este empate a favor (por orden de hoja de
     estilos) el <b> del documento queda con el color de tema en modo
     oscuro en vez del literal oscuro que le corresponde al papel. */
  .pdf-doc b, .pdf-doc strong{color:#1c1c1a;}
  .pdf-header{display:flex; align-items:center; gap:16px; border-bottom:2px solid #1c1c1a; padding-bottom:16px; margin-bottom:20px;}
  .pdf-logo{width:48px; height:48px; object-fit:contain; flex:none;}
  .pdf-header-text{display:flex; flex-direction:column;}
  .pdf-brand{font-size:16px; font-weight:700; letter-spacing:.03em;}
  .pdf-brand-sub{font-size:11.5px; color:#6b6a63; letter-spacing:.02em;}
  .pdf-title{font-size:15px; font-weight:700; text-transform:uppercase; letter-spacing:.05em; text-align:center; margin:6px 0 22px;}
  .pdf-datos{display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; font-size:12.5px; margin-bottom:22px;}
  .pdf-datos > div{display:flex; flex-direction:column; gap:1px;}
  .pdf-datos > div > span{color:#6b6a63; font-size:11px;}
  .pdf-section{margin-bottom:20px;}
  .pdf-section h4{font-size:12px; text-transform:uppercase; letter-spacing:.05em; border-bottom:1px solid #cfcdc5; padding-bottom:4px; margin:0 0 8px;}
  .pdf-alcance-item{font-size:12.5px; margin-bottom:5px; line-height:1.45;}
  .pdf-honorarios{background:#f4f2ed; border-radius:6px; padding:16px 18px; text-align:center;}
  .pdf-total{font-size:26px; font-weight:700; margin:4px 0;}
  .pdf-equivalente{font-size:11.5px; color:#6b6a63;}
  .pdf-pago-grid{display:grid; grid-template-columns:1fr 1fr; gap:8px 24px; font-size:12.5px;}
  .pdf-pago-grid > div{display:flex; flex-direction:column; gap:1px;}
  .pdf-pago-grid > div > span{color:#6b6a63; font-size:11px;}
  .pdf-footer{border-top:1px solid #cfcdc5; margin-top:26px; padding-top:14px; font-size:11px; color:#6b6a63; display:flex; justify-content:space-between;}

  /* ---- Comercial > Conversión: pipeline comercial ---- */
  .conv-filtros-row{align-items:flex-start; flex-wrap:wrap;}
  .conv-filtros-selects{display:flex; gap:.5rem; flex-wrap:wrap;}
  .conv-filtros-selects select{width:auto; height:32px; font-size:12.5px;}

  .conv-pipeline{display:flex; gap:var(--space-4); overflow-x:auto; padding-bottom:.5rem; align-items:flex-start;}
  .conv-columna{
    flex:0 0 264px; background:var(--bg-elev); border:1px solid var(--border-soft);
    border-radius:var(--radius-l); display:flex; flex-direction:column; max-height:70vh;
  }
  .conv-columna-full{flex:1 1 auto; max-height:none;}
  .conv-columna-header{
    display:flex; align-items:center; justify-content:space-between; font-size:12.5px; font-weight:600;
    color:var(--text-dim); text-transform:uppercase; letter-spacing:.03em;
    padding:.85rem .9rem; border-bottom:1px solid var(--border-soft); flex:none;
  }
  .conv-columna-body{padding:.7rem; display:flex; flex-direction:column; gap:.6rem; overflow-y:auto;}
  .conv-columna-full .conv-columna-body{flex-direction:row; flex-wrap:wrap;}
  .conv-columna-full .conv-card{flex:0 1 260px;}

  .conv-card{
    background:var(--bg); border:1px solid var(--border-soft); border-radius:var(--radius-m);
    padding:.7rem .8rem; cursor:pointer; box-shadow:var(--shadow-card);
    transition:border-color .12s ease, transform .12s ease;
  }
  .conv-card:hover{border-color:var(--accent); transform:translateY(-1px);}
  .conv-card-nombre{font-weight:600; font-size:13.5px;}
  .conv-card-subtitulo{font-size:12px; color:var(--text-dim); margin-top:.15rem;}
  .conv-card-origen{font-size:11px; color:var(--text-faint); text-transform:uppercase; letter-spacing:.03em; margin-top:.35rem;}
  .conv-card-presu{font-size:13px; font-weight:600; color:var(--text); margin-top:.35rem;}
  .conv-card-footer{display:flex; align-items:center; justify-content:space-between; font-size:11.5px; color:var(--text-faint); margin-top:.5rem; padding-top:.4rem; border-top:1px solid var(--border-soft);}
  .conv-card-proxima{display:flex; align-items:center; gap:.3rem; font-size:11.5px; color:var(--text-dim); margin-top:.35rem;}
  .conv-card-proxima .icon{color:var(--text-faint); flex:none;}

  .conv-cliente-picker{display:flex; gap:.5rem;}
  .conv-cliente-picker select{flex:1;}

  @media (max-width:640px){
    .conv-columna{flex:0 0 82vw;}
  }
