/* Add your custom CSS styles here */ 

.navbar-dark.bg-primary .navbar-brand {
    color: #f8f9fa; /* A light grey/off-white, common for navbar-dark text */
}

.navbar-dark.bg-primary .navbar-brand:hover,
.navbar-dark.bg-primary .navbar-brand:focus {
    color: #ffffff; /* Slightly brighter on hover/focus */
}

/* Navbar general link styling */
.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.85); /* Slightly more opaque for better visibility */
    padding-left: 0.75rem;
    padding-right: 0.75rem;
}

.navbar-dark .navbar-nav .nav-link:hover,
.navbar-dark .navbar-nav .nav-link:focus {
    color: #ffffff;
}

.navbar-dark .navbar-nav .nav-link.active {
    color: #ffffff;
    font-weight: 500;
}

/* Align icons vertically with text in navbar brand and links */
.navbar-brand i,
.navbar-nav .nav-link i {
    vertical-align: middle;
    position: relative; /* Allows fine-tuning if needed */
    top: -1px; /* Adjust as needed for perfect alignment with your icon font */
}


/* Profile image in navbar */
.profile-image-nav {
    width: 32px;
    height: 32px;
    object-fit: cover;
}

/* Spacing for left-aligned nav items */
.navbar-nav.me-auto .nav-item {
    margin-right: 0.5rem; /* Add some space between the main nav items */
} 

/* Full page loader styles */
#loaderOverlay {
    position: fixed; /* Cover the whole page */
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.7); /* Semi-transparent black background */
    /* display property is intentionally_omitted here. */
    /* Initial hiding is handled by 'd-none' class and inline style in HTML. */
    /* JavaScript will set display:flex when needed. */
    justify-content: center;
    align-items: center;
    z-index: 10000; /* Ensure it's on top of everything */
}

#loaderOverlay .spinner-border {
    width: 3rem; /* Make spinner a bit larger */
    height: 3rem;
}

/* Custom styles for navbar toggler icon to ensure visibility */
.navbar-dark .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.25); /* Lighter border for toggler button */
}

.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}

/* Remove list markers from navbar items */
.navbar-nav {
    list-style: none;
    padding-left: 0;
}

.navbar-nav .nav-item {
    /* If direct children of .navbar-nav are LIs, this is redundant but harmless. 
       If there's another UL/OL in between, this might be needed. 
       But .navbar-nav itself being the UL is most common. */
    list-style: none; 
} 

/* Fix for Bootstrap collapsible table rows not respecting colspan */
tr.collapse.show {
    display: table-row !important;
} 

/* Ensure Bootstrap Carousel items behave as expected */
.carousel-item {
    display: none; /* Default for non-active items, overridden by .active or during transition */
    position: relative; 
    transition: transform .6s ease-in-out; /* Match Bootstrap's default transition */
}

.carousel-item.active {
    display: block !important; /* Ensure active item is always block */
    z-index: 1; 
}

/* Styles for during slide transition (optional, Bootstrap JS usually handles this with transform) */
.carousel-item-next, 
.carousel-item-prev {
    display: block; /* Must be block to be part of the transition */
    position: absolute;
    top: 0;
    width: 100%;
} 

/* Darker carousel side controls (prev/next arrows) for white backgrounds */
.carousel-control-prev-icon,
.carousel-control-next-icon {
    filter: invert(60%) grayscale(100%);
} 

/* Popover styling for metric explanations */
.popover-dark { background-color:#212529; color:#fff; }
.popover-dark .popover-header { background-color:#343a40; color:#fff; border-bottom:1px solid #495057; }
.popover-dark .popover-body { color:#fff; }
.wide-popover { max-width: 460px; }
.popover pre { background:#1f2937; color:#e5e7eb; padding:8px; border-radius:4px; overflow:auto; }
.popover .nav-tabs .nav-link { padding: .25rem .5rem; }
.popover .copy-btn { cursor:pointer; }

/* ========================================
   Real-Time AI Enrichment Indicators
   ======================================== */

/* Progress container styling */
#enrichment-progress-container {
    border-left: 4px solid #17a2b8;
    background-color: #d1ecf1;
    border-radius: 0.25rem;
}

#enrichment-progress-container h5 {
    color: #0c5460;
    font-weight: 600;
}

#enrichment-progress-text {
    color: #0c5460;
    margin-bottom: 0.5rem;
}

/* Newly enriched cells flash green */
@keyframes flashGreen {
    0% { 
        background-color: #d4edda;
        transform: scale(1.05);
    }
    50% {
        background-color: #c3e6cb;
    }
    100% { 
        background-color: transparent;
        transform: scale(1);
    }
}

.newly-enriched {
    animation: flashGreen 2s ease-in-out;
    font-weight: bold;
    color: #155724 !important;
    transition: all 0.3s ease;
}

/* Processing indicator for properties being enriched */
.property-processing {
    position: relative;
}

.property-processing::after {
    content: "⚙️";
    position: absolute;
    right: 5px;
    top: 50%;
    transform: translateY(-50%);
    animation: spin 2s linear infinite;
    font-size: 14px;
}

@keyframes spin {
    100% { 
        transform: translateY(-50%) rotate(360deg); 
    }
}

/* Progress bar customizations */
#enrichment-progress-bar {
    font-weight: 600;
    font-size: 14px;
    line-height: 25px;
    transition: width 0.6s ease;
}

/* Completed state */
#enrichment-progress-container.completed {
    border-left-color: #28a745;
    background-color: #d4edda;
}

#enrichment-progress-container.completed h5,
#enrichment-progress-container.completed #enrichment-progress-text {
    color: #155724;
}