/* 原神ビルド診断。ゲーム画像は使わず、文字・色・形だけで組む（docs/genshin-plan.md §6.4, §9）
   見た目の方針は「白と翡翠」。白地に深い緑の強調だけを使い、装飾は少なく。元素の色は小さな印と細い線にとどめる。
   黒地に水色・クリーム地にオレンジの組み合わせは使わない（オーナー指定）。外部フォントは使わず、端末のゴシック体だけ。 */
:root {
  --bg: #ffffff; --card: #ffffff; --fg: #14201b; --muted: #56635d; --line: #e3e7e5; --rule: #c7cfcb; --field: #8a9690;
  --accent: #0f6b52; --accent-fg: #ffffff; --warn: #a3243b; --warn-bg: #fbecef; --good: #0f6b52; --room: #a3243b;
  --mark: rgba(15, 107, 82, 0.12); --seal-fg: #14201b;
  --el: #8a9690;
  --sans: system-ui, -apple-system, "Hiragino Sans", "Noto Sans JP", "Yu Gothic UI", sans-serif;
  --serif: var(--sans);
  color-scheme: light;
  accent-color: var(--accent);
}
@media (prefers-color-scheme: dark) {
  /* 夜: 深い緑がかった黒の地に、淡い翡翠 */
  :root {
    --bg: #121a17; --card: #18221e; --fg: #e6eeea; --muted: #9fb0a8; --line: #26332d; --rule: #3a4a42; --field: #6f817a;
    --accent: #7fc8a9; --accent-fg: #0d1512; --warn: #f0a3b1; --warn-bg: #2a171c; --good: #7fc8a9; --room: #f0a3b1;
    --mark: rgba(127, 200, 169, 0.18);
    color-scheme: dark;
  }
}
/* 元素の色（岩絵具のような中間色）。上に乗せる文字は常に墨色（--seal-fg）で 4.5:1 以上 */
.el-Fire { --el: #e07a4f; } .el-Water { --el: #5b9bd0; } .el-Wind { --el: #6fb89c; } .el-Electric { --el: #a68ac6; }
.el-Grass { --el: #9bb84a; } .el-Ice { --el: #a8c9d3; } .el-Rock { --el: #ddaa4a; }

* { box-sizing: border-box; }
body {
  margin: 0; background-color: var(--bg); color: var(--fg); font-family: var(--sans); line-height: 1.75; overflow-wrap: break-word;
}
main, .gs-footer { max-width: 720px; margin: 0 auto; padding: 28px 16px; }
a { color: var(--accent); text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { text-decoration-thickness: 2px; }
:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
h1, h2, .gs-big, .gs-mid, .gs-code { font-family: var(--serif); font-feature-settings: "palt"; }
h1 { margin: 0 0 10px; font-size: 2rem; line-height: 1.25; font-weight: 700; letter-spacing: 0.04em; }
h1::after { content: ""; display: block; width: 40px; height: 3px; margin-top: 14px; background: var(--accent); }
h2 { margin: 0; font-size: 1.5rem; line-height: 1.35; font-weight: 700; letter-spacing: 0.03em; }
h3 { display: flex; align-items: center; gap: 8px; margin: 0 0 10px; font-size: 1rem; letter-spacing: 0.06em; }
h3::before { content: ""; flex: none; width: 8px; height: 8px; background: var(--accent); }
p { margin: 0 0 8px; }
button, select, input { font: inherit; }
button { min-height: 44px; cursor: pointer; }
.gs-lead { color: var(--muted); }
.gs-lang { float: right; display: inline-flex; align-items: center; min-height: 44px; margin: -4px 0 0 12px; padding: 0 14px; border: 1px solid var(--field); border-radius: 999px; color: var(--fg); font-size: 0.85rem; letter-spacing: 0.04em; text-decoration: none; }
.gs-lang:hover { border-color: var(--accent); color: var(--accent); }
.gs-card { background: var(--card); border: 1px solid var(--line); border-radius: 6px; padding: 20px 16px; margin: 16px 0; box-shadow: 0 2px 0 var(--line); }
.gs-card > h2 { margin-bottom: 8px; font-size: 1.2rem; }

/* 入力 */
.gs-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: flex-end; }
.gs-form label { width: 100%; color: var(--muted); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; }
.gs-form input, .gs-delete input[name="uid"] { flex: 1 1 160px; min-width: 0; min-height: 48px; padding: 8px 12px; border: 1px solid var(--field); border-radius: 4px; background: var(--bg); color: var(--fg); font-size: 1.15rem; letter-spacing: 0.08em; font-variant-numeric: tabular-nums; }
.gs-form input::placeholder { color: var(--muted); font-size: 1rem; letter-spacing: 0.02em; }
.gs-form input[aria-invalid="true"] { border: 2px solid var(--room); }
.gs-form button, .gs-primary { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 8px 24px; border: 0; border-radius: 4px; background: var(--accent); color: var(--accent-fg); font-weight: 700; letter-spacing: 0.08em; text-decoration: none; box-shadow: 0 2px 0 color-mix(in srgb, var(--accent) 55%, #000); }
.gs-form button:active, .gs-primary:active { transform: translateY(1px); box-shadow: none; }
.gs-help, .gs-note { color: var(--muted); font-size: 0.88rem; }
.gs-help { width: 100%; margin: 4px 0 0; }
.gs-field-error { width: 100%; min-height: 1.2em; margin: 0; color: var(--room); font-size: 0.9rem; font-weight: 700; }
.gs-chip, .gs-secondary, .gs-error button { padding: 6px 16px; border: 1px solid var(--field); border-radius: 4px; background: var(--card); color: var(--fg); font-weight: 600; }
.gs-chip:hover, .gs-secondary:hover, .gs-error button:hover { border-color: var(--fg); }
.gs-chip { margin-bottom: 8px; font-variant-numeric: tabular-nums; }
.gs-loading { color: var(--muted); }
.gs-loading::before { content: ""; display: inline-block; width: 8px; height: 8px; margin-right: 10px; background: var(--accent); vertical-align: middle; animation: gs-blink 1s steps(2) infinite; }
@keyframes gs-blink { 50% { opacity: 0.2; } }
@media (prefers-reduced-motion: reduce) { .gs-loading::before { animation: none; } }
#gs-status:not(:empty) { margin: 16px 0; }
.gs-error { padding: 12px 14px; border: 1px solid var(--line); border-left: 4px solid var(--room); border-radius: 4px; background: var(--card); }
.gs-error strong { color: var(--room); }
.gs-error p { margin: 4px 0 8px; }

/* 結果 */
.gs-showcase-count { margin: 28px 0 8px; }
.gs-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 2px 2px 6px; scrollbar-width: thin; }
/* タブの元素は左の小さな四角だけで示す。選ばれたタブは墨で塗る */
.gs-tab { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 8px; padding: 0 16px 0 12px; border: 1px solid var(--line); border-radius: 999px; background: var(--card); color: var(--fg); font-weight: 600; }
.gs-tab::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 2px; background: var(--el); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18); }
.gs-tab:hover { border-color: var(--field); }
.gs-tab[aria-selected="true"] { background: var(--fg); border-color: var(--fg); color: var(--card); }
#gs-panel { margin-top: 8px; padding: 20px 16px; border: 1px solid var(--line); border-top: 3px solid var(--el); border-radius: 2px 2px 6px 6px; background: var(--card); box-shadow: 0 2px 0 var(--line); }
.gs-char { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.gs-char h2 { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; font-size: 1.75rem; }
.gs-char p { margin: 0; color: var(--muted); font-size: 0.92rem; font-variant-numeric: tabular-nums; }
/* 元素の印（判子）。英語の「Electro」なども収まるよう幅は文字に合わせる */
.gs-el-mark { display: inline-grid; place-items: center; min-width: 1.75em; height: 1.75em; padding: 0 0.4em; border-radius: 3px; background: var(--el); color: var(--seal-fg); font-size: 0.6em; font-weight: 700; letter-spacing: 0; box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.12); }
.gs-score { display: grid; grid-template-columns: 1fr auto; gap: 8px 20px; align-items: start; }
.gs-label { margin: 0; color: var(--muted); font-size: 0.78rem; font-weight: 700; letter-spacing: 0.12em; }
.gs-big { margin: 2px 0 6px; font-size: 3.4rem; font-weight: 700; line-height: 1.05; letter-spacing: -0.01em; font-variant-numeric: lining-nums tabular-nums; }
.gs-mid { margin: 4px 0 10px; font-size: 1.9rem; font-weight: 700; line-height: 1.2; font-variant-numeric: lining-nums tabular-nums; }
.gs-grade { font-weight: 700; }
.grade-great .gs-grade, .gs-grade.grade-great { color: var(--good); }
.grade-room .gs-grade, .gs-grade.grade-room { color: var(--room); }
/* 評価は細い枠で囲む */
.gs-score-main .gs-grade { display: inline-block; padding: 0 10px; border: 2px solid currentColor; border-radius: 4px; font-size: 0.9rem; letter-spacing: 0.1em; }
.gs-score-side label { display: block; margin-bottom: 4px; }
.gs-score select { max-width: 100%; min-height: 44px; padding: 0 8px; border: 1px solid var(--field); border-radius: 4px; background: var(--card); color: var(--fg); }
.gs-prev, .gs-info { grid-column: 1 / -1; }
.gs-prev { margin: 0; color: var(--muted); font-size: 0.9rem; }
/* 「?」は見た目 28px の輪、押せる範囲は 44px */
.gs-info summary { display: inline-grid; place-items: center; width: 44px; height: 44px; margin-left: -8px; color: var(--muted); font-weight: 700; cursor: pointer; list-style: none; background: radial-gradient(circle, transparent 12.5px, var(--field) 13px, var(--field) 14px, transparent 14.5px); }
.gs-info summary::-webkit-details-marker { display: none; }
.gs-info[open] summary { color: var(--accent); }
.gs-info p { padding: 10px 12px; border-radius: 4px; background: var(--bg); color: var(--muted); font-size: 0.88rem; }
.gs-er { margin: 20px 0; padding: 14px; border: 1px dashed var(--rule); border-radius: 4px; background: var(--bg); }
.gs-er.is-short { border: 1px solid var(--warn); border-left-width: 4px; background: var(--warn-bg); }
.gs-er.is-short [data-testid="er-line"] { color: var(--warn); font-weight: 700; }
.gs-er input { width: 6.5em; min-height: 44px; margin-left: 4px; padding: 4px 10px; border: 1px solid var(--field); border-radius: 4px; background: var(--card); color: var(--fg); font-variant-numeric: tabular-nums; }
.gs-er .gs-note { margin: 8px 0 0; }
.gs-actions, .gs-pieces { margin-top: 20px; padding-top: 18px; border-top: 1px solid var(--line); }
/* 次の一手は 01, 02… の翡翠の数字で番号を振る（ol の意味はそのまま） */
.gs-actions ol { margin: 0; padding: 0; list-style: none; counter-reset: gs-step; }
.gs-actions li { display: grid; grid-template-columns: 2.2em 1fr; column-gap: 8px; margin-bottom: 14px; counter-increment: gs-step; }
.gs-actions li::before { content: counter(gs-step, decimal-leading-zero); grid-row: 1 / span 2; color: var(--accent); font-family: var(--serif); font-size: 1.35rem; font-weight: 700; line-height: 1.25; font-variant-numeric: lining-nums; }
.gs-actions li strong, .gs-actions li span { grid-column: 2; }
.gs-actions li span { display: block; color: var(--muted); font-size: 0.9rem; }
.gs-pieces > ul { margin: 0; padding: 0; list-style: none; }
/* 部位ごと: 1 行目に部位名と評価、2 行目に横棒、3 行目に回数。横棒は元素の色ではなく評価の色（墨・翡翠・臙脂） */
.gs-piece summary { display: grid; grid-template-columns: 2.25em 1fr auto; grid-template-areas: "mark name grade" "mark bar bar" "mark rolls rolls"; gap: 2px 12px; align-items: center; min-height: 44px; padding: 12px 0; border-bottom: 1px solid var(--line); cursor: pointer; list-style: none; }
.gs-piece summary::-webkit-details-marker { display: none; }
.gs-piece summary:hover .gs-slot-name { text-decoration: underline; text-underline-offset: 3px; }
.gs-slot-mark { grid-area: mark; align-self: start; display: grid; place-items: center; width: 2.25em; height: 2.25em; border: 1px solid var(--field); border-radius: 3px; font-family: var(--serif); font-weight: 700; }
.gs-piece details[open] .gs-slot-mark { border-color: var(--fg); background: var(--fg); color: var(--card); }
.gs-slot-name { grid-area: name; font-weight: 700; }
.gs-rolls { grid-area: rolls; color: var(--muted); font-size: 0.85rem; font-variant-numeric: tabular-nums; }
.gs-bar { grid-area: bar; height: 6px; margin: 4px 0 2px; background: var(--line); overflow: hidden; }
.gs-bar > span { display: block; height: 100%; background: var(--fg); }
.gs-piece.grade-room .gs-bar > span { background: var(--room); }
.gs-piece.grade-great .gs-bar > span { background: var(--good); }
.gs-piece .gs-grade { grid-area: grade; justify-self: end; font-size: 0.8rem; }
.gs-piece details > p, .gs-piece details > ul { margin: 10px 0 10px calc(2.25em + 12px); color: var(--muted); font-size: 0.9rem; }
.gs-piece details > ul { padding-left: 1.1em; }
.gs-stats, .gs-assumptions { margin-top: 20px; border-top: 1px solid var(--line); }
.gs-assumptions { border-bottom: 1px solid var(--line); }
.gs-assumptions ul { margin: 0 0 12px; padding-left: 1.2em; color: var(--muted); font-size: 0.9rem; }
.gs-stats dl { display: grid; grid-template-columns: auto 1fr; gap: 0 16px; margin: 0 0 12px; font-variant-numeric: tabular-nums; }
.gs-stats dt, .gs-stats dd { padding: 6px 0; border-bottom: 1px dotted var(--rule); }
.gs-stats dt { color: var(--muted); }
.gs-stats dd { margin: 0; font-weight: 600; text-align: right; }
.gs-share, .gs-stats-progress { margin-top: 16px; }
.gs-share { display: flex; flex-wrap: wrap; gap: 8px; }
.gs-refetch, .gs-showcase-count { color: var(--muted); font-size: 0.88rem; }
.gs-refetch { margin-top: 12px; font-variant-numeric: tabular-nums; }
.gs-code { display: block; max-width: 100%; margin: 4px 0 12px; padding: 10px 14px; border: 2px dashed var(--accent); border-radius: 4px; background: var(--bg); font-size: 1.3rem; font-weight: 700; letter-spacing: 0.06em; font-variant-numeric: lining-nums tabular-nums; overflow-wrap: anywhere; }

/* 静的な説明・フッター */
.gs-howto ol { margin: 8px 0 0; padding-left: 1.4em; }
.gs-howto li { margin-bottom: 6px; padding-left: 4px; }
.gs-howto li::marker { color: var(--accent); font-family: var(--serif); font-weight: 700; }
.gs-glossary dl { margin: 8px 0 0; }
.gs-glossary dt { padding-top: 10px; border-top: 1px solid var(--line); font-weight: 700; }
.gs-glossary dt:first-child { padding-top: 0; border-top: 0; }
.gs-glossary dd { margin: 2px 0 10px; color: var(--muted); font-size: 0.92rem; }
.gs-characters ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 8px 0 0; padding: 0; list-style: none; }
.gs-characters a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px 0 12px; border: 1px solid var(--field); border-radius: 999px; color: var(--fg); font-weight: 600; text-decoration: none; }
.gs-characters a::before { content: ""; flex: none; width: 9px; height: 9px; border-radius: 2px; background: var(--el); box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.18); }
.gs-characters a:hover { border-color: var(--accent); color: var(--accent); }

/* 折りたたみ欄の見出し。矢印は文字ではなく線で描く（display:flex で既定の三角が消えるため） */
:is(.gs-delete, .gs-about, .gs-stats, .gs-assumptions) > summary { display: flex; align-items: center; gap: 12px; min-height: 44px; font-weight: 700; cursor: pointer; list-style: none; }
:is(.gs-delete, .gs-about, .gs-stats, .gs-assumptions) > summary::-webkit-details-marker { display: none; }
:is(.gs-delete, .gs-about, .gs-stats, .gs-assumptions) > summary::before { content: ""; flex: none; width: 7px; height: 7px; margin-left: 2px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); transition: transform 0.15s; }
:is(.gs-delete, .gs-about, .gs-stats, .gs-assumptions)[open] > summary::before { transform: rotate(45deg); }
@media (prefers-reduced-motion: reduce) { :is(.gs-delete, .gs-about, .gs-stats, .gs-assumptions) > summary::before { transition: none; } }
.gs-delete { padding-top: 8px; padding-bottom: 8px; }
.gs-delete[open] { padding-bottom: 20px; }
.gs-delete > p { color: var(--muted); font-size: 0.92rem; }
.gs-delete label { display: block; margin: 4px 0; }
#gs-delete-form > label { color: var(--muted); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.14em; }
.gs-delete input[name="uid"] { display: block; width: 100%; margin-top: 4px; color: var(--fg); }
.gs-delete fieldset { margin: 14px 0; padding: 6px 12px 4px; border: 1px solid var(--line); border-radius: 4px; }
.gs-delete legend { padding: 0 6px; color: var(--muted); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; }
.gs-delete fieldset label { display: flex; align-items: center; gap: 10px; min-height: 44px; margin: 0; }
.gs-delete input[type="radio"] { flex: none; width: 18px; height: 18px; margin: 0; }
#gs-delete-result:not(:empty) { margin-top: 16px; }
#gs-delete-result ol { padding-left: 1.3em; }

.gs-fire { margin-bottom: 20px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
/* 火力指数はページの主役。数字の下半分に朱の蛍光ペンを引く */
.gs-fire .gs-big { display: inline-block; margin-left: -4px; padding: 0 6px; font-size: 4rem; background: linear-gradient(transparent 68%, var(--mark) 68%, var(--mark) 92%, transparent 92%); }
.gs-fire-list { margin: 12px 0 0; padding: 0; list-style: none; }
.gs-fire-list li { position: relative; margin-bottom: 8px; padding-left: 18px; }
.gs-fire-list li::before { content: ""; position: absolute; top: 0.85em; left: 2px; width: 8px; height: 2px; background: var(--accent); }
.gs-fire-list span { display: block; color: var(--muted); font-size: 0.88rem; font-variant-numeric: tabular-nums; }
.gs-fire-missing { margin-bottom: 16px; padding: 10px 12px; border-radius: 4px; background: var(--bg); }
.gs-warn { color: var(--warn); font-weight: 700; }

/* フッター。非公式の注記は朱の線を添えて、いつも読める位置に置く */
.gs-footer { margin-top: 16px; padding-bottom: 48px; border-top: 1px solid var(--rule); color: var(--muted); font-size: 0.85rem; }
.gs-footer p { margin: 0 0 6px; }
.gs-footer > p > a { display: inline-flex; align-items: center; min-height: 44px; }
.gs-footer .gs-unofficial { margin-top: 8px; padding: 10px 12px; border: 1px solid var(--line); border-left: 3px solid var(--accent); border-radius: 4px; background: var(--card); color: var(--fg); }
.gs-about { margin-bottom: 8px; }
.gs-about h2 { margin: 14px 0 4px; color: var(--fg); font-family: var(--sans); font-size: 0.85rem; letter-spacing: 0.08em; }
.gs-about p { font-size: 0.85rem; }

/* キャラ別ページ */
.gs-back { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; margin-bottom: 8px; font-size: 0.9rem; text-decoration: none; }
.gs-back::before { content: ""; width: 7px; height: 7px; border-left: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); }
.gs-back:hover { text-decoration: underline; }
.gs-doc h1[class*="el-"]::after { background: var(--el); }
.gs-doc h2 { margin-top: 24px; font-size: 1.15rem; }
.gs-doc li { margin-bottom: 4px; }
.gs-facts { margin: 20px 0; }
.gs-facts dt { margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--line); color: var(--muted); font-size: 0.8rem; font-weight: 700; letter-spacing: 0.12em; }
.gs-facts dt:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
.gs-facts dd { margin: 2px 0 0; font-weight: 600; }
.gs-root-links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

@media (min-width: 640px) {
  main, .gs-footer { padding: 44px 24px; }
  h1 { font-size: 2.5rem; }
  .gs-card, #gs-panel { padding: 24px; }
  .gs-big { font-size: 3.8rem; }
  .gs-fire .gs-big { font-size: 4.6rem; }
}

/* 武器・聖遺物セットの候補（一例） */
.gs-gear { margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--line); }
.gs-gear .gs-label { margin-top: 12px; }
.gs-gear-list { list-style: none; margin: 4px 0 0; padding: 0; }
.gs-gear-list li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 8px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.gs-gear-name { font-weight: 700; }
.gs-gear-note { flex-basis: 100%; color: var(--muted); font-size: 0.88rem; }
.gs-tag { display: inline-flex; align-items: center; min-height: 22px; padding: 0 8px; border: 1px solid var(--field); border-radius: 999px; color: var(--muted); font-size: 0.75rem; font-weight: 700; }
.gs-tag.is-on { border-color: var(--accent); background: var(--accent); color: var(--accent-fg); }

/* 表示の切り替え（診断 / 装備 / 編成）。キャラのタブ（丸い札）と区別するため下線型の 3 等分 */
.gs-views { display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; margin: 14px 0 20px; border-bottom: 1px solid var(--line); }
.gs-view { min-height: 44px; border: 0; background: none; color: var(--muted); font-weight: 700; letter-spacing: 0.06em; }
.gs-view[aria-selected="true"] { color: var(--fg); box-shadow: inset 0 -3px 0 var(--accent); }
.gs-link-button { min-height: 44px; margin-top: 4px; padding: 0; border: 0; background: none; color: var(--accent); font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* 編成の候補 */
.gs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.gs-member { display: inline-flex; align-items: center; min-height: 30px; padding: 0 10px; border: 1px dashed var(--field); border-radius: 4px; font-size: 0.9rem; font-weight: 700; }
.gs-member.is-shown { border: 1px solid var(--fg); background: var(--fg); color: var(--card); }
.gs-legend { display: flex; flex-wrap: wrap; gap: 6px; font-size: 0.8rem; }
.gs-legend .gs-member { min-height: 24px; font-size: 0.8rem; font-weight: 400; }
.gs-team-list { list-style: none; margin: 12px 0 0; padding: 0; }
.gs-team { padding: 14px 0; border-top: 1px solid var(--line); }
.gs-team-name { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0 0 2px; font-size: 1.05rem; font-weight: 700; }
.gs-team-members { list-style: none; margin: 8px 0 0; padding: 0; }
.gs-team-members > li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 6px 0; }
.gs-team-role { color: var(--muted); font-size: 0.88rem; }
.gs-team-subs { flex-basis: 100%; margin-left: 12px; }
.gs-team-subs summary { min-height: 36px; display: flex; align-items: center; color: var(--accent); font-size: 0.85rem; font-weight: 700; cursor: pointer; }
.gs-team-subs ul { list-style: none; margin: 0; padding: 0; }
.gs-team-subs li { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 4px 0; }
.gs-team-damage { margin: 8px 0 4px; }
.gs-team-damage p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 6px; margin: 0 0 4px; }
.gs-team-damage strong { font-size: 1.3rem; font-variant-numeric: tabular-nums; }
.gs-team-damage .gs-bar { display: block; height: 8px; border-radius: 4px; background: var(--line); overflow: hidden; }
.gs-team-damage .gs-bar > span { display: block; height: 100%; background: var(--fg); }
.gs-team-basis summary { min-height: 36px; display: flex; align-items: center; color: var(--muted); font-size: 0.82rem; cursor: pointer; }
.gs-team-basis ul { margin: 0; padding-left: 1.2em; color: var(--muted); font-size: 0.82rem; }
.gs-team-delta { color: var(--muted); font-size: 0.85rem; font-weight: 700; font-variant-numeric: tabular-nums; }

/* 部位の成績表と、1 つずつの詳しい中身 */
.gs-piece-table, .gs-sub-table { width: 100%; border-collapse: collapse; font-variant-numeric: tabular-nums; font-size: 0.85rem; }
.gs-piece-table { margin: 4px 0 12px; }
.gs-piece-table th, .gs-piece-table td { padding: 4px 2px; border-bottom: 1px solid var(--line); text-align: right; }
.gs-piece-table th[scope="row"] { text-align: left; color: var(--muted); font-weight: 700; }
.gs-piece-table thead th { color: var(--fg); }
.gs-sub-table { margin: 6px 0; }
.gs-sub-table th, .gs-sub-table td { padding: 4px 2px; border-bottom: 1px solid var(--line); text-align: left; }
.gs-sub-table td:last-child { text-align: right; font-weight: 700; }
.gs-sub-table tr.is-useless { color: var(--muted); }
.gs-sub-table tr.is-useless td:last-child { font-weight: 400; }
.gs-tiers { color: var(--accent); white-space: nowrap; }
.gs-piece-gain { margin: 6px 0 0; font-weight: 700; }
.gs-piece-gain .gs-note { display: block; font-weight: 400; }
.gs-best { margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--accent); border-radius: 8px; }
.gs-best p { margin: 0; }
.gs-best-gain { color: var(--accent); font-weight: 800; white-space: nowrap; }

/* 編成の比較: 内訳の表と、前提を選ぶボタン */
.gs-team-damage p { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 8px; }
.gs-team-damage p .gs-label { flex-basis: 100%; }
.gs-factor-table { width: 100%; border-collapse: collapse; margin: 6px 0; font-size: 0.85rem; font-variant-numeric: tabular-nums; }
.gs-factor-table th, .gs-factor-table td { padding: 5px 2px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.gs-factor-table th .gs-note { display: block; font-weight: 400; }
.gs-factor-table td { text-align: right; font-weight: 700; white-space: nowrap; }
.gs-factor-total th, .gs-factor-total td { border-bottom: 0; color: var(--accent); }
.gs-assume { margin: 10px 0; }
.gs-segmented { display: flex; flex-wrap: wrap; gap: 4px; margin-top: 4px; }
.gs-segmented button { min-height: 36px; padding: 0 12px; border: 1px solid var(--field); border-radius: 999px; background: var(--card); color: var(--fg); font-size: 0.85rem; font-weight: 700; font-variant-numeric: tabular-nums; }
.gs-segmented button[aria-checked="true"] { border-color: var(--accent); background: var(--accent); color: var(--accent-fg); }

/* 判定（4 段階） */
.gs-verdict { margin: 0 0 16px; padding: 12px 14px; border: 1px solid var(--line); border-left: 4px solid var(--accent); border-radius: 8px; }
.gs-verdict p { margin: 0; }
.gs-verdict-word { font-size: 1.6rem; font-weight: 800; line-height: 1.3; }
.verdict-start .gs-verdict-word, .verdict-growing .gs-verdict-word { color: var(--fg); }
.verdict-done .gs-verdict-word { color: var(--accent); }
.gs-verdict-first { margin-top: 8px !important; padding-top: 8px; border-top: 1px solid var(--line); }
