    .ap-form-control,
    .form-control,
    .form-select {
      background: var(--ap-bg);
      border-color: var(--ap-border);
      color: var(--ap-text-strong);
      font-size: .85rem;
    }

    .form-control:focus,
    .form-select:focus {
      background: var(--ap-surface);
      border-color: var(--ap-primary);
      box-shadow: 0 0 0 .2rem rgba(79, 70, 229, .12);
      color: var(--ap-text-strong);
    }

    .form-label {
      font-size: .8rem;
      font-weight: 600;
      color: var(--ap-text-strong);
      margin-bottom: .3rem;
    }

    .form-text {
      font-size: .75rem;
    }

    .valid-feedback,
    .invalid-feedback {
      font-size: .75rem;
    }

    .form-check-label {
      font-size: .83rem;
    }

    /* Password strength meter */
    .ap-strength-bar {
      height: 5px;
      border-radius: 10px;
      background: var(--ap-border);
      overflow: hidden;
      margin-top: .4rem;
    }

    .ap-strength-fill {
      height: 100%;
      width: 0%;
      border-radius: 10px;
      transition: width .25s ease, background .25s ease;
    }

    .ap-strength-label {
      font-size: .72rem;
      color: var(--ap-secondary);
      margin-top: .25rem;
    }

    /* Custom field states (live validation demo) */
    .ap-field-icon {
      position: relative;
    }

    .ap-field-icon .bi {
      position: absolute;
      right: .75rem;
      top: 50%;
      transform: translateY(-50%);
      font-size: .95rem;
      display: none;
    }

    .ap-field-icon.is-valid .bi-check-circle-fill {
      display: block;
      color: var(--ap-success);
    }

    .ap-field-icon.is-invalid .bi-x-circle-fill {
      display: block;
      color: var(--ap-danger);
    }

    .ap-field-icon input {
      padding-right: 2.2rem;
    }

    .ap-section-note {
      font-size: .8rem;
      color: var(--ap-secondary);
      margin-bottom: 1rem;
    }

    .ap-alert-success {
      display: none;
      background: var(--ap-success-100);
      color: var(--ap-success);
      border: 1px solid var(--ap-success);
      border-radius: var(--ap-radius-sm);
      padding: .7rem 1rem;
      font-size: .83rem;
      font-weight: 600;
      margin-bottom: 1rem;
    }

    .ap-alert-success.show {
      display: flex;
      align-items: center;
      gap: .5rem;
    }

    /* ============ Utility classes (extracted from inline styles) ============ */

    /* Font sizes */
    .ap-fs-13 {
      font-size: 1.3rem;
    }

    .ap-fs-06 {
      font-size: .6rem;
    }

    /* Text colors */
    .ap-color-strong {
      color: var(--ap-text-strong);
    }

    .ap-color-secondary {
      color: var(--ap-secondary);
    }

    .ap-color-primary {
      color: var(--ap-primary);
    }

    /* Font weight */
    .ap-fw-700 {
      font-weight: 700;
    }

    /* Transparent button */
    .ap-btn-transparent {
      background: transparent;
    }

    /* Small dropdown menu */
    .ap-menu-sm {
      font-size: .85rem;
    }

    /* Budget value highlight */
    .ap-budget-value {
      color: var(--ap-primary);
      font-weight: 700;
    }

    /* Footer */
    .ap-footer {
      color: var(--ap-secondary);
    }
