/* funnelsift Custom Theme - FORCE OVERRIDE ALL DAISYUI STYLES */

/* Nuclear option - override everything with brand colors */
* {
  --tw-bg-opacity: 1 !important;
}

/* Force white background everywhere */
html, body {
  background-color: #FEFFFE !important;
  color: #313999 !important;
}

/* Force all backgrounds to be white or lavender */
.bg-base-100 {
  background-color: #FEFFFE !important;
}

.bg-base-200 {
  background-color: #E9EBF8 !important;
}

.bg-base-300 {
  background-color: #D4D8F0 !important;
}

/* Force text colors */
.text-base-content {
  color: #313999 !important;
}

.text-neutral {
  color: #8D818C !important;
}

/* Force button colors */
.btn-primary {
  background-color: #313999 !important;
  border-color: #313999 !important;
  color: #FEFFFE !important;
}

.btn-primary:hover {
  background-color: #1E235C !important;
  border-color: #1E235C !important;
}

.btn-secondary {
  background-color: #36A9AE !important;
  border-color: #36A9AE !important;
  color: #FEFFFE !important;
}

.btn-secondary:hover {
  background-color: #26797D !important;
  border-color: #26797D !important;
}

.btn-success {
  background-color: #36A9AE !important;
  border-color: #36A9AE !important;
  color: #FEFFFE !important;
}

.btn-error {
  background-color: #EF4444 !important;
  border-color: #EF4444 !important;
  color: #FEFFFE !important;
}

.btn-warning {
  background-color: #F59E0B !important;
  border-color: #F59E0B !important;
  color: #FEFFFE !important;
}

/* Force navbar */
.navbar {
  background-color: #FEFFFE !important;
  border-bottom: 1px solid #D4D8F0 !important;
}

/* Force card backgrounds */
.card {
  background-color: #FEFFFE !important;
}

/* Force input styles */
.input {
  background-color: #FEFFFE !important;
  border-color: #D4D8F0 !important;
  color: #313999 !important;
}

.select {
  background-color: #FEFFFE !important;
  border-color: #D4D8F0 !important;
  color: #313999 !important;
}

.textarea {
  background-color: #FEFFFE !important;
  border-color: #D4D8F0 !important;
  color: #313999 !important;
}

/* Force modal styles */
.modal-box {
  background-color: #FEFFFE !important;
  color: #313999 !important;
}

.modal-backdrop {
  background-color: rgba(0, 0, 0, 0.5) !important;
}

/* Force stats */
.stats {
  background-color: #FEFFFE !important;
}

.stat {
  background-color: #FEFFFE !important;
}

.stat-value {
  color: #313999 !important;
}

.stat-title {
  color: #8D818C !important;
}

.stat-desc {
  color: #8D818C !important;
}

/* Force text colors by class */
.text-primary {
  color: #313999 !important;
}

.text-secondary {
  color: #36A9AE !important;
}

.text-success {
  color: #36A9AE !important;
}

.text-error {
  color: #EF4444 !important;
}

.text-warning {
  color: #F59E0B !important;
}

/* Force progress bars */
.progress-primary {
  background-color: #E9EBF8 !important;
}

.progress-primary::-webkit-progress-value {
  background-color: #313999 !important;
}

.progress-primary::-moz-progress-bar {
  background-color: #313999 !important;
}

/* Custom gradients using brand colors */
.gradient-primary {
  background: linear-gradient(135deg, #313999 0%, #36A9AE 100%);
}

.gradient-secondary {
  background: linear-gradient(135deg, #565FC8 0%, #1E235C 100%);
}

.gradient-accent {
  background: linear-gradient(135deg, #73CFD4 0%, #26797D 100%);
}

/* Hero gradient with light primary to light secondary */
.gradient-hero {
  background: linear-gradient(135deg, #7B83C7 0%, #7BCACE 100%) !important;
}

/* Enhanced HTMX loading indicators with brand colors */
.htmx-indicator {
    opacity: 0;
    transition: opacity 0.3s ease;
}

.htmx-request .htmx-indicator {
    opacity: 1;
}

.htmx-request {
    position: relative;
}

/* Loading overlay for forms and buttons */
.htmx-request.loading-overlay::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(254, 255, 254, 0.8);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: inherit;
    z-index: 10;
}

/* Button loading states */
.btn.htmx-request {
    opacity: 0.7;
    pointer-events: none;
}

.btn.htmx-request .loading {
    display: inline-block;
}

/* Form loading states */
.form-loading {
    position: relative;
}

.form-loading::after {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(233, 235, 248, 0.9);
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: 0.5rem;
    z-index: 10;
}

/* Alpine.js transitions */
[x-cloak] {
    display: none !important;
}

/* Smooth transitions for better UX */
.btn, .card, .link, .input, .select, .textarea {
    transition: all 0.2s ease;
}

/* Enhanced focus states for accessibility using brand colors */
.btn:focus-visible, .input:focus-visible, .select:focus-visible, .textarea:focus-visible {
    outline: 2px solid #313999;
    outline-offset: 2px;
}

/* Navigation enhancements */
.nav-link {
    position: relative;
    transition: all 0.2s ease;
}

.nav-link:hover {
    background: rgba(233, 235, 248, 0.5);
}

.nav-link.active {
    background: #313999;
    color: #FEFFFE;
}

.nav-link.active::before {
    content: '';
    position: absolute;
    left: 0;
    top: 0;
    bottom: 0;
    width: 4px;
    background: #36A9AE;
}

/* Progress indicators */
.progress-ring {
    animation: spin 1s linear infinite;
}

@keyframes spin {
    0% { transform: rotate(0deg); }
    100% { transform: rotate(360deg); }
}

/* Toast notifications with brand colors */
.toast {
    position: fixed;
    top: 1rem;
    right: 1rem;
    left: 1rem;
    z-index: 50;
    max-width: calc(100vw - 2rem);
    margin: 0 auto;
}

@media (min-width: 640px) {
    .toast {
        left: auto;
        max-width: 24rem;
    }
}

/* Card hover effects */
.card-hover:hover {
    transform: translateY(-2px);
    box-shadow: 0 10px 25px -5px rgba(49, 57, 153, 0.1), 0 10px 10px -5px rgba(49, 57, 153, 0.04);
}

/* Status indicators */
.status-indicator {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.status-indicator::before {
    content: '';
    width: 0.5rem;
    height: 0.5rem;
    border-radius: 50%;
}

.status-indicator.success::before {
    background: #36A9AE;
}

.status-indicator.error::before {
    background: #EF4444;
}

.status-indicator.warning::before {
    background: #F59E0B;
}

.status-indicator.info::before {
    background: #73CFD4;
}

/* Force badge colors */
.badge {
  background-color: #E9EBF8 !important;
  color: #313999 !important;
  border-color: #D4D8F0 !important;
}

.badge-primary {
  background-color: #313999 !important;
  color: #FEFFFE !important;
  border-color: #313999 !important;
}

.badge-secondary {
  background-color: #36A9AE !important;
  color: #FEFFFE !important;
  border-color: #36A9AE !important;
}

.badge-accent {
  background-color: #565FC8 !important;
  color: #FEFFFE !important;
  border-color: #565FC8 !important;
}

.badge-info {
  background-color: #73CFD4 !important;
  color: #313999 !important;
  border-color: #73CFD4 !important;
}

/* Force label styles */
.label-text {
  color: #313999 !important;
}

.label-text-alt {
  color: #8D818C !important;
}

/* Force dialog/modal title */
.modal-box h3 {
  color: #313999 !important;
}

/* Fix placeholder text color */
.input::placeholder,
.textarea::placeholder,
.select::placeholder {
  color: #8D818C !important;
  opacity: 0.7 !important;
}

/* Ensure text in form controls is visible */
.form-control input,
.form-control textarea,
.form-control select {
  background-color: #FEFFFE !important;
  color: #313999 !important;
}

/* Fix list styles in modals and cards */
ul.list-disc li {
  color: #313999 !important;
}

/* Ensure proper text contrast in all contexts */
p, div, span {
  color: inherit;
}

/* Force proper styling for dynamically generated content */
.modal-box p,
.modal-box div,
.modal-box span,
.modal-box li {
  color: #313999 !important;
}

/* Fix text opacity utilities */
.text-base-content\/60 {
  color: #313999 !important;
  opacity: 0.6 !important;
}

.text-base-content\/70 {
  color: #313999 !important;
  opacity: 0.7 !important;
}