/* =====================================================================
   style.css — 正規表現テスター ツール固有の微調整のみ。
   共通スタイルは /_shared/shirugear.css に任せる。
   ===================================================================== */

/* テキストエリア */
.sg-textarea {
  min-height: 120px;
  resize: vertical;
  line-height: 1.6;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.sg-output {
  background: var(--sg-primary-soft);
  white-space: pre-wrap;
  word-break: break-word;
}

/* パターン入力を /.../ で囲んだ見た目に */
.sg-pattern-row {
  display: flex;
  align-items: center;
  gap: var(--sg-space-1);
}

.sg-pattern-delim {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 1.2rem;
  color: var(--sg-muted, #5a6473);
  user-select: none;
}

.sg-pattern-input {
  flex: 1 1 auto;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

.sg-pattern-flags {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color: var(--sg-primary, #3b5bdb);
  font-weight: 700;
  min-width: 1ch;
}

/* エラー表示 */
.sg-error {
  margin: var(--sg-space-2) 0 0;
  color: #c0392b;
  font-size: 0.9rem;
  font-weight: 600;
}

/* チェックボックス群（共通CSSに無いため最小限） */
.sg-checks {
  display: flex;
  flex-direction: column;
  gap: var(--sg-space-2);
}

.sg-check {
  display: flex;
  align-items: flex-start;
  gap: var(--sg-space-2);
  cursor: pointer;
  font-size: 0.95rem;
  line-height: 1.4;
}

.sg-check input[type="checkbox"] {
  margin-top: 0.15em;
  width: 1.1em;
  height: 1.1em;
  flex: 0 0 auto;
  accent-color: var(--sg-primary, #3b5bdb);
  cursor: pointer;
}

.sg-check code {
  background: var(--sg-primary-soft, #eef2ff);
  border-radius: 4px;
  padding: 0 0.35em;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
}

/* ハイライト表示領域 */
.sg-highlight {
  margin: 0;
  padding: var(--sg-space-3);
  background: var(--sg-primary-soft, #eef2ff);
  border-radius: var(--sg-radius, 10px);
  white-space: pre-wrap;
  word-break: break-word;
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  font-size: 0.95rem;
  line-height: 1.7;
  min-height: 2.5em;
}

.sg-highlight mark {
  background: #ffe07a;
  color: inherit;
  border-radius: 3px;
  padding: 0.05em 0.1em;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08);
}

/* 隣接マッチを見分けやすいよう偶数番に別色 */
.sg-highlight mark.is-alt {
  background: #b9e6a8;
}

.sg-highlight .sg-hl-empty {
  color: var(--sg-muted, #5a6473);
}

/* マッチ一覧 */
.sg-matches {
  display: flex;
  flex-direction: column;
  gap: var(--sg-space-3);
}

.sg-match {
  border: 1px solid var(--sg-border, #dde2ec);
  border-radius: var(--sg-radius, 10px);
  padding: var(--sg-space-3);
}

.sg-match__head {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sg-space-2);
  align-items: baseline;
  margin-bottom: var(--sg-space-2);
}

.sg-match__no {
  font-weight: 700;
  color: var(--sg-primary, #3b5bdb);
}

.sg-match__idx {
  font-size: 0.85rem;
  color: var(--sg-muted, #5a6473);
}

.sg-match__value {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: #ffe07a;
  border-radius: 3px;
  padding: 0.05em 0.3em;
  word-break: break-all;
}

.sg-groups {
  list-style: none;
  margin: var(--sg-space-2) 0 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: var(--sg-space-1);
}

.sg-groups li {
  font-size: 0.9rem;
}

.sg-group__no {
  display: inline-block;
  min-width: 4.5em;
  color: var(--sg-muted, #5a6473);
}

.sg-group__val {
  font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  background: var(--sg-primary-soft, #eef2ff);
  border-radius: 3px;
  padding: 0.05em 0.3em;
  word-break: break-all;
}

.sg-group__val.is-undef {
  background: none;
  color: var(--sg-muted, #5a6473);
  font-style: italic;
}
