/* ==========================================================================
   components-feedback.css — 反馈组件（错误卡片 / 悬浮提示 toast）
   适用范围：查询失败提示、复制等操作的轻提示
   加载顺序：components-card.css 之后
   依赖：base.css 的设计令牌；所有关键属性均带 var() 回退值
   ========================================================================== */

/* --------------------------------------------------------------------------
   错误卡片：支持重试
   -------------------------------------------------------------------------- */
.error-card {
  padding: 16px 20px;
  border: 1px solid #e9a8a8;
  border: 1px solid var(--color-danger-border);
  border-radius: 14px;
  border-radius: var(--radius-lg);
  background: #fdecec;
  background: var(--color-danger-soft);
}
.error-card__title {
  display: flex;
  align-items: center;
  gap: 8px;
  margin: 0 0 6px;
  color: #b91c1c;
  color: var(--color-danger);
  font-weight: 700;
}
/* 圆形感叹号：纯 CSS，不用图标库 */
.error-card__title::before {
  content: "!";
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 0 0 auto;
  width: 20px;
  height: 20px;
  border: 2px solid currentColor;
  border-radius: 50%;
  font-size: 12px;
  line-height: 1;
}
.error-card__desc {
  margin: 0 0 12px;
  color: #1f2937;
  color: var(--color-text);
}
.error-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
}

/* --------------------------------------------------------------------------
   悬浮提示（toast）：底部居中，屏幕阅读器通过 aria-live 播报
   -------------------------------------------------------------------------- */
.toast-region {
  position: fixed;
  left: 50%;
  bottom: 20px;
  bottom: calc(20px + env(safe-area-inset-bottom, 0px));
  z-index: 60;
  display: grid;
  gap: 8px;
  width: min(92vw, 420px);
  transform: translateX(-50%);
  pointer-events: none;
}
.toast {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 12px 14px;
  border: 1px solid #e2e6eb;
  border: 1px solid var(--color-border);
  border-left-width: 4px;
  border-radius: 10px;
  border-radius: var(--radius-md);
  background: #ffffff;
  background: var(--color-surface);
  box-shadow: 0 4px 12px rgba(15, 23, 42, 0.08), 0 2px 4px rgba(15, 23, 42, 0.06);
  box-shadow: var(--shadow-md);
  font-size: 0.9375rem;
  pointer-events: auto;
}
.toast--success {
  border-left-color: #15803d;
  border-left-color: var(--color-success);
}
.toast--error {
  border-left-color: #b91c1c;
  border-left-color: var(--color-danger);
}
.toast--info {
  border-left-color: #1d4ed8;
  border-left-color: var(--color-primary);
}
.toast__text {
  margin: 0;
  min-width: 0;
  overflow-wrap: anywhere;
}

