/* ============================================================
   jstqb.css — テスト技術者資格 練習問題 固有スタイル
   共通変数は /style/common.css の --tp-* を流用
   ============================================================ */

.jq-panel{background:#fff;border:1px solid var(--tp-border);border-radius:12px;padding:22px}

/* 非公式であることの注記。目立たせすぎず、見落とさせない */
.jq-disclaimer{
  background:var(--tp-cream2);border:1px solid var(--tp-border2);border-radius:8px;
  padding:12px 16px;margin:0 0 20px;font-size:12px;line-height:1.85;color:var(--tp-text2);
}
.jq-disclaimer b{color:var(--tp-text)}

/* ====== メニュー ====== */
.jq-menu{max-width:680px;margin:0 auto}
.jq-mode-box{border:1px solid var(--tp-border);border-radius:12px;padding:18px 20px;margin-bottom:16px;background:var(--tp-cream)}
.jq-mode-title{font-size:15px;font-weight:800;margin:0 0 6px;color:var(--tp-text)}
.jq-mode-desc{font-size:12.5px;line-height:1.9;color:var(--tp-text2);margin:0 0 14px}
.jq-chapters{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:8px}
.jq-chapter{
  display:flex;flex-direction:column;gap:2px;align-items:flex-start;
  background:#fff;border:1px solid var(--tp-border2);border-radius:8px;padding:11px 14px;
  cursor:pointer;font-family:inherit;color:var(--tp-text);text-align:left;transition:border-color .12s;
}
.jq-chapter:hover{border-color:var(--tp-orange)}
.jq-chapter-n{font-size:10.5px;font-weight:800;color:var(--tp-orange);letter-spacing:.08em}
.jq-chapter-name{font-size:13.5px;font-weight:700}
.jq-chapter-note{font-size:11px;color:var(--tp-text3)}
.jq-menu-note{font-size:11.5px;line-height:1.85;color:var(--tp-text3);margin:14px 0 0;text-align:center}

.jq-start{
  display:block;width:100%;background:var(--tp-orange);color:#fff;border:none;border-radius:2px;
  padding:13px;font-size:14.5px;font-weight:800;cursor:pointer;font-family:inherit;
}
.jq-start:hover{background:#a9543f}
.jq-result .jq-start{margin-top:18px}

.jq-back{
  display:block;margin:18px auto 0;background:none;border:none;
  font-size:12px;font-weight:700;color:var(--tp-text3);cursor:pointer;font-family:inherit;
}
.jq-back:hover{color:var(--tp-orange)}
.jq-sub{
  background:#fff;border:1px solid var(--tp-border2);border-radius:2px;padding:8px 16px;
  font-size:12.5px;font-weight:700;color:var(--tp-text2);cursor:pointer;font-family:inherit;
}
.jq-sub:hover:not(:disabled){border-color:var(--tp-orange);color:var(--tp-orange)}
.jq-sub:disabled{opacity:.4;cursor:default}
.jq-sub.is-flagged{background:#fdf0ec;border-color:var(--tp-orange);color:var(--tp-orange)}

/* ====== 出題 ====== */
.jq-play{max-width:700px;margin:0 auto}
.jq-play-head{display:flex;justify-content:space-between;align-items:center;font-size:12px;font-weight:700;color:var(--tp-text2);margin-bottom:6px}
.jq-timer{font-variant-numeric:tabular-nums;font-weight:800}
.jq-timer.is-low{color:var(--tp-orange)}
.jq-bar{height:6px;background:var(--tp-cream2);border-radius:99px;overflow:hidden;margin-bottom:16px}
.jq-bar-fill{height:100%;background:var(--tp-orange);border-radius:99px;transition:width .3s}

.jq-tag{
  display:inline-block;font-size:10.5px;font-weight:800;letter-spacing:.04em;
  background:var(--tp-cream2);color:var(--tp-text2);border-radius:99px;padding:3px 11px;margin-bottom:10px;
}
.jq-q{
  font-size:15px;line-height:1.95;color:var(--tp-text);margin:0 0 16px;
  background:var(--tp-cream);border:1px solid var(--tp-border);border-radius:12px;padding:18px 20px;
}

.jq-options{display:grid;gap:8px}
.jq-opt{
  display:flex;align-items:flex-start;gap:12px;
  background:#fff;border:1px solid var(--tp-border2);border-radius:8px;padding:13px 16px;
  font-size:13.5px;line-height:1.8;cursor:pointer;font-family:inherit;color:var(--tp-text);
  text-align:left;transition:border-color .12s;
}
.jq-opt:hover:not(:disabled){border-color:var(--tp-orange)}
.jq-opt:disabled{cursor:default;opacity:.72}
.jq-opt-mark{
  flex-shrink:0;width:22px;height:22px;border-radius:50%;background:var(--tp-cream2);
  display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;color:var(--tp-text2);
}
.jq-opt-text{flex:1}
.jq-opt.is-picked{border-color:var(--tp-orange);border-width:2px;padding:12px 15px;background:#fdf7f4}
.jq-opt.is-picked .jq-opt-mark{background:var(--tp-orange);color:#fff}
.jq-opt.is-correct{border-color:var(--tp-green,#2f7d55);background:#eef6f1;opacity:1;border-width:2px;padding:12px 15px}
.jq-opt.is-correct .jq-opt-mark{background:var(--tp-green,#2f7d55);color:#fff}
.jq-opt.is-wrong{border-color:var(--tp-orange);background:#fdf0ec;opacity:1;border-width:2px;padding:12px 15px}

.jq-feedback:empty{display:none}
.jq-feedback{margin-top:16px;background:var(--tp-cream);border-radius:10px;padding:16px 18px}
.jq-fb-head{font-size:13.5px;font-weight:800;margin:0 0 8px}
.jq-feedback.is-ok .jq-fb-head{color:var(--tp-green,#2f7d55)}
.jq-feedback.is-ng .jq-fb-head{color:var(--tp-orange)}
.jq-fb-why{font-size:13px;line-height:1.9;color:var(--tp-text2);margin:0}
.jq-next{
  display:block;margin:14px auto 0;background:var(--tp-dark);color:#fff;border:none;border-radius:2px;
  padding:10px 28px;font-size:13px;font-weight:700;cursor:pointer;font-family:inherit;
}
.jq-next:hover{background:var(--tp-dark2)}

/* ====== 模試の操作 ====== */
.jq-exam-nav{display:flex;gap:8px;justify-content:center;margin-top:16px;flex-wrap:wrap}
.jq-map{display:flex;flex-wrap:wrap;gap:4px;justify-content:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--tp-border)}
.jq-map-cell{
  width:28px;height:28px;border:1px solid var(--tp-border2);border-radius:4px;background:#fff;
  font-size:11px;font-weight:700;color:var(--tp-text3);cursor:pointer;font-family:inherit;padding:0;
}
.jq-map-cell:hover{border-color:var(--tp-orange)}
.jq-map-cell.is-done{background:var(--tp-cream2);color:var(--tp-text);border-color:var(--tp-border2)}
.jq-map-cell.is-flagged{border-color:var(--tp-orange);color:var(--tp-orange)}
.jq-map-cell.is-now{background:var(--tp-dark);color:#fff;border-color:var(--tp-dark)}
.jq-exam-status{font-size:11.5px;color:var(--tp-text3);text-align:center;margin:12px 0 14px}

/* ====== 結果 ====== */
.jq-result{max-width:700px;margin:0 auto;text-align:center}
.jq-timeup{font-size:12.5px;font-weight:700;color:var(--tp-orange);margin:0 0 10px}
.jq-verdict{
  display:inline-block;font-size:14px;font-weight:800;border-radius:99px;padding:7px 22px;margin:0 0 10px;
}
.jq-verdict.is-pass{background:#eef6f1;color:var(--tp-green,#2f7d55);border:1px solid #b8dcc7}
.jq-verdict.is-fail{background:#fdf0ec;color:var(--tp-orange);border:1px solid #e4b5a5}
.jq-result-lead{font-size:12px;font-weight:700;color:var(--tp-text3);margin:0 0 4px}
.jq-result-score{font-size:22px;font-weight:900;margin:4px 0 8px;color:var(--tp-text)}
.jq-result-msg{font-size:13px;line-height:1.9;color:var(--tp-text2);margin:0 0 20px}

.jq-bych{background:var(--tp-cream);border:1px solid var(--tp-border);border-radius:12px;padding:16px 18px;text-align:left;margin-bottom:18px}
.jq-bych h3{font-size:13px;font-weight:800;margin:0 0 12px;color:var(--tp-text)}
.jq-bych-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.jq-bych-name{flex-shrink:0;width:190px;font-size:12px;font-weight:700;color:var(--tp-text2)}
.jq-bych-meter{flex:1;height:8px;background:#fff;border:1px solid var(--tp-border2);border-radius:99px;overflow:hidden}
.jq-bych-fill{display:block;height:100%;background:var(--tp-green,#2f7d55);border-radius:99px}
.jq-bych-fill.is-low{background:var(--tp-orange)}
.jq-bych-num{flex-shrink:0;width:40px;text-align:right;font-size:12px;font-weight:800;color:var(--tp-text);font-variant-numeric:tabular-nums}

.jq-review{background:var(--tp-cream);border:1px solid var(--tp-border);border-radius:12px;padding:18px 20px;text-align:left;margin-bottom:18px}
.jq-review h3{font-size:13px;font-weight:800;margin:0 0 12px;color:var(--tp-text)}
.jq-review-item{padding:14px 0;border-top:1px solid var(--tp-border)}
.jq-review-item:first-of-type{border-top:none;padding-top:0}
.jq-review-q{font-size:13px;line-height:1.85;color:var(--tp-text);margin:0 0 8px;font-weight:700}
.jq-review-ans{display:flex;flex-direction:column;gap:3px;margin:0 0 8px}
.jq-review-ng{font-size:12.5px;color:var(--tp-orange);font-weight:700}
.jq-review-ok{font-size:12.5px;color:var(--tp-green,#2f7d55);font-weight:700}
.jq-review-why{font-size:12.5px;line-height:1.85;color:var(--tp-text2);margin:0}

@media (max-width:640px){
  .jq-panel{padding:16px}
  .jq-q{font-size:14px;padding:15px 16px}
  .jq-bych-name{width:120px;font-size:11px}
  .jq-map-cell{width:26px;height:26px}
}
