/* core/css/notifications.css */


/* =========================
   NOTIFICATIONS - MÉCANIQUE (CORE)
   ========================= */

/* Conteneur notifications */
.cont_notifications {
    position: fixed;
    z-index: var(--notif-container-z-index);
    pointer-events: none; /* Permet clics à travers */
  }
  
  /* Positions */
  .cont_notifications.bottom-right {
    bottom: var(--notif-position-offset);
    right: var(--notif-position-offset);
  }
  
  .cont_notifications.bottom-left {
    bottom: var(--notif-position-offset);
    left: var(--notif-position-offset);
  }
  
  .cont_notifications.top-right {
    top: var(--notif-position-offset);
    right: var(--notif-position-offset);
  }
  
  .cont_notifications.top-left {
    top: var(--notif-position-offset);
    left: var(--notif-position-offset);
  }
  
  /* Notification individuelle */
  .notification {
    background: var(--notif-success-bg);
    color: var(--notif-success-color);
    padding: var(--notif-padding);
    border-radius: var(--notif-border-radius);
    box-shadow: var(--notif-shadow);
    margin-bottom: var(--notif-stack-spacing);
    min-width: var(--notif-min-width);
    max-width: var(--notif-max-width);
    font-size: var(--notif-font-size);
    pointer-events: auto; /* Réactive les clics sur la notification */
    position: relative;
    display: flex;
    align-items: center;
    gap: var(--notif-content-gap);
    opacity: 0;
    transform: translateY(var(--notif-animation-translate-y));
    transition: opacity var(--notif-animation-duration) ease-out,
                transform var(--notif-animation-duration) ease-out;
  }
  
  .notification.show {
    opacity: 1;
    transform: translateY(0);
  }
  
  .notification.hide {
    opacity: 0;
    transform: translateY(calc(var(--notif-animation-translate-y) * -1));
  }
  
  /* Types de notifications */
  .notification.success {
    background: var(--notif-success-bg);
    color: var(--notif-success-color);
  }
  
  .notification.info {
    background: var(--notif-info-bg);
    color: var(--notif-info-color);
  }
  
  .notification.warning {
    background: var(--notif-warning-bg);
    color: var(--notif-warning-color);
  }
  
  .notification.error {
    background: var(--notif-error-bg);
    color: var(--notif-error-color);
  }
  
  /* Contenu notification */
  .notification_content {
    flex: 1;
    line-height: var(--notif-content-line-height);
  }
  
  .notification_content a {
    color: inherit;
    text-decoration: underline;
    font-weight: var(--notif-link-font-weight);
  }
  
  .notification_content a:hover {
    opacity: var(--notif-link-hover-opacity);
  }
  
  /* Bouton fermer */
  .notification_close {
    background: transparent;
    border: none;
    color: inherit;
    cursor: pointer;
    padding: var(--notif-close-padding);
    opacity: var(--notif-close-opacity);
    font-size: var(--notif-close-font-size);
    line-height: 1;
    flex-shrink: 0;
  }
  
  .notification_close:hover {
    opacity: var(--notif-close-hover-opacity);
  }
  
  /* Icône (optionnelle) */
  .notification_icon {
    flex-shrink: 0;
    font-size: var(--notif-icon-font-size);
  }
  
  /* Responsive mobile */
  @media(max-width: 900px) {
    .cont_notifications {
      max-width: var(--notif-mobile-max-width);
      left: var(--notif-mobile-left);
    }
  }
  