/**
 * Styles pour la persistance des formulaires
 * Version: 2.0.2
 */

/* Indicateur de sauvegarde */
.form-save-indicator {
  position: fixed;
  bottom: 20px;
  right: 20px;
  background-color: var(--color-success, #28a745);
  color: white;
  padding: 12px 20px;
  border-radius: var(--border-radius, 4px);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
  font-size: 0.9em;
  font-weight: 500;
  opacity: 0;
  transform: translateY(20px);
  transition: all 0.3s ease;
  pointer-events: none;
  z-index: 10000;
}

.form-save-indicator.show {
  opacity: 1;
  transform: translateY(0);
}

/* Notification de restauration */
.form-restore-notification {
  background-color: var(--color-info-bg, #d1ecf1);
  border: 1px solid var(--color-info, #0c5460);
  border-radius: var(--border-radius, 4px);
  padding: var(--spacing-md, 16px);
  margin-bottom: var(--spacing-md, 16px);
  animation: slideDown 0.3s ease;
}

.form-restore-content {
  display: flex;
  align-items: center;
  gap: 12px;
}

.form-restore-icon {
  font-size: 1.5em;
  flex-shrink: 0;
}

.form-restore-message {
  flex: 1;
  color: var(--color-info, #0c5460);
  font-weight: 500;
}

.form-restore-dismiss {
  background: none;
  border: none;
  color: var(--color-info, #0c5460);
  font-size: 1.2em;
  cursor: pointer;
  padding: 4px 8px;
  border-radius: 4px;
  transition: background-color 0.2s;
  flex-shrink: 0;
}

.form-restore-dismiss:hover {
  background-color: rgba(0, 0, 0, 0.1);
}

/* Animation de slide down */
@keyframes slideDown {
  from {
    opacity: 0;
    transform: translateY(-20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Bouton pour effacer le brouillon */
.form-clear-draft {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background-color: transparent;
  border: 1px solid var(--color-border-secondary, #dee2e6);
  color: var(--color-text-secondary, #6c757d);
  padding: 6px 12px;
  border-radius: var(--border-radius, 4px);
  font-size: 0.85em;
  cursor: pointer;
  transition: all 0.2s;
}

.form-clear-draft:hover {
  background-color: var(--color-danger-bg, #f8d7da);
  border-color: var(--color-danger, #dc3545);
  color: var(--color-danger, #dc3545);
}

.form-clear-draft::before {
  content: "🗑";
}

/* Badge de brouillon sauvegardé */
.form-draft-badge {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  background-color: var(--color-warning-bg, #fff3cd);
  border: 1px solid var(--color-warning, #ffc107);
  color: var(--color-warning-dark, #856404);
  padding: 4px 10px;
  border-radius: 12px;
  font-size: 0.8em;
  font-weight: 500;
  margin-left: 8px;
}

.form-draft-badge::before {
  content: "📝";
}

/* Indicateur de sauvegarde en cours */
.form-saving-indicator {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: var(--color-text-secondary, #6c757d);
  font-size: 0.85em;
  margin-left: 12px;
}

.form-saving-indicator::before {
  content: "";
  width: 12px;
  height: 12px;
  border: 2px solid var(--color-primary, #007bff);
  border-top-color: transparent;
  border-radius: 50%;
  animation: spin 0.8s linear infinite;
}

@keyframes spin {
  to {
    transform: rotate(360deg);
  }
}

/* Responsive */
@media (max-width: 768px) {
  .form-save-indicator {
    bottom: 10px;
    right: 10px;
    padding: 10px 16px;
    font-size: 0.85em;
  }
  
  .form-restore-notification {
    padding: var(--spacing-sm, 12px);
  }
  
  .form-restore-content {
    gap: 8px;
  }
  
  .form-restore-icon {
    font-size: 1.2em;
  }
  
  .form-restore-message {
    font-size: 0.9em;
  }
}

/* Mode sombre */
[data-theme="sombre"] .form-save-indicator {
  background-color: #2d5f2e;
}

[data-theme="sombre"] .form-restore-notification {
  background-color: #1a3a40;
  border-color: #0c5460;
}

[data-theme="sombre"] .form-restore-message {
  color: #9dd9e8;
}

[data-theme="sombre"] .form-restore-dismiss {
  color: #9dd9e8;
}

[data-theme="sombre"] .form-clear-draft:hover {
  background-color: #4a1f1f;
}

/* Accessibilité */
.form-save-indicator[role="status"],
.form-restore-notification[role="alert"] {
  /* Annoncé par les lecteurs d'écran */
}

/* Focus visible pour le bouton de fermeture */
.form-restore-dismiss:focus-visible {
  outline: 2px solid var(--color-primary, #007bff);
  outline-offset: 2px;
}
