/* Fase 9.3 — CSS verbatim de los bloques de estilo de Pages/CCC/CuentaCobrarClienteAmortizacionModalPage.razor. Igual que hoy, es global mientras el componente está en pantalla:
   se enlaza con <link> donde estaba el bloque. Cambios: @@ → @ y capas D-51. */
/* ─────────────────────────────────────────────────────────────────────────
   Estilos PROPIOS y autónomos de este modal. Ya no dependen de las clases
   .cxc-modal* / .btn / .spin-ic / .badge-cxc / .loading-overlay ni de las
   variables --cxc-* de CuentasCobrarClienteMainPage: todo vive bajo el
   prefijo amz-* y las variables --amz-* definidas aquí, así que el modal
   se ve igual sin importar desde qué página/contenedor se abra.
   ───────────────────────────────────────────────────────────────────────── */
.amz-root{
--amz-surface:#ffffff; --amz-surface-alt:#f8fafc; --amz-border:#e2e8f0; --amz-hover:#f1f5f9;
--amz-text:#1e293b; --amz-text-muted:#64748b;
--amz-primary:#2563eb; --amz-primary-deep:#1d4ed8;
--amz-success:#16a34a; --amz-success-bg:#f0fdf4; --amz-success-ink:#15803d;
--amz-info:#0ea5e9; --amz-info-bg:#f0f9ff; --amz-info-ink:#0369a1;
--amz-warning:#d97706; --amz-warning-bg:#fffbeb; --amz-warning-ink:#92400e;
--amz-danger:#dc2626; --amz-danger-bg:#fef2f2; --amz-danger-ink:#991b1b;
font-family:inherit; color:var(--amz-text);
}

/* ── Modal shell ── */
.amz-backdrop{ position:fixed; inset:0; z-index:var(--z-modal-2); background:rgba(15,23,42,.55); display:flex; align-items:center; justify-content:center; padding:16px; }
.amz-backdrop.amz-rev{ z-index:var(--z-modal-3); }
.amz-modal{ background:var(--amz-surface); width:100%; max-width:920px; max-height:calc(100vh - 32px); border-radius:12px; box-shadow:0 20px 50px rgba(0,0,0,.30); display:flex; flex-direction:column; overflow:hidden; }
.amz-backdrop.amz-rev .amz-modal{ max-width:760px; }
.amz-head{ flex:0 0 auto; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 18px; border-bottom:1px solid var(--amz-border); background:var(--amz-surface); }
.amz-head h3{ margin:0; font-size:15px; font-weight:700; color:var(--amz-text); display:flex; align-items:center; gap:8px; }
.amz-close{ width:31px; height:31px; border:none; background:transparent; border-radius:6px; color:var(--amz-text-muted); cursor:pointer; display:inline-flex; align-items:center; justify-content:center; }
.amz-close:hover{ background:var(--amz-hover); color:var(--amz-text); }
.amz-body{ flex:1 1 auto; min-height:0; overflow-y:auto; padding:16px 18px; background:var(--amz-surface); }
.amz-foot{ flex:0 0 auto; display:flex; justify-content:flex-end; align-items:center; gap:8px; padding:12px 18px; border-top:1px solid var(--amz-border); background:var(--amz-surface-alt); }

/* ── Tarjetas / secciones ── */
.amz-root .amort-card{ background:var(--amz-surface); border:1px solid var(--amz-border); border-radius:8px; margin-bottom:16px; overflow:hidden; }
.amz-root .amort-card .hd{ padding:10px 14px; font-weight:700; font-size:13px; display:flex; align-items:center; gap:8px; color:#fff; }
.amz-root .amort-card .hd.primary{ background:var(--amz-primary); }
.amz-root .amort-card .hd.success{ background:var(--amz-success); }
.amz-root .amort-card .bd{ padding:14px; }
.amz-root .field-label{ display:block; font-size:10.5px; font-weight:700; color:var(--amz-text-muted); text-transform:uppercase; letter-spacing:.35px; margin-bottom:4px; }
.amz-root .section-sep{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; color:var(--amz-text-muted); text-transform:uppercase; letter-spacing:.35px; margin:14px 0 10px; }
.amz-root .section-sep::after{ content:''; flex:1; height:1px; background:var(--amz-border); }
.amz-root .nuevo-cliente-block{ background:var(--amz-surface-alt); border:1px solid var(--amz-border); border-radius:6px; padding:12px 14px; margin-top:10px; }
.amz-root .doc-summary{ display:grid; grid-template-columns:repeat(auto-fit,minmax(130px,1fr)); gap:8px; margin-bottom:4px; }
.amz-root .doc-stat{ background:var(--amz-surface-alt); border:1px solid var(--amz-border); border-radius:6px; padding:8px 12px; }
.amz-root .doc-stat-label{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.35px; color:var(--amz-text-muted); margin-bottom:2px; }
.amz-root .doc-stat-value{ font-size:15px; font-weight:700; color:var(--amz-text); }

/* ── Tabla de cuotas ── */
.amz-root .tabla-cuotas{ width:100%; border-collapse:collapse; font-size:12px; margin-top:4px; }
.amz-root .tabla-cuotas thead tr{ background:var(--amz-hover); border-bottom:2px solid var(--amz-border); }
.amz-root .tabla-cuotas th{ padding:7px 10px; font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--amz-text-muted); text-align:left; }
.amz-root .tabla-cuotas td{ padding:6px 10px; border-bottom:1px solid var(--amz-border); color:var(--amz-text); vertical-align:middle; }
.amz-root .tabla-cuotas tbody tr:hover{ background:var(--amz-hover); }
.amz-root .tabla-cuotas tr.cuota-activa{ background:var(--amz-success-bg); }
.amz-root .tabla-cuotas tr.cuota-activa td{ color:var(--amz-success-ink); }
.amz-root .tabla-cuotas td.pagado{ font-weight:700; color:var(--amz-success-ink); }
.amz-root .preview-saldo{ display:flex; align-items:center; gap:8px; background:var(--amz-info-bg); border:1px solid var(--amz-info); border-radius:6px; padding:8px 12px; font-size:13px; color:var(--amz-info-ink); margin-top:10px; }
.amz-root .equivalente-texto{ font-size:11px; color:var(--amz-text-muted); margin-top:3px; padding-left:2px; }

/* ── Buscador de clientes ── */
.amz-root .autocomplete-wrap{ position:relative; }
.amz-root .autocomplete-list{ position:absolute; z-index:20; top:100%; left:0; right:0; max-height:280px; overflow-y:auto; background:var(--amz-surface); border:1px solid var(--amz-border); border-radius:6px; box-shadow:0 8px 24px rgba(0,0,0,.15); margin-top:2px; }
.amz-root .autocomplete-item{ padding:8px 10px; border-bottom:1px solid var(--amz-border); cursor:pointer; }
.amz-root .autocomplete-item:last-child{ border-bottom:none; }
.amz-root .autocomplete-item:hover{ background:var(--amz-hover); }
.amz-root .cliente-elegido{ display:flex; align-items:center; justify-content:space-between; gap:10px; background:var(--amz-success-bg); border:1px solid var(--amz-success); border-radius:6px; padding:10px 12px; }

/* ── Acordeones / medio de pago ── */
.amz-root .accordion-hd{ display:flex; align-items:center; gap:8px; padding:10px 14px; background:var(--amz-hover); border:1px solid var(--amz-border); border-radius:6px 6px 0 0; font-weight:700; font-size:12.5px; color:var(--amz-text); }
.amz-root .accordion-bd{ border:1px solid var(--amz-border); border-top:none; border-radius:0 0 6px 6px; padding:12px 14px; }
.amz-root .medio-pago-tabs{ display:flex; gap:6px; margin:10px 0; }
.amz-root .medio-pago-tabs .mp-btn{ padding:6px 12px; font-size:12px; border-radius:6px; border:1px solid var(--amz-border); background:var(--amz-surface); color:var(--amz-text-muted); }
.amz-root .medio-pago-tabs .mp-btn.active{ background:var(--amz-primary); border-color:var(--amz-primary); color:#fff; font-weight:700; }

/* ── Reversión de cuota ── */
.amz-root .rev-info-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:8px; margin-bottom:12px; }
.amz-root .rev-field{ background:var(--amz-surface-alt); border:1px solid var(--amz-border); border-radius:6px; padding:8px 12px; }
.amz-root .rev-field .l{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.35px; color:var(--amz-text-muted); margin-bottom:2px; }
.amz-root .rev-field .v{ font-size:14px; font-weight:700; color:var(--amz-text); }
.amz-root .rev-field .v.num, .amz-root .num-col{ text-align:right; font-variant-numeric:tabular-nums; }
.amz-root .empty-state{ padding:18px; text-align:center; color:var(--amz-text-muted); font-size:13px; background:var(--amz-surface-alt); border:1px dashed var(--amz-border); border-radius:8px; }
.amz-root .sim-result{ border:1px solid var(--amz-success); background:var(--amz-success-bg); border-radius:8px; padding:12px 14px; }
.amz-root .sim-result h4{ margin:0 0 6px; font-size:13.5px; font-weight:700; color:var(--amz-success-ink); display:flex; align-items:center; gap:8px; }
.amz-root .sim-warn-box, .amz-root .err-box{ display:flex; gap:10px; align-items:flex-start; border-radius:6px; padding:10px 12px; font-size:12.5px; margin-top:10px; }
.amz-root .sim-warn-box{ background:var(--amz-warning-bg); border:1px solid var(--amz-warning); color:var(--amz-warning-ink); }
.amz-root .err-box{ background:var(--amz-danger-bg); border:1px solid var(--amz-danger); color:var(--amz-danger-ink); }
.amz-root .amz-mini-table{ width:100%; font-size:12px; margin:8px 0 0; background:var(--amz-surface); }
.amz-root .amz-mini-table th{ font-size:10px; font-weight:700; text-transform:uppercase; letter-spacing:.3px; color:var(--amz-text-muted); background:var(--amz-hover); }
.amz-badge{ display:inline-block; padding:2px 8px; border-radius:10px; font-size:10.5px; font-weight:700; }
.amz-badge.badge-danger{ background:var(--amz-danger-bg); color:var(--amz-danger-ink); border:1px solid var(--amz-danger); }
.amz-badge.badge-warning{ background:var(--amz-warning-bg); color:var(--amz-warning-ink); border:1px solid var(--amz-warning); }
.amz-badge.badge-neutral{ background:var(--amz-hover); color:var(--amz-text-muted); border:1px solid var(--amz-border); }

/* ── Spinners / overlay bloqueante ── */
.amz-spin{ display:inline-block; width:14px; height:14px; border:2px solid rgba(255,255,255,.45); border-top-color:#fff; border-radius:50%; animation:amz-rot .7s linear infinite; vertical-align:-2px; }
.amz-spin.dark{ border-color:rgba(100,116,139,.3); border-top-color:var(--amz-primary); }
.amz-loading{ position:fixed; inset:0; z-index:var(--z-bloqueo); background:rgba(15,23,42,.35); display:flex; align-items:center; justify-content:center; }
.amz-loading-spinner{ width:46px; height:46px; border:4px solid rgba(255,255,255,.35); border-top-color:#fff; border-radius:50%; animation:amz-rot .8s linear infinite; }
@keyframes amz-rot{ to{ transform:rotate(360deg); } }
