/* =========================================================
   鹏城赖氏宗亲会 · 国潮组件层（ui.css）
   设计系统「可移植组件」唯一来源。
   基于 tokens.css，与 home.css / member.css 视觉一致，但前缀独立（.ui-*），
   不依赖任何页面级样式。新页面只需引用 <x-ui.*> 组件即可自动套用品牌语言。
   全局由 layouts/app.blade.php 加载。
   ========================================================= */

/* ---- 按钮 ---- */
.ui-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 11px 26px; border-radius: 10px;
  font-size: .92rem; font-weight: 500; letter-spacing: .5px; cursor: pointer;
  border: 1px solid transparent; transition: all .25s var(--ease);
  text-decoration: none; font-family: inherit; color: var(--ink);
  line-height: 1.4;
}
.ui-btn--primary {
  background: linear-gradient(135deg, var(--vermilion) 0%, var(--vermilion-dark) 100%);
  color: #fff;
  box-shadow: 0 8px 22px color-mix(in srgb, var(--vermilion) 32%, transparent);
}
.ui-btn--primary:hover {
  background: linear-gradient(135deg, var(--vermilion-dark) 0%, var(--vermilion-deep) 100%);
  transform: translateY(-1px);
  box-shadow: 0 12px 30px color-mix(in srgb, var(--vermilion) 46%, transparent);
}
.ui-btn--ghost {
  background: transparent; color: var(--vermilion);
  border-color: rgba(158, 28, 19, .35);
}
.ui-btn--ghost:hover { background: rgba(158, 28, 19, .08); }
.ui-btn--danger {
  background: transparent; color: var(--smoke);
  border: 1px solid color-mix(in srgb, var(--ink) 25%, transparent);
}
.ui-btn--danger:hover {
  background: color-mix(in srgb, var(--ink) 6%, transparent);
  color: var(--ink); transform: translateY(-1px);
}
.ui-btn--sm { padding: 6px 16px; font-size: .84rem; }
.ui-btn--block { width: 100%; }
.ui-btn:disabled, .ui-btn[disabled] {
  opacity: .6; cursor: not-allowed; transform: none; box-shadow: none;
}

/* ---- 卡片 ---- */
.ui-card {
  padding: 24px 26px;
  background: var(--surface-card);
  border: 1px solid color-mix(in srgb, var(--gold) 28%, transparent);
  border-radius: var(--radius-card);
  box-shadow: 0 1px 3px rgba(0, 0, 0, .05);
  transition: box-shadow .3s var(--ease);
}
.ui-card:hover { box-shadow: 0 4px 14px rgba(0, 0, 0, .07); }
.ui-card__title {
  margin: 0 0 4px; font-size: 1.12rem; font-weight: 700;
  color: var(--vermilion); font-family: var(--serif);
}
.ui-card__sub {
  margin: 0 0 18px; font-size: .85rem; line-height: 1.75; color: var(--smoke);
}

/* ---- 区块标题（居中，含 kicker） ---- */
.ui-section-head { text-align: center; margin-bottom: 48px; position: relative; }
.ui-section-head__kicker {
  font-family: var(--display); letter-spacing: 5px; text-transform: uppercase;
  color: var(--gold-deep); font-size: .78rem; margin: 0 0 12px;
}
.ui-section-head__title {
  font-family: var(--serif); font-size: 2rem; font-weight: 700;
  color: var(--ink); margin: 0 0 10px; letter-spacing: 1px;
}
.ui-section-head__subtitle { font-size: .95rem; color: var(--smoke); margin: 0; line-height: 1.7; }

/* ---- 空状态 ---- */
.ui-empty {
  margin: 0; padding: 18px; border-radius: 12px;
  background: rgba(200, 164, 92, .1); color: var(--smoke);
  font-size: .9rem; line-height: 1.8; text-align: center;
}

/* ---- 状态条 ---- */
.ui-status {
  padding: 11px 16px; margin-bottom: 14px; border-radius: 10px;
  font-size: .88rem; line-height: 1.7; font-weight: 500;
}
.ui-status--approved { background: rgba(47, 125, 79, .1); color: #2f7d4f; border-left: 4px solid #2f7d4f; }
.ui-status--pending  { background: rgba(200, 164, 92, .18); color: #8a6d1f; border-left: 4px solid var(--gold); }
.ui-status--rejected { background: rgba(158, 28, 19, .08); color: var(--vermilion); border-left: 4px solid var(--vermilion); }
.ui-status__reason { display: block; margin-top: 5px; font-weight: 400; font-size: .84rem; }

/* ---- 标签 ---- */
.ui-chip {
  display: inline-block; padding: 2px 10px; border-radius: 12px;
  background: rgba(158, 28, 19, .09); color: var(--vermilion); font-size: .78rem;
}

/* ---- 表单字段 ---- */
.ui-field { display: flex; flex-direction: column; gap: 7px; }
.ui-field label { font-size: .88rem; font-weight: 500; color: var(--ink); }
.ui-field input[type=text],
.ui-field input[type=email],
.ui-field input[type=password],
.ui-field input[type=tel],
.ui-field input[type=number],
.ui-field input[type=url],
.ui-field textarea,
.ui-field select {
  width: 100%; padding: 10px 14px;
  border: 1px solid rgba(200, 164, 92, .45); border-radius: 10px;
  background: var(--surface-card); color: var(--ink);
  font-size: .95rem; font-family: inherit; line-height: 1.7;
  transition: border-color .2s, box-shadow .2s;
}
.ui-field textarea { resize: vertical; min-height: 72px; }
.ui-field input:focus,
.ui-field textarea:focus,
.ui-field select:focus {
  outline: none; border-color: var(--vermilion);
  box-shadow: 0 0 0 3px rgba(158, 28, 19, .1);
}
.ui-field__hint { margin: 2px 0 0; font-size: .78rem; color: var(--smoke); }

/* ---- 提示条 ---- */
.ui-flash {
  padding: 12px 16px; border-radius: 10px; margin-bottom: 18px;
  font-size: .9rem; line-height: 1.6;
}
.ui-flash--success { background: rgba(47, 125, 79, .1); color: #2f7d4f; }
.ui-flash--error   { background: rgba(158, 28, 19, .08); color: var(--vermilion); }

/* ---- 双列栅格（响应式） ---- */
.ui-grid {
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 22px; align-items: start;
}
@media (max-width: 768px) {
  .ui-grid { grid-template-columns: 1fr; }
  .ui-section-head__title { font-size: 1.6rem; }
}
