
    /* -------------------------------------------------------------
       BUTTON DESIGN SYSTEM CLASSES
    ------------------------------------------------------------- */
    .btn-app {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      gap: 0.5rem;
      font-family: var(--font-family-primary);
      font-weight: 600;
      text-decoration: none;
      border: 1.5px solid transparent;
      cursor: pointer;
      transition: all var(--transition-base);
      user-select: none;
      border-radius: 10px;
      min-height: 44px; /* Touch friendly standard */
      padding: 0.625rem 1.25rem;
      font-size: 0.95rem;
      line-height: 1.5;
      white-space: nowrap;
      position: relative;
      overflow: hidden;
    }

    .btn-app:focus-visible,
    .btn-app.simulated-focus {
      outline: none;
      box-shadow: 0 0 0 4px var(--color-focus-ring) !important;
    }

    /* Sizes */
    .btn-app-xs {
      min-height: 32px;
      padding: 0.25rem 0.625rem;
      font-size: 0.75rem;
      border-radius: 6px;
    }

    .btn-app-sm {
      min-height: 38px;
      padding: 0.375rem 0.875rem;
      font-size: 0.85rem;
      border-radius: 8px;
    }

    .btn-app-md {
      min-height: 44px;
      padding: 0.625rem 1.25rem;
      font-size: 0.95rem;
      border-radius: 10px;
    }

    .btn-app-lg {
      min-height: 52px;
      padding: 0.75rem 1.625rem;
      font-size: 1.05rem;
      border-radius: 12px;
    }

    .btn-app-xl {
      min-height: 60px;
      padding: 0.9rem 2rem;
      font-size: 1.15rem;
      border-radius: 14px;
      font-weight: 700;
    }

    /* Primary Variants */
    .btn-app-primary {
      background-color: var(--color-button-primary);
      color: var(--color-text-inverse);
      border-color: var(--color-button-primary);
      box-shadow: var(--shadow-primary);
    }

    .btn-app-primary:hover,
    .btn-app-primary.simulated-hover {
      background-color: var(--color-button-primary-hover);
      border-color: var(--color-button-primary-hover);
      color: var(--color-text-inverse);
      transform: translateY(-1px);
      box-shadow: 0 10px 20px rgba(13, 71, 161, 0.22);
    }

    .btn-app-primary:active,
    .btn-app-primary.simulated-active {
      background-color: var(--color-primary-800);
      border-color: var(--color-primary-800);
      transform: translateY(0);
      box-shadow: var(--shadow-sm);
    }

    /* Primary Dark Variant */
    .btn-app-primary-dark {
      background-color: var(--color-primary-800);
      color: var(--color-white);
      border-color: var(--color-primary-900);
      box-shadow: var(--shadow-sm);
    }

    .btn-app-primary-dark:hover,
    .btn-app-primary-dark.simulated-hover {
      background-color: var(--color-primary-900);
      border-color: var(--color-primary-950);
      color: var(--color-white);
      transform: translateY(-1px);
    }

    /* Gradient Mesh Primary */
    .btn-app-primary-mesh {
      background: linear-gradient(135deg, var(--color-primary-700) 0%, var(--color-primary-900) 100%);
      color: var(--color-white);
      border-color: var(--color-primary-600);
      box-shadow: var(--shadow-primary);
    }

    .btn-app-primary-mesh:hover,
    .btn-app-primary-mesh.simulated-hover {
      background: linear-gradient(135deg, var(--color-primary-800) 0%, var(--color-primary-950) 100%);
      color: var(--color-white);
      transform: translateY(-1px);
    }

    /* Secondary Gold Variants */
    .btn-app-gold {
      background-color: var(--color-secondary-500);
      color: var(--color-gray-900);
      border-color: var(--color-secondary-600);
      font-weight: 700;
      box-shadow: var(--shadow-secondary);
    }

    .btn-app-gold:hover,
    .btn-app-gold.simulated-hover {
      background-color: var(--color-secondary-600);
      border-color: var(--color-secondary-700);
      color: var(--color-white);
      transform: translateY(-1px);
      box-shadow: 0 10px 20px rgba(212, 175, 55, 0.28);
    }

    .btn-app-gold-light {
      background-color: var(--color-secondary-100);
      color: var(--color-secondary-900);
      border-color: var(--color-secondary-300);
    }

    .btn-app-gold-light:hover,
    .btn-app-gold-light.simulated-hover {
      background-color: var(--color-secondary-200);
      border-color: var(--color-secondary-400);
      color: var(--color-secondary-900);
    }

    .btn-app-gold-outline {
      background-color: transparent;
      color: var(--color-secondary-700);
      border-color: var(--color-secondary-500);
    }

    .btn-app-gold-outline:hover,
    .btn-app-gold-outline.simulated-hover {
      background-color: var(--color-secondary-50);
      border-color: var(--color-secondary-600);
      color: var(--color-secondary-800);
    }

    /* Soft & Neutral Variants */
    .btn-app-soft {
      background-color: var(--color-primary-50);
      color: var(--color-primary-700);
      border-color: var(--color-primary-100);
    }

    .btn-app-soft:hover,
    .btn-app-soft.simulated-hover {
      background-color: var(--color-primary-100);
      border-color: var(--color-primary-200);
      color: var(--color-primary-800);
    }

    .btn-app-outline {
      background-color: transparent;
      color: var(--color-text-primary);
      border-color: var(--color-border-dark);
    }

    .btn-app-outline:hover,
    .btn-app-outline.simulated-hover {
      background-color: var(--color-bg-secondary);
      border-color: var(--color-primary-400);
      color: var(--color-primary-700);
    }

    .btn-app-ghost {
      background-color: transparent;
      color: var(--color-text-secondary);
      border-color: transparent;
    }

    .btn-app-ghost:hover,
    .btn-app-ghost.simulated-hover {
      background-color: var(--color-gray-100);
      color: var(--color-text-primary);
    }

    /* Danger Actions */
    .btn-app-danger {
      background-color: #dc3545;
      color: var(--color-white);
      border-color: #dc3545;
      box-shadow: 0 4px 14px rgba(220, 53, 69, 0.22);
    }

    .btn-app-danger:hover,
    .btn-app-danger.simulated-hover {
      background-color: #bb2d3b;
      border-color: #b02a37;
      color: var(--color-white);
      transform: translateY(-1px);
    }

    .btn-app-danger-soft {
      background-color: #f8d7da;
      color: #842029;
      border-color: #f5c2c7;
    }

    .btn-app-danger-soft:hover,
    .btn-app-danger-soft.simulated-hover {
      background-color: #f1aeb5;
      color: #58151c;
    }

    /* Success Actions */
    .btn-app-success {
      background-color: #198754;
      color: var(--color-white);
      border-color: #198754;
      box-shadow: 0 4px 14px rgba(25, 135, 84, 0.22);
    }

    .btn-app-success:hover,
    .btn-app-success.simulated-hover {
      background-color: #157347;
      border-color: #146c43;
      color: var(--color-white);
      transform: translateY(-1px);
    }

    .btn-app-success-soft {
      background-color: #d1e7dd;
      color: #0f5132;
      border-color: #badbcc;
    }

    .btn-app-success-soft:hover,
    .btn-app-success-soft.simulated-hover {
      background-color: #a3cfbb;
      color: #0a3622;
    }

    /* State Modifiers */
    .btn-app-disabled,
    .btn-app:disabled {
      opacity: 0.55;
      pointer-events: none;
      cursor: not-allowed;
      box-shadow: none !important;
      transform: none !important;
    }

    .btn-app-loading {
      position: relative;
      pointer-events: none;
      color: transparent !important;
    }

    .btn-app-loading::after {
      content: "";
      position: absolute;
      width: 1.2rem;
      height: 1.2rem;
      top: 50%;
      left: 50%;
      margin-top: -0.6rem;
      margin-left: -0.6rem;
      border: 2.5px solid currentColor;
      border-right-color: transparent;
      border-radius: 50%;
      animation: spinner-border 0.75s linear infinite;
      color: inherit;
    }

    /* Icon-only and FAB Buttons */
    .btn-app-icon-only {
      width: 44px;
      height: 44px;
      padding: 0;
      border-radius: 10px;
    }

    .btn-app-icon-only.btn-app-xs { width: 32px; height: 32px; }
    .btn-app-icon-only.btn-app-sm { width: 38px; height: 38px; }
    .btn-app-icon-only.btn-app-lg { width: 52px; height: 52px; }
    .btn-app-icon-only.btn-app-xl { width: 60px; height: 60px; }

    .btn-app-fab {
      width: 56px;
      height: 56px;
      border-radius: 50%;
      padding: 0;
      box-shadow: 0 10px 25px rgba(13, 71, 161, 0.3);
      font-size: 1.3rem;
    }

    /* Interactive Playground Specific CSS */
    .playground-preview-box {
      background-color: var(--color-bg-secondary);
      border: 2px dashed var(--color-border-dark);
      border-radius: 16px;
      min-height: 200px;
      display: flex;
      align-items: center;
      justify-content: center;
      position: relative;
      transition: background-color var(--transition-fast);
      padding: 2rem;
    }

    .code-snippet-box {
      background-color: var(--color-primary-950);
      color: var(--color-primary-100);
      border-radius: 12px;
      font-family: 'Courier New', Courier, monospace;
      font-size: 0.85rem;
      direction: ltr;
      text-align: left;
      max-height: 220px;
      overflow-y: auto;
    }

    /* Nav Tab Links */
    .nav-pills-custom .nav-link {
      color: var(--color-text-secondary);
      font-weight: 600;
      border-radius: 10px;
      padding: 0.5rem 1rem;
      transition: all var(--transition-fast);
    }

    .nav-pills-custom .nav-link.active {
      background-color: var(--color-primary-600);
      color: var(--color-white);
      box-shadow: var(--shadow-sm);
    }

    .badge-code {
      font-size: 0.75rem;
      background-color: var(--color-bg-secondary);
      border: 1px solid var(--color-border);
      color: var(--color-primary-700);
      padding: 0.2rem 0.5rem;
      border-radius: 6px;
      font-family: monospace;
    }