/* css/header-shell.css — Styles globaux de l'en-tête, barre latérale et modales profil/PIN */

.glass-panel { background: rgba(53, 52, 58, 0.6); backdrop-filter: blur(20px); }
.material-symbols-outlined { font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24; }
body { background-color: var(--bg-main); color: var(--text-main); font-family: var(--font-family-body); min-height: 100vh; margin: 0; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-track { background: var(--bg-main); }
::-webkit-scrollbar-thumb { background: var(--border-color); border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: var(--accent-primary); }

/* Mobile Overlay */
#sidebar-overlay {
    display: none;
    position: fixed;
    top: 0; left: 0; width: 100%; height: 100%;
    background: rgba(0,0,0,0.5);
    backdrop-filter: blur(2px);
    z-index: 55;
}
#sidebar-overlay.active { display: block; }

/* Sidebar repliée sur Desktop & libération de l'espace */
@media (min-width: 768px) {
    html.sidebar-collapsed #global-sidebar {
        transform: translateX(-100%) !important;
    }
    html.sidebar-collapsed main {
        margin-left: 0px !important;
    }
}

/* Transition fluide pour le contenu principal lors du repli de la sidebar */
main {
    transition: margin-left 0.3s ease-in-out;
}

/* Harmonisation des bordures de variantes et neutralisation du fallback Tailwind #e5e7eb */
[class*="border-outline-variant"] {
    border-color: var(--border-subtle, var(--border-color));
}
:root:not([data-theme="light"]):not([data-theme="grey-platinum"]):not([data-theme="solaris"]):not([data-theme="arc-dark"]):not([data-theme="nord-pastel"]) [class*="border-outline-variant"],
[data-theme="dark"] [class*="border-outline-variant"] {
    border-color: transparent;
}

/* --- Web Push Notifications Bell States in User Profile Modal --- */
#webchat-push-btn {
    transition: all 0.25s cubic-bezier(0.4, 0, 0.2, 1);
}
#webchat-push-btn:hover {
    transform: scale(1.05);
}
#webchat-push-btn.active {
    background-color: rgba(6, 182, 212, 0.15) !important;
    color: var(--accent-primary, #00e5ff) !important;
    border-color: var(--accent-primary, #00e5ff) !important;
    box-shadow: 0 0 12px var(--accent-primary-bg, rgba(0, 229, 255, 0.25));
}
#webchat-push-btn.active #webchat-push-dot {
    display: block !important;
}
#webchat-push-btn.denied {
    background-color: rgba(239, 68, 68, 0.15) !important;
    color: #f87171 !important;
    border-color: rgba(239, 68, 68, 0.4) !important;
}
#webchat-push-btn.loading {
    opacity: 0.7;
    pointer-events: none;
}
#webchat-push-btn.loading span#webchat-push-icon {
    animation: spin 1s linear infinite;
}

/* Animation Secousse pour code PIN erroné */
@keyframes pinShake {
    0%, 100% { transform: translateX(0); }
    20%, 60% { transform: translateX(-8px); }
    40%, 80% { transform: translateX(8px); }
}
.animate-shake {
    animation: pinShake 0.35s ease-in-out;
}
