/* Purple color variables */
:root {
    --bs-purple: #6045ff;
    --bs-purple-rgb: 96, 69, 255;
    --bs-purple-bg-subtle: rgba(96, 69, 255, 0.1);
    --bs-purple-border-subtle: rgba(96, 69, 255, 0.3);
    --bs-purple-text-emphasis: #3c2ca6;
}

[data-bs-theme=dark] {
    --bs-purple: #8a7aff;
    --bs-purple-rgb: 138, 122, 255;
    --bs-purple-bg-subtle: rgba(96, 69, 255, 0.2);
    --bs-purple-border-subtle: rgba(138, 122, 255, 0.4);
    --bs-purple-text-emphasis: #b9afff;
}

/* Purple button */
.btn-purple {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--bs-purple);
    --bs-btn-border-color: var(--bs-purple);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #4a35cc;
    --bs-btn-hover-border-color: #4530c2;
    --bs-btn-focus-shadow-rgb: 123, 104, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: #4530c2;
    --bs-btn-active-border-color: #3f2bb8;
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--bs-purple);
    --bs-btn-disabled-border-color: var(--bs-purple);
}

/* Purple outline button */
.btn-outline-purple {
    --bs-btn-color: var(--bs-purple);
    --bs-btn-border-color: var(--bs-purple);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--bs-purple);
    --bs-btn-hover-border-color: var(--bs-purple);
    --bs-btn-focus-shadow-rgb: 96, 69, 255;
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--bs-purple);
    --bs-btn-active-border-color: var(--bs-purple);
    --bs-btn-disabled-color: var(--bs-purple);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--bs-purple);
}

/* Purple icon button */
.icon-btn-purple {
    background-color: var(--bs-purple);
    border-color: var(--bs-purple);
    color: #fff;
}

.icon-btn-purple:hover {
    background-color: #4a35cc;
    border-color: #4530c2;
    color: #fff;
}

.icon-btn-outline-purple {
    background-color: transparent;
    color: var(--bs-purple);
    border-color: var(--bs-purple);
}

.icon-btn-outline-purple:hover {
    background-color: var(--bs-purple);
    color: #fff;
}

.icon-btn-blur-purple {
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    background-color: rgba(96, 69, 255, 0.15);
    border: 1px solid rgba(96, 69, 255, 0.2);
    color: var(--bs-purple);
}

.icon-btn-blur-purple:hover {
    background-color: rgba(96, 69, 255, 0.25);
    border-color: rgba(96, 69, 255, 0.3);
}

/* Purple text colors */
.text-purple {
    color: var(--bs-purple) !important;
}

.text-purple-emphasis {
    color: var(--bs-purple-text-emphasis) !important;
}

/* Purple backgrounds */
.bg-purple {
    background-color: var(--bs-purple) !important;
}

.bg-purple-subtle {
    background-color: var(--bs-purple-bg-subtle) !important;
}

.bg-purple-gradient {
    background: linear-gradient(135deg, var(--bs-purple), #8a7aff) !important;
}

/* Purple borders */
.border-purple {
    border-color: var(--bs-purple) !important;
}

.border-purple-subtle {
    border-color: var(--bs-purple-border-subtle) !important;
}

/* Purple alert */
.alert-purple {
    --bs-alert-color: var(--bs-purple-text-emphasis);
    --bs-alert-bg: var(--bs-purple-bg-subtle);
    --bs-alert-border-color: var(--bs-purple-border-subtle);
    --bs-alert-link-color: var(--bs-purple-text-emphasis);
}

/* Purple badge */
.badge-purple {
    --bs-badge-color: #fff;
    --bs-badge-bg: var(--bs-purple);
}

.badge-outline-purple {
    color: var(--bs-purple);
    border: 1px solid var(--bs-purple);
    background-color: transparent;
}

/* Purple focus ring */
.focus-ring-purple {
    --bs-focus-ring-color: rgba(var(--bs-purple-rgb), var(--bs-focus-ring-opacity, 0.25));
}

/* Purple link */
.link-purple {
    color: RGBA(var(--bs-purple-rgb), var(--bs-link-opacity, 1)) !important;
    text-decoration-color: RGBA(var(--bs-purple-rgb), var(--bs-link-underline-opacity, 1)) !important;
}

.link-purple:focus,
.link-purple:hover {
    color: RGBA(74, 53, 204, var(--bs-link-opacity, 1)) !important;
    text-decoration-color: RGBA(74, 53, 204, var(--bs-link-underline-opacity, 1)) !important;
}

/* Purple table */
.table-purple {
    --bs-table-color: #000;
    --bs-table-bg: rgba(96, 69, 255, 0.1);
    --bs-table-border-color: rgba(96, 69, 255, 0.2);
    --bs-table-striped-bg: rgba(96, 69, 255, 0.075);
    --bs-table-striped-color: #000;
    --bs-table-active-bg: rgba(96, 69, 255, 0.2);
    --bs-table-active-color: #000;
    --bs-table-hover-bg: rgba(96, 69, 255, 0.15);
    --bs-table-hover-color: #000;
}

/* Purple list group */
.list-group-item-purple {
    --bs-list-group-color: var(--bs-purple-text-emphasis);
    --bs-list-group-bg: var(--bs-purple-bg-subtle);
    --bs-list-group-border-color: var(--bs-purple-border-subtle);
    --bs-list-group-action-hover-color: var(--bs-emphasis-color);
    --bs-list-group-action-hover-bg: var(--bs-purple-border-subtle);
    --bs-list-group-action-active-color: var(--bs-emphasis-color);
    --bs-list-group-action-active-bg: var(--bs-purple-border-subtle);
    --bs-list-group-active-color: var(--bs-purple-bg-subtle);
    --bs-list-group-active-bg: var(--bs-purple-text-emphasis);
    --bs-list-group-active-border-color: var(--bs-purple-text-emphasis);
}

/* Purple blur effects */
.blur-purple {
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    background-color: rgba(96, 69, 255, 0.1);
    border: 1px solid rgba(96, 69, 255, 0.15);
}

.blur-card-purple {
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    background-color: rgba(96, 69, 255, 0.15);
    border: 1px solid rgba(96, 69, 255, 0.2);
    border-radius: var(--bs-border-radius-lg);
}

/* Purple shadow */
.shadow-purple {
    box-shadow: 0 4px 14px 0 rgba(96, 69, 255, 0.2) !important;
}

.shadow-purple-lg {
    box-shadow: 0 10px 30px 0 rgba(96, 69, 255, 0.25) !important;
}

/* Purple progress bar */
.progress-bar-purple {
    background-color: var(--bs-purple) !important;
}

/* Purple form controls */
.form-check-input-purple:checked {
    background-color: var(--bs-purple);
    border-color: var(--bs-purple);
}

.form-control:focus {
    border-color: var(--bs-purple);
    box-shadow: 0 0 0 1px var(--bs-purple);
}

/* Utility classes for purple shades */
.purple-100 { color: #f0eeff !important; }
.purple-200 { color: #e1ddff !important; }
.purple-300 { color: #c2bbff !important; }
.purple-400 { color: #a399ff !important; }
.purple-500 { color: #6045ff !important; }
.purple-600 { color: #4a35cc !important; }
.purple-700 { color: #352599 !important; }
.purple-800 { color: #201a66 !important; }
.purple-900 { color: #0b0833 !important; }

/* Background shades */
.bg-purple-100 { background-color: #f0eeff !important; }
.bg-purple-200 { background-color: #e1ddff !important; }
.bg-purple-300 { background-color: #c2bbff !important; }
.bg-purple-400 { background-color: #a399ff !important; }
.bg-purple-500 { background-color: #6045ff !important; }
.bg-purple-600 { background-color: #4a35cc !important; }
.bg-purple-700 { background-color: #352599 !important; }
.bg-purple-800 { background-color: #201a66 !important; }
.bg-purple-900 { background-color: #0b0833 !important; }
