/* cignyl-sftp 20260824 */
/* ------------------------------ */
/* v2 Alert (shadcn-like)         */
/* ------------------------------ */

.v2-theme .v2-alert {
  box-sizing: border-box;
  display: flex;
  align-items: flex-start;
  gap: var(--v2-space-sm);

  padding: var(--v2-space-md);
  border-radius: var(--radius);
  border: 1px solid hsl(var(--border));
  background: hsl(var(--card));
  color: hsl(var(--foreground));
}

.v2-theme .v2-alert__icon-wrap {
  flex: 0 0 auto;
  margin-top: 0.125rem;
  color: hsl(var(--foreground));
}

.v2-theme .v2-alert__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  font-size: 1rem;
}

.v2-theme .v2-alert__main {
  flex: 1 1 auto;
  min-width: 0;
}

.v2-theme .v2-alert__title {
  font-size: 0.875rem;
  font-weight: 600;
  line-height: 1.25;
}

.v2-theme .v2-alert__content {
  margin-top: var(--v2-space-xsm); /* closest to 0.25rem */
  font-size: 0.875rem;
  line-height: 1.35;
  color: hsl(var(--primary));
}

.v2-theme .v2-alert__footer {
  margin-top: var(--v2-space-sm);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: var(--v2-space-xsm);
}

/* variants */
.v2-theme .v2-alert--variant-secondary {
  background: hsl(var(--secondary));
  color: hsl(var(--secondary-foreground));
  border-color: hsl(var(--border));
}

.v2-theme .v2-alert--variant-destructive {
  /*
   * Keep the "10% destructive tint" look, but make it independent of whatever
   * surface it's placed on (e.g. muted cards). We do that by layering the tint
   * over an explicit base surface (light theme: white via --background).
   */
  background:
    linear-gradient(0, hsl(var(--destructive) / 0.1), hsl(var(--destructive) / 0.1)),
    hsl(var(--background));
  border-color: hsl(var(--destructive));
}

.v2-theme .v2-alert--variant-destructive .v2-alert__icon-wrap,
.v2-theme .v2-alert--variant-destructive .v2-alert__title {
  color: hsl(var(--destructive));
}

.v2-theme .v2-alert--variant-success {
  background:
    linear-gradient(0, hsl(var(--success) / 0.1), hsl(var(--success) / 0.1)),
    hsl(var(--background));
  border-color: hsl(var(--success));
}

.v2-theme .v2-alert--variant-success .v2-alert__icon-wrap,
.v2-theme .v2-alert--variant-success .v2-alert__title {
  color: hsl(var(--success));
}

.v2-theme .v2-alert--variant-warning {
  background:
    linear-gradient(0, hsl(var(--warning) / 0.1), hsl(var(--warning) / 0.1)),
    hsl(var(--background));
  border-color: hsl(var(--warning));
}

.v2-theme .v2-alert--variant-warning .v2-alert__icon-wrap,
.v2-theme .v2-alert--variant-warning .v2-alert__title {
  color: hsl(var(--warning));
}

.v2-theme .v2-alert--variant-info {
  background:
    linear-gradient(0, hsl(var(--info) / 0.1), hsl(var(--info) / 0.1)),
    hsl(var(--background));
  border-color: hsl(var(--info));
}

.v2-theme .v2-alert--variant-info .v2-alert__icon-wrap,
.v2-theme .v2-alert--variant-info .v2-alert__title {
  color: hsl(var(--info));
}

.v2-theme .v2-alert--variant-ghost {
  background: transparent;
  border-color: transparent;
}

