/* 所有组件规则限定在 .blf 中，不覆盖原小镇全局样式。 */
.blf { --blf-ink:#173633; --blf-muted:#586c67; --blf-green:#176854; --blf-line:#dce5df; --blf-paper:#fff; color:var(--blf-ink); font:15px/1.7 -apple-system,BlinkMacSystemFont,"Segoe UI","Microsoft YaHei",sans-serif; }
.blf *, .blf *::before, .blf *::after { box-sizing:border-box; }
.blf [hidden] { display:none!important; }
.blf-shell { max-width:1220px; margin:0 auto; padding:30px 32px 70px; }
.blf h1,.blf h2,.blf h3,.blf h4,.blf p { margin:0; }
.blf h1 { font-size:28px; font-weight:750; line-height:1.5; letter-spacing:.04em; }
.blf h2 { font-size:24px; line-height:1.5; }
.blf h3 { font-size:18px; line-height:1.6; }
.blf h4 { font-size:14px; margin:13px 0 3px; }
.blf p { white-space:pre-wrap; overflow-wrap:anywhere; }
.blf button,.blf select,.blf input,.blf textarea { font:inherit; }
.blf button { cursor:pointer; }
.blf button:disabled,.blf input:disabled,.blf textarea:disabled { cursor:wait; opacity:.6; }
.blf button:focus-visible,.blf input:focus-visible,.blf select:focus-visible,.blf textarea:focus-visible,.blf summary:focus-visible { outline:3px solid #dc9b33; outline-offset:3px; }
.blf-header { display:flex; gap:20px; align-items:center; justify-content:space-between; padding-bottom:27px; }
.blf-brand { display:flex; align-items:center; gap:15px; }
.blf-logo { display:grid; place-items:center; width:58px; height:62px; flex-shrink:0; border-radius:19px 19px 19px 4px; color:#fff; background:var(--blf-green); font-size:27px; font-weight:700; }
.blf-eyebrow { color:var(--blf-muted); font-size:12px; letter-spacing:.12em; margin-bottom:3px; }
.blf-header-note { display:flex; flex-direction:column; gap:7px; align-items:flex-end; font-size:12px; color:var(--blf-muted); }
.blf-pill { display:inline-block; padding:3px 10px; border-radius:7px; background:#f0f4f0; color:#526a61; font-size:12px; line-height:1.6; }
.blf-tabs { display:flex; gap:6px; border-bottom:1px solid var(--blf-line); margin-bottom:28px; }
.blf-tabs button { color:var(--blf-muted); background:none; border:0; border-bottom:3px solid transparent; padding:13px 22px; }
.blf-tabs button[aria-current=page] { color:var(--blf-green); font-weight:700; border-bottom-color:var(--blf-green); }
.blf-intro { display:flex; align-items:center; gap:35px; justify-content:space-between; padding:29px 30px; border-radius:15px; background:#eaf1e9; margin-bottom:25px; }
.blf-intro h2 { font-size:23px; margin-bottom:8px; }
.blf-intro p { color:var(--blf-muted); max-width:590px; }
.blf-six { display:grid; grid-template-columns:repeat(3,1fr); gap:10px 16px; flex-shrink:0; }
.blf-six span { font-size:12px; display:flex; align-items:center; gap:6px; }
.blf-six b { border-radius:50%; width:23px; height:23px; display:grid; place-items:center; background:#fff9; color:var(--blf-green); }
.blf-filters { display:flex; gap:14px; align-items:flex-end; margin-bottom:17px; flex-wrap:wrap; }
.blf-field { display:flex; flex-direction:column; gap:5px; color:var(--blf-muted); font-size:12px; }
.blf-field>span { display:block; }
.blf-field input,.blf-field select,.blf-field textarea { color:var(--blf-ink); border:1px solid #c7d3cd; border-radius:8px; padding:10px 12px; font-size:14px; background:#fff; min-height:44px; }
.blf-field textarea { width:100%; resize:vertical; line-height:1.85; }
.blf-search { flex:1; min-width:200px; }
.blf-small { color:var(--blf-muted); font-size:12px; line-height:1.8; }
.blf-course-grid,.blf-project-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin-top:18px; }
.blf-card { background:var(--blf-paper); border:1px solid var(--blf-line); border-radius:13px; padding:24px; }
.blf-course { display:flex; flex-direction:column; align-items:flex-start; min-height:245px; }
.blf-card-meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; margin-bottom:15px; }
.blf-course h3 { margin-bottom:10px; }
.blf-course p { color:var(--blf-muted); font-size:13px; margin-bottom:18px; }
.blf-exercise-list { display:flex; flex-direction:column; gap:8px; width:100%; margin-top:auto; }
.blf .blf-exercise-button { font-size:12px; text-align:left; background:#f2f6f0; color:var(--blf-green); border-color:#d9e4d8; width:100%; padding:10px 12px; }
.blf-scenario>.blf-pill { margin-right:8px; }
.blf-button { display:inline-block; padding:10px 17px; border-radius:8px; background:var(--blf-green); color:#fff; border:1px solid var(--blf-green); min-height:44px; font-size:14px; }
.blf-button:hover { filter:brightness(.96); }
.blf-secondary { background:#fff; color:var(--blf-green); border-color:#bdcfc5; }
.blf-link-button { border:0; color:var(--blf-green); background:transparent; padding:8px 0; margin-top:auto; font-weight:650; }
.blf-error { padding:15px 20px; color:#8c341f; background:#fff2e8; border:1px solid #e8bba3; border-radius:10px; margin-bottom:20px; }
.blf-loading,.blf-empty { padding:35px 20px; text-align:center; border:1px dashed var(--blf-line); border-radius:12px; color:var(--blf-muted); }
.blf-section-head { margin-bottom:24px; }
.blf-section-head p { color:var(--blf-muted); margin-top:7px; }
.blf-back { color:var(--blf-green); border:0; background:none; padding:4px 0 16px; }
.blf-attempt-toolbar { display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.blf-progress { display:flex; justify-content:space-between; list-style:none; margin:0 0 24px; padding:0; gap:7px; }
.blf-progress li { flex:1; display:flex; gap:8px; align-items:center; font-size:12px; padding:11px 9px; border-bottom:3px solid #e1e6e1; color:#6d7b74; }
.blf-progress b { display:grid; place-items:center; border-radius:50%; background:#e9eeea; width:24px; height:24px; flex-shrink:0; }
.blf-progress li.current { border-color:#d49a3a; color:#754d17; font-weight:700; }
.blf-progress li.done { border-color:var(--blf-green); color:var(--blf-green); }
.blf-progress li.done b { background:var(--blf-green); color:#fff; }
.blf-scenario,.blf-feedback,.blf-question-panel,.blf-complete { margin-bottom:21px; }
.blf-scenario { border-left:4px solid #497f60; }
.blf-scenario h2 { font-size:23px; margin:12px 0 8px; }
.blf-goal { color:var(--blf-muted); font-size:13px; margin-bottom:20px!important; }
.blf-scenario-text { white-space:pre-wrap; padding:19px 20px; background:#f7f6ef; border-radius:8px; line-height:1.95; overflow-wrap:anywhere; }
.blf-question { margin:23px 0 25px; padding:0; border:0; min-width:0; }
.blf-question legend { font-weight:650; margin-bottom:12px; }
.blf-option { display:flex; align-items:flex-start; gap:10px; padding:12px 15px; border:1px solid var(--blf-line); border-radius:8px; margin:8px 0; cursor:pointer; }
.blf-option:has(input:checked) { background:#edf5ef; border-color:#428265; }
.blf-option input { width:18px; height:18px; flex-shrink:0; margin:4px 0 0; accent-color:var(--blf-green); }
.blf-option b { font-size:13px; margin-top:1px; color:var(--blf-muted); }
.blf-option span { white-space:pre-wrap; overflow-wrap:anywhere; }
.blf-hint-button { background:none; color:#786127; border:0; padding:5px 0; font-size:13px; }
.blf-hint { border-left:3px solid #e1ba6e; background:#fdf7e8; color:#765b29; padding:12px 15px; margin:12px 0!important; font-size:13px; }
.blf-feedback summary,.blf-reference summary,.blf-project-details summary { cursor:pointer; color:var(--blf-green); font-weight:600; }
.blf-feedback-item { border-top:1px solid var(--blf-line); margin-top:15px; padding-top:14px; font-size:13px; }
.blf-feedback-item strong { margin:0 10px; }
.blf-feedback-item p { margin-top:7px; }
.blf-good { background:#e4f3e7; color:#286441; }
.blf-warm { background:#fff1d9; color:#865d20; }
.blf-soft { color:var(--blf-green); }
.blf-facts { display:flex; gap:40px; flex-wrap:wrap; margin:18px 0; }
.blf-fact { display:flex; flex-direction:column; gap:5px; }
.blf-fact span { color:var(--blf-muted); font-size:12px; }
.blf-fact strong { font-size:23px; }
.blf-complete h3 { font-size:23px; margin-top:12px; }
.blf-complete .blf-field { margin:20px 0 10px; }
.blf-reference { margin-top:18px; padding:16px 0; border-top:1px solid var(--blf-line); }
.blf-reference p { margin:13px 0; }
.blf-actions { display:flex; gap:12px; flex-wrap:wrap; margin-top:20px; }
.blf-profile-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:17px; margin:20px 0; }
.blf-profile-grid p { font-size:12px; color:var(--blf-muted); margin:7px 0; }
.blf-score { font-size:27px; color:var(--blf-green); }
.blf-strength { padding:12px 16px; margin-top:12px!important; background:#edf4ee; border-radius:8px; }
.blf-notice { padding:15px 20px; background:#edf3eb; border-radius:10px; margin-bottom:13px!important; font-size:13px; }
.blf-project-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.blf-project h3 { font-size:20px; margin-bottom:10px; }
.blf-project p { font-size:13px; }
.blf-reasons { margin:13px 0; padding-left:13px; border-left:3px solid #76a086; }
.blf-reasons p { margin:5px 0; color:#3c694e; }
.blf-project-facts { display:flex; flex-direction:column; gap:4px; color:var(--blf-muted); font-size:12px; margin:15px 0; }
.blf-project-details { border-top:1px solid var(--blf-line); padding-top:14px; }
.blf-project-details>p { margin-bottom:7px; }
.blf-role { background:#f5f4e8; padding:9px 12px; border-radius:6px; }
.blf-equipment { width:100%; padding:12px 16px; border:1px solid var(--blf-line); background:#fff; border-radius:9px; }
.blf-equipment summary { color:var(--blf-green); cursor:pointer; font-size:13px; }
.blf-equipment-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:8px 16px; margin-top:13px; }
.blf-equipment-grid label { display:flex; align-items:flex-start; gap:7px; font-size:12px; }
.blf-equipment-grid input { margin-top:4px; accent-color:var(--blf-green); }
.blf-pagination { display:flex; align-items:center; justify-content:center; gap:18px; margin:24px 0; font-size:13px; }
.blf-subjects { margin-bottom:20px; }
.blf-subject-row { display:flex; gap:15px; flex-wrap:wrap; align-items:center; padding:12px 0; border-bottom:1px solid var(--blf-line); font-size:13px; }
.blf-subject-row>span:nth-child(2) { flex:1; }
.blf-demo-body { margin:0; background:#f7f9f5; }
.blf-demo-label { background:#173d34; color:#edf4e9; padding:9px 24px; text-align:center; font:12px/1.6 "Microsoft YaHei",sans-serif; }
@media(max-width:950px) {
  .blf-course-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blf-intro { flex-direction:column; align-items:flex-start; gap:19px; }
  .blf-six { display:flex; flex-wrap:wrap; }
  .blf-header-note>span:last-child { display:none; }
}
@media(max-width:600px) {
  .blf-shell { padding:21px 16px 45px; }
  .blf h1 { font-size:23px; }
  .blf-header { gap:8px; padding-bottom:18px; }
  .blf-logo { width:44px; height:50px; font-size:23px; }
  .blf-brand { gap:10px; }
  .blf-eyebrow { letter-spacing:0; font-size:10px; }
  .blf-header-note { display:none; }
  .blf-tabs { margin-bottom:20px; gap:0; }
  .blf-tabs button { flex:1; padding:12px 7px; font-size:14px; }
  .blf-intro { padding:23px 20px; }
  .blf-intro h2 { font-size:20px; }
  .blf-card { padding:20px 17px; }
  .blf-course-grid,.blf-project-grid,.blf-profile-grid { grid-template-columns:1fr; }
  .blf-equipment-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .blf-course { min-height:0; }
  .blf-filters { gap:10px; }
  .blf-filters>.blf-field { flex:1; min-width:120px; }
  .blf-filters>.blf-search { min-width:100%; }
  .blf-filters>button { width:100%; }
  .blf-progress { gap:3px; }
  .blf-progress li { flex-direction:column; padding:8px 0; gap:5px; font-size:10px; text-align:center; }
  .blf-progress b { width:23px; height:23px; }
  .blf-scenario h2 { font-size:20px; }
  .blf-scenario-text { padding:14px; }
  .blf-facts { gap:22px; }
  .blf-fact strong { font-size:20px; }
}
