/* ============================================
   BANNERS CSS
   Usage warnings, alert banners, and dismissible notices
   Extracted from usage_warning_banner.html - Session 6 (Jan 2026)
   ============================================ */

/* ============================================
   USAGE WARNING BANNERS
   ============================================ */

.usage-warnings-container {
    /* Normal document flow - not fixed positioning */
    /* Banners appear in DOM order: impersonation bar, warnings, then header */
    position: relative;
    z-index: 1000;
    display: flex;
    flex-direction: column;
    gap: 1px;
    width: 100%;
}

.usage-warning-banner {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: var(--spacing-sm, 0.5rem) var(--spacing-lg, 1.5rem);
    font-size: 0.875rem;
    animation: bannerSlideDown 0.3s ease-out;
}

/* Animation Keyframes */
@keyframes bannerSlideDown {
    from {
        transform: translateY(-100%);
        opacity: 0;
    }
    to {
        transform: translateY(0);
        opacity: 1;
    }
}

@keyframes bannerSlideUp {
    from {
        transform: translateY(0);
        opacity: 1;
    }
    to {
        transform: translateY(-100%);
        opacity: 0;
    }
}

/* ============================================
   WARNING STATES
   ============================================ */

.warning-approaching {
    background: var(--warning-light);
    border-bottom: 1px solid var(--warning);
    color: var(--warning-dark);
}

.warning-exceeded {
    background: var(--error-light);
    border-bottom: 1px solid var(--error);
    color: var(--error-dark);
}

/* ============================================
   WARNING CONTENT
   ============================================ */

.warning-content {
    display: flex;
    align-items: center;
    gap: var(--spacing-sm, 0.5rem);
    flex-wrap: wrap;
}

.warning-icon {
    display: flex;
    align-items: center;
}

.warning-icon svg {
    width: 16px;
    height: 16px;
}

.warning-approaching .warning-icon {
    color: var(--warning);
}

.warning-exceeded .warning-icon {
    color: var(--error);
}

.warning-text {
    flex: 1;
}

.warning-link {
    color: inherit;
    text-decoration: underline;
    font-weight: 500;
    white-space: nowrap;
}

.warning-link:hover {
    text-decoration: none;
}

/* ============================================
   DISMISS BUTTON
   ============================================ */

.warning-dismiss {
    background: none;
    border: none;
    padding: var(--spacing-xs, 0.25rem);
    cursor: pointer;
    color: inherit;
    opacity: 0.6;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--radius-sm, 4px);
    transition: opacity 0.2s, background 0.2s;
}

.warning-dismiss:hover {
    opacity: 1;
    background: rgba(0, 0, 0, 0.1);
}

.warning-dismiss svg {
    width: 16px;
    height: 16px;
}

/* ============================================
   RESPONSIVE
   ============================================ */

@media (max-width: 768px) {
    .usage-warning-banner {
        padding: var(--spacing-xs, 0.25rem) var(--spacing-md, 1rem);
        font-size: 0.8rem;
    }

    .warning-content {
        gap: var(--spacing-xs, 0.25rem);
    }
}
