  /* System fonts — no external dependency */
  :root {
    /* Superficies — Carbon & Violet */
    --bg:#F6F5FF;
    --surface:#FFFFFF;
    --surface2:#EDEAFF;
    --border:#E8E4FF;
    --accent:#1C1633;

    /* Tipografía */
    --text:#1C1633;
    --muted:#7B7BA0;

    /* Acento principal: violeta */
    --red:#6C47FF;
    --red-light:#8B6BFF;
    --red-dark:#5233DD;
    --red-darker:#3D22B0;
    --red-muted:#9B7FFF;
    --red-tint:#EDEAFF;
    --red-border:#D4CCFF;

    /* Éxito: verde esmeralda fintech */
    --green:#00A87A;
    --green-dark:#007A58;
    --green-bright:#00C896;
    --green-tint:#D4F7EE;

    /* Info y secundarios */
    --blue:#3B6FFF;
    --blue-dark:#2452CC;
    --blue-tint:#EAF0FF;
    --indigo:#6C47FF;
    --amber:#B39DFF;
    --yellow:#9B7FFF;
    --yellow-tint:#EDEAFF;
    --orange:#8B6BFF;
    --orange-dark:#6C47FF;

    --serif:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
    --sans:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;
  }

/* ── DARK MODE ────────────────────────────────────────────── */
[data-theme="dark"] {
  --bg:#0F0D1A;
  --surface:#1A1730;
  --surface2:#221E38;
  --border:#2E2850;
  --accent:#1A1730;

  --text:#F0EEFF;
  --muted:#8B84B8;

  --red:#8B6BFF;
  --red-light:#A990FF;
  --red-dark:#6C47FF;
  --red-darker:#5233DD;
  --red-muted:#9B7FFF;
  --red-tint:#1E1A35;
  --red-border:#2E2850;

  --green:#00C896;
  --green-dark:#00A87A;
  --green-bright:#00E8B0;
  --green-tint:#082818;

  --blue:#5B8FFF;
  --blue-dark:#3B6FFF;
  --blue-tint:#0D1A3A;
  --indigo:#8B6BFF;
  --amber:#C4B0FF;
  --yellow:#9B7FFF;
  --yellow-tint:#1E1A35;
  --orange:#A990FF;
  --orange-dark:#8B6BFF;
}

/* Transición suave al cambiar tema */
body, .header, .tab-panel, .card, .moverlay, .anal-overlay,
.bottom-nav, .tabs-nav, .cred-card, .mmodal {
  transition: background-color 0.25s ease, border-color 0.25s ease, color 0.25s ease;
}

  *{box-sizing:border-box;margin:0;padding:0;}
  html{overflow-x:hidden;overflow-y:hidden;height:100%;}

/* ── SPA TAB TRANSITIONS ─────────────────────────────────── */
#tabs-container {
  position: relative;
  /* min-height holds space while all panels are position:absolute */
  min-height: 100dvh;
}

/* Prevent scrollbar flash during tab transitions */
body { overflow-x: hidden; }

/* ALL panels stay position:absolute at all times.
   CSS cannot animate position:absolute -> position:relative.
   Switching position kills the composited layer and prevents any transition. */
.tab-panel {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  min-height: 100%;
  opacity: 0;
  transform: scale(0.985);
  pointer-events: none;
  background: var(--bg);
  transition: opacity .35s cubic-bezier(.4,0,.2,1),
              transform .35s cubic-bezier(.4,0,.2,1);
  will-change: opacity, transform;
  overflow-y: visible;
  overflow-x: hidden;
}

.tab-panel.is-active {
  opacity: 1;
  transform: scale(1);
  pointer-events: auto;
  z-index: 2;
}

.tab-panel.is-init {
  /* Initial visible panel: no transition on first paint */
  transition: none;
}

.tab-panel.is-exit {
  opacity: 0;
  transform: scale(0.985);
  z-index: 1;
  pointer-events: none;
}


  /* ── iOS-STYLE TRANSITIONS ─────────────────────────────────── */
  /* Curva estándar iOS: ease-out suave */
  :root{
    --ease-out:cubic-bezier(0.25,0.46,0.45,0.94);
    --ease-spring:cubic-bezier(0.34,1.56,0.64,1);
    --ease-standard:cubic-bezier(0.4,0,0.2,1);
    --dur-fast:0.18s;
    --dur-mid:0.28s;
    --dur-slow:0.38s;
  }

  /* Tap feedback en todos los elementos interactivos */
  button,
  .chi, .r-chi, .calc-item, .cred-hdr,
  .anal-tab, .tab-btn, .bnav-btn,
  .btn-anal, .btn-icon, .btn-add,
  .calcular-btn, .r-si:not(.r-si-final):not([data-locked]) {
    -webkit-tap-highlight-color: transparent;
    transition: transform var(--dur-fast) var(--ease-out),
                opacity var(--dur-fast) var(--ease-out),
                background var(--dur-mid) var(--ease-out),
                border-color var(--dur-mid) var(--ease-out),
                box-shadow var(--dur-mid) var(--ease-out),
                color var(--dur-mid) var(--ease-out);
  }
  button:active,
  .chi:active, .r-chi:active, .calc-item:active, .cred-hdr:active,
  .btn-anal:active, .btn-icon:active, .btn-add:active,
  .calcular-btn:active {
    transform: scale(0.97);
    opacity: 0.85;
  }
  /* Tabs del stepper — spring al activar */
  .r-si:not(.r-si-final):not([data-locked]):active .r-sc {
    transform: scale(0.88);
  }



  /* Checkboxes r-chi — spring al completar */
  .r-chkb {
    transition: background var(--dur-mid) var(--ease-spring),
                border-color var(--dur-mid) var(--ease-spring),
                transform var(--dur-fast) var(--ease-spring) !important;
  }
  .r-chi.ck .r-chkb {
    transform: scale(1.15);
  }
  .r-chi.ck .r-chkb svg {
    animation: checkPop var(--dur-mid) var(--ease-spring) forwards;
  }
  @keyframes checkPop {
    from { transform: scale(0) rotate(-10deg); opacity: 0; }
    to   { transform: scale(1) rotate(0deg);  opacity: 1; }
  }

  /* Cards — lift suave al expandir */
  .cred-card {
    transition: box-shadow var(--dur-mid) var(--ease-out),
                transform var(--dur-mid) var(--ease-out) !important;
  }
  .cred-card:has(.cred-body-inner:not([style*="max-height: 0"])) {
    box-shadow: 0 4px 16px rgba(0,0,0,0.08);
  }

  /* Modal — animaciones definidas en bloque .moverlay */

  /* Semáforo pill — fade al cambiar estado */
  .sem {
    transition: background var(--dur-mid) var(--ease-out),
                color var(--dur-mid) var(--ease-out),
                border-color var(--dur-mid) var(--ease-out) !important;
  }

  /* Progress bars — ease-out suave */
  .prog-fill, #r-prog-fill, #fn-roi-bar-real, #fn-roi-bar-est,
  .pipe-track div, .dash-pip-fill {
    transition: width var(--dur-slow) var(--ease-out) !important;
  }

  /* Bottom nav — transición de color al cambiar tab */
  .bnav-btn svg {
    transition: opacity var(--dur-mid) var(--ease-out),
                transform var(--dur-mid) var(--ease-spring) !important;
  }
  .bnav-btn.active svg {
    transform: scale(1.08);
  }

  /* Previene zoom en iOS en todos los inputs — debe ser 16px mínimo */
  input:not([type="range"]), select, textarea { font-size: 16px !important; -webkit-text-size-adjust: 100%; }
  /* Overrides específicos */
  .rfield input, .rfield select, #anal-resumen .rfield input { font-size: 16px !important; }
  .atbl input.cell-input, .rfield-select,
  .login-input, .date-input, .search-cred-input, .filter-fase-sel { font-size: 16px !important; }
  /* Inputs de remodelación y servicios — más compactos */
  .remod-body input.remod-ci, .remod-body input.remod-ni { font-size: 13px !important; }
  body{background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:'cv02','cv03','cv04','cv11';overflow-x:hidden;scrollbar-gutter:stable;}

  /* HEADER */
  .header{background:var(--accent);padding:16px 24px 0;position:relative;}
  .header::after{content:'';position:absolute;right:-60px;top:-60px;width:200px;height:200px;border:40px solid rgba(108,71,255,0.2);border-radius:50%;pointer-events:none;}
  .logo-area{display:flex;align-items:center;gap:14px;margin-bottom:12px;}
  .logo-icon{width:42px;height:42px;background:#6C47FF;border-radius:8px;display:flex;align-items:center;justify-content:center;}
  .logo-icon svg{width:22px;height:22px;fill:white;}
  .logo-name{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:20px;font-weight:800;color:white;line-height:1;letter-spacing:-0.01em;}
  .logo-tag{font-size:10px;color:rgba(255,255,255,0.45);letter-spacing:0.18em;text-transform:uppercase;margin-top:3px;}
  .header-title{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:26px;color:white;font-weight:700;letter-spacing:-0.03em;}
  .header-title span{color:white;opacity:0.7;font-weight:300;}
  .header-sub{font-size:12px;color:rgba(255,255,255,0.4);margin-top:4px;margin-bottom:14px;}

  /* TABS */
  .tabs-nav{background:var(--accent);display:flex;border-top:1px solid rgba(255,255,255,0.08);}
  .tab-btn{padding:12px 20px;font-family:var(--sans);font-size:13px;font-weight:500;color:rgba(255,255,255,0.45);background:none;border:none;border-bottom:2px solid transparent;cursor:pointer;transition:color 0.2s,border-color 0.2s;letter-spacing:-0.01em;}
  .tab-btn:hover{color:rgba(255,255,255,0.75);}
  .tab-btn.active{color:white;border-bottom-color:#6C47FF;font-weight:600;}


  /* CONTENT */
  .content{max-width:680px;margin:0 auto;padding:24px 18px 60px;}

  /* CARD */
  .card{background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:20px;margin-bottom:14px;box-shadow:0 1px 3px rgba(0,0,0,0.03);}
  .card-title{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:14px;font-weight:600;color:var(--accent);margin-bottom:14px;padding-bottom:10px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:8px;letter-spacing:-0.02em;}
  .card-title::before{content:'';width:3px;height:16px;background:var(--red);border-radius:2px;display:inline-block;}

  /* FORM */
  .input-label{font-size:11px;color:var(--muted);letter-spacing:0.04em;text-transform:uppercase;display:block;margin-bottom:7px;font-weight:600;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;}
  .date-input{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 16px;color:var(--text);font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:16px;font-weight:600;outline:none;}
  .date-input:focus{border-color:#6C47FF;}
  .params-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin-top:12px;}
  .param-item{background:var(--surface2);border:1px solid var(--border);border-radius:10px;padding:12px 14px;transition:border-color 0.15s;}  .param-item:focus-within{border-color:var(--red);}
  .param-item label{font-size:10px;color:var(--muted);letter-spacing:0.08em;text-transform:uppercase;display:block;margin-bottom:5px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:700;}
  .param-item input{width:100%;background:transparent;border:none;color:var(--red);font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:20px;font-weight:700;outline:none;letter-spacing:-0.03em;}
  .nota-info{background:var(--red-tint);border:1px solid var(--red-border);border-radius:8px;padding:10px 13px;font-size:12px;color:var(--red);margin-top:10px;line-height:1.5;}
  .gold-line{height:1px;background:linear-gradient(90deg,var(--red),transparent);margin:16px 0;opacity:0.2;}
  .calcular-btn{width:100%;margin-top:16px;padding:14px;background:#6C47FF;color:white;border:none;border-radius:10px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px;transition:all 0.15s;letter-spacing:0.02em;}
  .calcular-btn:hover{background:#2A1F4A;}

  /* RESULTADO */
  .resultado{display:none;}
  .resultado.visible{display:block;}
  .cobro-hero{background:var(--accent);border-radius:12px;padding:26px 20px;margin-bottom:14px;text-align:center;}
  .cobro-etq{font-size:10px;color:rgba(255,255,255,0.45);letter-spacing:0.2em;text-transform:uppercase;margin-bottom:8px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:600;}
  .cobro-fecha{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:28px;color:white;font-weight:800;margin-bottom:4px;letter-spacing:-0.03em;}
  .cobro-sub{font-size:12px;color:rgba(255,255,255,0.4);font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:500;}
  .alerta{background:var(--red-tint);border:1px solid var(--red-border);border-radius:8px;padding:10px 13px;font-size:12px;color:var(--red);margin-bottom:12px;display:none;}
  .alerta.visible{display:block;}

  /* TIMELINE */
  .tl{display:flex;flex-direction:column;}
  .fase{display:flex;gap:12px;position:relative;}
  .fase:not(:last-child) .fl{position:absolute;left:17px;top:34px;bottom:0;width:1px;background:var(--border);}
  .fl-wrap{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:34px;}
  .fd{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:500;flex-shrink:0;border:1.5px solid;position:relative;z-index:1;background:var(--surface);}
  .fc{padding:5px 0 22px;flex:1;}
  .fn{font-size:13px;font-weight:500;margin-bottom:2px;}
  .ff{font-size:12px;color:var(--red);font-weight:700;margin-bottom:2px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;}
  .fd-det{font-size:11px;color:var(--muted);line-height:1.5;}
  .dv{color:var(--green);border-color:var(--green);}
  .dg{color:var(--red);border-color:var(--red);}
  .dm{color:var(--muted);border-color:var(--border);}
  .dc{background:var(--red)!important;color:white!important;border-color:var(--red)!important;}
  .esp-badge{display:inline-block;background:var(--surface2);border:1px solid var(--border);border-radius:20px;padding:3px 10px;font-size:11px;color:var(--muted);margin-top:6px;}

  /* CREDITOS */
  /* ── CARD NUEVA — imagen protagonista ── */
  .cred-card{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin-bottom:14px;overflow:hidden;transition:border-color 0.15s,transform 0.12s,box-shadow 0.12s;cursor:pointer;display:flex;flex-direction:column;}
  .cred-card:hover{transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.08);}
  .cred-card:active{transform:scale(0.98);}
  .cred-accent{display:none;}
  .cred-inner{flex:1;min-width:0;}

  /* Imagen hero */
  .cred-img-wrap{position:relative;width:100%;height:180px;background:#f0f0f0;overflow:hidden;flex-shrink:0;}
  .cred-img-wrap img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block;transition:transform 0.3s ease, object-position 0.4s ease;}
  .cred-card:hover .cred-img-wrap img{transform:scale(1.03);}
  .cred-img-placeholder{width:100%;height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:8px;color:var(--muted);}
  .cred-img-placeholder svg{opacity:0.3;}
  .cred-img-placeholder span{font-size:11px;opacity:0.5;}

  /* Badge semáforo sobre la imagen */
  .cred-sem-badge{position:absolute;top:10px;left:10px;display:flex;align-items:center;gap:5px;padding:4px 10px;border-radius:99px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-size:11px;font-weight:600;border:1px solid rgba(255,255,255,0.2);}
  .cred-card.sem-verde .cred-sem-badge{background:rgba(0,168,122,0.85);color:white;}
  .cred-card.sem-amber .cred-sem-badge{background:rgba(245,158,11,0.85);color:white;}
  .cred-card.sem-rojo  .cred-sem-badge{background:rgba(255,77,106,0.85);color:white;}
  .cred-card.sem-gris  .cred-sem-badge{background:rgba(100,90,130,0.75);color:white;}

  /* Botones sobre imagen */
  .cred-img-actions{position:absolute;top:10px;right:10px;display:flex;gap:6px;}
  .cred-img-btn{width:32px;height:32px;border-radius:50%;background:rgba(255,255,255,0.92);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;color:#1C1633;transition:background .15s;}
  .cred-img-btn:hover{background:white;}
  .cred-img-btn.danger:hover{background:#FF4D6A;color:white;}

  /* Cuerpo inferior */
  .cred-hdr{display:flex;flex-direction:column;padding:14px 16px 0;user-select:none;}
  .cred-nombre{font-size:16px;font-weight:700;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;letter-spacing:-0.02em;margin-bottom:2px;}
  .cred-meta{font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .cred-gan{font-size:12px;color:var(--green);font-weight:500;margin-top:3px;}
  .cred-cobro{font-size:12px;color:var(--indigo);font-weight:500;margin-top:3px;}
  /* Semaforo badge */
  .sem{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;border-radius:20px;font-size:10px;font-weight:600;white-space:nowrap;letter-spacing:0.04em;text-transform:uppercase;}
  .sv{background:var(--green-tint);color:var(--green);}.sa{background:var(--yellow-tint);color:var(--orange);}.sr{background:var(--red-tint);color:var(--red-dark);}.sg{background:var(--surface2);color:var(--muted);}
  .sd{width:6px;height:6px;border-radius:50%;flex-shrink:0;}
  .sv .sd{background:var(--green);}.sa .sd{background:var(--orange);}.sr .sd{background:var(--red-dark);}.sg .sd{background:var(--muted);}
  /* Datos financieros en fila */
  .cred-fin-row{display:flex;gap:0;border-top:1px solid var(--border);margin-top:12px;}
  .cred-fin-col{flex:1;padding:10px 14px;display:flex;flex-direction:column;gap:2px;}
  .cred-fin-col:not(:last-child){border-right:1px solid var(--border);}
  .cred-fin-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:0.08em;font-weight:500;}
  .cred-fin-val{font-size:14px;font-weight:700;letter-spacing:-0.02em;}
  /* Fases con círculos — siempre visible */
  .fases-stepper{display:flex;align-items:flex-start;padding:11px 14px 10px;gap:0;}
  .fase-step-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;}
  .fase-step-item:not(:last-child)::after{content:'';position:absolute;top:10px;left:calc(50% + 10px);right:calc(-50% + 10px);height:1.5px;background:var(--border);}
  .fase-step-item.done-step:not(:last-child)::after{background:var(--red);}
  .fase-circle{width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;border:1.5px solid var(--border);color:var(--muted);background:var(--surface);flex-shrink:0;position:relative;z-index:1;}
  .fase-circle.done{background:var(--red);border-color:var(--red);color:white;}
  .fase-circle.active{background:var(--surface);border-color:var(--red);border-width:2px;color:var(--red);}
  .fase-step-name{font-size:8px;color:var(--muted);text-align:center;line-height:1.3;font-weight:500;max-width:44px;}
  .fase-step-name.active-name{color:var(--red);font-weight:700;}
  /* Checks visibles en la tarjeta (fase actual) */
  .card-checks{padding:0 14px 12px;}
  .card-checks-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:0.12em;font-weight:700;margin-bottom:6px;}
  .chi{display:flex;align-items:center;gap:10px;padding:7px 10px;border-radius:8px;background:var(--surface2);cursor:pointer;user-select:none;transition:background 0.12s;margin-bottom:4px;}
  .chi:last-child{margin-bottom:0;}
  .chi:hover{background:var(--border);}
  .chbox{width:18px;height:18px;border:1.5px solid var(--border);border-radius:5px;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all 0.15s;}
  .chi.done .chbox{background:var(--green);border-color:var(--green);}
  .chi.done .chbox::after{content:'';width:4px;height:7px;border:2px solid white;border-top:none;border-left:none;transform:rotate(45deg) translate(-1px,-1px);display:block;}
  .chi.done .chlbl{text-decoration:line-through;color:var(--muted);}
  .chlbl{font-size:12px;font-weight:500;}
  /* Actions footer */
  .cred-footer{display:flex;gap:8px;align-items:center;padding:10px 14px 14px;border-top:1px solid var(--border);}
  /* Body expandible (datos extra) */
  .cred-body-inner{padding:0 16px 16px;}
  /* Info chips row */
  .info-chips{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:14px;}
  .chip{display:inline-flex;align-items:center;gap:4px;background:var(--surface2);border-radius:8px;padding:5px 10px;font-size:11px;color:var(--muted);}
  .chip strong{color:var(--text);font-weight:600;}
  .chip.green{background:var(--green-tint);color:var(--green);}
  .chip.amber{background:var(--yellow-tint);color:var(--amber);}
  .chip.blue{background:var(--blue-tint);color:var(--blue);}
  /* Checklist (body expandible - info extra) */
  .fase-lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:8px;font-weight:700;}
  .chklist{display:flex;flex-direction:column;gap:4px;margin-bottom:14px;}
  /* Actions */
  .cred-actions{display:flex;gap:8px;align-items:center;}
  .btn-anal{flex:1;padding:10px 14px;background:var(--accent);color:white;border:none;border-radius:10px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:6px;transition:background 0.15s;letter-spacing:-0.01em;}
  .btn-anal:hover{background:#2A1F4A;}
  .btn-anal .gan-badge{font-size:11px;font-weight:500;opacity:0.6;}
  .btn-icon{width:34px;height:34px;border-radius:8px;border:1px solid var(--border);background:var(--surface);color:var(--muted);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all 0.12s;flex-shrink:0;}
  .btn-icon:hover{background:var(--surface2);color:var(--text);}
  .btn-icon.danger:hover{background:var(--red-tint);border-color:var(--red-border);color:var(--red);}
  .bsm{padding:5px 12px;border-radius:6px;font-size:12px;font-family:var(--sans);cursor:pointer;border:1px solid var(--border);background:var(--surface2);color:var(--text);}
  .bsm:hover{background:var(--border);}
  .bdng{color:var(--red);border-color:var(--red-border);}
  .bdng:hover{background:var(--red-tint)!important;}
  .btn-add{
    width:100%;padding:13px;
    border:none;border-radius:13px;
    background:linear-gradient(135deg,#6C47FF 0%,#9B7FFF 100%);
    color:#fff;font-family:var(--sans);font-size:13px;font-weight:700;
    cursor:pointer;letter-spacing:-.01em;
    display:flex;align-items:center;justify-content:center;gap:7px;
    box-shadow:0 4px 16px rgba(108,71,255,0.28);
    transition:transform .12s,box-shadow .12s,opacity .12s;
  }
  .btn-add:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(108,71,255,0.4);}
  .btn-add:active{transform:translateY(0);box-shadow:0 3px 10px rgba(108,71,255,0.25);}
  .empty-st{text-align:center;color:var(--muted);padding:40px;font-size:13px;line-height:1.7;}

  /* MODAL */
  .moverlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,0);z-index:300;align-items:center;justify-content:center;padding:18px;transition:background .25s;}
  .moverlay.open{display:flex;background:rgba(0,0,0,0.5);}
  .moverlay.closing{pointer-events:none;background:rgba(0,0,0,0);}
  .modal{background:var(--surface);border-radius:16px;padding:22px 20px 20px;width:100%;max-width:400px;box-shadow:0 8px 40px rgba(0,0,0,0.18);max-height:90vh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
  .moverlay.open .modal{animation:modalIn .28s cubic-bezier(.22,1,.36,1) forwards;}
  .moverlay.closing .modal{animation:modalOut .22s cubic-bezier(.4,0,1,1) forwards;}
  @keyframes modalIn{from{transform:translateY(18px) scale(0.97);opacity:0;}to{transform:translateY(0) scale(1);opacity:1;}}
  @keyframes modalOut{from{transform:translateY(0) scale(1);opacity:1;}to{transform:translateY(14px) scale(0.97);opacity:0;}}
  .modal h3{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:17px;margin-bottom:16px;}
  .mf{margin-bottom:12px;}
  .mf label{font-size:11px;color:var(--muted);letter-spacing:0.06em;text-transform:uppercase;display:block;margin-bottom:5px;font-weight:600;}
  .mf input,.mf select,.mf textarea{width:100%;padding:10px 12px;border:1px solid var(--border);border-radius:8px;font-family:var(--sans);font-size:16px;background:var(--surface2);color:var(--text);outline:none;transition:border-color 0.15s;}
  .mf input:focus,.mf select:focus,.mf textarea:focus{border-color:#6C47FF;background:var(--surface);}
  .mbtns{display:flex;gap:8px;margin-top:16px;}
  .mbtns button{flex:1;padding:11px;border-radius:8px;font-family:var(--sans);font-size:14px;font-weight:600;cursor:pointer;}
  .bguard{background:#6C47FF;color:white;border:none;}
  .bguard:hover{background:#5233DD;}
  .bcanc{background:var(--surface2);color:var(--muted);border:1px solid var(--border);}
  .bcanc:hover{background:var(--border);}

  /* KPI STRIP TOP */


  /* URGENCY PILL */
  .urg-pill{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;white-space:nowrap;}
  .urg-red{background:rgba(226,75,74,0.2);color:#F09595;}
  .urg-amber{background:rgba(184,135,42,0.2);color:var(--red-light);}
  .urg-gray{background:rgba(255,255,255,0.1);color:rgba(255,255,255,0.45);}
  /* TAREA ROW TAP */
  .tarea-row-tap{cursor:pointer;transition:background 0.15s,transform 0.12s;}
  .tarea-row-tap:hover{background:rgba(255,255,255,0.05);}
  .tarea-row-tap:active{background:rgba(255,255,255,0.1);transform:scale(0.985);}
  .tarea-row-tap.tapped{animation:tapFlash 0.32s ease;}
  @keyframes tapFlash{0%{background:rgba(255,255,255,0);}30%{background:rgba(255,255,255,0.12);}100%{background:rgba(255,255,255,0);}}

  /* DASHBOARD NUEVO */
  .dash-metric{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 12px;text-align:center;}
  .dash-metric-val{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:26px;font-weight:800;color:var(--red);line-height:1;margin-bottom:4px;letter-spacing:-0.03em;}
  .dash-metric-lbl{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:0.1em;font-weight:600;}
  .pipe-row{display:flex;align-items:center;gap:10px;padding:9px 0;border-bottom:1px solid var(--border);}
  .pipe-row:last-child{border-bottom:none;}
  .pipe-fase{font-size:11px;color:var(--muted);width:130px;flex-shrink:0;font-weight:500;}
  .pipe-bar-wrap{flex:1;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;}
  .pipe-bar{height:100%;border-radius:4px;background:linear-gradient(90deg,#6C47FF,#8B6BFF);transition:width 0.6s cubic-bezier(.4,0,.2,1);}
  .pipe-count{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;font-weight:700;color:var(--text);width:20px;text-align:right;flex-shrink:0;}
  .pipe-names{font-size:10px;color:var(--muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}

  /* NEGOCIO legacy (mantener por si algo lo usa) */
  .neg-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:14px;}
  .neg-st{background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:18px 16px;position:relative;overflow:hidden;}
  .neg-st::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,#6C47FF,#8B6BFF);}
  .neg-st .val{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:30px;font-weight:700;color:var(--red);line-height:1;margin-bottom:4px;letter-spacing:-0.03em;}
  .neg-st .lbl{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.12em;font-weight:500;}
  .sl-row{margin-bottom:13px;}
  .sl-row label{font-size:12px;color:var(--muted);display:block;margin-bottom:5px;}
  .sl-row input[type=range]{width:100%;accent-color:var(--red);}
  .urows{margin-top:12px;}
  .urow{display:flex;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;}
  .urow:last-child{border-bottom:none;font-weight:600;font-size:14px;padding-top:11px;}
  .urow .ul{color:var(--muted);}
  .cg{color:var(--green);font-weight:500;}.cr{color:var(--red);font-weight:500;}
  .prog-bar{background:var(--surface2);border-radius:8px;height:9px;overflow:hidden;margin:8px 0;}
  .prog-fill{height:100%;background:#6C47FF;border-radius:8px;transition:width 0.3s;}
  .prog-lbls{display:flex;justify-content:space-between;font-size:11px;color:var(--muted);}
  .proy-box{margin-top:11px;padding:11px 13px;background:var(--surface2);border-radius:8px;font-size:12px;color:var(--muted);line-height:1.5;}
  .calc-item{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:16px 18px;margin-bottom:10px;cursor:pointer;transition:border-color 0.15s,box-shadow 0.15s;display:flex;align-items:center;justify-content:space-between;gap:12px;}
  .calc-item:hover{border-color:var(--red);box-shadow:0 2px 8px rgba(184,135,42,0.12);}
  .calc-item-info .nombre{font-size:14px;font-weight:500;margin-bottom:3px;}
  .calc-item-info .meta{font-size:12px;color:var(--muted);}
  .calc-item-info .cobro{font-size:12px;color:var(--indigo);font-weight:500;margin-top:2px;}
  .calc-arrow{color:var(--muted);font-size:18px;flex-shrink:0;}

  /* ANALISIS */
  .anal-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--bg);z-index:1100;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:0 0 60px;opacity:0;transform:translateY(8px);}
  .anal-overlay.open{display:block;animation:overlayIn .2s cubic-bezier(.22,1,.36,1) forwards;}
  @keyframes overlayIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}
  @keyframes overlayOut{from{opacity:1;transform:translateY(0);}to{opacity:0;transform:translateY(6px);}}
  .anal-safe-spacer{display:none;}
  .anal-header{background:#1C1633;padding:12px 20px;padding-top:calc(env(safe-area-inset-top, 48px) + 12px);display:flex;align-items:center;gap:14px;position:sticky;top:0;z-index:10;}
  .anal-header h2{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:20px;color:white;font-weight:700;flex:1;letter-spacing:-0.01em;}
  .anal-header .sub{font-size:11px;color:rgba(255,255,255,0.45);margin-top:2px;}
  .anal-back{background:rgba(255,255,255,0.12);color:white;border:none;border-radius:6px;padding:7px 14px;font-family:var(--sans);font-size:12px;cursor:pointer;}
  .anal-back:hover{background:rgba(255,255,255,0.2);}
  .anal-body{max-width:620px;margin:0 auto;padding:16px 16px;}
  .anal-tabs{display:flex;gap:4px;margin-bottom:16px;background:var(--surface2);border-radius:10px;padding:4px;}
  .anal-tab{flex:1;padding:8px;text-align:center;font-size:12px;font-weight:500;border-radius:7px;cursor:pointer;border:none;background:none;color:var(--muted);transition:all 0.15s;}
  .anal-tab.active{background:var(--surface);color:var(--accent);box-shadow:0 1px 4px rgba(0,0,0,0.08);}
  .anal-section{
    display:block;
    opacity:0;
    transform:translateY(10px) scale(0.985);
    pointer-events:none;
    position:absolute;
    top:0;left:0;right:0;
    transition:opacity 0.28s cubic-bezier(.4,0,.2,1),
               transform 0.28s cubic-bezier(.4,0,.2,1);
    will-change:opacity,transform;
  }
  .anal-section.active{
    opacity:1;
    transform:translateY(0) scale(1);
    pointer-events:auto;
    position:relative;
  }
  .anal-section.is-exit{
    opacity:0;
    transform:translateY(-8px) scale(0.985);
    pointer-events:none;
  }
  .anal-sections-wrap{position:relative;}

  /* Tablas de análisis */
  .atbl{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:16px;}
  .atbl th{background:var(--accent);color:white;padding:8px 12px;text-align:left;font-weight:500;font-size:12px;}
  .atbl td{padding:8px 12px;border-bottom:1px solid var(--border);}
  .atbl tr:last-child td{border-bottom:none;}
  .atbl tr.total td{font-weight:600;background:var(--surface2);}
  .atbl tr.subtotal td{font-weight:500;background:var(--red-tint);}
  .atbl input.cell-input{background:transparent;border:none;outline:none;font-family:var(--sans);font-size:13px;width:100%;color:var(--text);}
  .atbl input.cell-input:focus{background:rgba(184,135,42,0.06);border-radius:3px;}
  .atbl input.cell-num{text-align:right;}

  /* ── NUEVO DISEÑO REMODELACIÓN ── */
  .remod-hero{background:var(--accent);border-radius:16px 16px 0 0;padding:18px 20px 14px;position:relative;overflow:hidden;display:flex;align-items:flex-end;justify-content:space-between;gap:16px;}
  .remod-hero::after{content:'';position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;border:22px solid rgba(255,255,255,.1);pointer-events:none;}
  .remod-hero-eyebrow{font-size:9px;color:rgba(255,255,255,.4);letter-spacing:.18em;text-transform:uppercase;font-weight:700;margin-bottom:4px;}
  .remod-hero-total{font-size:38px;font-weight:800;color:#fff;letter-spacing:-.04em;line-height:1;font-variant-numeric:tabular-nums;}
  .remod-hero-pill{display:inline-flex;align-items:center;gap:5px;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:4px 10px;font-size:10px;font-weight:700;color:rgba(255,255,255,.7);}
  .remod-dist-wrap{background:var(--accent);padding:0 20px 14px;}
  .remod-dist-bar{display:flex;gap:3px;height:6px;border-radius:4px;overflow:hidden;}
  .remod-seg{height:100%;transition:flex .5s cubic-bezier(.22,1,.36,1);}
  .remod-body{background:var(--surface);border:1.5px solid var(--border);border-top:none;border-radius:0 0 16px 16px;overflow:hidden;margin-bottom:0;}
  .remod-legend{display:flex;gap:14px;padding:10px 16px;border-bottom:1.5px solid var(--border);flex-wrap:wrap;}
  .remod-legend-dot{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:600;color:var(--text);}
  .remod-col-hdr{display:grid;grid-template-columns:1fr 158px 36px;padding:7px 16px;background:var(--surface2);border-bottom:1.5px solid var(--border);}
  .remod-ch{font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);}
  .remod-ch.r{text-align:right;}
  .remod-grp-hdr{display:flex;align-items:center;justify-content:space-between;padding:8px 14px 7px 14px;background:var(--surface2);border-bottom:1px solid var(--border);border-top:1.5px solid var(--border);}
  .remod-grp-name{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);display:flex;align-items:center;gap:7px;}
  .remod-grp-sum{font-size:12px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums;}
  .remod-row{display:flex;align-items:stretch;border-bottom:1px solid var(--border);transition:background .12s;min-width:0;}
  .remod-row .remod-check-wrap{flex-shrink:0;}
  .remod-row .remod-cell{flex:1;min-width:0;}
  .remod-row .remod-del{flex-shrink:0;}
  .remod-drag-handle{display:flex;align-items:center;justify-content:center;cursor:grab;color:var(--text-secondary);opacity:.3;font-size:11px;padding:0 4px;user-select:none;touch-action:none;flex-shrink:0;}
  .remod-drag-handle:hover{opacity:.7;}
  .remod-drag-handle:active{cursor:grabbing;}
  .remod-row.dragging{opacity:.4;border:1.5px dashed #6C47FF;border-radius:6px;}
  .mdo-adelanto-row{border-top:1px solid var(--border);background:rgba(108,71,255,0.03);}
  .mdo-adelanto-inner{display:flex;align-items:center;justify-content:space-between;padding:5px 8px 5px 4px;gap:8px;}
  .mdo-adelanto-left{display:flex;align-items:center;gap:6px;flex:1;min-width:0;}
  .mdo-adelanto-arrow{font-size:12px;color:#6C47FF;opacity:.5;flex-shrink:0;}
  .mdo-adelanto-ci{flex:1;min-width:0;font-size:11px!important;color:var(--text-secondary);border:none;background:transparent;outline:none;padding:0;}
  .mdo-adelanto-ci::placeholder{color:var(--text-secondary);opacity:.5;}
  .mdo-adelanto-right{display:flex;align-items:center;gap:6px;flex-shrink:0;}
  .mdo-adelanto-ni{width:72px;font-size:12px!important;font-weight:500;text-align:right;color:var(--text-primary);border:none;background:transparent;outline:none;padding:0;}
  .mdo-adelanto-del{font-size:13px;color:var(--text-secondary);background:none;border:none;cursor:pointer;padding:0 2px;opacity:.4;line-height:1;transition:opacity .15s;}
  .mdo-adelanto-del:hover{opacity:.8;}
  .mdo-adelanto-add{padding:4px 8px;}
  .mdo-adelanto-add button{font-size:11px;color:#6C47FF;background:none;border:1px dashed rgba(108,71,255,0.4);border-radius:4px;cursor:pointer;padding:2px 8px;opacity:.8;transition:all .15s;}
  .mdo-adelanto-add button:hover{opacity:1;background:rgba(108,71,255,0.06);}
  .mdo-rest-lbl,.mdo-rest-val{display:block;}
  .remod-mat-cols{display:flex;align-items:center;flex-shrink:0;border-left:0.5px solid var(--border);}
  .remod-mat-col{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 10px;border-right:0.5px solid var(--border);}
  .remod-mat-col-label{font-size:9px;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;white-space:nowrap;opacity:.7;}
  .remod-mat-col input{font-size:14px!important;font-weight:500;text-align:center;border:none;background:transparent;outline:none;color:var(--text-primary);padding:0;}
  .remod-mat-col-total{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;padding:6px 10px;}
  .remod-mat-col-total input{font-size:14px!important;font-weight:500;text-align:right;border:none;background:transparent;outline:none;color:var(--text-primary);padding:0;width:80px;}
  .remod-mat-sep{padding:0 5px;color:var(--text-secondary);font-size:11px;flex-shrink:0;opacity:.6;}
  /* Checkbox pagado */
  .remod-check-wrap{display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0 4px;}
  .remod-check-wrap input[type=checkbox]{display:none;}
  .remod-check-box{width:17px;height:17px;border-radius:5px;border:2px solid var(--border);background:transparent;display:flex;align-items:center;justify-content:center;transition:all .18s;flex-shrink:0;}
  .remod-check-box::after{content:'';display:block;width:5px;height:9px;border:2px solid #fff;border-top:none;border-left:none;transform:rotate(45deg) scale(0);transition:transform .15s cubic-bezier(.22,1,.36,1);margin-top:-2px;}
  .remod-paid-chk:checked ~ .remod-check-box{background:#00C896;border-color:#00C896;}
  .remod-paid-chk:checked ~ .remod-check-box::after{transform:rotate(45deg) scale(1);}
  /* Fila pagada */
  .row-pagado .remod-ci,.row-pagado .remod-ni{color:var(--muted)!important;text-decoration:line-through;opacity:.6;}
  .row-pagado{background:rgba(0,200,150,0.04);}
  .remod-row:hover{background:var(--surface2);}
  .remod-row:focus-within{background:var(--red-tint);}
  .remod-cell{padding:8px 8px 8px 14px;}
  .remod-ci{width:100%;background:transparent;border:none;outline:none;font-family:var(--sans);font-size:13px !important;color:var(--text);font-weight:500;}
  .remod-ci::placeholder{color:var(--muted);font-weight:400;}
  .remod-ci:focus{color:var(--red);}
  .remod-nc{padding:8px 8px;text-align:right;}
  .remod-ni{width:100%;background:transparent;border:none;outline:none;font-family:var(--sans);font-size:13px !important;color:var(--text);font-weight:700;text-align:right;font-variant-numeric:tabular-nums;}
  .remod-ni:focus{color:var(--red);}
  .remod-del{width:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--muted);background:transparent;border:none;padding:0 4px;transition:color .15s;}
  .remod-del:hover{color:#E11D48;}
  .remod-del svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2;}
  .remod-grp-add{width:100%;display:flex;align-items:center;gap:7px;padding:7px 14px;background:transparent;border:none;border-top:1px dashed var(--border);font-family:var(--sans);font-size:11px;font-weight:700;cursor:pointer;transition:background .15s,color .15s;}
  .remod-grp-add:hover{background:var(--red-tint);}
  .remod-grp-add svg{width:13px;height:13px;stroke:currentColor;fill:none;stroke-width:2.5;flex-shrink:0;}
  .remod-new-grp{border-bottom:1px solid var(--border);}
  .remod-new-hdr{display:flex;align-items:stretch;min-height:48px;}
  .remod-new-bar{width:4px;flex-shrink:0;}
  .remod-new-info{flex:1;display:flex;flex-direction:column;justify-content:center;padding:8px 12px;background:var(--surface2);}
  .remod-new-name{font-size:9px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:2px;}
  .remod-new-total{font-size:16px;font-weight:800;letter-spacing:-.02em;color:var(--text);line-height:1;font-variant-numeric:tabular-nums;}
  .remod-new-right{display:flex;flex-direction:column;align-items:flex-end;justify-content:center;gap:3px;padding:8px 12px;background:var(--surface2);}
  .remod-new-pct{font-size:10px;font-weight:700;padding:2px 7px;border-radius:20px;}
  .remod-new-count{font-size:10px;color:var(--muted);}
  .remod-new-progress{height:2px;background:var(--border);}
  .remod-new-fill{height:100%;transition:width .5s cubic-bezier(.22,1,.36,1);}
  .remod-row.new-row{animation:remodRowIn .2s cubic-bezier(.22,1,.36,1);}
  .resumen-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px;}
  .resumen-box{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:14px;}
  .resumen-box h4{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:0.1em;margin-bottom:10px;font-weight:500;}
  .rfield{display:flex;justify-content:space-between;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);gap:12px;}
  .rfield:last-child{border-bottom:none;}
  .rfield label{color:var(--muted);font-size:12px;font-weight:400;letter-spacing:.01em;text-transform:none;flex-shrink:0;}
  .rfield input{background:transparent;border:none;outline:none;font-family:var(--sans);font-size:15px !important;text-align:right;width:auto;max-width:100%;flex:1;min-width:0;color:var(--text);font-weight:600;letter-spacing:-.02em;}
  .rfield input:focus{background:rgba(184,135,42,0.06);border-radius:3px;}
  .resultado-box{background:var(--accent);border-radius:14px;padding:20px 18px;color:white;margin-bottom:16px;position:relative;overflow:hidden;}  .resultado-box::after{content:'';position:absolute;right:-20px;top:-20px;width:100px;height:100px;border:20px solid rgba(255,255,255,0.06);border-radius:50%;}
  .resultado-box .label{font-size:10px;opacity:0.5;text-transform:uppercase;letter-spacing:0.15em;margin-bottom:6px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:700;}
  .resultado-box .valor{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:38px;font-weight:800;color:white;letter-spacing:-0.04em;line-height:1;margin-bottom:6px;}
  .resultado-box .sub{font-size:12px;opacity:0.55;margin-top:4px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-weight:500;line-height:1.5;}
  .semaforo-box{padding:10px 14px;border-radius:8px;font-size:13px;font-weight:500;margin-bottom:14px;text-align:center;}
  .sem-excelente{background:var(--green-tint);color:var(--green-dark);}
  .sem-bueno{background:var(--blue-tint);color:var(--blue-dark);}
  .sem-regular{background:var(--yellow-tint);color:var(--orange-dark);}
  .sem-revisar{background:var(--red-tint);color:var(--red-darker);}
  .distribucion-row{display:flex;align-items:center;padding:7px 0;border-bottom:1px solid var(--border);font-size:13px;}
  .distribucion-row:last-child{border-bottom:none;}
  .dist-label{width:130px;flex-shrink:0;font-size:12px;color:var(--text);}
  .dist-bar-wrap{flex:1;margin:0 10px;height:8px;background:var(--surface2);border-radius:4px;overflow:hidden;}
  .dist-bar{height:100%;border-radius:4px;background:var(--red);}
  .dist-val{width:75px;flex-shrink:0;font-size:12px;font-weight:500;text-align:right;}
  .save-btn{width:100%;padding:12px;background:var(--red);color:white;border:none;border-radius:8px;font-family:var(--sans);font-size:13px;font-weight:500;cursor:pointer;margin-top:4px;}
  .doc-item{display:flex;align-items:center;gap:10px;padding:10px 12px;background:var(--surface2);border:1px solid var(--border);border-radius:8px;margin-bottom:8px;}
  .doc-icon{width:32px;height:32px;border-radius:6px;background:var(--red);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:14px;color:white;font-weight:700;}
  .doc-info{flex:1;}
  .doc-nombre{font-size:13px;font-weight:500;color:var(--text);}
  .doc-archivo{font-size:11px;color:var(--muted);margin-top:1px;}
  .doc-status{font-size:11px;padding:2px 8px;border-radius:10px;font-weight:500;}
  .doc-ok{background:var(--green-tint);color:var(--green);}
  .doc-pend{background:var(--yellow-tint);color:var(--orange);}
  .doc-upload{display:none;}
  .doc-upload-btn{font-size:11px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--muted);cursor:pointer;font-family:var(--sans);}
  .doc-upload-btn:hover{border-color:var(--red);color:var(--red);}
  .save-btn:hover{background:var(--red-dark);}
  .toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--accent);color:white;padding:10px 20px;border-radius:8px;font-size:13px;font-family:var(--sans);z-index:999;opacity:0;transition:opacity 0.3s;pointer-events:none;}
  .toast.show{opacity:1;}
  @media(min-width:800px){
    #login-left-panel{display:flex!important;}
    #login-overlay > div:first-child > div:last-child{display:none!important;}
    #login-overlay{align-items:center!important;}
    #login-overlay > div:last-child{border-radius:28px!important;max-width:420px!important;width:420px!important;margin:20px!important;align-self:auto!important;}
  }

  /* ======= RESPONSIVE MÓVIL ======= */
  

  
  @media(max-width:600px){


    /* Header */
    .header{padding:16px 16px 0;}
    .header-title{font-size:20px;}
    .logo-name{font-size:17px;}
    .logo-icon{width:36px;height:36px;}

    /* Tabs — ocupan todo el ancho */
    .tabs-nav{overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;}
    .tabs-nav::-webkit-scrollbar{display:none;}
    .tab-btn{padding:12px 16px;font-size:12px;white-space:nowrap;flex:1;text-align:center;}

    /* Content */
    .content{padding:16px 12px 80px;}

    /* Cards */
    .card{padding:16px 14px;border-radius:12px;}
    .card-title{font-size:13px;}

    /* Params grid — 1 columna en móvil muy pequeño */
    .params-grid{grid-template-columns:1fr 1fr;}
    .param-item input{font-size:18px;}

    /* Fecha input — evitar zoom en iOS */
    .date-input{font-size:16px;}

    /* Semáforo badge — texto más corto */
    .sem{font-size:9px;padding:3px 7px;max-width:160px;overflow:hidden;text-overflow:ellipsis;flex-shrink:1;}

    /* Header de tarjeta crédito */
    .cred-hdr{padding:13px 14px 11px;gap:8px;}

    /* Chips de info — scroll horizontal */
    .info-chips{flex-wrap:nowrap;overflow-x:auto;-webkit-overflow-scrolling:touch;padding-bottom:4px;scrollbar-width:none;}
    .info-chips::-webkit-scrollbar{display:none;}
    .chip{flex-shrink:0;}

    /* Acciones de tarjeta */
    .cred-actions{gap:6px;}
    .btn-anal{padding:10px 12px;font-size:12px;}
    .btn-icon{width:34px;height:34px;}

    /* Botón agregar */
    .btn-add{padding:12px;font-size:13px;border-radius:11px;}

    /* Modal — pantalla completa en móvil */
    .moverlay{position:fixed;top:0;left:0;right:0;bottom:0;padding:0;align-items:flex-end;overflow-y:hidden;}
    .modal{border-radius:20px 20px 0 0;padding:24px 20px 36px;max-width:100%;width:100%;max-height:85vh;max-height:85dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;}
    .moverlay.open .modal{animation:modalInMobile .28s cubic-bezier(.22,1,.36,1) forwards;}
    .moverlay.closing .modal{animation:modalOutMobile .22s cubic-bezier(.4,0,1,1) forwards;}
    @keyframes modalInMobile{from{transform:translateY(100%);opacity:0;}to{transform:translateY(0);opacity:1;}}
    @keyframes modalOutMobile{from{transform:translateY(0);opacity:1;}to{transform:translateY(100%);opacity:0;}}

    /* Análisis overlay header */
    .anal-header{padding:12px 14px;padding-top:calc(env(safe-area-inset-top, 48px) + 12px);}
    .anal-header h2{font-size:16px;}
    .anal-back{padding:6px 10px;font-size:11px;}
    .anal-body{padding:16px 12px;}

    /* Tabs de análisis — scroll horizontal */
    .anal-tabs{gap:2px;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-wrap:nowrap;scrollbar-width:none;}
    .anal-tabs::-webkit-scrollbar{display:none;}
    .anal-tab{flex-shrink:0;padding:7px 10px;font-size:11px;}

    /* Resumen grid — 1 columna */
    .resumen-grid{grid-template-columns:1fr;}

    /* Tablas de análisis — scroll horizontal */
    .atbl-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -12px;padding:0 12px;}
    .atbl{min-width:340px;font-size:12px;}
    .atbl th,.atbl td{padding:7px 8px;}
    .atbl input.cell-input{font-size:12px;}

    /* rfield — mobile */
    .rfield input{font-size:16px !important;}
    .rfield label{font-size:10px;}

    /* Distribución — texto más compacto */
    .distribucion-row{font-size:12px;}
    .distribucion-row span:first-child{min-width:90px!important;font-size:11px!important;}
    .distribucion-row span:last-child{min-width:60px!important;font-size:11px!important;}

    /* Resultado box */
    .resultado-box .valor{font-size:30px;}

    /* Cobro hero */
    .cobro-fecha{font-size:22px;}

    /* Timeline */
    .fn{font-size:12px;}
    .ff{font-size:11px;}
    .fd-det{font-size:10px;}

    /* Dashboard hero */
    #hero-gan{font-size:clamp(13px,4vw,22px)!important;}

    /* Docs */
    .doc-item{flex-wrap:wrap;gap:8px;}
    .doc-info{min-width:0;flex:1;}

    /* Nav inferior fija para acceso rápido */
    .tabs-nav{position:fixed;bottom:0;left:0;right:0;z-index:200;border-top:1px solid rgba(255,255,255,0.1);border-top-style:solid;}
    .tab-btn{padding:14px 10px 18px;font-size:11px;}
    .content{padding-bottom:90px;}

    /* Toast más arriba del nav */
    .toast{bottom:80px;}

    /* Header save indicator */
    #save-indicator{font-size:9px;}

    /* Botones exportar/importar en header — ocultar texto, mostrar solo icono */
    .header-export-txt{display:none;}
  



    /* iOS input zoom fix */
    .login-input{font-size:16px!important;}
    .search-cred-input,.filter-fase-sel{font-size:16px!important;}
    .search-row{flex-direction:column;}
    .search-cred-input,.filter-fase-sel{width:100%!important;}

    /* Login card mobile */
    .login-card{margin:16px;border-radius:24px;width:calc(100% - 32px);max-width:100%;}
    .login-logo-row{margin-bottom:20px;}
    /* login overlay — centrado vertical en móvil */
    #login-overlay{align-items:center!important;justify-content:center!important;}
    #login-overlay > div:last-child{margin:16px!important;max-width:100%!important;width:calc(100% - 32px)!important;align-self:center!important;border-radius:24px!important;}

    /* Search/filter row */
    .search-row{flex-direction:column;}
    .search-row input,.search-row select{width:100%!important;box-sizing:border-box;}

    /* Anal save dot */
    .anal-save-dot{display:none;}

    /* Modal 2col → 1col */
    .modal-2col{grid-template-columns:1fr!important;}

    /* Pipeline names overflow */
    .pipe-names-list{display:none;}
  

    /* Nav drawer — tabs hidden on mobile */
    .content{padding:16px 12px 90px;}
    .toast{bottom:80px;}

    /* Hero negocio */
    .hero-neg{padding:18px 14px 14px;border-radius:12px;}
    .hero-neg-num{font-size:28px!important;}
    #hero-gan{font-size:clamp(13px,4vw,22px)!important;}
    .hero-neg-grid{grid-template-columns:1fr!important;}
    .hero-neg-col{padding:10px 0!important;border-right:none!important;border-bottom:1px solid var(--border);}
    .hero-neg-col:last-child{border-bottom:none!important;}
    .hero-neg-subval{font-size:20px!important;}

    /* KPIs */
    .kpis-grid{grid-template-columns:1fr 1fr!important;}
    .kpi-num{font-size:20px!important;}

    /* Modal */
    .modal-2col{grid-template-columns:1fr!important;}

    /* Proyección scroll */
    .proy-wrap{margin:0 -12px;padding:0 12px;}
    #proy-tabla table{min-width:340px;}

    /* rfield — columna en móvil */
    .rfield{flex-direction:column!important;align-items:flex-start!important;gap:4px!important;padding:8px 0!important;}
    .rfield label{font-size:11px!important;min-width:unset!important;}
    .rfield input,.rfield select{width:100%!important;text-align:left!important;font-size:15px!important;padding:8px 10px!important;background:var(--surface2)!important;border-radius:8px!important;border:1px solid var(--border)!important;}

    /* Análisis resumen grid */
    .resumen-grid{grid-template-columns:1fr!important;}

    /* Resultado box */
    .resultado-box .valor{font-size:28px!important;}

    /* Login card */
    .login-card-inner{padding:28px 22px 36px!important;}

    /* Botón salir — texto oculto */
    .header-export-txt{display:none;}

    /* save indicator */
    #save-indicator{font-size:9px;}
  
  }

@media(max-width:380px){
    .params-grid{grid-template-columns:1fr;}
    .sem{max-width:160px;}
    .header-title{font-size:18px;}
  }

  /* ============================================================
     RESPONSIVE CLASSES — replaces inline styles for mobile
     ============================================================ */

  /* --- NEGOCIO HERO --- */
  .hero-neg-deco1{display:none}
  .hero-neg-deco2{display:none}
  .hero-neg{background:var(--surface);border:1px solid var(--red-border);border-radius:16px;padding:22px 20px 18px;margin-bottom:10px;position:relative;overflow:hidden;}
  .hero-neg-label{font-size:10px;color:var(--muted);letter-spacing:0.2em;text-transform:uppercase;font-weight:700;margin-bottom:6px}
  .hero-neg-num{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:38px;font-weight:800;color:var(--red);letter-spacing:-0.04em;line-height:1;margin-bottom:18px}
  .hero-neg-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:0;border-top:1px solid var(--border);padding-top:14px}
  .hero-neg-col{padding:0 14px;}
  .hero-neg-col:first-child{padding-left:0;padding-right:14px;border-right:1px solid var(--border);}
  .hero-neg-col:last-child{padding-left:14px;padding-right:0;}
  .hero-neg-col:not(:last-child):not(:first-child){border-right:1px solid var(--border);}
  .hero-neg-sublabel{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:0.12em;margin-bottom:4px;font-weight:600}
  .hero-neg-subval{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:17px;font-weight:800;color:var(--text)}

  /* --- KPIs GRID --- */
  .kpis-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:10px}
  .kpi-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 16px;display:flex;align-items:center;gap:12px}
  .kpi-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
  .kpi-num{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:24px;font-weight:800;line-height:1}
  .kpi-label{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:0.1em;font-weight:600;margin-top:2px}

  /* --- MODAL FIELDS GRID --- */
  .modal-2col{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:12px}

  /* --- DASHBOARD SECTION CARDS --- */
  .dash-card{background:var(--surface);border:1px solid var(--border);border-radius:14px;margin-bottom:10px;overflow:hidden;transition:transform 0.25s cubic-bezier(.34,1.56,.64,1),border-color 0.25s,box-shadow 0.25s;will-change:transform;cursor:default;}
  .dash-card:hover{border-color:rgba(108,71,255,0.45);box-shadow:0 12px 36px rgba(108,71,255,0.1),0 2px 8px rgba(108,71,255,0.06);}
  .dash-card-hdr{padding:14px 16px 10px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between}
  .dash-card-title{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;font-weight:700;color:var(--accent);display:flex;align-items:center;gap:7px}
  .dash-card-title-bar{width:3px;height:16px;background:var(--red);border-radius:2px;animation:dcTitlePulse 2.5s ease-in-out infinite;}
  @keyframes dcTitlePulse{0%,100%{opacity:1;transform:scaleY(1);}50%{opacity:0.4;transform:scaleY(0.5);}}
  .dash-pip-dot{animation:dcDotPulse 2s ease-in-out infinite;}
  @keyframes dcDotPulse{0%,100%{transform:scale(1);}50%{transform:scale(1.5);}}
  .dash-pip-count{transition:transform 0.2s cubic-bezier(.34,1.56,.64,1);}
  .dash-pip-row:hover .dash-pip-count{transform:scale(1.18);}
  .dash-pip-fill{position:relative;overflow:hidden;}
  .dash-pip-fill::after{content:'';position:absolute;top:0;left:-100%;width:100%;height:100%;background:linear-gradient(90deg,transparent,rgba(255,255,255,0.45),transparent);animation:dcShimmer 2.2s ease-in-out infinite;}
  @keyframes dcShimmer{from{left:-100%;}to{left:200%;}}
  @keyframes dcFadeUp{from{opacity:0;transform:translateY(18px);}to{opacity:1;transform:translateY(0);}}
  .dash-card-anim{opacity:0;animation:dcFadeUp 0.5s cubic-bezier(.22,1,.36,1) forwards;}
  .dash-proj-row{transition:background 0.18s;}
  .dash-proj-row:hover td{background:var(--red-tint);}

  /* --- PROXIMOS COBROS ITEM --- */
  .prox-item{display:flex;align-items:center;gap:12px;padding:11px 16px;border-bottom:1px solid var(--border)}
  .prox-cal{width:44px;height:44px;background:var(--surface2);border-radius:10px;display:flex;flex-direction:column;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border)}
  .prox-cal-day{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;font-weight:800;color:var(--accent);line-height:1}
  .prox-cal-mon{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:0.05em}
  .prox-info{flex:1;min-width:0}
  .prox-nombre{font-size:13px;font-weight:600;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .prox-meta{font-size:11px;color:var(--muted);margin-top:2px}
  .prox-right{text-align:right;flex-shrink:0}
  .prox-gan{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:13px;font-weight:700;color:var(--green)}
  .prox-dias{font-size:11px;font-weight:600}

  /* --- PIPELINE BAR --- */
  .pipe-row{margin-bottom:12px}
  .pipe-row-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:5px}
  .pipe-dot-label{display:flex;align-items:center;gap:7px}
  .pipe-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}
  .pipe-fase-name{font-size:12px;font-weight:600;color:var(--text)}
  .pipe-names-list{font-size:11px;color:var(--muted)}
  .pipe-count{font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;font-weight:800}
  .pipe-track{height:6px;background:var(--surface2);border-radius:99px;overflow:hidden}
  .pipe-fill{height:100%;border-radius:99px;transition:width 0.6s cubic-bezier(.4,0,.2,1)}

  /* --- CHART SECTION --- */
  .chart-wrap{padding:14px 16px}
  .chart-canvas-wrap{position:relative;height:190px;margin-bottom:8px}
  .chart-legend{display:flex;gap:16px;font-size:11px;color:var(--muted)}
  .chart-legend-dot{width:8px;height:8px;border-radius:2px;display:inline-block}

  /* --- PROYECCIÓN TABLA --- */
  .proy-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .proy-table{width:100%;border-collapse:collapse;font-size:13px;margin-bottom:4px}
  .proy-table thead tr{border-bottom:2px solid var(--border)}
  .proy-table th{padding:7px 0;text-align:left;color:var(--muted);font-weight:500;font-size:11px;text-transform:uppercase;letter-spacing:0.06em}
  .proy-table th:last-child{text-align:right}
  .proy-table td{padding:9px 0;border-bottom:1px solid var(--border)}
  .proy-table td:last-child{text-align:right;font-weight:600}
  .proy-table tr.mes-actual td{background:var(--red-tint)}
  .proy-table tr.proy-total td{border-top:2px solid var(--border);font-weight:700;color:var(--accent)}

  /* --- RFIELD responsive --- */
  .rfield-select{width:140px;text-align:right;border:none;background:transparent;font-size:13px;color:var(--text);font-weight:600;padding:2px 4px;border-radius:4px;font-family:var(--sans);}
  .rfield-select:focus{outline:none;background:var(--surface2);}



  /* Login card */
  .login-card{position:relative;width:100%;max-width:400px;margin:20px;background:#0F0D1A;border-radius:28px;overflow:hidden;box-shadow:0 32px 80px rgba(0,0,0,0.55),0 0 0 1px rgba(108,71,255,0.2);}
  .login-logo-row{display:flex;align-items:center;gap:14px;margin-bottom:28px;}
  .login-divider{display:flex;align-items:center;gap:12px;margin-bottom:18px;}
  .login-input{width:100%;padding:13px 16px;border:1px solid rgba(108,71,255,0.25);border-radius:12px;font-family:-apple-system,BlinkMacSystemFont,system-ui,sans-serif;font-size:15px;background:rgba(255,255,255,0.04);color:#fff;outline:none;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;}
  .login-input::placeholder{color:rgba(255,255,255,0.25);}
  .login-input:focus{border-color:#6C47FF;box-shadow:0 0 0 3px rgba(108,71,255,0.15);background:rgba(108,71,255,0.06);}
  /* Search row */
  .search-row{display:flex;gap:8px;margin-bottom:12px}

  /* ── RESUMEN MODERNO ─────────────────── */
  #anal-resumen .rfield{padding:5px 0;}
  #anal-resumen .rfield label{font-size:11px;}
  #anal-resumen .rfield input{font-size:12px;}
  @keyframes rPulseDot{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.3;transform:scale(.5)}}
  @keyframes rToastIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:translateY(0);}}
  .r-toast-show{opacity:1!important;pointer-events:auto!important;animation:rToastIn .25s cubic-bezier(.22,1,.36,1);}
  .r-si{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;position:relative;cursor:pointer;}
  .r-si.r-si-final{cursor:default;opacity:0.7;pointer-events:none;}
  .r-si[data-locked]{cursor:not-allowed;opacity:0.4;pointer-events:none;}
  .r-si:not(:last-child)::after{content:'';position:absolute;top:12px;left:calc(50% + 13px);right:calc(-50% + 13px);height:1.5px;background:var(--border);transition:background .4s;}
  .r-si.done:not(:last-child)::after{background:var(--red);}
  .r-sc{width:24px;height:24px;border-radius:50%;border:1.5px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:700;color:var(--muted);position:relative;z-index:1;transition:all .25s;flex-shrink:0;}
  .r-si.done .r-sc{background:var(--red);border-color:var(--red);color:#fff;}
  .r-si.active .r-sc{background:var(--surface);border-color:var(--red);border-width:2.5px;color:var(--red);box-shadow:0 0 0 4px var(--red-tint);}
  .r-sn{font-size:7.5px;font-weight:600;color:var(--muted);text-align:center;line-height:1.3;max-width:44px;}
  .r-si.active .r-sn{color:var(--red);font-weight:700;}
  .r-chi{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:10px;background:var(--surface2);border:1.5px solid var(--border);cursor:pointer;margin-bottom:5px;transition:all .15s;user-select:none;}
  .r-chi:last-child{margin-bottom:0;}
  .r-chi:hover{border-color:var(--red-border);background:var(--red-tint);}
  .r-chi.ck{background:var(--green-tint);border-color:rgba(0,168,122,.3);}
  .r-chi.last-item{border-color:var(--red-border);background:var(--red-tint);}
  .r-chkb{width:19px;height:19px;border-radius:5px;border:1.5px solid var(--border);background:var(--surface);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .2s;}
  .r-chi.ck .r-chkb{background:var(--green);border-color:var(--green);}
  .r-chkb svg{display:none;width:11px;height:11px;}
  .r-chi.ck .r-chkb svg{display:block;}
  .r-chlab{font-size:12px;font-weight:500;transition:all .15s;flex:1;}
  .r-chi.ck .r-chlab{text-decoration:line-through;color:var(--muted);}
  .r-next-hint{font-size:10px;color:var(--red);font-weight:700;white-space:nowrap;opacity:0;transition:opacity .2s;}
  .r-chi.last-item:not(.ck) .r-next-hint{opacity:1;}
  .roi-excelente{background:var(--accent)!important;}
  .roi-buena{background:var(--accent)!important;}
  .roi-regular{background:var(--accent)!important;}
  .roi-mala{background:var(--accent)!important;}

  /* Anal save dot */
  .anal-save-dot{display:flex;align-items:center;gap:5px;font-size:11px;color:rgba(255,255,255,0.45);font-family:var(--sans);flex-shrink:0}

  /* Modal header row */
  .modal-hdr{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}

  /* --- CRITICAL: Override inline styles for responsive using IDs --- */
  

  /* ============================================================
     RESPONSIVE OVERRIDES — 600px
     ============================================================ */
  


  .bottom-nav{display:none;} /* hidden on desktop */
  .bottom-nav{display:none;} /* desktop: hidden */
  /* ── BOTTOM NAV ─────────────────────────────────────────────── */
  @media(max-width:600px){
    .hamburger{display:none!important;}
    .tabs-nav{display:none!important;}
    .drawer,.drawer-overlay{display:none!important;}
    .header{padding:16px 16px 12px;padding-top:calc(env(safe-area-inset-top, 48px) + 12px);}
    #header-section-title{font-size:20px;}
    .header-export-txt{display:none;}
    .content{padding-bottom:82px;}
    .toast{bottom:78px;}
    .anal-overlay{padding-bottom:max(82px, calc(env(safe-area-inset-bottom) + 20px));}
    .bottom-nav{
      display:flex!important;position:fixed;bottom:0;left:0;right:0;
      background:var(--accent);z-index:200;
      border-top:1px solid rgba(255,255,255,0.1);
      padding-bottom:env(safe-area-inset-bottom,0px);align-items:stretch;
      transition:transform 0.25s cubic-bezier(.4,0,.2,1);
    }
    .bottom-nav.hidden{transform:translateY(100%);}
    .bottom-nav.bounce{transition:transform 0.5s cubic-bezier(.34,1.56,.64,1);}
    .bnav-user{
      display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:3px;padding:10px 10px 12px;min-width:68px;
      cursor:pointer;border-right:1px solid rgba(255,255,255,0.08);
      -webkit-tap-highlight-color:transparent;flex-shrink:0;
    }
    .bnav-user:active{background:rgba(255,255,255,0.06);}
    .bnav-avatar{
      width:28px;height:28px;border-radius:50%;
      background:rgba(255,255,255,0.18);border:1.5px solid rgba(255,255,255,0.3);
      color:white;font-size:13px;font-weight:700;
      display:flex;align-items:center;justify-content:center;
      font-family:var(--sans);overflow:hidden;flex-shrink:0;
    }
    .bnav-avatar img{width:100%;height:100%;object-fit:cover;display:block;}
    .bnav-username{
      font-size:9px;color:rgba(255,255,255,0.45);font-weight:500;
      font-family:var(--sans);max-width:60px;
      white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:center;
    }
    .bnav-btn{
      flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
      gap:4px;padding:12px 4px 14px;
      background:none;border:none;cursor:pointer;
      color:rgba(255,255,255,0.38);font-family:var(--sans);
      font-size:11px;font-weight:600;letter-spacing:0.02em;
      transition:color 0.15s;-webkit-tap-highlight-color:transparent;
    }
    .bnav-btn.active{color:white;}
    .bnav-btn.active svg{opacity:1;}
    .bnav-btn svg{opacity:0.5;transition:opacity 0.15s;}
    .bnav-btn:active{opacity:0.6;}
  }

  /* ── CONTRATO JV — PANTALLA ─────────────────────────────────── */
  #jv-print-overlay{
    display:none;
    position:fixed;
    inset:0;
    z-index:2000;
    background:#d0d0d0;
    overflow:hidden;          /* overlay no scrollea — el doc interno sí */
    padding:0;
    display:none;
    flex-direction:column;
    height:100%;
    height:-webkit-fill-available;  /* iOS Safari correct height */
  }
  #jv-print-overlay.open{ display:flex !important; }
  #jv-print-bar{
    background:#1C1633;
    padding:10px 14px;
    padding-top:max(10px, env(safe-area-inset-top));  /* respeta notch/island */
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-shrink:0;
    gap:8px;
    flex-wrap:nowrap;
    z-index:10;
  }
  #jv-print-doc-wrap{
    flex:1;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;  /* smooth iOS scroll */
    padding-bottom:env(safe-area-inset-bottom);
  }
  #jv-print-hint{font-size:11px;color:rgba(255,255,255,.5);}
  #jv-print-title{font-size:13px;font-weight:700;color:#fff;letter-spacing:-.01em;flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  @media(max-width:500px){
    #jv-print-hint{display:none!important;}
    #jv-print-bar{padding:10px 12px;}
    #jv-print-title{font-size:12px;}
    #jv-print-btn{padding:9px 14px!important;font-size:12px!important;}
    #jv-print-close{padding:9px 12px!important;}
  }
  #jv-print-doc{
    max-width:816px;
    margin:28px auto 56px;
    padding:96px 96px 96px 96px;
    background:#fff;
    box-shadow:0 6px 32px rgba(0,0,0,0.22);
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    line-height:1.5;
    color:#000;
  }
  #jv-print-doc h1{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    font-weight:bold;
    text-align:center;
    text-transform:uppercase;
    margin:0 0 14pt;
    line-height:1.5;
  }
  #jv-print-doc .jv-intro{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    text-align:justify;
    text-transform:none;
    margin:0 0 16pt;
    line-height:1.5;
  }
  #jv-print-doc .jv-section-header{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    font-weight:bold;
    text-align:center;
    text-decoration:underline;
    text-transform:uppercase;
    letter-spacing:0.12em;
    margin:16pt 0 10pt;
    line-height:1.5;
  }
  #jv-print-doc .jv-declarante{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    font-weight:bold;
    margin:10pt 0 4pt;
    line-height:1.5;
  }
  #jv-print-doc p{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    text-align:justify!important;
    margin:0 0 7pt!important;
    margin-left:0!important;
    padding-left:0!important;
    line-height:1.5;
    text-indent:0!important;
    word-break:normal;
    overflow-wrap:normal;
  }
  #jv-print-doc p.no-indent{
  }
  #jv-print-doc .jv-clause{margin-bottom:8pt;}
  #jv-print-doc .jv-clause-title{
    font-family:"Arial",Helvetica,sans-serif;
    font-weight:bold;
    font-size:11pt;
    text-transform:uppercase;
    margin:0 0 3pt;
    line-height:1.5;
    text-decoration:underline;
    word-break:normal;
    overflow-wrap:normal;
  }
  #jv-print-doc .jv-clause p{
    font-size:11pt;
    margin:0 0 7pt!important;
    margin-left:0!important;
    padding-left:0!important;
    text-align:justify!important;
    text-indent:0!important;
    word-break:normal;
    overflow-wrap:normal;
  }
  #jv-print-doc .jv-clause p.no-indent{}
  #jv-print-doc .jv-closing{
    font-family:"Arial",Helvetica,sans-serif;
    font-size:11pt;
    text-align:justify;
    margin:20pt 0 0;
    line-height:1.5;
  }
  /* ── FIRMAS ── */
  /* ── FIRMAS ── */
  #jv-print-doc .jv-signs{
    display:flex;
    flex-direction:row;
    gap:16pt;
    margin-top:48pt;
    width:100%;
  }
  #jv-print-doc .jv-sign-box{
    flex:1;
    min-width:0;
    border:1pt solid #000;
    padding:10pt 12pt 10pt;
    font-family:"Arial",Helvetica,sans-serif;
    font-size:10pt;
    text-align:center;
    box-sizing:border-box;
  }
  #jv-print-doc .jv-sign-space{
    height:52pt;
    display:block;
  }
  #jv-print-doc .jv-sign-line{
    border-top:1pt solid #000;
    display:block;
    margin-bottom:6pt;
  }
  #jv-print-doc .jv-sign-name{
    font-weight:bold;
    font-size:10pt;
    margin-bottom:2pt;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  #jv-print-doc .jv-sign-rol{font-size:10pt;margin-bottom:2pt;}
  #jv-print-doc strong, #jv-print-doc b{
    font-family:"Arial",Helvetica,sans-serif;
    font-weight:bold;
  }

  /* ── CONTRATO JV — IMPRESIÓN/PDF (window.print) ─────────────── */
  @media print{
    @page{
      size:letter;
      margin:1in 1in 1in 1in;
    }
    body>*{display:none!important;}
    #jv-print-overlay{
      display:block!important;
      position:static!important;
      background:#fff!important;
      padding:0!important;
      margin:0!important;
      overflow:visible!important;
    }
    #jv-print-bar{display:none!important;}
    #jv-print-doc{
      max-width:100%!important;
      width:100%!important;
      margin:0!important;
      padding:0!important;
      box-shadow:none!important;
      font-family:"Arial",Helvetica,sans-serif!important;
      font-size:11pt!important;
      line-height:1.5!important;
      color:#000!important;
      background:#fff!important;
    }
    #jv-print-doc h1{font-size:11pt!important;font-weight:bold!important;text-align:center!important;text-transform:uppercase!important;margin-bottom:14pt!important;}
    #jv-print-doc .jv-section-header{font-size:11pt!important;font-weight:bold!important;text-align:center!important;text-decoration:underline!important;letter-spacing:0.12em!important;margin:16pt 0 10pt!important;}
    #jv-print-doc .jv-declarante{font-size:11pt!important;font-weight:bold!important;margin:10pt 0 4pt!important;}
    #jv-print-doc .jv-intro{font-size:11pt!important;text-align:justify!important;text-transform:none!important;line-height:1.5!important;margin-bottom:16pt!important;}
    #jv-print-doc p,
    #jv-print-doc .jv-clause p{
      font-family:"Arial",Helvetica,sans-serif!important;
      font-size:11pt!important;
      text-align:justify!important;
      line-height:1.5!important;
      word-break:normal!important;
      overflow-wrap:normal!important;
      margin-bottom:7pt!important;
    }
    #jv-print-doc p.no-indent,
    #jv-print-doc .jv-clause p.no-indent{}
    #jv-print-doc .jv-clause-title{
      font-family:"Arial",Helvetica,sans-serif!important;
      font-size:11pt!important;
      font-weight:bold!important;
      text-decoration:underline!important;
      text-transform:uppercase!important;
      word-break:normal!important;
      overflow-wrap:normal!important;
    }
    #jv-print-doc strong,#jv-print-doc b{font-family:"Arial",Helvetica,sans-serif!important;font-weight:bold!important;}
    #jv-print-doc .jv-signs{display:flex!important;flex-direction:row!important;gap:16pt!important;page-break-inside:avoid!important;break-inside:avoid!important;}
    #jv-print-doc .jv-sign-box{flex:1!important;min-width:0!important;border:1pt solid #000!important;padding:10pt 12pt!important;text-align:center!important;display:block!important;}
    #jv-print-doc .jv-sign-space{height:52pt!important;display:block!important;}
    #jv-print-doc .jv-sign-line{border-top:1pt solid #000!important;display:block!important;margin-bottom:6pt!important;}
    #jv-print-doc .jv-sign-name{font-weight:bold!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
    #jv-print-doc .jv-closing{font-size:11pt!important;line-height:1.5!important;}
  }
  /* ── SISTEMA DE TAREAS ───────────────────────── */
  .tarea-card{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;padding:11px 13px;margin-bottom:8px;display:flex;align-items:flex-start;gap:10px;transition:background .12s;}
  .tarea-card:last-child{margin-bottom:0;}
  .tarea-card.completada{opacity:.45;}
  .tarea-check{width:22px;height:22px;border-radius:50%;border:2px solid var(--border);background:transparent;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;margin-top:1px;transition:all .15s;}
  .tarea-check.done{background:#00A87A;border-color:#00A87A;}
  .tarea-check svg{display:none;width:12px;height:12px;stroke:white;stroke-width:3;fill:none;}
  .tarea-check.done svg{display:block;}
  .tarea-body{flex:1;min-width:0;}
  .tarea-titulo{font-size:13px;font-weight:600;color:var(--text);line-height:1.3;margin-bottom:2px;}
  .tarea-desc{font-size:11px;color:var(--muted);margin-bottom:4px;line-height:1.4;}
  .tarea-meta{display:flex;align-items:center;gap:6px;flex-wrap:wrap;}
  .tarea-tipo{font-size:9px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;padding:2px 7px;border-radius:20px;}
  .tarea-fecha-pill{font-size:10px;font-weight:600;padding:2px 7px;border-radius:20px;}
  .tarea-hora{font-size:10px;color:var(--muted);font-weight:500;}
  .tarea-del{background:none;border:none;cursor:pointer;color:var(--muted);padding:2px 4px;border-radius:5px;font-size:14px;line-height:1;margin-left:auto;flex-shrink:0;transition:color .12s;}
  .tarea-del:hover{color:#E11D48;}

  /* Agenda global */
  .agenda-section-hdr{font-size:9px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:16px 0 8px;display:flex;align-items:center;gap:7px;}
  .agenda-section-hdr::after{content:'';flex:1;height:1px;background:var(--border);}
  .agenda-item{background:var(--surface);border:1.5px solid var(--border);border-radius:12px;padding:11px 13px;margin-bottom:7px;display:flex;align-items:flex-start;gap:10px;cursor:pointer;transition:background .12s;}
  .agenda-item:hover{background:var(--surface2);}
  .agenda-item.critico{border-left:3px solid #E11D48;}
  .agenda-item.hoy{border-left:3px solid #6C47FF;}
  .agenda-item.proximo{border-left:3px solid var(--border);}
  .agenda-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;margin-top:4px;}
  .agenda-body{flex:1;min-width:0;}
  .agenda-titulo{font-size:13px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .agenda-sub{font-size:11px;color:var(--muted);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .agenda-hora-badge{font-size:11px;font-weight:800;color:var(--text);flex-shrink:0;text-align:right;min-width:38px;}
  .agenda-check-btn{width:28px;height:28px;border-radius:50%;border:2px solid var(--border);background:transparent;flex-shrink:0;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .15s;margin-top:-2px;}
  .agenda-check-btn:hover{background:rgba(0,168,122,.12);border-color:#00A87A;}
  .agenda-empty{text-align:center;padding:32px 16px;color:var(--muted);font-size:13px;}

  /* Modal nueva tarea */
  #modal-tarea{position:fixed;inset:0;z-index:1500;background:rgba(10,8,25,.6);backdrop-filter:blur(8px);display:none;align-items:flex-end;justify-content:center;transition:background .22s;}
  #modal-tarea.open{display:flex;}
  #modal-tarea.closing{pointer-events:none;}
  #modal-tarea-inner{
    background:#fff;
    border-radius:22px 22px 0 0;
    width:100%;max-width:520px;
    overflow:hidden;
    box-shadow:0 -6px 40px rgba(108,71,255,0.16);
    padding:0;
    transform:translateY(0);
  }
  #modal-tarea.open #modal-tarea-inner{animation:mtSlideUp .28s cubic-bezier(.22,1,.36,1) forwards;}
  #modal-tarea.closing #modal-tarea-inner{animation:mtSlideDown .22s cubic-bezier(.4,0,1,1) forwards;}
  @keyframes mtSlideUp{from{transform:translateY(100%);opacity:0;}to{transform:translateY(0);opacity:1;}}
  @keyframes mtSlideDown{from{transform:translateY(0);opacity:1;}to{transform:translateY(100%);opacity:0;}}
  @media(min-width:600px){
    #modal-tarea.open #modal-tarea-inner{animation:mtFadeUp .24s cubic-bezier(.22,1,.36,1) forwards;}
    #modal-tarea.closing #modal-tarea-inner{animation:mtFadeDown .2s cubic-bezier(.4,0,1,1) forwards;}
    @keyframes mtFadeUp{from{transform:translateY(14px);opacity:0;}to{transform:translateY(0);opacity:1;}}
    @keyframes mtFadeDown{from{transform:translateY(0);opacity:1;}to{transform:translateY(10px);opacity:0;}}
  }
  .mt-modal-drag{width:32px;height:3px;border-radius:2px;background:#e2e0f0;margin:10px auto 0;}
  .mt-modal-header{
    padding:14px 20px 0;
    display:flex;align-items:center;justify-content:space-between;
    margin-bottom:14px;
  }
  .mt-modal-title{font-size:17px;font-weight:800;color:#0f0a2e;letter-spacing:-.03em;}
  .mt-close-btn{
    width:28px;height:28px;border-radius:50%;
    background:#f4f3ff;border:none;cursor:pointer;
    display:flex;align-items:center;justify-content:center;
    color:#6C47FF;
    transition:background .15s;
  }
  .mt-close-btn:hover{background:#ede9ff;}
  .mt-modal-body{padding:0 20px 18px;}
  .mt-field{margin-bottom:10px;}
  .mt-label{font-size:9.5px;font-weight:700;color:#a0a0b8;text-transform:uppercase;letter-spacing:.09em;margin-bottom:4px;display:block;}
  .mt-input{
    width:100%;padding:9px 12px;
    border:1px solid #ebe9f7;
    border-radius:10px;
    font-family:var(--sans);font-size:13px;
    background:#f8f7fd;color:#0f0a2e;
    outline:none;box-sizing:border-box;
    transition:border-color .15s,box-shadow .15s,background .15s;
    -webkit-appearance:none;
  }
  .mt-input:focus{border-color:#6C47FF;box-shadow:0 0 0 2.5px rgba(108,71,255,0.1);background:#fff;}
  .mt-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;}
  @media(max-width:400px){.mt-row{grid-template-columns:1fr;}}
  /* Tipo grid */
  .tipo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
  .tipo-card{
    display:flex;align-items:center;justify-content:center;
    gap:6px;padding:8px 6px;
    border:1px solid #ebe9f7;border-radius:9px;
    cursor:pointer;background:#f8f7fd;
    transition:all .15s;font-family:var(--sans);
  }
  .tipo-card:hover{border-color:#b0a0ff;background:#f0edff;}
  .tipo-card.sel{border-color:transparent;color:#fff;}
  .tipo-card svg{flex-shrink:0;opacity:0.55;transition:opacity .15s;}
  .tipo-card.sel svg{opacity:1;}
  .tipo-card:hover svg{opacity:0.8;}
  .tipo-card-label{font-size:11.5px;font-weight:700;letter-spacing:-.01em;}
  /* Save button */
  .mt-save-btn{
    width:100%;padding:12px;
    background:linear-gradient(135deg,#6C47FF 0%,#9B7FFF 100%);
    color:#fff;border:none;border-radius:12px;
    font-family:var(--sans);font-size:14px;font-weight:800;
    cursor:pointer;letter-spacing:-.01em;
    box-shadow:0 4px 16px rgba(108,71,255,0.32);
    transition:transform .12s,box-shadow .12s;
    margin-top:4px;
  }
  .mt-save-btn:hover{transform:translateY(-1px);box-shadow:0 6px 22px rgba(108,71,255,0.42);}
  .mt-save-btn:active{transform:translateY(0);}
  @media(min-width:600px){#modal-tarea{align-items:center;}#modal-tarea-inner{border-radius:18px;overflow:hidden;}}
  #agenda-overlay{position:fixed;inset:0;z-index:1400;background:rgba(0,0,0,0.55);display:none;align-items:flex-end;justify-content:center;}
  #agenda-overlay.open{display:flex;}
  #agenda-overlay-inner{background:var(--bg);border-radius:22px 22px 0 0;width:100%;max-width:600px;max-height:90vh;overflow-y:auto;padding:20px 18px 40px;}
  @media(min-width:600px){
    #agenda-overlay{align-items:center;}
    #agenda-overlay-inner{border-radius:16px;max-height:85vh;max-width:560px;}
  }
  .tipo-pills{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:0;}
  .tipo-pill{font-size:11px;font-weight:600;padding:5px 10px;border-radius:20px;border:1.5px solid var(--border);cursor:pointer;background:transparent;color:var(--muted);transition:all .13s;font-family:var(--sans);}
  .tipo-pill.sel{color:#fff;}

  /* ── iOS / Mobile fix para formulario de contratos ── */
  @media (max-width: 500px) {

    /* Grids de 2 columnas → 1 columna en móvil */
    #jv-body-coinversion [style*="grid-template-columns:1fr 1fr"],
    #jv-body-coinversion [style*="grid-template-columns: 1fr 1fr"] {
      grid-template-columns: 1fr !important;
    }

    /* Clases genéricas usadas en otras secciones */
    .mt-row {
      grid-template-columns: 1fr !important;
    }

    /* Inputs y selects: tamaño cómodo en iOS, evita zoom automático */
    #jv-body-coinversion input,
    #jv-body-coinversion select,
    #jv-body-coinversion textarea {
      font-size: 16px !important;   /* iOS no hace zoom con 16px+ */
      padding: 12px 14px !important;
      border-radius: 10px !important;
      -webkit-appearance: none;
    }

    /* Botones de generar CURP/RFC full width */
    #jv-body-coinversion button[type="button"] {
      width: 100% !important;
      padding: 11px 14px !important;
      font-size: 13px !important;
    }

    /* Secciones del formulario: más padding */
    #jv-body-coinversion > div {
      padding: 16px !important;
    }

    /* Título de sección */
    #jv-body-coinversion [style*="font-size:9px"][style*="letter-spacing:.15em"] {
      margin-bottom: 14px !important;
    }

    /* Botón generar contrato */
    #tab-calcular > div > button {
      font-size: 14px !important;
      padding: 15px !important;
    }

    /* Labels */
    #jv-body-coinversion [style*="font-size:10px"][style*="font-weight:700"] {
      font-size: 12px !important;
    }
  }


/* ── Skeleton loader ──────────────────────────────────────── */
@keyframes sk-shimmer {
  0%   { background-position: -400px 0; }
  100% { background-position:  400px 0; }
}
.sk {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.06) 25%,
    rgba(255,255,255,0.13) 50%,
    rgba(255,255,255,0.06) 75%);
  background-size: 800px 100%;
  animation: sk-shimmer 1.4s ease-in-out infinite;
  border-radius: 6px;
}
/* On light surfaces */
.sk-light {
  background: linear-gradient(90deg,
    rgba(0,0,0,0.06) 25%,
    rgba(0,0,0,0.11) 50%,
    rgba(0,0,0,0.06) 75%);
  background-size: 800px 100%;
  animation: sk-shimmer 1.4s ease-in-out infinite;
  border-radius: 6px;
}
#app-skeleton { padding: 16px; }
#app-skeleton .sk-card {
  background: rgba(255,255,255,0.05);
  border-radius: 14px;
  padding: 18px;
  margin-bottom: 12px;
}

/* ── DARK MODE OVERRIDES ─────────────────────────────────── */
[data-theme="dark"] body { background: var(--bg); color: var(--text); }
[data-theme="dark"] .header { background: #13101F !important; border-bottom: 1px solid var(--border); }
[data-theme="dark"] .tabs-nav { background: #13101F !important; border-top: 1px solid var(--border); }
[data-theme="dark"] .tab-btn { color: rgba(255,255,255,0.45) !important; border-bottom-color: transparent !important; }
[data-theme="dark"] .tab-btn.active { color: white !important; border-bottom-color: white !important; }
[data-theme="dark"] .bottom-nav { background: #13101F !important; border-top: 1px solid var(--border) !important; }
[data-theme="dark"] .tab-panel { background: var(--bg); }
[data-theme="dark"] .card { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .cred-card { background: var(--surface); border-color: var(--border); }
[data-theme="dark"] .mmodal { background: var(--surface) !important; }
[data-theme="dark"] .moverlay { background: rgba(0,0,0,0.7); }
[data-theme="dark"] .anal-overlay { background: var(--bg) !important; }
[data-theme="dark"] .anal-header { background: #0F0D1A !important; border-bottom: 1px solid var(--border) !important; }
[data-theme="dark"] input, [data-theme="dark"] select, [data-theme="dark"] textarea {
  background: var(--surface2) !important;
  color: var(--text) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .rfield input { background: transparent !important; }
[data-theme="dark"] .param-item { background: var(--surface2); border-color: var(--border); }
[data-theme="dark"] .chi { background: var(--surface2); }
[data-theme="dark"] .cred-hdr, [data-theme="dark"] .cred-fin-row { border-color: var(--border); }
[data-theme="dark"] #hero-portafolio { background: var(--surface) !important; }
[data-theme="dark"] #fn-hero { background: #1A1730 !important; }
[data-theme="dark"] .anal-tab { color: var(--muted); }
[data-theme="dark"] .anal-tab.active { color: var(--text); border-color: var(--red); }
[data-theme="dark"] .tab-btn { color: rgba(255,255,255,0.5); }
[data-theme="dark"] .tab-btn.active { color: white; border-color: white; }
[data-theme="dark"] .fase-circle { background: var(--surface); border-color: var(--border); color: var(--muted); }
[data-theme="dark"] .fase-circle.active { border-color: var(--red); color: var(--red); }
[data-theme="dark"] .input-label { color: var(--muted); }
[data-theme="dark"] .calcular-btn { background: var(--red); }
[data-theme="dark"] .nota-info { background: var(--red-tint); border-color: var(--red-border); color: var(--red-light); }

/* Cards con color hardcodeado #1C1633 — dark mode */
[data-theme="dark"] #hero-portafolio,
[data-theme="dark"] #tab-negocio .content > div:first-child,
[data-theme="dark"] [style*="background:#1C1633"],
[data-theme="dark"] [style*="background:var(--accent)"] {
  background: var(--surface) !important;
}
[data-theme="dark"] #r-roi-card,
[data-theme="dark"] #anal-resumen > div:first-child {
  background: var(--surface) !important;
  border-color: var(--border) !important;
}
[data-theme="dark"] .content > div[style*="background:#1C1633"] {
  background: var(--surface) !important;
}
/* Finanzas hero */
[data-theme="dark"] #fn-hero { background: var(--surface) !important; }
/* Login overlay — mantener oscuro siempre */
[data-theme="dark"] #login-overlay { background: #0F0D1A !important; }
/* app-skeleton */
[data-theme="dark"] #app-skeleton { background: var(--bg) !important; }
/* Formularios en light cards */
[data-theme="dark"] .mmodal input,
[data-theme="dark"] .mmodal select,
[data-theme="dark"] .mmodal textarea {
  background: var(--surface2) !important;
  border-color: var(--border) !important;
  color: var(--text) !important;
}

/* ── SWIPE DOTS ──────────────────────────────────────────────── */
@media (max-width: 600px) {
  #swipe-dots { display: flex !important; }
}
.swipe-dot {
  width: 5px; height: 5px;
  border-radius: 50%;
  background: rgba(255,255,255,0.25);
  transition: all 0.25s ease;
  cursor: pointer;
}
.swipe-dot.active {
  width: 18px;
  border-radius: 3px;
  background: rgba(255,255,255,0.85);
}

@keyframes spin { to { transform: rotate(360deg); } }
