/* UI polish additions */
.muted{ color: var(--muted); }
.big{ font-size: 28px; font-weight: 700; }
.card{
  background: var(--card);
  border:1px solid var(--border);
  border-radius: 14px;
  padding: 14px;
  box-shadow: 0 1px 2px rgba(0,0,0,.04);
  transition: box-shadow .18s ease, transform .18s ease, border-color .18s ease;
}
.card:hover{
  box-shadow: 0 10px 24px rgba(0,0,0,.10);
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--border) 70%, var(--primary) 30%);
}
.card img{ display:block; width:100%; border-radius: 10px; }
.btn{
  display:inline-block; background: var(--primary); color: var(--primary-contrast);
  padding:10px 14px; border-radius:999px; text-decoration:none; font-weight:600; border:1px solid transparent;
  transition: transform .12s ease, box-shadow .12s ease, background-color .12s ease;
}
.btn:hover{ transform: translateY(-1px); box-shadow: 0 6px 16px rgba(0,0,0,.15); }
.btn:focus{ outline:2px solid var(--primary); outline-offset:2px; }
.btn.ghost{ background: transparent; color: var(--fg); border-color: var(--border); }
.btn.ghost:hover{ background: color-mix(in srgb, var(--card) 80%, var(--primary) 20%); }
.table{ width:100%; border-collapse: collapse; }
.table th, .table td{ padding: 8px 10px; border-bottom:1px solid var(--border); text-align:left; }
.table thead th{ color: var(--muted); font-weight:600; }
.aspect-16x9{ aspect-ratio: 16/9; object-fit: cover; }
@media (prefers-reduced-motion: reduce){ .card, .btn{ transition: none; } }

a{ color: var(--primary); text-decoration: none; }
a:hover{ text-decoration: underline; }
a:visited{ color: color-mix(in srgb, var(--primary) 85%, var(--fg) 15%); }
a:active{ color: var(--primary); filter: brightness(0.9); }

/* === Buttons: visited/active 颜色修正（追加到 theme.css 末尾） === */
a{ color: var(--primary); text-decoration: none; }           /* 普通链接仍保持主题色 */
a:hover{ text-decoration: underline; }

/* 实心按钮：保持与默认一致 */
.btn:visited{ color: var(--primary-contrast); }              /* 修复点击过后仍可见 */
.btn:active{ color: var(--primary-contrast); filter: brightness(0.92); }

/* 线框按钮（ghost）：保持跟前景一致，且 hover 有轻底色 */
.btn.ghost{ background: transparent; color: var(--fg); border-color: var(--border); }
.btn.ghost:visited{ color: var(--fg); }
.btn.ghost:hover{ background: color-mix(in srgb, var(--card) 82%, var(--primary) 18%); }


/* === Logo: 固定 1:1 与导航高度一致 === */
.nav .brand img{
  display:block;
  width:40px;
  height:40px;
  object-fit:contain;
}

/* === Links & Buttons: 访问后颜色一致、可读 === */
a{ color: var(--primary); text-decoration: none; }
a:hover{ text-decoration: underline; }
a:visited{ color: color-mix(in srgb, var(--primary) 85%, var(--fg) 15%); }
a:active{ color: var(--primary); filter: brightness(0.9); }

.btn:visited{ color: var(--primary-contrast); }
.btn:active{ color: var(--primary-contrast); filter: brightness(0.92); }

.btn.ghost{ background: transparent; color: var(--fg); border-color: var(--border); }
.btn.ghost:visited{ color: var(--fg); }
.btn.ghost:hover{ background: color-mix(in srgb, var(--card) 82%, var(--primary) 18%); }

/* === 追加：卡片粘底与固定高度工具类 === */
.card.card--stretch{ /* 让卡片内部使用纵向弹性布局，便于按钮粘底 */
  display:flex;            /* 启用弹性布局 */
  flex-direction:column;   /* 纵向排列，主体在上，按钮在下 */
}

.card__body{              /* 卡片主体区域，自动填充可用空间 */
  flex:1 1 auto;          /* 可增长可收缩，填满剩余空间 */
  min-height:90px;        /* 保证基本高度，避免内容过少时太扁 */
}

.card__footer{            /* 卡片底部按钮栏，固定贴底 */
  margin-top:auto;        /* 将 footer 推到卡片底部 */
  display:flex;           /* 按钮横排 */
  gap:8px;                /* 按钮间距 */
  flex-wrap:wrap;         /* 小屏自动换行 */
}

.card--fixed{             /* 统一卡片高度（桌面端），视觉整齐 */
  min-height:320px;       /* 可按视觉需要调整该值 */
}

@media (max-width:640px){ /* 手机端不强制固定高度，保证自适应 */
  .card--fixed{ min-height:0; }
}

/* 统一卡片粘底工具类（已有则保留） */
.card.card--stretch{display:flex;flex-direction:column}
.card__body{flex:1 1 auto}
.card__footer{margin-top:auto;display:flex;gap:8px;flex-wrap:wrap}
.card--fixed{min-height:320px}
@media (max-width:640px){.card--fixed{min-height:0}}

/* 技术沉淀卡片更矮 */
.card--tech{min-height:220px}

/* Feature 三卡专属主题变量（在 :root 或 body[data-theme] 下可被覆盖） */
:root{
  --feat-a-1:#0ea5e9; --feat-a-2:#2563eb; --feat-b-1:#10b981; --feat-b-2:#059669; --feat-c-1:#f59e0b; --feat-c-2:#ef4444;
  --feat-contrast:#ffffff;
}