/* =====================================================================
   style.css — カード番号チェック（Luhnアルゴリズム）ツール固有の微調整のみ。
   共通スタイルは /_shared/shirugear.css に任せる（結果表示は sg-result）。
   ===================================================================== */

/* 上部マージン補助（共有CSSに sg-mt-3 が無いため定義） */
.sg-mt-3 {
  margin-top: var(--sg-space-3, 12px);
}

/* 安全上の注意（強調ボックス） */
.sg-safety {
  margin-top: var(--sg-space-4, 16px);
  padding: var(--sg-space-4, 16px);
  border: 1px solid var(--sg-danger, #c02020);
  border-left-width: 4px;
  border-radius: var(--sg-radius, 10px);
  background: color-mix(in srgb, var(--sg-danger, #c02020) 7%, transparent);
  line-height: 1.8;
  font-size: 0.92rem;
}
.sg-safety__title {
  margin: 0 0 6px;
  font-weight: 700;
  color: var(--sg-danger, #c02020);
}
.sg-safety p { margin: 0.35em 0; }

/* 判定結果は折り返して読みやすく（大きすぎない見出しサイズに調整） */
.sg-result__value {
  line-height: 1.5;
  font-size: clamp(1.3rem, 6vw, 1.8rem);
  word-break: break-word;
}
.sg-result__value.is-valid {
  color: var(--sg-success, #1a7f37);
}
.sg-result__value.is-invalid {
  color: var(--sg-danger, #c02020);
}

/* マスク表示は等幅数字で桁ずれを防ぐ */
#row-mask {
  font-variant-numeric: tabular-nums;
  letter-spacing: 0.04em;
  word-break: break-all;
}

/* テスト番号サンプル */
.sg-samples {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: var(--sg-space-3, 12px);
}
.sg-samples__btn {
  font: inherit;
  font-size: 0.85rem;
  font-variant-numeric: tabular-nums;
  cursor: pointer;
  padding: 5px 10px;
  border: 1px solid var(--sg-border, #e5e7eb);
  border-radius: 999px;
  background: var(--sg-surface, #fff);
  color: var(--sg-fg, #222);
}
.sg-samples__btn:hover {
  border-color: var(--sg-primary, #3b5bdb);
}

/* 計算過程 */
.sg-steps {
  margin-top: var(--sg-space-3, 12px);
  border-top: 1px solid var(--sg-border, #e5e7eb);
  padding-top: var(--sg-space-3, 12px);
}
.sg-steps__title {
  font-size: 0.9rem;
  font-weight: 600;
  margin: 0 0 6px;
  color: var(--sg-muted, #555);
}
.sg-steps__sum {
  margin: 8px 0 0;
  font-size: 0.9rem;
  color: var(--sg-muted, #555);
  line-height: 1.7;
}

/* 1桁ごとの内訳 */
.sg-breakdown {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
  gap: 2px 16px;
}
.sg-breakdown-row {
  display: flex;
  align-items: baseline;
  gap: 8px;
  padding: 4px 0;
  border-bottom: 1px solid var(--sg-border, #e5e7eb);
  font-variant-numeric: tabular-nums;
}
.sg-breakdown-row__pos {
  flex: 0 0 1.6em;
  text-align: right;
  font-size: 0.8rem;
  color: var(--sg-muted, #999);
}
.sg-breakdown-row__char {
  flex: 0 0 1.2em;
  font-weight: 600;
  text-align: center;
}
.sg-breakdown-row__op {
  flex: 0 0 auto;
  font-size: 0.85rem;
  color: var(--sg-muted, #777);
}
.sg-breakdown-row__val {
  flex: 1 1 auto;
  text-align: right;
  font-weight: 600;
}
