/* 教辅星 · 统一设计系统 —— 暖橙升级版(方案A)
   在原暖橙基调上增强:层次感 / 品牌渐变 / 阴影深度 / 微交互 */
:root {
  /* 品牌主色:暖橙(行动) —— 加入完整色阶,便于层次 */
  --orange: #ff7a2f;
  --orange-deep: #ef6312;
  --orange-light: #ff9a5c;
  --orange-soft: #fff3ea;
  --orange-softer: #fff9f4;
  --amber: #f9a826;
  /* 品牌渐变:统一的橙金,用于 logo / 主按钮 / 序号 / 高亮 */
  --grad-brand: linear-gradient(135deg, #ff8a3d 0%, #f9a826 100%);
  --grad-brand-deep: linear-gradient(135deg, #ff7a2f 0%, #ef6312 100%);

  /* 辅助色:草绿(成功) + 状态色 */
  --green: #3fa776;
  --green-deep: #2f8a60;
  --green-soft: #eaf7f0;
  --red: #ef6b5d;
  --red-soft: #fdecea;

  /* 中性色阶(带暖调,层次更丰富) */
  --ink: #342f2b;          /* 主文字 */
  --ink-mid: #6b6259;      /* 三级文字 */
  --ink-soft: #998f86;     /* 次要文字 */
  --line: #efe7df;         /* 分隔线 */
  --line-soft: #f6f0ea;    /* 更浅分隔 */
  --bg: #faf6f1;           /* 页面背景,奶油色 */
  --bg-warm: #f6efe7;      /* 暖一档背景 */
  --card: #ffffff;

  /* 圆角 */
  --radius: 18px;
  --radius-sm: 12px;
  --radius-xs: 8px;

  /* 阴影:分层,营造深度 */
  --shadow-xs: 0 1px 3px rgba(120, 90, 60, 0.06);
  --shadow: 0 4px 18px rgba(170, 130, 90, 0.10);
  --shadow-md: 0 8px 28px rgba(170, 130, 90, 0.13);
  --shadow-hover: 0 10px 32px rgba(255, 122, 47, 0.20);
  --shadow-brand: 0 4px 14px rgba(255, 122, 47, 0.32);
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
  font-family: "PingFang SC", "Microsoft YaHei", "Nunito", -apple-system, sans-serif;
  background: var(--bg);
  /* 背景加极淡的暖色光晕,告别纯平 */
  background-image:
    radial-gradient(circle at 12% 8%, rgba(255, 168, 38, 0.06), transparent 42%),
    radial-gradient(circle at 88% 0%, rgba(255, 122, 47, 0.05), transparent 38%);
  background-attachment: fixed;
  color: var(--ink);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
}

/* 顶部导航 */
.topbar {
  background: rgba(255,255,255,0.82);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-bottom: 1px solid var(--line);
  padding: 14px 28px;
  display: flex; align-items: center; gap: 16px;
  position: sticky; top: 0; z-index: 50;
  box-shadow: var(--shadow-xs);
}
.logo {
  font-size: 22px; font-weight: 800; color: var(--ink);
  display: flex; align-items: center; gap: 8px; text-decoration: none;
  white-space: nowrap; letter-spacing: .5px;
}
.logo .mark {
  width: 34px; height: 34px; border-radius: 10px;
  background: var(--grad-brand);
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; font-size: 20px; box-shadow: 0 3px 10px rgba(255,122,47,.38);
}
.logo .logo-text { white-space: nowrap; }
.nav { margin-left: auto; display: flex; gap: 6px; }
.nav a {
  padding: 8px 18px; border-radius: 999px; text-decoration: none;
  font-size: 14px; font-weight: 600; color: var(--ink-soft); transition: .2s;
  white-space: nowrap; flex-shrink: 0;
}
.nav a:hover { background: var(--orange-soft); color: var(--orange-deep); }
.nav a.active { background: var(--grad-brand); color: #fff; box-shadow: 0 3px 10px rgba(255,122,47,.3); }

/* 手机端导航适配 */
@media (max-width: 600px) {
  .topbar { padding: 10px 12px; gap: 6px; }
  .logo { font-size: 17px; gap: 6px; }
  .logo .mark { width: 28px; height: 28px; font-size: 16px; border-radius: 8px; flex-shrink: 0; }
  .nav { gap: 4px; }
  .nav a { padding: 7px 10px; font-size: 12.5px; }
}
@media (max-width: 360px) {
  .logo { font-size: 15px; }
  .nav a { padding: 6px 8px; font-size: 11.5px; }
}

/* 卡片 */
.card {
  background: var(--card); border-radius: var(--radius);
  padding: 24px; box-shadow: var(--shadow); border: 1px solid var(--line);
  transition: box-shadow .25s, transform .25s;
}
.card:hover { box-shadow: var(--shadow-md); }
.card h2 {
  font-size: 17px; font-weight: 700; margin-bottom: 16px;
  display: flex; align-items: center; gap: 10px;
}
.card h2 .num {
  background: var(--grad-brand); color: #fff;
  width: 26px; height: 26px; border-radius: 999px; font-size: 14px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 2px 6px rgba(255,122,47,.32);
}

/* 按钮 */
.btn {
  border: none; border-radius: 999px; font-weight: 700; cursor: pointer;
  transition: transform .18s, box-shadow .18s, background .18s;
  display: inline-flex; align-items: center; justify-content: center;
  text-decoration: none; line-height: 1;
}
.btn-primary {
  background: var(--grad-brand-deep);
  color: #fff; padding: 13px 24px; font-size: 16px;
  box-shadow: var(--shadow-brand);
}
.btn-primary:hover { transform: translateY(-2px); box-shadow: var(--shadow-hover); }
.btn-primary:active { transform: translateY(0); }
.btn-primary:disabled { background: #f6c9a8; cursor: not-allowed; transform: none; box-shadow: none; }
.btn-ghost {
  background: var(--orange-soft); color: var(--orange-deep);
  padding: 12px 22px; font-size: 15px; border: 1.5px solid #ffd4b3;
}
.btn-ghost:hover { background: #ffe6d4; border-color: var(--orange); }
.btn-block { width: 100%; }

/* 表单元素 */
select, input[type="number"], input[type="text"], input[type="password"] {
  font-family: inherit; padding: 10px 14px; font-size: 14px;
  border: 1.5px solid var(--line); border-radius: var(--radius-sm);
  background: #fff; color: var(--ink); transition: .15s;
}
select:focus, input:focus {
  outline: none; border-color: var(--orange); box-shadow: 0 0 0 3px var(--orange-soft);
}

/* 徽章 */
.badge { font-size: 11px; padding: 3px 10px; border-radius: 999px; font-weight: 700; }
.badge.ok { background: var(--green-soft); color: var(--green-deep); }
.badge.warn { background: #fef6e0; color: #c2840a; }
.badge.err { background: var(--red-soft); color: var(--red); }

/* 加载动画 */
.loading { text-align: center; padding: 44px; color: var(--ink-soft); }
.spinner {
  width: 38px; height: 38px; margin: 0 auto 14px;
  border: 4px solid var(--orange-soft); border-top-color: var(--orange);
  border-radius: 50%; animation: spin .8s linear infinite;
}
@keyframes spin { to { transform: rotate(360deg); } }

.empty { color: var(--ink-soft); text-align: center; padding: 36px; font-size: 14px; }

/* 入场动画 */
@keyframes fadeUp { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.fade-up { animation: fadeUp .4s ease both; }
