/**
 * Banner Standardization CSS
 * Ensures consistent whitespace and styling across all banner types
 * Version: 1.0.0
 */

/* =============================================================================
   BANNER SPACING VARIABLES
   ============================================================================= */
:root {
    --banner-margin-top: 0;
    --banner-margin-bottom: 1.5rem;
    --banner-padding: 1.5rem 2rem;
    --banner-border-radius: 16px;
    --banner-shadow: 0 8px 32px rgba(124, 58, 237, 0.2);
}

/* =============================================================================
   UNIVERSAL BANNER RESET
   All banners should have consistent spacing from the top of content area
   ============================================================================= */

/* Organization Banner - Used on dashboard for regular users */
.org-banner {
    margin: var(--banner-margin-top) 0 var(--banner-margin-bottom) 0 !important;
    border-radius: var(--banner-border-radius) !important;
}

/* Super Admin Banner - Used on admin dashboard */
.super-admin-banner {
    margin: var(--banner-margin-top) 0 var(--banner-margin-bottom) 0 !important;
    border-radius: var(--banner-border-radius) !important;
}

/* App Banner - Generic banner used across various pages */
.app-banner {
    margin: var(--banner-margin-top) 0 var(--banner-margin-bottom) 0 !important;
    border-radius: var(--banner-border-radius) !important;
}

/* Organization Banner in cards/containers */
.organization-banner {
    margin: var(--banner-margin-top) 0 var(--banner-margin-bottom) 0 !important;
    border-radius: var(--banner-border-radius) !important;
}

/* =============================================================================
   MAIN CONTENT AREA PADDING
   Ensure consistent top padding in main content to give banners breathing room
   ============================================================================= */

/* Main content area should have consistent top padding */
#main-content {
    padding-top: 1.5rem;
}

/* When sidebar is present, adjust for proper alignment */
@media (min-width: 769px) {
    #main-content {
        padding: 1.5rem;
    }
}

/* Mobile adjustments */
@media (max-width: 768px) {
    #main-content {
        padding: 1rem;
        padding-top: 70px; /* Account for mobile header */
    }

    :root {
        --banner-margin-bottom: 1rem;
        --banner-padding: 1.25rem 1rem;
        --banner-border-radius: 12px;
    }
}

/* =============================================================================
   BANNER CONTENT PADDING STANDARDIZATION
   ============================================================================= */

.org-banner-content,
.super-admin-banner-content,
.app-banner-content,
.organization-banner-content {
    padding: var(--banner-padding);
}

/* =============================================================================
   PAGE-SPECIFIC OVERRIDES
   Ensure pages that use banners don't add extra spacing
   ============================================================================= */

/* Remove default page header margin when banner is present */
.has-app-banner .page-header,
.has-banner .page-header {
    margin-top: 0;
}

/* Dashboard specific - no extra top padding needed */
.dashboard-content,
.admin-dashboard {
    padding-top: 0;
}

/* Container adjustments when banner is first child */
.container-fluid > .org-banner:first-child,
.container-fluid > .super-admin-banner:first-child,
.container-fluid > .app-banner:first-child,
.container > .org-banner:first-child,
.container > .super-admin-banner:first-child,
.container > .app-banner:first-child {
    margin-top: 0;
}

/* =============================================================================
   FLASH MESSAGES SPACING
   Flash messages should appear above banners with proper spacing
   ============================================================================= */

.flash-messages {
    margin-bottom: 1rem;
}

.flash-messages + .org-banner,
.flash-messages + .super-admin-banner,
.flash-messages + .app-banner {
    margin-top: 0;
}

/* =============================================================================
   BANNER VISUAL CONSISTENCY
   ============================================================================= */

/* Ensure all banners have consistent visual depth */
.org-banner,
.super-admin-banner,
.app-banner,
.organization-banner {
    box-shadow: var(--banner-shadow);
    position: relative;
    overflow: hidden;
}

/* Consistent gradient overlay for all banners */
.org-banner::before,
.super-admin-banner::before,
.app-banner::before {
    content: '';
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background:
        radial-gradient(circle at 20% 50%, rgba(255, 255, 255, 0.1) 0%, transparent 50%),
        radial-gradient(circle at 80% 20%, rgba(255, 255, 255, 0.05) 0%, transparent 50%);
    pointer-events: none;
    z-index: 1;
}

/* Ensure content is above overlay */
.org-banner-content,
.super-admin-banner-content,
.app-banner-content {
    position: relative;
    z-index: 2;
}

/* =============================================================================
   BANNER TYPOGRAPHY STANDARDIZATION
   ============================================================================= */

.org-banner-title,
.super-admin-title,
.app-banner-title {
    font-size: 1.75rem;
    font-weight: 700;
    color: white !important;
    margin: 0 0 0.5rem 0;
    line-height: 1.2;
    text-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.org-banner-subtitle,
.super-admin-subtitle,
.app-banner-subtitle {
    font-size: 0.9rem;
    color: rgba(255, 255, 255, 0.9) !important;
    margin: 0;
    font-weight: 500;
}

/* Mobile typography adjustments */
@media (max-width: 768px) {
    .org-banner-title,
    .super-admin-title,
    .app-banner-title {
        font-size: 1.375rem;
    }

    .org-banner-subtitle,
    .super-admin-subtitle,
    .app-banner-subtitle {
        font-size: 0.85rem;
    }
}

/* Large screens */
@media (min-width: 1200px) {
    .org-banner-title,
    .super-admin-title,
    .app-banner-title {
        font-size: 2rem;
    }
}

/* =============================================================================
   BANNER ICON STANDARDIZATION
   ============================================================================= */

.org-banner-icon,
.super-admin-logo,
.app-banner-icon {
    width: 48px;
    height: 48px;
    background: rgba(255, 255, 255, 0.2);
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    border: 2px solid rgba(255, 255, 255, 0.3);
    backdrop-filter: blur(10px);
}

@media (max-width: 768px) {
    .org-banner-icon,
    .super-admin-logo,
    .app-banner-icon {
        width: 40px;
        height: 40px;
    }
}

/* =============================================================================
   BANNER ACTION BUTTONS
   ============================================================================= */

.org-banner-actions,
.super-admin-actions,
.app-banner-actions {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.btn-banner-action,
.org-settings-btn,
.app-banner-btn {
    background: rgba(255, 255, 255, 0.15);
    border: 2px solid rgba(255, 255, 255, 0.25);
    border-radius: 10px;
    color: white;
    padding: 0.625rem 1.25rem;
    font-weight: 600;
    font-size: 0.875rem;
    display: flex;
    align-items: center;
    gap: 0.5rem;
    text-decoration: none;
    transition: all 0.2s ease;
    backdrop-filter: blur(10px);
}

.btn-banner-action:hover,
.org-settings-btn:hover,
.app-banner-btn:hover {
    background: rgba(255, 255, 255, 0.25);
    border-color: rgba(255, 255, 255, 0.4);
    color: white;
    text-decoration: none;
    transform: translateY(-1px);
}
