/* Alert Component
 * ==========================================================================
 * Alerts display important messages to users
 */

/* Base Alert
 * -------------------------------------------------------------------------- */

.alert {
  /* Structure */
  padding: var(--size-3) var(--size-4);
  margin-block: var(--size-3);

  /* Appearance */
  border: 1px solid;
  border-radius: var(--radius-medium);

  /* Typography */
  font-size: 0.875rem;
  line-height: 1.5;
}

/* Alert Variants
 * -------------------------------------------------------------------------- */

.alert--success {
  background: var(--color-bg--primary-container);
  color: var(--color-ink--primary-container);
  border-color: var(--color-border--primary);
}

.alert--error {
  background: var(--color-bg--error-container);
  color: var(--color-ink--error-container);
  border-color: var(--color-border--error);
}

.alert--warning {
  background: var(--color-bg--tertiary-container);
  color: var(--color-ink--tertiary-container);
  border-color: var(--color-border--tertiary);
}

.alert--info {
  background: var(--color-bg--secondary-container);
  color: var(--color-ink--secondary-container);
  border-color: var(--color-border--secondary);
}

/* Alert with icon
 * -------------------------------------------------------------------------- */

.alert--with-icon {
  display: flex;
  gap: var(--size-3);
  align-items: flex-start;
}

.alert__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
}

.alert__content {
  flex: 1;
}

/* Alert actions
 * -------------------------------------------------------------------------- */

.alert__actions {
  margin-top: var(--size-2);
  display: flex;
  gap: var(--size-2);
}

/* Dismissible alert
 * -------------------------------------------------------------------------- */

.alert--dismissible {
  position: relative;
  padding-right: var(--size-8);
}

.alert__dismiss {
  position: absolute;
  top: var(--size-3);
  right: var(--size-3);
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  width: 20px;
  height: 20px;
  opacity: 0.6;
  transition: opacity 200ms ease;
}

.alert__dismiss:hover {
  opacity: 1;
}