:root {
  /* Apstar logo palette */
  --color-primary-400: #6dc55f;
  --color-primary-500: #52b348;
  --color-primary-600: #3f9438;
  --color-secondary-500: #29256f;
  --color-accent-500: #f7b51f;
  --color-accent-600: #d99a0e;
  --color-surface-50: #f7faf4;
  --color-ink-900: #16153f;

  /* Other colors */
  --color-success-500: #22c55e;
  --color-error-500: #ef4444;
  --color-warning-500: #f59e0b;
}

/* Theme-specific (still using Apstar Sacco by default) */
[data-theme="port_sacco"] {
  --color-primary-500: #52b348;
  --color-primary-400: #6dc55f;
  --color-primary-600: #3f9438;
  --color-secondary-500: #29256f;
  --color-accent-500: #f7b51f;
}

/* Utility Classes */
.bg-theme-primary { background-color: var(--color-primary-500); }
.bg-theme-primary-light { background-color: var(--color-primary-400); }
.bg-theme-primary-dark { background-color: var(--color-primary-600); }
.bg-theme-secondary { background-color: var(--color-secondary-500); }
.bg-theme-accent { background-color: var(--color-accent-500); }



.text-theme-primary { color: var(--color-primary-500); }
.text-theme-primary-light { color: var(--color-primary-400); }
.text-theme-primary-dark { color: var(--color-primary-600); }


.text-theme-secondary { color: var(--color-secondary-500); }
.text-theme-accent { color: var(--color-accent-500); }
.text-theme-primary-light { color: var(--color-primary-400); }
.text-theme-primary-dark { color: var(--color-primary-600); }



.border-theme-primary { border-color: var(--color-primary-500); }
.border-theme-primary-light { border-color: var(--color-primary-400); }
.border-theme-primary-dark { border-color: var(--color-primary-600); }
.border-theme-secondary { border-color: var(--color-secondary-500); }
.border-theme-accent { border-color: var(--color-accent-500); }

.hover\:bg-theme-primary-hover:hover { background-color: var(--color-primary-600); }
.hover\:text-theme-primary:hover { color: var(--color-primary-500); }

.apstar-btn-primary {
  background: linear-gradient(135deg, var(--color-secondary-500), #34308a);
  color: #fff;
  box-shadow: 0 12px 28px rgba(41, 37, 111, 0.22);
}

.apstar-btn-primary:hover {
  background: linear-gradient(135deg, #211e5d, var(--color-secondary-500));
}

.apstar-btn-secondary {
  background: linear-gradient(135deg, var(--color-primary-500), var(--color-primary-600));
  color: #fff;
  box-shadow: 0 12px 28px rgba(82, 179, 72, 0.2);
}

.apstar-focus:focus {
  border-color: var(--color-primary-500);
  box-shadow: 0 0 0 3px rgba(82, 179, 72, 0.2);
  outline: none;
}

/* Legacy Tailwind color compatibility for existing templates */
.bg-blue-500,
.bg-blue-600,
.bg-blue-700,
.hover\:bg-blue-700:hover {
  background-color: var(--color-secondary-500) !important;
}

.bg-green-500,
.bg-green-600,
.bg-emerald-500,
.hover\:bg-green-700:hover {
  background-color: var(--color-primary-500) !important;
}

.bg-orange-500,
.bg-orange-600,
.bg-yellow-500 {
  background-color: var(--color-accent-500) !important;
}

.bg-purple-500,
.bg-purple-600,
.bg-indigo-500 {
  background-color: var(--color-secondary-500) !important;
}

.text-blue-600,
.text-blue-700,
.hover\:text-blue-800:hover,
.text-purple-600,
.text-indigo-600 {
  color: var(--color-secondary-500) !important;
}

.text-green-600,
.text-emerald-600,
.hover\:text-green-600:hover {
  color: var(--color-primary-600) !important;
}

.text-orange-600,
.text-yellow-600 {
  color: var(--color-accent-600) !important;
}

.border-blue-500,
.border-green-500,
.border-purple-500,
.border-orange-500 {
  border-color: var(--color-primary-500) !important;
}

.focus\:ring-blue-500:focus,
.focus\:ring-green-500:focus,
.focus\:border-blue-500:focus {
  --tw-ring-color: rgba(82, 179, 72, 0.35) !important;
  border-color: var(--color-primary-500) !important;
}

.from-blue-600,
.from-purple-600,
.from-indigo-500 {
  --tw-gradient-from: var(--color-secondary-500) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(41, 37, 111, 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-blue-700,
.to-purple-700,
.to-purple-600 {
  --tw-gradient-to: #34308a var(--tw-gradient-to-position) !important;
}

.from-green-600,
.from-emerald-500 {
  --tw-gradient-from: var(--color-primary-500) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(82, 179, 72, 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-green-700,
.to-emerald-600 {
  --tw-gradient-to: var(--color-primary-600) var(--tw-gradient-to-position) !important;
}

.from-orange-600 {
  --tw-gradient-from: var(--color-accent-500) var(--tw-gradient-from-position) !important;
  --tw-gradient-to: rgba(247, 181, 31, 0) var(--tw-gradient-to-position) !important;
  --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-orange-700 {
  --tw-gradient-to: var(--color-accent-600) var(--tw-gradient-to-position) !important;
}
