/* 家长端专用：中性配色，无任何品牌元素 */
.hd-top {
  position: sticky; top: 0; z-index: 20;
  background: rgba(246, 248, 251, .95);
  backdrop-filter: saturate(180%) blur(8px);
  border-bottom: 1px solid var(--line);
}
.hd-top-in { max-width: 780px; margin: 0 auto; padding: 11px 16px; display: flex; align-items: center; gap: 10px; }
.hd-logo { width: 30px; height: 30px; border-radius: 9px; background: var(--orange); color: #fff; display: grid; place-items: center; font-size: 14px; font-weight: 700; flex: none; }
.hd-title { font-weight: 700; font-size: 16px; }
.hd-who { font-size: 13px; color: var(--muted); }
.spacer { flex: 1; }

.auth-wrap { max-width: 460px; margin: 28px auto 0; padding: 0 16px 12px; }
.auth-card { background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 24px 20px; box-shadow: var(--shadow); }
.auth-card h1 { font-size: 22px; margin-bottom: 4px; }
.auth-lead { font-size: 13px; color: var(--muted); margin: 0 0 22px; line-height: 1.6; }

.step { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 20px; }
.step-no { width: 22px; height: 22px; border-radius: 50%; background: var(--orange-l); color: var(--orange-d); font-size: 12px; font-weight: 700; display: grid; place-items: center; flex: none; margin-top: 4px; }
.step-body { flex: 1; min-width: 0; }
.step-label { font-size: 14px; font-weight: 600; margin-bottom: 7px; }
.row { display: flex; gap: 8px; }
.row .txt { flex: 1; min-width: 0; }

.cand { border: 1px solid var(--line); border-radius: 11px; padding: 11px 13px; margin-top: 8px; cursor: pointer; background: #fff; transition: .15s; }
.cand.on { border-color: var(--orange); background: var(--orange-l); }
.cand b { font-size: 15px; }
.cand small { color: var(--muted); font-size: 12px; margin-left: 8px; }
.cand-tip { font-size: 12px; color: var(--muted); margin-top: 8px; line-height: 1.6; }
.notfound { font-size: 13px; color: var(--red); margin-top: 8px; line-height: 1.6; }
.hint { font-size: 12px; color: var(--muted); margin-top: 7px; line-height: 1.55; }
.dev-hint { background: #eef4fa; border: 1px dashed #b9cfe4; color: #2f5b87; padding: 9px 11px; border-radius: 9px; font-size: 13px; margin-top: 10px; }
.dev-hint b { letter-spacing: 1px; }

.contact { text-align: center; font-size: 13px; color: var(--muted); padding: 22px 16px 30px; line-height: 1.9; }
.contact a { color: var(--orange-d); font-weight: 700; }
.switch-line { text-align: center; margin-top: 16px; font-size: 14px; color: var(--muted); }
.switch-line a { cursor: pointer; }

.home-wrap { max-width: 780px; margin: 0 auto; padding: 18px 16px 0; }
.page-title { font-size: 22px; margin-bottom: 4px; }
.page-sub { font-size: 13px; color: var(--muted); margin: 0 0 18px; }
.stat-bar { display: flex; gap: 10px; flex-wrap: wrap; margin-bottom: 22px; }
.stat { flex: 1; min-width: 88px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 10px 12px; }
.stat b { display: block; font-size: 20px; line-height: 1.3; }
.stat span { font-size: 12px; color: var(--muted); }

.course-block { margin-bottom: 24px; }
.course-h { display: flex; align-items: center; gap: 9px; font-size: 15px; font-weight: 700; margin: 0 0 11px; }
.course-h::before { content: ''; width: 4px; height: 16px; border-radius: 2px; background: var(--orange); flex: none; }
.lesson-block { margin: 0 0 12px 14px; }
.lesson-h { font-size: 13px; color: var(--muted); font-weight: 600; margin: 0 0 8px; }
.hw-card { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 13px 15px; margin-bottom: 10px; cursor: pointer; box-shadow: var(--shadow); transition: .15s; }
.hw-card:hover { border-color: #c7d8e9; }
.hw-card h3 { font-size: 15px; margin-bottom: 3px; line-height: 1.5; }
.hw-desc { font-size: 13px; color: var(--ink-2); white-space: pre-wrap; margin-top: 2px; }
.hw-meta { display: flex; flex-wrap: wrap; gap: 7px 13px; font-size: 12px; color: var(--muted); margin-top: 9px; align-items: center; }
.hw-score { font-weight: 700; color: var(--orange-d); }
.closed-card { opacity: .72; cursor: default; }
.goc-entry { text-align: center; font-size: 13px; color: var(--muted); padding: 6px 16px 0; }
.goc-entry a { font-weight: 600; }

@media (max-width: 480px) {
  .auth-wrap { margin-top: 18px; }
  .auth-card { padding: 20px 17px; }
  .stat { min-width: 78px; padding: 9px 10px; }
  .lesson-block { margin-left: 8px; }
}
