:root{
    --blue:#0b3d91;
    --blue2:#0e58c7;
    --orange:#ff7a00;
    --bg:#f4f7fb;
    --card:#ffffff;
    --text:#1f2937;
    --muted:#6b7280;
    --line:#dbe3ef;
    --green:#0f8a5f;
  }
  *{box-sizing:border-box}
  body{
    margin:0;
    font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    background:var(--bg);
    color:var(--text);
  }
  .topbar{
    background:linear-gradient(90deg,var(--blue),#123f7d);
    color:white;
    padding:20px 28px;
    display:flex;
    justify-content:space-between;
    align-items:center;
    border-bottom:5px solid var(--orange);
  }
  .brand{font-size:26px;font-weight:800;letter-spacing:.8px}
  .brand span{color:#ffb14d;font-weight:700}
  .step{font-size:13px;opacity:.9}
  .wrap{max-width:1180px;margin:28px auto;padding:0 18px 40px}
  .page-title{
    display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:18px
  }
  h1{margin:0;color:var(--blue);font-size:34px}
  .proposal{
    min-width:420px
  }
  .proposal-inline{
    display:grid;
    grid-template-columns:auto minmax(190px,1fr) auto;
    gap:9px;
    align-items:center;
  }
  .proposal-inline label{
    margin:0;
    white-space:nowrap;
  }
  .proposal-inline input{
    min-width:0;
  }
  .assign-btn{
    background:var(--blue);
    color:white;
    padding:10px 13px;
    border-radius:8px;
  }
  .assign-btn:hover{background:#082f72}
  .grid{
    display:grid;
    grid-template-columns:1.25fr .75fr;
    gap:20px;
  }
  .card{
    background:var(--card);
    border:1px solid var(--line);
    border-radius:14px;
    box-shadow:0 8px 24px rgba(15,35,70,.06);
    overflow:hidden;
  }
  .card-head{
    padding:14px 18px;
    font-weight:800;
    color:white;
    background:var(--blue);
  }
  .card-body{padding:18px}
  .form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 16px;
  }
  label{
    display:block;font-size:12px;font-weight:700;color:#4b5563;margin-bottom:6px
  }
  input,select{
    width:100%;
    height:42px;
    border:1px solid #cdd6e4;
    border-radius:8px;
    padding:0 11px;
    font-size:14px;
    background:#fff;
    color:#111827;
    outline:none;
  }
  select{
    line-height:42px;
  }
  input:focus,select:focus{border-color:var(--blue2);box-shadow:0 0 0 3px rgba(14,88,199,.12)}
  input[readonly]{
    background:#f2f5f9;
    color:#374151;
  }
  .hint{
    margin-top:5px;font-size:11px;color:var(--muted)
  }
  .full{grid-column:1/-1}
  .section-gap{margin-top:20px}
  table{
    width:100%;
    border-collapse:collapse;
    font-size:14px;
  }
  th{
    text-align:left;background:#eef4ff;color:var(--blue);
    padding:10px;border-bottom:1px solid var(--line)
  }
  td{padding:7px 10px;border-bottom:1px solid #edf1f6}
  td:first-child{width:52px;color:var(--muted);font-weight:700;text-align:center}
  td input{height:38px;padding:0 8px}
  .metric{
    border:1px solid var(--line);
    border-radius:11px;
    margin-bottom:12px;
    overflow:hidden;
  }
  .metric-title{
    padding:9px 12px;
    background:#0c49d8;
    color:#fff;
    font-weight:800;
    font-size:13px;
  }
  .metric-value{
    padding:14px 12px;
    font-size:23px;
    font-weight:800;
    letter-spacing:.2px;
  }
  .metric input{
    border:0;border-radius:0;font-size:23px;font-weight:800;
    padding:14px 12px;height:auto;
  }
  .metric small{display:block;font-size:11px;color:var(--muted);font-weight:500;margin-top:3px}
  .status{
    margin-top:18px;padding:11px 13px;border-radius:10px;background:#ecfdf5;color:#065f46;font-size:12px
  }
  .actions{
    display:flex;gap:10px;justify-content:flex-end;margin-top:20px
  }

  .page-nav{
    display:flex;
    gap:10px;
    margin-bottom:18px;
  }
  .page-nav button{
    background:#e8eef8;
    color:var(--blue);
  }
  .page-nav button.active{
    background:var(--blue);
    color:#fff;
  }
  .analysis-page{display:none}
  .analysis-page.active{display:block}
  .franklin-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(360px,.72fr);
    gap:20px;
    align-items:start;
  }
  .franklin-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 16px;
  }
  .readout{
    width:100%;
    min-height:42px;
    border:1px solid #cdd6e4;
    border-radius:8px;
    padding:10px 11px;
    background:#f2f5f9;
    color:#111827;
    display:flex;
    align-items:center;
    font-weight:700;
  }
  .formula-note{
    margin-top:5px;
    font-size:11px;
    color:var(--muted);
  }

  .admin-cost-card{
    position:sticky;
    top:18px;
  }
  .admin-badge{
    display:inline-block;
    margin-left:8px;
    padding:3px 7px;
    border-radius:999px;
    background:#dbeafe;
    color:#1e40af;
    font-size:10px;
    font-weight:800;
    vertical-align:middle;
  }
  .admin-table{
    width:100%;
    border-collapse:separate;
    border-spacing:0;
    border:1px solid #cbd5e1;
    border-radius:10px;
    overflow:hidden;
  }
  .admin-table th{
    background:#0c49d8;
    color:white;
    padding:10px 8px;
    font-size:12px;
    text-align:center;
    border-bottom:1px solid #cbd5e1;
  }
  .admin-table td{
    padding:9px 8px;
    border-bottom:1px solid #e5e7eb;
    vertical-align:middle;
    font-size:13px;
  }
  .admin-table tr:last-child td{border-bottom:0}
  .admin-table td:first-child{
    width:auto;
    text-align:left;
    color:#1f2937;
    font-weight:700;
    white-space:nowrap;
  }
  .admin-table .money,
  .admin-table .number{
    text-align:right;
    font-variant-numeric:tabular-nums;
  }
  .admin-table input{
    height:34px;
    min-width:74px;
    padding:0 7px;
    text-align:right;
    font-size:13px;
  }

  .currency-input-wrap{
    display:flex;
    align-items:center;
    border:1px solid #cdd6e4;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
    min-width:92px;
  }
  .currency-input-wrap .currency-symbol{
    padding-left:8px;
    font-weight:700;
    color:#374151;
  }
  .currency-input-wrap input{
    border:0;
    border-radius:0;
    min-width:0;
    width:100%;
    box-shadow:none;
    padding-left:4px;
  }
  .currency-input-wrap input:focus{
    box-shadow:none;
  }
  .admin-total{
    display:flex;
    justify-content:space-between;
    gap:12px;
    margin-top:12px;
    padding:12px 14px;
    background:#eff6ff;
    border:1px solid #bfdbfe;
    border-radius:9px;
    color:#1e3a8a;
    font-weight:800;
  }

  .franklin-left-column{
    display:flex;
    flex-direction:column;
    gap:20px;
    min-width:0;
  }
  .system-price-card{
    margin-top:0;
    overflow:hidden;
  }
  .system-price-head{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    background:linear-gradient(135deg,#0b3d91,#0c49d8);
  }
  .system-price-kicker{
    font-size:10px;
    text-transform:uppercase;
    letter-spacing:.09em;
    opacity:.8;
    margin-bottom:3px;
  }
  .system-price-chip{
    padding:6px 10px;
    border-radius:999px;
    background:rgba(255,255,255,.16);
    border:1px solid rgba(255,255,255,.24);
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
  }
  .system-price-body{
    padding:0;
  }
  .system-price-list{
    display:flex;
    flex-direction:column;
  }
  .system-price-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-bottom:1px solid #e8edf5;
    background:#fff;
  }
  .system-price-row:last-child{
    border-bottom:0;
  }
  .system-price-row:hover{
    background:#f8fbff;
  }
  .system-price-name{
    font-weight:800;
    color:#1f2937;
    font-size:13px;
    white-space:nowrap;
  }

  .system-option-wrap{
    display:flex;
    align-items:center;
    gap:10px;
    min-width:0;
  }
  .proposal-option-checkbox{
    width:18px;
    height:18px;
    min-width:18px;
    accent-color:#0b3d91;
    cursor:pointer;
  }
  .system-option-text{
    min-width:0;
  }
  .system-storage{
    margin-top:3px;
    color:#0b3d91;
    font-size:10.5px;
    font-weight:600;
    white-space:nowrap;
  }
  .system-price-sub{
    margin-top:2px;
    color:#6b7280;
    font-size:11px;
  }
  .system-price-value{
    color:#0b3d91;
    font-size:22px;
    font-weight:900;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }

  .profit-header{
    display:grid;
    grid-template-columns:1.9fr 1fr;
    gap:10px;
    padding:9px 16px;
    background:#eef4ff;
    color:#0b3d91;
    font-size:11px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.04em;
    border-bottom:1px solid #dbe6f4;
  }
  .profit-header > div:first-child{
    text-align:center;
  }
  .profit-header > div:not(:first-child){
    text-align:right;
  }
  .profit-row{
    display:grid;
    grid-template-columns:1.9fr 1fr;
    align-items:center;
    gap:10px;
  }
  .profit-row .system-price-value{
    font-size:16px;
  }

  body.admin-mode .profit-header{
    grid-template-columns:1.9fr repeat(4,1fr);
  }
  body.admin-mode .profit-row{
    grid-template-columns:1.9fr repeat(4,1fr);
  }
  .metric-cell{
    text-align:right;
    min-width:0;
  }

  .admin-only{
    display:none;
  }
  body.admin-mode .admin-only{
    display:block;
  }
  body.admin-mode aside.admin-only{
    display:block;
  }
  body.admin-mode .profit-header .admin-only{
    display:block;
  }
  .admin-mode-toggle{
    margin-left:auto;
    display:flex;
    align-items:center;
    gap:8px;
    font-size:12px;
  }
  .metric-label{
    display:none;
  }
  .cost-value,
  .profit-value,
  .margin-value{
    display:block;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    white-space:nowrap;
  }
  .cost-value{color:#475569}
  .profit-value{color:#0f766e}
  .margin-value{
    color:#0b3d91;
    font-size:15px;
  }
  @media(max-width:1100px){
    .profit-header{display:none}
    .profit-row{
      grid-template-columns:1fr 1fr;
      gap:10px 14px;
    }
    .profit-row > div:first-child{
      grid-column:1/-1;
    }
    .metric-cell{
      text-align:left;
      background:#f8fafc;
      border:1px solid #e5e7eb;
      border-radius:8px;
      padding:8px 10px;
    }
    .metric-label{
      display:block;
      color:#64748b;
      font-size:10px;
      font-weight:700;
      text-transform:uppercase;
      margin-bottom:2px;
    }
  }
  .system-price-footnote{
    padding:11px 16px;
    background:#f3f7fd;
    border-top:1px solid #dbe6f4;
    color:#64748b;
    font-size:11px;
  }

  .monthly-payment-card{
    margin-top:20px;
    overflow:hidden;
  }
  .monthly-payment-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }
  .monthly-payment-table th{
    background:#eef4ff;
    color:#0b3d91;
    padding:10px 8px;
    text-align:center;
    font-size:12px;
    font-weight:800;
    border-bottom:1px solid #dbe6f4;
  }
  .monthly-payment-table th:first-child{
    text-align:left;
    width:26%;
  }
  .monthly-payment-table th:nth-child(2){
    width:16%;
  }
  .monthly-payment-table td{
    padding:11px 8px;
    border-bottom:1px solid #edf1f6;
    text-align:center;
    font-size:13px;
    font-variant-numeric:tabular-nums;
  }
  .monthly-payment-table td:first-child{
    text-align:left;
    font-weight:700;
    color:#1f2937;
  }
  .monthly-payment-table tr:last-child td{
    border-bottom:0;
  }
  .monthly-payment-value{
    font-weight:800;
    color:#0b3d91;
  }
  .finance-rate-row{
    display:flex;
    justify-content:flex-end;
    align-items:center;
    gap:10px;
    padding:12px 14px;
    background:#f8fafc;
    border-top:1px solid #e2e8f0;
  }
  .finance-rate-row label{
    margin:0;
    font-size:12px;
    font-weight:800;
    color:#374151;
  }
  .finance-rate-input{
    display:flex;
    align-items:center;
    border:1px solid #cdd6e4;
    border-radius:8px;
    background:#fff;
    overflow:hidden;
    width:100px;
  }
  .finance-rate-input input{
    border:0;
    border-radius:0;
    width:70px;
    height:36px;
    text-align:right;
    padding:0 4px 0 8px;
  }
  .finance-rate-input span{
    padding-right:8px;
    font-weight:800;
    color:#374151;
  }

  .additional-battery-box{
    margin:12px 16px 16px;
    padding:12px 14px;
    border:1px solid #bfdbfe;
    border-radius:10px;
    background:#eff6ff;
    align-items:center;
    justify-content:space-between;
    gap:14px;
  }
  body.admin-mode .additional-battery-box{display:flex}
  .additional-battery-title{
    font-size:12px;
    font-weight:800;
    color:#1e3a8a;
  }
  .additional-battery-sub{
    margin-top:2px;
    font-size:10px;
    color:#64748b;
  }
  .additional-battery-input{
    width:130px;
    flex:0 0 auto;
  }
  .system-price-table{
    width:100%;
    border-collapse:collapse;
  }
  .system-price-table th{
    background:#0c49d8;
    color:#fff;
    padding:11px 12px;
    font-size:13px;
    text-align:left;
  }
  .system-price-table th:last-child,
  .system-price-table td:last-child{
    text-align:right;
  }
  .system-price-table td{
    padding:12px;
    border-bottom:1px solid #e5e7eb;
    font-size:14px;
  }
  .system-price-table tr:last-child td{
    border-bottom:0;
  }
  .system-price-table .system-name{
    font-weight:800;
    color:#1f2937;
  }
  .system-price-note{
    margin-top:10px;
    padding:10px 12px;
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:8px;
    color:#64748b;
    font-size:12px;
  }
  button{
    border:0;border-radius:9px;padding:11px 15px;font-weight:800;cursor:pointer
  }
  .secondary{background:#e8eef8;color:var(--blue)}
  .primary{background:var(--orange);color:#fff}
  @media(max-width:850px){
    .grid,.form-grid,.franklin-layout{grid-template-columns:1fr}
    .full{grid-column:auto}
    .page-title{align-items:stretch;flex-direction:column}
    .proposal{min-width:0}
    .proposal-inline{
      grid-template-columns:auto 1fr;
    }
    .proposal-inline .assign-btn{
      grid-column:2;
      justify-self:start;
    }
  }

  /* Base de Datos · solo administrador */
  .database-shell{
    display:grid;
    grid-template-columns:220px minmax(0,1fr);
    gap:18px;
    align-items:start;
  }
  .database-sidebar{
    position:sticky;
    top:16px;
  }
  .db-tabs{
    display:flex;
    flex-direction:column;
    gap:7px;
  }
  .db-tab{
    width:100%;
    text-align:left;
    border:1px solid #dbe3ee;
    background:#fff;
    color:#17324d;
    border-radius:9px;
    padding:10px 12px;
    font-weight:700;
    cursor:pointer;
  }
  .db-tab.active{
    background:#0b3d91;
    color:#fff;
    border-color:#0b3d91;
  }
  .db-toolbar{
    display:flex;
    justify-content:space-between;
    gap:12px;
    align-items:center;
    margin-bottom:14px;
  }
  .db-toolbar h2{
    margin:0;
    font-size:20px;
  }
  .db-toolbar-actions{
    display:flex;
    gap:8px;
    flex-wrap:wrap;
  }
  .db-editor{
    border:1px solid #dbe3ee;
    background:#f8fafc;
    border-radius:10px;
    padding:14px;
    margin-bottom:14px;
  }
  .db-editor.hidden{display:none;}
  .db-editor-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
  }
  .db-editor-grid .full{grid-column:1/-1;}
  .db-checks{
    display:flex;
    gap:18px;
    align-items:center;
    padding-top:24px;
  }
  .db-checks label{
    display:flex;
    align-items:center;
    gap:7px;
    margin:0;
  }
  .db-checks input{
    width:auto;
    height:auto;
  }
  .db-table-wrap{
    overflow:auto;
  }
  .db-table{
    width:100%;
    min-width:820px;
    border-collapse:collapse;
  }
  .db-table th,
  .db-table td{
    padding:9px 10px;
    border-bottom:1px solid #e5e7eb;
    vertical-align:middle;
  }
  .db-table th{
    background:#f3f6fa;
    font-size:12px;
    text-transform:uppercase;
    letter-spacing:.03em;
  }
  .db-status{
    display:inline-block;
    border-radius:999px;
    padding:3px 8px;
    font-size:11px;
    font-weight:800;
  }
  .db-status.active{background:#dcfce7;color:#166534;}
  .db-status.inactive{background:#fee2e2;color:#991b1b;}
  .db-default{
    font-size:11px;
    font-weight:800;
    color:#0b3d91;
  }
  .db-actions{
    display:flex;
    gap:6px;
    flex-wrap:wrap;
  }
  .db-actions button{
    padding:6px 9px;
    font-size:11px;
  }
  .db-params-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:10px;
  }
  .db-empty{
    padding:24px;
    text-align:center;
    color:#64748b;
  }
  .db-note{
    margin-top:10px;
    color:#64748b;
    font-size:12px;
  }
  @media(max-width:900px){
    .database-shell{grid-template-columns:1fr;}
    .database-sidebar{position:static;}
    .db-tabs{flex-direction:row;overflow:auto;}
    .db-tab{width:auto;white-space:nowrap;}
    .db-editor-grid,.db-params-grid{grid-template-columns:1fr 1fr;}
  }
  @media(max-width:600px){
    .db-editor-grid,.db-params-grid{grid-template-columns:1fr;}
  }


  /* Ajustes Base de Datos v46 */
  .db-table td:first-child,
  .db-table th:first-child{
    white-space:nowrap;
  }
  .db-vendor-single-column{
    grid-template-columns:1fr !important;
  }
  .db-vendor-single-column > div{
    max-width:420px;
  }


  .system-panel-select{
    width:100%;
    min-height:42px;
  }


  .db-general-params-single{
    display:flex !important;
    flex-direction:column;
    gap:10px;
  }
  .db-general-param-row{
    display:grid;
    grid-template-columns:210px 220px;
    gap:10px;
    align-items:center;
    justify-content:start;
  }
  .db-general-param-row label{
    margin:0;
    font-weight:700;
    text-align:left;
  }
  .db-general-param-row > input,
  .db-general-param-row .currency-input-wrap,
  .db-general-param-row .percent-input-wrap{
    width:220px;
  }
  .db-general-param-row .currency-input-wrap,
  .db-general-param-row .percent-input-wrap{
    width:100%;
  }
  @media(max-width:650px){
    .db-general-param-row{
      grid-template-columns:1fr;
      gap:6px;
    }
  }


  /* Las páginas completas nunca deben mostrarse solo por ser admin-only.
     Base de Datos se muestra únicamente cuando está activa. */
  body.admin-mode .analysis-page.admin-only{
    display:none;
  }
  body.admin-mode .analysis-page.admin-only.active{
    display:block;
  }


  .db-delete{
    background:#fee2e2 !important;
    color:#991b1b !important;
  }
  .db-delete:hover{
    background:#fecaca !important;
  }


  /* Base de Datos v53: Marca + Modelo en todas las bases */
  .db-table{
    min-width:1040px;
  }
  .db-table th:nth-child(1),
  .db-table td:nth-child(1),
  .db-table th:nth-child(2),
  .db-table td:nth-child(2),
  .db-table th:nth-child(3),
  .db-table td:nth-child(3){
    white-space:nowrap;
  }


  .db-duplicate{
    background:#e0f2fe !important;
    color:#075985 !important;
  }
  .db-duplicate:hover{
    background:#bae6fd !important;
  }


  /* SigEnergy v55 */
  .page-nav{
    flex-wrap:wrap;
  }


  /* V61: Base/Cant siempre en una sola línea */
  .admin-table .number{
    white-space:nowrap;
  }


  /* V64: Tabla Comparativa */
  .comparison-card{margin-bottom:20px;}
  .comparison-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }
  .comparison-table th{
    background:#eef4ff;
    color:#0b3d91;
    padding:11px 14px;
    font-size:12px;
    font-weight:800;
    text-align:left;
  }
  .comparison-table th:not(:first-child),
  .comparison-table td:not(:first-child){
    text-align:right;
  }
  .comparison-table td{
    padding:12px 14px;
    border-bottom:1px solid #e8edf5;
    font-size:13px;
    font-variant-numeric:tabular-nums;
  }
  .comparison-table td:first-child{
    width:auto;
    text-align:left;
    color:#1f2937;
    font-weight:700;
  }
  .comparison-table td:nth-child(2){
    color:#0b3d91;
    font-weight:900;
  }
  .comparison-table tr:last-child td{border-bottom:0;}
  body:not(.admin-mode) .comparison-table .admin-only{display:none !important;}


  /* V65: Comparativa en orientación horizontal por sistema */
  .comparison-table-wrap{
    overflow-x:auto;
  }

  .comparison-matrix{
    min-width:960px;
    table-layout:fixed;
  }

  .comparison-matrix th,
  .comparison-matrix td{
    text-align:center !important;
    vertical-align:middle;
    padding:13px 10px;
    white-space:normal;
  }

  .comparison-matrix thead th{
    background:#eef4ff;
    color:#0b3d91;
    font-weight:800;
    line-height:1.25;
  }

  .comparison-matrix thead th:first-child{
    width:110px;
  }

  .comparison-matrix thead th span{
    display:inline-block;
    margin-top:4px;
    color:#64748b;
    font-size:11px;
    font-weight:700;
  }

  .comparison-matrix tbody th{
    background:#f8fafc;
    color:#374151;
    font-weight:800;
    text-align:left !important;
    white-space:nowrap;
    border-bottom:1px solid #e8edf5;
  }

  .comparison-matrix tbody td{
    color:#0b3d91;
    font-weight:800;
    font-variant-numeric:tabular-nums;
    border-bottom:1px solid #e8edf5;
  }

  .comparison-matrix .comparison-admin-row{
    display:none;
  }

  body.admin-mode .comparison-matrix .comparison-admin-row{
    display:table-row;
  }

  .comparison-matrix .comparison-admin-row:nth-of-type(2) td{
    color:#0f766e;
  }

  .comparison-matrix .comparison-admin-row:nth-of-type(3) td{
    color:#0b3d91;
  }

  .comparison-matrix-3{
    min-width:720px;
  }


  /* V67: Selección de opciones para Generar Propuesta */
  .generate-proposal-btn{
    min-width:170px;
  }

  .proposal-selection-table{
    width:100%;
    border-collapse:collapse;
  }

  .proposal-selection-table th{
    background:#eef4ff;
    color:#0b3d91;
    text-align:left;
    font-size:12px;
    font-weight:800;
    padding:11px 14px;
  }

  .proposal-selection-table td{
    padding:13px 14px;
    border-bottom:1px solid #e8edf5;
    font-size:13px;
    vertical-align:middle;
  }

  .proposal-selection-table td:last-child{
    text-align:right;
    color:#0b3d91;
    font-weight:900;
    white-space:nowrap;
  }

  .proposal-empty{
    text-align:center !important;
    color:#64748b !important;
    font-weight:600 !important;
    padding:28px 14px !important;
  }


  .comparison-proposal-checkbox{
    margin-right:6px;
    vertical-align:middle;
    transform:translateY(-1px);
  }


  /* V69: Generar Propuesta junto al nombre de cada página */
  .proposal-title-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
  }

  .proposal-title-button{
    flex:0 0 auto;
    margin-top:2px;
    min-width:170px;
  }

  @media (max-width:700px){
    .proposal-title-row{
      flex-direction:column;
      align-items:stretch;
    }

    .proposal-title-button{
      width:100%;
      margin-top:4px;
    }
  }


  /* V70: botón exactamente al lado del nombre de la página */
  .proposal-title-row{
    display:block !important;
  }

  .proposal-title-content{
    width:100%;
  }

  .proposal-title-line{
    display:flex;
    align-items:center;
    gap:14px;
    flex-wrap:nowrap;
  }

  .proposal-title-line h1{
    margin:0;
    flex:0 1 auto;
  }

  .proposal-title-line .proposal-title-button{
    margin:0;
    min-width:0;
    width:auto;
    flex:0 0 auto;
    white-space:nowrap;
  }

  .proposal-title-content > .hint{
    margin-top:5px;
  }

  @media (max-width:700px){
    .proposal-title-line{
      flex-wrap:wrap;
    }

    .proposal-title-line .proposal-title-button{
      width:auto;
      margin-top:0;
    }
  }


  /* V71 - navegación por módulos */
  .topbar{gap:22px;}
  .topbar-brand-block{min-width:300px;}
  .module-tabs{display:flex;gap:8px;align-items:center;justify-content:center;flex:1;}
  .module-tab{width:auto;height:40px;padding:0 16px;border:1px solid rgba(255,255,255,.35);border-radius:9px;background:rgba(255,255,255,.08);color:white;font-weight:800;cursor:pointer;}
  .module-tab:hover{background:rgba(255,255,255,.15);}
  .module-tab.active{background:white;color:var(--blue);border-color:white;box-shadow:0 3px 10px rgba(0,0,0,.16);}
  .module-view{display:none;}
  .module-view.active{display:block;}
  #analysisModule .page-nav #navProposal{display:none !important;}

  /* V71 - módulo 2 / propuesta */
  .proposal-module-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:20px;}
  .proposal-module-actions{display:flex;gap:10px;}
  .proposal-preview-stack{display:flex;flex-direction:column;gap:28px;align-items:center;}
  .proposal-sheet{position:relative;width:min(100%,850px);aspect-ratio:1/1;background:#fff;border:1px solid #d8e0eb;box-shadow:0 12px 30px rgba(15,35,70,.12);overflow:hidden;color:#173a7a;}
  .proposal-sheet-top{height:58px;background:linear-gradient(135deg,#073b95 0 70%,transparent 70%);border-bottom:3px solid #ff7a00;display:flex;align-items:center;justify-content:flex-end;padding:0 52px;}
  .proposal-logo-text{font-size:24px;font-weight:900;letter-spacing:2px;color:#ef7d00;background:#fff;padding:6px 16px;border-radius:30px;border:2px solid #ef7d00;}
  .proposal-sheet-content{padding:34px 72px 78px;color:#244b92;font-size:14px;line-height:1.35;}
  .proposal-sheet-content h3{margin:0 0 18px;text-align:center;color:#1f52b0;font-size:22px;}
  .proposal-sheet-content h4{margin:0 0 8px;color:#1f52b0;font-size:16px;}
  .proposal-sheet-content p{color:#214887;text-align:justify;}
  .proposal-centered-title{text-align:center;margin-bottom:26px;font-size:18px;line-height:1.35;}
  .proposal-signature{text-align:left !important;margin-top:34px;}
  .proposal-sheet-footer{position:absolute;left:0;right:0;bottom:0;min-height:48px;background:linear-gradient(135deg,#073b95 0 35%,#ff7a00 35% 100%);color:#173a7a;display:flex;justify-content:flex-end;gap:15px;align-items:center;padding:8px 30px;font-size:11px;font-weight:700;}
  .proposal-cover-body{padding:48px 80px 80px;color:#1f52b0;}
  .proposal-cover-body h2{font-size:38px;margin:0 0 28px;color:#1f52b0;}
  .proposal-cover-grid{display:grid;grid-template-columns:130px 1fr;gap:12px 14px;font-size:16px;}
  .proposal-cover-grid strong{color:#183e7c;}
  .proposal-cover-tagline{text-align:center;margin-top:50px;font-size:20px;font-weight:800;}
  .proposal-doc-table{width:100%;border-collapse:collapse;margin-top:18px;color:#153e7e;}
  .proposal-doc-table th,.proposal-doc-table td{border:1px solid #8f9cb3;padding:8px 10px;background:#f4f4f4;text-align:left;width:auto;}
  .proposal-doc-table th{color:#153e7e;font-weight:700;}
  .proposal-doc-table td{background:#fff;font-weight:800;text-align:right;}
  .proposal-table-gap{margin-top:28px;}
  .proposal-footnote{font-size:10px;color:#334e7d;margin-top:18px;line-height:1.35;}
  .proposal-equipment-block{margin-top:22px;}
  .proposal-detail-grid{display:grid;grid-template-columns:140px 1fr;gap:7px 12px;color:#214887;}
  .proposal-selected-equipment{display:flex;flex-direction:column;gap:9px;}
  .proposal-selected-chip{border:1px solid #c7d4ea;background:#f7faff;padding:10px 12px;border-radius:8px;color:#163e7d;font-weight:700;}
  .proposal-kv{display:flex;justify-content:space-between;gap:20px;margin:8px 0 20px;font-size:15px;}
  .proposal-prices-table th,.proposal-prices-table td{text-align:left;}
  .proposal-prices-table td:last-child{text-align:right;}
  .proposal-subtitle{text-align:left !important;margin-top:28px !important;}
  .proposal-finance-block{margin-top:14px;border:1px solid #b4c0d3;}
  .proposal-finance-block-title{background:#0a3470;color:#fff;font-weight:800;padding:7px 10px;text-align:center;}
  .proposal-finance-table{width:100%;border-collapse:collapse;font-size:11px;}
  .proposal-finance-table th,.proposal-finance-table td{border:1px solid #c3ccd9;padding:6px;text-align:center;width:auto;color:#173f7e;}
  .proposal-notes-box{min-height:62px;border-bottom:1px solid #c8d0dc;}
  .compact-copy{font-size:12px;line-height:1.25;}
  .compact-copy h3{text-align:left;font-size:17px;margin-top:6px;margin-bottom:10px;}
  .compact-copy ol{padding-left:24px;color:#214887;}
  .compact-copy li{margin-bottom:5px;}
  .proposal-static-sheet{aspect-ratio:auto;background:#fff;}
  .proposal-static-sheet img{display:block;width:100%;height:auto;}

  @media(max-width:900px){
    .topbar{flex-wrap:wrap;}
    .topbar-brand-block{min-width:0;flex:1 1 100%;}
    .module-tabs{order:3;flex:1 1 100%;justify-content:flex-start;}
    .proposal-sheet-content{padding:26px 34px 70px;}
    .proposal-cover-body{padding:38px 40px 70px;}
  }

  


  /* V72: propuesta sobre el formato visual exacto del PDF suministrado */
  .pdf-template-stack{display:flex;flex-direction:column;gap:24px;align-items:center;}
  .proposal-pdf-page{
    position:relative;width:min(100%,900px);aspect-ratio:1/1;background:#fff;
    box-shadow:0 10px 30px rgba(13,43,89,.14);overflow:hidden;
  }
  .proposal-pdf-page>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;display:block;}
  .pdf-overlay{position:absolute;inset:0;pointer-events:none;color:#123f82;font-family:Arial,Helvetica,sans-serif;}
  .pdf-value{position:absolute;font-size:1.9%;line-height:1.1;font-weight:700;white-space:nowrap;}

  .p1-client{left:27%;top:36.1%;width:55%;}
  .p1-email{left:27%;top:41.0%;width:55%;}
  .p1-phone{left:27%;top:45.8%;width:55%;}
  .p1-number{left:27%;top:50.5%;width:55%;}
  .p1-date{left:27%;top:55.4%;width:55%;}
  .p1-consultant{left:27%;top:60.2%;width:55%;}
  .p1-consultant-phone{left:27%;top:65.0%;width:55%;}

  .p3-daily,.p3-monthly,.p3-kwh,.p3-bill,.p3-size,.p3-qty,.p3-watts,.p3-generation{
    left:59.5%;width:31.5%;text-align:center;font-size:1.75%;
  }
  .p3-daily{top:28.2%;}.p3-monthly{top:30.7%;}.p3-kwh{top:33.2%;}.p3-bill{top:35.7%;}
  .p3-size{top:42.2%;}.p3-qty{top:44.7%;}.p3-watts{top:47.2%;}.p3-generation{top:53.4%;}

  .p4-panel-name{left:24%;top:17.4%;font-size:1.65%;}
  .p4-panel-capacity{left:24%;top:21.6%;font-size:1.65%;}
  .p4-panel-qty{left:24%;top:23.8%;font-size:1.65%;}
  .p4-equipment{left:24%;top:35.6%;width:48%;white-space:normal;font-size:1.55%;line-height:1.35;}

  .p5-size{left:54%;top:15.0%;font-size:1.7%;}
  .p5-selected-prices{left:27%;top:21.5%;width:47%;white-space:normal;text-align:center;font-size:1.8%;line-height:1.25;}
  .p5-finance{left:21%;top:58%;width:58%;white-space:normal;font-size:1.25%;}

  @media(max-width:900px){.proposal-pdf-page{width:100%;}}
  


  /* V73: checkboxes alineados junto al nombre en Comparativa */
  .comparison-system-head{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:7px;
    width:100%;
  }

  .comparison-system-head .comparison-proposal-checkbox{
    margin:0;
    flex:0 0 auto;
    transform:none;
  }

  .comparison-system-label{
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    line-height:1.15;
    text-align:left;
  }

  .comparison-system-name{
    display:block;
    font-weight:800;
    color:#0b3d91;
    white-space:nowrap;
  }

  .comparison-system-capacity{
    display:block;
    margin-top:3px;
    color:#64748b;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
  }


  /* V75: propuesta calibrada contra el PDF original 612 x 792 pt */
  #proposalModule.wrap{
    max-width:none;
    width:100%;
    padding-left:0;
    padding-right:0;
  }

  .proposal-module-toolbar{
    width:min(calc(100% - 32px), 8.5in);
    margin-left:auto;
    margin-right:auto;
  }

  .pdf-template-stack{
    width:100%;
    gap:24px;
  }

  .proposal-pdf-page{
    container-type:inline-size;
    position:relative;
    width:8.5in;
    max-width:calc(100vw - 24px);
    aspect-ratio:612 / 792;
    height:auto;
    margin:0 auto;
    padding:0;
    background:#fff;
    overflow:hidden;
    box-sizing:border-box;
  }

  .proposal-pdf-page > img{
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:fill;
    display:block;
    margin:0;
    padding:0;
  }

  .pdf-overlay{
    position:absolute;
    inset:0;
    margin:0;
    padding:0;
    pointer-events:none;
    font-family:Arial, Helvetica, sans-serif;
    color:#214887;
  }

  .pdf-value{
    position:absolute;
    font-family:Arial, Helvetica, sans-serif;
    font-size:2.63cqi; /* 16.1 pt on a 612 pt wide page */
    line-height:1;
    font-weight:400;
    color:#214887;
    white-space:nowrap;
    text-align:left;
  }

  /* Page 1 - same baseline, size and left column alignment as source PDF */
  .p1-client{left:31.05%;top:35.27%;width:57%;}
  .p1-email{left:31.05%;top:39.90%;width:57%;}
  .p1-phone{left:31.05%;top:44.57%;width:57%;}
  .p1-number{left:31.05%;top:49.20%;width:57%;}
  .p1-date{left:31.05%;top:53.84%;width:57%;}
  .p1-consultant{left:31.05%;top:58.51%;width:57%;}
  .p1-consultant-phone{left:31.05%;top:63.14%;width:57%;}

  /* Page 3 - exact right-side cells from the source PDF */
  .pdf-table-value{
    position:absolute;
    left:58.42%;
    width:33.68%;
    height:2.03%;
    display:flex;
    align-items:center;
    justify-content:center;
    box-sizing:border-box;
    font-family:Arial, Helvetica, sans-serif;
    font-size:2.27cqi; /* 13.9 pt */
    line-height:1;
    font-weight:400;
    color:#214887;
    text-align:center;
    white-space:nowrap;
  }
  .p3-daily{top:26.46%;}
  .p3-monthly{top:28.56%;}
  .p3-kwh{top:30.64%;}
  .p3-bill{top:32.74%;}
  .p3-size{top:38.62%;}
  .p3-qty{top:40.71%;}
  .p3-watts{top:42.80%;}
  .p3-generation{top:48.65%;}

  /* Page 4 - values start immediately after each original label */
  .p4-panel-brand{left:30.0%;top:16.52%;font-size:2.27cqi;}
  .p4-panel-model{left:30.0%;top:18.55%;font-size:2.27cqi;}
  .p4-panel-capacity{left:34.0%;top:20.57%;font-size:2.27cqi;}
  .p4-panel-qty{left:31.5%;top:22.60%;font-size:2.27cqi;}

  .p4-inverter-model{
    left:30.0%;
    top:36.82%;
    width:54%;
    font-size:2.27cqi;
    white-space:normal;
    line-height:1.05;
  }

  .p4-battery-capacity{
    left:39.5%;
    top:53.09%;
    width:43%;
    font-size:2.27cqi;
    white-space:normal;
    line-height:1.05;
  }

  /* Page 5 */
  .p5-size{
    left:51.8%;
    top:13.88%;
    width:36%;
    font-size:2.27cqi;
  }

  .pdf-price-names,
  .pdf-price-values{
    position:absolute;
    top:20.45%;
    height:8.30%;
    overflow:hidden;
    display:flex;
    flex-direction:column;
    justify-content:center;
    gap:.35cqi;
    box-sizing:border-box;
    font-family:Arial, Helvetica, sans-serif;
    font-size:1.95cqi;
    line-height:1.05;
    font-weight:400;
    color:#173f7e;
  }

  .pdf-price-names{
    left:26.21%;
    width:31.57%;
    padding:0 1.0cqi;
    text-align:left;
  }

  .pdf-price-values{
    left:57.86%;
    width:16.11%;
    padding:0 .8cqi;
    text-align:right;
    align-items:flex-end;
  }

  .pdf-price-line{
    width:100%;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  


  

  

  /* V78: paginación PDF definitiva — 13 páginas, sin hojas intermedias */

  /* V79: impresión definitiva — un único sistema de paginación */
  @media print {
    @page {
      size: 8.5in 11in;
      margin: 0;
    }

    html,
    body {
      width: 8.5in !important;
      margin: 0 !important;
      padding: 0 !important;
      background: #fff !important;
      overflow: visible !important;
      -webkit-print-color-adjust: exact !important;
      print-color-adjust: exact !important;
    }

    .topbar,
    #analysisModule,
    .proposal-module-toolbar {
      display: none !important;
    }

    #proposalModule {
      display: block !important;
      width: 8.5in !important;
      max-width: 8.5in !important;
      margin: 0 !important;
      padding: 0 !important;
      overflow: visible !important;
    }

    #proposalPreviewStack,
    .proposal-preview-stack,
    .pdf-template-stack {
      display: block !important;
      width: 8.5in !important;
      max-width: 8.5in !important;
      margin: 0 !important;
      padding: 0 !important;
      gap: 0 !important;
      overflow: visible !important;
    }

    .proposal-pdf-page {
      display: block !important;
      position: relative !important;
      width: 8.5in !important;
      min-width: 8.5in !important;
      max-width: 8.5in !important;
      height: 10.98in !important;
      min-height: 10.98in !important;
      max-height: 10.98in !important;
      margin: 0 !important;
      padding: 0 !important;
      box-sizing: border-box !important;
      overflow: hidden !important;
      box-shadow: none !important;
      aspect-ratio: auto !important;
      break-inside: avoid !important;
      page-break-inside: avoid !important;

      /* Critical: never force a break AFTER a page */
      break-after: auto !important;
      page-break-after: auto !important;
    }

    /* Critical: only pages 2–13 force a new sheet BEFORE themselves */
    .proposal-pdf-page + .proposal-pdf-page {
      break-before: page !important;
      page-break-before: always !important;
    }

    .proposal-pdf-page > img {
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      max-width: none !important;
      max-height: none !important;
      object-fit: fill !important;
      display: block !important;
      margin: 0 !important;
      padding: 0 !important;
    }

    .pdf-overlay {
      position: absolute !important;
      inset: 0 !important;
      width: 100% !important;
      height: 100% !important;
      overflow: hidden !important;
    }
  }


  /* V80: ocultar la palabra "Financiamiento" al pie de la página 6 */
  .page6-remove-financing{
    position:absolute;
    left:10.8%;
    top:86.6%;
    width:23.5%;
    height:4.6%;
    background:#fff;
    z-index:3;
    pointer-events:none;
  }

  @media print{
    .page6-remove-financing{
      background:#fff !important;
    }
  }


  /* V82 · CENERGYS Modern Energy — páginas 1–3 rediseñadas nativamente */
  .modern-proposal-page{
    background:#f7f9fc;
    color:#183b70;
    font-family:Arial, Helvetica, sans-serif;
  }

  .modern-page-inner{
    position:absolute;
    inset:0;
    padding:0.58in 0.62in 0.46in;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
  }

  .modern-doc-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    padding-bottom:0.18in;
    border-bottom:2px solid #d9e6f5;
  }

  .modern-brand-lockup{
    line-height:1;
  }

  .modern-brand-main{
    font-size:20pt;
    font-weight:900;
    letter-spacing:.035em;
    color:#0b3d91;
  }

  .modern-brand-sub{
    margin-top:4px;
    font-size:7.5pt;
    font-weight:800;
    letter-spacing:.18em;
    color:#f47a1f;
  }

  .modern-brand-lockup.compact .modern-brand-main{
    font-size:17pt;
  }

  .modern-brand-lockup.compact .modern-brand-sub{
    font-size:6.8pt;
  }

  .modern-doc-type,
  .modern-doc-section{
    font-size:8.4pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#6a7f9f;
    padding-top:3px;
  }

  .modern-eyebrow,
  .modern-mini-label{
    font-size:8pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#f47a1f;
  }

  .modern-doc-footer{
    margin-top:auto;
    padding-top:0.14in;
    border-top:1px solid #dce5f0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:7.5pt;
    font-weight:700;
    color:#6a7f9f;
  }

  /* Cover */
  .cover-modern{
    background:#f7f9fc;
  }

  .modern-cover-accent{
    position:absolute;
    right:0;
    top:0;
    width:23%;
    height:100%;
    background:linear-gradient(180deg,#0b3d91 0%,#082d6a 72%,#061f4d 100%);
  }

  .cover-inner{
    padding-right:1.25in;
  }

  .cover-header{
    border-bottom-color:#d4e1f2;
  }

  .modern-cover-hero{
    margin-top:0.62in;
    width:72%;
  }

  .modern-cover-hero h1{
    margin:0.12in 0 0.16in;
    font-size:35pt;
    line-height:1.03;
    letter-spacing:-.025em;
    color:#173f7e;
  }

  .modern-cover-hero h1 span{
    color:#f47a1f;
  }

  .modern-cover-hero p{
    width:88%;
    margin:0;
    font-size:12pt;
    line-height:1.5;
    color:#5f7393;
  }

  .modern-cover-client-card{
    margin-top:0.68in;
    width:78%;
    display:grid;
    grid-template-columns:1.05fr 1fr;
    gap:0.28in;
    padding:0.26in 0.28in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(12,57,120,.08);
  }

  .modern-client-name{
    margin-top:0.08in;
    font-size:18pt;
    font-weight:800;
    color:#133b78;
  }

  .modern-client-location{
    margin-top:0.06in;
    font-size:9.5pt;
    color:#6c7f9c;
  }

  .modern-cover-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.12in 0.18in;
  }

  .modern-meta-item span{
    display:block;
    font-size:7pt;
    font-weight:800;
    color:#7b8da8;
    text-transform:uppercase;
    letter-spacing:.07em;
  }

  .modern-meta-item strong{
    display:block;
    margin-top:3px;
    font-size:8.6pt;
    line-height:1.2;
    color:#183f7b;
    word-break:break-word;
  }

  .modern-cover-consultant{
    margin-top:0.34in;
    width:78%;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    padding:0 0.02in;
  }

  .modern-cover-consultant strong{
    display:block;
    margin-top:5px;
    font-size:10.5pt;
    color:#173f7e;
  }

  .modern-cover-consultant span{
    display:block;
    margin-top:3px;
    font-size:8pt;
    color:#6f819e;
  }

  .modern-cover-contact{
    text-align:right;
  }

  .cover-footer{
    width:78%;
  }

  /* Page 2 */
  .modern-intro-block{
    margin-top:0.43in;
    max-width:91%;
  }

  .modern-intro-block h2{
    margin:0.12in 0 0.14in;
    max-width:88%;
    font-size:25pt;
    line-height:1.08;
    letter-spacing:-.02em;
    color:#173f7e;
  }

  .modern-intro-block p{
    margin:0;
    max-width:88%;
    font-size:10.6pt;
    line-height:1.55;
    color:#5d7190;
  }

  .modern-trust-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0.15in;
    margin-top:0.32in;
  }

  .modern-trust-card{
    min-height:1.48in;
    padding:0.18in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:16px;
  }

  .modern-trust-number,
  .modern-trust-icon{
    height:0.35in;
    display:flex;
    align-items:center;
    font-size:19pt;
    font-weight:900;
    color:#0b3d91;
  }

  .modern-trust-icon{
    color:#f47a1f;
  }

  .modern-trust-title{
    margin-top:0.04in;
    font-size:10pt;
    font-weight:800;
    color:#173f7e;
  }

  .modern-trust-card p{
    margin:0.08in 0 0;
    font-size:8pt;
    line-height:1.42;
    color:#6b7d98;
  }

  .modern-mission-panel{
    display:grid;
    grid-template-columns:1.25fr .9fr;
    gap:0.22in;
    margin-top:0.34in;
  }

  .modern-mission-copy{
    padding:0.2in 0.22in;
    background:#eef5fd;
    border-radius:17px;
  }

  .modern-mission-copy h3{
    margin:0.08in 0 0.08in;
    font-size:14pt;
    color:#173f7e;
  }

  .modern-mission-copy p{
    margin:0.08in 0 0;
    font-size:8.5pt;
    line-height:1.5;
    color:#58708f;
  }

  .modern-quote-block{
    position:relative;
    padding:0.2in;
    border-radius:17px;
    background:#0b3d91;
    color:#fff;
  }

  .modern-quote-mark{
    position:absolute;
    right:0.16in;
    top:0.05in;
    font-size:34pt;
    opacity:.18;
  }

  .modern-quote-block p{
    margin:0.08in 0 0.18in;
    font-size:8.7pt;
    line-height:1.52;
  }

  .modern-quote-block strong{
    display:block;
    font-size:8.5pt;
  }

  .modern-quote-block span{
    display:block;
    margin-top:3px;
    font-size:7.3pt;
    opacity:.72;
  }

  /* Page 3 */
  .modern-analysis-intro{
    margin-top:0.38in;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:0.34in;
    align-items:end;
  }

  .modern-analysis-intro h2{
    margin:0.1in 0 0;
    font-size:23pt;
    line-height:1.08;
    color:#173f7e;
  }

  .modern-analysis-intro p{
    margin:0;
    font-size:9pt;
    line-height:1.52;
    color:#657994;
  }

  .modern-metric-grid{
    margin-top:0.32in;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0.12in;
  }

  .modern-analysis-card{
    min-height:1.22in;
    padding:0.16in;
    box-sizing:border-box;
    border-radius:15px;
    background:#fff;
    border:1px solid #dce7f4;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .modern-analysis-card.accent-card{
    border-color:#f3c49b;
    background:#fff8f2;
  }

  .modern-analysis-card .metric-label{
    font-size:7.2pt;
    font-weight:800;
    line-height:1.25;
    color:#687e9d;
    text-transform:uppercase;
    letter-spacing:.045em;
  }

  .modern-analysis-card strong{
    margin-top:0.08in;
    font-size:18pt;
    line-height:1;
    color:#0b3d91;
  }

  .modern-analysis-card.accent-card strong{
    color:#e66f18;
  }

  .modern-analysis-card small{
    margin-top:4px;
    font-size:7pt;
    color:#8797ad;
  }

  .modern-system-highlight{
    margin-top:0.34in;
    padding:0.27in;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:.82fr 1.3fr;
    gap:0.28in;
    border-radius:20px;
    background:linear-gradient(135deg,#0b3d91 0%,#0a3278 100%);
    color:#fff;
  }

  .modern-system-size{
    margin-top:0.08in;
    font-size:31pt;
    font-weight:900;
    line-height:1;
    color:#fff;
  }

  .modern-system-size-label{
    margin-top:5px;
    font-size:8pt;
    color:rgba(255,255,255,.72);
  }

  .modern-system-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    align-items:center;
    border-left:1px solid rgba(255,255,255,.2);
  }

  .modern-system-stat{
    padding:0 0.14in;
    min-height:0.75in;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid rgba(255,255,255,.14);
  }

  .modern-system-stat:last-child{
    border-right:0;
  }

  .modern-system-stat span{
    font-size:7pt;
    line-height:1.25;
    color:rgba(255,255,255,.68);
  }

  .modern-system-stat strong{
    margin-top:5px;
    font-size:14pt;
    color:#fff;
  }

  .modern-analysis-note{
    margin-top:0.26in;
    padding:0.15in 0.17in;
    display:flex;
    gap:0.12in;
    align-items:flex-start;
    background:#eef5fd;
    border-radius:14px;
  }

  .modern-note-icon{
    width:0.25in;
    height:0.25in;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    background:#0b3d91;
    color:#fff;
    font-size:8pt;
    font-weight:800;
  }

  .modern-analysis-note p{
    margin:0;
    font-size:7.7pt;
    line-height:1.45;
    color:#617590;
  }

  @media print{
    .modern-proposal-page{
      background:#f7f9fc !important;
    }
  }


  /* V83 · refinamientos de identidad visual usando logo real de la compañía */
  .modern-proposal-page{
    background:#f7f9fc;
    color:#183b70;
    font-family:Arial, Helvetica, sans-serif;
  }

  .modern-page-inner{
    position:absolute;
    inset:0;
    padding:0.58in 0.62in 0.46in;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
  }

  .modern-doc-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    padding-bottom:0.18in;
    border-bottom:2px solid #d9e6f5;
    position:relative;
    z-index:2;
  }

  .modern-brand-main{
    font-size:20pt;
    font-weight:900;
    letter-spacing:.035em;
    color:#0b3d91;
  }

  .modern-brand-sub{
    margin-top:4px;
    font-size:7.5pt;
    font-weight:800;
    letter-spacing:.18em;
    color:#f47a1f;
  }

  .modern-doc-type,
  .modern-doc-section{
    font-size:8.4pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#6a7f9f;
    padding-top:3px;
  }

  .modern-eyebrow,
  .modern-mini-label{
    font-size:8pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#f47a1f;
  }

  .modern-mini-label.light{
    color:rgba(255,255,255,.8);
  }

  .modern-logo-image{
    display:block;
    height:0.86in;
    width:auto;
    object-fit:contain;
  }

  .modern-logo-image.small{
    height:0.48in;
  }

  .modern-doc-footer{
    margin-top:auto;
    padding-top:0.14in;
    border-top:1px solid #dce5f0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:7.5pt;
    font-weight:700;
    color:#6a7f9f;
    position:relative;
    z-index:2;
  }

  /* Cover page improvements */
  .cover-modern{
    overflow:hidden;
    background:
      radial-gradient(circle at 16% 18%, rgba(255,255,255,.95) 0%, rgba(255,255,255,0) 34%),
      linear-gradient(180deg,#f8fbff 0%,#f4f7fb 100%);
  }

  .cover-shape{
    position:absolute;
    pointer-events:none;
  }

  .cover-shape-blue{
    left:-0.7in;
    top:-0.35in;
    width:5.2in;
    height:2.25in;
    background:linear-gradient(135deg,#0b3d91 0%, #0a3278 100%);
    clip-path:polygon(0 0,100% 0,74% 100%,0 100%);
    box-shadow:0 10px 24px rgba(10,50,120,.16);
  }

  .cover-shape-orange{
    right:-0.75in;
    bottom:-0.38in;
    width:4.9in;
    height:1.95in;
    background:linear-gradient(135deg,#ff8b26 0%, #f36e11 100%);
    clip-path:polygon(24% 0,100% 0,100% 100%,0 100%);
    box-shadow:0 -8px 20px rgba(243,110,17,.18);
  }

  .cover-grid-lines{
    position:absolute;
    left:0.62in;
    top:1.35in;
    width:3.4in;
    height:3.7in;
    border-left:2px solid rgba(11,61,145,.08);
    border-top:2px solid rgba(11,61,145,.08);
    z-index:0;
  }

  .cover-inner{
    padding-right:0.75in;
  }

  .cover-header{
    border-bottom-color:#d4e1f2;
  }

  .modern-brand-block{
    padding:0.08in 0.16in 0.05in;
    background:rgba(255,255,255,.94);
    border:1px solid #dce7f5;
    border-radius:16px;
    box-shadow:0 10px 24px rgba(13,57,120,.07);
  }

  .modern-cover-hero{
    margin-top:0.52in;
    width:74%;
    position:relative;
    z-index:2;
  }

  .modern-cover-hero h1{
    margin:0.12in 0 0.16in;
    font-size:35pt;
    line-height:1.03;
    letter-spacing:-.025em;
    color:#173f7e;
  }

  .modern-cover-hero h1 span{
    color:#f47a1f;
  }

  .modern-cover-hero p{
    width:92%;
    margin:0;
    font-size:11pt;
    line-height:1.6;
    color:#5f7393;
  }

  .modern-cover-client-card{
    margin-top:0.58in;
    width:82%;
    display:grid;
    grid-template-columns:1.02fr 1fr;
    gap:0.28in;
    padding:0.26in 0.28in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(12,57,120,.08);
    position:relative;
    z-index:2;
  }

  .modern-client-name{
    margin-top:0.08in;
    font-size:18pt;
    font-weight:800;
    color:#133b78;
  }

  .modern-client-location{
    margin-top:0.06in;
    font-size:9.5pt;
    color:#6c7f9c;
  }

  .modern-cover-meta{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.12in 0.18in;
  }

  .modern-meta-item span{
    display:block;
    font-size:7pt;
    font-weight:800;
    color:#7b8da8;
    text-transform:uppercase;
    letter-spacing:.07em;
  }

  .modern-meta-item strong{
    display:block;
    margin-top:3px;
    font-size:8.6pt;
    line-height:1.2;
    color:#183f7b;
    word-break:break-word;
  }

  .modern-cover-consultant{
    margin-top:0.28in;
    width:82%;
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    padding:0 0.02in;
    position:relative;
    z-index:2;
  }

  .modern-cover-consultant strong{
    display:block;
    margin-top:5px;
    font-size:10.5pt;
    color:#173f7e;
  }

  .modern-cover-consultant span{
    display:block;
    margin-top:3px;
    font-size:8pt;
    color:#6f819e;
  }

  .modern-cover-contact{
    text-align:right;
  }

  .modern-cover-strip{
    margin-top:0.28in;
    width:82%;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0.12in;
    position:relative;
    z-index:2;
  }

  .cover-strip-item{
    background:#fff;
    border:1px solid #dce7f5;
    border-radius:14px;
    padding:0.12in 0.14in;
    min-height:0.8in;
    box-sizing:border-box;
  }

  .cover-strip-item span{
    display:block;
    font-size:7pt;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
    color:#7b8da8;
  }

  .cover-strip-item strong{
    display:block;
    margin-top:7px;
    font-size:10pt;
    line-height:1.3;
    color:#173f7e;
  }

  .cover-footer{
    width:82%;
  }

  /* Page 2 */
  .modern-intro-block{
    margin-top:0.43in;
    max-width:91%;
  }

  .modern-intro-block h2{
    margin:0.12in 0 0.14in;
    max-width:88%;
    font-size:25pt;
    line-height:1.08;
    letter-spacing:-.02em;
    color:#173f7e;
  }

  .modern-intro-block p{
    margin:0;
    max-width:88%;
    font-size:10.6pt;
    line-height:1.55;
    color:#5d7190;
  }

  .modern-trust-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0.15in;
    margin-top:0.32in;
  }

  .modern-trust-card{
    min-height:1.48in;
    padding:0.18in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:16px;
  }

  .modern-trust-number,
  .modern-trust-icon{
    height:0.38in;
    display:flex;
    align-items:center;
    font-size:19pt;
    font-weight:900;
    color:#0b3d91;
  }

  .modern-trust-icon{
    color:#f47a1f;
  }

  .modern-trust-title{
    margin-top:0.04in;
    font-size:10pt;
    font-weight:800;
    color:#173f7e;
  }

  .modern-trust-card p{
    margin:0.08in 0 0;
    font-size:8pt;
    line-height:1.42;
    color:#6b7d98;
  }

  .storage-card .modern-trust-title{
    margin-top:0.08in;
  }

  .modern-battery-icon{
    position:relative;
    width:0.62in;
    height:0.30in;
    border:3px solid #f47a1f;
    border-radius:7px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    gap:3px;
    padding:0 4px;
  }

  .modern-battery-icon::after{
    content:"";
    position:absolute;
    right:-7px;
    top:50%;
    transform:translateY(-50%);
    width:5px;
    height:0.11in;
    border-radius:0 3px 3px 0;
    background:#f47a1f;
  }

  .modern-battery-icon .cell{
    display:block;
    height:0.12in;
    flex:1 1 auto;
    border-radius:2px;
    background:#f7b172;
  }

  .modern-battery-icon .cell.c1{background:#ffb877;}
  .modern-battery-icon .cell.c2{background:#f89846;}
  .modern-battery-icon .cell.c3{background:#f47a1f;}

  .modern-mission-panel{
    display:grid;
    grid-template-columns:1.25fr .9fr;
    gap:0.22in;
    margin-top:0.34in;
  }

  .modern-mission-copy{
    padding:0.2in 0.22in;
    background:#eef5fd;
    border-radius:17px;
  }

  .modern-mission-copy h3{
    margin:0.08in 0 0.08in;
    font-size:14pt;
    color:#173f7e;
  }

  .modern-mission-copy p{
    margin:0.08in 0 0;
    font-size:8.5pt;
    line-height:1.5;
    color:#58708f;
  }

  .modern-quote-block{
    position:relative;
    padding:0.2in;
    border-radius:17px;
    background:#0b3d91;
    color:#fff;
  }

  .modern-quote-mark{
    position:absolute;
    right:0.16in;
    top:0.05in;
    font-size:34pt;
    opacity:.18;
  }

  .modern-quote-block p{
    margin:0.08in 0 0.18in;
    font-size:8.7pt;
    line-height:1.52;
  }

  .modern-quote-block strong{
    display:block;
    font-size:8.5pt;
  }

  .modern-quote-block span{
    display:block;
    margin-top:3px;
    font-size:7.3pt;
    opacity:.72;
  }

  /* Page 3 */
  .modern-analysis-intro{
    margin-top:0.38in;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:0.34in;
    align-items:end;
  }

  .modern-analysis-intro h2{
    margin:0.1in 0 0;
    font-size:23pt;
    line-height:1.08;
    color:#173f7e;
  }

  .modern-analysis-intro p{
    margin:0;
    font-size:9pt;
    line-height:1.52;
    color:#657994;
  }

  .modern-metric-grid{
    margin-top:0.32in;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0.12in;
  }

  .modern-analysis-card{
    min-height:1.22in;
    padding:0.16in;
    box-sizing:border-box;
    border-radius:15px;
    background:#fff;
    border:1px solid #dce7f4;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .modern-analysis-card.accent-card{
    border-color:#f3c49b;
    background:#fff8f2;
  }

  .modern-analysis-card .metric-label{
    font-size:7.2pt;
    font-weight:800;
    line-height:1.25;
    color:#687e9d;
    text-transform:uppercase;
    letter-spacing:.045em;
  }

  .modern-analysis-card strong{
    margin-top:0.08in;
    font-size:18pt;
    line-height:1;
    color:#0b3d91;
  }

  .modern-analysis-card.accent-card strong{
    color:#e66f18;
  }

  .modern-analysis-card small{
    margin-top:4px;
    font-size:7pt;
    color:#8797ad;
  }

  .modern-system-highlight{
    margin-top:0.34in;
    padding:0.27in;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:.82fr 1.3fr;
    gap:0.28in;
    border-radius:20px;
    background:linear-gradient(135deg,#0b3d91 0%,#0a3278 100%);
    color:#fff;
  }

  .modern-system-size{
    margin-top:0.08in;
    font-size:31pt;
    font-weight:900;
    line-height:1;
    color:#fff;
  }

  .modern-system-size-label{
    margin-top:5px;
    font-size:8pt;
    color:rgba(255,255,255,.72);
  }

  .modern-system-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    align-items:center;
    border-left:1px solid rgba(255,255,255,.2);
  }

  .modern-system-stat{
    padding:0 0.14in;
    min-height:0.82in;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid rgba(255,255,255,.14);
  }

  .modern-system-stat:last-child{
    border-right:0;
  }

  .modern-system-stat span{
    font-size:7pt;
    line-height:1.25;
    color:rgba(255,255,255,.68);
  }

  .modern-system-stat strong{
    margin-top:5px;
    font-size:16pt;
    color:#fff;
    line-height:1.08;
  }

  .modern-system-stat strong.stat-emphasis{
    font-size:18pt;
    font-weight:800;
  }

  .modern-system-stat strong.stat-emphasis span{
    font-size:21pt;
    color:#fff;
  }

  .modern-system-stat strong.stat-emphasis small{
    font-size:10pt;
    color:rgba(255,255,255,.78);
  }

  .modern-analysis-note{
    margin-top:0.26in;
    padding:0.15in 0.17in;
    display:flex;
    gap:0.12in;
    align-items:flex-start;
    background:#eef5fd;
    border-radius:14px;
  }

  .modern-note-icon{
    width:0.25in;
    height:0.25in;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    background:#0b3d91;
    color:#fff;
    font-size:8pt;
    font-weight:800;
  }

  .modern-analysis-note p{
    margin:0;
    font-size:7.7pt;
    line-height:1.45;
    color:#617590;
  }


  /* V85 · refinamiento de logo y rediseño visual páginas 1–3 */
  .v85-page{
    background:#f7f9fc;
    color:#183b70;
    font-family:Arial, Helvetica, sans-serif;
    overflow:hidden;
  }

  .v85-inner{
    position:absolute;
    inset:0;
    padding:0.58in 0.62in 0.46in;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
  }

  .v85-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:0.2in;
    padding-bottom:0.16in;
    border-bottom:2px solid #dbe6f4;
    position:relative;
    z-index:2;
  }

  .v85-logo-shell{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:rgba(255,255,255,.97);
    border:1px solid #dce5f2;
    border-radius:16px;
    box-shadow:0 10px 22px rgba(13,57,120,.07);
    box-sizing:border-box;
  }

  .v85-logo-shell-cover{
    padding:0.10in 0.18in;
  }

  .v85-logo-shell-small{
    padding:0.08in 0.14in;
  }

  .v85-logo{
    display:block;
    width:auto;
    object-fit:contain;
  }

  .v85-logo-cover{
    height:0.72in;
  }

  .v85-logo-small{
    height:0.38in;
  }

  .v85-doc-kicker{
    padding-top:3px;
    font-size:8.5pt;
    font-weight:800;
    letter-spacing:.14em;
    color:#6c7f9f;
  }

  .v85-eyebrow, .v85-mini-label{
    font-size:8pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#f47a1f;
  }

  .v85-mini-light{
    color:rgba(255,255,255,.82);
  }

  .v85-footer{
    margin-top:auto;
    padding-top:0.14in;
    border-top:1px solid #dce5f0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:7.5pt;
    font-weight:700;
    color:#6a7f9f;
    position:relative;
    z-index:2;
  }

  /* Cover */
  .v85-cover{
    background:linear-gradient(180deg,#f8fbff 0%, #f4f7fb 100%);
  }

  .v85-cover-bg{
    position:absolute;
    inset:0;
    overflow:hidden;
  }

  .v85-shape{
    position:absolute;
    pointer-events:none;
  }

  .v85-shape-blue-top{
    left:-0.55in;
    top:-0.26in;
    width:5.15in;
    height:2.0in;
    background:linear-gradient(135deg,#0b3d91 0%,#0a3278 100%);
    clip-path:polygon(0 0,100% 0,78% 100%,0 100%);
    opacity:.98;
  }

  .v85-shape-blue-right{
    right:-1.15in;
    top:1.55in;
    width:3.7in;
    height:6.4in;
    background:linear-gradient(180deg,#0c408f 0%,#082f71 100%);
    border-radius:1.0in 0 0 1.0in;
    transform:rotate(-12deg);
    opacity:.13;
  }

  .v85-shape-orange-bottom{
    right:-0.48in;
    bottom:-0.30in;
    width:4.6in;
    height:1.75in;
    background:linear-gradient(135deg,#ff9129 0%,#f36e11 100%);
    clip-path:polygon(20% 0,100% 0,100% 100%,0 100%);
    opacity:.96;
  }

  .v85-grid{
    position:absolute;
    left:0.55in;
    top:1.32in;
    width:3.2in;
    height:3.6in;
    background-image:
      linear-gradient(rgba(11,61,145,.07) 1px, transparent 1px),
      linear-gradient(90deg, rgba(11,61,145,.07) 1px, transparent 1px);
    background-size:0.46in 0.46in;
    mask-image:linear-gradient(180deg, rgba(0,0,0,.62), transparent 80%);
    -webkit-mask-image:linear-gradient(180deg, rgba(0,0,0,.62), transparent 80%);
  }

  .v85-cover-header{
    border-bottom-color:#d4e1f2;
  }

  .v85-cover-hero{
    margin-top:0.54in;
    width:73%;
    position:relative;
    z-index:2;
  }

  .v85-cover-hero h1{
    margin:0.12in 0 0.16in;
    font-size:35pt;
    line-height:1.03;
    letter-spacing:-.025em;
    color:#173f7e;
  }

  .v85-cover-hero h1 span{
    color:#f47a1f;
  }

  .v85-cover-hero p{
    margin:0;
    width:91%;
    font-size:11pt;
    line-height:1.58;
    color:#5f7393;
  }

  .v85-cover-client-card{
    margin-top:0.60in;
    width:82%;
    display:grid;
    grid-template-columns:1.02fr 1fr;
    gap:0.28in;
    padding:0.26in 0.28in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:18px;
    box-shadow:0 12px 28px rgba(12,57,120,.08);
    position:relative;
    z-index:2;
  }

  .v85-client-name{
    margin-top:0.08in;
    font-size:18pt;
    font-weight:800;
    color:#133b78;
  }

  .v85-client-town{
    margin-top:0.06in;
    font-size:9.6pt;
    color:#6c7f9c;
  }

  .v85-meta-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.12in 0.18in;
  }

  .v85-meta-item span{
    display:block;
    font-size:7pt;
    font-weight:800;
    color:#7b8da8;
    text-transform:uppercase;
    letter-spacing:.07em;
  }

  .v85-meta-item strong{
    display:block;
    margin-top:3px;
    font-size:8.7pt;
    line-height:1.2;
    color:#183f7b;
    word-break:break-word;
  }

  .v85-cover-bottom{
    width:82%;
    margin-top:0.28in;
    display:grid;
    grid-template-columns:0.88fr 1.35fr;
    gap:0.14in;
    position:relative;
    z-index:2;
    align-items:stretch;
  }

  .v85-consultant-card{
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:15px;
    padding:0.16in;
    box-sizing:border-box;
  }

  .v85-consultant-card strong{
    display:block;
    margin-top:5px;
    font-size:10.5pt;
    color:#173f7e;
  }

  .v85-consultant-card span{
    display:block;
    margin-top:3px;
    font-size:8pt;
    color:#6f819e;
  }

  .v85-highlight-strip{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0.10in;
  }

  .v85-highlight-item{
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:15px;
    padding:0.14in;
    box-sizing:border-box;
    min-height:0.92in;
  }

  .v85-highlight-item small{
    display:block;
    font-size:7pt;
    font-weight:800;
    color:#7b8da8;
    text-transform:uppercase;
    letter-spacing:.06em;
  }

  .v85-highlight-item strong{
    display:block;
    margin-top:7px;
    font-size:9.8pt;
    line-height:1.28;
    color:#173f7e;
  }

  /* Page 2 */
  .v85-intro-block{
    margin-top:0.43in;
    max-width:91%;
  }

  .v85-intro-block h2{
    margin:0.12in 0 0.14in;
    max-width:88%;
    font-size:25pt;
    line-height:1.08;
    letter-spacing:-.02em;
    color:#173f7e;
  }

  .v85-intro-block p{
    margin:0;
    max-width:88%;
    font-size:10.6pt;
    line-height:1.55;
    color:#5d7190;
  }

  .v85-feature-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0.15in;
    margin-top:0.32in;
  }

  .v85-feature-card{
    min-height:1.55in;
    padding:0.18in;
    box-sizing:border-box;
    background:#fff;
    border:1px solid #dbe7f5;
    border-radius:16px;
  }

  .v85-feature-number,
  .v85-feature-icon{
    height:0.38in;
    display:flex;
    align-items:center;
    font-size:19pt;
    font-weight:900;
    color:#0b3d91;
  }

  .v85-feature-icon.solar{
    color:#f47a1f;
  }

  .v85-feature-title{
    margin-top:0.06in;
    font-size:10pt;
    font-weight:800;
    color:#173f7e;
  }

  .v85-feature-card p{
    margin:0.08in 0 0;
    font-size:8pt;
    line-height:1.42;
    color:#6b7d98;
  }

  .v85-battery-wrap{
    display:flex;
    align-items:center;
    gap:0.08in;
    height:0.38in;
  }

  .v85-battery-icon{
    position:relative;
    width:0.74in;
    height:0.33in;
    border:3px solid #f47a1f;
    border-radius:8px;
    box-sizing:border-box;
    display:flex;
    align-items:center;
    gap:3px;
    padding:0 4px;
  }

  .v85-battery-icon::after{
    content:"";
    position:absolute;
    right:-7px;
    top:50%;
    transform:translateY(-50%);
    width:5px;
    height:0.12in;
    border-radius:0 3px 3px 0;
    background:#f47a1f;
  }

  .v85-battery-icon .seg{
    display:block;
    height:0.13in;
    flex:1 1 auto;
    border-radius:2px;
  }

  .v85-battery-icon .s1{background:#ffd0a2;}
  .v85-battery-icon .s2{background:#ffba77;}
  .v85-battery-icon .s3{background:#f89846;}
  .v85-battery-icon .s4{background:#f47a1f;}

  .v85-battery-bolt{
    font-size:16pt;
    line-height:1;
    color:#0b3d91;
    transform:translateY(-1px);
  }

  .v85-mission-grid{
    display:grid;
    grid-template-columns:1.25fr .9fr;
    gap:0.22in;
    margin-top:0.34in;
  }

  .v85-mission-card{
    padding:0.2in 0.22in;
    background:#eef5fd;
    border-radius:17px;
  }

  .v85-mission-card h3{
    margin:0.08in 0 0.08in;
    font-size:14pt;
    color:#173f7e;
  }

  .v85-mission-card p{
    margin:0.08in 0 0;
    font-size:8.5pt;
    line-height:1.5;
    color:#58708f;
  }

  .v85-quote-card{
    position:relative;
    padding:0.2in;
    border-radius:17px;
    background:#0b3d91;
    color:#fff;
  }

  .v85-quote-mark{
    position:absolute;
    right:0.16in;
    top:0.05in;
    font-size:34pt;
    opacity:.18;
  }

  .v85-quote-card p{
    margin:0.08in 0 0.18in;
    font-size:8.7pt;
    line-height:1.52;
  }

  .v85-quote-card strong{
    display:block;
    font-size:8.5pt;
  }

  .v85-quote-card span{
    display:block;
    margin-top:3px;
    font-size:7.3pt;
    opacity:.72;
  }

  /* Page 3 */
  .v85-analysis-head{
    margin-top:0.38in;
    display:grid;
    grid-template-columns:1.1fr .9fr;
    gap:0.34in;
    align-items:end;
  }

  .v85-analysis-head h2{
    margin:0.1in 0 0;
    font-size:23pt;
    line-height:1.08;
    color:#173f7e;
  }

  .v85-analysis-head p{
    margin:0;
    font-size:9pt;
    line-height:1.52;
    color:#657994;
  }

  .v85-metric-grid{
    margin-top:0.32in;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:0.12in;
  }

  .v85-metric-card{
    min-height:1.22in;
    padding:0.16in;
    box-sizing:border-box;
    border-radius:15px;
    background:#fff;
    border:1px solid #dce7f4;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .v85-accent-card{
    border-color:#f3c49b;
    background:#fff8f2;
  }

  .v85-metric-label{
    font-size:7.2pt;
    font-weight:800;
    line-height:1.25;
    color:#687e9d;
    text-transform:uppercase;
    letter-spacing:.045em;
  }

  .v85-metric-card strong{
    margin-top:0.08in;
    font-size:18pt;
    line-height:1;
    color:#0b3d91;
  }

  .v85-accent-card strong{
    color:#e66f18;
  }

  .v85-metric-card small{
    margin-top:4px;
    font-size:7pt;
    color:#8797ad;
  }

  .v85-system-panel{
    margin-top:0.34in;
    padding:0.27in;
    box-sizing:border-box;
    display:grid;
    grid-template-columns:.82fr 1.3fr;
    gap:0.28in;
    border-radius:20px;
    background:linear-gradient(135deg,#0b3d91 0%,#0a3278 100%);
    color:#fff;
  }

  .v85-system-size{
    margin-top:0.08in;
    font-size:31pt;
    font-weight:900;
    line-height:1;
    color:#fff;
  }

  .v85-system-caption{
    margin-top:5px;
    font-size:8pt;
    color:rgba(255,255,255,.72);
  }

  .v85-system-stats{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    align-items:center;
    border-left:1px solid rgba(255,255,255,.2);
  }

  .v85-system-stat{
    padding:0 0.14in;
    min-height:0.82in;
    display:flex;
    flex-direction:column;
    justify-content:center;
    border-right:1px solid rgba(255,255,255,.14);
  }

  .v85-system-stat:last-child{
    border-right:0;
  }

  .v85-system-stat span{
    font-size:7pt;
    line-height:1.25;
    color:rgba(255,255,255,.68);
  }

  .v85-system-stat strong{
    margin-top:5px;
    font-size:14.5pt;
    color:#fff;
    line-height:1.08;
    font-style:normal;
  }

  .v85-system-stat .v85-stat-strong{
    display:flex;
    align-items:baseline;
    gap:6px;
    margin-top:7px;
  }

  .v85-system-stat .v85-stat-strong em{
    font-style:normal;
    font-size:21pt;
    font-weight:800;
    color:#fff;
    line-height:1;
  }

  .v85-system-stat .v85-stat-strong small{
    font-size:10pt;
    font-weight:700;
    color:rgba(255,255,255,.78);
  }

  .v85-note-box{
    margin-top:0.26in;
    padding:0.15in 0.17in;
    display:flex;
    gap:0.12in;
    align-items:flex-start;
    background:#eef5fd;
    border-radius:14px;
  }

  .v85-note-badge{
    width:0.25in;
    height:0.25in;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    background:#0b3d91;
    color:#fff;
    font-size:8pt;
    font-weight:800;
  }

  .v85-note-box p{
    margin:0;
    font-size:7.7pt;
    line-height:1.45;
    color:#617590;
  }

  @media print{
    .v85-page{
      background:#f7f9fc !important;
    }
  }


  /* V86 · ajustes finos solicitados por el usuario para el logo */
  .v86-cover-brand{
    display:flex;
    align-items:center;
    min-height:0.90in;
    padding-left:0.02in;
  }

  .v86-logo-cover{
    height:0.90in;
    width:auto;
    object-fit:contain;
    display:block;
  }

  /* logos interiores un poco más grandes */
  .v85-logo-small{
    height:0.46in !important;
  }

  .v85-logo-shell-small{
    padding:0.06in 0.12in !important;
    border-radius:14px;
  }

  /* portada: quitar el look de recuadro y armonizar mejor con la composición */
  .v85-cover-header{
    align-items:flex-start;
    min-height:0.95in;
  }

  .v85-cover-header .v85-doc-kicker{
    padding-top:0.14in;
  }

  /* desactivamos la caja blanca anterior de la portada si aún existiera */
  .v85-logo-shell-cover{
    background:transparent !important;
    border:none !important;
    box-shadow:none !important;
    padding:0 !important;
  }

  /* reajuste de los acentos para que el logo no se sienta fuera del área */
  .v85-shape-blue-top{
    left:-0.70in;
    top:-0.36in;
    width:4.75in;
    height:1.95in;
    clip-path:polygon(0 0,100% 0,81% 100%,0 100%);
    opacity:.98;
  }

  .v85-grid{
    left:0.70in;
    top:1.42in;
    width:3.0in;
    height:3.2in;
  }

  .v85-cover-hero{
    margin-top:0.48in;
  }

  .v85-cover-client-card{
    margin-top:0.54in;
  }


  /* V87 · refinamiento adicional de la portada */
  /* Mejorar integración del logo con la franja/área azul */
  .v85-cover-header{
    display:block !important;
    border-bottom:none !important;
    min-height:1.38in;
    padding-bottom:0 !important;
  }

  .v86-cover-brand{
    display:block !important;
    width:4.55in;
    min-height:auto !important;
    padding-left:0 !important;
    margin-top:0.18in;
    margin-left:0.02in;
    position:relative;
    z-index:2;
  }

  .v86-logo-cover{
    height:0.84in !important;
    width:auto;
    max-width:100%;
  }

  /* Hacer "Propuesta Energética" más visible y llamativo */
  .v85-cover-header .v85-doc-kicker{
    display:inline-block;
    margin-top:0.12in;
    margin-left:0.06in;
    padding:0.04in 0.16in 0.05in 0.16in;
    font-size:16pt !important;
    font-weight:900 !important;
    letter-spacing:.045em !important;
    color:#f47a1f !important;
    border-left:6px solid #0b3d91;
    line-height:1.05;
  }

  /* Rediseñar el acento azul superior para que no invada el logo */
  .v85-shape-blue-top{
    left:-0.78in !important;
    top:-0.42in !important;
    width:3.95in !important;
    height:1.18in !important;
    clip-path:polygon(0 0,100% 0,83% 100%,0 100%) !important;
    opacity:.98 !important;
  }

  /* Ajustar malla para que no compita con el logo */
  .v85-grid{
    left:0.76in !important;
    top:1.64in !important;
    width:2.85in !important;
    height:2.85in !important;
    opacity:.9;
  }

  .v85-cover-hero{
    margin-top:0.34in !important;
  }

  .v85-cover-client-card{
    margin-top:0.48in !important;
  }

  /* Darle un poco más de equilibrio al área superior */
  .v85-cover-bg::before{
    content:"";
    position:absolute;
    left:0.62in;
    top:1.30in;
    width:1.55in;
    height:0.06in;
    background:#f47a1f;
    border-radius:999px;
    opacity:.9;
  }


  /* V88 · Rediseño nativo páginas 4–6 */
  .v88-page{
    background:#f7f9fc;
    color:#183b70;
    font-family:Arial, Helvetica, sans-serif;
    overflow:hidden;
  }

  .v88-inner{
    position:absolute;
    inset:0;
    padding:0.58in 0.62in 0.46in;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
  }

  .v88-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:0.2in;
    padding-bottom:0.16in;
    border-bottom:2px solid #dbe6f4;
  }

  .v88-logo-wrap{
    display:flex;
    align-items:center;
  }

  .v88-logo{
    height:0.46in;
    width:auto;
    display:block;
    object-fit:contain;
  }

  .v88-section-name{
    padding-top:3px;
    font-size:8.5pt;
    font-weight:800;
    letter-spacing:.14em;
    color:#6c7f9f;
  }

  .v88-eyebrow{
    font-size:8pt;
    font-weight:800;
    letter-spacing:.13em;
    color:#f47a1f;
  }

  .v88-title-block{
    margin-top:0.34in;
  }

  .v88-title-block h2{
    margin:0.10in 0 0.10in;
    font-size:24pt;
    line-height:1.08;
    color:#173f7e;
    letter-spacing:-.02em;
  }

  .v88-title-block p{
    margin:0;
    max-width:86%;
    font-size:9.4pt;
    line-height:1.5;
    color:#657994;
  }

  .v88-summary-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:0.12in;
    margin-top:0.28in;
  }

  .v88-summary-card{
    background:#fff;
    border:1px solid #dce7f4;
    border-radius:15px;
    min-height:0.98in;
    padding:0.14in 0.16in;
    box-sizing:border-box;
  }

  .v88-summary-card span{
    display:block;
    font-size:7.1pt;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.045em;
    color:#7084a1;
  }

  .v88-summary-card strong{
    display:block;
    margin-top:0.07in;
    font-size:18pt;
    color:#0b3d91;
    line-height:1;
  }

  .v88-summary-card small{
    display:block;
    margin-top:5px;
    font-size:7.2pt;
    color:#8b9aad;
  }

  .v88-equipment-layout{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.16in;
    margin-top:0.22in;
  }

  .v88-equipment-card{
    background:#fff;
    border:1px solid #dce7f4;
    border-radius:18px;
    padding:0.20in;
    box-sizing:border-box;
    min-height:3.15in;
  }

  .v88-card-icon{
    width:0.52in;
    height:0.52in;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff4e9;
    color:#f47a1f;
    font-size:19pt;
    margin-bottom:0.13in;
  }

  .v88-card-label{
    font-size:7pt;
    font-weight:800;
    letter-spacing:.10em;
    color:#f47a1f;
  }

  .v88-card-copy h3{
    margin:0.07in 0 0.13in;
    font-size:15pt;
    color:#173f7e;
  }

  .v88-spec-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.10in;
  }

  .v88-spec-grid div{
    background:#f5f8fc;
    border-radius:10px;
    padding:0.10in;
    min-height:0.55in;
    box-sizing:border-box;
  }

  .v88-spec-grid span{
    display:block;
    font-size:6.7pt;
    text-transform:uppercase;
    font-weight:800;
    color:#8190a7;
  }

  .v88-spec-grid strong{
    display:block;
    margin-top:4px;
    font-size:8.5pt;
    line-height:1.25;
    color:#173f7e;
  }

  .battery-icon-v88{
    position:relative;
    width:0.62in;
    background:#fff4e9;
  }

  .battery-body{
    position:relative;
    width:0.34in;
    height:0.20in;
    border:2px solid #f47a1f;
    border-radius:4px;
    display:flex;
    gap:2px;
    align-items:center;
    padding:2px;
    box-sizing:border-box;
  }

  .battery-body i{
    height:100%;
    flex:1;
    background:#f47a1f;
    border-radius:1px;
    opacity:.84;
  }

  .battery-tip{
    position:absolute;
    right:0.10in;
    width:4px;
    height:0.10in;
    background:#f47a1f;
    border-radius:0 2px 2px 0;
  }

  .v88-system-list{
    display:flex;
    flex-direction:column;
    gap:0.09in;
  }

  .v88-system-option{
    border:1px solid #dce7f4;
    border-radius:12px;
    padding:0.12in;
    background:#f9fbfe;
  }

  .v88-system-option strong{
    display:block;
    font-size:9.2pt;
    color:#173f7e;
  }

  .v88-system-option span{
    display:block;
    margin-top:4px;
    font-size:7.6pt;
    color:#667b98;
  }

  .v88-system-empty{
    font-size:8pt;
    color:#7b8da8;
    font-style:italic;
  }

  .v88-install-note{
    margin-top:0.18in;
    padding:0.14in 0.16in;
    border-radius:14px;
    background:#eef5fd;
    display:flex;
    gap:0.12in;
    align-items:flex-start;
  }

  .v88-install-icon{
    width:0.28in;
    height:0.28in;
    border-radius:50%;
    background:#0b3d91;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    font-weight:800;
    font-size:8pt;
  }

  .v88-install-note strong{
    display:block;
    font-size:8.5pt;
    color:#173f7e;
  }

  .v88-install-note p{
    margin:4px 0 0;
    font-size:7.5pt;
    line-height:1.35;
    color:#657994;
  }

  /* Page 5 */
  .investment-title{
    margin-top:0.30in;
  }

  .v88-investment-summary{
    margin-top:0.25in;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.12in;
  }

  .v88-investment-summary > div{
    background:#0b3d91;
    color:#fff;
    border-radius:16px;
    padding:0.16in 0.18in;
  }

  .v88-investment-summary span{
    display:block;
    font-size:7pt;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:rgba(255,255,255,.72);
  }

  .v88-investment-summary strong{
    display:block;
    margin-top:5px;
    font-size:18pt;
    line-height:1;
  }

  .v88-price-table-wrap{
    margin-top:0.20in;
    border:1px solid #dce7f4;
    border-radius:15px;
    overflow:hidden;
    background:#fff;
  }

  .v88-price-table{
    width:100%;
    border-collapse:collapse;
    table-layout:fixed;
  }

  .v88-price-table thead th{
    padding:0.11in 0.08in;
    background:#eef5fd;
    color:#173f7e;
    font-size:6.7pt;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.03em;
    text-align:left;
  }

  .v88-price-table thead th:first-child{width:25%;}
  .v88-price-table thead th:nth-child(2){width:16%;}
  .v88-price-table thead th:nth-child(n+3){width:11.8%;}

  .v88-price-table th.num,
  .v88-price-table td.num{
    text-align:right;
  }

  .v88-price-table tbody td{
    padding:0.11in 0.08in;
    font-size:7.7pt;
    line-height:1.25;
    color:#364f73;
    border-top:1px solid #edf2f8;
    vertical-align:middle;
  }

  .v88-price-table tbody tr:nth-child(even) td{
    background:#fbfdff;
  }

  .v88-price-table tbody td:first-child strong{
    color:#173f7e;
    font-size:8.1pt;
  }

  .v88-price-table .price-strong{
    color:#0b3d91;
    font-weight:800;
    font-size:8.4pt;
  }

  .v88-empty{
    text-align:center !important;
    color:#7c8da5 !important;
    padding:0.22in !important;
    font-style:italic;
  }

  .v88-price-validity{
    margin-top:0.20in;
    padding:0.15in 0.16in;
    border-radius:14px;
    background:#fff7ef;
    border:1px solid #f6d7bc;
    display:flex;
    align-items:center;
    gap:0.14in;
  }

  .v88-validity-badge{
    width:0.50in;
    height:0.50in;
    border-radius:50%;
    flex:0 0 auto;
    background:#f47a1f;
    color:#fff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:15pt;
    font-weight:900;
  }

  .v88-price-validity strong{
    font-size:8.8pt;
    color:#8c4a18;
  }

  .v88-price-validity p,
  .v88-finance-disclaimer p{
    margin:4px 0 0;
    font-size:7.2pt;
    line-height:1.35;
    color:#78695f;
  }

  .v88-finance-disclaimer{
    margin-top:0.14in;
    padding:0.13in 0.15in;
    border-radius:12px;
    background:#eef5fd;
  }

  .v88-finance-disclaimer strong{
    font-size:8.2pt;
    color:#173f7e;
  }

  .v88-finance-disclaimer p{
    color:#657994;
  }

  /* Page 6 */
  .v88-scope-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.18in;
    margin-top:0.28in;
  }

  .v88-scope-card{
    background:#fff;
    border-radius:18px;
    border:1px solid #dce7f4;
    padding:0.20in;
    box-sizing:border-box;
  }

  .include-card{
    border-top:5px solid #0b3d91;
  }

  .exclude-card{
    border-top:5px solid #f47a1f;
  }

  .v88-scope-head{
    display:flex;
    align-items:center;
    gap:0.12in;
    padding-bottom:0.13in;
    border-bottom:1px solid #e6edf6;
  }

  .v88-scope-symbol{
    width:0.34in;
    height:0.34in;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    font-size:10pt;
    font-weight:900;
    background:#eef5fd;
    color:#0b3d91;
  }

  .exclude-card .v88-scope-symbol{
    background:#fff4e9;
    color:#f47a1f;
  }

  .v88-scope-head small{
    font-size:6.5pt;
    font-weight:800;
    letter-spacing:.08em;
    color:#7b8da8;
  }

  .v88-scope-head h3{
    margin:2px 0 0;
    font-size:16pt;
    color:#173f7e;
  }

  .v88-scope-card ul{
    list-style:none;
    margin:0.13in 0 0;
    padding:0;
  }

  .v88-scope-card li{
    position:relative;
    margin:0.09in 0;
    padding-left:0.20in;
    font-size:7.8pt;
    line-height:1.35;
    color:#4f6482;
  }

  .include-card li::before{
    content:"✓";
    position:absolute;
    left:0;
    top:0;
    color:#0b3d91;
    font-weight:900;
  }

  .exclude-card li::before{
    content:"–";
    position:absolute;
    left:0.03in;
    top:0;
    color:#f47a1f;
    font-weight:900;
  }

  .v88-scope-note{
    margin-top:0.18in;
    padding:0.14in 0.16in;
    border-radius:12px;
    background:#eef5fd;
  }

  .v88-scope-note strong{
    font-size:8.3pt;
    color:#173f7e;
  }

  .v88-scope-note p{
    margin:4px 0 0;
    font-size:7.3pt;
    line-height:1.35;
    color:#657994;
  }

  .v88-footer{
    margin-top:auto;
    padding-top:0.14in;
    border-top:1px solid #dce5f0;
    display:flex;
    align-items:center;
    justify-content:space-between;
    font-size:7.5pt;
    font-weight:700;
    color:#6a7f9f;
  }

  @media print{
    .v88-page{
      background:#f7f9fc !important;
    }
  }


  /* V89 · ajustes de detalle páginas 4 y 5 */
  .v89-equipment-stack{display:flex;flex-direction:column;gap:0.16in;margin-top:0.22in;}
  .v89-panel-card,.v89-storage-card{background:#fff;border:1px solid #dce7f4;border-radius:18px;padding:0.18in 0.20in;box-sizing:border-box;}
  .v89-card-heading{display:flex;align-items:center;gap:0.13in;margin-bottom:0.14in;}
  .v89-card-heading h3{margin:3px 0 0;font-size:13.5pt;color:#173f7e;}
  .v89-panel-specs{display:grid;grid-template-columns:1.05fr 1.55fr .85fr .75fr;gap:0.11in;}
  .v89-panel-specs>div{min-height:0.78in;padding:0.12in 0.13in;border-radius:12px;background:#f4f8fd;border:1px solid #e2ebf6;box-sizing:border-box;display:flex;flex-direction:column;justify-content:center;}
  .v89-panel-specs span,.v89-battery-spec span{display:block;font-size:7pt;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:#8190a7;}
  .v89-panel-specs strong{display:block;margin-top:6px;font-size:10.2pt;line-height:1.2;color:#173f7e;}
  .v89-battery-list{display:flex;flex-direction:column;gap:0.10in;}
  .v89-battery-option{padding:0.13in 0.14in;border:1px solid #dce7f4;border-radius:13px;background:#f9fbfe;}
  .v89-battery-option-title{font-size:10pt;font-weight:800;color:#173f7e;margin-bottom:0.10in;}
  .v89-battery-specs{display:grid;grid-template-columns:1fr 1.35fr .85fr .75fr;gap:0.08in;}
  .v89-battery-spec{min-height:0.62in;padding:0.09in 0.10in;border-radius:10px;background:#fff;border:1px solid #e3ebf5;box-sizing:border-box;}
  .v89-battery-spec strong{display:block;margin-top:5px;font-size:10.4pt;line-height:1.15;color:#173f7e;}
  .v89-battery-spec.capacity strong{font-size:14.5pt;color:#0b3d91;}
  .v89-battery-spec.quantity strong{font-size:14pt;color:#f47a1f;}

  .v89-offer-table-wrap,.v89-finance-table-wrap{margin-top:0.22in;border:1px solid #dce7f4;border-radius:15px;overflow:hidden;background:#fff;}
  .v89-offer-table,.v89-finance-table{width:100%;border-collapse:collapse;table-layout:fixed;}
  .v89-offer-table thead th,.v89-finance-table thead th{padding:0.11in 0.10in;background:#eef5fd;color:#173f7e;font-size:7pt;font-weight:800;text-transform:uppercase;letter-spacing:.035em;text-align:left;}
  .v89-offer-table thead th:first-child{width:42%;}.v89-offer-table thead th:nth-child(2){width:20%;}.v89-offer-table thead th:nth-child(3){width:17%;}.v89-offer-table thead th:nth-child(4){width:21%;}
  .v89-offer-table th.num,.v89-offer-table td.num,.v89-finance-table th.num,.v89-finance-table td.num{text-align:right;}
  .v89-offer-table tbody td,.v89-finance-table tbody td{padding:0.12in 0.10in;border-top:1px solid #edf2f8;font-size:8.2pt;color:#3a5477;vertical-align:middle;line-height:1.25;}
  .v89-offer-table tbody tr:nth-child(even) td,.v89-finance-table tbody tr:nth-child(even) td{background:#fbfdff;}
  .v89-offer-table .solution-name,.v89-finance-table .solution-name{font-weight:800;color:#173f7e;}
  .v89-offer-table .capacity-value{font-size:9.2pt;font-weight:800;color:#0b3d91;}
  .v89-offer-table .battery-count{font-size:9.4pt;font-weight:800;color:#173f7e;}
  .v89-offer-table .offer-price{font-size:10.4pt;font-weight:900;color:#0b3d91;}
  .v89-validity{margin-top:0.17in;}
  .v89-finance-section{margin-top:0.20in;}
  .v89-finance-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:0.2in;}
  .v89-finance-heading h3{margin:0.05in 0 0;font-size:15.5pt;color:#173f7e;}
  .v89-rate-note{padding-bottom:2px;font-size:7.5pt;color:#7386a1;}.v89-rate-note strong{color:#173f7e;}
  .v89-finance-table-wrap{margin-top:0.10in;}
  .v89-finance-table thead th:first-child{width:36%;}.v89-finance-table thead th:nth-child(n+2){width:16%;}
  .v89-finance-table .monthly-value{font-weight:800;color:#173f7e;}
  .v89-disclaimer{margin-top:0.14in;}


  /* V90 · títulos de página y alineación de tablas */
  .v85-doc-kicker,
  .v88-section-name{
    font-size:11pt !important;
    font-weight:900 !important;
    letter-spacing:.10em !important;
    color:#0b3d91 !important;
  }

  .v88-title-block h2{
    font-size:27pt !important;
    line-height:1.04 !important;
    margin-top:0.08in !important;
    margin-bottom:0.11in !important;
  }

  .v88-eyebrow{
    font-size:8.5pt !important;
  }

  /* Oferta principal */
  .v89-offer-table{
    table-layout:fixed !important;
  }

  .v89-offer-table th,
  .v89-offer-table td,
  .v89-finance-table th,
  .v89-finance-table td{
    box-sizing:border-box !important;
  }

  .v89-offer-table th:nth-child(1),
  .v89-offer-table td:nth-child(1){
    width:40% !important;
    text-align:left !important;
  }

  .v89-offer-table th:nth-child(2),
  .v89-offer-table td:nth-child(2){
    width:20% !important;
    text-align:center !important;
  }

  .v89-offer-table th:nth-child(3),
  .v89-offer-table td:nth-child(3){
    width:18% !important;
    text-align:center !important;
  }

  .v89-offer-table th:nth-child(4),
  .v89-offer-table td:nth-child(4){
    width:22% !important;
    text-align:center !important;
  }

  .v89-offer-table .solution-name{
    display:block;
    font-size:10.2pt !important;
    font-weight:900 !important;
    color:#173f7e !important;
    line-height:1.15;
  }

  .v89-offer-table .capacity-value{
    font-size:9.6pt !important;
  }

  .v89-offer-table .battery-count{
    font-size:10pt !important;
  }

  .v89-offer-table .offer-price{
    font-size:11pt !important;
  }

  /* Financiamiento */
  .v89-finance-table{
    table-layout:fixed !important;
  }

  .v89-finance-table th:nth-child(1),
  .v89-finance-table td:nth-child(1){
    width:36% !important;
    text-align:left !important;
  }

  .v89-finance-table th:nth-child(n+2),
  .v89-finance-table td:nth-child(n+2){
    width:16% !important;
    text-align:center !important;
  }

  .v89-finance-table .solution-name{
    display:block;
    font-size:9pt !important;
    font-weight:800 !important;
    line-height:1.15;
  }

  .v89-finance-table .monthly-value{
    display:block;
    font-size:9pt !important;
    font-weight:900 !important;
    color:#173f7e !important;
    white-space:nowrap;
  }

  .v89-rate-note{
    font-size:9pt !important;
    font-weight:700 !important;
    color:#5f7393 !important;
  }

  .v89-rate-note strong{
    font-size:11pt !important;
    font-weight:900 !important;
    color:#0b3d91 !important;
  }


  /* V91 · garantías y cantidades centradas en página 4 */
  .v91-panel-specs{
    display:grid;
    grid-template-columns:1fr 1.35fr .82fr .72fr 1.05fr;
    gap:0.09in;
  }

  .v91-panel-specs > div{
    min-height:0.78in;
    padding:0.11in 0.11in;
    border-radius:12px;
    background:#f4f8fd;
    border:1px solid #e2ebf6;
    box-sizing:border-box;
    display:flex;
    flex-direction:column;
    justify-content:center;
  }

  .v91-panel-specs span{
    display:block;
    font-size:7pt;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
    color:#8190a7;
  }

  .v91-panel-specs strong{
    display:block;
    margin-top:6px;
    font-size:9.7pt;
    line-height:1.18;
    color:#173f7e;
  }

  .v91-quantity-box{
    align-items:center;
    text-align:center;
  }

  .v91-quantity-box span{
    text-align:center;
  }

  .v91-quantity-box strong{
    font-size:14pt;
    color:#f47a1f;
  }

  .v91-warranty-box strong{
    font-size:8.8pt;
    line-height:1.2;
  }

  .v89-battery-specs{
    grid-template-columns:.9fr 1.25fr .82fr .70fr 1.08fr !important;
  }

  .v89-battery-spec.quantity{
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    text-align:center;
  }

  .v89-battery-spec.quantity span{
    text-align:center;
  }

  .v89-battery-spec.warranty strong{
    font-size:8.8pt;
    line-height:1.2;
  }

  .v91-install-warranty{
    margin-top:0.16in;
    padding:0.14in 0.16in;
    border-radius:14px;
    background:#eef5fd;
    border:1px solid #d7e5f4;
    display:flex;
    gap:0.13in;
    align-items:flex-start;
  }

  .v91-install-icon{
    width:0.34in;
    height:0.34in;
    border-radius:50%;
    background:#0b3d91;
    color:#fff;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:10pt;
    font-weight:900;
  }

  .v91-install-copy > strong{
    display:block;
    margin-top:4px;
    font-size:10.5pt;
    color:#173f7e;
  }

  .v91-install-copy p{
    margin:5px 0 0;
    font-size:7.4pt;
    line-height:1.38;
    color:#617590;
  }


  /* V92 · ajustes portada, base de datos y página 5 */
  .v85-meta-grid{grid-template-columns:.78fr 1.22fr !important;}
  .v92-email-meta strong{font-size:8.2pt !important;white-space:nowrap;}

  .v92-option-groups{margin-top:0.22in;display:flex;flex-direction:column;gap:0.18in;}
  .v92-option-group{border:1px solid #dce7f4;border-radius:16px;overflow:hidden;background:#fff;}
  .v92-option-title{padding:0.12in 0.14in;background:#0b3d91;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:0.15in;}
  .v92-option-title strong{font-size:11.5pt;line-height:1.15;}
  .v92-option-title span{font-size:7.5pt;color:rgba(255,255,255,.76);}

  .v92-solution-table,.v92-finance-table{width:100%;border-collapse:collapse;table-layout:fixed;}
  .v92-solution-table th,.v92-finance-table th{padding:0.09in;background:#eef5fd;color:#173f7e;font-size:6.8pt;font-weight:800;text-transform:uppercase;letter-spacing:.03em;text-align:center;}
  .v92-solution-table td,.v92-finance-table td{padding:0.10in 0.09in;border-top:1px solid #edf2f8;color:#3a5477;font-size:8.3pt;text-align:center;}
  .v92-solution-table th:first-child,.v92-solution-table td:first-child,.v92-finance-table th:first-child,.v92-finance-table td:first-child{text-align:left;}
  .v92-solution-name{font-size:10.5pt;font-weight:900;color:#173f7e;}
  .v92-price{font-size:11pt;font-weight:900;color:#0b3d91;}

  .v92-finance-label{padding:0.09in 0.12in 0.04in;display:flex;align-items:center;justify-content:space-between;gap:0.12in;}
  .v92-finance-label strong{font-size:9.2pt;color:#173f7e;}
  .v92-finance-rate{font-size:8.5pt;color:#667b98;}
  .v92-finance-rate b{color:#0b3d91;font-size:10pt;}

  .db-table th,.db-table td{white-space:nowrap;}


  /* V93 · alivio visual y relación entre tabla/precio/financiamiento */
  .v92-finance-separator{
    height:0.12in;
    margin:0.10in 0 0.02in;
    border-top:2px solid #dce7f4;
  }

  .v92-finance-label{
    padding:0.09in 0.12in 0.05in !important;
    display:block !important;
  }

  .v92-finance-label strong{
    font-size:9.6pt !important;
    color:#173f7e !important;
  }

  .v92-finance-table{
    margin-top:0.02in;
  }

  .v92-rate-footer{
    padding:0.07in 0.12in 0.10in;
    text-align:right;
    font-size:8.2pt;
    color:#6d819e;
    border-top:1px solid #edf2f8;
    background:#fbfdff;
  }

  .v92-rate-footer strong{
    font-size:9.5pt;
    color:#0b3d91;
  }

  .v89-disclaimer strong{
    font-size:8.5pt !important;
    color:#173f7e;
  }


  /* V95 · paginación automática para páginas 4 y 5 */
  .v95-dynamic-page{background:#f7f9fc;color:#183b70;font-family:Arial,Helvetica,sans-serif;overflow:hidden;}
  .v95-cont-title{margin-top:0.30in;}
  .v95-cont-title h2{margin:0.06in 0 0.08in;font-size:23pt;line-height:1.08;color:#173f7e;}
  .v95-cont-title p{margin:0;font-size:9pt;line-height:1.45;color:#657994;}
  .v95-cont-list{margin-top:0.22in;display:flex;flex-direction:column;gap:0.12in;}
  .v95-page4-cont .v89-battery-option,.v95-page5-cont .v92-option-group{break-inside:avoid;}
  .v95-footer-label{font-weight:800;color:#0b3d91;}
  .v95-hidden{display:none !important;}
  #proposalDocPage4 .v88-inner,#proposalDocPage5 .v88-inner,.v95-dynamic-page .v88-inner{padding-bottom:0.46in !important;}


  /* V96 · consistencia de títulos y numeración secuencial */
  .v96-system-selected-title{
    margin:3px 0 0 !important;
    font-size:13.5pt !important;
    line-height:1.15 !important;
    color:#173f7e !important;
    letter-spacing:0 !important;
  }

  .v95-page4-cont .v95-cont-title{
    margin-top:0.24in;
  }

  .v95-page4-cont .v95-cont-title p{
    margin-top:0.07in;
  }


  /* V97 · consistencia visual: franjas azules en encabezados de equipos */
  #proposalDocPage4 .v89-card-heading,
  .v95-page4-cont .v89-card-heading{
    background:#0b3d91 !important;
    border-radius:12px;
    padding:0.10in 0.12in;
    margin-bottom:0.14in;
  }

  #proposalDocPage4 .v89-card-heading .v88-card-label,
  #proposalDocPage4 .v89-card-heading h3,
  .v95-page4-cont .v89-card-heading .v88-card-label,
  .v95-page4-cont .v89-card-heading h3{
    color:#fff !important;
  }

  #proposalDocPage4 .v89-card-heading .v88-card-label,
  .v95-page4-cont .v89-card-heading .v88-card-label{
    opacity:.76;
  }

  #proposalDocPage4 .v89-card-heading .v88-card-icon,
  .v95-page4-cont .v89-card-heading .v88-card-icon{
    background:rgba(255,255,255,.13) !important;
    color:#fff !important;
    margin-bottom:0 !important;
  }

  #proposalDocPage4 .v89-card-heading .battery-body,
  .v95-page4-cont .v89-card-heading .battery-body{
    border-color:#fff !important;
  }

  #proposalDocPage4 .v89-card-heading .battery-body i,
  #proposalDocPage4 .v89-card-heading .battery-tip,
  .v95-page4-cont .v89-card-heading .battery-body i,
  .v95-page4-cont .v89-card-heading .battery-tip{
    background:#fff !important;
  }

  #proposalDocPage4 .v89-battery-option,
  .v95-page4-cont .v89-battery-option{
    padding:0 !important;
    overflow:hidden;
    background:#f9fbfe;
  }

  #proposalDocPage4 .v89-battery-option-title,
  .v95-page4-cont .v89-battery-option-title{
    margin:0 !important;
    padding:0.095in 0.13in;
    background:#0b3d91;
    color:#fff !important;
    font-size:10.8pt !important;
    font-weight:900 !important;
    line-height:1.15;
  }

  #proposalDocPage4 .v89-battery-specs,
  .v95-page4-cont .v89-battery-specs{
    padding:0.10in 0.11in 0.11in;
  }

  .v95-page4-cont .v96-system-selected-title{
    display:inline-block;
    padding:0.08in 0.14in;
    background:#0b3d91;
    color:#fff !important;
    border-radius:10px;
    font-size:13.5pt !important;
  }


  /* V98 · restaurar encabezados de Panel Solar y Almacenamiento al estilo V96 */
  #proposalDocPage4 .v89-card-heading{
    background:transparent !important;
    border-radius:0 !important;
    padding:0 !important;
    margin-bottom:0.14in !important;
  }

  #proposalDocPage4 .v89-card-heading .v88-card-label{
    color:#f47a1f !important;
    opacity:1 !important;
  }

  #proposalDocPage4 .v89-card-heading h3{
    color:#173f7e !important;
  }

  #proposalDocPage4 .v89-card-heading .v88-card-icon{
    background:#fff4e9 !important;
    color:#f47a1f !important;
    margin-bottom:0 !important;
  }

  #proposalDocPage4 .v89-card-heading .battery-body{
    border-color:#f47a1f !important;
  }

  #proposalDocPage4 .v89-card-heading .battery-body i,
  #proposalDocPage4 .v89-card-heading .battery-tip{
    background:#f47a1f !important;
  }


  /* V99 · páginas 7–9 / portafolio moderno */
  .v99-gallery-page{
    background:#f7f9fc;
  }

  .v99-gallery-title{
    margin-top:0.26in;
  }

  .v99-gallery-title h2{
    max-width:86%;
  }

  .v99-project-list{
    margin-top:0.22in;
    display:flex;
    flex-direction:column;
    gap:0.22in;
  }

  .v99-project-card{
    background:#fff;
    border:1px solid #dce7f4;
    border-radius:18px;
    overflow:hidden;
    box-shadow:0 8px 22px rgba(14,54,112,.06);
  }

  .v99-project-image-wrap{
    height:2.55in;
    overflow:hidden;
    background:#eaf1f8;
  }

  .v99-project-image-wrap img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
  }

  .v99-project-info{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:0.22in;
    padding:0.14in 0.17in 0.15in;
  }

  .v99-project-town{
    font-size:13pt;
    font-weight:900;
    color:#173f7e;
  }

  .v99-project-type{
    margin-top:4px;
    font-size:7.3pt;
    color:#7a8ca5;
  }

  .v99-project-metrics{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:0.08in;
    min-width:2.65in;
  }

  .v99-project-metrics > div{
    background:#eef5fd;
    border-radius:11px;
    padding:0.08in 0.11in;
    text-align:center;
  }

  .v99-project-metrics span{
    display:block;
    font-size:6.4pt;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.045em;
    color:#7487a2;
  }

  .v99-project-metrics strong{
    display:inline-block;
    margin-top:3px;
    font-size:15pt;
    color:#0b3d91;
  }

  .v99-project-metrics small{
    margin-left:3px;
    font-size:7.5pt;
    font-weight:800;
    color:#f47a1f;
  }

  @media print{
    .v99-gallery-page{
      background:#f7f9fc !important;
    }
  }


  /* V100 · corrección Safari/Imprimir PDF — portada */
  @media print{
    #proposalDocPage1 .v85-grid{
      display:none !important;
      background:none !important;
      -webkit-mask-image:none !important;
      mask-image:none !important;
    }

    #proposalDocPage1 .v85-cover-bg{
      isolation:isolate;
    }
  }


  /* V101 · ajustes visuales módulo de análisis */
  .topbar-brand-block{
    display:flex;
    align-items:center;
    min-width:230px;
  }
  .topbar-logo{
    display:block;
    height:44px;
    width:auto;
    max-width:320px;
    object-fit:contain;
  }
  .step{display:none !important;}
  #analysisModule .page-title .hint:empty{display:none;}
  #analysisModule .page-title{
    margin-bottom:18px;
  }
  #analysisModule .status{
    font-weight:700;
  }


  /* V102 · comparativa y limpieza de ayudas */
  #page2 #status{
    margin:12px 18px 16px;
  }

  .comparison-table-wrap{
    overflow-x:auto;
  }

  .comparison-matrix,
  .comparison-matrix-3{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  .comparison-matrix thead th:first-child,
  .comparison-matrix tbody th{
    width:105px !important;
  }

  .comparison-matrix thead th:not(:first-child){
    width:auto !important;
  }

  .comparison-matrix th,
  .comparison-matrix td{
    box-sizing:border-box;
    text-align:center !important;
    vertical-align:middle !important;
  }

  .comparison-matrix tbody th{
    text-align:left !important;
  }

  .comparison-system-head{
    display:flex !important;
    flex-direction:row !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:8px !important;
    width:100%;
    min-width:0;
  }

  .comparison-system-head .comparison-proposal-checkbox{
    order:0;
    flex:0 0 18px;
    width:18px;
    height:18px;
    margin:0 !important;
    transform:none !important;
  }

  .comparison-system-label{
    order:1;
    display:flex;
    flex-direction:column;
    align-items:flex-start !important;
    justify-content:center;
    min-width:0;
    text-align:left !important;
    line-height:1.15;
  }

  .comparison-system-name,
  .comparison-system-capacity{
    text-align:left !important;
  }

  .comparison-system-name{
    white-space:normal !important;
  }


  /* V104 · alineación definitiva de Tabla Comparativa */
  #pageComparison .comparison-matrix,
  #pageComparison .comparison-matrix-3{
    width:100% !important;
    table-layout:fixed !important;
    border-collapse:collapse !important;
  }

  #pageComparison .comparison-matrix th,
  #pageComparison .comparison-matrix td{
    padding-left:10px !important;
    padding-right:10px !important;
    vertical-align:middle !important;
  }

  #pageComparison .comparison-matrix thead th,
  #pageComparison .comparison-matrix tbody td{
    text-align:center !important;
  }

  #pageComparison .comparison-matrix thead th:first-child,
  #pageComparison .comparison-matrix tbody th{
    width:12% !important;
    text-align:left !important;
  }

  #pageComparison .comparison-system-head{
    display:grid !important;
    grid-template-columns:18px minmax(0,1fr) !important;
    align-items:center !important;
    justify-content:stretch !important;
    column-gap:8px !important;
    width:100% !important;
    margin:0 !important;
  }

  #pageComparison .comparison-system-head .comparison-proposal-checkbox{
    grid-column:1;
    width:18px !important;
    height:18px !important;
    margin:0 !important;
    justify-self:start !important;
  }

  #pageComparison .comparison-system-label{
    grid-column:2;
    min-width:0;
    width:100%;
    align-items:flex-start !important;
    text-align:left !important;
  }

  #pageComparison .comparison-system-name,
  #pageComparison .comparison-system-capacity{
    display:block;
    width:100%;
    text-align:left !important;
  }

  /* La tabla de 40.5–48 kWh queda con tres columnas idénticas */
  #pageComparison .comparison-matrix-3 thead th:not(:first-child),
  #pageComparison .comparison-matrix-3 tbody td{
    width:29.333% !important;
  }


  /* V105 · centrar nombres de sistemas con sus valores en Comparativa */
  #pageComparison .comparison-system-head{
    display:grid !important;
    grid-template-columns:18px minmax(0,1fr) 18px !important;
    align-items:center !important;
    width:100% !important;
    column-gap:6px !important;
  }

  #pageComparison .comparison-system-head .comparison-proposal-checkbox{
    grid-column:1 !important;
    justify-self:start !important;
    margin:0 !important;
  }

  #pageComparison .comparison-system-label{
    grid-column:2 !important;
    width:100% !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
  }

  #pageComparison .comparison-system-name,
  #pageComparison .comparison-system-capacity{
    width:100% !important;
    text-align:center !important;
  }

  #pageComparison .comparison-matrix thead th:not(:first-child),
  #pageComparison .comparison-matrix tbody td{
    text-align:center !important;
  }

  /* Ajuste más estricto para la tabla de 40.5–48 kWh */
  #pageComparison .comparison-matrix-3 .comparison-system-head{
    grid-template-columns:18px minmax(0,1fr) 18px !important;
  }

  #pageComparison .comparison-matrix-3 .comparison-system-label{
    text-align:center !important;
    align-items:center !important;
  }

  #pageComparison .comparison-matrix-3 .comparison-system-name,
  #pageComparison .comparison-matrix-3 .comparison-system-capacity{
    text-align:center !important;
  }


  /* V106 · acercar checkbox al nombre en Comparativa */
  #pageComparison .comparison-system-head{
    grid-template-columns:14px minmax(0,1fr) 14px !important;
    column-gap:3px !important;
  }

  #pageComparison .comparison-system-head .comparison-proposal-checkbox{
    width:16px !important;
    height:16px !important;
    justify-self:end !important;
    align-self:center !important;
  }

  #pageComparison .comparison-system-label{
    padding-left:0 !important;
    padding-right:0 !important;
  }

  #pageComparison .comparison-matrix-3 .comparison-system-head{
    grid-template-columns:14px minmax(0,1fr) 14px !important;
    column-gap:3px !important;
  }


  /* V107 · topbar logo more integrated / natural */
  .topbar{
    background:linear-gradient(135deg,#0a3a88 0%, #0f4da8 58%, #0c3f93 100%) !important;
    border-bottom:1px solid rgba(255,255,255,.12);
    box-shadow:0 10px 24px rgba(10,39,84,.12);
  }

  .topbar-brand-block{
    display:flex !important;
    align-items:center !important;
    padding:6px 10px 6px 0 !important;
    min-width:260px;
  }

  .topbar-brand-block::before{
    content:"";
    display:block;
    width:10px;
    height:46px;
    margin-right:10px;
    border-radius:10px;
    background:linear-gradient(180deg, rgba(244,122,31,.95), rgba(255,169,74,.9));
    box-shadow:0 4px 12px rgba(244,122,31,.28);
  }

  .topbar-logo{
    display:block !important;
    height:48px !important;
    width:auto !important;
    max-width:340px !important;
    object-fit:contain !important;
    background:rgba(255,255,255,.92);
    border:1px solid rgba(255,255,255,.6);
    border-radius:14px;
    padding:6px 12px;
    box-shadow:
      0 10px 24px rgba(6,31,74,.18),
      inset 0 1px 0 rgba(255,255,255,.35);
  }

  .module-tabs{
    margin-left:auto;
  }

  .module-tab{
    border-color:rgba(255,255,255,.16) !important;
    background:rgba(255,255,255,.08) !important;
    color:#e9f1ff !important;
  }

  .module-tab.active{
    background:#ffffff !important;
    color:#0b3d91 !important;
    box-shadow:0 6px 16px rgba(8,37,83,.18);
  }


  /* V108 · logo superior más grande y fondo blanco uniforme */
  .topbar{
    padding:16px 28px !important;
  }

  .topbar-brand-block{
    min-width:330px !important;
    padding:4px 12px 4px 0 !important;
  }

  .topbar-brand-block::before{
    height:54px !important;
    width:8px !important;
    margin-right:9px !important;
  }

  .topbar-logo{
    height:62px !important;
    width:auto !important;
    max-width:410px !important;
    padding:5px 10px !important;
    background:#ffffff !important;
    border:0 !important;
    border-radius:13px !important;
    box-shadow:0 8px 20px rgba(6,31,74,.15) !important;
  }


  /* V109 · Módulo 3 Contrato */
  .contract-module-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
  }
  .contract-module-actions{display:flex;gap:10px;}
  .contract-progress{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:10px;
    margin-bottom:22px;
  }
  .contract-step{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:8px;
    background:#e8eef8;
    color:#0b3d91;
    border:1px solid #d9e3f1;
  }
  .contract-step span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:24px;
    border-radius:50%;
    background:#fff;
    color:#0b3d91;
    font-size:12px;
  }
  .contract-step.active{
    background:#0b3d91;
    color:#fff;
  }
  .contract-step.active span{
    background:#f47a1f;
    color:#fff;
  }
  .contract-page{display:none;}
  .contract-page.active{display:block;}
  .contract-page-actions{
    justify-content:flex-end;
    margin-top:18px;
  }
  .contract-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:14px 16px;
  }
  .contract-form-grid.one-col{grid-template-columns:1fr;}
  .contract-form-grid textarea{
    width:100%;
    border:1px solid #cdd6e4;
    border-radius:8px;
    padding:10px 11px;
    font:inherit;
    resize:vertical;
  }
  .contract-two-col{
    display:grid;
    grid-template-columns:1.2fr .8fr;
    gap:20px;
    align-items:start;
  }
  .contract-source-card{
    max-width:900px;
    margin:0 auto;
  }
  .contract-source-title{
    font-size:22px;
    font-weight:900;
    color:#173f7e;
    margin-bottom:10px;
  }
  .contract-source-card p{
    line-height:1.6;
    color:#5f7393;
  }
  .contract-summary-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:12px;
    margin-top:20px;
  }
  .contract-summary-grid>div{
    padding:14px;
    border-radius:11px;
    background:#eef5fd;
  }
  .contract-summary-grid span{
    display:block;
    font-size:10px;
    font-weight:800;
    color:#72849e;
    text-transform:uppercase;
  }
  .contract-summary-grid strong{
    display:block;
    margin-top:6px;
    color:#0b3d91;
    font-size:14px;
  }
  @media(max-width:850px){
    .contract-progress{grid-template-columns:1fr 1fr;}
    .contract-form-grid,.contract-two-col,.contract-summary-grid{grid-template-columns:1fr;}
  }


  /* V110 · contrato Rev. 11 completo y generable */
  .contract-preview-toolbar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:18px;
  }
  .contract-preview-actions{display:flex;gap:10px;}
  .contract-preview-stack{
    display:flex;
    flex-direction:column;
    gap:28px;
    align-items:center;
  }
  .contract-pdf-page{
    position:relative;
    width:8.5in;
    max-width:calc(100vw - 24px);
    height:11in;
    background:#fff;
    color:#1f2937;
    box-shadow:0 12px 32px rgba(15,35,70,.12);
    overflow:hidden;
    font-family:Arial,Helvetica,sans-serif;
  }
  .contract-doc-inner{
    position:absolute;
    inset:0;
    padding:.46in .56in .42in;
    display:flex;
    flex-direction:column;
    box-sizing:border-box;
  }
  .contract-doc-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:.25in;
    padding-bottom:.12in;
    border-bottom:2px solid #0b3d91;
    margin-bottom:.15in;
  }
  .contract-doc-header.compact{margin-bottom:.13in;}
  .contract-doc-brand{display:flex;align-items:center;}
  .contract-doc-logo{
    height:.42in !important;
    max-width:2.1in !important;
    border-radius:8px !important;
    padding:2px 5px !important;
    box-shadow:none !important;
  }
  .contract-doc-meta{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    gap:2px;
    font-size:7.2pt;
    color:#66758a;
    line-height:1.15;
  }
  .contract-doc-meta strong{
    color:#0b3d91;
    font-size:8.4pt;
  }
  .contract-doc-title{
    margin:.04in 0 .13in;
    text-align:center;
    font-size:15pt;
    color:#173f7e;
    line-height:1.15;
  }
  .contract-doc-opening,
  .contract-pdf-page p,
  .contract-pdf-page li{
    font-size:8.15pt;
    line-height:1.36;
    text-align:justify;
    color:#24364f;
    margin:.055in 0;
  }
  .contract-section-title{
    margin:.12in 0 .06in;
    color:#0b3d91;
    font-size:11.5pt;
    border-bottom:1px solid #d8e3f1;
    padding-bottom:.04in;
  }
  .contract-section-title.top{margin-top:0;}
  .contract-party-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.13in;
    margin:.07in 0 .1in;
  }
  .contract-party-card{
    border:1px solid #dce5f0;
    border-radius:10px;
    padding:.11in;
    background:#fbfdff;
  }
  .contract-party-card h3{
    margin:0 0 .07in;
    font-size:9.3pt;
    color:#173f7e;
  }
  .contract-party-card dl{
    display:grid;
    grid-template-columns:1.05in 1fr;
    margin:0;
    gap:3px 6px;
  }
  .contract-party-card dt{
    font-size:6.6pt;
    font-weight:800;
    color:#687b96;
  }
  .contract-party-card dd{
    margin:0;
    font-size:6.9pt;
    line-height:1.24;
    color:#24364f;
    min-height:11px;
  }
  .contract-system-summary{
    border:1px solid #dce5f0;
    border-radius:10px;
    overflow:hidden;
    margin:.07in 0 .1in;
  }
  .contract-system-capacity{
    background:#eef4ff;
    color:#173f7e;
    padding:.08in .11in;
    font-size:8.5pt;
    font-weight:800;
  }
  .contract-system-summary table{
    width:100%;
    border-collapse:collapse;
    font-size:7.5pt;
  }
  .contract-system-summary th{
    background:#0b3d91;
    color:#fff;
    padding:5px 7px;
    text-align:left;
  }
  .contract-system-summary td{
    padding:5px 7px;
    border-bottom:1px solid #e7edf5;
  }
  .contract-system-summary tr:last-child td{border-bottom:0;}
  .contract-check-list{
    display:flex;
    flex-direction:column;
    gap:5px;
    margin:.08in 0 .05in;
  }
  .contract-check-list>div{
    font-size:7.8pt;
    line-height:1.32;
    color:#26394f;
    text-align:justify;
    padding-left:0;
  }
  .contract-check-list span{
    display:inline-block;
    width:16px;
    font-size:10pt;
    color:#0b3d91;
    font-weight:900;
  }
  .contract-alpha-list{
    margin:.03in 0 .07in .22in;
    padding-left:.15in;
    list-style-type:lower-alpha;
  }
  .contract-line-field{
    border-bottom:1px solid #456188;
    min-height:.22in;
    padding:2px 4px;
    font-size:8pt;
    color:#173f7e;
    margin-bottom:.05in;
  }
  .contract-performance-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.12in;
    margin:.07in 0;
  }
  .contract-performance-grid>div{
    background:#eef4ff;
    border-radius:8px;
    padding:.08in .1in;
    display:grid;
    grid-template-columns:1fr auto auto;
    gap:5px;
    align-items:center;
    font-size:7.5pt;
  }
  .contract-performance-grid strong{color:#0b3d91;font-size:10pt;}
  .contract-performance-grid em{font-style:normal;color:#66758a;}
  .contract-closing{
    margin-top:.25in !important;
    text-align:left !important;
  }
  .contract-signature-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:.45in;
    margin-top:.9in;
  }
  .contract-signature-grid>div{
    display:flex;
    flex-direction:column;
    gap:3px;
    font-size:8pt;
    color:#51647e;
  }
  .contract-signature-grid strong{color:#173f7e;font-size:9pt;}
  .signature-line{
    border-top:1px solid #173f7e;
    margin-bottom:6px;
  }
  .contract-final-summary{
    margin-top:.65in;
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:.12in;
  }
  .contract-final-summary>div{
    background:#f3f7fc;
    border:1px solid #dce5f0;
    border-radius:8px;
    padding:.09in;
  }
  .contract-final-summary span{
    display:block;
    font-size:6.6pt;
    color:#71839d;
    font-weight:800;
    text-transform:uppercase;
  }
  .contract-final-summary strong{
    display:block;
    margin-top:4px;
    color:#0b3d91;
    font-size:8.5pt;
  }
  .contract-doc-footer{
    margin-top:auto;
    padding-top:.08in;
    border-top:1px solid #dce5f0;
    display:flex;
    justify-content:space-between;
    align-items:center;
    font-size:6.7pt;
    color:#71839d;
    font-weight:700;
  }

  @media print{
    body.contract-print-mode{
      width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
      background:#fff !important;
      overflow:visible !important;
      -webkit-print-color-adjust:exact !important;
      print-color-adjust:exact !important;
    }
    body.contract-print-mode .topbar,
    body.contract-print-mode #analysisModule,
    body.contract-print-mode #proposalModule,
    body.contract-print-mode #contractModule > :not(#contractPreview),
    body.contract-print-mode #contractPreview > :not(.contract-preview-stack){
      display:none !important;
    }
    body.contract-print-mode #contractModule{
      display:block !important;
      width:8.5in !important;
      max-width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
      overflow:visible !important;
    }
    body.contract-print-mode #contractPreview{
      display:block !important;
      width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
    }
    body.contract-print-mode .contract-preview-stack{
      display:block !important;
      width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
      gap:0 !important;
    }
    body.contract-print-mode .contract-pdf-page{
      display:block !important;
      width:8.5in !important;
      min-width:8.5in !important;
      max-width:8.5in !important;
      height:10.98in !important;
      min-height:10.98in !important;
      max-height:10.98in !important;
      margin:0 !important;
      box-shadow:none !important;
      break-inside:avoid !important;
      page-break-inside:avoid !important;
      overflow:hidden !important;
    }
    body.contract-print-mode .contract-pdf-page + .contract-pdf-page{
      break-before:page !important;
      page-break-before:always !important;
    }
  }


  /* V111 · Generar Contrato desde Propuesta */
  .contract-generate-btn{
    background:#0b3d91;
    color:#fff;
    border:1px solid #0b3d91;
    box-shadow:0 4px 12px rgba(11,61,145,.16);
  }
  .contract-generate-btn:hover{background:#082f72;}

  .contract-option-modal{
    position:fixed;
    inset:0;
    z-index:5000;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
  }
  .contract-option-modal.open{display:flex;}
  .contract-option-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,26,58,.56);
    backdrop-filter:blur(3px);
  }
  .contract-option-dialog{
    position:relative;
    z-index:1;
    width:min(680px,calc(100vw - 32px));
    max-height:82vh;
    overflow:auto;
    background:#fff;
    border-radius:18px;
    box-shadow:0 26px 70px rgba(4,24,62,.28);
    padding:24px;
  }
  .contract-option-dialog-head{
    display:flex;
    justify-content:space-between;
    align-items:flex-start;
    gap:16px;
  }
  .contract-option-kicker{
    font-size:10px;
    font-weight:900;
    letter-spacing:.12em;
    color:#f47a1f;
  }
  .contract-option-dialog h2{
    margin:5px 0 0;
    color:#173f7e;
    font-size:24px;
  }
  .contract-option-dialog>p{
    color:#64748b;
    line-height:1.5;
    margin:12px 0 18px;
    font-size:13px;
  }
  .contract-option-close{
    width:36px;
    height:36px;
    padding:0;
    border-radius:50%;
    background:#eef3f9;
    color:#173f7e;
    font-size:23px;
    line-height:1;
  }
  .contract-option-list{
    display:flex;
    flex-direction:column;
    gap:10px;
  }
  .contract-option-choice{
    display:grid;
    grid-template-columns:22px 1fr auto;
    gap:12px;
    align-items:center;
    padding:14px 16px;
    border:1px solid #dce5f0;
    border-radius:12px;
    background:#fbfdff;
    cursor:pointer;
  }
  .contract-option-choice:hover{
    border-color:#98b7e0;
    background:#f5f9ff;
  }
  .contract-option-choice:has(input:checked){
    border-color:#0b3d91;
    box-shadow:0 0 0 2px rgba(11,61,145,.08);
    background:#f4f8ff;
  }
  .contract-option-choice input{
    width:18px;
    height:18px;
    margin:0;
    accent-color:#0b3d91;
  }
  .contract-option-choice-main strong{
    display:block;
    color:#173f7e;
    font-size:14px;
  }
  .contract-option-choice-main span{
    display:block;
    margin-top:3px;
    color:#718198;
    font-size:11px;
  }
  .contract-option-choice-price{
    font-size:17px;
    font-weight:900;
    color:#0b3d91;
    white-space:nowrap;
  }
  .contract-option-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    margin-top:20px;
    padding-top:16px;
    border-top:1px solid #e6edf5;
  }

  /* Contract fields populated from proposal are visually consistent */
  #contractModule input[readonly]{
    background:#f2f5f9;
  }


  /* V112 · acciones y formatos del contrato */
  .print-pdf-btn{
    background:#c62828 !important;
    color:#fff !important;
    border:1px solid #c62828 !important;
    box-shadow:0 4px 12px rgba(198,40,40,.18);
  }
  .print-pdf-btn:hover{
    background:#a91f1f !important;
  }

  #generateContractFromProposal{
    background:var(--orange) !important;
    color:#fff !important;
  }


  /* V113 · validación de número de propuesta */
  .proposal-number-modal{
    position:fixed;
    inset:0;
    z-index:5200;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
  }
  .proposal-number-modal.open{display:flex;}
  .proposal-number-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,26,58,.56);
    backdrop-filter:blur(3px);
  }
  .proposal-number-dialog{
    position:relative;
    z-index:1;
    width:min(500px,calc(100vw - 32px));
    background:#fff;
    border-radius:18px;
    padding:28px;
    text-align:center;
    box-shadow:0 26px 70px rgba(4,24,62,.28);
  }
  .proposal-number-icon{
    width:50px;
    height:50px;
    margin:0 auto 12px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef4ff;
    color:#0b3d91;
    font-size:23px;
    font-weight:900;
  }
  .proposal-number-dialog h2{
    margin:0;
    color:#173f7e;
    font-size:23px;
  }
  .proposal-number-dialog p{
    margin:10px auto 20px;
    color:#66758a;
    font-size:13px;
    line-height:1.5;
  }
  .proposal-number-actions{
    display:flex;
    justify-content:center;
    gap:10px;
  }


  /* V114 · validación de campos requeridos antes de generar propuesta */
  .proposal-required-modal{
    position:fixed;
    inset:0;
    z-index:5300;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
  }
  .proposal-required-modal.open{display:flex;}
  .proposal-required-backdrop{
    position:absolute;
    inset:0;
    background:rgba(8,26,58,.56);
    backdrop-filter:blur(3px);
  }
  .proposal-required-dialog{
    position:relative;
    z-index:1;
    width:min(520px,calc(100vw - 32px));
    background:#fff;
    border-radius:18px;
    padding:28px;
    box-shadow:0 26px 70px rgba(4,24,62,.28);
  }
  .proposal-required-icon{
    width:50px;
    height:50px;
    margin:0 auto 12px;
    border-radius:50%;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff3e8;
    color:#f47a1f;
    font-size:24px;
    font-weight:900;
  }
  .proposal-required-dialog h2{
    margin:0;
    text-align:center;
    color:#173f7e;
    font-size:23px;
  }
  .proposal-required-dialog>p{
    text-align:center;
    margin:10px 0 16px;
    color:#66758a;
    font-size:13px;
  }
  .proposal-required-list{
    background:#f8fafc;
    border:1px solid #e2e8f0;
    border-radius:12px;
    padding:12px 16px;
  }
  .proposal-required-item{
    display:flex;
    align-items:center;
    gap:8px;
    padding:7px 0;
    color:#334155;
    font-size:13px;
    font-weight:700;
    border-bottom:1px solid #edf2f7;
  }
  .proposal-required-item:last-child{border-bottom:0;}
  .proposal-required-item::before{
    content:"•";
    color:#f47a1f;
    font-size:18px;
    line-height:1;
  }
  .proposal-required-actions{
    display:flex;
    justify-content:center;
    margin-top:18px;
  }


  /* V115 · confianza comercial y énfasis del precio en propuesta */
  #proposalDocPage2 .v115-trust-strip{
    margin-top:.22in;
    display:grid;
    grid-template-columns:auto 1fr auto;
    align-items:center;
    gap:.14in;
    padding:.14in .16in;
    border:1px solid #dce7f4;
    border-radius:14px;
    background:linear-gradient(135deg,#f8fbff,#eef5fd);
  }
  #proposalDocPage2 .v115-stars{
    color:#f47a1f;
    font-size:17pt;
    letter-spacing:1px;
    line-height:1;
    white-space:nowrap;
  }
  #proposalDocPage2 .v115-trust-main strong{
    display:block;
    color:#173f7e;
    font-size:11pt;
    line-height:1.1;
  }
  #proposalDocPage2 .v115-trust-main span{
    display:block;
    margin-top:3px;
    color:#667b98;
    font-size:7.4pt;
    line-height:1.25;
  }
  #proposalDocPage2 .v115-trust-proof{
    display:flex;
    align-items:center;
    gap:.10in;
  }
  #proposalDocPage2 .v115-trust-proof>div:not(.v115-proof-divider){
    text-align:center;
    min-width:.72in;
  }
  #proposalDocPage2 .v115-trust-proof strong{
    display:block;
    color:#0b3d91;
    font-size:10.5pt;
    line-height:1;
  }
  #proposalDocPage2 .v115-trust-proof span{
    display:block;
    margin-top:3px;
    color:#667b98;
    font-size:6.4pt;
    white-space:nowrap;
  }
  #proposalDocPage2 .v115-proof-divider{
    width:1px;
    height:.34in;
    background:#cddbec;
  }

  /* Precio cotizado más visible dentro de cada opción */
  #proposalDocPage5 .v92-price,
  .v95-page5-cont .v92-price{
    font-size:15.5pt !important;
    font-weight:900 !important;
    color:#0b3d91 !important;
    letter-spacing:-.02em;
  }

  #proposalDocPage5 .v92-solution-table td:last-child,
  .v95-page5-cont .v92-solution-table td:last-child{
    background:#f3f7fd;
  }

  /* Página 5: COSTO TOTAL DEL SISTEMA como título principal */
  #proposalDocPage5 .v115-investment-title{
    margin-bottom:.12in;
  }
  #proposalDocPage5 .v115-cost-title{
    font-size:22pt !important;
    line-height:1.05 !important;
    letter-spacing:-.02em !important;
    color:#173f7e !important;
    font-weight:900 !important;
  }
  #proposalDocPage5 .v115-investment-title p{
    margin-top:.09in !important;
  }


  /* V116 · confianza: Servicio 5 Estrellas protagonista; credenciales debajo */
  #proposalDocPage2 .v116-trust-strip{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    gap:.12in !important;
    padding:.16in .18in !important;
  }

  #proposalDocPage2 .v116-five-star-focus{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:.15in;
    text-align:left;
    padding-bottom:.10in;
    border-bottom:1px solid #d6e2f0;
  }

  #proposalDocPage2 .v116-five-star-focus .v115-stars{
    font-size:22pt !important;
    letter-spacing:2px !important;
    text-shadow:0 2px 8px rgba(244,122,31,.16);
  }

  #proposalDocPage2 .v116-five-star-focus .v115-trust-main strong{
    font-size:14pt !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    color:#173f7e !important;
  }

  #proposalDocPage2 .v116-five-star-focus .v115-trust-main span{
    font-size:7.8pt !important;
    margin-top:4px !important;
  }

  #proposalDocPage2 .v116-trust-proof{
    width:100%;
    justify-content:center !important;
    gap:.20in !important;
  }

  #proposalDocPage2 .v116-trust-proof>div:not(.v115-proof-divider){
    min-width:1.25in !important;
  }

  #proposalDocPage2 .v116-trust-proof strong{
    font-size:11.5pt !important;
  }

  #proposalDocPage2 .v116-trust-proof span{
    font-size:7pt !important;
  }

  /* V116 · restaurar COSTO TOTAL DEL SISTEMA al naranja de versiones previas */
  #proposalDocPage5 .v115-cost-title{
    color:#f47a1f !important;
  }


  /* V117 · DACO más visible y con el 0 a la izquierda */
  #proposalDocPage2 .v116-trust-proof{
    justify-content:center !important;
    gap:.20in !important;
  }

  #proposalDocPage2 .v116-trust-proof>div:not(.v115-proof-divider){
    min-width:1.45in !important;
  }

  #proposalDocPage2 .v116-trust-proof>div:first-child{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:.08in !important;
    text-align:left !important;
  }

  #proposalDocPage2 .v116-trust-proof>div:first-child strong{
    display:inline-block !important;
    font-size:16pt !important;
    line-height:1 !important;
    margin:0 !important;
    color:#0b3d91 !important;
  }

  #proposalDocPage2 .v116-trust-proof>div:first-child span{
    display:inline-block !important;
    margin:0 !important;
    font-size:8.5pt !important;
    font-weight:800 !important;
    color:#51647e !important;
    white-space:nowrap !important;
  }


  /* V118 · texto de fundación en Quiénes Somos */
  #proposalDocPage2 .v118-founded{
    font-size:17pt !important;
    line-height:1.05 !important;
    white-space:nowrap;
  }


  /* V119 · respaldo/transferencia de base de datos */
  .db-backup-card{
    border:1px solid #d7e4f3;
    background:linear-gradient(135deg,#fbfdff,#f5f9ff);
  }
  .db-backup-layout{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:20px;
    align-items:center;
  }
  .db-backup-layout h3{
    margin:0 0 6px;
    color:#173f7e;
    font-size:17px;
  }
  .db-backup-layout p{
    margin:0;
    max-width:720px;
    color:#64748b;
    font-size:12px;
    line-height:1.45;
  }
  .db-backup-status{
    display:inline-block;
    margin-top:10px;
    padding:6px 9px;
    border-radius:7px;
    background:#eef6ff;
    color:#0b3d91;
    font-size:11px;
    font-weight:800;
  }
  .db-backup-actions{
    display:flex;
    gap:10px;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
  }
  @media(max-width:900px){
    .db-backup-layout{grid-template-columns:1fr;}
    .db-backup-actions{justify-content:flex-start;}
  }


  /* V120 · Garantía de instalación / Solar Insure */
  #proposalDocPage4 .v120-warranty-plus,
  .v95-page4-cont .v120-warranty-plus{
    padding:.12in .14in !important;
    gap:.11in !important;
  }
  #proposalDocPage4 .v120-warranty-plus .v91-install-copy,
  .v95-page4-cont .v120-warranty-plus .v91-install-copy{
    min-width:0;
  }
  #proposalDocPage4 .v120-warranty-list,
  .v95-page4-cont .v120-warranty-list{
    margin:5px 0 4px .15in;
    padding:0;
    color:#526984;
    font-size:6.8pt;
    line-height:1.3;
  }
  #proposalDocPage4 .v120-warranty-list li,
  .v95-page4-cont .v120-warranty-list li{
    margin:0 0 3px;
  }
  #proposalDocPage4 .v120-warranty-plus p,
  .v95-page4-cont .v120-warranty-plus p{
    margin:4px 0 0 !important;
    font-size:6.65pt !important;
    line-height:1.3 !important;
  }
  #proposalDocPage4 .v120-warranty-plus p strong,
  .v95-page4-cont .v120-warranty-plus p strong{
    color:#173f7e;
    font-weight:900;
  }
  #proposalDocPage4 .v120-warranty-restrictions,
  .v95-page4-cont .v120-warranty-restrictions{
    font-style:italic;
    color:#6d7f96 !important;
  }

  /* V120 · costo de garantía extendida de batería debajo del precio */
  .v120-extended-battery-warranty{
    padding:.075in .12in;
    background:#fff8f1;
    border-top:1px solid #f6dbc3;
    color:#7b5230;
    font-size:7.7pt;
    line-height:1.3;
    text-align:right;
  }
  .v120-extended-battery-warranty strong{
    color:#f47a1f;
    font-size:9.2pt;
    font-weight:900;
    white-space:nowrap;
  }


  /* V121 · garantía extendida de batería */
  .v120-extended-battery-warranty{text-align:left !important;}

  .contract-warranty-modal{
    position:fixed; inset:0; z-index:5100; display:none;
    align-items:center; justify-content:center; padding:24px;
  }
  .contract-warranty-modal.open{display:flex;}
  .contract-warranty-backdrop{
    position:absolute; inset:0; background:rgba(8,26,58,.56);
    backdrop-filter:blur(3px);
  }
  .contract-warranty-dialog{
    position:relative; z-index:1; width:min(560px,calc(100vw - 32px));
    background:#fff; border-radius:18px; padding:26px;
    box-shadow:0 26px 70px rgba(4,24,62,.28);
  }
  .contract-warranty-dialog h2{margin:5px 0 8px;color:#173f7e;font-size:24px;}
  .contract-warranty-dialog>p{margin:0 0 14px;color:#64748b;line-height:1.45;font-size:13px;}
  .contract-warranty-cost{
    margin:10px 0 16px; padding:12px 14px; border-radius:10px;
    background:#fff8f1; border:1px solid #f5dcc5; color:#7b5230;
    font-size:13px; font-weight:700;
  }
  .contract-warranty-cost strong{color:#f47a1f;font-size:18px;}
  .contract-warranty-choices{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
  .contract-warranty-choices label{
    display:flex; align-items:center; gap:10px; padding:14px;
    border:1px solid #dce5f0; border-radius:12px; background:#fbfdff; cursor:pointer;
  }
  .contract-warranty-choices label:has(input:checked){
    border-color:#0b3d91; background:#f4f8ff;
    box-shadow:0 0 0 2px rgba(11,61,145,.08);
  }
  .contract-warranty-choices input{width:18px;height:18px;accent-color:#0b3d91;}
  .contract-warranty-choices span{display:flex;flex-direction:column;}
  .contract-warranty-choices strong{color:#173f7e;font-size:14px;}
  .contract-warranty-choices small{color:#718198;margin-top:2px;}


  /* V122 · Precio Final en Contrato */
  .contract-final-price-box{
    margin-top:4px;
    padding:14px;
    border:2px solid #0b3d91;
    border-radius:12px;
    background:#f4f8ff;
  }
  .contract-final-price-box label{
    color:#173f7e !important;
    font-size:13px !important;
    font-weight:900 !important;
    margin-bottom:7px !important;
  }
  .contract-final-price-box .currency-input-wrap{
    background:#fff;
    border:1px solid #bdd0ea;
    border-radius:9px;
  }
  .contract-final-price-box input{
    font-size:19px !important;
    font-weight:900 !important;
    color:#0b3d91 !important;
  }


  /* V123 · separación estricta entre precio de propuesta y garantía */
  .contract-price-note{
    margin-top:5px;
    color:#718198;
    font-size:10.5px;
    line-height:1.35;
  }
  #contractPurchasePrice[readonly]{
    background:#f8fafc;
    color:#173f7e;
    font-weight:800;
  }


  /* V126 · contrato con guardado automático */
  .contract-autosave-indicator{
    display:inline-flex;
    align-items:center;
    gap:6px;
    padding:7px 10px;
    border-radius:999px;
    background:#eef7f2;
    border:1px solid #d1e8da;
    color:#35704e;
    font-size:11px;
    font-weight:800;
    white-space:nowrap;
  }
  .contract-autosave-indicator::before{
    content:"✓";
    font-weight:900;
  }


  /* V127 · formato final del Contrato de Compraventa */

  /* Header: solo logo. La revisión se mueve al footer. */
  .contract-doc-header{
    justify-content:flex-start !important;
    padding-bottom:.08in !important;
    margin-bottom:.10in !important;
  }
  .contract-doc-meta{display:none !important;}
  .contract-doc-logo{
    height:.46in !important;
    max-width:2.3in !important;
  }

  /* Texto regular del contrato: 14px */
  .contract-pdf-page p,
  .contract-pdf-page li,
  .contract-check-list,
  .contract-line-field,
  .contract-performance-grid,
  .contract-system-summary table td,
  .contract-system-summary table th{
    font-size:14px !important;
    line-height:1.23 !important;
  }

  /* Menos espacios muertos y mejor continuidad vertical */
  .contract-doc-inner{
    padding:.32in .48in .34in !important;
  }
  .contract-pdf-page p{
    margin:.038in 0 !important;
  }
  .contract-section-title{
    margin:.075in 0 .045in !important;
  }
  .contract-doc-title{
    margin:.02in 0 .09in !important;
  }
  .contract-alpha-list{
    margin:.04in 0 .055in !important;
  }
  .contract-check-list{
    gap:3px !important;
    margin:.045in 0 !important;
  }

  /* Vendedor / Comprador */
  .contract-party-grid{
    gap:.12in !important;
    margin:.06in 0 .08in !important;
  }
  .contract-party-card{
    padding:.12in .13in !important;
  }
  .contract-party-card h3{
    font-size:15px !important;
    margin:0 0 .075in !important;
  }
  .contract-party-card dl{
    grid-template-columns:1.18in 1fr !important;
    gap:7px 8px !important;
  }
  
  

  .contract-preamble-title{
    text-align:center !important;
  }

  /* Direcciones en formulario */
  #contractPhysicalAddress,
  #contractMailingAddress,
  #contractFacility{
    min-height:78px;
    line-height:1.35;
    resize:vertical;
  }

  /* Tabla de equipos */
  .contract-equipment-table{
    table-layout:fixed;
  }
  .contract-equipment-table .equipment-col{width:29%;}
  .contract-equipment-table .model-col{width:56%;}
  .contract-equipment-table .qty-col{width:15%;}
  .contract-equipment-table th:first-child,
  .contract-equipment-table td:first-child{
    white-space:nowrap !important;
  }
  .contract-equipment-table td,
  .contract-equipment-table th{
    padding:6px 8px !important;
    vertical-align:middle !important;
  }
  .contract-equipment-no-qty td[colspan="2"]{
    text-align:left !important;
    padding-left:10px !important;
  }

  /* Footer uniforme */
  .contract-doc-footer{
    font-size:10px !important;
    padding-top:.06in !important;
  }

  /* Firma final */
  .v127-signatures{
    margin-top:.28in !important;
    gap:.55in !important;
    align-items:start !important;
  }
  .contract-signature-block{
    text-align:center;
  }
  
  .contract-signature-space{
    height:.62in;
  }
  .v127-signatures .signature-line{
    margin:0 0 .07in !important;
  }
  

  /* No usar los cuadros-resumen en la página final */
  .contract-final-summary{display:none !important;}

  /* Ajuste fino por página para evitar huecos sin cambiar el texto contractual */
  #contractDocPage2 .contract-system-summary{margin:.055in 0 !important;}
  #contractDocPage4 .contract-performance-grid{margin:.055in 0 !important;}
  #contractDocPage6 .contract-closing{margin-top:.10in !important;}

  @media print{
    .contract-pdf-page{
      overflow:hidden !important;
    }
  }


  /* V128 · cláusula 10: selección de propiedad con checkboxes */
  .contract-owner-box{
    display:inline-block;
    min-width:18px;
    text-align:center;
    font-size:16px;
    font-weight:900;
    color:#173f7e;
    vertical-align:baseline;
  }


  /* V129 · preservar saltos de línea en direcciones del comprador */
  .contract-party-card dd[data-contract="physicalAddress"],
  .contract-party-card dd[data-contract="mailingAddress"]{
    white-space:pre-line !important;
  }

  /* V129 · primera columna tabla compromiso alineada a la izquierda */
  .contract-equipment-table th:first-child,
  .contract-equipment-table td:first-child{
    text-align:left !important;
  }

  /* V129 · doble espacio entre términos numerados */
  .contract-term-spaced{
    margin-top:.14in !important;
  }


  /* V130 · tipografía uniforme del contrato */
  .contract-pdf-page p,
  .contract-pdf-page li,
  .contract-pdf-page td,
  .contract-pdf-page th,
  .contract-pdf-page dt,
  .contract-pdf-page dd,
  .contract-pdf-page .contract-check-list,
  .contract-pdf-page .contract-check-list div,
  .contract-pdf-page .contract-check-list span,
  .contract-pdf-page .contract-line-field,
  .contract-pdf-page .contract-performance-grid,
  .contract-pdf-page .contract-performance-grid span,
  .contract-pdf-page .contract-performance-grid strong,
  .contract-pdf-page .contract-performance-grid em,
  .contract-pdf-page .contract-system-capacity,
  .contract-pdf-page .contract-system-capacity strong,
  .contract-pdf-page .contract-owner-box,
  .contract-pdf-page .contract-doc-footer,
  .contract-pdf-page .contract-signature-party,
  .contract-pdf-page .contract-signature-name,
  .contract-pdf-page .contract-signature-role{
    font-size:14px !important;
    line-height:1.3 !important;
  }

  /* Mantener títulos separados del tamaño regular */
  .contract-pdf-page .contract-doc-title,
  .contract-pdf-page .contract-section-title,
  .contract-pdf-page .contract-party-card h3{
    font-size:inherit;
  }

  /* Una línea completa de espacio antes de cada término numerado, excepto el primero */
  .contract-term-spaced{
    margin-top:1.3em !important;
  }
  #contractDocPage2 .contract-term-spaced:first-of-type{
    margin-top:0 !important;
  }

  /* Cuando un término comienza en una nueva página, evitar espacio extra arriba */
  #contractDocPage3 > .contract-doc-inner > .contract-term-spaced:first-child,
  #contractDocPage4 > .contract-doc-inner > .contract-term-spaced:first-child,
  #contractDocPage5 > .contract-doc-inner > .contract-term-spaced:first-child,
  #contractDocPage6 > .contract-doc-inner > .contract-term-spaced:first-child{
    margin-top:0 !important;
  }


  /* V131 · mejor distribución vertical del contrato */
  .contract-three-line-gap{
    height:3.9em;
  }

  #contractDocPage2 .contract-doc-inner,
  #contractDocPage3 .contract-doc-inner,
  #contractDocPage4 .contract-doc-inner,
  #contractDocPage5 .contract-doc-inner,
  #contractDocPage6 .contract-doc-inner{
    padding-top:.24in !important;
    padding-bottom:.30in !important;
  }

  #contractDocPage3 .contract-doc-header,
  #contractDocPage4 .contract-doc-header,
  #contractDocPage5 .contract-doc-header,
  #contractDocPage6 .contract-doc-header{
    margin-bottom:.045in !important;
    padding-bottom:.045in !important;
  }

  .contract-term-spaced{
    margin-top:1em !important;
  }

  #contractDocPage3 .contract-doc-inner > .contract-term-spaced:first-of-type,
  #contractDocPage4 .contract-doc-inner > .contract-term-spaced:first-of-type,
  #contractDocPage5 .contract-doc-inner > .contract-term-spaced:first-of-type,
  #contractDocPage6 .contract-doc-inner > .contract-term-spaced:first-of-type{
    margin-top:.10em !important;
  }

  .contract-pdf-page .contract-alpha-list,
  .contract-pdf-page .contract-check-list,
  .contract-pdf-page .contract-performance-grid,
  .contract-pdf-page .contract-system-summary{
    margin-top:.25em !important;
    margin-bottom:.35em !important;
  }

  .contract-doc-footer{
    margin-top:auto !important;
  }


  /* V132 · ajustes finales de espaciado y firmas */

  /* Título principal de Términos y Condiciones centrado */
  .contract-terms-main-title{
    text-align:center !important;
  }

  /* Reducir espacio bajo el título de 3 líneas a aprox. 1.5 líneas */
  .contract-three-line-gap{
    height:1.95em !important;
  }

  /* Término 3: una línea en blanco entre cada opción */
  #contractDocPage2 .contract-check-list{
    gap:1.3em !important;
  }

  /* Término 11: una línea en blanco entre cada opción */
  #contractDocPage4 .contract-check-list{
    gap:1.3em !important;
  }

  /* Aprovechar mejor la altura útil de cada página */
  #contractDocPage2 .contract-doc-inner,
  #contractDocPage3 .contract-doc-inner,
  #contractDocPage4 .contract-doc-inner,
  #contractDocPage5 .contract-doc-inner{
    padding-top:.22in !important;
    padding-bottom:.25in !important;
  }

  /* Distribución vertical más uniforme del texto para reducir áreas vacías */
  #contractDocPage2 .contract-doc-inner > p,
  #contractDocPage3 .contract-doc-inner > p,
  #contractDocPage4 .contract-doc-inner > p,
  #contractDocPage5 .contract-doc-inner > p{
    line-height:1.34 !important;
  }

  #contractDocPage2 .contract-term-spaced,
  #contractDocPage3 .contract-term-spaced,
  #contractDocPage4 .contract-term-spaced,
  #contractDocPage5 .contract-term-spaced,
  #contractDocPage6 .contract-term-spaced{
    margin-top:1.15em !important;
  }

  /* Mantener compactos los headers de páginas interiores */
  #contractDocPage2 .contract-doc-header,
  #contractDocPage3 .contract-doc-header,
  #contractDocPage4 .contract-doc-header,
  #contractDocPage5 .contract-doc-header,
  #contractDocPage6 .contract-doc-header{
    margin-bottom:.035in !important;
    padding-bottom:.035in !important;
  }

  /* Área de firmas: títulos alineados al inicio de la línea y más espacio para firmar */
  .v127-signatures{
    margin-top:.38in !important;
    gap:.60in !important;
  }

  .contract-signature-block{
    text-align:left !important;
  }

  .contract-signature-party{
    text-align:left !important;
    margin-bottom:0 !important;
  }

  .contract-signature-space{
    height:.90in !important;
  }

  .v127-signatures .signature-line{
    width:100% !important;
    margin:0 0 .08in !important;
  }

  /* Los nombres debajo de la firma permanecen centrados */
  .contract-signature-name,
  .contract-signature-role{
    text-align:center !important;
  }

  /* En la última página, utilizar el espacio sobrante como área real de firma */
  #contractDocPage6 .contract-signature-space{
    height:1.10in !important;
  }


  /* V133 · Contrato reconstruido con flujo continuo y paginación automática */

  /* El documento visible se vuelve a crear dinámicamente desde el contenido contractual. */
  #contractFlowSource{
    display:none !important;
  }

  #contractPreviewStack{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:28px;
  }

  .contract-flow-page .contract-doc-inner{
    display:flex !important;
    flex-direction:column !important;
    height:100% !important;
    box-sizing:border-box !important;
  }

  .contract-flow-content{
    flex:1 1 auto;
    min-height:0;
    overflow:hidden;
    display:block;
  }

  .contract-flow-content > :first-child{
    margin-top:0 !important;
  }

  /* El contenido corre de una página a la siguiente; no hay páginas amarradas a términos específicos. */
  .contract-flow-content .contract-term-spaced{
    margin-top:1.15em !important;
  }

  /* Título central y 1.5 líneas debajo, dondequiera que caiga. */
  .contract-flow-content .contract-terms-main-title{
    text-align:center !important;
  }
  .contract-flow-content .contract-three-line-gap{
    height:1.95em !important;
  }

  /* Espaciado específico de los checkboxes de los términos 3 y 11. */
  .contract-flow-content .contract-payment-options,
  .contract-flow-content .contract-sizing-options{
    display:flex !important;
    flex-direction:column !important;
    gap:1.3em !important;
    margin-top:.45em !important;
    margin-bottom:.45em !important;
  }

  /* Todo el cuerpo no-título conserva 14px. */
  .contract-flow-page p,
  .contract-flow-page li,
  .contract-flow-page td,
  .contract-flow-page th,
  .contract-flow-page dt,
  .contract-flow-page dd,
  .contract-flow-page .contract-check-list,
  .contract-flow-page .contract-check-list div,
  .contract-flow-page .contract-check-list span,
  .contract-flow-page .contract-line-field,
  .contract-flow-page .contract-performance-grid,
  .contract-flow-page .contract-performance-grid span,
  .contract-flow-page .contract-performance-grid strong,
  .contract-flow-page .contract-performance-grid em,
  .contract-flow-page .contract-system-capacity,
  .contract-flow-page .contract-system-capacity strong,
  .contract-flow-page .contract-owner-box,
  .contract-flow-page .contract-doc-footer,
  .contract-flow-page .contract-signature-party,
  .contract-flow-page .contract-signature-name,
  .contract-flow-page .contract-signature-role{
    font-size:14px !important;
    line-height:1.3 !important;
  }

  /* Encabezado y footer compactos para maximizar el área útil. */
  .contract-flow-page .contract-doc-header{
    margin:0 0 .06in !important;
    padding:0 0 .045in !important;
    flex:0 0 auto;
  }
  .contract-flow-page .contract-doc-footer{
    flex:0 0 auto;
    margin-top:.05in !important;
    padding-top:.055in !important;
  }

  .contract-flow-page .contract-doc-inner{
    padding:.24in .48in .25in !important;
  }

  /* Mantener juntos bloques estructurales que no deben partirse visualmente. */
  .contract-flow-content .contract-party-grid,
  .contract-flow-content .contract-system-summary,
  .contract-flow-content .contract-performance-grid,
  .contract-flow-content .contract-signature-grid,
  .contract-flow-content table{
    break-inside:avoid;
    page-break-inside:avoid;
  }

  /* Firmas: izquierda arriba, suficiente área para firma, nombres centrados debajo. */
  .contract-flow-content .v127-signatures{
    margin-top:.32in !important;
    gap:.60in !important;
  }
  .contract-flow-content .contract-signature-block{
    text-align:left !important;
  }
  .contract-flow-content .contract-signature-party{
    text-align:left !important;
  }
  .contract-flow-content .contract-signature-space{
    height:1.0in !important;
  }
  .contract-flow-content .contract-signature-name,
  .contract-flow-content .contract-signature-role{
    text-align:center !important;
  }

  @media print{
    body.contract-print-mode #contractFlowSource{
      display:none !important;
    }
    body.contract-print-mode .contract-flow-page{
      overflow:hidden !important;
    }
  }


  /* V134 · Términos y Condiciones comienzan siempre en página 2 */
  #contractDocPage1 .contract-flow-content{
    overflow:hidden;
  }


  /* V135 · indentación de subincisos y opciones */
  .contract-flow-content .contract-check-list,
  .contract-flow-content .contract-payment-options,
  .contract-flow-content .contract-sizing-options{
    margin-left:.30in !important;
    margin-right:0 !important;
    width:auto !important;
  }

  .contract-flow-content .contract-check-list > div{
    padding-left:0 !important;
  }

  .contract-flow-content .contract-alpha-list{
    margin-left:.38in !important;
    padding-left:.22in !important;
  }

  .contract-flow-content .contract-alpha-list li{
    padding-left:.04in !important;
  }


  /* V137 · segundo inversor Fortress / SigEnergy */
  .second-inverter-field{display:flex;flex-direction:column;gap:7px;margin-top:8px;}
  .second-inverter-option{display:flex !important;align-items:flex-start;gap:10px;padding:10px 12px;border:1px solid #d7e1ee;border-radius:9px;background:#f8fbff;cursor:pointer;margin:0 !important;}
  .second-inverter-option input{width:18px;height:18px;margin:1px 0 0;accent-color:#0b3d91;flex:0 0 auto;}
  .second-inverter-option span{display:flex;flex-direction:column;gap:2px;}
  .second-inverter-option strong{color:#173f7e;font-size:13px;}
  .second-inverter-option small{color:#6b7d95;font-size:11px;line-height:1.3;}
  .second-inverter-summary{font-size:12px;color:#52657f;padding-left:2px;}
  .second-inverter-summary strong{color:#0b3d91;}


  /* V138 · botón Próximo en Información Cliente */
  .client-info-actions{
    justify-content:flex-end;
    margin-top:18px;
  }
  #clientInfoNextBtn{
    min-width:130px;
  }


  /* V139 · Login y administración de usuarios */
  body.auth-locked{
    overflow:hidden !important;
  }
  body.auth-locked > .topbar,
  body.auth-locked > main,
  body.auth-locked > .module-view{
    visibility:hidden !important;
  }

  .login-screen{
    position:fixed;
    inset:0;
    z-index:20000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:28px;
    background:
      radial-gradient(circle at 18% 20%, rgba(244,122,31,.18), transparent 30%),
      radial-gradient(circle at 82% 80%, rgba(70,145,227,.18), transparent 34%),
      linear-gradient(135deg,#062b67 0%,#0b3d91 52%,#0a4ca8 100%);
  }
  .login-screen.auth-hidden{display:none !important;}
  .login-shell{
    width:min(1020px,96vw);
    min-height:610px;
    display:grid;
    grid-template-columns:1.02fr .98fr;
    overflow:hidden;
    border-radius:26px;
    background:#fff;
    box-shadow:0 35px 90px rgba(0,20,60,.38);
  }
  .login-brand-panel{
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    padding:46px;
    color:#fff;
    background:
      linear-gradient(155deg,rgba(5,45,103,.98),rgba(10,76,168,.94));
    overflow:hidden;
  }
  .login-brand-panel::after{
    content:"";
    position:absolute;
    width:420px;
    height:420px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.12);
    right:-180px;
    bottom:-180px;
  }
  .login-logo-wrap{
    width:210px;
    height:250px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#fff;
    border-radius:24px;
    padding:18px;
    box-shadow:0 18px 45px rgba(0,24,70,.26);
    position:relative;
    z-index:1;
  }
  .login-logo-vertical{
    display:block;
    width:100%;
    height:100%;
    object-fit:contain;
  }
  .login-brand-copy{
    position:relative;
    z-index:1;
    text-align:center;
    max-width:390px;
    margin-top:28px;
  }
  .login-kicker{
    font-size:11px;
    font-weight:900;
    letter-spacing:.22em;
    color:#ffb477;
    margin-bottom:8px;
  }
  .login-brand-copy h1{
    margin:0;
    font-size:29px;
    line-height:1.16;
  }
  .login-brand-copy p{
    margin:12px 0 0;
    color:#dce9fb;
    line-height:1.55;
    font-size:14px;
  }
  .login-card{
    display:flex;
    flex-direction:column;
    justify-content:center;
    padding:52px 58px;
  }
  .login-card-kicker{
    color:#f47a1f;
    font-size:11px;
    font-weight:900;
    letter-spacing:.14em;
    text-transform:uppercase;
  }
  .login-card h2{
    color:#173f7e;
    font-size:30px;
    margin:6px 0 8px;
  }
  .login-help{
    color:#6d7d94;
    font-size:13px;
    line-height:1.5;
    margin:0 0 24px;
  }
  .login-field{margin-bottom:16px;}
  .login-field label{
    display:block;
    color:#334b6d;
    font-size:12px;
    font-weight:800;
    margin-bottom:7px;
  }
  .login-field input{
    width:100%;
    min-height:46px;
    border:1px solid #cfd9e7;
    border-radius:10px;
    padding:10px 12px;
    font:inherit;
    box-sizing:border-box;
  }
  .login-field input:focus{
    outline:none;
    border-color:#0b3d91;
    box-shadow:0 0 0 3px rgba(11,61,145,.09);
  }
  .password-field-wrap{
    position:relative;
  }
  .password-field-wrap input{padding-right:84px;}
  .password-toggle{
    position:absolute;
    right:7px;
    top:50%;
    transform:translateY(-50%);
    min-height:auto !important;
    padding:7px 9px !important;
    border-radius:7px !important;
    background:#eef4fb !important;
    color:#173f7e !important;
    font-size:11px !important;
  }
  .login-submit{
    width:100%;
    min-height:46px;
    margin-top:8px;
  }
  .login-message{
    min-height:18px;
    margin:4px 0 6px;
    color:#b42318;
    font-size:12px;
    font-weight:700;
  }
  .login-message.success{color:#28764a;}
  .login-subview[hidden]{display:none !important;}

  .topbar-session{
    display:flex;
    align-items:center;
    gap:12px;
    margin-left:auto;
    padding-left:14px;
    border-left:1px solid rgba(255,255,255,.17);
  }
  .topbar-user{
    display:flex;
    flex-direction:column;
    align-items:flex-end;
    color:#fff;
    line-height:1.2;
  }
  .topbar-user strong{font-size:12px;}
  .topbar-user span{
    font-size:10px;
    opacity:.78;
    margin-top:2px;
  }
  .topbar-logout{
    background:rgba(255,255,255,.10) !important;
    color:#fff !important;
    border:1px solid rgba(255,255,255,.22) !important;
    font-size:11px !important;
    padding:8px 10px !important;
  }

  body.user-role .admin-only{
    display:none !important;
  }
  body.user-role .admin-mode-toggle{
    display:none !important;
  }

  .page-subtitle{
    margin:5px 0 0;
    color:#75869f;
    font-size:13px;
  }
  .users-layout{
    display:grid;
    grid-template-columns:360px minmax(0,1fr);
    gap:18px;
    align-items:start;
  }
  .users-form-card{
    position:sticky;
    top:18px;
  }
  .user-form-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:13px;
  }
  .user-form-grid .full{grid-column:1/-1;}
  .user-form-grid label{
    display:block;
    margin-bottom:6px;
    color:#425a79;
    font-size:12px;
    font-weight:800;
  }
  .user-form-grid input,
  .user-form-grid select{
    width:100%;
    box-sizing:border-box;
  }
  .temp-password-row{
    display:grid;
    grid-template-columns:1fr auto;
    gap:8px;
  }
  .field-note{
    margin-top:5px;
    color:#7b8aa0;
    font-size:10px;
    line-height:1.35;
  }
  .user-admin-status{
    min-height:18px;
    margin-top:10px;
    color:#28764a;
    font-size:11px;
    font-weight:700;
    line-height:1.4;
  }
  .user-admin-status.error{color:#b42318;}
  .user-form-actions{
    justify-content:flex-end;
    margin-top:12px;
  }
  .users-table-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
  }
  .users-count{
    font-size:11px;
    color:#dce9fb;
  }
  .users-table-wrap{
    overflow:auto;
  }
  .users-table{
    width:100%;
    border-collapse:collapse;
    min-width:850px;
  }
  .users-table th{
    background:#eef4ff;
    color:#0b3d91;
    font-size:11px;
    text-align:left;
    padding:10px 12px;
  }
  .users-table td{
    padding:11px 12px;
    border-bottom:1px solid #e7edf5;
    font-size:12px;
    vertical-align:middle;
  }
  .user-role-badge,
  .user-status-badge,
  .user-password-badge{
    display:inline-flex;
    align-items:center;
    padding:4px 8px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    white-space:nowrap;
  }
  .user-role-badge.admin{background:#e8efff;color:#1748a0;}
  .user-role-badge.user{background:#f1f5f9;color:#475569;}
  .user-status-badge.active{background:#e8f6ee;color:#247447;}
  .user-status-badge.inactive{background:#fdecec;color:#a12b2b;}
  .user-password-badge.temp{background:#fff5df;color:#9a6500;}
  .user-password-badge.ready{background:#eef4f8;color:#52677d;}
  .user-action-row{
    display:flex;
    flex-wrap:wrap;
    gap:5px;
  }
  .user-action-row button{
    min-height:auto !important;
    padding:6px 8px !important;
    font-size:10px !important;
  }
  .user-danger{
    background:#fee8e8 !important;
    color:#9d2626 !important;
    border-color:#f4caca !important;
  }

  @media(max-width:900px){
    .login-shell{grid-template-columns:1fr;}
    .login-brand-panel{padding:28px;}
    .login-logo-wrap{width:150px;height:175px;}
    .login-brand-copy{margin-top:18px;}
    .login-card{padding:34px 28px;}
    .users-layout{grid-template-columns:1fr;}
    .users-form-card{position:static;}
    .topbar-session{order:4;width:100%;justify-content:flex-end;border-left:0;padding-left:0;}
  }


  /* V140 · ajustes de login y usuarios */
  .login-brand-copy h1{
    color:#f47a1f !important;
  }

  /* Nombre del usuario siempre en una sola línea */
  .users-table td:first-child,
  .users-table th:first-child{
    white-space:nowrap !important;
    min-width:190px;
  }

  .users-table td:nth-child(2),
  .users-table th:nth-child(2){
    min-width:210px;
  }

  .user-action-row .user-danger{
    white-space:nowrap;
  }

  .user-invite-note{
    margin-top:10px;
    padding:10px 12px;
    border-radius:9px;
    background:#fff8ed;
    border:1px solid #f6ddba;
    color:#7a5422;
    font-size:11px;
    line-height:1.45;
  }


  /* V141 · tabla de usuarios visible completa sin desplazamiento horizontal */
  .users-layout{
    grid-template-columns:320px minmax(0,1fr) !important;
  }

  .users-table-wrap{
    overflow-x:hidden !important;
    width:100%;
  }

  .users-table{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  .users-table th,
  .users-table td{
    padding:9px 7px !important;
    font-size:11px !important;
  }

  .users-table th:nth-child(1),
  .users-table td:nth-child(1){
    width:18% !important;
    min-width:0 !important;
    white-space:nowrap !important;
    overflow:hidden;
    text-overflow:ellipsis;
  }

  .users-table th:nth-child(2),
  .users-table td:nth-child(2){
    width:22% !important;
    min-width:0 !important;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
  }

  .users-table th:nth-child(3),
  .users-table td:nth-child(3){
    width:10% !important;
  }

  .users-table th:nth-child(4),
  .users-table td:nth-child(4){
    width:10% !important;
  }

  .users-table th:nth-child(5),
  .users-table td:nth-child(5){
    width:13% !important;
  }

  .users-table th:nth-child(6),
  .users-table td:nth-child(6){
    width:27% !important;
  }

  .user-action-row{
    display:grid !important;
    grid-template-columns:repeat(4,minmax(0,1fr)) !important;
    gap:4px !important;
    flex-wrap:nowrap !important;
    width:100%;
  }

  .user-action-row button{
    width:100% !important;
    min-width:0 !important;
    padding:6px 4px !important;
    font-size:9px !important;
    line-height:1.1 !important;
    white-space:nowrap !important;
  }

  @media(max-width:1100px){
    .users-layout{
      grid-template-columns:285px minmax(0,1fr) !important;
    }

    .users-table th,
    .users-table td{
      padding:8px 5px !important;
      font-size:10px !important;
    }

    .user-action-row button{
      font-size:8.5px !important;
      padding:6px 2px !important;
    }
  }


  /* V142 · ajuste botón Desactivar en Usuarios */
  .user-action-row{
    grid-template-columns:1fr 1.18fr .78fr .86fr !important;
  }

  .user-action-row button{
    font-size:8.5px !important;
    padding:6px 3px !important;
    letter-spacing:-0.01em;
  }

  .user-action-row button[data-user-action="toggle"]{
    font-size:8px !important;
    padding-left:2px !important;
    padding-right:2px !important;
  }


  /* V143 · CRM integrado */
  .crm-topbar,.crm-detail-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:18px;
  }
  .crm-topbar h1,.crm-detail-head h1{margin:3px 0 4px;color:#173f7e;}
  .crm-topbar p{margin:0;color:#6f8097;font-size:13px;}
  .crm-eyebrow,.crm-case-id{font-size:10px;font-weight:900;letter-spacing:.14em;color:#f47a1f;text-transform:uppercase;}
  .crm-subnav{display:flex;gap:8px;margin-bottom:18px;border-bottom:1px solid #dce5f0;padding-bottom:10px;}
  .crm-subtab,.crm-case-tabs button{background:#eef3f9;color:#51647e;border:1px solid transparent;}
  .crm-subtab.active,.crm-case-tabs button.active{background:#173f7e;color:#fff;}
  .crm-view,.crm-detail-tab{display:none;}
  .crm-view.active,.crm-detail-tab.active{display:block;}
  .crm-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin-bottom:18px;}
  .crm-metric-card{background:#fff;border:1px solid #dce5f0;border-radius:12px;padding:15px;box-shadow:0 5px 18px rgba(13,42,84,.05);}
  .crm-metric-card span{display:block;color:#6f8097;font-size:10px;font-weight:800;line-height:1.25;min-height:26px;}
  .crm-metric-card strong{display:block;color:#173f7e;font-size:26px;margin-top:5px;}
  .crm-filter-grid{display:grid;grid-template-columns:2fr 1.3fr 1.3fr 1fr;gap:12px;}
  .crm-filter-grid label,.crm-form-grid label{display:block;font-size:11px;font-weight:800;color:#52657f;margin-bottom:5px;}
  .crm-list-card{margin-top:14px;}
  .crm-list-head{display:flex;justify-content:space-between;align-items:center;}
  .crm-list-head span:last-child{font-size:11px;color:#dbe8f8;}
  .crm-table-wrap{width:100%;overflow:auto;}
  .crm-table{width:100%;border-collapse:collapse;min-width:820px;}
  .crm-table th{background:#eef4ff;color:#173f7e;text-align:left;padding:9px 10px;font-size:10px;white-space:nowrap;}
  .crm-table td{padding:10px;border-bottom:1px solid #e7edf4;font-size:11px;color:#40546f;vertical-align:middle;}
  .crm-table td strong{color:#173f7e;}
  .crm-status-pill{display:inline-flex;padding:4px 7px;border-radius:999px;background:#eef4ff;color:#174b98;font-size:9px;font-weight:800;white-space:nowrap;}
  .crm-status-pill.sold{background:#e9f7ef;color:#26764a;}
  .crm-status-pill.lost{background:#fdecec;color:#9b2f2f;}
  .crm-open-btn{min-height:auto!important;padding:6px 9px!important;font-size:10px!important;white-space:nowrap;}
  .crm-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:13px;}
  .crm-form-grid.compact{gap:10px;}
  .crm-form-grid .full{grid-column:1/-1;}
  .crm-form-grid input,.crm-form-grid select,.crm-form-grid textarea{width:100%;box-sizing:border-box;}
  .crm-back-link{background:transparent!important;border:0!important;color:#173f7e!important;padding:0!important;margin-bottom:9px;font-size:11px!important;}
  .crm-detail-meta{display:flex;flex-wrap:wrap;gap:8px;color:#6d7f97;font-size:11px;}
  .crm-detail-meta span{padding:4px 8px;background:#eef4fa;border-radius:999px;}
  .crm-detail-actions{display:flex;gap:8px;align-items:center;}
  .crm-case-tabs{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:16px;border-bottom:1px solid #dce5f0;padding-bottom:9px;}
  .crm-case-tabs button{font-size:11px;padding:8px 10px;}
  .crm-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .crm-summary-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px;}
  .crm-summary-item{border-bottom:1px solid #edf1f6;padding-bottom:8px;}
  .crm-summary-item span{display:block;color:#7a8a9f;font-size:9px;font-weight:800;text-transform:uppercase;}
  .crm-summary-item strong{display:block;color:#263d5d;font-size:12px;margin-top:2px;white-space:pre-line;}
  .crm-timeline{display:flex;flex-direction:column;gap:10px;}
  .crm-timeline-item{position:relative;border-left:3px solid #dbe6f4;padding:2px 0 10px 12px;}
  .crm-timeline-item strong{display:block;color:#173f7e;font-size:11px;}
  .crm-timeline-item p{margin:4px 0 0;color:#4d6079;font-size:11px;line-height:1.45;white-space:pre-line;}
  .crm-timeline-item small{display:block;color:#8795a8;margin-top:4px;font-size:9px;}
  .crm-project-locked{padding:24px;background:#f7f9fc;border:1px dashed #cfd9e7;border-radius:12px;color:#667990;text-align:center;}
  .crm-doc-summary{display:flex;flex-direction:column;gap:8px;}
  .crm-doc-row{display:flex;justify-content:space-between;gap:14px;padding:10px 12px;background:#f7f9fc;border:1px solid #e0e7f0;border-radius:9px;font-size:11px;}
  .crm-doc-row span{color:#6f8198;}
  .crm-empty{padding:22px;text-align:center;color:#8492a5;font-size:11px;}
  .crm-source-tag{display:inline-flex;padding:3px 7px;border-radius:999px;background:#fff4e8;color:#a85f18;font-size:9px;font-weight:800;}
  .crm-document-actions{display:flex;gap:5px;}
  .crm-document-actions button{min-height:auto!important;padding:5px 7px!important;font-size:9px!important;}
  @media(max-width:1100px){
    .crm-metrics{grid-template-columns:repeat(3,1fr);}
    .crm-filter-grid{grid-template-columns:1fr 1fr;}
    .crm-detail-grid{grid-template-columns:1fr;}
  }


  /* V144 · ajustes CRM solicitados */
  .crm-address-field textarea{
    min-height:112px !important;
    resize:vertical;
  }

  #crmCommentText{
    min-height:190px !important;
    resize:vertical;
  }

  .crm-case-table th:nth-child(1),
  .crm-case-table td:nth-child(1){
    white-space:nowrap !important;
    min-width:155px;
  }

  .crm-case-table th:nth-child(2),
  .crm-case-table td:nth-child(2){
    white-space:nowrap !important;
    min-width:125px;
  }

  .crm-proposal-contract-table{
    min-width:920px !important;
  }

  .crm-proposal-contract-table th,
  .crm-proposal-contract-table td{
    white-space:nowrap;
  }

  .crm-proposal-actions{
    padding:14px 16px;
    justify-content:flex-end;
  }

  #crmSaleAmount[readonly],
  #crmSoldSystem[readonly],
  #crmSoldKw[readonly],
  #crmSoldKwh[readonly]{
    background:#f3f6fa;
    color:#334b6d;
    font-weight:700;
  }


  /* V145 · seguimiento ancho completo + indicadores de progreso */
  #crmDetailFollowup .card:first-child .card-body > label,
  #crmDetailFollowup #crmCommentText{
    width:100% !important;
    box-sizing:border-box !important;
  }

  #crmCommentText{
    display:block !important;
    min-height:230px !important;
    width:100% !important;
    max-width:none !important;
  }

  .crm-progress-card{
    margin-bottom:16px;
  }

  .crm-step-flow{
    display:flex;
    align-items:stretch;
    gap:0;
    width:100%;
    overflow-x:auto;
    padding:4px 2px 10px;
  }

  .crm-step-item{
    position:relative;
    flex:1 0 118px;
    min-width:118px;
    display:flex;
    align-items:center;
  }

  .crm-step-box{
    position:relative;
    z-index:2;
    width:100%;
    min-height:60px;
    display:flex;
    align-items:center;
    justify-content:center;
    text-align:center;
    padding:8px 9px;
    box-sizing:border-box;
    background:#fff;
    border:2px solid #cfd9e7;
    border-radius:9px;
    color:#53677f;
    font-size:9px;
    line-height:1.2;
    font-weight:800;
    box-shadow:0 2px 5px rgba(18,48,88,.04);
  }

  .crm-step-item:not(:last-child)::after{
    content:"";
    position:absolute;
    z-index:1;
    right:-10px;
    width:20px;
    height:3px;
    top:50%;
    transform:translateY(-50%);
    background:#cfd9e7;
  }

  .crm-step-item.completed .crm-step-box,
  .crm-step-item.current .crm-step-box{
    background:#2fa85f;
    border-color:#278e51;
    color:#fff;
  }

  .crm-step-item.completed:not(:last-child)::after{
    background:#2fa85f;
  }

  .crm-step-item.current .crm-step-box{
    box-shadow:0 0 0 3px rgba(47,168,95,.16);
  }

  .crm-step-item.lost.current .crm-step-box{
    background:#2fa85f;
    border-color:#278e51;
  }

  .crm-step-item + .crm-step-item{
    margin-left:18px;
  }

  .project-flow .crm-step-item{
    flex-basis:126px;
    min-width:126px;
  }

  @media(max-width:900px){
    .crm-step-item{flex-basis:110px;min-width:110px;}
    .project-flow .crm-step-item{flex-basis:118px;min-width:118px;}
  }


  /* V146 · progreso completo sin scroll, con flechas, al final de cada sección */
  .crm-progress-bottom{
    margin-top:16px !important;
    margin-bottom:0 !important;
  }

  .crm-step-flow{
    display:grid !important;
    width:100% !important;
    overflow:visible !important;
    gap:16px 24px !important;
    padding:6px 4px !important;
    align-items:stretch !important;
  }

  .sales-flow{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }

  .project-flow{
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
  }

  .crm-step-item{
    position:relative !important;
    min-width:0 !important;
    width:auto !important;
    display:flex !important;
    align-items:center !important;
    margin-left:0 !important;
    flex:none !important;
  }

  .crm-step-box{
    width:100% !important;
    min-width:0 !important;
    min-height:60px !important;
    padding:8px 7px !important;
    font-size:8.5px !important;
  }

  /* Arrow connector to the next step */
  .crm-step-item:not(:last-child)::after{
    content:"➜" !important;
    position:absolute !important;
    z-index:4 !important;
    right:-19px !important;
    top:50% !important;
    transform:translateY(-50%) !important;
    width:auto !important;
    height:auto !important;
    background:transparent !important;
    color:#9aa9bb !important;
    font-size:17px !important;
    line-height:1 !important;
    font-weight:900 !important;
  }

  .crm-step-item.completed:not(:last-child)::after{
    color:#2fa85f !important;
    background:transparent !important;
  }

  /* For the last box of each visual row, hide the horizontal arrow. */
  .sales-flow .crm-step-item:nth-child(5)::after,
  .project-flow .crm-step-item:nth-child(5)::after,
  .project-flow .crm-step-item:nth-child(10)::after{
    content:"" !important;
  }

  /* Lost is the only red status */
  .crm-step-item.lost.current .crm-step-box{
    background:#c93f3f !important;
    border-color:#ad3030 !important;
    color:#fff !important;
    box-shadow:0 0 0 3px rgba(201,63,63,.14) !important;
  }

  .crm-step-item.lost.current::after{
    color:#c93f3f !important;
  }

  @media(max-width:1100px){
    .sales-flow,
    .project-flow{
      grid-template-columns:repeat(3,minmax(0,1fr)) !important;
    }

    .sales-flow .crm-step-item:nth-child(5)::after,
    .project-flow .crm-step-item:nth-child(5)::after,
    .project-flow .crm-step-item:nth-child(10)::after{
      content:"➜" !important;
    }

    .sales-flow .crm-step-item:nth-child(3n)::after,
    .project-flow .crm-step-item:nth-child(3n)::after{
      content:"" !important;
    }
  }


  /* V147 · nombre de documento en File del Cliente en una sola línea */
  #crmDocumentsRows td:first-child,
  #crmDocumentsRows td:first-child strong{
    white-space:nowrap !important;
  }

  #crmDocumentsRows td:first-child{
    min-width:220px;
  }


  /* V148 · progreso más legible, verde claro y selección por cuadro */
  .crm-step-box{
    font-size:10.5px !important;
    line-height:1.25 !important;
    font-weight:800 !important;
    min-height:64px !important;
    cursor:pointer !important;
    user-select:none;
  }

  .project-flow .crm-step-box{
    font-size:10px !important;
  }

  .crm-step-item.completed .crm-step-box,
  .crm-step-item.current .crm-step-box{
    background:#effdf4 !important;
    border-color:#baedc9 !important;
    color:#2f7a4b !important;
  }

  .crm-step-item.completed:not(:last-child)::after{
    color:#baedc9 !important;
  }

  .crm-step-item.current .crm-step-box{
    box-shadow:0 0 0 3px rgba(186,237,201,.35) !important;
  }

  .crm-step-item.lost.current .crm-step-box{
    background:#d95b5b !important;
    border-color:#bf4545 !important;
    color:#fff !important;
  }


  .crm-step-box:hover{
    transform:translateY(-1px);
    box-shadow:0 4px 10px rgba(23,63,126,.10);
  }


  /* V150 · checkbox + círculo con número en progreso comercial y proyecto */
  .crm-step-box{
    display:flex !important;
    align-items:center !important;
    justify-content:flex-start !important;
    gap:14px !important;
    text-align:left !important;
    padding:14px 14px !important;
    min-height:72px !important;
    border-radius:16px !important;
  }

  .crm-step-check{
    flex:0 0 28px;
    width:28px;
    height:28px;
    border-radius:9px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#ffffff;
    border:1.5px solid #b8bec7;
    color:#ffffff;
    font-size:22px;
    font-weight:900;
    line-height:1;
    box-shadow:0 1px 2px rgba(0,0,0,.06);
  }

  .crm-step-number{
    flex:0 0 44px;
    width:44px;
    height:44px;
    border-radius:999px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#e4e8ed;
    color:#253247;
    font-size:17px;
    font-weight:900;
    line-height:1;
  }

  .crm-step-label{
    flex:1 1 auto;
    display:block;
    font-size:11px;
    line-height:1.2;
    font-weight:800;
    letter-spacing:-0.01em;
  }

  .project-flow .crm-step-label{
    font-size:10.5px;
  }

  .crm-step-item.completed .crm-step-box,
  .crm-step-item.current .crm-step-box{
    background:#effdf4 !important;
    border-color:#7fce98 !important;
    color:#203142 !important;
  }

  .crm-step-item.completed .crm-step-check,
  .crm-step-item.current .crm-step-check{
    background:#2f80ed;
    border-color:#2f80ed;
    color:#ffffff;
  }

  .crm-step-item.completed .crm-step-number,
  .crm-step-item.current .crm-step-number{
    background:#1fb86a;
    color:#ffffff;
  }

  .crm-step-item.lost.current .crm-step-box{
    background:#fff1f1 !important;
    border-color:#d95b5b !important;
    color:#203142 !important;
  }

  .crm-step-item.lost.current .crm-step-check{
    background:#2f80ed;
    border-color:#2f80ed;
    color:#ffffff;
  }

  .crm-step-item.lost.current .crm-step-number{
    background:#d95b5b;
    color:#ffffff;
  }

  .crm-step-item:not(.completed):not(.current) .crm-step-box{
    background:#ffffff !important;
  }

  .crm-step-item:not(.completed):not(.current) .crm-step-label{
    color:#253247;
  }

  @media(max-width:1100px){
    .crm-step-box{
      gap:10px !important;
      padding:12px 10px !important;
    }
    .crm-step-check{
      width:24px;
      height:24px;
      flex-basis:24px;
      font-size:18px;
    }
    .crm-step-number{
      width:38px;
      height:38px;
      flex-basis:38px;
      font-size:15px;
    }
    .crm-step-label{
      font-size:10px;
    }
    .project-flow .crm-step-label{
      font-size:9.8px;
    }
  }


  /* V151 · checkbox y círculo más pequeños + texto contenido dentro del cuadro */
  .crm-step-box{
    gap:10px !important;
    padding:12px 12px !important;
    min-height:70px !important;
    overflow:hidden !important;
  }

  .crm-step-check{
    flex:0 0 22px !important;
    width:22px !important;
    height:22px !important;
    border-radius:7px !important;
    font-size:16px !important;
  }

  .crm-step-number{
    flex:0 0 34px !important;
    width:34px !important;
    height:34px !important;
    font-size:14px !important;
  }

  .crm-step-label{
    flex:1 1 auto !important;
    min-width:0 !important;
    max-width:100% !important;
    white-space:normal !important;
    overflow-wrap:anywhere !important;
    word-break:break-word !important;
    hyphens:auto !important;
    font-size:10.4px !important;
    line-height:1.16 !important;
  }

  .project-flow .crm-step-label{
    font-size:10px !important;
    line-height:1.14 !important;
  }

  @media(max-width:1100px){
    .crm-step-box{
      gap:8px !important;
      padding:10px 9px !important;
      min-height:66px !important;
    }

    .crm-step-check{
      flex-basis:20px !important;
      width:20px !important;
      height:20px !important;
      font-size:14px !important;
    }

    .crm-step-number{
      flex-basis:30px !important;
      width:30px !important;
      height:30px !important;
      font-size:13px !important;
    }

    .crm-step-label{
      font-size:9.4px !important;
      line-height:1.12 !important;
    }

    .project-flow .crm-step-label{
      font-size:9.1px !important;
    }
  }


  /* V152 · no dividir palabras dentro de los cuadros de progreso */
  .crm-step-label{
    white-space:normal !important;
    overflow-wrap:normal !important;
    word-break:normal !important;
    hyphens:none !important;
  }


  /* V153 · ajuste específico paso 9 del progreso del proyecto */
  .project-flow .crm-step-item:nth-child(9) .crm-step-label{
    max-width:86px !important;
    text-align:center !important;
    white-space:normal !important;
  }


  /* V154 · salto forzado correcto en Inspección/Activación */
  .project-flow .crm-step-item:nth-child(9) .crm-step-label{
    max-width:none !important;
    text-align:left !important;
    white-space:normal !important;
    overflow:visible !important;
  }


  /* V155 · dashboard: cliente y número de caso en columnas separadas y una sola línea */
  .crm-dashboard-attention-table th:nth-child(1),
  .crm-dashboard-attention-table td:nth-child(1){
    white-space:nowrap !important;
    min-width:170px;
  }

  .crm-dashboard-attention-table th:nth-child(2),
  .crm-dashboard-attention-table td:nth-child(2){
    white-space:nowrap !important;
    min-width:125px;
  }

  .crm-dashboard-attention-table td:nth-child(1) strong{
    white-space:nowrap !important;
  }


  /* V156 · seguimientos atrasados en rojo */
  .crm-overdue-row{
    background:#fff7f7 !important;
  }

  .crm-overdue-text{
    color:#c62828 !important;
    font-weight:800 !important;
  }

  .crm-summary-overdue{
    background:#fff3f3;
    border:1px solid #f2c6c6;
    border-radius:8px;
    padding:8px 9px;
  }

  .crm-summary-overdue span,
  .crm-summary-overdue strong{
    color:#c62828 !important;
  }


  /* V157 · comentario opcional en seguimiento */
  .field-note-inline{
    font-size:11px;
    font-weight:600;
    color:#7a8899;
  }


  /* V159 · toda fecha de seguimiento vencida se muestra en rojo */
  .crm-dashboard-attention-table .crm-overdue-text,
  .crm-case-table .crm-overdue-text,
  .crm-overdue-text{
    color:#d32f2f !important;
    font-weight:900 !important;
  }

  .crm-dashboard-attention-table tr.crm-overdue-row td:nth-child(6),
  .crm-case-table tr.crm-overdue-row td:nth-child(8){
    color:#d32f2f !important;
    font-weight:900 !important;
  }


  /* V160 · marcar seguimientos pendientes como completados */
  .crm-dashboard-actions,
  .crm-case-actions{
    white-space:nowrap;
  }

  .crm-dashboard-actions button,
  .crm-case-actions button{
    margin-right:5px;
  }

  .crm-followup-completed-item{
    border-left:4px solid #56b978;
    background:#f3fcf6;
  }

  #crmCompleteFollowupBtn:disabled{
    opacity:.55;
    cursor:not-allowed;
  }


  /* V161 · jerarquía visual del encabezado CRM */
  #crmModule .crm-eyebrow{
    font-size:30px !important;
    line-height:1.05 !important;
    font-weight:900 !important;
    letter-spacing:.01em !important;
    margin-bottom:6px !important;
  }

  #crmModule .crm-topbar h1{
    font-size:26px !important;
    line-height:1.1 !important;
    margin-top:0 !important;
  }


  /* V162 · respaldo completo de toda la aplicación */
  .full-app-backup-card{
    border:2px solid #d9e9f7;
  }

  .full-app-backup-card .card-head{
    font-weight:900;
  }

  .full-app-backup-card .db-backup-actions{
    min-width:245px;
  }

  .full-app-backup-card .db-backup-actions button{
    width:100%;
  }


  /* V163 · CRM Proyectos: Cliente e ID separados y todos los campos en una sola línea */
  #crmProjectsView .crm-projects-table th,
  #crmProjectsView .crm-projects-table td{
    white-space:nowrap !important;
  }

  #crmProjectsView .crm-project-client strong{
    white-space:nowrap !important;
  }

  #crmProjectsView .crm-project-case-id{
    font-weight:700;
    color:#5c6f8d;
    font-variant-numeric:tabular-nums;
  }

  #crmProjectsView .crm-projects-table{
    width:max-content;
    min-width:100%;
  }


  /* V164 · Proyecto solo existe visualmente cuando el caso está Vendido */
  #crmProjectDetailTabBtn[hidden]{
    display:none !important;
  }

  #crmDetailProject #crmProjectLocked{
    display:none !important;
  }


  /* ================================================================
     V165 · Landing, navegación visual y Reportes CRM
     ================================================================ */

  .v165-module-tabs{
    gap:8px !important;
    flex-wrap:wrap;
    justify-content:center;
  }
  .v165-module-tab{
    min-height:48px !important;
    padding:9px 14px !important;
    font-size:12.5px !important;
    font-weight:900 !important;
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    gap:7px;
    border-radius:10px !important;
  }
  .v165-tab-icon{
    width:25px;height:25px;border-radius:7px;
    display:inline-flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.14);
    font-size:16px;font-weight:900;line-height:1;
  }
  .v165-module-tab.active .v165-tab-icon{background:rgba(255,255,255,.24)}

  #homeModule.wrap{max-width:1500px;}
  .v165-home{padding:10px 0 38px;}
  .v165-home-hero{
    display:flex;align-items:center;justify-content:space-between;gap:24px;
    min-height:185px;padding:30px 34px;margin-bottom:24px;
    color:#fff;border-radius:22px;
    background:
      radial-gradient(circle at 82% 15%,rgba(255,255,255,.18),transparent 24%),
      linear-gradient(135deg,#0a3a88 0%,#0f4da8 58%,#ef7d00 140%);
    box-shadow:0 18px 40px rgba(10,58,136,.18);
  }
  .v165-home-kicker{font-size:11px;font-weight:900;letter-spacing:.18em;color:#ffd6ad;}
  .v165-home-hero h1{font-size:34px;margin:7px 0 8px;line-height:1.1;}
  .v165-home-hero p{margin:0;color:rgba(255,255,255,.80);font-size:15px;}
  .v165-home-mark{
    width:126px;height:126px;border-radius:26px;flex:0 0 auto;
    display:flex;flex-direction:column;align-items:center;justify-content:center;
    background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
    box-shadow:inset 0 1px rgba(255,255,255,.16);
  }
  .v165-home-mark span{font-size:38px;font-weight:950;letter-spacing:-.06em;}
  .v165-home-mark small{font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#ffd6ad;}

  .v165-launch-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;}
  .v165-launch-card{
    position:relative;min-height:190px;padding:24px;text-align:left;
    border:1px solid #dce7f4;border-radius:18px;background:#fff;color:#173f7e;
    box-shadow:0 10px 28px rgba(20,55,100,.07);
    display:grid;grid-template-columns:72px 1fr auto;align-items:center;gap:18px;
    cursor:pointer;overflow:hidden;transition:.18s ease;
  }
  .v165-launch-card::after{
    content:"";position:absolute;right:-36px;bottom:-52px;width:140px;height:140px;border-radius:50%;
    background:var(--tile-soft,#eef5fd);opacity:.85;
  }
  .v165-launch-card:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,55,100,.13);border-color:#bfd2e8;}
  .v165-launch-art{
    width:72px;height:72px;border-radius:18px;display:flex;align-items:center;justify-content:center;
    background:var(--tile-soft,#eef5fd);color:var(--tile,#0b3d91);z-index:1;
  }
  .v165-launch-art svg{width:48px;height:48px;fill:none;stroke:currentColor;stroke-width:4;stroke-linecap:round;stroke-linejoin:round;}
  .v165-launch-copy{z-index:1;}
  .v165-launch-copy strong{display:block;font-size:22px;color:#173f7e;margin-bottom:7px;}
  .v165-launch-copy small{display:block;color:#647791;font-size:11.5px;line-height:1.45;}
  .v165-launch-arrow{z-index:1;font-size:26px;color:var(--tile,#0b3d91);font-weight:900;}
  .crm-card{--tile:#0b3d91;--tile-soft:#eaf2ff}
  .analysis-card{--tile:#16845b;--tile-soft:#eaf8f2}
  .proposal-card{--tile:#ef7d00;--tile-soft:#fff3e7}
  .contract-card{--tile:#7347a8;--tile-soft:#f4edfb}
  .projects-card{--tile:#2f7e4c;--tile-soft:#eaf6ee}
  .reports-card{--tile:#147ca8;--tile-soft:#e9f7fb}
  .database-card{--tile:#4f6078;--tile-soft:#eef1f5}

  .v165-crm-subnav{gap:10px !important;padding-bottom:12px !important;}
  .v165-crm-subnav .crm-subtab{
    min-height:43px !important;padding:9px 16px !important;border-radius:9px !important;
    font-size:12.5px !important;font-weight:900 !important;display:inline-flex;align-items:center;gap:7px;
  }
  .v165-crm-subnav .crm-subtab span{font-size:13px;opacity:.82;}

  .v165-report-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px;}
  .v165-report-head h2{margin:3px 0 5px;color:#173f7e;font-size:25px;}
  .v165-report-head p{margin:0;color:#6f8097;font-size:12px;}
  .v165-report-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap;}
  .v165-report-filter-card{margin-bottom:15px;}
  .v165-report-filter-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1.25fr;gap:12px;}
  .v165-report-filter-grid label{display:block;font-size:10px;font-weight:900;color:#52657f;margin-bottom:5px;}
  .v165-report-filter-grid input,.v165-report-filter-grid select{width:100%;box-sizing:border-box;}

  .v165-report-metrics{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:11px;margin-bottom:15px;}
  .v165-report-metric{background:#fff;border:1px solid #dce6f2;border-top:4px solid #0b3d91;border-radius:12px;padding:13px 14px;box-shadow:0 5px 16px rgba(18,48,88,.05);}
  .v165-report-metric span{display:block;color:#687b95;font-size:9px;font-weight:900;text-transform:uppercase;letter-spacing:.035em;}
  .v165-report-metric strong{display:block;color:#173f7e;font-size:23px;margin:4px 0 2px;white-space:nowrap;}
  .v165-report-metric small{font-size:8.5px;color:#8a98aa;}
  .v165-report-metric.success{border-top-color:#3b9967}
  .v165-report-metric.danger{border-top-color:#cc5b5b}
  .v165-report-metric.money{border-top-color:#ef7d00}
  .v165-report-metric.money strong{font-size:18px;color:#a95c12;}

  .v165-period-summary{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
  .v165-period-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;}
  .v165-period-cards>div{padding:11px;border:1px solid #e1e8f1;border-radius:9px;background:#f8fafc;}
  .v165-period-cards span{display:block;color:#71829a;font-size:8.5px;font-weight:800;}
  .v165-period-cards strong{display:block;margin-top:5px;color:#173f7e;font-size:18px;white-space:nowrap;}

  .v165-report-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-bottom:14px;}
  .v165-bar-chart{display:flex;flex-direction:column;gap:9px;}
  .v165-bar-row{display:grid;grid-template-columns:145px 1fr 86px;align-items:center;gap:9px;}
  .v165-bar-label{font-size:9px;color:#51647e;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .v165-bar-track{height:10px;background:#edf2f7;border-radius:99px;overflow:hidden;}
  .v165-bar-fill{height:100%;border-radius:99px;background:linear-gradient(90deg,#0b3d91,#2e6dca);min-width:0;}
  .v165-bar-row.sales .v165-bar-fill{background:linear-gradient(90deg,#ef7d00,#f3a451);}
  .v165-bar-value{text-align:right;font-size:9px;color:#173f7e;font-weight:900;white-space:nowrap;}

  .v165-report-table-card{margin-bottom:14px;}
  .v165-report-table{min-width:720px;}
  .v165-report-table th,.v165-report-table td{white-space:nowrap;}
  .v165-report-table td:nth-child(n+2){text-align:right;}
  .v165-report-table th:nth-child(n+2){text-align:right;}

  .v165-demo-card p{margin:0 0 13px;color:#5e718b;font-size:11px;line-height:1.5;}
  .v165-demo-count{display:flex;align-items:baseline;gap:8px;margin:10px 0 15px;}
  .v165-demo-count strong{font-size:28px;color:#173f7e;}
  .v165-demo-count span{font-size:10px;color:#78889d;font-weight:800;}

  @media(max-width:1200px){
    .v165-launch-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
    .v165-report-metrics{grid-template-columns:repeat(3,1fr);}
    .v165-report-filter-grid{grid-template-columns:repeat(2,1fr);}
  }
  @media(max-width:760px){
    .v165-home-hero{padding:24px;min-height:auto;}
    .v165-home-mark{display:none;}
    .v165-home-hero h1{font-size:27px;}
    .v165-launch-grid,.v165-report-grid,.v165-period-summary{grid-template-columns:1fr;}
    .v165-launch-card{min-height:150px;grid-template-columns:58px 1fr auto;padding:18px;}
    .v165-launch-art{width:58px;height:58px;}
    .v165-launch-art svg{width:39px;height:39px;}
    .v165-report-metrics{grid-template-columns:repeat(2,1fr);}
    .v165-period-cards{grid-template-columns:1fr;}
    .v165-bar-row{grid-template-columns:110px 1fr 70px;}
  }

  @media print{
    body.v165-print-report .topbar,
    body.v165-print-report #homeModule,
    body.v165-print-report #analysisModule,
    body.v165-print-report #proposalModule,
    body.v165-print-report #contractModule,
    body.v165-print-report #crmModule > :not(#crmReportsView){
      display:none !important;
    }
    body.v165-print-report #crmModule,
    body.v165-print-report #crmReportsView{
      display:block !important;
    }
    body.v165-print-report #crmReportsView{padding:0 !important;}
    body.v165-print-report .v165-report-actions,
    body.v165-print-report .v165-report-filter-card,
    body.v165-print-report .v165-demo-card{display:none !important;}
    body.v165-print-report .card,
    body.v165-print-report .v165-report-metric{box-shadow:none !important;break-inside:avoid;}
  }


  /* ================================================================
     V166 · CEnergyS Power Hub branding, readability & reporting
     ================================================================ */
  .v165-home-kicker{
    font-size:22px !important;
    line-height:1.05 !important;
    letter-spacing:.08em !important;
    font-weight:950 !important;
    color:#fff !important;
    text-shadow:0 2px 10px rgba(0,0,0,.22);
  }
  .v165-home-hero h1,
  .v165-home-hero h1 span{
    color:#fff !important;
    text-shadow:0 2px 12px rgba(0,0,0,.24);
  }
  .v165-home-hero p:empty{display:none !important;}

  .v166-powerhub-logo{
    flex:0 0 auto;
    min-width:250px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:12px 16px;
    border-radius:22px;
    background:rgba(255,255,255,.10);
    border:1px solid rgba(255,255,255,.22);
    box-shadow:inset 0 1px rgba(255,255,255,.12);
  }
  .v166-powerhub-emblem{width:86px;height:86px;flex:0 0 86px}
  .v166-powerhub-emblem svg{display:block;width:100%;height:100%}
  .v166-powerhub-wordmark strong{
    display:block;color:#fff;font-size:23px;line-height:1;font-weight:950;letter-spacing:-.03em;
    text-shadow:0 2px 8px rgba(0,0,0,.18);
  }
  .v166-powerhub-wordmark strong span{color:#ff8b16}
  .v166-powerhub-wordmark small{
    display:block;margin-top:7px;color:#ffd3a8;font-size:10px;font-weight:900;letter-spacing:.24em;
  }

  .v166-quarter-user-card{margin-bottom:14px;}
  .v166-quarter-user-card th:not(:first-child),
  .v166-quarter-user-card td:not(:first-child){text-align:right;white-space:nowrap;}
  .v166-total-row{background:#eef5fd;font-weight:900;}
  .v166-total-row td{border-top:2px solid #b7cce4 !important;}

  @media(max-width:760px){
    .v166-powerhub-logo{display:none;}
    .v165-home-kicker{font-size:18px !important;}
  }


  /* ================================================================
     V167 · refinamiento de marca Power Hub
     ================================================================ */
  .v165-home-kicker{
    display:flex !important;
    flex-direction:column;
    align-items:flex-start;
    gap:2px;
    font-size:unset !important;
    line-height:1 !important;
  }
  .v167-kicker-brand{
    display:block;
    color:#ff981f !important;
    font-size:32px !important;
    font-weight:1000 !important;
    letter-spacing:.04em !important;
    line-height:.95 !important;
    text-shadow:0 3px 14px rgba(0,0,0,.22);
  }
  .v167-kicker-sub{
    display:block;
    color:#ffffff !important;
    font-size:18px !important;
    font-weight:900 !important;
    letter-spacing:.23em !important;
    line-height:1.05 !important;
    text-shadow:0 2px 10px rgba(0,0,0,.22);
  }

  .v166-powerhub-logo{
    min-width:325px !important;
    gap:16px !important;
    padding:12px 18px !important;
    background:rgba(255,255,255,.09) !important;
    border:1px solid rgba(255,255,255,.18) !important;
    border-radius:24px !important;
  }
  .v167-powerhub-emblem{
    width:102px;
    height:102px;
    flex:0 0 102px;
    display:block;
  }
  .v167-powerhub-emblem svg{
    display:block;
    width:100%;
    height:100%;
  }
  .v166-powerhub-wordmark strong{
    color:#ffffff !important;
    font-size:26px !important;
    font-weight:1000 !important;
    letter-spacing:.01em !important;
    text-shadow:0 2px 10px rgba(0,0,0,.2);
  }
  .v166-powerhub-wordmark small{
    color:#ffd2a5 !important;
    font-size:11px !important;
    letter-spacing:.28em !important;
    font-weight:900 !important;
    margin-top:8px !important;
  }

  @media(max-width:760px){
    .v167-kicker-brand{font-size:25px !important;}
    .v167-kicker-sub{font-size:15px !important;}
  }


  /* ================================================================
     V168 · logo Power Hub usando logo adjunto del usuario
     ================================================================ */
  .v168-powerhub-logo{
    min-width:340px !important;
    gap:18px !important;
    padding:14px 18px !important;
    align-items:center;
  }
  .v168-powerhub-image-wrap{
    width:110px;
    height:110px;
    flex:0 0 110px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .v168-powerhub-image{
    width:100%;
    height:100%;
    object-fit:contain;
    display:block;
    filter:drop-shadow(0 6px 12px rgba(0,0,0,.16));
  }
  .v168-powerhub-wordmark strong{
    color:#ffffff !important;
    font-size:27px !important;
    font-weight:1000 !important;
    letter-spacing:.01em !important;
    line-height:1 !important;
  }
  .v168-powerhub-wordmark small{
    color:#ffd2a5 !important;
    font-size:11px !important;
    letter-spacing:.30em !important;
    font-weight:900 !important;
    margin-top:9px !important;
  }
  @media(max-width:760px){
    .v168-powerhub-logo{min-width:auto !important;}
    .v168-powerhub-image-wrap{width:88px;height:88px;flex-basis:88px;}
    .v168-powerhub-wordmark strong{font-size:23px !important;}
  }


  /* V169 · tabla de Casos: Responsable y Teléfono en una sola línea */
  #crmCasesView .crm-case-table td.crm-case-owner,
  #crmCasesView .crm-case-table td.crm-case-phone,
  #crmCasesView .crm-case-table th:nth-child(4),
  #crmCasesView .crm-case-table th:nth-child(5){
    white-space:nowrap !important;
  }

  #crmCasesView .crm-case-table td.crm-case-owner{
    min-width:125px;
  }

  #crmCasesView .crm-case-table td.crm-case-phone{
    min-width:118px;
    font-variant-numeric:tabular-nums;
  }

  #crmCasesView .crm-case-table{
    width:max-content;
    min-width:100%;
  }


  /* ================================================================
     V170 · Comisiones por usuario, lead de compañía y comisión proyecto
     ================================================================ */
  .v170-percent-input{
    display:flex;align-items:center;border:1px solid #cdd6e4;border-radius:8px;background:#fff;overflow:hidden;
  }
  .v170-percent-input input{border:0 !important;box-shadow:none !important;width:100%;min-width:0;}
  .v170-percent-input span{padding:0 10px;color:#53677f;font-weight:900;}
  .v170-commission-note{
    padding:9px 11px;border-radius:8px;background:#f4f8fd;color:#61738c;font-size:10px;line-height:1.4;
  }
  .v170-user-rate{font-weight:900;color:#173f7e;white-space:nowrap;}
  .v170-check-row{
    display:flex !important;align-items:center;gap:9px;margin:0 !important;font-weight:800 !important;color:#334b6d;
  }
  .v170-check-row input{width:18px !important;height:18px !important;flex:0 0 18px;}
  .v170-company-lead-field{align-self:end;}
  .v170-commission-project{
    margin-top:17px;padding:15px;border:1px solid #cfe0f3;border-radius:12px;background:#f8fbff;
  }
  .v170-commission-project-head{
    display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:13px;padding-bottom:10px;border-bottom:1px solid #dce7f4;
  }
  .v170-commission-project-head strong{display:block;color:#173f7e;font-size:14px;}
  .v170-commission-project-head span{display:block;margin-top:3px;color:#6a7d96;font-size:9.5px;}
  .v170-rate-source{
    padding:5px 9px;border-radius:999px;background:#e9f2fd;color:#0b3d91;font-size:9px;font-weight:900;white-space:nowrap;
  }
  #crmCommissionEarned[readonly],#crmCommissionOwed[readonly]{background:#eef4fa;font-weight:900;color:#173f7e;}
  .v170-commission-report{margin-bottom:14px;}
  .v170-commission-report th:not(:first-child),.v170-commission-report td:not(:first-child){text-align:right;white-space:nowrap;}

  body.user-role .v170-commission-project{display:none !important;}


  /* V171 · reporte personal de ventas y comisiones */
  body.user-role #crmReportsView .v170-commission-report{
    display:block !important;
  }

  body.user-role #crmReportsView .v170-commission-report .card-head::after{
    content:"Solo lectura";
    float:right;
    padding:3px 8px;
    border-radius:999px;
    background:#eef4fa;
    color:#53677f;
    font-size:8px;
    font-weight:900;
    letter-spacing:.03em;
    text-transform:uppercase;
  }

  body.user-role #crmReportsView .v170-commission-report th:nth-child(1),
  body.user-role #crmReportsView .v170-commission-report td:nth-child(1){
    min-width:170px;
  }


  /* V172 · accesos administrativos directos */
  .users-card{--tile:#a34f9e;--tile-soft:#f8edf7}

  #moduleTabDatabase,
  #moduleTabUsers{
    min-width:112px;
  }

  body.user-role #moduleTabDatabase,
  body.user-role #moduleTabUsers,
  body.user-role [data-home-destination="database"],
  body.user-role [data-home-destination="users"]{
    display:none !important;
  }


  /* V173 · Vista administrador controla también accesos administrativos */
  body:not(.admin-mode) #moduleTabDatabase,
  body:not(.admin-mode) #moduleTabUsers,
  body:not(.admin-mode) [data-home-destination="database"],
  body:not(.admin-mode) [data-home-destination="users"]{
    display:none !important;
  }


  /* ================================================================
     V174 · reportes por usuario, alineación y trazabilidad de comisiones
     ================================================================ */
  #crmReportUserRows td:first-child,
  #crmReportUserRows td:first-child strong,
  #crmReportCommissionRows td:first-child,
  #crmReportCommissionRows td:first-child strong,
  #crmReportQuarterUserRows td:first-child,
  #crmReportSourceRows td:first-child,
  #crmReportSourceRows td:first-child strong,
  .v174-left{
    text-align:left !important;
  }

  #crmReportUserRows td:first-child,
  #crmReportCommissionRows td:first-child,
  #crmReportQuarterUserRows td:first-child,
  #crmReportSourceRows td:first-child{
    padding-left:14px !important;
  }

  .v174-user-report-link{
    appearance:none;border:0;background:transparent;padding:0;margin:0;
    color:#0b3d91;font:inherit;font-weight:900;text-align:left;cursor:pointer;
    text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px;
  }
  .v174-user-report-link:hover{color:#ef7d00;}

  .v174-user-report-head{
    display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:16px;
  }
  .v174-user-report-head h1{margin:4px 0 5px;color:#173f7e;font-size:28px;}
  .v174-user-report-head p{margin:0;color:#6d7e94;font-size:11px;}
  .v174-user-summary-grid{
    display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:11px;margin-bottom:15px;
  }
  .v174-user-info-grid{
    display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;
  }
  .v174-user-info-grid>div{
    padding:11px;border:1px solid #e1e8f1;border-radius:9px;background:#f8fafc;
  }
  .v174-user-info-grid span{display:block;font-size:8.5px;color:#75859a;font-weight:900;text-transform:uppercase;}
  .v174-user-info-grid strong{display:block;margin-top:5px;color:#173f7e;font-size:12px;}
  .v174-project-commission-table,.v174-payment-summary,.v174-user-admin-data{margin-bottom:14px;}
  .v174-project-commission-table th,.v174-project-commission-table td{white-space:nowrap;}
  .v174-commission-status{
    display:inline-flex;padding:4px 8px;border-radius:999px;font-size:8.5px;font-weight:900;
  }
  .v174-commission-status.paid{background:#e7f7ed;color:#267848;}
  .v174-commission-status.partial{background:#fff4dc;color:#9a6510;}
  .v174-commission-status.unpaid{background:#fdeaea;color:#a83f3f;}

  @media(max-width:1100px){
    .v174-user-summary-grid{grid-template-columns:repeat(2,1fr);}
    .v174-user-info-grid{grid-template-columns:repeat(2,1fr);}
  }

  @media print{
    body.v174-print-user-report .topbar,
    body.v174-print-user-report #homeModule,
    body.v174-print-user-report #analysisModule,
    body.v174-print-user-report #proposalModule,
    body.v174-print-user-report #contractModule,
    body.v174-print-user-report #crmModule > :not(#crmUserReportView){
      display:none !important;
    }
    body.v174-print-user-report #crmModule,
    body.v174-print-user-report #crmUserReportView{
      display:block !important;
    }
    body.v174-print-user-report #crmUserReportView{padding:0 !important;}
    body.v174-print-user-report .v174-user-report-head .v165-report-actions,
    body.v174-print-user-report .crm-back-link{display:none !important;}
    body.v174-print-user-report .card,
    body.v174-print-user-report .v165-report-metric{box-shadow:none !important;break-inside:avoid;}
  }


  /* ================================================================
     V175 · gráficas de ventas, alineación y visibilidad admin
     ================================================================ */
  body:not(.admin-mode) #moduleTabDatabase,
  body:not(.admin-mode) #moduleTabUsers,
  body:not(.admin-mode) button[data-home-destination="database"],
  body:not(.admin-mode) button[data-home-destination="users"]{
    display:none !important;
    visibility:hidden !important;
  }

  .v170-commission-report thead th:first-child,
  .v170-commission-report tbody td:first-child,
  .v166-quarter-user-card thead th:first-child,
  .v166-quarter-user-card tbody td:first-child,
  #crmReportSourceRows td:first-child,
  #crmReportsView table:has(#crmReportSourceRows) thead th:first-child{
    text-align:left !important;
    padding-left:14px !important;
  }

  .v175-sales-user-chart-card,
  .v175-quarter-user-chart-card{margin-bottom:14px;}

  .v175-user-sales-chart,
  .v175-quarter-user-chart{display:flex;flex-direction:column;gap:10px;}

  .v175-chart-row{
    display:grid;
    grid-template-columns:minmax(155px,220px) 1fr 105px;
    align-items:center;
    gap:12px;
  }
  .v175-chart-user,
  .v175-quarter-user-name{
    appearance:none;border:0;background:transparent;padding:0;
    color:#173f7e;font:inherit;font-weight:900;text-align:left;cursor:pointer;
  }
  .v175-chart-user:hover,.v175-quarter-user-name:hover{color:#ef7d00;}
  .v175-chart-track,.v175-quarter-track{
    height:12px;background:#edf2f7;border-radius:999px;overflow:hidden;
  }
  .v175-chart-fill,.v175-quarter-fill{
    height:100%;border-radius:999px;background:linear-gradient(90deg,#0f4da8,#2f80ed);
  }
  .v175-chart-row>strong{
    text-align:right;color:#173f7e;font-size:10px;white-space:nowrap;
  }

  .v175-quarter-user-group{
    display:grid;grid-template-columns:minmax(155px,220px) 1fr;
    gap:14px;padding:10px 0;border-bottom:1px solid #edf1f6;
  }
  .v175-quarter-user-group:last-child{border-bottom:0;}
  .v175-quarter-bars{display:grid;gap:6px;}
  .v175-quarter-line{
    display:grid;grid-template-columns:28px 1fr 95px;
    align-items:center;gap:9px;
  }
  .v175-quarter-line>span{font-size:9px;font-weight:900;color:#6c7f98;}
  .v175-quarter-line>strong{text-align:right;font-size:9px;color:#173f7e;white-space:nowrap;}
  .v175-quarter-fill.q2{background:linear-gradient(90deg,#2a7a53,#45ad6a);}
  .v175-quarter-fill.q3{background:linear-gradient(90deg,#c97914,#f0a33e);}
  .v175-quarter-fill.q4{background:linear-gradient(90deg,#7540a8,#9c65c9);}

  @media(max-width:800px){
    .v175-chart-row{grid-template-columns:1fr;gap:5px;}
    .v175-chart-row>strong{text-align:left;}
    .v175-quarter-user-group{grid-template-columns:1fr;}
  }


  /* ================================================================
     V176 · reconciliación de Casos Cerrados
     ================================================================ */
  .v176-closed-cases-card .card-head{
    text-align:center !important;
    justify-content:center !important;
  }

  .v176-closed-cases-card .v165-period-cards > div{
    text-align:center !important;
    align-items:center !important;
    justify-content:center !important;
  }

  .v176-closed-cases-card .v165-period-cards span,
  .v176-closed-cases-card .v165-period-cards strong{
    display:block !important;
    width:100%;
    text-align:center !important;
  }

  #crmReportMonthlyRows td:nth-child(1),
  #crmReportMonthlyRows td:nth-child(2),
  #crmReportMonthlyRows td:nth-child(3),
  #crmReportMonthlyRows td:nth-child(4),
  #crmReportQuarterRows td:nth-child(1),
  #crmReportQuarterRows td:nth-child(2),
  #crmReportQuarterRows td:nth-child(3),
  #crmReportQuarterRows td:nth-child(4){
    text-align:center !important;
  }


  /* ================================================================
     V178 · navegación de reportes y acceso directo a pago de comisión
     ================================================================ */
  .v178-payment-guide{
    margin-bottom:14px;
    border-color:#cfe0f3 !important;
    background:#f8fbff;
  }
  .v178-payment-guide p{
    margin:0;
    color:#50647e;
    font-size:11px;
    line-height:1.55;
  }
  .v178-payment-btn{
    white-space:nowrap;
    font-size:9px !important;
    padding:6px 9px !important;
  }
  #crmProjectCommissionSection{
    transition:box-shadow .25s ease, transform .25s ease;
  }
  #crmProjectCommissionSection.v178-payment-focus{
    box-shadow:0 0 0 4px rgba(239,125,0,.22),0 12px 30px rgba(20,55,100,.12) !important;
    transform:translateY(-2px);
  }

  /* Cualquier nombre de usuario clickeable en reportes mantiene la misma apariencia. */
  #crmReportCommissionRows .v174-user-report-link,
  #crmReportQuarterUserRows .v174-user-report-link{
    display:inline-block;
    text-align:left !important;
  }


  /* ================================================================
     V179 · Comisión del Proyecto + Reporte de Contabilidad
     ================================================================ */
  #crmProjectCommissionSection{
    padding:0 !important;
    overflow:hidden;
    border:1px solid #c8d9ee !important;
    background:#fff !important;
  }

  .v179-commission-titlebar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:12px 15px;
    background:#0b3d91;
    color:#fff;
  }

  .v179-commission-titlebar strong{
    display:block;
    font-size:13px;
    font-weight:950;
  }

  .v179-commission-titlebar span{
    display:block;
    margin-top:3px;
    font-size:9px;
    color:#d9e8fb;
  }

  .v179-commission-titlebar .v170-rate-source{
    background:rgba(255,255,255,.14);
    color:#fff;
    border:1px solid rgba(255,255,255,.24);
  }

  .v179-commission-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px 18px;
    padding:16px;
  }

  .v179-field.full{
    grid-column:1/-1;
  }

  .v179-field label{
    display:block;
    margin-bottom:6px;
    font-size:10px;
    font-weight:900;
    color:#334b6d;
  }

  #crmCommissionRetention[readonly],
  #crmCommissionNetPaid[readonly],
  #crmCommissionEarned[readonly],
  #crmCommissionOwed[readonly]{
    background:#f0f5fb !important;
    font-weight:900;
    color:#173f7e;
  }

  .v179-accounting-report{
    margin:14px 0;
  }

  .v179-accounting-head{
    display:flex !important;
    align-items:center;
    justify-content:space-between;
    gap:12px;
  }

  .v179-accounting-head strong{
    display:block;
  }

  .v179-accounting-head small{
    display:block;
    margin-top:3px;
    color:#6d7e94;
    font-weight:600;
  }

  .v179-accounting-controls{
    display:grid;
    grid-template-columns:180px 190px 1fr;
    gap:14px;
    align-items:end;
  }

  .v179-accounting-range label{
    display:block;
  }

  #crmAccountingRangeLabel{
    min-height:40px;
    display:flex;
    align-items:center;
    padding:0 12px;
    border:1px solid #d8e1ec;
    border-radius:8px;
    background:#f7f9fc;
    color:#173f7e;
    font-weight:900;
  }

  .v179-accounting-table th,
  .v179-accounting-table td{
    text-align:right !important;
    white-space:nowrap;
  }

  .v179-accounting-table th:first-child,
  .v179-accounting-table td:first-child{
    text-align:left !important;
  }

  @media(max-width:800px){
    .v179-commission-grid{
      grid-template-columns:1fr;
    }
    .v179-field.full{grid-column:auto;}
    .v179-accounting-controls{
      grid-template-columns:1fr;
    }
  }

  @media print{
    body.v179-print-accounting .topbar,
    body.v179-print-accounting #homeModule,
    body.v179-print-accounting #analysisModule,
    body.v179-print-accounting #proposalModule,
    body.v179-print-accounting #contractModule,
    body.v179-print-accounting #crmModule > :not(#crmReportsView),
    body.v179-print-accounting #crmReportsView > :not(#crmAccountingReportCard){
      display:none !important;
    }

    body.v179-print-accounting #crmModule,
    body.v179-print-accounting #crmReportsView,
    body.v179-print-accounting #crmAccountingReportCard{
      display:block !important;
    }

    body.v179-print-accounting #crmAccountingReportCard{
      box-shadow:none !important;
      border:0 !important;
      margin:0 !important;
    }

    body.v179-print-accounting #crmAccountingPdfBtn,
    body.v179-print-accounting .v179-accounting-controls{
      display:none !important;
    }

    body.v179-print-accounting #crmAccountingReportCard .card-head{
      font-size:18px !important;
      padding:12px 0 18px !important;
      background:#fff !important;
      color:#173f7e !important;
      border-bottom:2px solid #173f7e;
    }

    body.v179-print-accounting #crmAccountingReportCard .card-body{
      padding:0 !important;
    }
  }


  /* ================================================================
     V180 · Exención Abdeel + reporte contable compacto Letter
     ================================================================ */
  #crmAccountingReportCard .crm-table-wrap{
    overflow:visible !important;
  }

  .v179-accounting-table{
    width:100% !important;
    table-layout:fixed !important;
  }

  .v179-accounting-table th,
  .v179-accounting-table td{
    padding:7px 8px !important;
    font-size:10px !important;
    line-height:1.15 !important;
  }

  .v179-accounting-table th:first-child,
  .v179-accounting-table td:first-child{
    width:40% !important;
  }

  .v179-accounting-table th:not(:first-child),
  .v179-accounting-table td:not(:first-child){
    width:20% !important;
  }

  @media print{
    body.v179-print-accounting{
      width:8.5in !important;
      min-width:8.5in !important;
      max-width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
      overflow:hidden !important;
      background:#fff !important;
    }

    body.v179-print-accounting #crmModule,
    body.v179-print-accounting #crmReportsView{
      width:8.5in !important;
      max-width:8.5in !important;
      margin:0 !important;
      padding:0 !important;
      overflow:hidden !important;
    }

    body.v179-print-accounting #crmAccountingReportCard{
      width:7.7in !important;
      max-width:7.7in !important;
      box-sizing:border-box !important;
      margin:0.35in auto 0 !important;
      padding:0 !important;
      overflow:hidden !important;
    }

    body.v179-print-accounting #crmAccountingReportCard .card-head{
      padding:8px 0 10px !important;
      font-size:14px !important;
      line-height:1.15 !important;
    }

    body.v179-print-accounting #crmAccountingReportCard .card-head small{
      font-size:8px !important;
      line-height:1.2 !important;
      margin-top:2px !important;
    }

    body.v179-print-accounting #crmAccountingReportCard .crm-table-wrap{
      width:100% !important;
      max-width:100% !important;
      overflow:hidden !important;
    }

    body.v179-print-accounting .v179-accounting-table{
      width:100% !important;
      max-width:100% !important;
      table-layout:fixed !important;
      border-collapse:collapse !important;
    }

    body.v179-print-accounting .v179-accounting-table th,
    body.v179-print-accounting .v179-accounting-table td{
      box-sizing:border-box !important;
      padding:5px 5px !important;
      font-size:8.5px !important;
      line-height:1.1 !important;
      white-space:normal !important;
      overflow-wrap:anywhere !important;
    }

    body.v179-print-accounting .v179-accounting-table th:first-child,
    body.v179-print-accounting .v179-accounting-table td:first-child{
      width:40% !important;
      text-align:left !important;
    }

    body.v179-print-accounting .v179-accounting-table th:nth-child(2),
    body.v179-print-accounting .v179-accounting-table td:nth-child(2),
    body.v179-print-accounting .v179-accounting-table th:nth-child(3),
    body.v179-print-accounting .v179-accounting-table td:nth-child(3),
    body.v179-print-accounting .v179-accounting-table th:nth-child(4),
    body.v179-print-accounting .v179-accounting-table td:nth-child(4){
      width:20% !important;
      text-align:right !important;
    }
  }


  /* ================================================================
     V182 · Acciones uniformes: Generar PDF + Imprimir
     ================================================================ */
  .proposal-module-actions,
  .contract-preview-actions,
  .v165-report-actions,
  .v179-accounting-head{
    flex-wrap:wrap;
  }

  #downloadProposalPdf,
  #downloadContractPdf,
  #crmPrintReportBtn,
  #crmPrintUserReportBtn,
  #crmAccountingPdfBtn{
    background:#0b3d91 !important;
    color:#fff !important;
    border-color:#0b3d91 !important;
  }

  #printProposalModule,
  #contractPrintInline,
  #crmPrintReportPaperBtn,
  #crmPrintUserReportPaperBtn,
  #crmAccountingPrintBtn{
    background:#fff !important;
    color:#0b3d91 !important;
    border:1px solid #b8c8dc !important;
  }


  /* ================================================================
     V184 · botones documentos + estilo uniforme de reportes
     ================================================================ */
  #downloadProposalPdf,
  #downloadContractPdf,
  #crmPrintReportBtn,
  #crmPrintUserReportBtn,
  #crmAccountingPdfBtn{
    background:#c62828 !important;
    color:#ffffff !important;
    border:1px solid #c62828 !important;
    box-shadow:0 4px 10px rgba(198,40,40,.20) !important;
  }

  #downloadProposalPdf:hover,
  #downloadContractPdf:hover,
  #crmPrintReportBtn:hover,
  #crmPrintUserReportBtn:hover,
  #crmAccountingPdfBtn:hover{
    background:#a91f1f !important;
    border-color:#a91f1f !important;
  }

  #printProposalModule,
  #contractPrintInline,
  #crmPrintReportPaperBtn,
  #crmPrintUserReportPaperBtn,
  #crmAccountingPrintBtn{
    background:#ffffff !important;
    color:#0b3d91 !important;
    border:1px solid #b7c7da !important;
    box-shadow:none !important;
  }

  .v179-accounting-head > div{
    flex:1 1 auto;
  }

  .v179-accounting-head #crmAccountingPdfBtn{
    order:2;
    margin-left:auto;
  }

  .v179-accounting-head #crmAccountingPrintBtn{
    order:3;
  }


  .v184-accounting-actions{
    display:flex;
    align-items:center;
    gap:8px;
    margin-left:auto;
  }


  /* ================================================================
     V186 · Caso LUMA, depósito y cierre visual de Perdido
     ================================================================ */
  .v186-deposit-box{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:16px;
    align-items:center;
    padding:14px !important;
    border:1px solid transparent;
    border-radius:10px;
    transition:background .2s ease,border-color .2s ease,box-shadow .2s ease;
  }

  .v186-deposit-box.pending{
    background:#fff0f0;
    border-color:#efc2c2;
  }

  .v186-deposit-box.received{
    background:#eaf6ee;
    border-color:#b9ddc4;
    box-shadow:inset 4px 0 0 #3f9b60;
  }

  .v186-deposit-field{
    min-width:0;
  }

  .v186-deposit-check{
    display:flex !important;
    align-items:center;
    gap:8px;
    padding:10px 12px;
    margin:0 !important;
    border-radius:9px;
    background:rgba(255,255,255,.72);
    border:1px solid rgba(50,80,110,.14);
    color:#173f7e;
    font-size:10px !important;
    font-weight:900 !important;
    white-space:nowrap;
    cursor:pointer;
  }

  .v186-deposit-check input{
    width:18px !important;
    height:18px !important;
    min-width:18px;
    margin:0 !important;
    accent-color:#3f9b60;
  }

  #crmProjectDeposit[readonly]{
    font-weight:900;
    color:#173f7e;
  }

  #crmLumaCaseNumber{
    font-weight:800;
    color:#173f7e;
  }

  .crm-step-item.sold-excluded .crm-step-box{
    position:relative;
    opacity:.78;
    background:#f6f7f9 !important;
    border-color:#cfd6df !important;
    color:#7b8796 !important;
  }

  .crm-step-item.sold-excluded .crm-step-check{
    background:#ffffff !important;
    color:#b83232 !important;
    border:2px solid #b83232 !important;
    font-size:14px !important;
    font-weight:950 !important;
  }

  .crm-step-item.sold-excluded .crm-step-label{
    text-decoration:line-through;
    text-decoration-thickness:1.5px;
  }

  @media(max-width:760px){
    .v186-deposit-box{
      grid-template-columns:1fr;
    }
    .v186-deposit-check{
      justify-content:flex-start;
    }
  }


  /* ================================================================
     V187 · progreso con fechas, facturación y vendedor de cierre
     ================================================================ */
  .v187-progress-table-wrap{
    margin-top:16px;
    border:1px solid #d9e3ef;
    border-radius:10px;
    overflow:hidden;
  }

  .v187-progress-table{
    margin:0 !important;
  }

  .v187-progress-table th:first-child,
  .v187-progress-table td:first-child{
    text-align:left !important;
  }

  .v187-progress-table th:last-child,
  .v187-progress-table td:last-child{
    text-align:center !important;
    width:150px;
  }

  .v187-progress-table tr.v187-step-complete{
    background:#eaf6ee;
  }

  .v187-step-name{
    display:flex !important;
    align-items:center;
    gap:8px;
    margin:0 !important;
    font-weight:800 !important;
    color:#173f7e !important;
    cursor:pointer;
  }

  .v187-step-name input{
    width:17px !important;
    height:17px !important;
    min-width:17px;
    margin:0 !important;
    accent-color:#3f9b60;
  }

  .v187-step-date{
    width:130px !important;
    min-width:130px;
    height:32px !important;
    padding:4px 7px !important;
  }

  .v187-step-date:disabled{
    background:#f3f5f8 !important;
    color:#98a3b1 !important;
  }

  .v187-install-date-row{
    margin-top:14px;
  }

  .v187-install-date-row label{
    display:block;
    margin-bottom:6px;
    font-size:10px;
    font-weight:900;
    color:#334b6d;
  }

  .v187-billing-card{
    margin-top:16px;
  }

  .v187-billing-top{
    max-width:360px;
  }

  .v187-billing-steps{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px;
    margin-top:16px;
  }

  .v187-billing-step{
    display:flex !important;
    align-items:center;
    gap:10px;
    min-height:54px;
    padding:12px 14px;
    margin:0 !important;
    border-radius:10px;
    border:1px solid transparent;
    font-size:11px !important;
    font-weight:900 !important;
    color:#173f7e !important;
    cursor:pointer;
    transition:.18s ease;
  }

  .v187-billing-step.pending{
    background:#fff0f0;
    border-color:#efc2c2;
  }

  .v187-billing-step.done{
    background:#eaf6ee;
    border-color:#b9ddc4;
    box-shadow:inset 4px 0 0 #3f9b60;
  }

  .v187-billing-step input{
    width:18px !important;
    height:18px !important;
    min-width:18px;
    margin:0 !important;
    accent-color:#3f9b60;
  }

  #crmClosedBySeller[readonly]{
    background:#f0f5fb !important;
    color:#173f7e;
    font-weight:900;
  }

  @media(max-width:760px){
    .v187-billing-steps{
      grid-template-columns:1fr;
    }
  }


  /* ================================================================
     V188 · fechas visibles + sincronización bidireccional sin scroll
     ================================================================ */
  .v187-progress-table td:last-child{
    vertical-align:middle !important;
  }

  .v187-step-date{
    display:block !important;
    width:138px !important;
    min-width:138px !important;
    margin:0 auto !important;
    border:1px solid #b9c8da !important;
    background:#fff !important;
    color:#173f7e !important;
    font-weight:800 !important;
  }

  .v187-step-date:disabled{
    opacity:1 !important;
    background:#f4f6f9 !important;
    color:#98a3b1 !important;
    border-color:#dde3ea !important;
  }

  .v188-date-status{
    margin-top:4px;
    text-align:center;
    font-size:8px;
    font-weight:800;
    color:#7a8ba0;
  }

  .v187-step-complete .v188-date-status{
    color:#3f8e59;
  }

  .v188-flow-date{
    display:block;
    margin-top:4px;
    font-size:8px;
    line-height:1.1;
    font-weight:800;
    color:#77879a;
    white-space:nowrap;
  }

  .crm-step-item.completed .v188-flow-date{
    color:#2f7e4c;
  }


  /* ================================================================
     V189 · fecha solo en la tabla, alineada al extremo derecho
     ================================================================ */
  .v187-progress-table th:last-child,
  .v187-progress-table td:last-child{
    width:190px !important;
    min-width:190px !important;
    text-align:right !important;
    padding-right:14px !important;
  }

  .v187-progress-table th:last-child{
    white-space:nowrap;
  }

  .v187-step-date{
    margin-left:auto !important;
    margin-right:0 !important;
  }

  .v188-date-status{
    text-align:right !important;
  }

  .v188-flow-date{
    display:none !important;
  }


  /* ================================================================
     V190 · acceso directo a Proyectos + fecha visible en tabla
     ================================================================ */
  .v190-project-status-card{
    grid-column:1 / -1 !important;
  }

  .v190-project-status-card .v187-progress-table-wrap{
    width:100%;
    overflow-x:auto;
  }

  .v190-project-status-card .v187-progress-table{
    width:100% !important;
    min-width:720px !important;
    table-layout:fixed !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(1),
  .v190-project-status-card .v187-progress-table td:nth-child(1){
    width:auto !important;
    text-align:left !important;
    padding-left:14px !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(2),
  .v190-project-status-card .v187-progress-table td:nth-child(2){
    width:110px !important;
    text-align:center !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(3),
  .v190-project-status-card .v187-progress-table td:nth-child(3){
    width:190px !important;
    min-width:190px !important;
    text-align:right !important;
    padding-right:16px !important;
  }

  .v190-step-label{
    color:#173f7e;
    font-weight:800;
  }

  .v190-step-check{
    width:18px !important;
    height:18px !important;
    margin:0 auto !important;
    accent-color:#3f9b60;
  }

  .v190-step-date-cell .v187-step-date{
    display:block !important;
    width:150px !important;
    min-width:150px !important;
    height:34px !important;
    margin-left:auto !important;
    margin-right:0 !important;
    padding:5px 8px !important;
    border:1px solid #b9c8da !important;
    border-radius:7px !important;
    background:#fff !important;
    color:#173f7e !important;
    font-size:11px !important;
    font-weight:800 !important;
    opacity:1 !important;
    box-sizing:border-box !important;
  }

  .v190-step-date-cell .v187-step-date:disabled{
    background:#f4f6f9 !important;
    color:#9aa5b3 !important;
    border-color:#dde3ea !important;
    opacity:1 !important;
  }


  /* ================================================================
     V191 · restaurar formato anterior, mantener fechas visibles
     ================================================================ */
  .v190-project-status-card{
    grid-column:auto !important;
  }

  .v190-project-status-card .v187-progress-table-wrap{
    width:100% !important;
    overflow-x:hidden !important;
  }

  .v190-project-status-card .v187-progress-table{
    width:100% !important;
    min-width:0 !important;
    table-layout:fixed !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(1),
  .v190-project-status-card .v187-progress-table td:nth-child(1){
    width:auto !important;
    text-align:left !important;
    padding-left:10px !important;
    padding-right:6px !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(2),
  .v190-project-status-card .v187-progress-table td:nth-child(2){
    width:68px !important;
    text-align:center !important;
    padding-left:4px !important;
    padding-right:4px !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(3),
  .v190-project-status-card .v187-progress-table td:nth-child(3){
    width:138px !important;
    min-width:138px !important;
    text-align:right !important;
    padding-left:4px !important;
    padding-right:8px !important;
  }

  .v190-project-status-card .v187-progress-table th{
    font-size:9px !important;
    line-height:1.1 !important;
  }

  .v190-project-status-card .v187-progress-table td{
    font-size:9px !important;
    line-height:1.15 !important;
  }

  .v190-step-label{
    white-space:normal !important;
    overflow-wrap:anywhere;
  }

  .v190-step-date-cell .v187-step-date{
    width:124px !important;
    min-width:124px !important;
    height:31px !important;
    padding:3px 5px !important;
    font-size:9px !important;
    margin-left:auto !important;
    margin-right:0 !important;
  }

  .v190-step-check{
    width:16px !important;
    height:16px !important;
    min-width:16px !important;
  }

  .v187-install-date-row{
    margin-top:12px !important;
  }

  @media(max-width:1100px){
    .v190-project-status-card .v187-progress-table{
      min-width:0 !important;
    }
  }


  /* ================================================================
     V192 · fecha centrada y tipografía más grande
     ================================================================ */
  .v190-project-status-card .v187-progress-table th:nth-child(3),
  .v190-project-status-card .v187-progress-table td:nth-child(3){
    text-align:center !important;
  }

  .v190-step-date-cell .v187-step-date{
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    font-size:10.5px !important;
    font-weight:900 !important;
  }

  .v190-project-status-card .v187-progress-table th:nth-child(3){
    font-size:10px !important;
  }


  /* ================================================================
     V193 · Monto de venta en formato currency
     ================================================================ */
  #crmSaleAmount{
    text-align:right !important;
    font-variant-numeric:tabular-nums;
    font-weight:900 !important;
    color:#173f7e !important;
  }


  /* ================================================================
     V194 · fecha más centrada y tipografía mayor
     ================================================================ */
  .v190-step-date-cell{
    vertical-align:middle !important;
    text-align:center !important;
  }

  .v190-step-date-cell .v187-step-date{
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    text-align:center !important;
    margin:0 auto !important;
    height:34px !important;
    line-height:34px !important;
    font-size:12px !important;
    font-weight:900 !important;
    padding:0 6px !important;
  }

  .v190-project-status-card .v187-progress-table td:nth-child(3){
    vertical-align:middle !important;
    text-align:center !important;
  }


/* ================================================================
   V198 · Base de Datos de Usuarios: acciones completamente visibles
   ================================================================ */
.users-table-wrap{
  overflow-x:auto !important;
  width:100% !important;
}

.users-table{
  width:100% !important;
  min-width:980px !important;
  table-layout:fixed !important;
}

.users-table th:nth-child(1),
.users-table td:nth-child(1){width:16% !important;}
.users-table th:nth-child(2),
.users-table td:nth-child(2){width:18% !important;}
.users-table th:nth-child(3),
.users-table td:nth-child(3){width:8% !important;}
.users-table th:nth-child(4),
.users-table td:nth-child(4){width:9% !important;}
.users-table th:nth-child(5),
.users-table td:nth-child(5){width:10% !important;}
.users-table th:nth-child(6),
.users-table td:nth-child(6){width:9% !important;}
.users-table th:nth-child(7),
.users-table td:nth-child(7){width:10% !important;}
.users-table th:nth-child(8),
.users-table td:nth-child(8){width:20% !important;}

.user-action-row{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:5px !important;
  width:100% !important;
}

.user-action-row button{
  display:block !important;
  visibility:visible !important;
  opacity:1 !important;
  width:100% !important;
  min-width:0 !important;
  padding:7px 5px !important;
  font-size:9px !important;
  line-height:1.15 !important;
  white-space:nowrap !important;
}

.user-action-row button[data-user-action="edit"]{
  background:#eef4ff !important;
  color:#174b98 !important;
  border-color:#c9d9ef !important;
}

.user-action-row button[data-user-action="delete"]{
  background:#fee8e8 !important;
  color:#9d2626 !important;
  border-color:#f4caca !important;
}


/* ================================================================
   V200 · acceso directo Casos
   ================================================================ */
.cases-card{--tile:#45678f;--tile-soft:#edf3f8}


/* ================================================================
   V201 · Nombre del caso clickeable
   ================================================================ */
.crm-case-name-link{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  font:inherit;
  font-weight:900;
  color:#173f7e;
  cursor:pointer;
  text-align:left;
  text-decoration:none;
}
.crm-case-name-link:hover,
.crm-case-name-link:focus-visible{
  text-decoration:underline;
  color:#0e5aa7;
  outline:none;
}


/* ================================================================
   V202 · Columna de nombres de Casos alineada a la izquierda
   ================================================================ */
.crm-case-table th:first-child,
.crm-case-table td:first-child{
  text-align:left !important;
}
.crm-case-name-link{
  text-align:left !important;
  justify-content:flex-start !important;
}


/* ================================================================
   V203 · Selección segura de caso para Propuesta / Contrato
   ================================================================ */
#crmCasesListTitle{text-align:left}
.crm-case-actions .crm-open-btn{white-space:nowrap}


/* ================================================================
   V204 · Nombres clickeables en Casos y Proyectos
   ================================================================ */
.crm-case-table th:first-child,
.crm-case-table td:first-child,
.crm-projects-table th:first-child,
.crm-projects-table td:first-child,
.crm-project-client{
  text-align:left !important;
}

.crm-case-name-link,
.crm-project-name-link{
  display:inline-block !important;
  width:auto !important;
  max-width:100%;
  text-align:left !important;
  pointer-events:auto !important;
  cursor:pointer !important;
}

.crm-project-name-link{
  font-weight:900 !important;
  color:#173f7e !important;
  text-decoration:none !important;
}

.crm-project-name-link:hover,
.crm-project-name-link:focus-visible{
  color:#0e5aa7 !important;
  text-decoration:underline !important;
}


/* ================================================================
   V205 · accesos directos al workspace del caso
   ================================================================ */
.v205-case-workspace-actions{
  padding:14px 16px 16px !important;
  justify-content:flex-start !important;
  flex-wrap:wrap !important;
  gap:8px !important;
}
.v205-case-workspace-actions button[hidden]{display:none !important;}


/* ================================================================
   V206 · Fase 1: módulo Análisis de Rentabilidad integrado
   ================================================================ */
.profitability-card{--tile:#23698f;--tile-soft:#eaf5fb}

.v206-profitability-module{
  display:none;
  width:100%;
  min-height:calc(100vh - 76px);
  padding:0 !important;
  margin:0 !important;
  max-width:none !important;
  background:#f5f7fa;
}
.v206-profitability-module.active{display:block}
.v206-profitability-frame{
  display:block;
  width:100%;
  height:calc(100vh - 76px);
  min-height:760px;
  border:0;
  background:#f5f7fa;
}


/* ================================================================
   V211 · ajustes finales CRM / Análisis / Contabilidad
   ================================================================ */

/* CRM dashboard · nombres de clientes a la izquierda */
#crmAttentionRows td:first-child,
#crmAttentionRows .crm-case-name-link,
#crmAttentionRows + *{
  text-align:left !important;
}
#crmAttentionRows .crm-case-name-link{
  justify-content:flex-start !important;
}

/* Acciones de títulos en Análisis */
.v211-title-actions{
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:16px !important;
}
.v211-analysis-actions,
.v211-system-title-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.proposal-title-line{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.v211-system-title-actions .proposal-title-button{
  margin:0 !important;
}
.client-info-actions{
  justify-content:flex-end;
  gap:8px;
}

/* Rango visible también en el reporte impreso */
.v211-accounting-report-range{
  display:block;
  margin-top:4px;
  font-weight:800;
}
@media print{
  body.v179-print-accounting .v211-accounting-report-range{
    display:block !important;
    font-size:9px !important;
    margin-top:4px !important;
  }
}

@media(max-width:800px){
  .v211-title-actions,
  .proposal-title-line{
    align-items:flex-start !important;
    flex-direction:column;
  }
}


/* V218 · encabezados ordenables */
table thead th:not([data-no-sort]){
  cursor:pointer;
  user-select:none;
}
table thead th:not([data-no-sort])::after{
  content:" ↕";
  opacity:.35;
  font-size:.85em;
}
table thead th.sort-asc::after{
  content:" ↑";
  opacity:1;
}
table thead th.sort-desc::after{
  content:" ↓";
  opacity:1;
}
table thead th[data-no-sort]{
  cursor:default;
}
.crm-case-actions{
  display:flex;
  align-items:center;
  gap:6px;
  flex-wrap:nowrap;
  white-space:nowrap;
}
.crm-edit-list-btn,
.crm-delete-list-btn{
  white-space:nowrap;
}


/* ================================================================
   V220 · Comisión del Proyecto visible para usuarios
   ================================================================ */
body.user-role #crmProjectCommissionSection{
  display:block !important;
  visibility:visible !important;
}

body.user-role #crmProjectCommissionSection .admin-only{
  display:none !important;
  visibility:hidden !important;
}

body.user-role #crmProjectCommissionPct[readonly]{
  background:#f0f5fb !important;
  color:#173f7e;
  font-weight:900;
  cursor:default;
}

body.user-role #crmProjectCommissionSection .v179-commission-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
}

@media(max-width:900px){
  body.user-role #crmProjectCommissionSection .v179-commission-grid{
    grid-template-columns:1fr;
  }
}


/* ================================================================
   V223 · Inventario administrativo
   ================================================================ */
.inventory-module{padding-bottom:40px}
.inventory-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin:22px 0 18px}
.inventory-head h1{margin:2px 0 6px}
.inventory-head p{margin:0;color:#63758d}
.inventory-head-actions{display:flex;gap:10px;flex-wrap:wrap}
.inventory-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}
.inventory-toolbar-card{margin-bottom:16px}
.inventory-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) minmax(190px,280px);gap:12px}
.inventory-list-card{overflow:hidden}
.inventory-table th,.inventory-table td{white-space:nowrap}
.inventory-table td:first-child{min-width:230px;white-space:normal}
.inventory-subline{font-size:11px;color:#728197;margin-top:3px}
.inventory-low-row{background:#fff8ed}
.inventory-sync-badge{display:inline-flex;padding:4px 8px;border-radius:999px;background:#eef2f7;color:#5a687c;font-size:11px;font-weight:800}
.inventory-sync-badge.linked{background:#e8f4ff;color:#0756a1}
.inventory-best-price-text{color:#168347!important;font-weight:900!important}
.inventory-editor-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(300px,.75fr);gap:18px;align-items:start}
.inventory-supplier-card,.inventory-cost-card,.inventory-doc-card{margin-top:16px}
.inventory-supplier-table{display:grid;gap:8px}
.inventory-supplier-head,.inventory-supplier-row{display:grid;grid-template-columns:minmax(180px,1.4fr) minmax(150px,.8fr) minmax(145px,.7fr) auto;gap:10px;align-items:center}
.inventory-supplier-head{font-size:11px;font-weight:900;color:#607087;text-transform:uppercase;padding:0 8px}
.inventory-supplier-row{border:1px solid #dce5ef;border-radius:12px;padding:9px;background:#fff}
.inventory-supplier-row.best{border:2px solid #34a853;background:#edf9f1;box-shadow:0 0 0 2px rgba(52,168,83,.08)}
.inventory-supplier-row.best [data-supplier-price]{font-weight:900;color:#13783a}
.inventory-doc-list{display:grid;gap:8px;margin-top:12px}
.inventory-doc-row{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:10px;border:1px solid #dce5ef;border-radius:10px}
.inventory-doc-row small{display:block;color:#768499;margin-top:2px}
.inventory-doc-row>div:last-child{display:flex;gap:6px}
.inventory-doc-empty,.inventory-supplier-empty{padding:18px 8px}
.inventory-editor-actions{margin:18px 0 8px}
.user-role-badge.tech{background:#e8f0ff;color:#294f9b}
@media(max-width:1100px){.inventory-editor-grid{grid-template-columns:1fr}.inventory-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:720px){.inventory-head{flex-direction:column}.inventory-metrics{grid-template-columns:1fr 1fr}.inventory-toolbar{grid-template-columns:1fr}.inventory-supplier-head{display:none}.inventory-supplier-row{grid-template-columns:1fr}.inventory-table{min-width:1100px}}


/* ================================================================
   V224 · Topbar en dos filas + Inventario operativo
   ================================================================ */
.topbar{
  display:grid !important;
  grid-template-columns:auto 1fr auto auto !important;
  grid-template-areas:"brand spacer session admin" "tabs tabs tabs tabs" !important;
  align-items:center !important;
  gap:12px 18px !important;
}
.topbar-brand-block{grid-area:brand !important;min-width:0 !important;}
.topbar-session{grid-area:session !important;margin-left:0 !important;}
.admin-mode-toggle{grid-area:admin !important;}
.module-tabs.v165-module-tabs{
  grid-area:tabs !important;
  width:100% !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:flex-start !important;
  align-items:center !important;
  overflow-x:auto !important;
  overflow-y:hidden !important;
  padding:2px 0 4px !important;
  scrollbar-width:thin;
}
.module-tabs.v165-module-tabs .v165-module-tab{flex:0 0 auto !important;white-space:nowrap !important;}

.inventory-table th:first-child,
.inventory-table td:first-child{text-align:left !important;}
.inventory-table td:first-child .crm-case-name-link{text-align:left !important;justify-content:flex-start !important;}
.inventory-title-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;}
.inventory-title-row h1{margin:2px 0 6px;}
.inventory-back-btn{margin-left:auto;}
.inventory-supplier-card .card-head{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;}
.inventory-add-supplier-btn{margin-left:auto !important;position:relative;right:0;}
.inventory-supplier-head,.inventory-supplier-row{grid-template-columns:minmax(170px,1.25fr) minmax(150px,.9fr) minmax(135px,.75fr) minmax(145px,.75fr) auto !important;}
.inventory-cost-history-card,.inventory-movement-card{margin-top:16px;}
.inventory-cost-history{display:grid;gap:7px;}
.inventory-cost-history-row{display:grid;grid-template-columns:100px 120px 1fr;gap:10px;align-items:center;padding:9px 10px;border:1px solid #e0e7f0;border-radius:9px;background:#fff;}
.inventory-cost-history-row small{color:#6b7b90;}
.inventory-movement-card .card-head{display:flex;justify-content:space-between;gap:16px;align-items:center;flex-wrap:wrap;}
.inventory-movement-actions{display:flex;gap:7px;flex-wrap:wrap;margin-left:auto;}
.inventory-movement-form{padding:14px;margin-bottom:14px;border:1px solid #ccd9e8;border-radius:12px;background:#f7faff;}
.inventory-movement-form[hidden]{display:none !important;}
.inventory-movement-form-head{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:12px;}
.inventory-movement-list{display:grid;gap:8px;}
.inventory-movement-row{display:grid;grid-template-columns:minmax(170px,1fr) 80px minmax(180px,1fr);gap:12px;align-items:center;padding:10px 12px;border:1px solid #e0e7f0;border-radius:10px;background:#fff;}
.inventory-movement-row small{display:block;color:#728197;margin-top:2px;}
.inventory-movement-qty{text-align:center;font-size:16px;font-weight:900;}
.inventory-movement-qty.positive{color:#168347;}
.inventory-movement-qty.negative{color:#b42318;}
@media(max-width:900px){
  .topbar{grid-template-columns:1fr auto !important;grid-template-areas:"brand session" "admin admin" "tabs tabs" !important;}
  .inventory-movement-row,.inventory-cost-history-row{grid-template-columns:1fr;}
}


/* ================================================================
   V225 · Movimientos de inventario: tabla contenida + Descripción
   ================================================================ */
.inventory-movement-table-wrap{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.inventory-movement-table{
  width:100%;
  max-width:100%;
  table-layout:fixed;
  border-collapse:collapse;
  font-size:12px;
}
.inventory-movement-table th,
.inventory-movement-table td{
  padding:9px 7px;
  border-bottom:1px solid #e2e8f0;
  vertical-align:top;
  overflow-wrap:anywhere;
  word-break:normal;
}
.inventory-movement-table th{
  text-align:left;
  white-space:normal;
  font-size:11px;
}
.inventory-movement-table .num{
  text-align:right;
  white-space:nowrap;
}
.inventory-movement-table .mov-col-date{width:12%}
.inventory-movement-table .mov-col-type{width:13%}
.inventory-movement-table .mov-col-description{width:25%}
.inventory-movement-table .mov-col-reference{width:22%}
.inventory-movement-table .mov-col-qty{width:10%}
.inventory-movement-table .mov-col-before{width:9%}
.inventory-movement-table .mov-col-after{width:9%}
.inventory-movement-description{
  line-height:1.35;
}
.inventory-movement-user-note{
  margin-top:8px;
  color:#6b7b90;
  font-size:11px;
}
.inventory-movement-qty{
  font-size:12px !important;
  font-weight:900;
}

/* ================================================================
   V225 · Barra superior: todos los módulos visibles sin scroll
   ================================================================ */
.topbar{
  grid-template-columns:minmax(0,1fr) auto !important;
  grid-template-areas:
    "brand session"
    "admin admin"
    "tabs tabs" !important;
  row-gap:7px !important;
}
.module-tabs.v165-module-tabs{
  width:100% !important;
  max-width:100% !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:4px !important;
  overflow-x:hidden !important;
  overflow-y:hidden !important;
  padding:1px 0 3px !important;
}
.module-tabs.v165-module-tabs .v165-module-tab{
  flex:1 1 0 !important;
  min-width:0 !important;
  max-width:none !important;
  padding:6px 4px !important;
  gap:3px !important;
  font-size:10px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
  justify-content:center !important;
}
.module-tabs.v165-module-tabs .v165-module-tab .v165-tab-icon{
  font-size:11px !important;
  flex:0 0 auto;
}
.module-tabs.v165-module-tabs .v165-module-tab span:last-child{
  overflow:hidden;
  text-overflow:clip;
}
.topbar-logo{
  max-height:48px !important;
}

/* Mantener una presentación usable en pantallas estrechas */
@media(max-width:1100px){
  .module-tabs.v165-module-tabs{
    gap:2px !important;
  }
  .module-tabs.v165-module-tabs .v165-module-tab{
    padding:5px 2px !important;
    font-size:9px !important;
  }
  .module-tabs.v165-module-tabs .v165-module-tab .v165-tab-icon{
    display:none !important;
  }
}
@media(max-width:760px){
  .module-tabs.v165-module-tabs{
    overflow-x:auto !important;
  }
  .module-tabs.v165-module-tabs .v165-module-tab{
    flex:0 0 auto !important;
    min-width:70px !important;
  }
  .inventory-movement-table{
    font-size:10px;
  }
  .inventory-movement-table th,
  .inventory-movement-table td{
    padding:7px 4px;
  }
}


/* ================================================================
   V226 · Suplidores: columnas perfectamente alineadas
   ================================================================ */
.inventory-supplier-table{
  width:100%;
  max-width:100%;
  overflow:hidden;
}
.inventory-supplier-head,
.inventory-supplier-row{
  display:grid !important;
  grid-template-columns:
    minmax(150px,1.15fr)
    minmax(130px,.95fr)
    minmax(180px,1.35fr)
    minmax(125px,.85fr)
    minmax(135px,.9fr)
    78px !important;
  column-gap:10px !important;
  align-items:center !important;
  width:100% !important;
}
.inventory-supplier-head{
  padding:0 0 7px 0 !important;
}
.inventory-supplier-head > span{
  display:block !important;
  margin:0 !important;
  padding:0 4px !important;
  text-align:left !important;
  font-size:11px !important;
  font-weight:800 !important;
  line-height:1.2 !important;
  box-sizing:border-box !important;
}
.inventory-supplier-row{
  padding:8px 0 !important;
}
.inventory-supplier-row > input,
.inventory-supplier-row > .currency-input-wrap,
.inventory-supplier-row > button{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  margin:0 !important;
}
.inventory-supplier-row .currency-input-wrap input{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
}
@media(max-width:1050px){
  .inventory-supplier-table{
    overflow-x:auto;
  }
  .inventory-supplier-head,
  .inventory-supplier-row{
    min-width:900px;
  }
}

/* V226 · Movimientos vuelve a seis columnas, sin Descripción */
.inventory-movement-table .mov-col-date{width:14%}
.inventory-movement-table .mov-col-type{width:16%}
.inventory-movement-table .mov-col-reference{width:34%}
.inventory-movement-table .mov-col-qty{width:12%}
.inventory-movement-table .mov-col-before{width:12%}
.inventory-movement-table .mov-col-after{width:12%}


/* ================================================================
   V227 · Suplidores: Guardar / Cancelar por nueva entrada
   ================================================================ */
.inventory-supplier-head,
.inventory-supplier-row{
  grid-template-columns:
    minmax(145px,1.1fr)
    minmax(125px,.9fr)
    minmax(175px,1.3fr)
    minmax(120px,.82fr)
    minmax(132px,.9fr)
    minmax(150px,1fr) !important;
}
.inventory-supplier-row-actions{
  display:flex;
  gap:6px;
  align-items:center;
  justify-content:flex-start;
  min-width:0;
}
.inventory-supplier-row-actions button{
  min-width:0 !important;
  padding:7px 9px !important;
  font-size:11px !important;
}
.inventory-supplier-draft{
  background:#f7fbff !important;
  border:1px dashed #9db8d4 !important;
  border-radius:9px;
  padding-left:6px !important;
  padding-right:6px !important;
}
@media(max-width:1050px){
  .inventory-supplier-head,
  .inventory-supplier-row{
    min-width:980px;
  }
}


/* ================================================================
   V228 · Suplidores: mantener Acciones visibles dentro de la tarjeta
   ================================================================ */
.inventory-supplier-card .card-body{
  overflow:visible !important;
}
.inventory-supplier-table{
  width:100% !important;
  max-width:100% !important;
  overflow:visible !important;
}
.inventory-supplier-head,
.inventory-supplier-row{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  display:grid !important;
  grid-template-columns:
    minmax(110px,1.05fr)
    minmax(105px,.9fr)
    minmax(135px,1.2fr)
    minmax(105px,.82fr)
    minmax(118px,.92fr)
    minmax(112px,.9fr) !important;
  column-gap:6px !important;
  align-items:center !important;
  box-sizing:border-box !important;
}
.inventory-supplier-head > span{
  padding:0 2px !important;
  font-size:10px !important;
  line-height:1.1 !important;
  white-space:normal !important;
}
.inventory-supplier-row > input,
.inventory-supplier-row > .currency-input-wrap{
  min-width:0 !important;
  width:100% !important;
  font-size:11px !important;
  padding-left:7px !important;
  padding-right:7px !important;
}
.inventory-supplier-row .currency-input-wrap{
  padding-left:18px !important;
}
.inventory-supplier-row .currency-input-wrap .currency-symbol{
  left:6px !important;
  font-size:11px !important;
}
.inventory-supplier-row-actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:4px !important;
  align-items:center !important;
  justify-content:flex-start !important;
  min-width:0 !important;
}
.inventory-supplier-row-actions button{
  flex:1 1 48% !important;
  min-width:48px !important;
  max-width:100% !important;
  padding:6px 5px !important;
  font-size:10px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
}
.inventory-supplier-row:not(.inventory-supplier-draft) .inventory-supplier-row-actions button{
  flex:1 1 100% !important;
}
@media(max-width:1150px){
  .inventory-supplier-head,
  .inventory-supplier-row{
    grid-template-columns:
      minmax(95px,1fr)
      minmax(92px,.9fr)
      minmax(120px,1.15fr)
      minmax(95px,.82fr)
      minmax(105px,.9fr)
      minmax(100px,.9fr) !important;
    column-gap:5px !important;
  }
  .inventory-supplier-head > span{
    font-size:9px !important;
  }
  .inventory-supplier-row > input,
  .inventory-supplier-row > .currency-input-wrap{
    font-size:10px !important;
  }
}
@media(max-width:850px){
  .inventory-supplier-table{
    overflow-x:auto !important;
  }
  .inventory-supplier-head,
  .inventory-supplier-row{
    min-width:760px !important;
  }
}


/* ================================================================
   V229 · Descripción de suplidor multilínea
   ================================================================ */
.inventory-supplier-row textarea[data-supplier-description]{
  width:100% !important;
  min-width:0 !important;
  min-height:52px !important;
  resize:vertical !important;
  box-sizing:border-box !important;
  margin:0 !important;
  padding:7px !important;
  font:inherit !important;
  line-height:1.3 !important;
  white-space:pre-wrap !important;
}
.inventory-supplier-row{
  align-items:start !important;
}
.inventory-supplier-row-actions{
  padding-top:1px !important;
}


/* ================================================================
   V230 · Botón Base de Datos contenido en la barra superior
   ================================================================ */
#moduleTabDatabase{
  white-space:normal !important;
  line-height:1.05 !important;
  min-width:0 !important;
  overflow:hidden !important;
}
#moduleTabDatabase span:last-child{
  display:block !important;
  white-space:normal !important;
  line-height:1.05 !important;
  text-align:center !important;
  overflow-wrap:normal !important;
  word-break:keep-all !important;
}


/* ================================================================
   V231 · Botón Reportes CRM contenido en la barra superior
   ================================================================ */
#moduleTabCRMReports{
  white-space:normal !important;
  line-height:1.05 !important;
  min-width:0 !important;
  overflow:hidden !important;
}
#moduleTabCRMReports span:last-child{
  display:block !important;
  white-space:normal !important;
  line-height:1.05 !important;
  text-align:center !important;
  overflow-wrap:normal !important;
  word-break:keep-all !important;
}


/* V233 · Medición Neta Only */
.v233-net-metering-specs{grid-template-columns:repeat(3,minmax(0,1fr)) !important;}
.v233-net-metering-option .v89-battery-spec{min-height:72px;}
@media(max-width:760px){.v233-net-metering-specs{grid-template-columns:1fr !important;}}


/* ================================================================
   V235 · Navegación persistente dentro de un caso
   ================================================================ */
.case-workspace-nav{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:0 0 16px;
  padding:8px;
  border:1px solid #d7e2ef;
  border-radius:11px;
  background:#f7faff;
}
.case-workspace-nav button{
  flex:1 1 auto;
  min-width:92px;
  padding:7px 8px;
  border-radius:8px;
  background:#e8eef8;
  color:#0b3d91;
  font-size:10px;
  line-height:1.15;
  white-space:normal;
  text-align:center;
}
.case-workspace-nav button[data-case-workspace-target="proposal"],
.case-workspace-nav button[data-case-workspace-target="contract"]{
  background:#0b3d91;
  color:#fff;
}
@media(max-width:900px){
  .case-workspace-nav{
    flex-wrap:nowrap;
    overflow-x:auto;
  }
  .case-workspace-nav button{
    flex:0 0 auto;
    min-width:105px;
  }
}

/* ================================================================
   V235 · Propuesta: zona segura antes del footer
   ================================================================ */
#proposalDocPage4 .v88-inner,
.v95-page4-cont .v88-inner{
  padding-bottom:0.56in !important;
}
#proposalDocPage4 .v88-footer,
.v95-page4-cont .v88-footer{
  flex:0 0 auto;
}
.v235-equipment-cont-page .v95-cont-list{
  flex:0 0 auto;
  margin-bottom:0.18in;
}
.v235-equipment-cont-page .v89-battery-option{
  break-inside:avoid;
}
.v235-warranty-cont-page .v235-warranty-title{
  margin-top:0.28in;
}
.v235-warranty-page-body{
  margin-top:0.32in;
  flex:0 0 auto;
}
.v235-warranty-cont-page .v91-install-warranty{
  margin-top:0 !important;
  break-inside:avoid;
}
.v235-warranty-cont-page .v88-footer{
  margin-top:auto !important;
}
/* Ningún contenido generado de página 4 debe usar el espacio reservado al footer. */
.v235-equipment-cont-page .v95-cont-list,
.v235-warranty-cont-page .v235-warranty-page-body{
  max-width:100%;
  box-sizing:border-box;
}


/* ================================================================
   V236 · Menú de Análisis consistente en una sola línea
   ================================================================ */
#analysisModule > .page-nav,
.case-workspace-nav{
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:5px !important;
  width:100%;
  align-items:stretch;
  overflow:visible;
}
#analysisModule > .page-nav button,
.case-workspace-nav button{
  flex:1 1 0 !important;
  min-width:0 !important;
  min-height:42px;
  height:42px;
  padding:5px 4px !important;
  margin:0 !important;
  border-radius:8px !important;
  font-size:9px !important;
  line-height:1.08 !important;
  display:flex !important;
  align-items:center;
  justify-content:center;
  text-align:center !important;
  white-space:normal !important;
  overflow:hidden;
}
#analysisModule > .page-nav .admin-only,
.case-workspace-nav .admin-only{
  display:none !important;
}
body.admin-mode #analysisModule > .page-nav .admin-only,
body.admin-mode .case-workspace-nav .admin-only{
  display:flex !important;
}
.case-workspace-nav{
  margin:0 0 18px !important;
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
}
.case-workspace-nav button[data-case-workspace-target="proposal-client"],
.case-workspace-nav button[data-case-workspace-target="contract-client"]{
  background:#e8eef8 !important;
  color:#0b3d91 !important;
}
@media(max-width:1050px){
  #analysisModule > .page-nav,
  .case-workspace-nav{
    overflow-x:auto !important;
    padding-bottom:4px !important;
  }
  #analysisModule > .page-nav button,
  .case-workspace-nav button{
    flex:0 0 82px !important;
  }
}

/* ================================================================
   V236 · Paginación medida: nunca invadir footer
   ================================================================ */
.v236-auto-page .v88-inner{
  padding-bottom:0.56in !important;
}
.v236-auto-content{
  flex:0 0 auto;
}
.v236-auto-content > .v89-battery-option,
.v236-auto-content > .v92-option-group,
.v236-inline-warranty,
.v236-investment-closing{
  break-inside:avoid !important;
  page-break-inside:avoid !important;
}
.v236-inline-warranty{
  margin-top:0.16in !important;
}
.v236-investment-closing{
  flex:0 0 auto;
}
.v236-investment-closing .v88-price-validity{
  margin-top:0.18in;
}
.v236-closing-measure{
  flex:0 0 auto;
}
#proposalDocPage4 .v88-footer,
#proposalDocPage5 .v88-footer,
.v236-auto-page .v88-footer{
  position:relative;
  z-index:5;
  background:#f7f9fc;
}


/* ================================================================
   V237 · Menú de caso 100% consistente entre Análisis/Propuesta/Contrato
   ================================================================ */

/* Mostrar también "Propuesta" en Análisis para que los tres menús
   tengan exactamente las mismas opciones. */
#analysisModule .page-nav #navProposal{
  display:flex !important;
}

/* El menú de Propuesta/Contrato debe usar el mismo ancho visual que
   el contenido del módulo Análisis, aunque Proposal use ancho completo
   para la vista PDF. */
#proposalModule .case-workspace-nav,
#contractModule .case-workspace-nav{
  width:min(calc(100% - 36px), 1144px) !important;
  max-width:1144px !important;
  margin:0 auto 18px !important;
}

/* Los tres menús usan exactamente las mismas medidas. */
#analysisModule > .page-nav,
#proposalModule .case-workspace-nav,
#contractModule .case-workspace-nav{
  box-sizing:border-box !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  align-items:stretch !important;
  gap:5px !important;
}

#analysisModule > .page-nav > button,
#proposalModule .case-workspace-nav > button,
#contractModule .case-workspace-nav > button{
  box-sizing:border-box !important;
  flex:1 1 0 !important;
  min-width:0 !important;
  width:auto !important;
  height:42px !important;
  min-height:42px !important;
  max-height:42px !important;
  padding:4px 4px !important;
  margin:0 !important;
  border-radius:8px !important;
  font-size:9px !important;
  font-weight:800 !important;
  line-height:1.05 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  text-align:center !important;
  white-space:normal !important;
  overflow:hidden !important;
  background:#e8eef8 !important;
  color:#0b3d91 !important;
}

/* Estado activo idéntico en todos los módulos. */
#analysisModule > .page-nav > button.active,
#proposalModule .case-workspace-nav > button.active,
#contractModule .case-workspace-nav > button.active{
  background:#0b3d91 !important;
  color:#fff !important;
}

/* Eliminar overrides anteriores que impedían que Propuesta Cliente /
   Contrato Cliente se pintaran azul. */
.case-workspace-nav button[data-case-workspace-target="proposal-client"].active,
.case-workspace-nav button[data-case-workspace-target="contract-client"].active{
  background:#0b3d91 !important;
  color:#fff !important;
}

/* Admin: Base de Datos ocupa su espacio normal cuando está visible. */
#analysisModule > .page-nav > .admin-only,
.case-workspace-nav > .admin-only{
  display:none !important;
}
body.admin-mode #analysisModule > .page-nav > .admin-only,
body.admin-mode .case-workspace-nav > .admin-only{
  display:flex !important;
}

/* En desktop permanecen todas las opciones en UNA sola línea.
   Solo pantallas realmente estrechas reciben scroll horizontal. */
@media(min-width:1051px){
  #analysisModule > .page-nav,
  #proposalModule .case-workspace-nav,
  #contractModule .case-workspace-nav{
    overflow:visible !important;
  }
}
@media(max-width:1050px){
  #analysisModule > .page-nav,
  #proposalModule .case-workspace-nav,
  #contractModule .case-workspace-nav{
    overflow-x:auto !important;
    overflow-y:hidden !important;
  }
  #analysisModule > .page-nav > button,
  #proposalModule .case-workspace-nav > button,
  #contractModule .case-workspace-nav > button{
    flex:0 0 84px !important;
  }
}


/* ================================================================
   V238 · Documentos del caso: acceso directo + selector de versiones
   ================================================================ */
.crm-document-name-link{
  appearance:none;
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  color:#0b3d91;
  font:inherit;
  font-weight:800;
  text-align:left;
  cursor:pointer;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:2px;
}
.crm-document-name-link:hover{
  color:#f47a1f;
}

.crm-version-modal{
  position:fixed;
  inset:0;
  z-index:10050;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.crm-version-modal.open{
  display:flex;
}
.crm-version-modal-backdrop{
  position:absolute;
  inset:0;
  background:rgba(15,35,70,.45);
  backdrop-filter:blur(2px);
}
.crm-version-modal-dialog{
  position:relative;
  z-index:1;
  width:min(760px,calc(100vw - 36px));
  max-height:min(80vh,760px);
  overflow:hidden;
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:16px;
  box-shadow:0 24px 70px rgba(13,43,89,.28);
  border:1px solid #d8e3ef;
}
.crm-version-modal-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:18px;
  padding:20px 22px 16px;
  border-bottom:1px solid #e5ebf3;
}
.crm-version-modal-kicker{
  color:#f47a1f;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
}
.crm-version-modal-head h2{
  margin:5px 0 4px;
  color:#0b3d91;
  font-size:22px;
}
.crm-version-modal-head p{
  margin:0;
  color:#64748b;
  font-size:13px;
}
.crm-version-modal-x{
  flex:0 0 auto;
  width:36px;
  height:36px;
  border-radius:50%;
  padding:0;
  background:#eef3fa;
  color:#0b3d91;
  font-size:24px;
  line-height:1;
}
.crm-version-list{
  overflow:auto;
  padding:14px;
  display:flex;
  flex-direction:column;
  gap:10px;
}
.crm-version-option{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.25fr) minmax(0,1fr) auto;
  gap:16px;
  align-items:center;
  padding:14px 16px;
  border:1px solid #dce5f0;
  border-radius:12px;
  background:#fff;
  color:#233a5c;
  text-align:left;
}
.crm-version-option:hover{
  background:#f7faff;
  border-color:#a9c4eb;
}
.crm-version-option-main strong{
  display:block;
  color:#0b3d91;
  font-size:14px;
}
.crm-version-option-main span{
  display:block;
  margin-top:4px;
  color:#74849a;
  font-size:11px;
}
.crm-version-option-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  font-size:11px;
  color:#536781;
}
.crm-version-open-label{
  color:#f47a1f;
  font-weight:900;
  font-size:12px;
  white-space:nowrap;
}
.crm-version-modal-actions{
  display:flex;
  justify-content:flex-end;
  padding:12px 16px 16px;
  border-top:1px solid #e5ebf3;
}
@media(max-width:720px){
  .crm-version-option{
    grid-template-columns:1fr;
    gap:8px;
  }
  .crm-version-open-label{
    justify-self:start;
  }
}


/* ================================================================
   V239 · Selector de versiones EN LA PÁGINA (sin popup)
   ================================================================ */
.crm-inline-version-chooser{
  width:min(calc(100% - 36px),1144px);
  margin:0 auto 18px;
  padding:18px;
  box-sizing:border-box;
  border:1px solid #d8e3ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(13,43,89,.08);
}
.crm-inline-version-chooser.hidden{
  display:none !important;
}
.crm-inline-version-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding-bottom:14px;
  border-bottom:1px solid #e8edf4;
}
.crm-inline-version-kicker{
  color:#f47a1f;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
}
.crm-inline-version-head h2{
  margin:4px 0 4px;
  color:#0b3d91;
  font-size:22px;
}
.crm-inline-version-head p{
  margin:0;
  color:#64748b;
  font-size:13px;
}
.crm-inline-version-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  padding-top:14px;
}
.crm-inline-version-option{
  width:100%;
  display:grid;
  grid-template-columns:minmax(0,1.15fr) minmax(0,1fr) auto;
  align-items:center;
  gap:16px;
  padding:14px 16px;
  border:1px solid #dce5f0;
  border-radius:11px;
  background:#f9fbfe;
  color:#24364f;
  text-align:left;
}
.crm-inline-version-option:hover{
  background:#eef5fd;
  border-color:#a8c3e8;
}
.crm-inline-version-main strong{
  display:block;
  color:#0b3d91;
  font-size:14px;
}
.crm-inline-version-main span{
  display:block;
  margin-top:4px;
  color:#71839a;
  font-size:11px;
}
.crm-inline-version-meta{
  display:flex;
  flex-direction:column;
  gap:3px;
  color:#536781;
  font-size:11px;
}
.crm-inline-version-open{
  color:#f47a1f;
  font-weight:900;
  font-size:12px;
  white-space:nowrap;
}
@media(max-width:760px){
  .crm-inline-version-option{
    grid-template-columns:1fr;
    gap:8px;
  }
}


/* ================================================================
   V242 · Servicios
   Estándar global: columnas alineadas, nombres en una línea,
   acciones uniformes y pantallas completas.
   ================================================================ */
.services-card{--tile:#b05c16;--tile-soft:#fff2e7}

.services-module{
  max-width:1500px !important;
}

.service-topbar,
.service-editor-head,
.service-detail-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  margin-bottom:18px;
}
.service-topbar h1,
.service-editor-head h1,
.service-detail-head h1{
  margin:3px 0 5px;
  color:#173f7e;
  font-size:28px;
}
.service-topbar p,
.service-detail-head p{
  margin:0;
  color:#6f8097;
  font-size:12px;
}
.service-new-btn{white-space:nowrap}

.service-metrics,
.service-detail-metrics{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:11px;
  margin-bottom:16px;
}
.service-metric,
.service-detail-metrics>div{
  background:#fff;
  border:1px solid #dce6f2;
  border-top:4px solid #0b3d91;
  border-radius:12px;
  padding:13px 14px;
  box-shadow:0 5px 16px rgba(18,48,88,.05);
  min-width:0;
}
.service-metric span,
.service-detail-metrics>div>span{
  display:block;
  font-size:10px;
  font-weight:900;
  color:#687c98;
  text-transform:uppercase;
  letter-spacing:.04em;
  white-space:nowrap;
}
.service-metric strong,
.service-detail-metrics>div>strong{
  display:block;
  margin-top:6px;
  color:#173f7e;
  font-size:22px;
  min-width:0;
}

.service-filter-card{margin-bottom:15px}
.service-filter-grid{
  display:grid;
  grid-template-columns:minmax(260px,1.8fr) repeat(3,minmax(155px,.8fr));
  gap:12px;
  align-items:end;
}
.service-filter-grid label,
.service-form-grid label,
.service-detail-side label{
  display:block;
  font-size:10px;
  font-weight:900;
  color:#52657f;
  margin-bottom:5px;
}
.service-filter-grid input,
.service-filter-grid select,
.service-form-grid input,
.service-form-grid select,
.service-form-grid textarea,
.service-detail-side input,
.service-detail-side select,
.service-comment-compose textarea{
  width:100%;
  box-sizing:border-box;
}

.service-list-head{
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:12px;
}
.service-table-wrap{
  width:100%;
  overflow-x:auto;
}
.service-table{
  width:100%;
  min-width:1180px;
  table-layout:fixed;
  border-collapse:collapse;
}
.service-table th,
.service-table td{
  padding:10px 9px;
  border-bottom:1px solid #e7edf4;
  vertical-align:middle;
  font-size:11.5px;
  text-align:left;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-table th{
  background:#f4f7fb;
  color:#52657f;
  font-size:10px;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.03em;
  white-space:nowrap;
}
.service-table tbody tr:hover{background:#fbfdff}
.service-table td{white-space:nowrap}
.svc-col-ticket{width:115px}
.svc-col-client{width:180px}
.svc-col-case{width:135px}
.svc-col-status{width:155px}
.svc-col-priority{width:90px}
.svc-col-tech{width:165px}
.svc-col-created{width:100px}
.svc-col-days{width:60px}
.svc-col-actions{width:190px}
.service-nowrap{
  white-space:nowrap !important;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-link{
  padding:0 !important;
  margin:0 !important;
  background:transparent !important;
  color:#0b3d91 !important;
  border:0 !important;
  font:inherit;
  font-weight:800;
  text-align:left;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.service-link:hover{text-decoration:underline}
.service-row-actions{
  display:flex;
  gap:5px;
  align-items:center;
  flex-wrap:nowrap;
}
.service-row-actions button{
  padding:6px 9px !important;
  font-size:10px !important;
  white-space:nowrap;
}
.service-days-cell{
  text-align:center !important;
  font-weight:900;
  color:#173f7e;
}
.service-status,
.service-priority{
  display:inline-flex;
  align-items:center;
  max-width:100%;
  min-height:24px;
  padding:4px 8px;
  border-radius:999px;
  font-size:9.5px;
  font-weight:900;
  white-space:nowrap;
}
.service-status.open{background:#eaf2ff;color:#0b3d91}
.service-status.scheduled{background:#f3edff;color:#7144a2}
.service-status.progress{background:#fff3e7;color:#a9580d}
.service-status.waiting{background:#fff7dc;color:#8b6b00}
.service-status.closed{background:#e8f7ef;color:#187447}
.service-priority.baja{background:#eef2f7;color:#5f7188}
.service-priority.normal{background:#eaf2ff;color:#0b3d91}
.service-priority.alta{background:#fff3e7;color:#a9580d}
.service-priority.urgente{background:#ffe8e8;color:#aa2525}
.service-empty{
  text-align:center !important;
  padding:28px !important;
  color:#7c8ca1;
}

.service-editor-title,
.service-detail-title{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.service-detail-actions{
  display:flex;
  gap:8px;
  flex-wrap:nowrap;
}
.service-editor-layout,
.service-detail-layout{
  display:grid;
  grid-template-columns:minmax(0,1fr) 310px;
  gap:18px;
  align-items:start;
}
.service-editor-main,
.service-detail-main{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
.service-editor-side,
.service-detail-side{
  display:flex;
  flex-direction:column;
  gap:16px;
  min-width:0;
}
.service-form-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px 14px;
}
.service-form-grid .full{grid-column:1/-1}
.service-form-grid textarea{resize:vertical}

.service-summary-line{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 0;
  border-bottom:1px solid #edf1f6;
}
.service-summary-line:last-child{border-bottom:0}
.service-summary-line span{
  color:#6b7e98;
  font-size:11px;
  font-weight:800;
}
.service-summary-line strong{
  color:#173f7e;
  font-size:12px;
  white-space:nowrap;
}

.service-detail-metrics{
  grid-template-columns:repeat(6,minmax(0,1fr));
}
.service-read-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.service-read-grid>div{
  padding:10px 12px;
  border:1px solid #e1e9f3;
  border-radius:9px;
  background:#f8fbff;
  min-width:0;
}
.service-read-grid span{
  display:block;
  font-size:9px;
  color:#71839b;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
}
.service-read-grid strong{
  display:block;
  margin-top:4px;
  color:#173f7e;
  font-size:12px;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-description{
  color:#334b6b;
  font-size:12px;
  line-height:1.6;
}
.service-internal-notes{
  margin-top:16px;
  padding:12px;
  border-radius:10px;
  background:#fff8e8;
  border:1px solid #f1dfaa;
}
.service-internal-notes strong{color:#74570d}
.service-internal-notes p{margin:5px 0 0;font-size:11.5px;line-height:1.5;color:#65572e}

.service-comment-compose{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:end;
  margin-bottom:14px;
}
.service-comment-compose button{white-space:nowrap}
.service-comment-list{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.service-comment{
  padding:11px 12px;
  border:1px solid #e1e8f1;
  border-radius:10px;
  background:#fbfdff;
}
.service-comment-meta{
  display:flex;
  justify-content:space-between;
  gap:12px;
  align-items:center;
}
.service-comment-meta strong{
  color:#173f7e;
  font-size:11.5px;
  white-space:nowrap;
}
.service-comment-meta span{
  color:#8493a8;
  font-size:9.5px;
  white-space:nowrap;
}
.service-comment p{
  margin:7px 0 0;
  color:#425b7a;
  font-size:11.5px;
  line-height:1.5;
}
.service-empty-box{
  padding:12px;
  text-align:center;
  color:#8090a5;
  font-size:11px;
  border:1px dashed #d4deea;
  border-radius:9px;
}

.service-side-label{margin-top:12px !important}
.service-side-save{width:100%;margin-top:12px}
.service-history-list{
  display:flex;
  flex-direction:column;
  gap:12px;
}
.service-history-item{
  display:grid;
  grid-template-columns:10px minmax(0,1fr);
  gap:9px;
  align-items:start;
}
.service-history-dot{
  width:8px;height:8px;border-radius:50%;
  background:#0b3d91;margin-top:4px;
}
.service-history-item strong{
  display:block;
  color:#334b6b;
  font-size:10.5px;
  line-height:1.35;
}
.service-history-item small{
  display:block;
  margin-top:3px;
  color:#8493a8;
  font-size:9px;
  line-height:1.3;
}

@media(max-width:1150px){
  .service-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .service-detail-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}
  .service-filter-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:850px){
  .service-editor-layout,.service-detail-layout{grid-template-columns:1fr}
  .service-form-grid,.service-read-grid{grid-template-columns:1fr}
  .service-form-grid .full{grid-column:auto}
  .service-topbar,.service-editor-head,.service-detail-head{flex-direction:column;align-items:stretch}
  .service-detail-actions{flex-wrap:wrap}
}
@media(max-width:620px){
  .service-metrics,.service-detail-metrics{grid-template-columns:1fr 1fr}
  .service-filter-grid{grid-template-columns:1fr}
  .service-comment-compose{grid-template-columns:1fr}
}

/* V242 · top navigation compactness after adding Servicios */
.v165-module-tabs{
  gap:6px !important;
}
.v165-module-tab{
  padding:8px 10px !important;
  font-size:11.5px !important;
}


/* ================================================================
   V243 · Servicios: sistema manual, fotos, firma, hoja de servicio
   ================================================================ */
.service-system-builder{
  display:grid;
  grid-template-columns:minmax(160px,.8fr) minmax(220px,1.4fr) auto;
  gap:8px;
  align-items:end;
}
.service-system-chips{
  display:flex;
  gap:7px;
  flex-wrap:wrap;
  margin-top:10px;
  min-height:30px;
}
.service-system-chip{
  display:inline-flex;
  align-items:center;
  gap:7px;
  padding:6px 9px;
  border-radius:999px;
  background:#eaf2ff;
  color:#0b3d91;
  font-size:10.5px;
  font-weight:900;
  white-space:nowrap;
}
.service-system-chip button{
  width:18px !important;
  height:18px !important;
  min-height:18px !important;
  padding:0 !important;
  margin:0 !important;
  border:0 !important;
  border-radius:50% !important;
  background:#0b3d91 !important;
  color:#fff !important;
  font-size:13px !important;
  line-height:1 !important;
}
.service-system-empty{
  color:#8090a5;
  font-size:11px;
  padding:5px 0;
}

.service-photo-upload{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin-bottom:14px;
}
.service-photo-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.service-photo-card{
  border:1px solid #dce5f0;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.service-photo-preview{
  aspect-ratio:4/3;
  background:#f1f5f9;
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
.service-photo-preview img{
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.service-photo-missing{
  color:#8292a6;
  font-size:11px;
}
.service-photo-caption{
  padding:9px 10px 6px;
  min-width:0;
}
.service-photo-caption strong{
  display:block;
  color:#173f7e;
  font-size:10.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-photo-caption small{
  display:block;
  margin-top:3px;
  color:#8493a8;
  font-size:9px;
  white-space:nowrap;
}
.service-photo-card>button{
  margin:0 10px 10px !important;
  width:calc(100% - 20px);
}

.service-warranty-choice{
  display:flex;
  gap:18px;
  flex-wrap:wrap;
  margin-bottom:12px;
}
.service-warranty-choice label{
  display:flex;
  align-items:center;
  gap:7px;
  padding:9px 12px;
  border:1px solid #dce5f0;
  border-radius:9px;
  font-size:11px;
  font-weight:800;
  color:#334b6b;
  background:#f9fbfe;
}
.service-warranty-choice input{margin:0}
.service-signature-note{
  color:#6f8097;
  font-size:11px;
  margin:0 0 10px;
}
.service-signature-existing{
  display:flex;
  align-items:center;
  gap:14px;
  padding:10px;
  margin-bottom:12px;
  border:1px solid #cfe1f6;
  border-radius:10px;
  background:#f7fbff;
}
.service-signature-existing img{
  width:180px;
  height:60px;
  object-fit:contain;
  background:#fff;
  border:1px solid #e3eaf3;
}
.service-signature-existing strong{
  display:block;
  color:#173f7e;
  font-size:11px;
}
.service-signature-existing small{
  display:block;
  color:#8191a5;
  margin-top:3px;
  font-size:9.5px;
}
.service-signature-pad-wrap{
  position:relative;
  border:1px solid #cfd9e6;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
#serviceSignatureCanvas{
  display:block;
  width:100%;
  height:170px;
  touch-action:none;
  cursor:crosshair;
}
.service-signature-line{
  position:absolute;
  left:8%;
  right:8%;
  bottom:30px;
  border-top:1px solid #8fa1b7;
  pointer-events:none;
}
.service-signature-pad-wrap>span{
  position:absolute;
  bottom:8px;
  left:50%;
  transform:translateX(-50%);
  color:#75879d;
  font-size:9.5px;
  pointer-events:none;
}
.service-signature-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:10px;
}
.crm-service-case-table{
  width:100%;
  table-layout:fixed;
}
.crm-service-case-table th,
.crm-service-case-table td{
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  vertical-align:middle;
}
.service-case-ticket-link{max-width:120px}

/* Hoja de servicio PDF */
.service-report-capture-host{
  position:fixed;
  left:-100000px;
  top:0;
  z-index:-1;
  background:#fff;
}
.service-report-page{
  position:relative;
  width:816px;
  height:1056px;
  background:#fff;
  color:#263b57;
  overflow:hidden;
  font-family:Arial,Helvetica,sans-serif;
}
.service-report-inner{
  position:absolute;
  inset:0;
  padding:50px 56px 42px;
  box-sizing:border-box;
  display:flex;
  flex-direction:column;
}
.service-report-header{
  display:grid;
  grid-template-columns:190px 1fr 130px;
  gap:20px;
  align-items:center;
  border-bottom:3px solid #0b3d91;
  padding-bottom:15px;
}
.service-report-logo{
  width:178px;
  max-height:62px;
  object-fit:contain;
}
.service-report-kicker{
  color:#f47a1f;
  font-size:10px;
  font-weight:900;
  letter-spacing:.12em;
}
.service-report-header h1{
  margin:4px 0 0;
  color:#173f7e;
  font-size:25px;
}
.service-report-ticket{
  text-align:right;
}
.service-report-ticket span{
  display:block;
  font-size:9px;
  color:#70829a;
  text-transform:uppercase;
  font-weight:900;
}
.service-report-ticket strong{
  display:block;
  margin-top:5px;
  color:#0b3d91;
  font-size:14px;
  white-space:nowrap;
}
.service-report-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  margin-top:18px;
}
.service-report-grid>div{
  border:1px solid #dce5ef;
  border-radius:7px;
  padding:8px 9px;
  min-height:42px;
}
.service-report-grid span,
.service-report-signature-meta span{
  display:block;
  color:#7b8ba0;
  font-size:7.5px;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.04em;
}
.service-report-grid strong,
.service-report-signature-meta strong{
  display:block;
  margin-top:4px;
  color:#243c5e;
  font-size:9.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-report-section{
  margin-top:15px;
}
.service-report-section h2{
  margin:0 0 6px;
  color:#173f7e;
  font-size:11px;
  border-bottom:1px solid #dce5ef;
  padding-bottom:5px;
}
.service-report-section p{
  margin:0;
  color:#3d526e;
  font-size:9.5px;
  line-height:1.45;
  max-height:86px;
  overflow:hidden;
}
.service-report-coverage{
  margin-top:16px;
  padding:11px 13px;
  border:1px solid #f0d3b5;
  border-left:5px solid #f47a1f;
  background:#fff9f3;
  border-radius:8px;
}
.service-report-coverage span{
  display:block;
  color:#8b6a4a;
  font-size:8px;
  text-transform:uppercase;
  font-weight:900;
}
.service-report-coverage strong{
  display:block;
  margin-top:4px;
  color:#8c4b13;
  font-size:11px;
}
.service-report-signature{
  display:grid;
  grid-template-columns:1.3fr .7fr;
  gap:24px;
  align-items:end;
  margin-top:20px;
  padding-top:15px;
  border-top:1px solid #e0e7ef;
}
.service-report-signature>div:first-child{text-align:center}
.service-report-signature-img{
  width:270px;
  height:90px;
  object-fit:contain;
  display:block;
  margin:0 auto;
}
.service-report-signature-empty{
  height:90px;
  display:flex;
  align-items:center;
  justify-content:center;
  color:#98a5b5;
  font-size:10px;
}
.service-report-signature-line{
  border-top:1px solid #60748f;
  margin-top:4px;
}
.service-report-signature>div:first-child>span{
  display:block;
  margin-top:5px;
  color:#75879e;
  font-size:8px;
}
.service-report-signature-meta{
  border:1px solid #dce5ef;
  border-radius:8px;
  padding:10px;
}
.service-report-signature-meta strong{
  margin-bottom:8px;
}
.service-report-footer{
  margin-top:auto;
  padding-top:12px;
  border-top:1px solid #dce5ef;
  display:flex;
  justify-content:space-between;
  color:#6e8199;
  font-size:8px;
  font-weight:800;
}

@media(max-width:850px){
  .service-system-builder{grid-template-columns:1fr}
  .service-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
  .service-photo-grid{grid-template-columns:1fr}
  .service-photo-upload{grid-template-columns:1fr}
  .service-signature-existing{align-items:flex-start;flex-direction:column}
}


/* ================================================================
   V244 · Servicios — visibilidad de Sistema, garantía y reporte
   ================================================================ */

/* Ningún contenedor oculto de sistema debe reservar espacio. */
#serviceLinkedSystemBox.hidden,
#serviceManualSystemsBox.hidden{
  display:none !important;
}

/* Garantía: texto siempre dentro de su cuadro y sin selección visual por defecto. */
.service-warranty-choice{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  gap:10px !important;
  align-items:stretch !important;
}
.service-warranty-choice label{
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  min-height:48px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  padding:10px 12px !important;
  overflow:hidden !important;
  white-space:normal !important;
  line-height:1.25 !important;
}
.service-warranty-choice label span{
  min-width:0 !important;
  display:block !important;
  white-space:normal !important;
  overflow-wrap:anywhere !important;
}
.service-warranty-choice input{
  flex:0 0 auto !important;
  width:auto !important;
  margin:0 !important;
}

/* Vista previa Hoja de Servicio, equivalente al patrón Propuesta/Contrato. */
.service-report-toolbar{
  width:min(calc(100% - 36px),1144px);
  margin:0 auto 18px;
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
}
.service-report-toolbar-left{
  display:flex;
  align-items:flex-start;
  gap:14px;
}
.service-report-toolbar h1{
  margin:3px 0 4px;
  color:#173f7e;
  font-size:27px;
}
.service-report-toolbar p{
  margin:0;
  color:#718198;
  font-size:12px;
}
.service-report-preview-wrap{
  width:100%;
  display:flex;
  justify-content:center;
  padding:10px 18px 28px;
  box-sizing:border-box;
  overflow-x:auto;
}
.service-report-preview-wrap .service-report-page{
  flex:0 0 auto;
  box-shadow:0 12px 32px rgba(15,35,70,.14);
  border:1px solid #dfe7f0;
}
@media(max-width:700px){
  .service-warranty-choice{
    grid-template-columns:1fr !important;
  }
  .service-report-toolbar{
    flex-direction:column;
    align-items:stretch;
  }
}


/* V245 · Garantía opcional y deseleccionable */
.service-warranty-choice .service-warranty-toggle{
  accent-color:#0b3d91;
}
.service-warranty-choice label:has(.service-warranty-toggle:checked){
  border-color:#0b3d91 !important;
  background:#eef5ff !important;
  box-shadow:inset 0 0 0 1px rgba(11,61,145,.08);
}


/* ================================================================
   V246 · Consistencia documental: Hoja de Servicio
   ================================================================ */
.service-report-toolbar > .print-pdf-btn{
  min-height:40px;
  padding:0 16px !important;
  border-radius:8px;
  font-weight:800;
  white-space:nowrap;
}


/* ================================================================
   V248 · Drag & Drop global para fotos/documentos
   ================================================================ */
.cenergys-drop-zone{
  width:100%;
  box-sizing:border-box;
  border:2px dashed #b9c8db;
  border-radius:12px;
  background:#f8fbff;
  padding:14px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:10px;
  transition:border-color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;
}
.cenergys-drop-zone.drag-over{
  border-color:#0b3d91;
  background:#edf5ff;
  box-shadow:0 0 0 3px rgba(11,61,145,.08);
  transform:translateY(-1px);
}
.cenergys-drop-zone.uploading{
  border-color:#f47a1f;
  background:#fff8f1;
}
.cenergys-drop-copy{
  display:grid;
  grid-template-columns:30px minmax(0,1fr);
  grid-template-rows:auto auto;
  column-gap:10px;
  align-items:center;
  pointer-events:none;
}
.cenergys-drop-icon{
  grid-row:1/3;
  width:28px;
  height:28px;
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#e7f0fc;
  color:#0b3d91;
  font-size:18px;
  font-weight:900;
}
.cenergys-drop-title{
  color:#173f7e;
  font-size:11.5px;
  font-weight:900;
  line-height:1.2;
}
.cenergys-drop-hint{
  color:#788aa1;
  font-size:9.5px;
  line-height:1.25;
  margin-top:2px;
}
.cenergys-drop-zone input[type="file"]{
  width:100%;
  box-sizing:border-box;
  margin:0;
  background:#fff;
}
.cenergys-drop-zone input[type="file"]:disabled{
  opacity:.55;
}
.service-photo-upload{
  align-items:stretch !important;
}
.service-photo-upload .cenergys-drop-zone{
  min-width:0;
}
.inventory-doc-card .cenergys-drop-zone{
  margin-bottom:10px;
}


/* ================================================================
   V249 · Evidencia fotográfica en Hoja de Servicio
   ================================================================ */
.service-report-preview-wrap{
  flex-direction:column !important;
  align-items:center !important;
  gap:28px !important;
}
.service-report-loading{
  width:min(816px,100%);
  box-sizing:border-box;
  padding:28px;
  border:1px dashed #c9d6e5;
  border-radius:12px;
  background:#f8fbff;
  color:#61748f;
  text-align:center;
  font-size:12px;
  font-weight:800;
}
.service-report-error{
  color:#9e2b2b;
  background:#fff5f5;
  border-color:#e5bcbc;
}
#serviceGeneratePdfBtn:disabled{
  opacity:.65;
  cursor:not-allowed;
}
.service-report-photo-page .service-report-inner{
  padding-bottom:42px;
}
.service-report-photo-summary{
  display:grid;
  grid-template-columns:1fr 1fr 100px;
  gap:8px;
  margin-top:18px;
}
.service-report-photo-summary>div{
  border:1px solid #dce5ef;
  border-radius:7px;
  padding:8px 9px;
  min-width:0;
}
.service-report-photo-summary span{
  display:block;
  color:#7b8ba0;
  font-size:7.5px;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.04em;
}
.service-report-photo-summary strong{
  display:block;
  margin-top:4px;
  color:#243c5e;
  font-size:9.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-report-photo-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  gap:16px;
  margin-top:18px;
  flex:1 1 auto;
  min-height:0;
}
.service-report-photo-item{
  margin:0;
  min-width:0;
  min-height:0;
  display:flex;
  flex-direction:column;
  border:1px solid #dce5ef;
  border-radius:10px;
  overflow:hidden;
  background:#fff;
}
.service-report-photo-frame{
  flex:1 1 auto;
  min-height:0;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#f1f5f9;
  overflow:hidden;
}
.service-report-photo-frame img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
  background:#f5f7fa;
}
.service-report-photo-item figcaption{
  flex:0 0 auto;
  padding:8px 10px;
  border-top:1px solid #e3eaf2;
  background:#fff;
}
.service-report-photo-item figcaption strong{
  display:block;
  color:#173f7e;
  font-size:9.5px;
}
.service-report-photo-item figcaption span{
  display:block;
  margin-top:2px;
  color:#3f5571;
  font-size:8.5px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-report-photo-item figcaption small{
  display:block;
  margin-top:2px;
  color:#8291a4;
  font-size:7.5px;
}


/* ================================================================
   V250 · Visor completo de fotos de Servicio
   ================================================================ */
.service-photo-open-btn{
  width:100% !important;
  padding:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:#f1f5f9 !important;
  cursor:zoom-in !important;
  min-height:0 !important;
  box-shadow:none !important;
}
.service-photo-open-btn:hover{
  background:#edf3f8 !important;
}
.service-photo-open-btn:focus-visible{
  outline:3px solid rgba(11,61,145,.28);
  outline-offset:-3px;
}
.service-photo-open-btn:disabled{
  cursor:default !important;
  opacity:1 !important;
}
.service-photo-viewer-open{
  overflow:hidden !important;
}
.service-photo-viewer{
  position:fixed;
  inset:0;
  z-index:9000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px;
  box-sizing:border-box;
  opacity:0;
  transition:opacity .14s ease;
}
.service-photo-viewer.open{opacity:1}
.service-photo-viewer-backdrop{
  position:absolute;
  inset:0;
  background:rgba(5,17,38,.86);
  backdrop-filter:blur(3px);
}
.service-photo-viewer-dialog{
  position:relative;
  z-index:1;
  width:min(1200px,96vw);
  height:min(860px,92vh);
  display:flex;
  flex-direction:column;
  background:#fff;
  border-radius:14px;
  box-shadow:0 30px 80px rgba(0,0,0,.4);
  overflow:hidden;
}
.service-photo-viewer-head{
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px 15px;
  border-bottom:1px solid #dce5ef;
  background:#fff;
}
.service-photo-viewer-head>div{
  min-width:0;
}
.service-photo-viewer-head strong{
  display:block;
  color:#173f7e;
  font-size:12px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.service-photo-viewer-head span{
  display:block;
  margin-top:3px;
  color:#8191a5;
  font-size:9.5px;
  white-space:nowrap;
}
.service-photo-viewer-close{
  flex:0 0 auto;
  white-space:nowrap;
}
.service-photo-viewer-stage{
  flex:1 1 auto;
  min-height:0;
  padding:14px;
  display:flex;
  align-items:center;
  justify-content:center;
  background:#101820;
  overflow:auto;
}
.service-photo-viewer-stage img{
  display:block;
  max-width:100%;
  max-height:100%;
  width:auto;
  height:auto;
  object-fit:contain;
}
@media(max-width:650px){
  .service-photo-viewer{
    padding:10px;
  }
  .service-photo-viewer-dialog{
    width:100%;
    height:94vh;
  }
}


/* V251 · Hoja de Servicio: evidencia fotográfica sin nombre/fecha de archivo */
.service-report-photo-item figcaption{
  text-align:center;
  padding:7px 10px !important;
}
.service-report-photo-item figcaption strong{
  font-size:9px !important;
}
.service-report-photo-item figcaption span,
.service-report-photo-item figcaption small{
  display:none !important;
}


/* ================================================================
   V252 · Flujo Servicio Completado → Hoja de Servicio → Firma → PDF
   ================================================================ */
.service-completion-note{
  margin:12px 0 0;
  color:#687c95;
  font-size:11px;
  line-height:1.45;
}
.service-completion-actions{
  display:flex;
  justify-content:flex-end;
  margin-top:14px;
}
.service-completion-actions button{
  min-width:190px;
}
.service-completion-status{
  margin-top:12px;
  padding:10px 12px;
  border-radius:9px;
  display:flex;
  flex-direction:column;
  gap:3px;
}
.service-completion-status.pending{
  background:#fff8e9;
  border:1px solid #efd79e;
}
.service-completion-status.signed{
  background:#edf8f1;
  border:1px solid #b9dfc5;
}
.service-completion-status strong{
  color:#294866;
  font-size:10.5px;
}
.service-completion-status span{
  color:#718399;
  font-size:9.5px;
}

.service-client-review-banner{
  width:min(calc(100% - 36px),1144px);
  margin:0 auto 16px;
  box-sizing:border-box;
  padding:12px 15px;
  border:1px solid #cbdced;
  border-left:5px solid #0b3d91;
  border-radius:10px;
  background:#f7fbff;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.service-client-review-banner strong{
  color:#173f7e;
  font-size:12px;
  white-space:nowrap;
}
.service-client-review-banner span{
  color:#667b96;
  font-size:10.5px;
  text-align:right;
}

.service-report-signature-panel{
  width:min(calc(100% - 36px),1144px);
  margin:4px auto 34px;
  box-sizing:border-box;
  background:#fff;
  border:1px solid #dce5ef;
  border-radius:14px;
  padding:20px;
  box-shadow:0 8px 24px rgba(20,45,80,.07);
}
.service-report-signature-panel-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:15px;
}
.service-report-signature-panel-head h2{
  margin:3px 0 5px;
  color:#173f7e;
  font-size:22px;
}
.service-report-signature-panel-head p{
  margin:0;
  max-width:720px;
  color:#6a7c94;
  font-size:11px;
  line-height:1.45;
}
.service-report-signature-state{
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  font-size:9.5px;
  font-weight:900;
  white-space:nowrap;
}
.service-report-signature-state.pending{
  background:#fff3db;
  color:#8a6200;
}
.service-report-signature-state.signed{
  background:#e8f7ef;
  color:#187447;
}
.service-report-signature-pad{
  position:relative;
  border:1px solid #cfd9e6;
  border-radius:10px;
  background:#fff;
  overflow:hidden;
}
.service-report-signature-pad #serviceSignatureCanvas{
  display:block;
  width:100%;
  height:180px;
  touch-action:none;
  cursor:crosshair;
}
.service-report-signature-pad .service-signature-line{
  position:absolute;
  left:8%;
  right:8%;
  bottom:31px;
  border-top:1px solid #8fa1b7;
  pointer-events:none;
}
.service-report-signature-pad>span{
  position:absolute;
  bottom:8px;
  left:50%;
  transform:translateX(-50%);
  color:#75879d;
  font-size:9.5px;
  pointer-events:none;
}
.service-report-signature-actions{
  display:flex;
  justify-content:flex-end;
  gap:8px;
  margin-top:10px;
}
.service-report-saved-signature{
  display:grid;
  grid-template-columns:250px minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding:14px;
  border:1px solid #cfe1d5;
  border-radius:10px;
  background:#f6fcf8;
}
.service-report-saved-signature img{
  width:240px;
  height:85px;
  object-fit:contain;
  background:#fff;
  border:1px solid #dce5ef;
  border-radius:8px;
}
.service-report-saved-signature strong{
  display:block;
  color:#173f7e;
  font-size:12px;
}
.service-report-saved-signature span,
.service-report-saved-signature small{
  display:block;
  margin-top:4px;
  color:#6f8299;
  font-size:10px;
}
#serviceGeneratePdfBtn:disabled{
  background:#9aa7b8 !important;
  border-color:#9aa7b8 !important;
  color:#fff !important;
  box-shadow:none !important;
}
@media(max-width:700px){
  .service-client-review-banner,
  .service-report-signature-panel-head{
    flex-direction:column;
    align-items:stretch;
  }
  .service-client-review-banner span{text-align:left}
  .service-report-saved-signature{grid-template-columns:1fr}
  .service-report-saved-signature img{width:100%;max-width:320px}
}


/* ==========================================================================\n   V253 · Field Operations V1\n   ========================================================================== */
.field-operations-module{padding-top:24px;padding-bottom:60px}.field-operations-card .v165-launch-art{color:#0b4f8a}.fo-topbar{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.fo-topbar h1{margin:2px 0 4px;color:#173f7e;font-size:31px}.fo-topbar p{margin:0;color:#708198}.fo-head-left,.fo-head-actions{display:flex;align-items:center;gap:12px}.fo-head-actions{justify-content:flex-end;flex-wrap:wrap}.fo-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:16px}.fo-metrics>div,.fo-project-summary{background:#fff;border:1px solid #dfe7f0;border-radius:12px;box-shadow:0 5px 16px rgba(26,54,88,.05)}.fo-metrics>div{padding:15px}.fo-metrics span,.fo-project-summary span{display:block;color:#7890a8;font-size:10px;font-weight:800;text-transform:uppercase;letter-spacing:.04em}.fo-metrics strong{display:block;margin-top:5px;color:#173f7e;font-size:24px}.fo-dashboard-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:10px;margin:0 0 12px}.fo-table-wrap{overflow:auto;background:#fff;border:1px solid #dfe7f0;border-radius:12px}.fo-table{width:100%;border-collapse:collapse;table-layout:fixed}.fo-table th,.fo-table td{padding:12px;border-bottom:1px solid #edf1f5;text-align:left;font-size:11px;vertical-align:middle}.fo-table th{background:#f6f8fb;color:#65768b;font-size:9.5px;text-transform:uppercase}.fo-table td strong,.fo-table td small{display:block}.fo-table td small{margin-top:3px;color:#8796a9}.fo-table th:nth-child(1){width:20%}.fo-table th:nth-child(2){width:15%}.fo-table th:nth-child(3){width:20%}.fo-table th:nth-child(4){width:12%}.fo-table th:nth-child(5){width:13%}.fo-table th:nth-child(6){width:12%}.fo-status{display:inline-flex;padding:5px 8px;border-radius:999px;background:#edf3f8;color:#526b84;font-size:9px;font-weight:900}.fo-status.complete{background:#e7f6ed;color:#1d7448}.fo-status.submit-for-review{background:#fff3d8;color:#8c6505}.fo-status.in-progress{background:#e8f1ff;color:#185b9e}.fo-progress-mini{display:flex;align-items:center;gap:7px}.fo-progress-mini>span{height:7px;background:#e7edf4;border-radius:9px;overflow:hidden;flex:1}.fo-progress-mini i,.fo-section-progress i{display:block;height:100%;background:#1f77b4}.fo-progress-mini b{font-size:9px;color:#53697f}.fo-empty{text-align:center!important;padding:32px!important;color:#8796a9}.fo-project-summary{display:grid;grid-template-columns:1.5fr repeat(3,1fr);gap:0;margin-bottom:14px;overflow:hidden}.fo-project-summary>div{padding:15px;border-right:1px solid #e8edf3}.fo-project-summary>div:last-child{border-right:0}.fo-project-summary strong{display:block;margin-top:5px;color:#223e60;font-size:12px}.fo-big-progress{display:flex;align-items:center;gap:12px}.fo-progress-ring{--p:0;width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(#1f77b4 calc(var(--p)*1%),#e7edf4 0);position:relative}.fo-progress-ring:after{content:"";position:absolute;width:45px;height:45px;border-radius:50%;background:#fff}.fo-progress-ring strong{position:relative;z-index:1;margin:0;font-size:12px}.fo-big-progress b{display:block;margin-top:4px;color:#6d8097;font-size:10px}.fo-workflow{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:18px}.fo-workflow button{border:1px solid #d6e0eb;background:#fff;color:#5e7186;border-radius:8px;padding:8px 12px;font-size:10px;font-weight:800;cursor:pointer}.fo-workflow button.active{background:#173f7e;color:#fff;border-color:#173f7e}.fo-section-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.fo-section-card{display:grid;grid-template-columns:42px minmax(0,1fr) 48px 18px;align-items:center;gap:12px;text-align:left;background:#fff;border:1px solid #dfe7f0;border-radius:13px;padding:16px;cursor:pointer;box-shadow:0 5px 16px rgba(26,54,88,.04)}.fo-section-card:hover{border-color:#9ebbd7;transform:translateY(-1px)}.fo-section-no{width:42px;height:42px;border-radius:10px;display:grid;place-items:center;background:#eef5fb;color:#1b5e94;font-weight:900}.fo-section-copy strong{display:block;color:#1c3f68;font-size:13px}.fo-section-copy span{display:block;margin-top:3px;color:#7a8ca2;font-size:9.5px}.fo-section-progress{height:6px;background:#e9eef4;border-radius:8px;overflow:hidden;margin-top:9px}.fo-section-card>b{color:#173f7e;font-size:12px;text-align:right}.fo-arrow{color:#7d91a8;font-size:18px}.fo-section-badge{display:inline-flex;padding:8px 11px;border-radius:999px;background:#eaf2fb;color:#185c96;font-weight:900;font-size:11px}.fo-master-card,.fo-material-card{background:#f8fbff;border:1px solid #cedff0;border-radius:12px;padding:15px;margin-bottom:14px}.fo-master-card>div:first-child strong,.fo-card-head strong{display:block;color:#173f7e;font-size:12px}.fo-master-card>div:first-child span,.fo-card-head span{display:block;color:#72879f;font-size:9.5px;margin-top:3px}.fo-master-grid{display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-top:12px}.fo-master-grid span{background:#fff;border:1px solid #e1e8f0;border-radius:9px;padding:10px}.fo-master-grid small{display:block;color:#8494a7;font-size:8px;text-transform:uppercase}.fo-master-grid b{display:block;margin-top:4px;color:#294966;font-size:10px;word-break:break-word}.fo-card-head{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.fo-material-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:12px}.fo-material-grid label{display:grid;grid-template-columns:minmax(0,1fr) 72px;gap:8px;align-items:center;background:#fff;border:1px solid #e0e7ef;border-radius:8px;padding:8px 9px}.fo-material-grid label span{font-size:9.5px;font-weight:750;color:#435d78}.fo-material-grid input{height:34px;text-align:center}.fo-additional-head{display:flex;align-items:center;justify-content:space-between;margin-top:16px;padding-top:12px;border-top:1px solid #dce6f0}.fo-additional-head strong{font-size:11px;color:#294966}.fo-additional-list{margin-top:8px}.fo-additional-row{display:grid;grid-template-columns:minmax(0,1fr) 90px auto;gap:8px;margin-bottom:7px}.fo-empty-small{padding:9px 0;color:#8798aa;font-size:9.5px}.fo-fields{display:grid;gap:10px}.fo-field-card{background:#fff;border:1px solid #dfe7f0;border-radius:12px;padding:14px}.fo-field-title{display:flex;justify-content:space-between;gap:12px;align-items:flex-start;margin-bottom:9px}.fo-field-title strong{display:block;color:#294965;font-size:11.5px}.fo-field-title strong em{color:#c62828;font-style:normal}.fo-field-title small{display:block;margin-top:3px;color:#8191a4;font-size:9px}.fo-indicator{flex:0 0 auto;padding:5px 8px;border-radius:999px;font-size:8.5px;font-weight:900}.fo-indicator.complete{background:#e6f6ec;color:#1b7145}.fo-indicator.pending{background:#fff3d8;color:#8a6302}.fo-indicator.na{background:#eef1f4;color:#7a8795}.fo-input-wrap input,.fo-input-wrap select,.fo-input-wrap textarea,.fo-comment{width:100%;box-sizing:border-box}.fo-comment{margin-top:9px;min-height:62px}.fo-drop-zone{display:flex;min-height:95px;flex-direction:column;align-items:center;justify-content:center;text-align:center;border:2px dashed #bdcddd;border-radius:10px;background:#f8fbfe;cursor:pointer;padding:12px;box-sizing:border-box}.fo-drop-zone.drag-over{border-color:#1f77b4;background:#eaf4fc}.fo-drop-zone input{display:none}.fo-drop-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:#e6f0f8;color:#195d91;font-size:20px}.fo-drop-zone strong{margin-top:5px;color:#315873;font-size:10px}.fo-drop-zone small{margin-top:3px;color:#8294a8;font-size:8.5px}.fo-photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin-top:10px}.fo-photo-grid.small{grid-template-columns:repeat(5,minmax(0,1fr))}.fo-photo-card{margin:0;border:1px solid #dfe6ee;border-radius:9px;overflow:hidden;background:#fff}.fo-thumb{display:flex;width:100%;height:130px;align-items:center;justify-content:center;border:0;background:#eef2f6;padding:0;cursor:zoom-in}.fo-photo-grid.small .fo-thumb{height:90px}.fo-thumb img{width:100%;height:100%;object-fit:cover}.fo-thumb span{font-size:9px;color:#8191a3}.fo-photo-card figcaption{padding:7px}.fo-photo-card figcaption strong{display:block;font-size:8.5px;color:#34506c;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fo-photo-card figcaption>span{display:block;margin:3px 0;color:#8a99aa;font-size:8px}.fo-photo-card figcaption div{display:flex;justify-content:space-between;gap:6px}.link-btn{border:0;background:none;padding:2px 0;color:#1d6298;font-size:8px;font-weight:800;cursor:pointer}.danger-text{color:#b62a2a}.fo-inline-photo{margin-top:10px;padding-top:10px;border-top:1px dashed #d9e1ea}.fo-inline-photo>span{display:block;margin-bottom:6px;color:#74889e;font-size:9px;font-weight:800}.fo-serial-box{margin-top:10px;padding:11px;background:#f7faff;border:1px solid #dae6f1;border-radius:9px}.fo-serial-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px}.fo-serial-head strong,.fo-serial-head span{display:block}.fo-serial-head strong{color:#274d70;font-size:10px}.fo-serial-head span{margin-top:3px;color:#8393a6;font-size:8.5px}.fo-serial-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:7px;margin-top:6px}.fo-agreement-text{padding:13px;background:#f7f9fc;border:1px solid #e1e7ef;border-radius:9px;color:#40566f;font-size:10.5px;line-height:1.55}.fo-agree-check{display:flex;align-items:center;gap:8px;margin-top:11px;color:#2e506f;font-size:10px;font-weight:800}.fo-saved-signature{display:flex;gap:16px;align-items:center}.fo-saved-signature img{width:260px;height:90px;object-fit:contain;border:1px solid #dce4ed;border-radius:8px;background:#fff}.fo-saved-signature strong,.fo-saved-signature span{display:block}.fo-saved-signature strong{color:#264b6b;font-size:11px}.fo-saved-signature span{margin:4px 0 8px;color:#8191a3;font-size:9px}.fo-signature-canvas{display:block;width:100%;height:180px;border:1px solid #ccd8e4;border-radius:9px;background:#fff;touch-action:none}.fo-signature-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:8px}.fo-photo-viewer{position:fixed;inset:0;z-index:9500;display:grid;place-items:center;padding:24px}.fo-photo-viewer-bg{position:absolute;inset:0;background:rgba(4,15,28,.88)}.fo-photo-viewer-box{position:relative;z-index:1;width:min(1200px,95vw);height:min(850px,92vh);display:flex;align-items:center;justify-content:center;background:#111b24;border-radius:12px;overflow:hidden}.fo-photo-viewer-box img{max-width:100%;max-height:100%;object-fit:contain}.fo-photo-close{position:absolute;top:12px;right:12px;z-index:2;border:0;border-radius:8px;padding:8px 11px;background:#fff;color:#27435e;font-weight:800;cursor:pointer}.danger.ghost{background:#fff!important;color:#b52a2a!important;border:1px solid #e4bcbc!important}.fo-input-wrap textarea{resize:vertical}.fo-field-card input,.fo-field-card select,.fo-field-card textarea,.fo-material-card input{border:1px solid #cfd9e4;border-radius:7px;padding:8px;font:inherit;background:#fff;color:#29445f}.fo-field-card select,.fo-field-card input{min-height:38px}.fo-dashboard-toolbar input,.fo-dashboard-toolbar select{border:1px solid #ced9e5;border-radius:8px;padding:9px 10px;background:#fff}.fo-section-head{position:sticky;top:76px;z-index:50;background:#f6f8fb;padding:10px 0;margin-top:-10px}.fo-project-head{align-items:center}
@media(max-width:900px){.fo-metrics{grid-template-columns:repeat(2,1fr)}.fo-project-summary{grid-template-columns:repeat(2,1fr)}.fo-section-grid{grid-template-columns:1fr}.fo-master-grid{grid-template-columns:repeat(2,1fr)!important}.fo-material-grid{grid-template-columns:repeat(2,1fr)}.fo-photo-grid,.fo-photo-grid.small{grid-template-columns:repeat(2,1fr)}.fo-topbar,.fo-head-left{align-items:flex-start}.fo-project-head,.fo-section-head{flex-direction:column}.fo-head-actions{width:100%;justify-content:flex-start}}
@media(max-width:600px){.field-operations-module{padding-left:12px;padding-right:12px}.fo-metrics,.fo-project-summary,.fo-master-grid,.fo-material-grid{grid-template-columns:1fr!important}.fo-dashboard-toolbar{grid-template-columns:1fr}.fo-table{min-width:850px}.fo-head-left{width:100%}.fo-head-left>div{min-width:0}.fo-topbar h1{font-size:24px}.fo-photo-grid,.fo-photo-grid.small{grid-template-columns:1fr 1fr}.fo-section-card{grid-template-columns:38px minmax(0,1fr) 42px 14px;padding:12px;gap:9px}.fo-section-no{width:38px;height:38px}.fo-additional-row{grid-template-columns:1fr 70px}.fo-additional-row button{grid-column:1/-1}.fo-saved-signature{flex-direction:column;align-items:flex-start}.fo-saved-signature img{width:100%}.fo-section-head{top:64px}}


/* ================================================================
   V254 · Field Operations usability refinements
   ================================================================ */
.fo-indicator.optional{
  background:#f2f4f7;
  color:#7b8897;
}
.fo-save-indicator{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:28px;
  padding:5px 10px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  white-space:nowrap;
  transition:background .15s ease,color .15s ease;
}
.fo-save-indicator.saving{
  background:#fff3d8;
  color:#8a6302;
}
.fo-save-indicator.saved{
  background:#e6f6ec;
  color:#1b7145;
}

/* Materials are intentionally one continuous column and appear at the end
   of Información del Equipo. */
.fo-material-card{
  margin-top:14px;
}
.fo-material-grid{
  grid-template-columns:1fr !important;
}
.fo-material-grid label{
  grid-template-columns:minmax(0,1fr) 110px !important;
}
.fo-material-grid input{
  text-align:center;
}
.fo-section-navigation{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:20px 0 34px;
  padding-top:16px;
  border-top:1px solid #dce5ef;
}
.fo-next-btn{
  min-width:150px;
}
@media(max-width:600px){
  .fo-section-navigation{
    align-items:stretch;
  }
  .fo-section-navigation>div,
  .fo-section-navigation button{
    flex:1 1 0;
  }
  .fo-material-grid label{
    grid-template-columns:minmax(0,1fr) 82px !important;
  }
}


/* ================================================================
   V255 · Field Operations refinements
   ================================================================ */
.fo-material-grid label{
  min-height:52px !important;
  padding:5px 10px !important;
}
.fo-material-grid label span{
  display:flex;
  align-items:center;
  min-height:40px;
  font-size:11.5px !important;
  font-weight:800 !important;
  line-height:1.15;
}
.fo-material-grid input{
  height:40px !important;
  font-size:12px;
}
.fo-additional-entry{
  display:grid;
  grid-template-columns:minmax(0,1fr) 100px auto;
  gap:8px;
  align-items:center;
  margin-top:9px;
}
.fo-additional-entry input{
  height:40px;
}
.fo-additional-saved-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  min-height:44px;
  padding:7px 9px;
  margin-bottom:7px;
  background:#fff;
  border:1px solid #e0e7ef;
  border-radius:8px;
}
.fo-additional-saved-row span{
  min-width:0;
}
.fo-additional-saved-row strong,
.fo-additional-saved-row small{
  display:block;
}
.fo-additional-saved-row strong{
  color:#34516d;
  font-size:10.5px;
}
.fo-additional-saved-row small{
  margin-top:2px;
  color:#8292a4;
  font-size:8.5px;
}
.fo-voltage-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
}
.fo-voltage-grid label{
  display:grid;
  gap:5px;
}
.fo-voltage-grid label span{
  color:#526c86;
  font-size:9.5px;
  font-weight:800;
}
.fo-voltage-grid input{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:700px){
  .fo-additional-entry{
    grid-template-columns:minmax(0,1fr) 76px;
  }
  .fo-additional-entry button{
    grid-column:1/-1;
  }
  .fo-voltage-grid{
    grid-template-columns:1fr;
  }
}


/* ================================================================
   V256 · Field Operations refinements
   ================================================================ */
.fo-client-link{
  display:block;
  max-width:100%;
  padding:0;
  border:0;
  background:transparent;
  color:#245b86;
  font:inherit;
  font-size:11px;
  font-weight:850;
  text-align:left;
  cursor:pointer;
}
.fo-client-link:hover{
  text-decoration:underline;
}
.fo-material-grid label span,
.fo-material-added strong{
  font-size:12.5px !important;
}
.fo-material-added{
  display:grid;
  grid-template-columns:minmax(0,1fr) 110px auto;
  gap:8px;
  align-items:center;
  min-height:52px;
  padding:5px 10px;
  background:#fff;
  border:1px solid #dce5ee;
  border-radius:8px;
}
.fo-material-added>span{
  display:flex;
  min-height:40px;
  flex-direction:column;
  justify-content:center;
}
.fo-material-added strong{
  color:#405d78;
  font-weight:850;
  line-height:1.15;
}
.fo-material-added small{
  margin-top:3px;
  color:#8a98a8;
  font-size:8px;
}
.fo-material-added input{
  height:40px;
  text-align:center;
}
.fo-panel-picker{
  display:grid;
  gap:8px;
}
.fo-panel-picker select,
.fo-panel-picker input{
  width:100%;
  box-sizing:border-box;
}
@media(max-width:700px){
  .fo-material-added{
    grid-template-columns:minmax(0,1fr) 78px;
  }
  .fo-material-added button{
    grid-column:1/-1;
  }
}


/* ================================================================
   V264 · Field Operations document field
   ================================================================ */
.fo-document-linked{
  display:grid;
  grid-template-columns:48px minmax(0,1fr) auto;
  gap:12px;
  align-items:center;
  padding:11px 12px;
  margin-top:8px;
  border:1px solid #dce5ee;
  border-radius:10px;
  background:#fbfdff;
}
.fo-document-icon{
  display:flex;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  border-radius:8px;
  background:#fbe9e9;
  color:#b3261e;
  font-size:11px;
  font-weight:900;
}
.fo-document-meta strong,
.fo-document-meta small{
  display:block;
}
.fo-document-meta strong{
  color:#274c6b;
  font-size:11px;
}
.fo-document-meta small{
  margin-top:3px;
  color:#8190a0;
  font-size:8.5px;
}
.fo-document-actions{
  display:flex;
  gap:6px;
}
.fo-document-upload{
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:10px;
  padding:10px 12px;
  border:1px dashed #afc3d7;
  border-radius:9px;
  background:#f8fbfe;
  cursor:pointer;
}
.fo-document-upload input{
  display:none;
}
.fo-document-upload span{
  color:#315b7d;
  font-size:10px;
  font-weight:850;
}
.fo-document-upload small{
  margin-left:auto;
  color:#8b98a7;
  font-size:8.5px;
}
.fo-document-empty{
  margin-top:8px;
  padding:10px 12px;
  border-radius:8px;
  background:#f7f9fb;
  color:#8090a0;
  font-size:9.5px;
}
@media(max-width:700px){
  .fo-document-linked{
    grid-template-columns:44px minmax(0,1fr);
  }
  .fo-document-actions{
    grid-column:1/-1;
  }
}


/* V265 · Utility Bill drag & drop */
.fo-document-upload.is-dragover{
  border-color:#2c6ea8 !important;
  background:#eef6fd !important;
  box-shadow:0 0 0 2px rgba(44,110,168,.10);
}
.fo-document-actions .user-danger{
  white-space:nowrap;
}


/* ================================================================
   V266 · Top navigation grouped menus
   ================================================================ */
.cenergys-nav-groups{overflow:visible!important;gap:4px!important;}
.cenergys-nav-group{position:relative;display:flex;align-items:center;}
.cenergys-nav-parent{display:flex!important;align-items:center;gap:5px;}
.cenergys-nav-caret{font-size:9px;opacity:.75;margin-left:1px;}
.cenergys-nav-menu{position:absolute;top:calc(100% + 8px);left:0;z-index:7000;display:none;min-width:190px;padding:7px;background:#fff;border:1px solid #dbe4ee;border-radius:11px;box-shadow:0 16px 38px rgba(10,35,70,.18);}
.cenergys-nav-group.open .cenergys-nav-menu{display:flex;flex-direction:column;gap:3px;}
.cenergys-nav-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:10px 11px;border:0;border-radius:8px;background:#fff;color:#244a6d;text-align:left;font-size:12px;font-weight:800;cursor:pointer;white-space:nowrap;}
.cenergys-nav-menu button:hover,.cenergys-nav-menu button.active{background:#eef5fb;color:#0b3d91;}
.cenergys-nav-menu button span{width:18px;text-align:center;color:#f47a1f;}
@media(max-width:1100px){.cenergys-nav-menu{left:auto;right:0}.cenergys-nav-group[data-nav-group="crm"] .cenergys-nav-menu{left:0;right:auto;}}

/* ================================================================
   V266 · Final Project Report preview
   ================================================================ */
.fo-report-toolbar{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;margin-bottom:18px}.fo-report-toolbar>div:first-child{display:flex;gap:12px;align-items:flex-start}.fo-report-toolbar h1{margin:3px 0 3px;color:#173f7e}.fo-report-toolbar p{margin:0;color:#718198}
.fo-report-stack{display:flex;flex-direction:column;gap:24px;align-items:center;background:#edf2f6;padding:24px;border-radius:14px}
.fo-report-page{width:min(100%,816px);min-height:1056px;background:#fff;box-shadow:0 8px 28px rgba(19,52,86,.14);padding:48px 54px;box-sizing:border-box;position:relative;color:#26384a}.fo-report-page h2{font-size:24px;color:#173f7e;margin:14px 0 18px}.fo-report-page h3{font-size:15px;color:#274f75;margin:22px 0 10px;border-bottom:1px solid #dbe4ed;padding-bottom:7px}.fo-report-page-head{display:flex;justify-content:space-between;border-bottom:2px solid #173f7e;padding-bottom:8px;color:#173f7e;font-size:9px;font-weight:900;letter-spacing:.1em}
.fo-report-cover{overflow:hidden;padding:0;background:linear-gradient(145deg,#fff 0 61%,#eef5fb 61% 100%)}.fo-report-cover:before{content:"";position:absolute;width:430px;height:430px;border-radius:50%;right:-170px;top:-160px;background:#173f7e}.fo-report-cover:after{content:"";position:absolute;width:300px;height:300px;border-radius:50%;left:-160px;bottom:-130px;background:#f47a1f}.fo-report-cover-brand{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:48px 54px}.fo-report-cover-brand img{height:52px;max-width:230px;object-fit:contain}.fo-report-cover-brand span{font-size:10px;letter-spacing:.14em;font-weight:900;color:#173f7e}.fo-report-cover-hero{position:relative;z-index:2;padding:80px 70px 55px}.fo-report-kicker{font-size:11px;font-weight:900;letter-spacing:.14em;color:#f47a1f}.fo-report-cover-hero h1{font-size:55px;line-height:.98;margin:13px 0;color:#173f7e}.fo-report-cover-hero h1 span{color:#f47a1f}.fo-report-cover-hero p{font-size:17px;max-width:490px;color:#64748b}.fo-report-cover-client{position:relative;z-index:2;margin:20px 54px;padding:24px;border:1px solid #dbe5ef;border-radius:14px;background:rgba(255,255,255,.92)}.fo-report-cover-client>div:first-child small,.fo-report-cover-client>div:first-child strong{display:block}.fo-report-cover-client>div:first-child small{font-size:9px;letter-spacing:.12em;color:#8796a6}.fo-report-cover-client>div:first-child strong{font-size:25px;color:#173f7e;margin-top:3px}.fo-report-cover footer{position:absolute;z-index:3;bottom:34px;left:54px;right:54px;display:flex;justify-content:space-between;font-size:9px;font-weight:850;color:#66788a;border-top:1px solid #cfdbe5;padding-top:10px}
.fo-report-info-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px 18px;margin-top:10px}.fo-report-info-grid>div{border-bottom:1px solid #e6edf3;padding:7px 0}.fo-report-info-grid span,.fo-report-info-grid strong{display:block}.fo-report-info-grid span{font-size:8.5px;text-transform:uppercase;letter-spacing:.06em;color:#8290a0}.fo-report-info-grid strong{margin-top:3px;font-size:11px;color:#243f58;word-break:break-word}
.fo-report-page2-top{display:grid;grid-template-columns:170px 1fr;gap:22px;align-items:center;margin:20px 0}.fo-report-house{height:110px;border-radius:10px;background:#eaf0f5;overflow:hidden;display:flex;align-items:center;justify-content:center;color:#8290a0;font-size:10px}.fo-report-house img,.fo-report-photo-placeholder img{width:100%;height:100%;object-fit:cover}.fo-report-toc{background:#f7fafc;border:1px solid #e2eaf1;border-radius:10px;padding:13px 18px}.fo-report-toc h3{margin:0 0 8px;border:0;padding:0}.fo-report-toc ol{columns:2;margin:0;padding-left:18px;font-size:10px;line-height:1.7;color:#52697c}
.fo-report-serial-table{width:100%;border-collapse:collapse;margin-top:10px;font-size:10px}.fo-report-serial-table th,.fo-report-serial-table td{border:1px solid #dce5ed;padding:9px;text-align:left;vertical-align:top}.fo-report-serial-table th{width:35%;background:#f4f7fa;color:#315b7d}.fo-report-note{font-size:10px;line-height:1.45;color:#718198;background:#f7fafc;border-left:3px solid #f47a1f;padding:9px 11px;margin:8px 0 12px}.fo-report-agreement{white-space:pre-wrap;font-size:11px;line-height:1.6;border:1px solid #dce5ed;border-radius:10px;padding:18px;background:#fbfdff}.fo-report-signature{margin-top:24px;display:flex;align-items:flex-end;gap:16px;border-bottom:1px solid #7a8998;padding-bottom:8px;min-height:88px}.fo-report-signature img{max-width:260px;max-height:80px}.fo-report-signature span{font-size:9px;color:#718198}.fo-report-signature-empty{font-size:10px;color:#9aa6b3}.fo-report-subtitle{margin-top:40px!important}
.fo-report-docs{display:flex;flex-direction:column;gap:7px}.fo-report-doc-row{display:grid;grid-template-columns:230px 1fr;gap:15px;padding:11px 12px;border:1px solid #e0e8ef;border-radius:8px}.fo-report-doc-row strong{font-size:10px;color:#315b7d}.fo-report-doc-row span{font-size:9.5px;color:#66798b;line-height:1.5}
.fo-report-photo-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:22px}.fo-report-photo-grid figure{margin:0;border:1px solid #dce5ed;border-radius:10px;overflow:hidden;background:#fff}.fo-report-photo-placeholder{height:230px;background:#edf2f6;display:flex;align-items:center;justify-content:center;color:#8290a0;font-size:10px}.fo-report-photo-grid figcaption{padding:9px 11px}.fo-report-photo-grid figcaption strong,.fo-report-photo-grid figcaption span{display:block}.fo-report-photo-grid figcaption strong{font-size:10px;color:#274f75}.fo-report-photo-grid figcaption span{font-size:9px;color:#718198;margin-top:3px}.fo-report-empty{margin-top:20px;padding:18px;background:#f7fafc;border-radius:10px;color:#8796a6;font-size:11px}
@media print{body>*:not(#fieldOperationsModule){display:none!important}#fieldOperationsModule{display:block!important}.topbar,.fo-report-toolbar{display:none!important}.fo-report-stack{background:#fff;padding:0;gap:0}.fo-report-page{box-shadow:none;width:8.5in;min-height:11in;page-break-after:always;margin:0}.fo-report-page:last-child{page-break-after:auto}}


/* ================================================================
   V267 · Navegación + Field Operations refinamientos
   ================================================================ */

/* Dropdowns must escape the old compact navigation overflow rules. */
.topbar{
  position:relative !important;
  z-index:8000 !important;
  overflow:visible !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups{
  overflow:visible !important;
}
.cenergys-nav-group{
  position:relative !important;
  z-index:8001;
}
.cenergys-nav-group.open{
  z-index:8100;
}
.cenergys-nav-parent{
  cursor:pointer !important;
  pointer-events:auto !important;
}
.cenergys-nav-menu{
  pointer-events:auto !important;
  z-index:8200 !important;
}

/* Clear Field Operations actions from the dashboard. */
.fo-row-actions{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-start;
}
.fo-row-actions button{
  white-space:nowrap;
}
.fo-project-client-name{
  color:#294965;
  font-weight:900;
}
.fo-final-report-btn{
  box-shadow:0 4px 12px rgba(11,61,145,.14);
}

/* Completion Agreement: checkbox and sentence must stay together inside the card. */
.fo-agree-check{
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:8px !important;
  width:auto !important;
  max-width:100% !important;
  margin:11px 0 0 !important;
  padding:0 !important;
  white-space:normal !important;
}
.fo-agree-check input[type="checkbox"]{
  width:18px !important;
  height:18px !important;
  min-width:18px !important;
  min-height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  padding:0 !important;
}
.fo-agree-check span{
  display:inline !important;
  margin:0 !important;
  padding:0 !important;
  line-height:1.3 !important;
  text-transform:none !important;
  letter-spacing:0 !important;
}


/* ================================================================
   V268 · Reporte Final: TOC + seriales + voltajes
   ================================================================ */
.fo-report-toc-table{
  display:flex;
  flex-direction:column;
  gap:7px;
  margin-top:10px;
}
.fo-report-toc-table>div{
  display:grid;
  grid-template-columns:auto 1fr 34px;
  align-items:end;
  gap:8px;
  font-size:11px;
}
.fo-report-toc-table>div span{
  color:#314f68;
  font-weight:750;
}
.fo-report-toc-table>div i{
  border-bottom:1px dotted #aab7c4;
  transform:translateY(-3px);
}
.fo-report-toc-table>div strong{
  text-align:right;
  color:#173f7e;
  font-size:11px;
  font-weight:900;
}
.fo-report-voltage-column{
  display:flex;
  flex-direction:column;
  gap:8px;
  width:min(360px,100%);
  margin-top:10px;
}
.fo-report-voltage-column>div{
  display:grid;
  grid-template-columns:150px 1fr;
  align-items:center;
  gap:12px;
  min-height:42px;
  padding:8px 12px;
  border:1px solid #dce5ef;
  border-radius:8px;
  background:#fbfdff;
}
.fo-report-voltage-column span{
  color:#718198;
  font-size:10px;
  font-weight:800;
}
.fo-report-voltage-column strong{
  color:#173f7e;
  font-size:13px;
  font-weight:900;
}


/* ================================================================
   V270 · Data ownership / single edit point
   ================================================================ */
.db-master-cost-cell{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:4px;
}
.db-master-cost-cell strong{
  white-space:nowrap;
}
.db-cost-link,
.db-cost-inventory-link{
  border:0;
  background:transparent;
  color:#0b5aa7;
  padding:0;
  font:inherit;
  font-size:10px;
  font-weight:800;
  text-decoration:underline;
  cursor:pointer;
  text-align:left;
}
.db-cost-inventory-link{
  margin-top:6px;
}
.db-cost-inventory-link:disabled{
  color:#97a4b1;
  cursor:not-allowed;
  text-decoration:none;
}
.db-cost-readonly-wrap input[readonly]{
  background:#f3f6f9 !important;
  color:#334e68 !important;
  cursor:not-allowed;
}
.inventory-owner-note{
  display:flex;
  flex-direction:column;
  gap:3px;
  margin-bottom:12px;
  padding:10px 12px;
  border:1px solid #d6e3ef;
  border-radius:8px;
  background:#f5f9fd;
  color:#47657e;
}
.inventory-owner-note strong{
  color:#173f7e;
  font-size:10.5px;
}
.inventory-owner-note span{
  font-size:9px;
}
.inventory-readonly-source{
  min-height:38px;
  display:flex;
  align-items:center;
  padding:8px 10px;
  border:1px solid #dfe6ed;
  border-radius:6px;
  background:#f5f7f9;
  color:#65788a;
  font-size:10px;
  font-weight:700;
}
.inventory-editor-grid input[readonly],
.inventory-editor-grid select:disabled{
  background:#f3f6f8 !important;
  color:#52687a !important;
  cursor:not-allowed;
}
.inventory-source-lock{
  display:inline-flex;
  align-items:center;
  padding:5px 7px;
  border-radius:999px;
  background:#eef4f9;
  color:#60788d;
  font-size:8.5px;
  font-weight:800;
  white-space:nowrap;
}
.inventory-focus-card{
  outline:3px solid rgba(11,90,167,.16);
  outline-offset:3px;
  transition:outline-color .3s ease;
}

/* V272 QA fixes */
.crm-quick-note{margin-top:14px;padding-top:14px;border-top:1px solid #e3ebf3}.crm-quick-note textarea{width:100%;resize:vertical}
#contractSelectedSystem[readonly],#contractPanels[readonly],#contractInverter[readonly],#contractBattery[readonly]{background:#f2f5f8!important;color:#475d70!important}
body.proposal-print-mode .topbar,body.proposal-print-mode #homeModule,body.proposal-print-mode #crmModule,body.proposal-print-mode #analysisModule,body.proposal-print-mode #contractModule,body.proposal-print-mode #servicesModule,body.proposal-print-mode #fieldOperationsModule,body.proposal-print-mode #profitabilityModule,body.proposal-print-mode #inventoryModule,body.proposal-print-mode .proposal-module-toolbar{display:none!important}

.fo-linked-generated-docs{grid-column:1/-1;border:1px solid #dbe5ef;border-radius:12px;padding:14px;background:#f9fbfd}.fo-report-agreement-status{margin:10px 0 14px;padding:8px 10px;border-radius:8px;background:#edf7f0;color:#23603a}.fo-report-signature-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.fo-report-attachment-viewer{width:100%;height:8.9in;border:1px solid #d8e1ea;border-radius:8px;overflow:hidden;background:#f4f7fa;display:flex;align-items:center;justify-content:center}.fo-report-attachment-viewer iframe,.fo-report-attachment-viewer img{width:100%;height:100%;border:0;object-fit:contain;background:#fff}@media(max-width:760px){.fo-report-signature-grid{grid-template-columns:1fr}}

.db-pricing-guidance{padding:10px 12px;border:1px solid #dae6f1;border-radius:8px;background:#f5f9fd;color:#526b80;font-size:11px;line-height:1.45}.cenergys-impersonation-banner{position:fixed;left:50%;bottom:18px;transform:translateX(-50%);z-index:99999;display:flex;align-items:center;gap:14px;max-width:calc(100vw - 32px);padding:10px 14px;border-radius:12px;background:#172f52;color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.25);font-size:12px}.cenergys-impersonation-banner button{border:0;border-radius:8px;padding:7px 10px;background:#fff;color:#173f7e;font-weight:800;cursor:pointer}

/* V272 · Reporte final: firma del acuerdo de Estudio de Campo */
.fo-report-study-signature{margin:10px 0 16px;max-width:48%}
@media(max-width:760px){.fo-report-study-signature{max-width:100%}}

/* ================================================================
   V273 · Usuarios, permisos y comisiones
   ================================================================ */
.user-commission-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:14px;
  align-items:end;
}
.user-commission-grid>div{
  display:grid;
  grid-template-rows:auto 38px;
  gap:6px;
}
.user-commission-grid .v170-percent-input{
  width:100%;
  display:grid;
  grid-template-columns:1fr 28px;
  align-items:center;
}
.user-commission-grid .v170-percent-input input{
  width:100%;
  min-width:0;
  height:38px;
  box-sizing:border-box;
}
.user-commission-grid .v170-percent-input span{
  height:38px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.user-permissions-section{
  margin-top:8px;
  border:1px solid #dce6ef;
  border-radius:10px;
  overflow:hidden;
}
.user-permissions-head{
  padding:11px 12px;
  background:#f5f8fb;
  border-bottom:1px solid #dce6ef;
}
.user-permissions-head>div{display:flex;flex-direction:column;gap:2px}
.user-permissions-head strong{color:#173f7e;font-size:12px}
.user-permissions-head span{color:#6b7f91;font-size:9px}
.user-permission-matrix{display:flex;flex-direction:column}
.user-permission-row{
  display:grid;
  grid-template-columns:minmax(190px,1fr) 70px 70px 70px 70px;
  align-items:center;
  min-height:36px;
  border-bottom:1px solid #edf1f5;
  padding:0 10px;
}
.user-permission-row:last-child{border-bottom:0}
.user-permission-row strong{font-size:9.5px;color:#36546c}
.user-permission-row label{display:flex;justify-content:center}
.user-permission-row input[type="checkbox"]{width:16px;height:16px}
.user-permission-header{
  background:#173f7e;
  color:white;
  font-weight:800;
  font-size:9px;
}
.user-permission-header span:not(:first-child){text-align:center}
.user-access-type-builder{padding-top:4px}
.user-access-type-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:8px;
  align-items:center;
}
.access-type-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}
.access-type-chip{
  display:inline-flex;align-items:center;gap:5px;padding:5px 8px;border-radius:999px;
  background:#eef4f9;color:#36546c;font-size:9px;font-weight:800;
}
.access-type-chip button{border:0;background:transparent;color:#8f2530;font-weight:900;padding:0;cursor:pointer}
.user-role-badge.seller{background:#eaf7ef;color:#237447}
body:not(.commission-role) .v179-commission-titlebar,
body:not(.commission-role) #crmProjectCommissionSection,
body:not(.commission-role) .v174-project-commission-table{display:none !important}
@media(max-width:900px){
  .user-commission-grid{grid-template-columns:1fr}
  .user-permission-row{grid-template-columns:minmax(130px,1fr) 52px 52px 52px 52px}
}


/* ================================================================
   V274 · Usuarios: matriz de permisos visible y utilizable
   ================================================================ */
#pageUsers .users-layout{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:18px !important;
}
#pageUsers .users-form-card{
  position:static !important;
  width:100% !important;
  max-width:none !important;
}
#pageUsers .users-form-card .card-body{
  overflow:visible !important;
}
#pageUsers .user-form-grid{
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
}
#pageUsers .user-permissions-section{
  width:100% !important;
  overflow-x:auto !important;
  border:2px solid #cbdbea !important;
}
#pageUsers .user-permissions-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
}
#pageUsers .user-permissions-legend{
  color:#173f7e;
  background:#eaf2fb;
  border-radius:999px;
  padding:5px 9px;
  font-size:9px;
  font-weight:800;
  white-space:nowrap;
}
#pageUsers .user-permission-matrix{
  min-width:760px !important;
}
#pageUsers .user-permission-row{
  grid-template-columns:minmax(260px,1fr) 105px 105px 105px 105px !important;
  min-height:44px !important;
  padding:0 14px !important;
}
#pageUsers .user-permission-header{
  min-height:38px !important;
  font-size:10px !important;
}
#pageUsers .user-permission-row strong{
  font-size:10.5px !important;
}
#pageUsers .user-permission-choice{
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  gap:6px !important;
  margin:0 !important;
  color:#425a79 !important;
  font-size:9px !important;
  font-weight:800 !important;
}
#pageUsers .user-permission-choice span{
  display:inline !important;
}
#pageUsers .user-permission-choice input[type="checkbox"]{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  margin:0 !important;
}
#pageUsers .user-permission-choice input[type="checkbox"]:disabled{
  opacity:.42;
}
#pageUsers .user-access-type-builder{
  border-top:1px solid #e3ebf3;
  padding-top:14px !important;
}
@media(max-width:900px){
  #pageUsers .user-form-grid{grid-template-columns:1fr !important;}
  #pageUsers .user-permissions-head{flex-direction:column;}
  #pageUsers .user-permissions-legend{white-space:normal;}
}


/* ================================================================
   V275 · Crear nuevo tipo de acceso
   ================================================================ */
#pageUsers .user-access-type-row{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:8px !important;
  width:100% !important;
}
#pageUsers #newAccessTypeName{
  width:100% !important;
  min-width:0 !important;
  box-sizing:border-box !important;
  height:42px !important;
  font-size:13px !important;
}
#pageUsers #saveAccessTypeBtn{
  align-self:flex-start !important;
  width:auto !important;
  min-width:220px !important;
  margin-top:2px !important;
}

/* ================================================================
   V277 · Barra superior: botones uniformes
   ================================================================ */
.module-tabs.v165-module-tabs.cenergys-nav-groups{
  display:grid !important;
  grid-template-columns:repeat(9,minmax(0,1fr)) !important;
  gap:5px !important;
  align-items:stretch !important;
  overflow:visible !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group > .v165-module-tab{
  width:100% !important;
  height:46px !important;
  min-height:46px !important;
  max-height:46px !important;
  padding:5px 4px !important;
  box-sizing:border-box !important;
  justify-content:center !important;
  text-align:center !important;
  font-size:9.5px !important;
  line-height:1.05 !important;
  white-space:nowrap !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups .v165-tab-icon{
  width:21px !important;
  height:21px !important;
  flex:0 0 21px !important;
  font-size:11px !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups .cenergys-nav-parent{
  gap:3px !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups .cenergys-nav-caret{
  flex:0 0 auto !important;
  font-size:9px !important;
}
@media(max-width:1100px){
  .module-tabs.v165-module-tabs.cenergys-nav-groups{
    grid-template-columns:repeat(9,minmax(78px,1fr)) !important;
    overflow-x:auto !important;
    overflow-y:visible !important;
  }
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group > .v165-module-tab{
    font-size:9px !important;
  }
}

/* ================================================================
   V281 · estabilización previa a pruebas operacionales
   ================================================================ */
/* Base de Datos / Usuarios no pertenecen al flujo visual de Cotización. */
#analysisModule.analysis-admin-direct-view > .page-nav{
  display:none !important;
}

/* Selección de alternativas en la pantalla Propuesta. */
.proposal-selection-table .proposal-choice-head,
.proposal-selection-table .proposal-choice-cell{
  width:92px;
  text-align:center !important;
}
.proposal-selection-table .proposal-summary-choice{
  width:18px;
  height:18px;
  accent-color:#0b3d91;
}
.proposal-selection-table .proposal-price-head{
  text-align:right !important;
}
.proposal-summary-actions{
  justify-content:flex-end;
  gap:10px;
}
.proposal-summary-actions #backFromProposal{
  margin-right:auto;
}
.hidden{display:none !important;}

/* Mantener nombres de cliente en una sola línea en tablas CRM siempre que haya espacio. */
.crm-table .crm-case-name-link,
.crm-table .crm-project-client,
.crm-table .crm-project-name-link{
  white-space:nowrap;
}

/* Propuesta/Contrato: diferenciar claramente cada línea de información de las partes. */
.contract-party-card dl{
  gap:0 !important;
  border:1px solid #dce5f0;
  border-radius:8px;
  overflow:hidden;
}
.contract-party-card dt,
.contract-party-card dd{
  margin:0 !important;
  padding:5px 7px !important;
  border-bottom:1px solid #e6edf6;
}
.contract-party-card dt:nth-of-type(odd),
.contract-party-card dd:nth-of-type(odd){
  background:#f3f7fc;
}
.contract-party-card dt:nth-of-type(even),
.contract-party-card dd:nth-of-type(even){
  background:#ffffff;
}
.contract-party-card dt:last-of-type,
.contract-party-card dd:last-of-type{
  border-bottom:0;
}

/* Footer de la propuesta más discreto. */
.v85-footer,
.v88-footer{
  font-size:6.25pt !important;
  font-weight:650 !important;
}

/* V282 · Firma digital desde Contrato Cliente + footer más discreto */
.contract-flow-page .contract-doc-footer{
  font-size:9px !important;
  line-height:1.15 !important;
  font-weight:650 !important;
}
.contract-signing-panel{
  max-width:980px;
  margin:0 auto 24px;
  padding:20px;
  border:1px solid #d9e3ef;
  border-radius:14px;
  background:#fff;
  box-shadow:0 8px 24px rgba(25,54,93,.08);
}
.contract-signing-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:16px;
}
.contract-signing-head h2{margin:0 0 5px;color:#173f7e;font-size:20px}
.contract-signing-head p{margin:0;color:#687b93;line-height:1.45;max-width:720px}
.contract-signing-status{
  flex:0 0 auto;
  border-radius:999px;
  padding:7px 11px;
  font-size:12px;
  font-weight:800;
}
.contract-signing-status.pending{background:#fff4df;color:#8a5a00}
.contract-signing-status.signed{background:#e8f5ec;color:#216b37}
.contract-signing-tabs{display:flex;gap:10px;margin:0 0 14px;flex-wrap:wrap}
.contract-signing-tabs button.active{background:#0b63ce;color:#fff;border-color:#0b63ce}
.contract-sign-mode{display:none}
.contract-sign-mode.active{display:block}
.contract-signature-pad-wrap{
  position:relative;
  background:#fbfdff;
  border:1px solid #cdd9e7;
  border-radius:12px;
  overflow:hidden;
  min-height:190px;
}
#contractBuyerSignatureCanvas{display:block;width:100%;height:190px;touch-action:none;cursor:crosshair}
.contract-signature-pad-line{position:absolute;left:6%;right:6%;bottom:38px;border-top:1px solid #9baabe;pointer-events:none}
.contract-signature-pad-wrap>span{position:absolute;left:0;right:0;bottom:12px;text-align:center;font-size:12px;color:#71839d;font-weight:700;pointer-events:none}
.contract-signing-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:12px}
.contract-digital-signature-creator{display:grid;gap:9px}
.contract-digital-signature-creator label{font-weight:800;color:#29496f}
.contract-digital-signature-creator input{max-width:520px}
.contract-digital-signature-preview{
  min-height:120px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:1px dashed #bdcada;
  border-radius:12px;
  background:#fbfdff;
  color:#153f77;
  font-family:"Brush Script MT","Segoe Script","Snell Roundhand",cursive;
  font-size:48px;
  line-height:1;
  padding:18px;
  text-align:center;
}
.contract-saved-signature{display:flex;align-items:center;gap:18px;padding:14px;border:1px solid #cfe1d5;background:#f6fbf7;border-radius:12px;margin-top:14px}
.contract-saved-signature.hidden{display:none}
.contract-saved-signature img{width:240px;max-height:90px;object-fit:contain;background:#fff;border:1px solid #dbe5df;border-radius:8px;padding:6px}
.contract-saved-signature>div{display:grid;gap:5px}
.contract-saved-signature strong{color:#216b37}
.contract-saved-signature span{font-size:12px;color:#687b93}
.contract-saved-signature button{justify-self:start;margin-top:3px}
.contract-buyer-signature-space{display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.contract-buyer-signature-img{display:none;max-width:92%;max-height:.92in;object-fit:contain}
.contract-buyer-signature-img.has-signature{display:block}
@media(max-width:700px){
  .contract-signing-head{flex-direction:column}
  .contract-signing-actions{justify-content:stretch;flex-direction:column}
  .contract-signing-actions button{width:100%}
  .contract-saved-signature{align-items:flex-start;flex-direction:column}
}
@media print{
  body.contract-print-mode .contract-signing-panel{display:none !important}
}

/* V283 · Firmas visibles de Comprador + CEnergyS en Contrato */
.contract-signing-panel-title{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  margin-bottom:16px;
  padding-bottom:14px;
  border-bottom:2px solid #e4ebf4;
}
.contract-signing-panel-title h2{margin:0 0 5px;color:#173f7e;font-size:22px}
.contract-signing-panel-title p{margin:0;color:#687b93;line-height:1.45}
.contract-signing-card{
  border:1px solid #d8e3ef;
  border-radius:12px;
  padding:18px;
  margin-top:16px;
  background:#fbfdff;
}
.contract-signing-card .contract-signing-head{margin-bottom:14px}
.contract-signing-card .contract-signing-head h3{margin:0 0 5px;color:#173f7e;font-size:18px}
.contract-signature-upload-box{
  display:grid;
  gap:8px;
  padding:18px;
  border:1px dashed #afbdd0;
  border-radius:12px;
  background:#fff;
}
.contract-signature-upload-box strong{color:#173f7e}
.contract-signature-upload-box span{font-size:12px;color:#687b93;line-height:1.4}
.contract-signature-upload-box input[type="file"]{max-width:520px}
#contractBuyerSignatureCanvas,
#contractCenergysSignatureCanvas{display:block;width:100%;height:190px;touch-action:none;cursor:crosshair}
.contract-buyer-signature-space,
.contract-cenergys-signature-space{display:flex;align-items:flex-end;justify-content:center;overflow:hidden}
.contract-buyer-signature-img,
.contract-cenergys-signature-img{display:none;max-width:92%;max-height:.92in;object-fit:contain}
.contract-buyer-signature-img.has-signature,
.contract-cenergys-signature-img.has-signature{display:block}
.contract-digital-signature-preview{color:#0057d9 !important}
@media print{
  body.contract-print-mode .contract-signing-panel{display:none !important}
}


/* V284 · cierre formal, bloqueo y carga de contrato firmado */
#contractPreviewStack{margin-bottom:26px}
.contract-signing-panel{margin-top:26px}
.contract-finalization-card,.contract-external-final-card{
  margin-top:18px;padding:18px;border:1px solid #d8e3ef;border-radius:12px;background:#f8fbff;
}
.contract-finalization-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center}
.contract-finalization-card h3,.contract-external-final-card h3{margin:0 0 5px;color:#173f7e;font-size:18px}
.contract-finalization-card p,.contract-external-final-card p{margin:0;color:#687b93;line-height:1.45}
.contract-finalization-actions{display:flex;gap:10px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.contract-final-status{grid-column:1/-1;padding:9px 12px;border-radius:9px;background:#fff4df;color:#8a5a00;font-weight:800;font-size:12px}
.contract-final-status.completed{background:#e8f5ec;color:#216b37}
.contract-external-final-card{display:grid;gap:12px}
.contract-external-final-card input[type=file]{max-width:620px}
.contract-locked .card{opacity:.9}
.contract-locked input:disabled,.contract-locked select:disabled,.contract-locked textarea:disabled{background:#f1f4f7;color:#66788b;cursor:not-allowed}
.contract-signing-panel.contract-locked .contract-signing-card{opacity:.78}
.contract-signing-panel.contract-locked #contractReopenBtn{opacity:1;pointer-events:auto}
@media(max-width:700px){.contract-finalization-card{grid-template-columns:1fr}.contract-finalization-actions{justify-content:stretch}.contract-finalization-actions button{width:100%}}
@media print{body.contract-print-mode .contract-finalization-card,body.contract-print-mode .contract-external-final-card{display:none!important}}

/* V285 · firmas siempre visibles dentro del documento y en captura PDF */
.contract-signature-space{
  position:relative;
  display:flex;
  align-items:flex-end;
  justify-content:center;
  overflow:hidden;
}
.contract-signature-space .contract-buyer-signature-img.has-signature,
.contract-signature-space .contract-cenergys-signature-img.has-signature{
  display:block !important;
  width:auto !important;
  max-width:92% !important;
  max-height:1.02in !important;
  object-fit:contain !important;
  margin:0 auto !important;
}


/* V286 · firmas visibles, consentimiento y acciones PDF inferiores */
.contract-signature-consent{
  margin-top:10px;
  padding:10px 12px;
  border:1px solid #cbdced;
  border-left:4px solid #0b63ce;
  border-radius:8px;
  background:#f6faff;
  color:#405a76;
  font-size:12px;
  line-height:1.45;
}
.contract-signature-consent strong{color:#173f7e}
.contract-signature-space.has-contract-signature{
  min-height:1in!important;
  background-color:#fff;
}
.contract-signature-space.has-contract-signature img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}
.document-bottom-actions{
  display:flex;
  justify-content:flex-end;
  padding:18px 0 8px;
  margin-top:14px;
}
.contract-bottom-actions{padding-bottom:22px}
@media(max-width:700px){
  .document-bottom-actions .print-pdf-btn{width:100%}
}
@media print{
  .document-bottom-actions{display:none!important}
}


/* V287 · firmas contractuales visibles + acciones PDF inferiores uniformes */
.contract-signature-grid{break-inside:avoid;page-break-inside:avoid}
.contract-signature-space{position:relative!important;min-height:1.0in!important;height:1.0in!important;display:flex!important;align-items:flex-end!important;justify-content:center!important;overflow:visible!important}
.contract-signature-space img.has-signature{display:block!important;visibility:visible!important;opacity:1!important;width:100%!important;height:.88in!important;max-width:3.15in!important;max-height:.88in!important;object-fit:contain!important;object-position:center bottom!important;margin:0 auto!important}
.document-bottom-actions{width:min(100%,8.5in);margin:22px auto 28px;display:flex;justify-content:flex-end;align-items:center;padding:0 4px;box-sizing:border-box}
.proposal-bottom-actions,.contract-bottom-actions{position:relative;clear:both}
@media(max-width:900px){.document-bottom-actions{width:100%;padding:0 16px}}

/* V290 · firmas persistentes: PNG independiente y slot visible estable */
.contract-signature-space{
  min-height:1.02in;
  position:relative;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  overflow:hidden!important;
}
.contract-signature-space img[data-contract-signature-image],
.contract-signature-space img[data-contract-cenergys-signature-image]{
  width:auto!important;
  height:auto!important;
  max-width:92%!important;
  max-height:.94in!important;
  object-fit:contain!important;
  object-position:center bottom!important;
  margin:0 auto!important;
}
.contract-signature-space img[data-contract-signature-image][src],
.contract-signature-space img[data-contract-cenergys-signature-image][src]{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}


/* V293 · single visual layer for final contract signatures */
[data-contract-final-signature-grid="1"] .contract-cenergys-signature-space,
[data-contract-final-signature-grid="1"] .contract-buyer-signature-space{
  background-image:none!important;
  background-repeat:no-repeat!important;
}
[data-contract-final-signature-grid="1"] .contract-cenergys-signature-space > img:not([data-contract-cenergys-signature-image]),
[data-contract-final-signature-grid="1"] .contract-buyer-signature-space > img:not([data-contract-signature-image]){display:none!important}

/* V297 stabilization */
.crm-detail-meta .crm-detail-owner{font-size:13px!important;font-weight:800!important;color:#173f7e!important;background:#edf4ff;padding:5px 9px;border-radius:7px;}
.crm-document-type-tag{display:inline-block;margin-top:7px!important;}
.crm-document-name-cell{text-align:left!important;}
.crm-document-name-cell .crm-document-name-link{text-align:left!important;}
.v297-summary-tables{grid-template-columns:1fr!important;}
.v297-summary-tables .crm-table-wrap{overflow:visible!important;}
.v297-summary-tables table{width:100%!important;table-layout:fixed;}
.v297-summary-tables th,.v297-summary-tables td{text-align:center!important;white-space:normal!important;}
.v297-summary-tables th:first-child,.v297-summary-tables td:first-child{text-align:left!important;}
.crm-project-filters{margin-bottom:14px;}

.contract-external-saved{margin-top:10px;padding:10px 12px;border:1px solid #d7e3f4;border-radius:8px;background:#f7fbff;display:flex;gap:10px;align-items:center;flex-wrap:wrap;}
.contract-external-saved .crm-document-name-link{font-weight:800;}

/* ========================================================================== */
/* V299 · Recursos + administración de usuarios                               */
/* ========================================================================== */
.resources-module{padding-top:28px;padding-bottom:60px}
.resources-shell{display:grid;gap:22px}
.resources-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.resources-hero h1{margin:4px 0 4px;font-size:34px}
.resources-hero p{margin:0;color:#64748b}
.resource-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.resource-form-grid label,.access-type-editor label{display:block;font-size:12px;font-weight:800;color:#334155;margin-bottom:6px}
.resource-form-grid input,.resource-form-grid textarea,.access-type-editor input{width:100%}
.resource-form-full{grid-column:1/-1}
.resource-form-actions{display:flex;justify-content:flex-end}
.resources-card-head{display:flex;justify-content:space-between;align-items:center;gap:16px}
.resources-count{font-size:12px;font-weight:700;color:#64748b}
.resources-table-wrap{overflow-x:auto}
.resources-table{width:100%;border-collapse:collapse;table-layout:fixed}
.resources-table th,.resources-table td{padding:13px 14px;border-bottom:1px solid #e5e7eb;vertical-align:top;text-align:left}
.resources-table th{font-size:11px;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#f8fafc}
.resources-table th:nth-child(1){width:25%}.resources-table th:nth-child(2){width:38%}.resources-table th:nth-child(3){width:13%}.resources-table th:nth-child(4){width:24%}
.resource-doc-name,.user-profile-link{border:0;background:none;padding:0;margin:0;color:#0755a5;font:inherit;font-weight:800;cursor:pointer;text-align:left;text-decoration:none}
.resource-doc-name:hover,.user-profile-link:hover{text-decoration:underline}
.resource-actions{display:flex;gap:8px;flex-wrap:wrap}
.resource-empty{padding:28px!important;text-align:center!important;color:#64748b}
.resource-hidden{display:none!important}
.resource-info-list{display:grid;gap:14px}
.resource-info-entry{border:1px solid #e2e8f0;border-radius:12px;padding:18px;background:#fff}
.resource-info-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;border-bottom:1px solid #eef2f7;padding-bottom:10px;margin-bottom:12px}
.resource-info-head h3{margin:0 0 3px;font-size:18px}.resource-info-head p{margin:0;color:#64748b;font-size:13px}
.resource-info-content{line-height:1.6;color:#1f2937;margin-bottom:12px}.resource-info-entry small{color:#94a3b8}

.user-admin-view{display:none}.user-admin-view.active{display:block}
.user-page-title{margin-bottom:18px}
.users-table-head{display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap}
.users-table-head>div:first-child{display:flex;align-items:center;gap:12px}
.user-list-actions{display:flex;gap:10px;flex-wrap:wrap}
.user-name-col,.user-name-cell{text-align:left!important}
.users-table th:first-child,.users-table td:first-child{text-align:left!important}
.users-editor-head{display:flex;align-items:center;justify-content:space-between;gap:16px}
.user-editor-card{max-width:980px;margin:0 auto}
.access-type-explainer{margin:0 0 20px;padding:12px 14px;background:#eff6ff;border:1px solid #bfdbfe;border-radius:10px;color:#1e3a5f}
.access-type-management-grid{display:grid;grid-template-columns:minmax(260px,34%) 1fr;gap:22px;align-items:start}
.access-type-directory,.access-type-editor{border:1px solid #e2e8f0;border-radius:12px;padding:16px;background:#fff}
.access-type-directory-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.access-type-list{display:grid;gap:9px}
.access-type-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid #e5e7eb;border-radius:9px;background:#f8fafc}
.access-type-row>div:first-child{display:grid;gap:2px}.access-type-row small{font-size:11px;color:#64748b}.access-type-row>div:last-child{display:flex;gap:6px;flex-wrap:wrap}
.access-type-editor>.user-permissions-section{margin-top:18px}
.user-form-grid #userAdminPhone{font-variant-numeric:tabular-nums}

@media(max-width:980px){
  .resource-form-grid,.access-type-management-grid{grid-template-columns:1fr}
  .resources-table{min-width:850px}
}


/* ========================================================================== */
/* V300 · navegación, recursos, usuarios y tipos de acceso                    */
/* ========================================================================== */
/* Mantener los 10 módulos de escritorio en una sola línea, consistentes. */
.module-tabs.v165-module-tabs.cenergys-nav-groups{
  grid-template-columns:repeat(10,minmax(0,1fr)) !important;
  gap:4px !important;
  overflow:visible !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group > .v165-module-tab{
  height:42px !important;min-height:42px !important;max-height:42px !important;
  padding:4px 3px !important;font-size:9px !important;gap:2px !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups .v165-tab-icon{width:18px !important;height:18px !important;flex:0 0 18px !important;font-size:10px !important;}
@media(max-width:1180px){
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group > .v165-module-tab{font-size:8.3px !important;padding:3px 2px !important;}
  .module-tabs.v165-module-tabs.cenergys-nav-groups .v165-tab-icon{display:none !important;}
}
@media(max-width:820px){.module-tabs.v165-module-tabs.cenergys-nav-groups{display:flex !important;overflow-x:auto !important}.module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group{min-width:78px !important;flex:0 0 78px !important}}

/* Recursos: controles administrativos completamente ocultos a usuarios normales. */
.resource-admin-card.resource-hidden{display:none !important}

/* Acciones Editar/Eliminar juntas. */
.access-type-row-actions{display:flex !important;gap:7px !important;flex-wrap:nowrap !important;align-items:center !important}
.access-type-row-actions button{white-space:nowrap !important}

/* Tabla de usuarios: teléfono más compacto y email con espacio suficiente. */
.users-table{width:100% !important;table-layout:fixed !important}
.users-table th:nth-child(1){width:15% !important}
.users-table th:nth-child(2){width:10% !important}
.users-table th:nth-child(3){width:20% !important}
.users-table th:nth-child(4){width:13% !important}
.users-table th:nth-child(5){width:8% !important}
.users-table th:nth-child(6){width:9% !important}
.users-table th:nth-child(7){width:8% !important}
.users-table th:nth-child(8){width:9% !important}
.users-table th:nth-child(9){width:18% !important}
.users-table th,.users-table td{overflow-wrap:anywhere !important;word-break:normal !important}
.user-phone-cell{white-space:nowrap !important;font-variant-numeric:tabular-nums}
.user-email-cell{font-size:11px !important}
.temp-password-row{grid-template-columns:minmax(0,1fr) auto auto !important}


/* ========================================================================== */
/* V301 · navegación visible centrada por perfil                              */
/* ========================================================================== */
.module-tabs.v165-module-tabs.cenergys-nav-groups{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:center !important;
  align-items:stretch !important;
  gap:4px !important;
  width:100% !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group{
  flex:0 1 112px !important;
  width:112px !important;
  min-width:82px !important;
  max-width:112px !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group > .v165-module-tab{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
}
@media(max-width:1180px){
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .v165-module-tab,
  .module-tabs.v165-module-tabs.cenergys-nav-groups > .cenergys-nav-group{
    flex-basis:96px !important;width:96px !important;max-width:96px !important;min-width:72px !important;
  }
}
@media(max-width:820px){
  .module-tabs.v165-module-tabs.cenergys-nav-groups{justify-content:flex-start !important;}
}

/* V302 · Ventas y Comisiones */
.v302-commission-head,.v302-payment-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin:8px 0 18px}
.v302-commission-head h2,.v302-payment-page-head h2{margin:4px 0 6px;color:#0b3d91}
.v302-commission-head p,.v302-payment-page-head p{margin:0;color:#5b6574}
.v302-commission-summary-card,.v302-commission-history-card,.v302-payment-form-card,.v302-payment-details-card{margin-top:16px}
.v302-payment-select-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.v302-payment-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.v302-payment-grid .full{grid-column:1/-1}
.v302-payment-grid input[readonly]{background:#f5f7fb;color:#26344a}
.v302-commission-history-table th,.v302-commission-history-table td{white-space:nowrap}
.v302-sale-save-actions{margin:16px 0 10px}
#crmProjectCommissionSection input[readonly],#crmProjectCommissionSection input:disabled{background:#f5f7fb;color:#26344a;cursor:default}
#crmCommissionPaidFull{accent-color:#0b3d91}
@media(max-width:800px){.v302-payment-select-grid,.v302-payment-grid{grid-template-columns:1fr}.v302-commission-head{flex-direction:column}.v302-payment-grid .full{grid-column:auto}}


/* V303 · CRM Ventas y Comisiones */
.v303-accounting-range{display:flex;align-items:center;gap:10px;white-space:nowrap;}
.v303-accounting-range label{margin:0;white-space:nowrap;}
.v303-accounting-range #crmAccountingRangeLabel{white-space:nowrap;}
#crmCommissionsSummaryFoot .v166-total-row td{background:#eef5fd;border-top:2px solid #b7cce4!important;font-weight:900;}
.v303-commission-projects-table th:first-child,.v303-commission-projects-table td:first-child{text-align:left;}
.v303-edit-commission-payment{padding:7px 12px;min-width:72px;}
@media(max-width:900px){.v303-accounting-range{align-items:flex-start;flex-direction:column;gap:4px;}}

#crmReportCommissionFoot .v166-total-row td{background:#eef5fd;border-top:2px solid #b7cce4!important;font-weight:900;}


/* V304 · CRM reportes, comisiones y Field Operations */
.v303-commission-projects-card{margin-top:24px!important;}
.v304-project-name-cell{white-space:nowrap!important;min-width:170px;}
.v304-project-link{appearance:none;border:0;background:none;padding:0;color:#0b3d91;font:inherit;font-weight:800;cursor:pointer;text-decoration:underline;text-underline-offset:2px;white-space:nowrap;}
.v304-project-link:hover{color:#06265f;}
.v304-report-seller-name{margin:4px 0 5px;color:#173f7e;font-size:28px;font-weight:900;line-height:1.15;}
.v304-report-seller-name[hidden]{display:none!important;}
.v304-currency-readonly{background:#f5f7fb!important;color:#26344a!important;font-variant-numeric:tabular-nums;}
#crmReportMonthYearWrap[hidden],#crmReportMonthSelectWrap[hidden],#crmReportFromWrap[hidden],#crmReportToWrap[hidden]{display:none!important;}
.v303-commission-projects-table th,.v303-commission-projects-table td{vertical-align:middle;}

#fieldOperationsApp .fo-final-report-btn:disabled,#fieldOperationsApp [data-fo-open-report-case]:disabled{opacity:.45;cursor:not-allowed;filter:grayscale(.25);}


/* V306 · Field Operations read-only permission state */
#fieldOperationsApp.fo-permission-readonly input[readonly],
#fieldOperationsApp.fo-permission-readonly textarea[readonly],
#fieldOperationsApp.fo-permission-readonly input:disabled,
#fieldOperationsApp.fo-permission-readonly select:disabled,
#fieldOperationsApp.fo-permission-readonly textarea:disabled {
  cursor:not-allowed;
  opacity:.78;
  background:#f6f7f9;
}
#fieldOperationsApp.fo-permission-readonly .fo-workflow button:disabled,
#fieldOperationsApp.fo-permission-readonly button:disabled { cursor:not-allowed; }
#fieldOperationsApp .fo-drop-readonly { pointer-events:none; opacity:.72; }


/* V309 · Correcciones QA final */
.v309-commission-project-search{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid #e5ebf2;background:#fafcff;}
.v309-commission-project-search label{margin:0;font-size:11px;font-weight:800;color:#52677f;white-space:nowrap;}
.v309-commission-project-search input{flex:1;min-width:0;border:1px solid #cfd9e4;border-radius:8px;padding:9px 10px;background:#fff;}
@media(min-width:761px){
  #fieldOperationsApp .fo-table-wrap{overflow-x:visible;}
  #fieldOperationsApp .fo-table{min-width:0!important;width:100%;table-layout:fixed;}
  #fieldOperationsApp .fo-table th,#fieldOperationsApp .fo-table td{white-space:normal;overflow-wrap:anywhere;padding:9px 7px;}
  #fieldOperationsApp .fo-row-actions{display:flex;flex-direction:column;gap:5px;align-items:stretch;}
  #fieldOperationsApp .fo-row-actions button{width:100%;padding:7px 5px;font-size:9px;}
}
.fo-report-attachment-viewer{height:auto!important;min-height:8.2in;overflow:visible!important;background:#fff!important;}
.fo-report-attachment-viewer img{width:100%!important;height:auto!important;max-height:9.1in;object-fit:contain;display:block;}
.fo-report-attachment-page{break-after:page;page-break-after:always;overflow:hidden;}
#pageDatabase .db-table-wrap{overflow-x:visible;}
#pageDatabase .db-table{min-width:0!important;width:100%!important;table-layout:fixed;}
#pageDatabase .db-table th,#pageDatabase .db-table td{white-space:normal!important;overflow-wrap:anywhere;padding:7px 6px;font-size:10px;}
#pageDatabase .db-actions{gap:3px;}
#pageDatabase .db-actions button{padding:5px 6px;font-size:9px;}
@media(max-width:900px){#pageDatabase .db-table-wrap{overflow-x:auto}#pageDatabase .db-table{min-width:900px!important}#pageDatabase .db-table th,#pageDatabase .db-table td{white-space:nowrap!important}}

/* V310 · Final Report attachments */
.fo-report-html-stage{position:fixed;left:-20000px;top:0;width:900px;background:#fff;z-index:-9999;pointer-events:none;}
.fo-report-attachment-viewer{display:flex;align-items:flex-start;justify-content:center;overflow:hidden;}
.fo-report-attachment-viewer img{display:block;max-width:100%;width:auto;height:auto;object-fit:contain;}
.fo-report-landscape-page{width:min(100%,1056px);min-height:816px;}
.fo-report-landscape-page .fo-report-attachment-viewer img{max-width:100%;max-height:700px;}
@media print{
  .fo-report-landscape-page{width:11in!important;min-height:8.5in!important;page:foLandscape;}
  @page foLandscape{size:11in 8.5in;margin:0;}
}

/* V311 · QA fixes: CRM Projects read-only + Field Operations dashboard fit */
#crmCaseDetailView.v311-project-readonly .crm-step-item.v311-readonly-step{
  cursor:not-allowed!important;
  opacity:.68;
}
#crmCaseDetailView.v311-project-readonly input:disabled,
#crmCaseDetailView.v311-project-readonly select:disabled,
#crmCaseDetailView.v311-project-readonly textarea:disabled,
#crmCaseDetailView.v311-project-readonly button:disabled{
  cursor:not-allowed;
}
@media(min-width:761px){
  #fieldOperationsApp .fo-table th:nth-child(1){width:18%;}
  #fieldOperationsApp .fo-table th:nth-child(2){width:13%;}
  #fieldOperationsApp .fo-table th:nth-child(3){width:16%;}
  #fieldOperationsApp .fo-table th:nth-child(4){width:11%;}
  #fieldOperationsApp .fo-table th:nth-child(5){width:12%;}
  #fieldOperationsApp .fo-table th:nth-child(6){width:10%;}
  #fieldOperationsApp .fo-table th:nth-child(7){width:20%;}
  #fieldOperationsApp .fo-table th,#fieldOperationsApp .fo-table td{padding:7px 5px;font-size:10px;}
  #fieldOperationsApp .fo-row-actions button{white-space:normal!important;line-height:1.15;min-height:30px;}
  #fieldOperationsApp .fo-final-report-btn{font-size:8.5px!important;padding:6px 4px!important;}
}


/* ========================================================================== */
/* V312 · navegación por permisos sin huecos                                  */
/* ========================================================================== */
.module-tabs.v165-module-tabs.cenergys-nav-groups.v312-permission-layout{
  display:flex !important;
  flex-wrap:nowrap !important;
  justify-content:center !important;
  align-items:stretch !important;
  gap:4px !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups.v312-permission-layout > .v312-nav-hidden{
  display:none !important;
  visibility:hidden !important;
  width:0 !important;
  min-width:0 !important;
  max-width:0 !important;
  flex:0 0 0 !important;
  margin:0 !important;
  padding:0 !important;
  gap:0 !important;
}
.module-tabs.v165-module-tabs.cenergys-nav-groups.v312-permission-layout > :not(.v312-nav-hidden){
  flex:0 1 112px !important;
  width:112px !important;
  min-width:82px !important;
  max-width:112px !important;
}
@media(max-width:820px){
  .module-tabs.v165-module-tabs.cenergys-nav-groups.v312-permission-layout{justify-content:flex-start !important;overflow-x:auto !important;}
}

/* V314 · Maestro único */
#dbSuppliersCard .crm-table th:first-child,#dbSuppliersCard .crm-table td:first-child{text-align:left}
#dbSupplierPriceRows .inventory-supplier-row select{min-width:150px}
#dbSupplierPriceRows .inventory-supplier-row{align-items:center}


/* ================================================================
   V315 · Table consistency / master database refinements
   ================================================================ */
/* Standard: name/identity columns stay left aligned and on one line. */
.crm-table th:first-child,
.crm-table td:first-child,
.db-table th:first-child,
.db-table td:first-child,
.inventory-table th:first-child,
.inventory-table td:first-child,
.table-wrap table th:first-child,
.table-wrap table td:first-child{
  text-align:left !important;
  white-space:nowrap;
}
.crm-case-name-link,.crm-project-name-link{white-space:nowrap;}

/* Supplier names should never wrap. */
#dbSuppliersCard .crm-table th:first-child,
#dbSuppliersCard .crm-table td:first-child,
.inventory-supplier-head span:first-child,
.inventory-supplier-row > *:first-child{
  white-space:nowrap !important;
  text-align:left !important;
}

/* Master list: desktop fits inside its card without horizontal scrolling. */
#dbMasterOverviewCard .crm-table-wrap{overflow:visible !important;}
#dbMasterOverviewCard .crm-table{
  min-width:0 !important;
  width:100% !important;
  table-layout:fixed;
}
#dbMasterOverviewCard .crm-table th,
#dbMasterOverviewCard .crm-table td{
  padding:7px 5px !important;
  font-size:10px !important;
  overflow:hidden;
  text-overflow:ellipsis;
}
#dbMasterOverviewCard .crm-table th:nth-child(1){width:19%;}
#dbMasterOverviewCard .crm-table th:nth-child(2){width:12%;}
#dbMasterOverviewCard .crm-table th:nth-child(3){width:11%;}
#dbMasterOverviewCard .crm-table th:nth-child(4){width:11%;}
#dbMasterOverviewCard .crm-table th:nth-child(5){width:12%;}
#dbMasterOverviewCard .crm-table th:nth-child(6){width:11%;}
#dbMasterOverviewCard .crm-table th:nth-child(7){width:11%;}
#dbMasterOverviewCard .crm-table th:nth-child(8){width:7%;}
#dbMasterOverviewCard .crm-table th:nth-child(9){width:6%;}
#dbMasterOverviewCard .db-master-name-cell,
#dbMasterOverviewCard .db-master-name-cell .crm-case-name-link,
#dbMasterOverviewCard .db-master-supplier-cell,
#dbMasterOverviewCard .db-master-cost-nowrap{white-space:nowrap !important;}

/* Keep master cost and its edit action on one line. */
.db-master-cost-cell{
  flex-direction:row !important;
  align-items:center !important;
  flex-wrap:nowrap !important;
  gap:10px !important;
  white-space:nowrap;
}
.db-master-cost-cell .db-cost-link{white-space:nowrap;}

/* Separate supplier-cost action from heading. */
.db-supplier-cost-head{justify-content:flex-start !important;gap:24px !important;}
.db-add-supplier-cost-btn{margin-left:12px !important;}

@media(max-width:900px){
  #dbMasterOverviewCard .crm-table-wrap{overflow-x:auto !important;}
  #dbMasterOverviewCard .crm-table{min-width:820px !important;table-layout:auto;}
}


/* V316 · table/name/spacing standards */
.db-suppliers-card .card-head{justify-content:flex-start!important;gap:26px!important;}
.db-suppliers-card .db-add-supplier-btn{margin-left:10px!important;}
#dbSuppliersBody td:first-child,#dbSuppliersBody th:first-child{text-align:left!important;white-space:nowrap!important;}
#dbMasterOverviewCard .card-head>span{display:inline-flex;align-items:center;white-space:nowrap;}
.db-master-name-cell,.db-master-name-cell button{white-space:nowrap!important;text-align:left!important;}
.db-master-cost-nowrap,.db-master-cost-nowrap *{white-space:nowrap!important;}
.inventory-list-card .crm-table-wrap{overflow-x:visible!important;max-width:100%!important;}
.inventory-table{width:100%!important;min-width:0!important;table-layout:fixed!important;font-size:10px!important;}
.inventory-table th,.inventory-table td{padding:7px 5px!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;}
.inventory-table th:nth-child(1),.inventory-table td:nth-child(1){width:20%!important;min-width:0!important;white-space:nowrap!important;text-align:left!important;}
.inventory-table th:nth-child(2),.inventory-table td:nth-child(2){width:10%!important;}
.inventory-table th:nth-child(3),.inventory-table td:nth-child(3),
.inventory-table th:nth-child(4),.inventory-table td:nth-child(4),
.inventory-table th:nth-child(5),.inventory-table td:nth-child(5),
.inventory-table th:nth-child(6),.inventory-table td:nth-child(6){width:6.5%!important;}
.inventory-table th:nth-child(7),.inventory-table td:nth-child(7){width:9%!important;}
.inventory-table th:nth-child(8),.inventory-table td:nth-child(8){width:10%!important;}
.inventory-table th:nth-child(9),.inventory-table td:nth-child(9){width:9%!important;}
.inventory-table th:nth-child(10),.inventory-table td:nth-child(10){width:7%!important;}
.inventory-table th:nth-child(11),.inventory-table td:nth-child(11){width:8%!important;}
.inventory-table .inventory-subline{white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis;}
@media(max-width:900px){.inventory-list-card .crm-table-wrap{overflow-x:auto!important}.inventory-table{min-width:980px!important;table-layout:auto!important;}}

/* ========================================================================== */
/* V318 · Standard global de tablas + Proyecto SunRun                         */
/* ========================================================================== */
.v318-sunrun-field{margin-top:6px;padding:12px 14px;border:1px solid #d9e3ec;border-radius:10px;background:#f8fbfe;}
.v318-sunrun-check{justify-content:flex-start!important;gap:9px!important;}
.v318-sunrun-check input{width:auto!important;min-height:0!important;}

/* Estándar desktop Power Hub: ninguna tabla operativa debe forzar scroll horizontal. */
@media(min-width:901px){
  .crm-table-wrap,
  .resources-table-wrap,
  .service-table-wrap,
  .inventory-movement-table-wrap,
  .v187-progress-table-wrap,
  .fo-table-wrap,
  .db-table-wrap,
  .table-wrap{
    width:100%!important;
    max-width:100%!important;
    overflow-x:visible!important;
  }
  .crm-table,
  .db-table,
  .inventory-table,
  .fo-table,
  .resources-table-wrap table,
  .service-table-wrap table,
  .inventory-movement-table-wrap table,
  .v187-progress-table-wrap table,
  .table-wrap table{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  .crm-table th,.crm-table td,
  .db-table th,.db-table td,
  .inventory-table th,.inventory-table td,
  .fo-table th,.fo-table td,
  .resources-table-wrap th,.resources-table-wrap td,
  .service-table-wrap th,.service-table-wrap td,
  .inventory-movement-table-wrap th,.inventory-movement-table-wrap td,
  .v187-progress-table-wrap th,.v187-progress-table-wrap td,
  .table-wrap th,.table-wrap td{
    min-width:0!important;
    max-width:none!important;
    padding:7px 5px!important;
    font-size:9.5px!important;
    white-space:normal;
    overflow-wrap:anywhere;
    word-break:normal;
  }
  /* Identidades/nombres: estándar de una sola línea, alineadas a la izquierda. */
  .crm-table th:first-child,.crm-table td:first-child,
  .db-table th:first-child,.db-table td:first-child,
  .inventory-table th:first-child,.inventory-table td:first-child,
  .resources-table-wrap th:first-child,.resources-table-wrap td:first-child,
  .service-table-wrap th:first-child,.service-table-wrap td:first-child,
  .crm-case-name-link,.crm-project-name-link,.crm-document-name-link,
  .db-master-name-cell,.db-master-name-cell button{
    text-align:left!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }
  /* Clientes y Casos: proporciones específicas para caber dentro del card. */
  .crm-case-table th:nth-child(1){width:15%;}
  .crm-case-table th:nth-child(2){width:11%;}
  .crm-case-table th:nth-child(3){width:11%;}
  .crm-case-table th:nth-child(4){width:12%;}
  .crm-case-table th:nth-child(5){width:10%;}
  .crm-case-table th:nth-child(6){width:11%;}
  .crm-case-table th:nth-child(7){width:12%;}
  .crm-case-table th:nth-child(8){width:9%;}
  .crm-case-table th:nth-child(9){width:9%;}
  .crm-case-table td:last-child .actions,
  .crm-case-table td:last-child{white-space:normal!important;}
}

/* ========================================================================
   V319 · Estándar definitivo de tablas y acciones
   - CRM Clientes/Casos sin scroll horizontal en escritorio
   - Acciones compactas y consistentes (Ver / Editar / Borrar / Completar)
   ======================================================================== */
@media (min-width: 901px){
  #crmCasesView .crm-table-wrap{
    width:100% !important;
    max-width:100% !important;
    overflow-x:hidden !important;
    overflow-y:visible !important;
  }
  #crmCasesView .crm-case-table{
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    table-layout:fixed !important;
  }
  #crmCasesView .crm-case-table th,
  #crmCasesView .crm-case-table td{
    min-width:0 !important;
    max-width:none !important;
    padding:7px 6px !important;
    font-size:10px !important;
    line-height:1.2 !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
  }
  #crmCasesView .crm-case-table th:nth-child(1){width:15% !important;}
  #crmCasesView .crm-case-table th:nth-child(2){width:10% !important;}
  #crmCasesView .crm-case-table th:nth-child(3){width:10% !important;}
  #crmCasesView .crm-case-table th:nth-child(4){width:11% !important;}
  #crmCasesView .crm-case-table th:nth-child(5){width:10% !important;}
  #crmCasesView .crm-case-table th:nth-child(6){width:11% !important;}
  #crmCasesView .crm-case-table th:nth-child(7){width:11% !important;}
  #crmCasesView .crm-case-table th:nth-child(8){width:8% !important;}
  #crmCasesView .crm-case-table th:nth-child(9){width:14% !important;}

  #crmCasesView .crm-case-table td:first-child,
  #crmCasesView .crm-case-table td.crm-case-owner,
  #crmCasesView .crm-case-table td.crm-case-phone,
  #crmCasesView .crm-case-table th:nth-child(1),
  #crmCasesView .crm-case-table th:nth-child(2),
  #crmCasesView .crm-case-table th:nth-child(4),
  #crmCasesView .crm-case-table th:nth-child(5){
    min-width:0 !important;
    white-space:nowrap !important;
  }
  #crmCasesView .crm-case-name-link{
    display:block !important;
    width:100% !important;
    max-width:100% !important;
    overflow:hidden !important;
    text-overflow:ellipsis !important;
    white-space:nowrap !important;
  }
  #crmCasesView .crm-case-actions{
    display:grid !important;
    grid-template-columns:repeat(2,minmax(0,1fr)) !important;
    align-items:stretch !important;
    gap:4px !important;
    width:100% !important;
    white-space:normal !important;
    overflow:visible !important;
  }
  #crmCasesView .crm-case-actions button{
    width:100% !important;
    min-width:0 !important;
    min-height:29px !important;
    margin:0 !important;
    padding:5px 4px !important;
    border-radius:7px !important;
    font-size:9px !important;
    line-height:1.05 !important;
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
  }
  #crmCasesView .crm-complete-followup-btn{
    min-height:29px !important;
    padding:5px 4px !important;
    border-radius:7px !important;
    font-size:9px !important;
  }
}

/* ========================================================================== */
/* V320 · Base de Datos maestro / tipos / parámetros / tabla sin scroll       */
/* ========================================================================== */
.db-standard-spaced-action{margin-left:18px!important;}
.db-master-card-head,
.db-material-types-card .card-head,
.db-suppliers-card .card-head{justify-content:flex-start!important;gap:18px!important;}
.db-master-card-head>span,
.db-material-types-card .card-head>span,
.db-suppliers-card .card-head>span{white-space:nowrap!important;}
.db-sales-params-note{margin-bottom:14px;}
#dbVendorParamsCard.db-params-focus{box-shadow:0 0 0 3px rgba(26,101,158,.16),0 12px 30px rgba(26,101,158,.10);}

/* Equipos y precios: proteger Costo Maestro / Garantía sin volver a scroll. */
@media(min-width:901px){
  #pageDatabase .db-table-wrap{overflow-x:visible!important;}
  #pageDatabase .db-table{width:100%!important;min-width:0!important;table-layout:fixed!important;}
  #pageDatabase .db-table th,#pageDatabase .db-table td{padding:6px 4px!important;font-size:9px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #pageDatabase .db-table th:first-child,#pageDatabase .db-table td:first-child{width:13%!important;white-space:nowrap!important;text-align:left!important;}
  #pageDatabase .db-table th:nth-child(2),#pageDatabase .db-table td:nth-child(2){width:8%!important;}
  #pageDatabase .db-table th:nth-child(3),#pageDatabase .db-table td:nth-child(3){width:8%!important;}
  #pageDatabase .db-table th:nth-child(4),#pageDatabase .db-table td:nth-child(4){width:8%!important;}
  #pageDatabase .db-table th:nth-child(5),#pageDatabase .db-table td:nth-child(5){width:7%!important;}
  #pageDatabase .db-table th:nth-child(6),#pageDatabase .db-table td:nth-child(6){width:12%!important;}
  #pageDatabase .db-table th:nth-child(7),#pageDatabase .db-table td:nth-child(7){width:8%!important;}
  #pageDatabase .db-table th:nth-child(8),#pageDatabase .db-table td:nth-child(8){width:9%!important;}
  #pageDatabase .db-table th:nth-child(9),#pageDatabase .db-table td:nth-child(9){width:6%!important;}
  #pageDatabase .db-table th:nth-child(10),#pageDatabase .db-table td:nth-child(10){width:6%!important;}
  #pageDatabase .db-table th:nth-child(11),#pageDatabase .db-table td:nth-child(11){width:15%!important;}
  #pageDatabase .db-table .db-master-cost-cell{display:flex!important;flex-direction:column!important;align-items:flex-start!important;gap:2px!important;white-space:nowrap!important;}
  #pageDatabase .db-table .db-master-cost-cell strong,
  #pageDatabase .db-table .db-master-cost-cell .db-cost-link,
  #pageDatabase .db-table td:nth-child(8){white-space:nowrap!important;}
  #pageDatabase .db-table .db-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:3px!important;}
  #pageDatabase .db-table .db-actions button{width:100%!important;min-width:0!important;padding:4px 3px!important;font-size:8px!important;white-space:nowrap!important;}
}

/* ========================================================================== */
/* V321 · Estándar Bases Internas: Estado / Default siempre en una sola línea */
/* ========================================================================== */
#pageDatabase .db-table th.db-status-col,
#pageDatabase .db-table td.db-status-col,
#pageDatabase .db-table th.db-default-col,
#pageDatabase .db-table td.db-default-col,
#pageDatabase .db-table .db-status,
#pageDatabase .db-table .db-default{
  white-space:nowrap !important;
  word-break:keep-all !important;
  overflow-wrap:normal !important;
}
#pageDatabase .db-table th.db-status-col,
#pageDatabase .db-table th.db-default-col,
#pageDatabase .db-table td.db-status-col,
#pageDatabase .db-table td.db-default-col{
  text-align:center !important;
}


/* ========================================================================== */
/* V322 · Estándares UI + reclasificación segura de Tipos                    */
/* ========================================================================== */
.db-type-reclass-overlay{
  position:fixed;inset:0;z-index:99999;background:rgba(15,23,42,.48);display:flex;align-items:center;justify-content:center;padding:24px;
}
.db-type-reclass-card{
  width:min(900px,96vw);max-height:88vh;overflow:auto;background:#fff;border-radius:16px;box-shadow:0 24px 70px rgba(15,23,42,.26);padding:20px;
}
.db-type-reclass-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:14px;}
.db-type-reclass-head h3{margin:0 0 6px;font-size:20px}.db-type-reclass-head p{margin:0;color:#52647f;line-height:1.45}
.db-type-reclass-table-wrap{overflow-x:visible}.db-type-reclass-table{width:100%;table-layout:fixed}.db-type-reclass-table th,.db-type-reclass-table td{padding:9px 8px}
.db-type-reclass-table th:first-child,.db-type-reclass-table td:first-child{width:34%;text-align:left;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.db-type-reclass-table th:nth-child(2),.db-type-reclass-table td:nth-child(2){width:24%;white-space:nowrap}
.db-type-reclass-table th:nth-child(3),.db-type-reclass-table td:nth-child(3){width:42%}.db-type-reclass-table select{width:100%}
.db-type-reclass-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}

/* Master: acciones siempre en una sola línea y con patrón estándar. */
#dbMasterOverviewBody .db-master-edit-btn{white-space:nowrap!important;min-width:64px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
#dbMasterOverviewBody td:last-child{white-space:nowrap!important;text-align:center!important;}

/* CRM > Proyectos Vendidos: sin scroll horizontal en escritorio. */
@media(min-width:901px){
  #crmProjectsView .crm-table-wrap{overflow-x:visible!important;}
  #crmProjectsView .crm-projects-table{width:100%!important;min-width:0!important;max-width:100%!important;table-layout:fixed!important;}
  #crmProjectsView .crm-projects-table th,#crmProjectsView .crm-projects-table td{padding:7px 5px!important;font-size:10px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(1),#crmProjectsView .crm-projects-table td:nth-child(1){width:17%!important;text-align:left!important;}
  #crmProjectsView .crm-projects-table th:nth-child(2),#crmProjectsView .crm-projects-table td:nth-child(2){width:13%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(3),#crmProjectsView .crm-projects-table td:nth-child(3){width:13%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(4),#crmProjectsView .crm-projects-table td:nth-child(4){width:13%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(5),#crmProjectsView .crm-projects-table td:nth-child(5){width:12%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(6),#crmProjectsView .crm-projects-table td:nth-child(6){width:14%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(7),#crmProjectsView .crm-projects-table td:nth-child(7){width:9%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(8),#crmProjectsView .crm-projects-table td:nth-child(8){width:9%!important;overflow:visible!important;}
  #crmProjectsView .crm-projects-table .crm-case-actions{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:3px!important;white-space:normal!important;}
  #crmProjectsView .crm-projects-table .crm-case-actions button{min-width:0!important;width:100%!important;padding:5px 3px!important;font-size:8px!important;white-space:nowrap!important;}
}

/* Base interna Placas Solares: botones derechos consistentes y compactos. */
@media(min-width:901px){
  #pageDatabase .db-solar-table .db-actions{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:4px!important;align-items:stretch!important;}
  #pageDatabase .db-solar-table .db-actions button{width:100%!important;min-width:0!important;min-height:28px!important;padding:5px 4px!important;font-size:8.5px!important;line-height:1.1!important;white-space:nowrap!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;}
  #pageDatabase .db-solar-table th:last-child,#pageDatabase .db-solar-table td:last-child{width:18%!important;overflow:visible!important;}
}

/* ========================================================================== */
/* V323 · Normalización final: Proyectos Vendidos + Garantía Placas Solares   */
/* ========================================================================== */
@media(min-width:901px){
  /* Proyectos Vendidos: sin scroll, cliente en una sola línea y acciones separadas. */
  #crmProjectsView .crm-table-wrap{
    overflow-x:visible!important;
    width:100%!important;
  }
  #crmProjectsView .crm-projects-table{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    table-layout:fixed!important;
  }
  #crmProjectsView .crm-projects-table th,
  #crmProjectsView .crm-projects-table td{
    box-sizing:border-box!important;
    padding:7px 5px!important;
    font-size:9.5px!important;
    vertical-align:middle!important;
    white-space:nowrap!important;
  }
  #crmProjectsView .crm-projects-table th:nth-child(1),
  #crmProjectsView .crm-projects-table td:nth-child(1){width:18%!important;text-align:left!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(2),
  #crmProjectsView .crm-projects-table td:nth-child(2){width:11%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(3),
  #crmProjectsView .crm-projects-table td:nth-child(3){width:14%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(4),
  #crmProjectsView .crm-projects-table td:nth-child(4){width:13%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(5),
  #crmProjectsView .crm-projects-table td:nth-child(5){width:11%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(6),
  #crmProjectsView .crm-projects-table td:nth-child(6){width:13%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(7),
  #crmProjectsView .crm-projects-table td:nth-child(7){width:9%!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView .crm-projects-table th:nth-child(8),
  #crmProjectsView .crm-projects-table td:nth-child(8){width:11%!important;overflow:visible!important;}

  #crmProjectsView .crm-project-client,
  #crmProjectsView .crm-project-name-link{
    white-space:nowrap!important;
    max-width:100%!important;
  }
  #crmProjectsView .crm-project-name-link{
    display:block!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    text-align:left!important;
  }
  #crmProjectsView .crm-projects-table .crm-case-actions{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:4px!important;
    white-space:nowrap!important;
  }
  #crmProjectsView .crm-projects-table .crm-case-actions button{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:auto!important;
    min-width:0!important;
    min-height:28px!important;
    padding:5px 6px!important;
    font-size:8.5px!important;
    line-height:1!important;
    white-space:nowrap!important;
    flex:0 0 auto!important;
  }

  /* Placas Solares: garantía centrada y separada sin introducir scroll. */
  #pageDatabase .db-solar-table{
    width:100%!important;
    min-width:0!important;
    table-layout:fixed!important;
  }
  #pageDatabase .db-solar-table th:nth-child(1),#pageDatabase .db-solar-table td:nth-child(1){width:14%!important;text-align:left!important;}
  #pageDatabase .db-solar-table th:nth-child(2),#pageDatabase .db-solar-table td:nth-child(2){width:9%!important;}
  #pageDatabase .db-solar-table th:nth-child(3),#pageDatabase .db-solar-table td:nth-child(3){width:10%!important;}
  #pageDatabase .db-solar-table th:nth-child(4),#pageDatabase .db-solar-table td:nth-child(4){width:9%!important;}
  #pageDatabase .db-solar-table th:nth-child(5),#pageDatabase .db-solar-table td:nth-child(5){width:15%!important;}
  #pageDatabase .db-solar-table th:nth-child(6),#pageDatabase .db-solar-table td:nth-child(6){width:11%!important;text-align:center!important;padding-left:8px!important;padding-right:8px!important;white-space:nowrap!important;}
  #pageDatabase .db-solar-table th:nth-child(7),#pageDatabase .db-solar-table td:nth-child(7){width:7%!important;text-align:center!important;}
  #pageDatabase .db-solar-table th:nth-child(8),#pageDatabase .db-solar-table td:nth-child(8){width:7%!important;text-align:center!important;}
  #pageDatabase .db-solar-table th:nth-child(9),#pageDatabase .db-solar-table td:nth-child(9){width:18%!important;overflow:visible!important;}
}


/* ========================================================================== */
/* V324 · Ajuste final: columna Acciones centrada en Proyectos Vendidos       */
/* ========================================================================== */
@media(min-width:901px){
  #crmProjectsView .crm-projects-table th:nth-child(8),
  #crmProjectsView .crm-projects-table td:nth-child(8){
    text-align:center!important;
  }
}

/* ========================================================================== */
/* V325 · Proyectos Vendidos: separación definitiva Venta / Acciones          */
/* ========================================================================== */
@media(min-width:901px){
  #crmProjectsView .crm-projects-table{
    table-layout:fixed!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
  }
  /* Redistribución = 100%. Se reserva ancho real para Venta y Acciones. */
  #crmProjectsView .crm-projects-table th:nth-child(1),
  #crmProjectsView .crm-projects-table td:nth-child(1){width:16%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(2),
  #crmProjectsView .crm-projects-table td:nth-child(2){width:9%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(3),
  #crmProjectsView .crm-projects-table td:nth-child(3){width:12%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(4),
  #crmProjectsView .crm-projects-table td:nth-child(4){width:10%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(5),
  #crmProjectsView .crm-projects-table td:nth-child(5){width:9%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(6),
  #crmProjectsView .crm-projects-table td:nth-child(6){width:12%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(7),
  #crmProjectsView .crm-projects-table td:nth-child(7){
    width:13%!important;
    text-align:right!important;
    padding-left:7px!important;
    padding-right:14px!important;
    overflow:hidden!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
  }
  #crmProjectsView .crm-projects-table th:nth-child(8),
  #crmProjectsView .crm-projects-table td:nth-child(8){
    width:19%!important;
    text-align:center!important;
    padding-left:10px!important;
    padding-right:7px!important;
    overflow:hidden!important;
    white-space:nowrap!important;
  }
  #crmProjectsView .crm-projects-table td:nth-child(8).crm-case-actions{
    display:flex!important;
    flex-direction:row!important;
    flex-wrap:nowrap!important;
    align-items:center!important;
    justify-content:center!important;
    gap:6px!important;
  }
  #crmProjectsView .crm-projects-table td:nth-child(8).crm-case-actions button{
    flex:0 1 auto!important;
    min-width:0!important;
    max-width:calc((100% - 12px)/3)!important;
    padding:5px 7px!important;
    font-size:8.5px!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:clip!important;
  }
}
\n\n/* ========================================================================== */\n/* V326 · Proyectos Vendidos: estructura definitiva Venta / Acciones          */\n/* ========================================================================== */\n@media(min-width:901px){\n  #crmProjectsView .crm-projects-table{\n    width:100%!important;\n    max-width:100%!important;\n    min-width:0!important;\n    table-layout:fixed!important;\n  }\n  /* 100% exacto: se protege Venta y se reserva espacio real para 3 acciones. */\n  #crmProjectsView .crm-projects-table th:nth-child(1),\n  #crmProjectsView .crm-projects-table td:nth-child(1){width:15%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(2),\n  #crmProjectsView .crm-projects-table td:nth-child(2){width:8%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(3),\n  #crmProjectsView .crm-projects-table td:nth-child(3){width:11%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(4),\n  #crmProjectsView .crm-projects-table td:nth-child(4){width:9%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(5),\n  #crmProjectsView .crm-projects-table td:nth-child(5){width:8%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(6),\n  #crmProjectsView .crm-projects-table td:nth-child(6){width:12%!important;}\n  #crmProjectsView .crm-projects-table th:nth-child(7),\n  #crmProjectsView .crm-projects-table td:nth-child(7){\n    width:14%!important;\n    text-align:right!important;\n    padding-left:8px!important;\n    padding-right:12px!important;\n    white-space:nowrap!important;\n    overflow:hidden!important;\n    text-overflow:clip!important;\n  }\n  #crmProjectsView .crm-projects-table th:nth-child(8),\n  #crmProjectsView .crm-projects-table td:nth-child(8){\n    width:23%!important;\n    display:table-cell!important;\n    text-align:center!important;\n    padding:6px 8px!important;\n    white-space:nowrap!important;\n    overflow:hidden!important;\n    vertical-align:middle!important;\n  }\n  #crmProjectsView .crm-projects-table .crm-project-action-group{\n    width:100%!important;\n    display:grid!important;\n    grid-template-columns:repeat(3,minmax(0,1fr))!important;\n    align-items:center!important;\n    gap:6px!important;\n    margin:0 auto!important;\n  }\n  #crmProjectsView .crm-projects-table .crm-project-action-group button{\n    width:100%!important;\n    min-width:0!important;\n    max-width:none!important;\n    min-height:28px!important;\n    padding:5px 3px!important;\n    margin:0!important;\n    font-size:9px!important;\n    line-height:1!important;\n    white-space:nowrap!important;\n    overflow:hidden!important;\n    text-overflow:clip!important;\n    display:inline-flex!important;\n    align-items:center!important;\n    justify-content:center!important;\n    box-sizing:border-box!important;\n  }\n}\n

/* ========================================================================== */
/* V327 · Proyectos Vendidos: layout definitivo responsive sin scroll         */
/* ========================================================================== */
#crmProjectsView .crm-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
#crmProjectsView .crm-projects-table{
  width:100%!important;
  min-width:0!important;
  max-width:100%!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
}
#crmProjectsView .crm-projects-table th,
#crmProjectsView .crm-projects-table td{
  box-sizing:border-box!important;
  white-space:nowrap!important;
  vertical-align:middle!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
}
#crmProjectsView .crm-projects-table th:nth-child(1),
#crmProjectsView .crm-projects-table td:nth-child(1){width:16%!important;text-align:left!important;}
#crmProjectsView .crm-projects-table th:nth-child(2),
#crmProjectsView .crm-projects-table td:nth-child(2){width:8%!important;}
#crmProjectsView .crm-projects-table th:nth-child(3),
#crmProjectsView .crm-projects-table td:nth-child(3){width:10%!important;}
#crmProjectsView .crm-projects-table th:nth-child(4),
#crmProjectsView .crm-projects-table td:nth-child(4){width:9%!important;}
#crmProjectsView .crm-projects-table th:nth-child(5),
#crmProjectsView .crm-projects-table td:nth-child(5){width:10%!important;}
#crmProjectsView .crm-projects-table th:nth-child(6),
#crmProjectsView .crm-projects-table td:nth-child(6){width:11%!important;}
#crmProjectsView .crm-projects-table th:nth-child(7),
#crmProjectsView .crm-projects-table td:nth-child(7){
  width:13%!important;
  text-align:right!important;
  padding-left:6px!important;
  padding-right:10px!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#crmProjectsView .crm-projects-table th:nth-child(8),
#crmProjectsView .crm-projects-table td:nth-child(8){
  width:23%!important;
  text-align:center!important;
  padding-left:7px!important;
  padding-right:7px!important;
  overflow:hidden!important;
  text-overflow:clip!important;
}
#crmProjectsView .crm-projects-table .crm-project-action-group{
  width:100%!important;
  max-width:100%!important;
  display:flex!important;
  flex-direction:row!important;
  flex-wrap:nowrap!important;
  align-items:center!important;
  justify-content:center!important;
  gap:5px!important;
  margin:0!important;
  padding:0!important;
}
#crmProjectsView .crm-projects-table .crm-project-action-group button{
  flex:1 1 0!important;
  width:auto!important;
  min-width:0!important;
  max-width:none!important;
  min-height:28px!important;
  padding:5px 4px!important;
  margin:0!important;
  font-size:9px!important;
  line-height:1!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
}
#crmProjectsView .crm-projects-table .crm-project-name-link{
  display:block!important;
  max-width:100%!important;
  white-space:nowrap!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  text-align:left!important;
}

/* Ventanas más estrechas de escritorio/tablet: mantener las 8 columnas sin scroll. */
@media(max-width:900px){
  #crmProjectsView .crm-table-wrap{overflow-x:hidden!important;}
  #crmProjectsView .crm-projects-table{min-width:0!important;table-layout:fixed!important;}
  #crmProjectsView .crm-projects-table th,
  #crmProjectsView .crm-projects-table td{
    padding:7px 3px!important;
    font-size:8px!important;
  }
  #crmProjectsView .crm-projects-table th:nth-child(1),
  #crmProjectsView .crm-projects-table td:nth-child(1){width:15%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(2),
  #crmProjectsView .crm-projects-table td:nth-child(2){width:7%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(3),
  #crmProjectsView .crm-projects-table td:nth-child(3){width:9%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(4),
  #crmProjectsView .crm-projects-table td:nth-child(4){width:8%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(5),
  #crmProjectsView .crm-projects-table td:nth-child(5){width:9%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(6),
  #crmProjectsView .crm-projects-table td:nth-child(6){width:10%!important;}
  #crmProjectsView .crm-projects-table th:nth-child(7),
  #crmProjectsView .crm-projects-table td:nth-child(7){width:15%!important;padding-right:7px!important;font-size:9px!important;}
  #crmProjectsView .crm-projects-table th:nth-child(8),
  #crmProjectsView .crm-projects-table td:nth-child(8){width:27%!important;padding-left:5px!important;padding-right:5px!important;}
  #crmProjectsView .crm-projects-table .crm-project-action-group{gap:3px!important;}
  #crmProjectsView .crm-projects-table .crm-project-action-group button{
    min-height:27px!important;
    padding:4px 2px!important;
    font-size:8px!important;
  }
}

/* ========================================================================== */
/* V328 · Proyectos Vendidos: copiar patrón visual estable de Clientes/Casos  */
/* ========================================================================== */
#crmProjectsView .crm-table-wrap{
  width:100%!important;
  max-width:100%!important;
  overflow-x:hidden!important;
}
#crmProjectsView table.crm-projects-table{
  width:100%!important;
  max-width:100%!important;
  min-width:0!important;
  table-layout:fixed!important;
  border-collapse:collapse!important;
}
#crmProjectsView table.crm-projects-table th,
#crmProjectsView table.crm-projects-table td{
  box-sizing:border-box!important;
  vertical-align:middle!important;
  white-space:nowrap!important;
}
/* Distribución fija 100%: suficiente ancho para Venta y una columna Acciones real. */
#crmProjectsView table.crm-projects-table th:nth-child(1),
#crmProjectsView table.crm-projects-table td:nth-child(1){width:15%!important;text-align:left!important;}
#crmProjectsView table.crm-projects-table th:nth-child(2),
#crmProjectsView table.crm-projects-table td:nth-child(2){width:8%!important;}
#crmProjectsView table.crm-projects-table th:nth-child(3),
#crmProjectsView table.crm-projects-table td:nth-child(3){width:11%!important;}
#crmProjectsView table.crm-projects-table th:nth-child(4),
#crmProjectsView table.crm-projects-table td:nth-child(4){width:10%!important;}
#crmProjectsView table.crm-projects-table th:nth-child(5),
#crmProjectsView table.crm-projects-table td:nth-child(5){width:10%!important;}
#crmProjectsView table.crm-projects-table th:nth-child(6),
#crmProjectsView table.crm-projects-table td:nth-child(6){width:11%!important;}
#crmProjectsView table.crm-projects-table th:nth-child(7),
#crmProjectsView table.crm-projects-table td:nth-child(7){
  width:10%!important;
  text-align:right!important;
  padding-left:8px!important;
  padding-right:12px!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
#crmProjectsView table.crm-projects-table th:nth-child(8),
#crmProjectsView table.crm-projects-table td:nth-child(8){
  width:25%!important;
  text-align:center!important;
  padding:8px 12px!important;
  overflow:visible!important;
  text-overflow:clip!important;
}
/* CRÍTICO: Acciones permanece table-cell. Nunca convertir el TD a flex/grid. */
#crmProjectsView table.crm-projects-table tbody td.crm-case-actions{
  display:table-cell!important;
  width:25%!important;
  text-align:center!important;
  white-space:normal!important;
  overflow:visible!important;
}
/* Mismo patrón que la tabla Clientes/Casos: 2 botones arriba + 1 abajo. */
#crmProjectsView table.crm-projects-table .crm-project-action-group{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:6px 8px!important;
  width:100%!important;
  max-width:250px!important;
  margin:0 auto!important;
  padding:0!important;
  align-items:stretch!important;
}
#crmProjectsView table.crm-projects-table .crm-project-action-group button{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  min-height:34px!important;
  padding:6px 8px!important;
  margin:0!important;
  border-radius:8px!important;
  font-size:10px!important;
  line-height:1.05!important;
  white-space:nowrap!important;
  overflow:visible!important;
  text-overflow:clip!important;
  box-sizing:border-box!important;
}
#crmProjectsView table.crm-projects-table .crm-project-action-group .crm-delete-list-btn{
  grid-column:1 / 2!important;
}
#crmProjectsView table.crm-projects-table .crm-project-action-group button:only-child{
  grid-column:1 / -1!important;
  max-width:120px!important;
  justify-self:center!important;
}
#crmProjectsView table.crm-projects-table .crm-project-name-link{
  display:block!important;
  width:100%!important;
  max-width:100%!important;
  overflow:hidden!important;
  text-overflow:ellipsis!important;
  white-space:nowrap!important;
  text-align:left!important;
}
/* En anchos menores sigue sin scroll; se compactan textos, no los botones. */
@media(max-width:900px){
  #crmProjectsView table.crm-projects-table th,
  #crmProjectsView table.crm-projects-table td{padding:6px 3px!important;font-size:8px!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(7),
  #crmProjectsView table.crm-projects-table td:nth-child(7){width:12%!important;padding-right:6px!important;overflow:visible!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(8),
  #crmProjectsView table.crm-projects-table td:nth-child(8),
  #crmProjectsView table.crm-projects-table tbody td.crm-case-actions{width:28%!important;padding:6px!important;overflow:visible!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(1),#crmProjectsView table.crm-projects-table td:nth-child(1){width:13%!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(2),#crmProjectsView table.crm-projects-table td:nth-child(2){width:7%!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(3),#crmProjectsView table.crm-projects-table td:nth-child(3){width:9%!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(4),#crmProjectsView table.crm-projects-table td:nth-child(4){width:8%!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(5),#crmProjectsView table.crm-projects-table td:nth-child(5){width:8%!important;}
  #crmProjectsView table.crm-projects-table th:nth-child(6),#crmProjectsView table.crm-projects-table td:nth-child(6){width:15%!important;}
  #crmProjectsView table.crm-projects-table .crm-project-action-group{gap:4px 6px!important;max-width:220px!important;}
  #crmProjectsView table.crm-projects-table .crm-project-action-group button{min-height:31px!important;padding:5px 5px!important;font-size:9px!important;}
}

/* ========================================================================== */
/* V329 · Proyectos Vendidos: mismo patrón de Acciones que Clientes / Casos   */
/* ÚNICO override final para esta tabla.                                      */
/* ========================================================================== */
#crmProjectsView .crm-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
  overflow-y:visible !important;
}
#crmProjectsView .crm-projects-table{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
}
#crmProjectsView .crm-projects-table th,
#crmProjectsView .crm-projects-table td{
  box-sizing:border-box !important;
  min-width:0 !important;
  padding:7px 6px !important;
  font-size:10px !important;
  line-height:1.2 !important;
  vertical-align:middle !important;
}
/* Distribución exacta 100%; Acciones tiene espacio real sin invadir Venta. */
#crmProjectsView .crm-projects-table th:nth-child(1),
#crmProjectsView .crm-projects-table td:nth-child(1){width:15% !important;}
#crmProjectsView .crm-projects-table th:nth-child(2),
#crmProjectsView .crm-projects-table td:nth-child(2){width:9% !important;}
#crmProjectsView .crm-projects-table th:nth-child(3),
#crmProjectsView .crm-projects-table td:nth-child(3){width:11% !important;}
#crmProjectsView .crm-projects-table th:nth-child(4),
#crmProjectsView .crm-projects-table td:nth-child(4){width:10% !important;}
#crmProjectsView .crm-projects-table th:nth-child(5),
#crmProjectsView .crm-projects-table td:nth-child(5){width:10% !important;}
#crmProjectsView .crm-projects-table th:nth-child(6),
#crmProjectsView .crm-projects-table td:nth-child(6){width:15% !important;}
#crmProjectsView .crm-projects-table th:nth-child(7),
#crmProjectsView .crm-projects-table td:nth-child(7){
  width:12% !important;
  text-align:right !important;
  padding-left:8px !important;
  padding-right:12px !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
}
#crmProjectsView .crm-projects-table th:nth-child(8),
#crmProjectsView .crm-projects-table td:nth-child(8){width:18% !important;}

#crmProjectsView .crm-projects-table .crm-project-client,
#crmProjectsView .crm-projects-table .crm-project-name-link{
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/* Literalmente el patrón de Clientes/Casos: celda grid, 2 arriba + 1 abajo. */
#crmProjectsView .crm-projects-table td.crm-project-actions{
  display:grid !important;
  grid-template-columns:repeat(2,minmax(0,1fr)) !important;
  align-items:stretch !important;
  gap:4px !important;
  width:auto !important;
  white-space:normal !important;
  overflow:hidden !important;
  padding:7px 6px !important;
}
#crmProjectsView .crm-projects-table td.crm-project-actions button{
  width:100% !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:29px !important;
  margin:0 !important;
  padding:5px 4px !important;
  border-radius:7px !important;
  font-size:9px !important;
  line-height:1.05 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:clip !important;
  box-sizing:border-box !important;
}
#crmProjectsView .crm-projects-table td.crm-project-actions .crm-delete-list-btn{
  grid-column:1 / 2 !important;
}
/* Vendedor/no admin: botón Ver centrado ocupando una fila limpia. */
#crmProjectsView .crm-projects-table td.crm-project-actions button:only-child{
  grid-column:1 / -1 !important;
  width:50% !important;
  justify-self:center !important;
}

/* ========================================================================== */
/* V330 · CRM > Proyectos Vendidos · layout EXACTO según referencia aprobada */
/* SOLO presentación de esta tabla. No cambia lógica ni funcionalidad.       */
/* ========================================================================== */
#crmProjectsView .crm-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
}

#crmProjectsView table.crm-projects-table{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
}

#crmProjectsView table.crm-projects-table th,
#crmProjectsView table.crm-projects-table td{
  box-sizing:border-box !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}

/* Distribución tomada de la referencia visual: 100% total. */
#crmProjectsView table.crm-projects-table th:nth-child(1),
#crmProjectsView table.crm-projects-table td:nth-child(1){width:11% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(2),
#crmProjectsView table.crm-projects-table td:nth-child(2){width:12% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(3),
#crmProjectsView table.crm-projects-table td:nth-child(3){width:16% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(4),
#crmProjectsView table.crm-projects-table td:nth-child(4){width:10% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(5),
#crmProjectsView table.crm-projects-table td:nth-child(5){width:10.5% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(6),
#crmProjectsView table.crm-projects-table td:nth-child(6){width:13% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(7),
#crmProjectsView table.crm-projects-table td:nth-child(7){
  width:8% !important;
  text-align:left !important;
  padding-left:8px !important;
  padding-right:8px !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
#crmProjectsView table.crm-projects-table th:nth-child(8),
#crmProjectsView table.crm-projects-table td:nth-child(8){width:19.5% !important;}

/* Cliente a la izquierda y en una sola línea, como en la referencia. */
#crmProjectsView table.crm-projects-table .crm-project-client,
#crmProjectsView table.crm-projects-table .crm-project-name-link{
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/*
   Acciones EXACTAMENTE en una sola fila.
   El TD se mantiene como table-cell; NO flex/grid sobre la celda.
*/
#crmProjectsView table.crm-projects-table td.crm-project-actions{
  display:table-cell !important;
  text-align:center !important;
  white-space:nowrap !important;
  overflow:visible !important;
  padding-left:8px !important;
  padding-right:8px !important;
}

#crmProjectsView table.crm-projects-table td.crm-project-actions button{
  display:inline-flex !important;
  width:auto !important;
  min-width:0 !important;
  max-width:none !important;
  min-height:0 !important;
  margin:0 4px !important;
  padding-left:12px !important;
  padding-right:12px !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  align-items:center !important;
  justify-content:center !important;
  vertical-align:middle !important;
}

/* Elimina reglas de versiones anteriores que enviaban Borrar a otra fila. */
#crmProjectsView table.crm-projects-table td.crm-project-actions .crm-delete-list-btn{
  grid-column:auto !important;
}
#crmProjectsView table.crm-projects-table td.crm-project-actions button:only-child{
  width:auto !important;
  max-width:none !important;
  justify-self:auto !important;
}

/* ========================================================================== */
/* V331 · CRM > Proyectos Vendidos · ajuste visual FINAL según referencia    */
/* SOLO layout de esta tabla. Sin cambios funcionales.                       */
/* ========================================================================== */
#crmProjectsView .crm-table-wrap{
  width:100% !important;
  max-width:100% !important;
  overflow-x:hidden !important;
}

#crmProjectsView table.crm-projects-table{
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  table-layout:fixed !important;
}

#crmProjectsView table.crm-projects-table th,
#crmProjectsView table.crm-projects-table td{
  box-sizing:border-box !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
}

/* Proporciones visuales de la referencia entregada por el usuario. */
#crmProjectsView table.crm-projects-table th:nth-child(1),
#crmProjectsView table.crm-projects-table td:nth-child(1){width:11% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(2),
#crmProjectsView table.crm-projects-table td:nth-child(2){width:12% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(3),
#crmProjectsView table.crm-projects-table td:nth-child(3){width:16% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(4),
#crmProjectsView table.crm-projects-table td:nth-child(4){width:10% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(5),
#crmProjectsView table.crm-projects-table td:nth-child(5){width:10.5% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(6),
#crmProjectsView table.crm-projects-table td:nth-child(6){width:13% !important;}
#crmProjectsView table.crm-projects-table th:nth-child(7),
#crmProjectsView table.crm-projects-table td:nth-child(7){
  width:8% !important;
  text-align:left !important;
  padding-left:8px !important;
  padding-right:8px !important;
  overflow:visible !important;
  text-overflow:clip !important;
}
#crmProjectsView table.crm-projects-table th:nth-child(8),
#crmProjectsView table.crm-projects-table td:nth-child(8){width:19.5% !important;}

#crmProjectsView table.crm-projects-table .crm-project-client,
#crmProjectsView table.crm-projects-table .crm-project-name-link{
  text-align:left !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
}

/*
   IMPORTANT: máxima especificidad deliberada para neutralizar overrides
   históricos de V323-V330 que convertían esta TD en flex/grid y comprimían
   los botones. La celda vuelve a ser una TD normal, como en la referencia.
*/
#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions{
  display:table-cell !important;
  width:19.5% !important;
  text-align:center !important;
  vertical-align:middle !important;
  white-space:nowrap !important;
  overflow:visible !important;
  padding:8px 10px !important;
}

#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions button{
  display:inline-flex !important;
  flex:none !important;
  width:auto !important;
  max-width:none !important;
  min-height:34px !important;
  height:34px !important;
  margin:0 4px !important;
  padding:6px 12px !important;
  border-radius:10px !important;
  font-size:10px !important;
  line-height:1 !important;
  white-space:nowrap !important;
  overflow:visible !important;
  text-overflow:clip !important;
  align-items:center !important;
  justify-content:center !important;
  vertical-align:middle !important;
  box-sizing:border-box !important;
}

#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions .crm-open-btn{
  min-width:50px !important;
}
#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions .crm-edit-list-btn{
  min-width:76px !important;
}
#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions .crm-delete-list-btn{
  min-width:78px !important;
  grid-column:auto !important;
}
#crmProjectsView table.crm-projects-table tbody tr td.crm-case-actions.crm-project-actions button:only-child{
  width:auto !important;
  min-width:60px !important;
  max-width:none !important;
  justify-self:auto !important;
}


/* ==========================================================================
   C009 · Inventario — restaurar TD de Acciones como celda real de tabla
   Diagnóstico confirmado en Safari:
   - TH Acciones: display table-cell, ~92 px
   - TD Acciones: display flex, ~10 px
   La clase global .crm-case-actions no debe convertir una TD de Inventario
   en flex. El contenido se centra dentro de la celda; botones locales pueden
   envolver a una segunda línea. El origen "Maestro" ya se muestra en Sync.
   ========================================================================== */
@media (min-width: 901px){
  .inventory-table tbody tr td.crm-case-actions{
    display:table-cell !important;
    width:8% !important;
    min-width:0 !important;
    max-width:none !important;
    vertical-align:middle !important;
    text-align:center !important;
    white-space:normal !important;
    overflow:visible !important;
    text-overflow:clip !important;
    padding:7px 5px !important;
  }

  .inventory-table tbody tr td.crm-case-actions > button{
    display:inline-flex !important;
    flex:none !important;
    width:auto !important;
    min-width:54px !important;
    max-width:100% !important;
    min-height:30px !important;
    height:auto !important;
    margin:2px 1px !important;
    padding:5px 7px !important;
    align-items:center !important;
    justify-content:center !important;
    white-space:nowrap !important;
    box-sizing:border-box !important;
  }

  /* "Maestro" already appears in the Sync column; avoid duplicating that
     source label inside the narrow Actions cell. The editor still shows
     the full Base de Datos source note. */
  .inventory-table tbody tr td.crm-case-actions > .inventory-source-lock{
    display:none !important;
  }
}


/* ==========================================================================
   C009 · Final polish for audit, report history, commission links and users
   ========================================================================== */
.v314-user-history-card{
  margin-top:20px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(15,23,42,.05);
}
.v314-user-history-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px 20px;
  font-size:15px;
  font-weight:800;
}
.v314-user-history-count{
  font-size:12px;
  font-weight:700;
  opacity:.65;
}
.v314-user-history-list{
  display:grid;
  gap:0;
  max-height:440px;
  overflow-y:auto;
  overscroll-behavior:contain;
  scrollbar-gutter:stable;
}
.v314-user-history-entry{
  display:grid;
  grid-template-columns:12px minmax(0,1fr);
  gap:14px;
  padding:16px 20px;
  border-top:1px solid rgba(15,23,42,.08);
  background:#fff;
}
.v314-user-history-dot{
  width:9px;
  height:9px;
  border-radius:999px;
  background:currentColor;
  opacity:.45;
  margin-top:6px;
}
.v314-user-history-title{
  font-size:14px;
  font-weight:800;
  line-height:1.35;
  color:#172033;
}
.v314-user-history-details{
  margin-top:5px;
  font-size:13px;
  line-height:1.5;
  color:#475569;
  white-space:normal;
  overflow-wrap:anywhere;
}
.v314-user-history-meta{
  margin-top:7px;
  font-size:11px;
  line-height:1.4;
  color:#7b8798;
}
.v314-user-history-empty{
  padding:18px 20px;
  color:#64748b;
  font-size:13px;
}
.v314-user-save-toast{
  display:none;
  position:fixed;
  bottom:24px;
  right:24px;
  z-index:10000;
  padding:14px 20px;
  border:1px solid #a7d9bb;
  border-radius:12px;
  background:#edf9f1;
  color:#176438;
  box-shadow:0 8px 24px rgba(15,23,42,.12);
  max-width:min(420px,calc(100vw - 32px));
  white-space:normal;
}
.v314-user-save-toast.show:not([hidden]){display:block;}

.fo-report-history{
  margin:18px 0 24px;
  border:1px solid rgba(15,23,42,.10);
  border-radius:16px;
  background:#fff;
  overflow:hidden;
}
.fo-report-history-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:18px;
  padding:16px 18px;
  border-bottom:1px solid rgba(15,23,42,.08);
  background:#123f85;
  color:#fff;
}
.fo-report-history-head > div{
  display:flex;
  flex-direction:column;
  gap:3px;
}
.fo-report-history-head strong{
  font-size:15px;
  line-height:1.3;
}
.fo-report-history-head span,
.fo-report-history-head small{
  font-size:12px;
  line-height:1.45;
  color:#dbeafe;
}
.fo-report-history-list{
  display:flex;
  gap:8px;
  padding:12px 16px;
  overflow-x:auto;
}
.fo-report-history-list button{
  min-width:190px;
  text-align:left;
  padding:12px 14px;
  border-radius:10px;
  border:1px solid rgba(15,23,42,.12);
  background:#fff;
  line-height:1.3;
}
.fo-report-history-list button strong{
  display:block;
  font-size:15px;
  margin-bottom:3px;
}
.fo-report-history-list button span,
.fo-report-history-list button small{
  display:block;
  font-size:12px;
  line-height:1.5;
  color:#64748b;
  white-space:normal;
}
.fo-report-history-list button.active{
  border-width:2px;
  border-color:#123f85;
  background:#eff6ff;
  font-weight:700;
}

.c009-project-report-link{
  border:0;
  background:transparent;
  padding:0;
  margin:0;
  font:inherit;
  text-align:left;
  cursor:pointer;
  text-decoration:underline;
  text-underline-offset:3px;
}
.c009-last-access{
  min-width:150px;
  white-space:normal;
  line-height:1.35;
}
.c009-auto-inactive{
  display:block;
  margin-top:4px;
  font-size:10px;
  color:#8a4b08;
}
.db-custom-bases-card .db-actions{
  display:flex;
  gap:8px;
  flex-wrap:wrap;
}


/* C009: diez columnas de usuarios, acciones legibles dentro del listado. */
.users-table{min-width:0 !important;width:100% !important;table-layout:fixed !important}
.users-table th:nth-child(1),.users-table td:nth-child(1){width:13% !important}
.users-table th:nth-child(2),.users-table td:nth-child(2){width:9% !important}
.users-table th:nth-child(3),.users-table td:nth-child(3){width:17% !important}
.users-table th:nth-child(4),.users-table td:nth-child(4){width:10% !important}
.users-table th:nth-child(5),.users-table td:nth-child(5),.users-table th:nth-child(6),.users-table td:nth-child(6){width:6% !important}
.users-table th:nth-child(7),.users-table td:nth-child(7){width:11% !important;min-width:0 !important}
.users-table th:nth-child(8),.users-table td:nth-child(8){width:7% !important}
.users-table th:nth-child(9),.users-table td:nth-child(9){width:8% !important}
.users-table th:nth-child(10),.users-table td:nth-child(10){width:13% !important}
.users-table .user-action-row{display:flex !important;flex-wrap:wrap !important;gap:6px !important}
.users-table .user-action-row button{width:auto !important;min-width:0 !important;white-space:normal !important;padding:6px 8px !important;border:1px solid #b9c9da !important;border-radius:6px !important;background:#f1f5f9 !important;color:#24415c !important}
.users-table .user-action-row .user-danger{background:#fff1f1 !important;border-color:#e7bbbb !important;color:#a32626 !important}
@media(max-width:800px){.users-table{min-width:850px !important}}
.users-table .user-password-badge{white-space:normal !important;max-width:100% !important;box-sizing:border-box !important;font-size:10px !important;line-height:1.3 !important}
.users-table .user-action-row button{font-size:10px !important;line-height:1.25 !important}

/* C009 · document cells stay within their columns; labels remain complete. */
.crm-documents-table{table-layout:fixed!important;width:100%!important;min-width:720px}
.crm-documents-table th:nth-child(1){width:30%!important}
.crm-documents-table th:nth-child(2){width:12%!important}
.crm-documents-table th:nth-child(3){width:15%!important}
.crm-documents-table th:nth-child(4){width:16%!important}
.crm-documents-table th:nth-child(5){width:14%!important}
.crm-documents-table th:nth-child(6){width:13%!important}
#crmDocumentsRows td,#crmDocumentsRows td:first-child,#crmDocumentsRows .crm-document-name-link{white-space:normal!important;min-width:0!important;overflow-wrap:anywhere!important;word-break:normal!important}
#crmDocumentsRows .crm-document-name-link{display:block;max-width:100%;line-height:1.4}
#crmDocumentsRows .crm-document-actions{display:flex;flex-wrap:wrap;gap:6px}
#crmDocumentsRows .crm-document-actions button{white-space:nowrap!important;word-break:normal!important;min-width:64px;padding:8px 10px!important;width:auto!important}
.users-table .user-password-badge{white-space:nowrap!important;max-width:none!important;overflow-wrap:normal!important;word-break:normal!important;font-size:10px!important;padding:5px 7px!important}
.users-table th:nth-child(6){overflow-wrap:normal!important;word-break:normal!important}
.users-table th:nth-child(9),.users-table td:nth-child(9){width:9%!important}
.users-table th:nth-child(10),.users-table td:nth-child(10){width:12%!important}
#fieldOperationsApp .fo-create-btn{background:#0b3d91!important;border-color:#0b3d91!important;color:#fff!important}
#fieldOperationsApp .fo-create-btn:hover{background:#092e6e!important}

/* C009: consistent proposal values and a single alternative on one equipment page. */
#proposalDocPanelQty{font-size:21pt;line-height:1;font-weight:800;margin-top:7px;}
#proposalDocPage4 .v91-panel-specs strong{font-size:9.7pt !important;line-height:1.18;}
#proposalDocPage4 .v89-battery-spec strong,.v95-page4-cont .v89-battery-spec strong{font-size:10.4pt !important;line-height:1.15;}
#proposalDocPage4.proposal-single-option .v88-title-block{margin-bottom:12px;}
#proposalDocPage4.proposal-single-option .v88-summary-grid{margin-bottom:12px;}
#proposalDocPage4.proposal-single-option .v89-equipment-stack{gap:10px;}
#proposalDocPage4.proposal-single-option .v89-panel-card,#proposalDocPage4.proposal-single-option .v89-storage-card{padding:12px;}
#proposalDocPage4.proposal-single-option .v89-card-heading{margin-bottom:10px;}
#proposalDocPage4.proposal-single-option .v91-panel-specs>div{min-height:56px;padding:8px;}
#proposalDocPage4.proposal-single-option .v89-battery-spec{min-height:48px;padding:8px;}
#proposalDocPage4.proposal-single-option .v120-warranty-plus{margin-top:10px;padding:10px;}
#proposalDocPage4.proposal-single-option .v88-title-block{margin-top:20px !important;margin-bottom:8px !important;}
#proposalDocPage4.proposal-single-option .v88-summary-grid{margin-top:12px !important;margin-bottom:8px !important;}
#proposalDocPage4.proposal-single-option .v89-equipment-stack{margin-top:12px !important;}
#proposalDocPage4.proposal-single-option .v89-card-heading{margin-bottom:8px !important;}

/* Keep capacity/warranty cards centered and clause 11 together in screen/PDF flow. */
#proposalDocPage4 .v91-capacity-box,
#proposalDocPage4 .v91-warranty-box,
#proposalDocPage4 .v89-battery-spec.capacity,
#proposalDocPage4 .v89-battery-spec.warranty,
.v95-page4-cont .v89-battery-spec.capacity,
.v95-page4-cont .v89-battery-spec.warranty{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;}
.contract-sizing-section{break-inside:avoid;page-break-inside:avoid;}

/* Page ranges must stay intact in the final report contents table. */
.fo-report-toc-table>div{grid-template-columns:auto minmax(0,1fr) max-content;}
.fo-report-toc-table>div strong{white-space:nowrap;min-width:48px;font-variant-numeric:tabular-nums;}
