/* Pharmacy brand theme — primary #0f6b4c */
:root {
    --primary-color: #0f6b4c;
    --secondary-color: #0a5239;
    --primary-hover: #0d5a40;
    --primary-light: #e8f5ef;
    --primary-soft: #d1ebe0;
    --primary-dark: #0a5239;
    --page-bg: #f7f9f7;
    --alert-success: #059669;
    --alert-warning: #f59e0b;
    --alert-danger: #dc2626;
    --alert-info: #0e7490;
    --badge-warning-bg: #fbbf24;
    --badge-warning-text: #1f2937;
    --primary-gradient: linear-gradient(135deg, #0f6b4c, #0a5239);
    --primary-shadow: 0 6px 20px rgba(15, 107, 76, 0.28);
}

/* ========== Brand utilities ========== */
.bg-brand,
.bg-primary-brand {
    background-color: var(--primary-color) !important;
    color: #fff !important;
}

.bg-brand-gradient {
    background: var(--primary-gradient) !important;
    color: #fff !important;
}

.text-brand,
.text-primary-brand {
    color: var(--primary-color) !important;
}

.border-brand {
    border-color: var(--primary-color) !important;
}

.btn-brand,
.btn-primary-brand {
    background: var(--primary-gradient) !important;
    color: #fff !important;
    border: none !important;
    box-shadow: var(--primary-shadow);
}

.btn-brand:hover,
.btn-primary-brand:hover {
    background: var(--primary-hover) !important;
}

.card-brand-active {
    border: 1.5px solid var(--primary-color) !important;
    background: var(--primary-light) !important;
}

/* ========== Remap Tailwind action blues/emerald → primary #0f6b4c ========== */
.bg-blue-400,
.bg-blue-500,
.bg-blue-600,
.bg-blue-700,
.bg-blue-800,
.bg-indigo-400,
.bg-indigo-500,
.bg-indigo-600,
.bg-indigo-700,
.bg-sky-500,
.bg-sky-600,
.bg-sky-700,
.bg-cyan-500,
.bg-cyan-600,
.bg-cyan-700,
.bg-purple-500,
.bg-purple-600,
.bg-violet-500,
.bg-violet-600,
.bg-emerald-500,
.bg-emerald-600,
.bg-emerald-700,
.bg-emerald-800,
.bg-emerald-900,
.bg-green-500,
.bg-green-600,
.bg-green-700 {
    background-color: var(--primary-color) !important;
}

.hover\:bg-blue-500:hover,
.hover\:bg-blue-600:hover,
.hover\:bg-blue-700:hover,
.hover\:bg-blue-800:hover,
.hover\:bg-indigo-600:hover,
.hover\:bg-indigo-700:hover,
.hover\:bg-sky-600:hover,
.hover\:bg-sky-700:hover,
.hover\:bg-cyan-600:hover,
.hover\:bg-cyan-700:hover,
.hover\:bg-purple-600:hover,
.hover\:bg-purple-700:hover,
.hover\:bg-emerald-600:hover,
.hover\:bg-emerald-700:hover,
.hover\:bg-emerald-800:hover,
.hover\:bg-emerald-900:hover,
.hover\:bg-green-600:hover,
.hover\:bg-green-700:hover {
    background-color: var(--primary-hover) !important;
}

.text-blue-500,
.text-blue-600,
.text-blue-700,
.text-blue-800,
.text-indigo-500,
.text-indigo-600,
.text-indigo-700,
.text-sky-600,
.text-sky-700,
.text-cyan-600,
.text-cyan-700 {
    color: var(--primary-color) !important;
}

.border-blue-300,
.border-blue-400,
.border-blue-500,
.border-blue-600,
.border-blue-700,
.border-indigo-500,
.border-indigo-600,
.focus\:border-blue-500:focus,
.focus\:border-red-500:focus {
    border-color: var(--primary-color) !important;
}

.focus\:ring-blue-300:focus,
.focus\:ring-blue-400:focus,
.focus\:ring-blue-500:focus,
.focus\:ring-indigo-500:focus,
.focus\:ring-red-500:focus {
    --tw-ring-color: rgba(15, 107, 76, 0.45) !important;
}

/* Soft blue chips → soft green */
.bg-blue-50 { background-color: var(--primary-light) !important; }
.bg-blue-100 { background-color: var(--primary-soft) !important; }
.bg-indigo-50 { background-color: var(--primary-light) !important; }
.bg-indigo-100 { background-color: var(--primary-soft) !important; }

/* Gradients used on summary cards / CTA buttons */
.from-blue-400,
.from-blue-500,
.from-blue-600,
.from-indigo-500,
.from-indigo-600,
.from-sky-500,
.from-cyan-500,
.from-purple-500,
.from-violet-500,
.from-green-500,
.from-green-600,
.from-emerald-600,
.from-emerald-700,
.from-emerald-800 {
    --tw-gradient-from: #0f6b4c var(--tw-gradient-from-position) !important;
    --tw-gradient-to: rgb(15 107 76 / 0) var(--tw-gradient-to-position) !important;
    --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to) !important;
}

.to-blue-500,
.to-blue-600,
.to-blue-700,
.to-indigo-600,
.to-indigo-700,
.to-sky-600,
.to-cyan-600,
.to-purple-600,
.to-violet-600,
.to-green-600,
.to-green-700,
.to-emerald-700,
.to-emerald-800,
.to-emerald-900 {
    --tw-gradient-to: #0a5239 var(--tw-gradient-to-position) !important;
}

.hover\:from-blue-600:hover,
.hover\:from-indigo-600:hover,
.hover\:from-green-600:hover,
.hover\:from-emerald-800:hover {
    --tw-gradient-from: #0d5a40 var(--tw-gradient-from-position) !important;
}

.hover\:to-blue-700:hover,
.hover\:to-indigo-700:hover,
.hover\:to-green-700:hover,
.hover\:to-emerald-900:hover {
    --tw-gradient-to: #084530 var(--tw-gradient-to-position) !important;
}

/* Primary filter/search reds → brand (keep logout/delete via exclusions below) */
button.bg-red-600,
button.bg-red-500,
a.bg-red-600:not(.logout-link),
input[type="submit"].bg-red-600,
.bg-red-600.text-white:not(.logout-link):not([class*="delete"]):not([class*="trash"]) {
    background-color: var(--primary-color) !important;
}

button.hover\:bg-red-700:hover,
button.bg-red-600:hover,
a.bg-red-600:not(.logout-link):hover {
    background-color: var(--primary-hover) !important;
}

/* Keep true danger actions red */
.logout-link,
.btn-danger,
.bg-red-500.logout-link,
button[onclick*="delete"],
button[onclick*="Delete"],
a[onclick*="delete"],
.swal2-deny,
.swal2-cancel {
    background-color: var(--alert-danger) !important;
}

.logout-link:hover {
    background-color: #b91c1c !important;
}

/* Toggle switches checked state */
.peer-checked\:bg-blue-600:checked,
.peer:checked ~ .peer-checked\:bg-blue-600,
input:checked + .peer-checked\:bg-blue-600,
.peer-checked\:bg-blue-600 {
    background-color: var(--primary-color) !important;
}

/* Remap leftover orange hex utilities */
[class*="bg-[#fc4b00"],
[class*="bg-[#f56e14"],
[class*="bg-[#e05c00"] {
    background-color: var(--primary-color) !important;
}

[class*="text-[#fc4b00"],
[class*="text-[#f56e14"] {
    color: var(--primary-color) !important;
}

/* SweetAlert2 */
.swal2-confirm {
    background-color: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
}

.swal2-confirm:focus {
    box-shadow: 0 0 0 3px rgba(15, 107, 76, 0.35) !important;
}

/* Forms */
input:focus,
select:focus,
textarea:focus {
    outline-color: var(--primary-color);
}

/* Page shell wash */
.bg-gradient-to-br.from-blue-50.via-indigo-50.to-purple-50 {
    background-image: linear-gradient(to bottom right, #f7f9f7, #eef7f2, #e8f5ef) !important;
}

/* Soft status badges for pharmacy */
.alert-success-brand,
.badge-success-brand {
    background: #ecfdf5 !important;
    color: var(--alert-success) !important;
}

.alert-warning-brand,
.badge-warning-brand {
    background: #fffbeb !important;
    color: #b45309 !important;
}

.alert-danger-brand,
.badge-danger-brand {
    background: #fef2f2 !important;
    color: var(--alert-danger) !important;
}

.badge-notify {
    background: var(--badge-warning-bg) !important;
    color: var(--badge-warning-text) !important;
    border-radius: 9999px;
    font-weight: 700;
    min-width: 1.25rem;
    height: 1.25rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.7rem;
    padding: 0 0.35rem;
}
