.checklist-section {
  margin-bottom: 20px;
}
.cl-cat {
  font-size: 13px; font-weight: 700; color: var(--ink2);
  padding: 10px 0 8px;
  border-bottom: 2px solid var(--border2);
  margin-bottom: 10px;
  display: flex; align-items: center; gap: 6px;
}
.cl-progress {
  margin-left: auto;
  font-size: 11px; color: var(--ink3); font-family: 'DM Mono', monospace;
}

.cl-item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 10px 12px;
  border-radius: var(--r);
  cursor: pointer;
  transition: background .1s;
  margin-bottom: 4px;
  user-select: none;
}
.cl-item:hover { background: #fafaf8; }
.cl-item.done { background: var(--green-light); }
.cl-item.warn { background: #fff8e0; }
.cl-item input { display: none; }
.cl-box {
  width: 20px; height: 20px; min-width: 20px;
  border: 2px solid var(--border);
  border-radius: 5px;
  display: flex; align-items: center; justify-content: center;
  font-size: 12px; color: transparent;
  transition: all .15s;
  margin-top: 1px;
}
.cl-item.done .cl-box { background: var(--green); border-color: var(--green); color: #fff; }
.cl-item.warn .cl-box { background: #d4900a; border-color: #d4900a; color: #fff; }

.cl-text { flex: 1; }
.cl-main { font-size: 13px; color: var(--ink); line-height: 1.5; margin-bottom: 2px; }
.cl-item.done .cl-main { color: var(--green); }
.cl-sub  { font-size: 11px; color: var(--ink3); line-height: 1.5; }

.important-tag {
  font-size:11px; font-weight: 700;
  padding: 2px 6px;
  border-radius: 4px;
  background: #fee;
  color: #c00;
  border: 1px solid #f0b0b0;
  white-space: nowrap;
  flex-shrink: 0;
  margin-top: 2px;
}

/* スコアゲージ */
.score-gauge {
  background: var(--white);
  border: 1px solid var(--border);
  border-radius: var(--r-lg);
  padding: 20px 16px;
  margin-bottom: 14px;
  text-align: center;
}
.gauge-wrap {
  position: relative;
  width: 140px; height: 70px;
  margin: 0 auto 12px;
}
.gauge-bg {
  position: absolute; top: 0; left: 0;
  width: 140px; height: 70px;
  border-radius: 70px 70px 0 0;
  background: conic-gradient(
    var(--border) 0deg 180deg
  );
  overflow: hidden;
}
.gauge-fill {
  position: absolute; top: 0; left: 0;
  width: 140px; height: 70px;
  border-radius: 70px 70px 0 0;
  background: conic-gradient(
    var(--green) 0deg var(--angle, 0deg),
    transparent var(--angle, 0deg) 180deg
  );
}
.gauge-center {
  position: absolute;
  bottom: 0; left: 50%;
  transform: translateX(-50%);
  text-align: center;
}
.gauge-pct {
  font-family: 'DM Mono', monospace;
  font-size: 22px; font-weight: 700;
  color: var(--ink);
}
.gauge-label { font-size:12px; color: var(--ink3); }
.score-msg {
  font-size: 14px; font-weight: 700;
  padding: 8px 16px;
  border-radius: var(--r-full);
  display: inline-block;
  margin-bottom: 8px;
}
.msg-safe  { background: var(--green-light); color: var(--green); }
.msg-mid   { background: #fff8e0; color: #8a5e00; }
.msg-risk  { background: #fff0f0; color: #c00; }

.ng-list {
  background: #fff0f0;
  border: 1px solid #f0b0b0;
  border-radius: var(--r);
  padding: 14px 16px;
  margin-bottom: 14px;
}
.ng-title { font-size: 13px; font-weight: 700; color: #c00; margin-bottom: 8px; }
.ng-item { font-size: 12px; color: #800; padding: 4px 0 4px 16px; position: relative; border-bottom: 1px solid #f0b0b0; line-height: 1.6; }
.ng-item:last-child { border-bottom: none; }
.ng-item::before { content: '⚠'; position: absolute; left: 0; }

.complete-msg {
  background: var(--green-light);
  border: 1.5px solid rgba(42,107,60,.3);
  border-radius: var(--r);
  padding: 16px;
  text-align: center;
  font-size: 14px;
  font-weight: 700;
  color: var(--green);
  margin-bottom: 14px;
}