/* SEO の画面だけのレイアウト（表の列・2段表示・取得の様子の1行など）
   色・影・角丸の新しい値は足さない。区切りは 1px の罫線だけ。塗った札・帯・箱は作らない。
   状態は線アイコン＋文字（.st）。長い文は折り返す */

/* ───── 共通 ───── */
.seo-head-right { display: flex; flex-direction: column; align-items: flex-end; gap: 4px; min-width: 0; max-width: 100%; }
.seo-admin-links { display: flex; flex-wrap: wrap; gap: 0 18px; justify-content: flex-end; }
.seo-title { overflow-wrap: anywhere; }
.seo-line { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 16px; margin: 0 0 12px; }
.seo-line:last-child { margin-bottom: 0; }
.seo-count { margin: 0 0 10px; }
.seo-n { text-align: right; white-space: nowrap; }
.tbl-head .seo-n { white-space: normal; }
.seo-form-foot { justify-content: flex-end; margin-top: 12px; }
.seo-stack { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.seo-inline { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 4px 14px; min-width: 0; }
.seo-inline .input-num { width: 5.5em; }
/* 長い状態の文は折り返す（.st は既定で折り返さない） */
.seo-line .st, .seo-stack .st, .seo-jobstate .st, .seo-flags .st, .seo-flag-list .st, .seo-lk-state .st,
.seo-kw-state .st, .seo-kw-ovl .st, .seo-kw-serp .st, .seo-pg-http .st, .seo-run-state .st, .seo-up-row .st, .seo-head-right > .st { white-space: normal; }

/* 絞り込み（入力欄は下線だけ。囲まない） */
.seo-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 6px 22px; margin: 0 0 14px; }
.seo-filters .search { flex: 1 1 260px; max-width: 360px; margin: 0; }
.seo-filters select.input { width: auto; min-width: 150px; max-width: 100%; margin: 0; }
.seo-ck { padding: 8px 0 6px; }
/* SEO の画面だけに効かせる（seo.css は全画面で読まれる。リスト作成のカードの seg-tabs を動かさない） */
body[data-tool="seo"] .card > .chips { margin: 0 0 12px; }
body[data-tool="seo"] .card > .seg-tabs { margin: -6px 0 16px; }

/* 取得の「更新 ›」と様子の1行 */
.seo-jobctl { display: flex; flex-direction: column; align-items: flex-end; min-width: 0; max-width: 100%; }
.seo-jobline { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 0 16px; min-width: 0; }
.seo-jobstate { min-width: 0; font-size: 13px; }
.seo-jobstop:empty { display: none; }
.seo-jobmsg { margin: 2px 0 0; max-width: 460px; text-align: right; color: var(--c-text-sub); overflow-wrap: anywhere; }
.card .seo-jobctl { align-items: flex-start; margin-top: 14px; padding-top: 12px; border-top: 1px solid var(--c-line-soft); }
.card .seo-jobline { justify-content: flex-start; }
.card .seo-jobmsg { text-align: left; }

/* ───── 概要 ───── */
.seo-counts { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.seo-counts .num-cell:first-child { padding-left: 0; }
.seo-counts .big { font-size: 34px; }
.seo-counts .btn-sm { align-self: flex-start; margin-top: 4px; }
.seo-runs { display: flex; flex-direction: column; }
.seo-run { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr) minmax(0, 0.9fr) minmax(0, 1.6fr); gap: 6px 16px; align-items: start; padding: 12px 0; border-top: 1px solid var(--c-line-soft); }
.seo-run:first-child { border-top: 0; padding-top: 0; }
.seo-run-name { font-weight: 700; font-size: 14px; overflow-wrap: anywhere; }
.seo-run-sum { color: var(--c-text-sub); overflow-wrap: anywhere; }
.seo-runs + .seo-line { margin-top: 14px; }

/* ───── キーワード ───── */
.seo-kw-head, .seo-kw-row {
  display: grid; gap: 14px; align-items: start;
  grid-template-columns: 44px minmax(0, 2fr) minmax(0, 1.1fr) 56px 72px 72px minmax(0, 1.3fr) minmax(0, 1.4fr);
}
.seo-kw-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-kw-row { padding: 12px 8px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.seo-kw-row:hover { background: var(--c-hover); color: var(--c-text); }
.seo-kw-row:hover .seo-kw-word { color: var(--c-brand); }
.seo-kw-row.is-archived .seo-kw-word { color: var(--c-text-3); }
.seo-kw-no { padding-top: 2px; }
.seo-kw-name { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 10px; min-width: 0; }
.seo-kw-word { font-weight: 700; overflow-wrap: anywhere; }
.seo-kw-meta { display: none; }
.seo-kw-group, .seo-kw-cv { min-width: 0; overflow-wrap: anywhere; color: var(--c-text-sub); padding-top: 2px; }
.seo-kw-row .seo-n { padding-top: 1px; }
.seo-kw-path { min-width: 0; overflow-wrap: anywhere; word-break: break-all; padding-top: 2px; }
.seo-kw-state .st { font-size: 12.5px; }

/* ───── ページ ───── */
.seo-sources:empty { display: none; }
.seo-sources { margin: -12px 0 18px; }
.seo-src-line .st { font-size: 12.5px; font-weight: 500; color: var(--c-text-sub); white-space: normal; }
.seo-pg-head, .seo-pg-row {
  display: grid; gap: 14px; align-items: start;
  grid-template-columns: minmax(0, 2.6fr) 96px 104px 104px minmax(0, 1.3fr) 72px;
}
.seo-pg-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-pg-row { padding: 12px 8px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.seo-pg-row:hover { background: var(--c-hover); color: var(--c-text); }
.seo-pg-row:hover .seo-pg-title { color: var(--c-brand); }
.seo-pg-name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.seo-pg-title { font-weight: 700; overflow-wrap: anywhere; }
.seo-pg-path { overflow-wrap: anywhere; word-break: break-all; }
.seo-pg-meta { display: none; }
.seo-pg-type { color: var(--c-text-sub); padding-top: 2px; }
.seo-pg-date { white-space: nowrap; padding-top: 2px; }
.seo-pg-http .st { font-size: 12.5px; }
.seo-sub-list { display: flex; flex-direction: column; }
.seo-sub-row { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 2px 16px; padding: 10px 0; border-top: 1px solid var(--c-line-soft); color: var(--c-text); }
.seo-sub-row:first-child { border-top: 0; padding-top: 0; }
.seo-sub-row:hover .seo-sub-main { color: var(--c-brand); }
.seo-sub-main { font-weight: 700; overflow-wrap: anywhere; min-width: 0; }

/* ───── 被リンクの提案 ───── */
.seo-lk-head, .seo-lk-row {
  display: grid; gap: 14px; align-items: start;
  grid-template-columns: 96px minmax(0, 1.6fr) minmax(0, 0.9fr) minmax(0, 0.9fr) minmax(0, 1.5fr) minmax(0, 1.2fr) minmax(0, 1fr);
}
.seo-lk-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-lk-row { padding: 12px 8px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.seo-lk-row:hover { background: var(--c-hover); color: var(--c-text); }
.seo-lk-row:hover .seo-lk-company { color: var(--c-brand); }
.seo-lk-date { white-space: nowrap; padding-top: 2px; }
.seo-lk-name { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.seo-lk-company { font-weight: 700; overflow-wrap: anywhere; }
.seo-lk-domain { overflow-wrap: anywhere; word-break: break-all; }
.seo-lk-win, .seo-lk-kind { min-width: 0; overflow-wrap: anywhere; color: var(--c-text-sub); padding-top: 2px; }
.seo-lk-eval { display: flex; flex-direction: column; gap: 2px; min-width: 0; overflow-wrap: anywhere; padding-top: 2px; }
.seo-lk-state .st { font-size: 12.5px; }
.seo-lk-last { min-width: 0; overflow-wrap: anywhere; padding-top: 2px; }
.seo-flags { display: flex; flex-wrap: wrap; gap: 0 12px; }
.seo-flags .st { font-size: 12px; font-weight: 500; }
.seo-flag-list li { display: flex; flex-direction: column; gap: 0; padding: 2px 0 6px; }

/* 詳細: カードの入れ物（slot）の間。1 列のときは判断を先頭に出す */
.seo-slot + .seo-slot { margin-top: 20px; }
@media (max-width: 960px) {
  .seo-link-grid .col-main, .seo-link-grid .col-side { display: contents; }
  .seo-link-grid .seo-slot { margin-top: 0; }
  .seo-link-grid .seo-slot-decision { order: -1; }
}
/* 詳細: 判断（文字＋線アイコン。押したものは太さと aria-pressed で示す） */
.seo-choices { display: flex; flex-wrap: wrap; gap: 4px 26px; margin: -4px 0 14px; }
.seo-choice {
  display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0; border: 0; background: none; cursor: pointer;
  font-size: 15px; font-weight: 500; letter-spacing: 0.06em; color: var(--c-text-sub);
}
.seo-choice:hover { color: var(--c-brand); }
.seo-choice.is-on { font-weight: 700; color: var(--c-text); }
.seo-placed { min-width: 0; }
.seo-placed-edit { display: flex; flex-direction: column; gap: 4px; }
.seo-placed-edit .btn-row { justify-content: flex-end; }
.seo-reply-form { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr); gap: 8px 28px; margin-bottom: 8px; }
.seo-radios { display: flex; flex-direction: column; }
.seo-radios .radio-line { font-weight: 500; align-items: flex-start; }
.seo-radios .radio-line input { margin-top: 5px; }
.seo-reply-out:empty { display: none; }
.seo-reply-out { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--c-line-soft); }
.seo-reply-body { font-size: 13.5px; line-height: 1.8; min-height: 320px; }
.seo-hist li { display: grid; grid-template-columns: 7.5em minmax(0, 1fr) auto; gap: 10px; padding: 7px 0; border-top: 1px solid var(--c-line-soft); }
.seo-hist li:first-child { border-top: 0; padding-top: 0; }
.seo-hist li > span { min-width: 0; overflow-wrap: anywhere; }

/* ───── 更新の記録 ───── */
.seo-up-head, .seo-up-row {
  display: grid; gap: 12px; align-items: start;
  grid-template-columns: 96px minmax(0, 0.8fr) minmax(0, 1.2fr) minmax(0, 1fr) 56px 96px minmax(0, 2fr);
}
.seo-up-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-up-row { padding: 12px 8px; border-bottom: 1px solid var(--c-line-soft); }
.seo-up-what { font-weight: 700; font-size: 14px; overflow-wrap: anywhere; }
.seo-up-row .st { font-size: 12.5px; }
.seo-up-sum { min-width: 0; overflow-wrap: anywhere; color: var(--c-text-sub); }
.seo-warns summary { cursor: pointer; color: var(--c-text-sub); font-size: 12.5px; }

/* ───── 設定 ───── */
.seo-file { margin: 6px 0 12px; }
.seo-sched .input { display: inline-block; width: auto; min-width: 0; margin: 0; }
.seo-sched select.input { min-width: 6em; }
.seo-import-preview:empty, .seo-import-result:empty { display: none; }
.seo-import-result { margin-top: 18px; padding-top: 16px; border-top: 1px solid var(--c-line-soft); }

/* ───── 幅ごとの組み替え ───── */
@media (max-width: 1180px) {
  .seo-kw-head, .seo-kw-row { grid-template-columns: 40px minmax(0, 2fr) minmax(0, 1.1fr) 72px minmax(0, 1.3fr) minmax(0, 1.2fr); }
  .seo-kw-head > :nth-child(4), .seo-kw-head > :nth-child(5), .seo-kw-cv, .seo-kw-row > .seo-n:nth-of-type(6) { display: none; }
  .seo-lk-head, .seo-lk-row { grid-template-columns: 92px minmax(0, 1.6fr) minmax(0, 1fr) minmax(0, 1.5fr) minmax(0, 1.2fr); }
  .seo-lk-head > :nth-child(3), .seo-lk-head > :nth-child(7), .seo-lk-win, .seo-lk-last { display: none; }
  .seo-pg-head, .seo-pg-row { grid-template-columns: minmax(0, 2.4fr) 92px 100px minmax(0, 1.3fr) 64px; }
  .seo-pg-head > :nth-child(3), .seo-pg-row > .seo-pg-date:nth-of-type(4) { display: none; }
  .seo-up-head, .seo-up-row { grid-template-columns: 92px minmax(0, 0.8fr) minmax(0, 1.2fr) minmax(0, 1fr) minmax(0, 2fr); }
  .seo-up-head > :nth-child(5), .seo-up-head > :nth-child(6), .seo-up-row > .seo-n { display: none; }
}
@media (max-width: 960px) {
  .seo-reply-form { grid-template-columns: minmax(0, 1fr); }
  .seo-run { grid-template-columns: minmax(0, 1fr) auto; }
  .seo-run-when, .seo-run-sum { grid-column: 1 / -1; }
}
@media (max-width: 760px) {
  .seo-head-right, .seo-jobctl { align-items: flex-start; }
  .seo-admin-links, .seo-jobline { justify-content: flex-start; }
  .seo-jobmsg { text-align: left; }
  .seo-filters .search, .seo-filters select.input { flex: 1 1 100%; max-width: none; }
  .seo-counts { grid-template-columns: minmax(0, 1fr); }
  .seo-counts .num-cell { padding-left: 0; }
  /* キーワード: 「キーワード」と「記事の状態・優先度」の2段 */
  .seo-kw-head { display: none; }
  .seo-kw-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 12px 0; }
  .seo-kw-no, .seo-kw-group, .seo-kw-cv, .seo-kw-row > .seo-n, .seo-kw-path { display: none; }
  .seo-kw-name { flex: 1 1 100%; }
  .seo-kw-state { order: 1; min-width: 0; max-width: 100%; }
  .seo-kw-meta { order: 2; display: block; min-width: 0; overflow-wrap: anywhere; }
  /* ページ: 「タイトル」と「HTTP の状態・種類と日付」の2段 */
  .seo-pg-head { display: none; }
  .seo-pg-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 12px; padding: 12px 0; }
  .seo-pg-type, .seo-pg-date, .seo-pg-row > .seo-n { display: none; }
  .seo-pg-name { flex: 1 1 100%; }
  .seo-pg-http { order: 1; min-width: 0; max-width: 100%; }
  .seo-pg-meta { order: 2; display: block; min-width: 0; overflow-wrap: anywhere; }
  /* 被リンク: 「会社名・状態」と「評価」の2段 */
  .seo-lk-head { display: none; }
  .seo-lk-row { grid-template-columns: minmax(0, 1fr) auto; gap: 4px 12px; padding: 12px 0; }
  .seo-lk-date, .seo-lk-win, .seo-lk-kind, .seo-lk-last { display: none; }
  .seo-lk-name { grid-column: 1; grid-row: 1; }
  .seo-lk-state { grid-column: 2; grid-row: 1; justify-self: end; max-width: 11em; }
  .seo-lk-eval { grid-column: 1 / -1; grid-row: 2; }
  /* 更新の記録: 「いつ・だれが」「何を・結果」と内容 */
  .seo-up-head { display: none; }
  .seo-up-row { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 2px 12px; padding: 12px 0; }
  .seo-up-sum { grid-column: 1 / -1; }
  .seo-hist li { grid-template-columns: minmax(0, 1fr) auto; }
  .seo-hist li > :nth-child(2) { grid-column: 1 / -1; grid-row: 2; }
  .seo-choices { gap: 0 20px; }
}

/* 見出しの直下のお知らせとカードの間 */
body[data-tool="seo"] .page-head + .note,
body[data-tool="seo"] .seo-head + .note { margin-bottom: 24px; }
/* 見るサイトの切り替え（見出しの上） */
.seo-site-tabs { margin-bottom: 22px; }

/* ───── Search Console（1b） ───── */
.seo-hint { margin: -4px 0 14px; }
.seo-gsc-nums { grid-template-columns: repeat(4, minmax(0, 1fr)); margin-bottom: 14px; }
.seo-gsc-nums .num-cell:first-child { padding-left: 0; }
.seo-gsc-nums .big { font-size: 32px; }
.seo-cover { margin-top: 4px; }
.seo-delta { font-size: 12px; font-weight: 700; color: var(--c-text-sub); gap: 3px; }
.seo-delta.is-up { color: var(--c-brand); }
.seo-rank { display: inline-flex; flex-direction: column; align-items: flex-end; gap: 1px; }
.seo-rank .seo-delta { font-size: 11px; }
/* 推移のグラフ（線はブランド青の1本。速報は点線。塗らない） */
.seo-charts { display: grid; grid-template-columns: minmax(0, 1fr); gap: 18px; }
.seo-chart { margin: 0; min-width: 0; }
.seo-chart-cap { display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 12px; margin: 0 0 6px; }
.seo-chart-name { font-size: 13px; font-weight: 700; }
.seo-chart-body { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 8px; align-items: stretch; }
.seo-chart-axis { display: flex; flex-direction: column; justify-content: space-between; text-align: right; font-size: 11px; }
.seo-chart-svg { display: block; width: 100%; height: 120px; overflow: visible; }
.seo-chart-line { fill: none; stroke: var(--c-brand); stroke-width: 1.8; stroke-linejoin: round; stroke-linecap: round; }
.seo-chart-line.is-fresh { stroke-dasharray: 4 3; }
.seo-chart-base { stroke: var(--c-line); stroke-width: 1; }
.seo-chart-foot { display: flex; justify-content: space-between; margin: 4px 0 0 64px; font-size: 11px; }
/* 次の一手 */
.seo-actions { list-style: none; margin: 0; padding: 0; }
.seo-action { display: grid; grid-template-columns: 28px minmax(0, 1fr) auto; gap: 4px 14px; align-items: start; padding: 14px 0; border-top: 1px solid var(--c-line-soft); }
.seo-action:first-child { border-top: 0; padding-top: 2px; }
.seo-action-no { font-family: var(--f-en); font-weight: 800; font-size: 20px; line-height: 1.2; color: var(--c-brand); }
.seo-action-body { min-width: 0; }
.seo-action-title { margin: 0 0 4px; font-weight: 700; font-size: 15px; overflow-wrap: anywhere; }
.seo-action-count { margin-left: 10px; font-size: 13px; color: var(--c-text-sub); white-space: nowrap; }
.seo-action-detail { margin: 0; color: var(--c-text-sub); overflow-wrap: anywhere; }
/* 数字の表（ページ・検索語） */
.seo-st { display: flex; flex-direction: column; }
.seo-st-head, .seo-st-row { display: grid; gap: 4px 14px; align-items: center; }
.seo-st-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-st-row { padding: 10px 8px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
a.seo-st-row:hover { background: var(--c-hover); color: var(--c-text); }
a.seo-st-row:hover .seo-st-title { color: var(--c-brand); }
.seo-st-name { display: flex; flex-direction: column; min-width: 0; }
.seo-st-title { font-weight: 700; font-size: 14px; overflow-wrap: anywhere; }
.seo-st-sub, .seo-st-q { overflow-wrap: anywhere; }
.seo-st-lbl { display: none; }
.seo-st-band .seo-st-head, .seo-st-band .seo-st-row { grid-template-columns: minmax(0, 2.2fr) 92px 64px 72px minmax(0, 1.3fr); }
.seo-st-band.has-ctr .seo-st-head, .seo-st-band.has-ctr .seo-st-row { grid-template-columns: minmax(0, 2.2fr) 92px 64px 72px 60px minmax(0, 1.2fr); }
.seo-st-index { margin-bottom: 4px; }
.seo-st-index .seo-st-head, .seo-st-index .seo-st-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.2fr); }
.seo-st-movers .seo-st-head, .seo-st-movers .seo-st-row { grid-template-columns: minmax(0, 2.4fr) 88px 88px 96px 60px; }
.seo-st-queries .seo-st-head, .seo-st-queries .seo-st-row { grid-template-columns: minmax(0, 2.6fr) 92px 64px 72px 72px; }
/* トップとメディアの別枠 */
.seo-st-sec-q .seo-st-head, .seo-st-sec-q .seo-st-row { grid-template-columns: minmax(0, 2.6fr) 92px 64px 72px; }
.seo-sec-sub { margin: 20px 0 4px; font-size: 14px; font-weight: 700; }
.seo-counts + .seo-st { margin-top: 14px; }
/* キーワードの重なり（一覧の語の下の1行と、詳細の表） */
.seo-kw-ovl { flex: 1 1 100%; min-width: 0; margin-top: 4px; font-weight: 400; overflow-wrap: anywhere; }
.seo-kw-ovl .st { font-size: 12.5px; }
/* 検索上位の判定（一覧の語の横） */
.seo-kw-serp { flex: 1 1 100%; min-width: 0; margin-top: 4px; font-weight: 400; overflow-wrap: anywhere; }
.seo-kw-serp .st { font-size: 12.5px; }
.seo-ovl-part { margin-top: 16px; }
.seo-ovl-sub { margin: 0 0 6px; font-weight: 700; color: var(--c-text-sub); }
.seo-st-ovl-pages .seo-st-head, .seo-st-ovl-pages .seo-st-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 2fr); }
.seo-st-ovl-kws .seo-st-head, .seo-st-ovl-kws .seo-st-row { grid-template-columns: minmax(0, 1.6fr) minmax(0, 1.8fr) minmax(0, 1fr); }
/* キーワードの一覧（数字の列あり） */
.seo-kw-list.has-gsc .seo-kw-head, .seo-kw-list.has-gsc .seo-kw-row {
  grid-template-columns: 40px minmax(0, 2fr) minmax(0, 1fr) 92px 56px 64px 56px minmax(0, 1.2fr) minmax(0, 1.2fr);
}
/* ページの一覧（インデックスと数字の列あり） */
.seo-pg-list.has-gsc .seo-pg-head, .seo-pg-list.has-gsc .seo-pg-row {
  grid-template-columns: minmax(0, 2.2fr) 96px minmax(0, 1fr) minmax(0, 1.3fr) 80px 56px 64px;
}
.seo-pg-index .st { white-space: normal; }

@media (max-width: 1180px) {
  .seo-kw-list.has-gsc .seo-kw-head, .seo-kw-list.has-gsc .seo-kw-row { grid-template-columns: 36px minmax(0, 2fr) 88px 56px 60px 52px minmax(0, 1.2fr); }
  .seo-kw-list.has-gsc .seo-kw-head > :nth-child(3), .seo-kw-list.has-gsc .seo-kw-group,
  .seo-kw-list.has-gsc .seo-kw-head > :nth-child(9), .seo-kw-list.has-gsc .seo-kw-path { display: none; }
  .seo-kw-list.has-gsc .seo-kw-head > :nth-child(4), .seo-kw-list.has-gsc .seo-kw-head > :nth-child(5) { display: block; }
  .seo-kw-list.has-gsc .seo-kw-row > .seo-n { display: block; }
  .seo-pg-list.has-gsc .seo-pg-head, .seo-pg-list.has-gsc .seo-pg-row { grid-template-columns: minmax(0, 2.2fr) minmax(0, 1fr) minmax(0, 1.3fr) 76px 52px 60px; }
  .seo-pg-list.has-gsc .seo-pg-head > :nth-child(2), .seo-pg-list.has-gsc .seo-pg-row > .seo-pg-date { display: none; }
  .seo-pg-list.has-gsc .seo-pg-head > :nth-child(3) { display: block; }
}
@media (max-width: 960px) {
  .seo-gsc-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .seo-gsc-nums .num-cell:nth-child(3) { padding-left: 0; }
  .seo-st-band .seo-st-head > :last-child, .seo-st-band .seo-st-row > :last-child { display: none; }
  .seo-st-band .seo-st-head, .seo-st-band .seo-st-row { grid-template-columns: minmax(0, 2fr) 88px 56px 64px; }
  .seo-st-band.has-ctr .seo-st-head, .seo-st-band.has-ctr .seo-st-row { grid-template-columns: minmax(0, 2fr) 88px 56px 64px 56px; }
}
@media (max-width: 760px) {
  .seo-gsc-nums .big { font-size: 26px; }
  .seo-gsc-nums .num-cell { padding: 12px 12px 14px; }
  .seo-gsc-nums .num-cell:nth-child(odd) { padding-left: 0; }
  .seo-chart-body { grid-template-columns: 44px minmax(0, 1fr); }
  .seo-chart-foot { margin-left: 52px; }
  .seo-action { grid-template-columns: 24px minmax(0, 1fr); }
  .seo-action > .btn { grid-column: 2; justify-self: start; }
  /* 数字の表: 名前の行と数字の行の2段 */
  .seo-st-head { display: none; }
  .seo-st .seo-st-row { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 14px; padding: 12px 0; }
  .seo-st-row > :first-child { flex: 1 1 100%; }
  .seo-st-row > .seo-n { text-align: left; }
  .seo-st-row .seo-rank { flex-direction: row; align-items: baseline; gap: 6px; }
  .seo-st-band .seo-st-row > :last-child { display: inline; }
  .seo-st-lbl { display: inline; font-size: 11px; font-weight: 700; color: var(--c-text-3); }
  .seo-kw-list.has-gsc .seo-kw-row > .seo-n { display: none; }
  .seo-pg-list.has-gsc .seo-pg-row > .seo-n { display: none; }
  .seo-pg-index { order: 1; min-width: 0; max-width: 100%; }
}

/* ───── 被リンク施策（#/seo/actions） ───── */
/* 概要の「登録と取得の数」に 4 つ目（被リンク施策）を足したとき */
.seo-counts.has-actions { grid-template-columns: repeat(4, minmax(0, 1fr)); }
/* 数の欄（進み具合） */
.seo-ac-nums { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.seo-ac-nums .num-cell:first-child { padding-left: 0; }
.seo-ac-nums .big { font-size: 30px; }
/* 絞り込み（2 段目: 無料・DR・絞り込みを外す） */
.seo-filters select.seo-ac-stsel { min-width: 15em; }
.seo-ac-checks { margin-top: -8px; }
.seo-ac-clear { padding: 8px 0 6px; font-size: 13px; font-weight: 700; letter-spacing: 0.06em; color: var(--c-text-sub); }
.seo-ac-clear:hover { color: var(--c-brand); }
/* 一覧（行全体はリンクにしない。名前だけが詳細へのリンク） */
.seo-ac-head, .seo-ac-row {
  display: grid; gap: 12px; align-items: baseline;
  grid-template-columns: 104px 48px minmax(0, 1fr) 88px 76px 76px 100px 40px 64px 60px;
}
.seo-ac-head { padding: 0 8px 8px; border-bottom: 1px solid var(--c-line); }
.seo-ac-row { padding: 10px 8px; border-bottom: 1px solid var(--c-line-soft); color: var(--c-text); }
.seo-ac-state { min-width: 0; }
.seo-ac-sel { width: 100%; min-width: 0; margin: 0; }
.seo-ac-id { white-space: nowrap; }
.seo-ac-name { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.seo-ac-title { font-weight: 700; color: var(--c-text); overflow-wrap: anywhere; }
.seo-ac-title:hover { color: var(--c-brand); }
/* やることは 2 行まで（全文は title と詳細） */
.seo-ac-what { color: var(--c-text-sub); overflow: hidden; overflow-wrap: anywhere; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
/* 狭い幅の1行（ID／種類／費用／DR／時間／手間／時期）。値の途中では折らない */
.seo-ac-meta { display: none; }
.seo-ac-meta > span { white-space: nowrap; }
.seo-ac-kind, .seo-ac-cost, .seo-ac-dr, .seo-ac-time, .seo-ac-effort, .seo-ac-month { min-width: 0; overflow-wrap: anywhere; color: var(--c-text-sub); }
.seo-ac-url { min-width: 0; white-space: nowrap; }
/* 完了・見送りの行は文字を薄くする（取り消し線は使わない） */
.seo-ac-row.is-done .seo-ac-title, .seo-ac-row.is-skip .seo-ac-title,
.seo-ac-row.is-done .seo-ac-what, .seo-ac-row.is-skip .seo-ac-what,
.seo-ac-row.is-done > span:not(.seo-ac-state):not(.seo-ac-url), .seo-ac-row.is-skip > span:not(.seo-ac-state):not(.seo-ac-url) { color: var(--c-text-3); }
.seo-ac-row.is-done .seo-ac-title { font-weight: 500; }
/* 詳細 */
.seo-ac-do { margin: 0; font-size: 15px; line-height: 1.9; overflow-wrap: anywhere; }
.seo-ac-kv { grid-template-columns: 11em minmax(0, 1fr); }
.seo-ac-kv:last-child { margin-bottom: 0; }
.seo-ac-ev li { padding: 2px 0 4px; }
.seo-ac-choices { margin: -4px 0 4px; }
.seo-ac-hint { margin: 0 0 16px; }
.seo-ac-placed { margin: -12px 0 18px; }
/* 文の中のほかの施策の ID（その施策の詳細へのリンク。外部リンクと同じ細い下線） */
.seo-ac-ref { color: inherit; text-decoration: underline; text-decoration-color: var(--c-line); text-underline-offset: 3px; }
.seo-ac-ref:hover { color: var(--c-brand); text-decoration-color: currentColor; }
/* 概要の「登録と取得の数」: 1280px 未満は 2×2（4 列だと既存の欄の注記が 2 行に折れ、ボタンの高さがそろわないため） */
@media (max-width: 1279px) {
  .seo-counts.has-actions { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .seo-counts.has-actions .num-cell:nth-child(odd) { padding-left: 0; }
}
@media (max-width: 1180px) {
  /* 一覧: 状態・施策（名前・やること・種類ほかの1行）・開く の 3 列（やることを広く読めるように） */
  .seo-ac-head { display: none; }
  .seo-ac-row { grid-template-columns: 104px minmax(0, 1fr) auto; gap: 4px 14px; padding: 12px 0; }
  .seo-ac-id, .seo-ac-kind, .seo-ac-cost, .seo-ac-dr, .seo-ac-time, .seo-ac-effort, .seo-ac-month { display: none; }
  .seo-ac-meta { display: block; }
}
@media (max-width: 960px) {
  .seo-ac-nums { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .seo-ac-nums .num-cell:nth-child(odd) { padding-left: 0; }
  /* 詳細: 1 列のときは やること → 状態 → 施策の情報 → 手法一覧 → 処理の記録 */
  .seo-ac-grid .col-main, .seo-ac-grid .col-side { display: contents; }
  .seo-ac-grid .seo-slot { margin-top: 0; }
  .seo-ac-grid .seo-ac-slot-todo { order: -2; }
  .seo-ac-grid .seo-ac-slot-edit { order: -1; }
}
@media (max-width: 760px) {
  .seo-counts.has-actions { grid-template-columns: minmax(0, 1fr); }
  .seo-counts.has-actions .num-cell { padding-left: 0; }
  /* 進み具合は 2 列のまま（.seo-gsc-nums と同じ。1 列にすると一覧が画面の下に押し出される）。数字を小さくし、数の読み方の注記は省く */
  .seo-ac-nums .big { font-size: 26px; }
  .seo-ac-nums .num-cell { padding: 12px 12px 14px; }
  .seo-ac-nums .num-cell:nth-child(odd) { padding-left: 0; }
  .seo-ac-nums .seo-ac-why { display: none; }
  /* 一覧: 縦に積む（状態・名前・やること・種類ほかの1行・開く。申込先が無ければ「-」の行は出さない） */
  .seo-ac-row { display: flex; flex-direction: column; align-items: stretch; gap: 4px; }
  .seo-ac-sel { width: auto; min-width: 8.5em; max-width: 100%; }
  .seo-ac-url { white-space: normal; }
  .seo-ac-url.is-none { display: none; }
  .seo-ac-kv { grid-template-columns: minmax(0, 1fr); }
}
