/* Cotizador de Cuotas – CSS aislado (ccz) */
/* Todo vive bajo .ccz-cotizador. No hay estilos globales. */
@layer ccz {
  .ccz-cotizador {
    /* Tokens del plugin (puedes ajustar HEX si lo deseas) */
    --ccz-primary: #5B4CF0;
    --ccz-primary-600: #4A3DE3;
    --ccz-bg-soft: #EEF1FF;
    --ccz-text: #1F2937;
    --ccz-muted: #6B7280;
    --ccz-border: #C7C9F5;
    --ccz-disabled: #E5E7EB;

    --ccz-radius: 8px;
    --ccz-s-1: 8px;
    --ccz-s-2: 12px;
    --ccz-s-3: 16px;
    --ccz-s-4: 24px;
    --ccz-s-5: 32px;

    --ccz-shadow-focus: 0 0 0 3px rgba(91, 76, 240, 0.20);

    font-family: system-ui, -apple-system, Segoe UI, Inter, Roboto, Arial, sans-serif !important;
    color: var(--ccz-text) !important;
    width: 100% !important;
    max-width: 700px !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .ccz-title{
    margin: 0 0 40px !important;
    font-size: 2.25rem !important; /* ~36px */
    line-height: 1.2 !important;
    font-weight: 700 !important;
    color: var(--ccz-text) !important;
  }
  .ccz-subtitle{
    margin: 0 0 40px !important;
    font-size: 1rem !important; /* 16px */
    line-height: 1.6 !important;
    font-weight: 400 !important;
    color: var(--ccz-muted) !important;
  }

  /* Reset encapsulado (solo dentro del wrapper) */
  .ccz-cotizador, .ccz-cotizador *,
  .ccz-cotizador *::before, .ccz-cotizador *::after {
    box-sizing: border-box !important;
  }

  /* Layout del formulario */
  .ccz-form {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: var(--ccz-s-4) !important;
    align-items: stretch !important;
  }
  .ccz-form__row {
    display: flex !important;
    flex-direction: column !important;
    gap: var(--ccz-s-1) !important;
  }
  .ccz-form__label {
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    color: var(--ccz-text) !important;
  }

  /* Inputs */
  .ccz-input,
  .ccz-select {
    height: 52px !important;
    width: 100% !important;
    border: 1px solid var(--ccz-border) !important;
    border-radius: var(--ccz-radius) !important;
    padding: 0 18px !important;
    font-size: 1rem !important;
    background: #fff !important;
    outline: none !important;
    color: var(--ccz-text) !important;
  }
  .ccz-input::placeholder {
    color: var(--ccz-muted) !important;
  }
  .ccz-input:focus,
  .ccz-select:focus {
    border-color: var(--ccz-primary) !important;
    box-shadow: var(--ccz-shadow-focus) !important;
  }
  .ccz-input--error {
    border-color: #d92d20 !important;
    box-shadow: 0 0 0 3px rgba(217, 45, 32, 0.15) !important;
  }
  /* Caret del select con pseudo-elemento */
  .ccz-select {
    appearance: none !important;
    -webkit-appearance: none !important;
    -moz-appearance: none !important;
    background-image:
      linear-gradient(45deg, transparent 50%, var(--ccz-muted) 50%),
      linear-gradient(135deg, var(--ccz-muted) 50%, transparent 50%) !important;
    background-position:
      calc(100% - 22px) calc(50% - 3px),
      calc(100% - 16px) calc(50% - 3px) !important;
    background-size: 6px 6px, 6px 6px !important;
    background-repeat: no-repeat !important;
    padding-right: 40px !important;
  }

  /* Resultado */
  .ccz-result-block {
    grid-column: 1 / -1 !important;
    display: flex !important;
    flex-direction: column !important;
    gap: 4px !important;
  }
  .ccz-result__label {
    font-size: 1.05rem !important;
    font-weight: 600 !important;
    color: var(--ccz-muted) !important;
  }
  .ccz-result {
    background: var(--ccz-bg-soft) !important;
    border-radius: var(--ccz-radius) !important;
    padding: 16px 20px !important;
    display: flex !important;
    align-items: center !important;
    gap: var(--ccz-s-3) !important;
  }
  .ccz-result__value {
    font-size: 2.2rem !important; /* ~48px */
    font-weight: 800 !important;
    white-space: nowrap !important;
    line-height: 1 !important;
    color: var(--ccz-text) !important;
  }
  .ccz-result__badge {
    margin-left: auto !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    letter-spacing: 0.08em !important;
    color: var(--ccz-muted) !important;
    text-transform: uppercase !important;
    background: transparent !important;
    border: none !important;
    padding: 0 !important;
  }

  /* Help text */
  .ccz-help {
    margin: 0 !important;
    align-self: flex-end !important;
    color: var(--ccz-muted) !important;
    font-size: 0.8rem !important;
    text-align: right !important;
  }
  .ccz-help--error {
    color: #d92d20 !important;
    font-weight: 600 !important;
  }

  /* Acciones */
  .ccz-actions {
    grid-column: 1 / -1 !important;
    display: flex !important;
    margin-top: 60px !important;
    gap: 24px !important;
    justify-content: space-between !important;
  }
  .ccz-actions__left, .ccz-actions__right{ display: flex !important; gap: var(--ccz-s-3) !important; }
  .ccz-button {
    border-radius: 999px !important;
    height: 48px !important;
    padding: 0 0px !important;
    border: 0 !important;
    background: #fff !important;
    cursor: pointer !important;
    font-weight: 700 !important;
    color: var(--ccz-text) !important;
  }
  .ccz-button--primary {
    background: var(--ccz-primary) !important;
    color: #fff !important;
    border-color: var(--ccz-primary) !important;
    width: 200px !important;
  }
  .ccz-button--primary:hover {
    background: var(--ccz-primary-600) !important;
    border-color: var(--ccz-primary-600) !important;
  }
  .ccz-button--ghost {
    background: transparent !important;
    border-color: var(--ccz-border) !important;
    color: var(--ccz-primary) !important;
    text-decoration: none !important;
  }
  .ccz-button[disabled] {
    opacity: .5 !important;
    cursor: not-allowed !important;
  }

  .ccz-result.ccz-result--active{
    border-color: var(--ccz-primary) !important;
    box-shadow: var(--ccz-shadow-focus) !important;
  }

  /* Responsive */
  @media (max-width: 640px) {
    .ccz-form {
      grid-template-columns: 1fr !important;
      gap: var(--ccz-s-3) !important;
    }
    .ccz-result {
      justify-content: space-between !important;
      align-items: center !important;
      gap: var(--ccz-s-2) !important;
    }
    .ccz-result__value {
      font-size: 2.2rem !important;
    }
    .ccz-actions {
      flex-direction: column !important;
      align-items: stretch !important;
      margin-top: 40px !important;
    }
    .ccz-actions__left,
    .ccz-actions__right {
      width: 100% !important;
    }
    .ccz-button,
    .ccz-button--primary {
      width: 100% !important;
    }
    .ccz-button {
      border: 1px solid var(--ccz-border) !important;
    }
    .ccz-button--primary {
      border-color: var(--ccz-primary) !important;
    }
  }

  @media (max-width: 480px) {
    .ccz-cotizador {
      margin: 0 !important;
      padding: 0 !important;
    }
    .ccz-result__value {
      font-size: 1.9rem !important;
    }
    .ccz-result-block {
      gap: var(--ccz-s-2) !important;
    }
  }
}
