/* 国考网 · 全站样式（蓝白主色，无渐变） */
:root {
  --primary: #2563EB;
  --primary-dark: #1D4ED8;
  --primary-light: #EFF4FF;
  --text: #1E293B;
  --text-sub: #64748B;
  --bg: #F7F9FC;
  --border: #E2E8F0;
  --radius-xs: 6px;
  --radius-sm: 10px;
  --radius-lg: 14px;
  --radius-xl: 20px;
  --radius-pill: 999px;
  --container-max: 1800px;
}

* { margin: 0; padding: 0; box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  font-family: "Noto Sans SC", "PingFang SC", "Microsoft YaHei", sans-serif;
  color: var(--text);
  background: var(--bg);
  line-height: 1.7;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
::selection { background: rgba(37,99,235,.18); }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: #C7D2E5; border-radius: 4px; }
::-webkit-scrollbar-thumb:hover { background: #9FB3D1; }
:focus-visible { outline: 2px solid var(--primary); outline-offset: 2px; border-radius: 4px; }
input:focus-visible, select:focus-visible, textarea:focus-visible { outline: none; }
a { color: var(--primary); text-decoration: none; }
a:hover { color: var(--primary-dark); }
.container { max-width: var(--container-max) !important; margin-left: auto !important; margin-right: auto !important; padding: 0 28px; }

/* 顶栏 */
.site-header {
  background: rgba(255,255,255,.95);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--border);
  box-shadow: 0 1px 2px rgba(30,41,59,.04);
  position: sticky; top: 0; z-index: 10;
}
.header-inner { display: flex; align-items: center; justify-content: space-between; height: 68px; gap: 16px; }
.logo { font-size: 22px; font-weight: 800; color: var(--text); letter-spacing: .5px; display: inline-flex; align-items: center; }
.logo::before { content: "考"; width: 26px; height: 26px; border-radius: 8px; background: var(--primary); color: #fff; display: inline-flex; align-items: center; justify-content: center; font-size: 14px; margin-right: 8px; }
.logo span { color: var(--primary); }
.site-nav { display: flex; align-items: center; }
.site-nav a { margin-left: 22px; color: var(--text-sub); font-size: 15px; padding: 6px 2px; position: relative; transition: color .15s ease; }
.site-nav a::after { content: ""; position: absolute; left: 50%; bottom: -2px; width: 0; height: 2px; background: var(--primary); border-radius: 2px; transition: all .2s ease; }
.site-nav a.active::after, .site-nav a:hover::after { left: 0; width: 100%; }
.site-nav a.active, .site-nav a:hover { color: var(--primary); }

/* Hero */
.hero { padding: 88px 0 28px; text-align: center; }
.hero h1 { font-size: 48px; letter-spacing: 2px; font-weight: 800; line-height: 1.22; }
.hero h1 em { font-style: normal; color: var(--primary); position: relative; }
.hero h1 a { color: inherit; text-decoration: none; }
.hero-sub { color: var(--text-sub); font-size: 17px; margin-top: 18px; line-height: 1.95; }
.hero-sub b { color: var(--text); }

.hero-stats { display: inline-flex; align-items: center; gap: 22px; margin-top: 28px; background: #fff; border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 13px 34px; font-size: 14.5px; color: var(--text-sub); box-shadow: 0 4px 16px rgba(30,41,59,.06); }
.hero-stats b { color: var(--primary); font-size: 19px; margin-right: 3px; }
.hero-stats i { width: 1px; height: 14px; background: var(--border); }

/* 移动端适配 */
@media (max-width: 768px) {
  .hero { padding: 40px 0 16px; }
  .hero h1 { font-size: 30px; }
  .header-inner { height: 56px; gap: 8px; }
  .logo { white-space: nowrap; flex-shrink: 0; font-size: 18px; }
  .logo::before { width: 22px; height: 22px; font-size: 12px; }
  .site-nav { overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; }
  .site-nav a { margin-left: 12px; font-size: 13.5px; white-space: nowrap; padding: 6px 0; }
  .nav-cta { padding: 4px 12px !important; }
  .nav-form { margin-left: 10px !important; }
  .form-grid { grid-template-columns: minmax(0, 1fr); }
  .features { grid-template-columns: 1fr; }
  .steps { grid-template-columns: 1fr; }
  .account-grid { grid-template-columns: 1fr; }
  .paper-top { flex-direction: column; }
  .paper-preview { width: 220px; margin: 0 auto; }
  .actions { flex-direction: column; align-items: stretch; text-align: center; }
  .btn-lg { width: 100%; }
  .tbl { display: block; overflow-x: auto; white-space: nowrap; }
  .admin-wrap { flex-direction: column; }
  .admin-side { width: auto; display: flex; flex-wrap: wrap; gap: 4px; }
  .admin-side h3, .admin-side form { display: none; }
  .pay-amount { font-size: 28px; }
  .container { padding: 0 16px; }
  .hero-sub { font-size: 15px; }
  .hero-stats { flex-wrap: wrap; row-gap: 6px; gap: 12px; padding: 10px 20px; }
  .card { padding: 22px 20px; }
  h2 { font-size: 21px; }
  .features { margin-top: 36px; }
  .how { margin-top: 44px; margin-bottom: 56px; }
  .site-footer { margin-top: 52px; padding: 32px 0 36px; }
  .acct-pager { font-size: 13px; }
  .acct-pager a, .acct-pager .off { padding: 5px 12px; }
  .panel-body .tbl th:first-child, .panel-body .tbl td:first-child { padding-left: 14px; }
  .panel-body .tbl th:last-child, .panel-body .tbl td:last-child { padding-right: 14px; }
}

/* 卡片 */
.card {
  background: #fff;
  border: 1px solid var(--border);
  border-radius: var(--radius-xl);
  padding: 32px 34px;
  box-shadow: 0 1px 3px rgba(30,41,59,.04);
  transition: transform .2s ease, border-color .2s ease, box-shadow .2s ease;
}
.card:hover { transform: translateY(-3px); border-color: var(--primary); box-shadow: 0 16px 40px rgba(37,99,235,.12); }
h2 { font-size: 24px; margin-bottom: 18px; }
h3 { font-size: 18px; margin-bottom: 8px; }

/* 表单 */
.form-card { margin-top: 8px; }
.form-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 16px; margin: 16px 0 20px; }
.form-grid label { font-size: 14px; color: var(--text-sub); display: block; }
.form-grid select, .form-grid input {
  width: 100%; margin-top: 6px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: var(--radius-xs);
  font-size: 15px; color: var(--text); background: #fff;
}
.form-grid select:focus, .form-grid input:focus, .addr-label textarea:focus {
  outline: none; border-color: var(--primary);
  box-shadow: 0 0 0 3px rgba(37,99,235,.12);
}
.btn {
  display: inline-block; border: none; cursor: pointer;
  border-radius: var(--radius-pill); font-size: 15px;
  padding: 10px 26px; background: #fff; color: var(--text);
  transition: all .18s ease;
}
.btn:hover { transform: translateY(-1px); color: var(--text); } /* 压过全局 a:hover，防蓝字配深蓝底 */
.btn-primary, .btn-primary:hover { color: #fff; }
.btn:active { transform: translateY(0); }
.btn:disabled { opacity: .55; cursor: not-allowed; transform: none; }
.btn-primary { background: var(--primary); color: #fff; box-shadow: 0 3px 10px rgba(37,99,235,.30); }
.btn-primary:hover { background: var(--primary-dark); box-shadow: 0 6px 18px rgba(37,99,235,.38); }
.btn-lg { padding: 12px 34px; font-size: 16px; border-radius: var(--radius-pill); }
.btn-sm { padding: 5px 14px; font-size: 13px; }
.btn-plain { background: #fff; color: var(--primary); border: 1px solid var(--border); }
.btn-plain:hover { border-color: var(--primary); background: var(--primary-light); }
.form-hint { color: var(--text-sub); font-size: 13px; margin-top: 12px; }
.center { text-align: center; }

.alert { margin-top: 16px; padding: 12px 16px; border-radius: var(--radius-xs); font-size: 14px; }
.alert-warn { background: #FFF7E6; border: 1px solid #F5C86B; color: #8A5A00; }

/* 特性区 */
.features { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; margin-top: 52px; }
.how { margin-top: 64px; margin-bottom: 88px; }
.steps { list-style: none; display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 24px; counter-reset: step; }
.steps li { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-xl); padding: 26px 28px; counter-increment: step; }
.steps li::before { content: counter(step); display: inline-flex; width: 28px; height: 28px; align-items: center; justify-content: center; background: var(--primary); color: #fff; border-radius: var(--radius-pill); margin-right: 10px; font-weight: 600; }
.steps b { margin-right: 8px; }
.steps span { color: var(--text-sub); font-size: 14px; }

/* 状态页 */
.status-box { margin-top: 48px; }
.spinner { width: 36px; height: 36px; border: 3px solid var(--border); border-top-color: var(--primary); border-radius: 50%; animation: spin .8s linear infinite; margin: 8px auto 16px; }
@keyframes spin { to { transform: rotate(360deg); } }
.paper-head { margin-top: 36px; }
.paper-head h1 { font-size: 24px; }
.paper-head .meta { color: var(--text-sub); margin: 8px 0 14px; }
.points-label { font-weight: 600; margin-right: 10px; }
.chip { display: inline-block; background: var(--primary-light); color: var(--primary); border: 1px solid rgba(37,99,235,.18); border-radius: var(--radius-pill); padding: 3px 12px; font-size: 13px; margin: 2px 6px 6px 0; transition: background .15s ease; }
.chip:hover { background: #DEE9FF; }
.actions { margin-top: 18px; display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }

/* 预览 */
.preview { margin-top: 28px; margin-bottom: 64px; }
.preview h2 { margin-bottom: 14px; }
.q-row { display: flex; gap: 10px; padding: 10px 0; border-bottom: 1px dashed var(--border); align-items: baseline; }
.q-row:last-child { border-bottom: none; }
.q-no { color: var(--primary); font-weight: 600; min-width: 28px; }
.q-type { flex-shrink: 0; font-size: 12px; color: var(--text-sub); border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 1px 8px; }
.q-stem { flex: 1; }

/* 控制台：左侧导航 + 分区布局 */
.acct-layout { display: grid; grid-template-columns: 220px minmax(0,1fr); gap: 22px; align-items: start; padding-top: 26px; }
.acct-side { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-lg); padding: 14px 12px; position: sticky; top: 74px; }
.acct-side-id { display: flex; align-items: center; gap: 10px; padding: 6px 8px 14px; border-bottom: 1px solid var(--border); margin-bottom: 10px; }
.acct-side-id b { font-size: 15px; display: block; }
.acct-side-id small { color: var(--text-sub); font-size: 12px; }
.acct-side > a { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px; border-radius: var(--radius-xs); color: var(--text); font-size: 14.5px; margin-bottom: 2px; }
.acct-side > a:hover { background: var(--primary-light); }
.acct-side > a.active { background: var(--primary); color: #fff; font-weight: 600; }
.acct-side > a i { font-style: normal; font-size: 12px; color: var(--text-sub); background: var(--bg, #f1f5f9); border-radius: 999px; padding: 1px 8px; }
.acct-side > a.active i { color: #fff; background: rgba(255,255,255,.22); }
.acct-side-back { color: var(--text-sub) !important; margin-top: 8px; }
.acct-bar { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding: 14px 18px; margin-bottom: 18px; }
.acct-bar h2 { font-size: 17px; }
.acct-bar .acct-maker { flex: 1 1 260px; min-width: 0; }
.acct-bar .acct-maker label { flex: 1; min-width: 0; }
.acct-bar .acct-maker input { width: 100%; }
.acct-bar .acct-phone { color: var(--text-sub); font-size: 13px; margin-top: 2px; }
.acct-badge { display: inline-block; margin-left: 8px; font-size: 12px; padding: 2px 10px; border-radius: var(--radius-pill); }
.acct-badge.member { background: rgba(37,99,235,.1); color: var(--primary); }
.acct-badge.free { background: #f1f5f9; color: var(--text-sub); }
.acct-badge.member-cta { background: #fff7ed; color: #ea580c; }
.acct-pager { display: flex; gap: 10px; align-items: center; justify-content: center; padding: 14px 0 4px; font-size: 14px; color: var(--text-sub); }
.acct-pager a, .acct-pager .off { padding: 5px 14px; border: 1px solid var(--border); border-radius: var(--radius-xs); background: #fff; color: var(--text); }
.acct-pager a:hover { border-color: var(--primary); color: var(--primary); }
.acct-pager .off { color: var(--text-sub); opacity: .55; }
@media (max-width: 860px) {
  .acct-layout { grid-template-columns: minmax(0, 1fr); }
  .acct-side { position: static; display: flex; flex-wrap: wrap; gap: 4px; width: 100%; min-width: 0; max-width: 100%; }
  .acct-side > a { flex: 1 1 auto; justify-content: center; min-width: 0; white-space: nowrap; }
  .acct-side-id { min-width: 0; }
  .acct-side-id b, .acct-side-id small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .acct-side-id { width: 100%; border-bottom: 1px solid var(--border); }
  .acct-side > a { flex: 1 1 auto; justify-content: center; }
  .acct-side-back { flex: 1 1 100% !important; text-align: center; }
}

/* 定价/关于 */
.pricing { padding-top: 40px; }
.price { font-size: 30px; color: var(--primary); font-weight: 700; margin: 6px 0 12px; }
.price span { font-size: 14px; color: var(--text-sub); font-weight: 400; }
.card ul { list-style: none; }
.card ul li { padding: 6px 0; color: var(--text-sub); font-size: 14px; }
.card ul li::before { content: "✓ "; color: var(--primary); font-weight: 700; }
.pricing-group { margin-top: 38px; font-size: 19px; font-weight: 600; color: var(--text); }
.pricing-group + .features { margin-top: 18px; }
.pack-each { margin: -8px 0 12px; font-size: 13.5px; font-weight: 600; color: var(--primary); }
.card.featured { border-color: var(--primary); position: relative; }
.card.featured::before { content: "推荐"; position: absolute; top: -11px; right: 18px; background: var(--primary); color: #fff; font-size: 12px; padding: 2px 12px; border-radius: var(--radius-pill); letter-spacing: 2px; }
.about-page { padding: 40px 0 64px; }
.about-page .card { margin-top: 16px; }
.about-page ul { padding-left: 4px; }

/* 页脚 */
.site-footer { border-top: 1px solid var(--border); margin-top: 80px; padding: 44px 0 48px; color: var(--text-sub); font-size: 13px; background: #fff; }
.footer-inner { display: flex; justify-content: space-between; align-items: flex-start; gap: 24px; flex-wrap: wrap; }
.footer-brand .logo { font-size: 18px; }
.footer-slogan { margin-top: 6px; }
.footer-links { display: flex; gap: 20px; flex-wrap: wrap; }
.footer-links a { color: var(--text-sub); }
.footer-links a:hover { color: var(--primary); }
.footer-bottom { margin-top: 20px; padding-top: 16px; border-top: 1px dashed var(--border); display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; }
.footer-bottom p { margin: 2px 0; }

/* 后台 */
.admin-body { background: var(--bg); }
.admin-wrap { display: flex; min-height: 100vh; }
.admin-side { width: 190px; background: #fff; border-right: 1px solid var(--border); padding: 22px 14px; flex-shrink: 0; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.admin-side h3 { font-size: 16px; margin-bottom: 18px; padding-left: 10px; letter-spacing: 1px; }
.admin-side a { display: block; padding: 9px 12px; border-radius: var(--radius-xs); color: var(--text-sub); margin-bottom: 4px; }
.admin-side a.active, .admin-side a:hover { background: var(--primary-light); color: var(--primary); }
.admin-side form { margin-top: 24px; }
.admin-main { flex: 1; padding: 28px 32px; }
.stats-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 14px; margin-bottom: 28px; }
.stat { text-align: center; padding: 18px; }
.stat b { font-size: 26px; color: var(--primary); display: block; }
.stat span { font-size: 13px; color: var(--text-sub); }
.tbl { width: 100%; border-collapse: collapse; background: #fff; border-radius: var(--radius-sm); overflow: hidden; font-size: 14px; }
.tbl th, .tbl td { text-align: left; padding: 12px 14px; border-bottom: 1px solid var(--border); }
.tbl th { background: var(--primary-light); color: var(--text); font-weight: 600; }
.err-cell { color: #C2410C; max-width: 200px; }
.filter-row a { margin-right: 14px; }
.filter-row a.active { font-weight: 700; }
.status { border-radius: var(--radius-pill); font-size: 12px; padding: 2px 10px; display: inline-block; }
.status-ready { background: #E7F7EE; color: #15803D; }
.status-failed { background: #FEECEC; color: #B91C1C; }
.status-generating, .status-pending { background: var(--primary-light); color: var(--primary); }
.login-box { max-width: 380px; margin: 80px auto; padding: 32px 28px; }
.login-box h2 { text-align: center; }
.login-slogan { text-align: center; color: var(--text-sub); font-size: 13.5px; margin: -6px 0 18px; }
.login-box input:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
.login-box label { display: block; margin-bottom: 14px; font-size: 14px; color: var(--text-sub); }
.login-box input { width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-xs); font-size: 15px; }
.login-box .btn { width: 100%; margin-top: 6px; }

/* 微信扫码登录二维码 */
.wx-qr-wrap { text-align: center; margin: 0 auto 16px; }
.wx-qr-wrap img {
  display: block; width: 200px; height: 200px; padding: 10px; margin: 0 auto 10px;
  border: 1px solid var(--border); border-radius: var(--radius-sm);
  background: #fff; box-sizing: content-box;
}
.wx-qr-wrap .form-hint { margin: 2px 0; }

/* ===== 用户体系 / 订单 / 加练 扩展 ===== */
.nav-form { display: inline; margin-left: 16px; }
.btn-link { background: none; border: none; color: var(--primary); cursor: pointer; font-size: 13px; padding: 0; }
.btn-link:hover { color: var(--primary-dark); text-decoration: underline; }
.nav-cta { background: var(--primary); color: #fff !important; border-radius: var(--radius-pill); padding: 5px 16px !important; }
.nav-user { font-weight: 600; }
.chip-mark { background: #fff; border: 1px solid var(--border); color: var(--text); }
.chip-marked { background: var(--primary-light); border-color: var(--primary); color: var(--primary); }
.chip-mark .inline-form { display: inline; margin-left: 4px; }
.inline-form { display: inline; }
.weak-zone { margin-top: 20px; }
.account-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(320px, 1fr)); gap: 18px; margin: 18px 0 22px; }
.account-grid .card { padding: 20px 22px; }
.account-grid .card:hover { transform: none; box-shadow: 0 4px 14px rgba(30,41,59,.06); }
/* ---- 用户控制台（我的账户） ---- */
/* 视觉规范例外：内含表单的静态卡（acct-hero/账户双卡）禁用 hover 上浮，避免表单区晃动 */
.acct-hero { display: flex; align-items: center; gap: 22px; flex-wrap: wrap; padding: 22px 26px; margin-top: 24px; }
.acct-hero:hover { transform: none; box-shadow: 0 4px 14px rgba(30,41,59,.06); }
.acct-id { display: flex; align-items: center; gap: 14px; }
.acct-avatar {
  width: 54px; height: 54px; border-radius: 50%; flex-shrink: 0; background: var(--primary); color: #fff;
  font-size: 24px; font-weight: 700; display: inline-flex; align-items: center; justify-content: center;
}
.acct-id h2 { margin: 0; font-size: 20px; line-height: 1.3; }
.acct-phone { color: var(--text-sub); font-size: 13.5px; margin: 2px 0 0; }
.acct-rights { display: flex; flex-direction: column; gap: 5px; }
.acct-badge { display: inline-block; border-radius: var(--radius-pill); font-size: 13px; font-weight: 600; padding: 4px 14px; width: fit-content; }
.acct-badge.member { background: #E7F7EE; color: #15803D; }
.acct-badge.free { background: #F1F5F9; color: var(--text-sub); }
.acct-badge.member-cta { background: #FFF7ED; color: #EA580C; }
.acct-due { color: var(--text-sub); font-size: 13px; margin: 0; }
.acct-maker { display: flex; align-items: flex-end; gap: 8px; margin-left: auto; }
.acct-maker label { font-size: 12.5px; color: var(--text-sub); display: flex; flex-direction: column; gap: 5px; }
.acct-maker input { width: 230px; padding: 8px 12px; border: 1px solid var(--border); border-radius: var(--radius-xs); font-size: 13.5px; }
.acct-maker input:focus { outline: none; border-color: var(--primary); }

.acct-stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 14px; margin: 14px 0 6px; }
.ustat { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 14px 18px; border-left: 3px solid var(--primary); }
.ustat b { font-size: 24px; color: var(--primary); display: block; line-height: 1.3; }
.ustat b i { font-style: normal; font-size: 14px; color: var(--text-sub); font-weight: 400; }
.ustat span { display: block; font-size: 12.5px; color: var(--text-sub); margin-top: 2px; }
.ustat.ustat-ok { border-left-color: #16A34A; }
.ustat.ustat-ok b { color: #16A34A; }
.ustat.ustat-warn { border-left-color: #DC2626; }
.ustat.ustat-warn b { color: #DC2626; }
.ustat-link { font-size: 12.5px; color: var(--primary); text-decoration: none; }
.ustat-link:hover { text-decoration: underline; }
.quota-bar { height: 5px; background: #EEF2F7; border-radius: var(--radius-pill); margin-top: 8px; overflow: hidden; }
.quota-bar i { display: block; height: 100%; background: var(--primary); border-radius: var(--radius-pill); }
.ustat-warn .quota-bar i { background: #DC2626; }

.card-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 10px; }
.card-head h3 { margin: 0; }
.sub-list { list-style: none; margin: 4px 0 0; padding: 0; }
.sub-list li { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 10px 2px; border-bottom: 1px dashed var(--border); }
.sub-list li:last-child { border-bottom: none; }
.sub-list b { font-size: 14.5px; }
.sub-list small { display: block; color: var(--text-sub); margin-top: 2px; }
.reinforce-form { display: flex; align-items: center; gap: 12px; margin-top: 14px; flex-wrap: wrap; }
.reinforce-form .form-hint { margin: 0; }

.panel { background: #fff; border: 1px solid var(--border); border-radius: var(--radius-sm); margin: 18px 0; overflow: hidden; }
.panel-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; flex-wrap: wrap; padding: 14px 20px; border-bottom: 1px solid var(--border); background: #FBFCFE; }
.panel-head h3 { margin: 0; font-size: 16.5px; border-left: 3px solid var(--primary); padding-left: 10px; line-height: 1.3; }
.panel-head p { margin: 2px 0 0 13px; font-size: 12.5px; color: var(--text-sub); }
.panel-body { padding: 4px 0; overflow-x: auto; }
.panel-body .tbl { border-radius: 0; }
.panel-body .tbl th:first-child, .panel-body .tbl td:first-child { padding-left: 20px; }
.panel-body .tbl th:last-child, .panel-body .tbl td:last-child { padding-right: 20px; }
.panel-body .tbl tr:last-child td { border-bottom: none; }
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: 13px; }
.account-grid .card .empty { margin-left: 0; margin-right: 0; }
.empty { text-align: center; color: var(--text-sub); font-size: 14px; padding: 26px 16px; margin: 12px 20px; border: 1px dashed var(--border); border-radius: var(--radius-sm); line-height: 2; }
.empty p { margin: 0; }
.empty a { color: var(--primary); font-weight: 600; }
.acct-note { color: var(--text-sub); font-size: 13px; line-height: 1.9; background: #F8FAFD; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 18px; margin: 22px 0 40px; }
.account-page .tbl a:not(.btn) { color: var(--primary); text-decoration: none; }
.account-page .tbl a:not(.btn):hover { text-decoration: underline; }

/* 打印下单页计价明细 */
.print-price-box { background: #F8FAFD; border: 1px solid var(--border); border-radius: var(--radius-sm); padding: 12px 16px; margin: 14px 0; }
.price-line { display: flex; justify-content: space-between; font-size: 14px; color: var(--text-sub); padding: 3px 0; }
.price-line.price-total { border-top: 1px dashed var(--border); margin-top: 6px; padding-top: 9px; font-size: 16px; font-weight: 700; color: var(--text); }
.price-line.price-total span:last-child { color: var(--primary); }

/* 订单/订阅状态色 */
.status-paid, .status-shipped, .status-completed, .status-active { background: #E7F7EE; color: #15803D; }
.status-processing { background: var(--primary-light); color: var(--primary); }
.status-cancelled, .status-paused, .status-done { background: #F1F5F9; color: var(--text-sub); }
.addr-label { display: block; font-size: 14px; color: var(--text-sub); margin-bottom: 16px; }
.addr-label textarea { width: 100%; margin-top: 6px; padding: 10px 12px; border: 1px solid var(--border); border-radius: var(--radius-xs); font-size: 15px; font-family: inherit; }
/* addr-label 内的下拉（教师页教案/课件单元选择等）：与 form-grid 全站统一 */
.addr-label select {
  width: 100%; margin-top: 6px; padding: 10px 12px;
  border: 1px solid var(--border); border-radius: var(--radius-xs);
  font-size: 15px; color: var(--text); background: #fff;
  font-family: inherit; appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 14px center;
  padding-right: 38px; cursor: pointer;
  transition: border-color .15s ease, box-shadow .15s ease;
}
.addr-label select:hover { border-color: #9FB3D1; }
.addr-label select:focus { outline: none; border-color: var(--primary); box-shadow: 0 0 0 3px rgba(37,99,235,.12); }
/* 全站原生 select 统一兜底（含未包 form-grid/addr-label 的零散下拉） */
select {
  appearance: none; -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%2364748B' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right 12px center;
  padding-right: 34px; cursor: pointer;
}
.reason-input { width: 120px; padding: 3px 8px; border: 1px solid var(--border); border-radius: var(--radius-xs); font-size: 13px; }
.stem-cell { max-width: 320px; }
.code-list { background: var(--primary-light); padding: 14px; border-radius: var(--radius-xs); font-size: 15px; line-height: 1.9; letter-spacing: 1px; }
.tbl .form-hint { padding: 18px 12px; text-align: center; }

/* 结果页：试卷信息 + 排版效果图 */
.paper-top { display: flex; gap: 20px; align-items: stretch; flex-wrap: wrap; }
.paper-top .paper-info { flex: 1 1 420px; display: flex; flex-direction: column; }
.paper-info .actions { margin-top: auto; padding-top: 18px; }
.paper-preview { flex: 0 0 240px; padding: 10px; text-align: center; }
.paper-preview img { width: 100%; display: block; border: 1px solid var(--border); border-radius: 6px; box-shadow: 0 2px 8px rgba(30,41,59,.08); }
.paper-preview a { display: block; line-height: 0; }

/* 生成进度条 */
.progress-wrap { max-width: 460px; margin: 18px auto 6px; text-align: left; }
.progress-bar { height: 14px; background: var(--border); border-radius: var(--radius-pill); overflow: hidden; }
.progress-fill { height: 100%; background: var(--primary); border-radius: var(--radius-pill); transition: width .6s ease; }
.progress-tip { margin: 10px 0 4px; font-size: 14px; color: var(--text); font-weight: 600; text-align: center; }
.progress-steps { display: flex; justify-content: center; gap: 18px; margin-top: 8px; }
.pstep { font-size: 13px; color: var(--text-sub); }
.pstep.active { color: var(--primary); font-weight: 600; }

/* 支付页 */
.pay-box { max-width: 460px; margin: 40px auto; text-align: center; }
.pay-amount { font-size: 34px; font-weight: 700; color: var(--primary); margin: 10px 0 18px; }
.qr-wrap { display: inline-block; padding: 12px; border: 1px solid var(--border); border-radius: var(--radius-sm); background: #fff; }
.pay-status { margin: 14px 0 6px; color: var(--primary); font-weight: 600; }

/* 教师工具 */
.unit-checks { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 6px; max-height: 260px; overflow-y: auto; border: 1px solid var(--border); border-radius: var(--radius-xs); padding: 10px; }
.unit-check { font-size: 14px; color: var(--text); display: flex; align-items: center; gap: 6px; }
.unit-check[hidden] { display: none; } /* display:flex 会压过 UA 的 [hidden] 规则，需显式声明 */
.unit-check input { width: auto; }
.teacher-page h1 { margin-bottom: 4px; }
.doc-section { margin: 14px 0; }
.doc-section h3 { background: var(--primary-light); padding: 6px 12px; border-radius: var(--radius-xs); }
.doc-section ul { padding-left: 22px; color: var(--text); }
.doc-section li { margin: 3px 0; }

/* 用户控制台移动端（置于基础规则之后保证覆盖） */
@media (max-width: 768px) {
  .acct-hero { flex-direction: column; align-items: flex-start; gap: 14px; padding: 18px; }
  .acct-maker { margin-left: 0; width: 100%; }
  .acct-maker label { flex: 1; flex-direction: column; width: 100%; }
  .acct-maker input { width: 100%; }
  .acct-stats { grid-template-columns: repeat(2, 1fr); }
  .account-grid { grid-template-columns: minmax(0, 1fr); }
  .account-grid .card { min-width: 0; }
  .panel-head { padding: 12px 14px; }
}

/* 宽屏（≥1600）：区块内部内容仍保持舒展但不过度拉伸 */
@media (min-width: 1600px) {
  .features { grid-template-columns: repeat(3, 1fr); }
  .steps { grid-template-columns: repeat(3, 1fr); }
}

/* ===== 用户控制台精化（覆盖上方基础规则） ===== */
.acct-layout { grid-template-columns: 236px minmax(0, 1fr); gap: 26px; padding-top: 30px; }
.acct-side {
  border-radius: var(--radius-xl); padding: 16px 14px;
  box-shadow: 0 1px 3px rgba(30,41,59,.05); position: sticky; top: 86px;
}
.acct-side-id { padding: 6px 10px 16px; margin-bottom: 12px; }
.acct-side-id b { font-size: 15.5px; }
.acct-side > a {
  padding: 11px 14px; border-radius: 8px; font-size: 14.5px; margin-bottom: 3px;
  transition: background .15s ease, color .15s ease, padding-left .15s ease;
}
.acct-side > a:hover { background: var(--primary-light); padding-left: 19px; }
.acct-side > a.active { background: var(--primary); box-shadow: 0 4px 14px rgba(37,99,235,.30); }
.acct-side > a i { font-size: 11.5px; background: #EEF2F7; }
.acct-side > a.active i { background: rgba(255,255,255,.22); }
.acct-side-back:hover { background: transparent !important; padding-left: 14px; color: var(--primary) !important; }

.acct-bar { padding: 18px 24px; border-radius: var(--radius-xl); margin-bottom: 20px;
  box-shadow: 0 1px 3px rgba(30,41,59,.04); }
.acct-bar .acct-id h2 { font-size: 18px; }
.acct-bar .acct-phone { font-size: 13px; }
.acct-bar .acct-badge { margin-left: 10px; }

.acct-stats { gap: 16px; margin: 0 0 10px; }
.ustat {
  border-radius: 12px; padding: 18px 20px; background: #fff;
  border: 1px solid var(--border); border-left: 3px solid var(--primary);
  transition: transform .18s ease, box-shadow .18s ease;
}
.ustat:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(30,41,59,.08); }
.ustat b { font-size: 28px; }
.ustat span { font-size: 13px; }
.ustat-link { display: inline-block; margin-top: 7px; font-weight: 600; font-size: 12.5px; }
.quota-bar { margin-top: 10px; }

.panel { border-radius: var(--radius-xl); margin: 0 0 20px; box-shadow: 0 1px 3px rgba(30,41,59,.04); }
.panel-head { padding: 16px 22px; }
.panel-head h3 { font-size: 17px; }
.panel-body { padding: 4px 0 8px; }
.account-page .tbl { font-size: 14px; }
.account-page .tbl tbody tr { transition: background .12s ease; }
.account-page .tbl tbody tr:hover td { background: #F7FAFF; }
.account-page .tbl td { border-bottom-color: #F1F5F9; }
.account-page .tbl .empty { border: none; background: #FBFCFE; border-radius: 12px; padding: 44px 16px; margin: 16px 20px; }
.account-page .tbl .empty b { color: var(--text); }

.acct-pager { padding: 16px 0 8px; }
.acct-pager a, .acct-pager .off { border-radius: var(--radius-pill); padding: 6px 18px; }
.acct-pager a:hover { background: var(--primary-light); }

.points { margin: 6px 0 4px; }
.reinforce-form { padding: 14px 0 8px; border-top: 1px dashed var(--border); margin-top: 18px; }
.sub-list li { padding: 12px 2px; }

@media (max-width: 860px) {
  .acct-layout { gap: 16px; padding-top: 20px; }
  .acct-side { position: static; }
  .acct-bar { padding: 16px; }
  .acct-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .ustat b { font-size: 24px; }
}

/* 控制台面板内容区统一左右留白（修复 chips/表单/订阅列表贴边） */
.panel-body { padding: 8px 20px 14px; }
.panel-body .tbl th:first-child, .panel-body .tbl td:first-child { padding-left: 12px; }
.panel-body .tbl th:last-child, .panel-body .tbl td:last-child { padding-right: 12px; }
.panel-body .tbl { border-radius: 8px; overflow: hidden; border: 1px solid #F1F5F9; }
.panel-body .points { margin: 8px 2px 4px; }
.panel-body .reinforce-form { margin: 14px 2px 6px; }
.panel-body .sub-list { margin: 6px 2px 10px; }
.panel-body .form-hint { margin: 6px 2px 10px; }
.panel-body form .form-grid { margin: 10px 0 16px; }

/* 教师文档正文卡（恢复宽松排版） */
.doc-body { margin-top: 20px; padding: 26px 30px; }
.doc-body:hover { transform: none; box-shadow: 0 1px 3px rgba(30,41,59,.04); }
.doc-body .doc-section { margin: 18px 0; }
.doc-body .doc-section:first-child { margin-top: 0; }
.doc-body .doc-section h3 { font-size: 15.5px; line-height: 1.6; }
.doc-body .doc-section li { margin: 4px 0; }

/* 登录/注册品牌标识 */
.login-logo { display: flex; justify-content: center; margin-bottom: 10px; }
.login-logo .logo { font-size: 24px; }

/* 控制台套餐购买卡 */
.acct-buy-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 16px; }
.buy-card { padding: 20px 22px; }
.buy-card h3 { font-size: 16px; margin-bottom: 4px; }
.buy-desc { color: var(--text-sub); font-size: 13px; margin: 0 0 10px; }
.buy-row { display: flex; align-items: center; gap: 10px; padding: 9px 0; border-top: 1px dashed var(--border); }
.buy-row:first-of-type { border-top: none; }
.buy-name { flex: 1; font-size: 14px; color: var(--text); }
.buy-name em { font-style: normal; font-size: 11px; color: #B45309; background: #FEF3C7; border-radius: var(--radius-pill); padding: 1px 8px; margin-left: 6px; }
.buy-price { font-weight: 700; color: var(--primary); }
.buy-row .btn { min-width: 64px; }
.buy-state { display: flex; align-items: center; gap: 10px; padding: 6px 0 2px; }
.buy-more { display: inline-block; margin-top: 10px; font-size: 12.5px; color: var(--text-sub); border-top: 1px dashed var(--border); padding-top: 10px; }
.buy-more:hover { color: var(--primary); }
.buy-card form:not(.buy-row) .form-grid { margin: 12px 0; }
.buy-card form:not(.buy-row) .btn { width: 100%; }

/* 分享广场 */
.shares-page { padding-top: 30px; }
.shares-head { margin-bottom: 18px; }
.shares-title-row { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; }
.shares-head h1 { font-size: 26px; position: relative; padding-left: 14px; }
.shares-head h1::before { content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%); width: 5px; height: 22px; border-radius: 3px; background: var(--primary); }
.shares-count { font-size: 13px; color: var(--primary); background: var(--primary-light); border-radius: var(--radius-pill); padding: 4px 14px; font-weight: 600; }
.shares-head .hero-sub { margin: 8px 0 0 14px; }
.chip-k12 { background: var(--primary-light); color: var(--primary); }
.chip-univ { background: #ecfdf5; color: #059669; }
.chip-exam { background: #fff7ed; color: #ea580c; }
.share-card-top .chip { font-weight: 600; border-radius: var(--radius-pill); padding: 3px 10px; font-size: 12px; }
.share-type { font-size: 12px; color: var(--text-sub); background: #f1f5f9; border-radius: var(--radius-pill); padding: 3px 10px; }
.share-card h3 { min-height: 46px; display: flex; align-items: flex-start; }
.share-card h3 a { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.share-meta { border-top: 1px dashed var(--border); padding-top: 10px; line-height: 1.7; }
.share-author { display: block; color: var(--primary); opacity: .75; }
.share-empty { padding: 56px 20px; display: flex; flex-direction: column; align-items: center; gap: 8px; }
.share-empty .btn { margin-top: 14px; }
.share-empty .form-hint { margin-bottom: 6px; }
.share-empty-ico { width: 56px; height: 56px; border-radius: var(--radius-lg); background: var(--primary-light); position: relative; margin-bottom: 6px; }
.share-empty-ico::before { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 22px; height: 28px; border: 2px solid var(--primary); border-radius: 4px; opacity: .8; }
.share-empty-ico::after { content: ""; position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); width: 10px; height: 2px; background: var(--primary); box-shadow: 0 6px 0 var(--primary), 0 -6px 0 var(--primary); border-radius: 1px; }
.share-vers { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; margin: 6px 0 18px; }
.share-vers .label { font-size: 13px; color: var(--text-sub); margin-right: 4px; }
.share-vers a { font-size: 13px; color: var(--text-sub); background: #fff; border: 1px solid var(--border); border-radius: var(--radius-pill); padding: 3px 12px; }
.share-vers a:hover { border-color: var(--primary); color: var(--primary); }
.share-vers a.active { background: var(--primary); border-color: var(--primary); color: #fff; }
.share-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; margin-top: 18px; }
.share-card { padding: 18px 20px; display: flex; flex-direction: column; }
.share-card h3 { font-size: 15px; line-height: 1.55; margin: 8px 0 6px; }
.share-card h3 a { color: var(--text); }
.share-card h3 a:hover { color: var(--primary); }
.share-card-top { display: flex; justify-content: space-between; align-items: center; }
.share-type { font-size: 12.5px; color: var(--text-sub); }
.share-meta { color: var(--text-sub); font-size: 13px; margin: 0 0 12px; flex: 1; }
.share-actions { display: flex; gap: 8px; }
@media (max-width: 768px) {
  .share-grid { grid-template-columns: 1fr; }
}
