/* MatchFlow 試合カード Bridge 0.2.0-rc9
 * 現在公開中のシャイニングリーグ試合結果「1試合行」を再現するUI。
 * RC6はRC5で発生したテーマ側img指定との競合を解消し、公開ページ実画面の寸法を固定。
 * 日付・会場見出しは既存ページ側を残す運用を前提とし、ショートコード側は既定で非表示。
 * 既存テーマ/CSSへの影響を避けるため .mfcard-live-root 配下だけで完結する。
 */
.mfcard-live-root{
  width:100%;
  margin:0;
  color:#000;
  font-family:inherit;
  box-sizing:border-box;
}
.mfcard-live-root *,
.mfcard-live-root *::before,
.mfcard-live-root *::after{box-sizing:border-box}

.mfcard-live-card{
  margin:0;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  overflow:visible;
}

/* show_header=1 の場合だけ利用。現行ページの見出しに合わせる。 */
.mfcard-live-date{
  margin:34px 0 20px;
  padding:5px 0 5px 16px;
  border-left:6px solid #b6a13a;
  font-size:27px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:.03em;
}
.mfcard-live-venue{
  margin:0 0 20px;
  padding:0;
  font-size:20px;
  line-height:1.45;
  font-weight:700;
  letter-spacing:.03em;
}

/* 現行公開ページの1試合行。公開実画面に合わせてRC4から約25%コンパクト化。 */
.mfcard-live-match{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px minmax(0,1fr);
  column-gap:6px;
  align-items:center;
  width:100%;
  max-width:620px;
  margin:0 auto;
  padding:2px 0 5px;
}
.mfcard-live-team{
  display:grid;
  grid-template-rows:78px auto;
  align-items:center;
  justify-items:center;
  min-width:0;
  text-align:center;
}
.mfcard-live-root img.mfcard-live-emblem{
  display:block !important;
  width:78px !important;
  height:78px !important;
  max-width:78px !important;
  max-height:78px !important;
  min-width:0 !important;
  object-fit:contain !important;
  object-position:center center !important;
  margin:0 auto !important;
  padding:0 !important;
  border:0 !important;
  transform:none !important;
}
.mfcard-live-emblem-empty{border:0}
.mfcard-live-team-name{
  margin-top:5px;
  max-width:100%;
  font-size:14px;
  line-height:1.25;
  font-weight:700;
  letter-spacing:.025em;
  white-space:normal;
  word-break:keep-all;
  overflow-wrap:anywhere;
}

/* 中央は「合計A｜時間・前半後半｜合計B」。合計点の間にハイフンは置かない。 */
.mfcard-live-center{
  min-width:0;
  align-self:center;
  text-align:center;
}
.mfcard-live-score-layout{
  display:grid;
  grid-template-columns:40px 110px 40px;
  align-items:end;
  justify-content:center;
  width:190px;
  margin:0 auto;
}
.mfcard-live-total{
  padding-bottom:1px;
  font-size:28px;
  line-height:1;
  font-weight:700;
  font-variant-numeric:tabular-nums;
  text-align:center;
}
.mfcard-live-details{
  min-width:0;
  text-align:center;
}
.mfcard-live-time{
  min-height:16px;
  margin:0 0 3px;
  font-size:12px;
  line-height:1.15;
  font-weight:400;
  font-variant-numeric:tabular-nums;
}
.mfcard-live-halves{
  width:110px;
  margin:0 auto;
  display:grid;
  gap:2px;
  font-size:12px;
  line-height:1.25;
  font-variant-numeric:tabular-nums;
}
.mfcard-live-halves>div{
  display:grid;
  grid-template-columns:1fr 44px 1fr;
  gap:2px;
  align-items:center;
}
.mfcard-live-halves span{
  font-weight:400;
}
.mfcard-live-halves b{
  font-weight:700;
  letter-spacing:.02em;
  white-space:nowrap;
}

/* RC110 TEMPORARY POSTPONED NOTICE
 * Same visual treatment previously used for the 2026-09-27 emergency notice,
 * now driven by article_note + a 3-JST-calendar-day lifecycle.
 */
.mfcard-live-operational-notice{
  width:100%;
  margin:7px auto 8px;
  color:#d00000;
  font-size:14px;
  line-height:1.25;
  font-weight:700;
  text-align:center;
  white-space:nowrap;
}
@media(max-width:640px){
  .mfcard-live-operational-notice{
    margin:7px auto 7px;
    font-size:13px;
  }
}

/* MOM：現行の小さな角丸バッジを中央下へ。 */
.mfcard-live-mom-wrap{
  display:flex;
  justify-content:center;
  width:100%;
  max-width:620px;
  margin:-1px auto 14px;
}
.mfcard-live-mom{
  display:inline-flex;
  align-items:center;
  gap:6px;
  min-height:31px;
  padding:3px 9px;
  border:1px solid #d6d6d6;
  border-radius:6px;
  background:#fff;
  color:#111;
  font-size:14px;
  line-height:1.2;
  text-decoration:none;
  box-shadow:none;
}
a.mfcard-live-mom:hover{opacity:.88;text-decoration:none}
.mfcard-live-mom-label{color:#0073aa;font-weight:700;letter-spacing:.02em}
.mfcard-live-mom-emblem{display:block;width:17px;height:17px;object-fit:contain}
.mfcard-live-mom-name{font-weight:400}

.mfcard-live-loading,.mfcard-live-error{
  padding:24px 0;
  text-align:center;
  background:transparent;
  border:0;
}
.mfcard-live-spinner{
  display:inline-block;
  width:18px;height:18px;
  border:2px solid #cbd5e1;
  border-top-color:#1f57b8;
  border-radius:50%;
  margin-right:8px;
  vertical-align:-3px;
  animation:mfcard-spin .8s linear infinite;
}
.mfcard-live-debug{
  max-width:620px;
  margin:6px auto 16px;
  padding-top:9px;
  border-top:1px dashed #d7dde4;
  font-size:12px;
  color:#64748b;
  word-break:break-all;
}
@keyframes mfcard-spin{to{transform:rotate(360deg)}}

/* 現行ページ同様、スマホでも3列を維持。 */
@media(max-width:640px){
  .mfcard-live-date{margin:28px 0 17px;padding-left:12px;border-left-width:5px;font-size:23px}
  .mfcard-live-venue{margin-bottom:17px;font-size:17px}
  .mfcard-live-match{
    grid-template-columns:minmax(0,1fr) 132px minmax(0,1fr);
    column-gap:2px;
    padding:2px 0 6px;
  }
  .mfcard-live-team{grid-template-rows:62px auto}
  .mfcard-live-root img.mfcard-live-emblem{width:62px !important;height:62px !important;max-width:62px !important;max-height:62px !important}
  .mfcard-live-team-name{margin-top:4px;font-size:12.5px;line-height:1.22}
  .mfcard-live-score-layout{grid-template-columns:30px 72px 30px;width:132px}
  .mfcard-live-total{font-size:24px}
  .mfcard-live-time{min-height:14px;margin-bottom:3px;font-size:10.5px}
  .mfcard-live-halves{width:72px;gap:1px;font-size:10px}
  .mfcard-live-halves>div{grid-template-columns:1fr 32px 1fr;gap:1px}
  .mfcard-live-mom-wrap{margin-bottom:12px}
  .mfcard-live-mom{min-height:29px;padding:3px 8px;gap:5px;font-size:12.5px}
  .mfcard-live-mom-emblem{width:16px;height:16px}
}

@media(max-width:390px){
  .mfcard-live-match{grid-template-columns:minmax(0,1fr) 120px minmax(0,1fr)}
  .mfcard-live-team{grid-template-rows:58px auto}
  .mfcard-live-root img.mfcard-live-emblem{width:58px !important;height:58px !important;max-width:58px !important;max-height:58px !important}
  .mfcard-live-team-name{font-size:12px}
  .mfcard-live-score-layout{grid-template-columns:28px 64px 28px;width:120px}
  .mfcard-live-total{font-size:22px}
  .mfcard-live-time{font-size:10px}
  .mfcard-live-halves{width:64px;font-size:9.5px}
  .mfcard-live-halves>div{grid-template-columns:1fr 29px 1fr}
}

/* RC9: 同一開催日・同一会場を1見出しにまとめる開催ブロック。 */
.mfcard-live-group{margin:0;padding:0;background:transparent;border:0}
.mfcard-live-group-matches{margin:0;padding:0}
.mfcard-live-match-item{margin:0;padding:0}
.mfcard-live-match-item + .mfcard-live-match-item{margin-top:12px}
.mfcard-live-match-item .mfcard-live-mom-wrap{margin-bottom:2px}
@media(max-width:640px){.mfcard-live-match-item + .mfcard-live-match-item{margin-top:10px}}

/* RC10: リーグ全体を試合日・会場単位に自動グループ化。 */
.mfcard-live-schedule{margin:0;padding:0}
.mfcard-live-schedule-group{margin:0;padding:0}
.mfcard-live-schedule-group + .mfcard-live-schedule-group{margin-top:44px}
@media(max-width:640px){.mfcard-live-schedule-group + .mfcard-live-schedule-group{margin-top:36px}}

/* RC26 REFERENCE LOCK
 * 基準画像: ユーザー指定 2026/08/30 レイアウト。
 * RC17〜RC25 の継ぎ足し上書きを全廃し、1つの定義だけで固定する。
 * PC: 参照画像の文字サイズ・太さ・エンブレム寸法・横比率を再現。
 * スマホ: RC16以前の検証済み基本寸法を維持する。
 */
@media(min-width:800px){
  .mfcard-live-root h3.mfcard-live-date{
    margin:24px 0 28px !important;
    padding:6px 0 6px 20px !important;
    border-left-width:7px !important;
    font-size:24px !important;
    line-height:1.18 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
  }
  .mfcard-live-root .mfcard-live-venue{
    margin:0 0 15px !important;
    padding:0 !important;
    font-size:20px !important;
    line-height:1.30 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
  }

  /* 横位置はユーザー指定画像と同じ比率を維持。 */
  .mfcard-live-root .mfcard-live-match{
    width:100% !important;
    max-width:none !important;
    display:grid !important;
    grid-template-columns:28% 44% 28% !important;
    column-gap:0 !important;
    align-items:center !important;
    margin:0 !important;
    padding:0 0 5px !important;
  }
  .mfcard-live-root .mfcard-live-team{
    display:grid !important;
    grid-template-rows:78px auto !important;
    align-items:center !important;
    justify-items:center !important;
    min-width:0 !important;
    text-align:center !important;
  }
  .mfcard-live-root img.mfcard-live-emblem{
    width:78px !important;
    height:78px !important;
    max-width:78px !important;
    max-height:78px !important;
    object-fit:contain !important;
    object-position:center center !important;
    margin:0 auto !important;
  }
  .mfcard-live-root .mfcard-live-team-name{
    margin-top:5px !important;
    width:100% !important;
    max-width:none !important;
    font-size:14px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    word-break:normal !important;
    overflow-wrap:normal !important;
  }

  .mfcard-live-root .mfcard-live-center{
    position:static !important;
    top:auto !important;
    align-self:center !important;
    min-width:0 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-score-layout{
    display:grid !important;
    grid-template-columns:10% 80% 10% !important;
    column-gap:0 !important;
    align-items:end !important;
    justify-content:stretch !important;
    width:100% !important;
    margin:0 auto !important;
  }
  .mfcard-live-root .mfcard-live-total{
    padding:0 0 1px !important;
    font-size:28px !important;
    line-height:1 !important;
    font-weight:700 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-details{
    width:100% !important;
    min-width:0 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-time{
    min-height:16px !important;
    margin:0 0 3px !important;
    font-size:12px !important;
    line-height:1.15 !important;
    font-weight:400 !important;
    letter-spacing:0 !important;
  }
  .mfcard-live-root .mfcard-live-halves{
    width:100% !important;
    margin:0 auto !important;
    display:grid !important;
    gap:2px !important;
    font-size:12px !important;
    line-height:1.25 !important;
  }
  .mfcard-live-root .mfcard-live-halves>div{
    display:grid !important;
    grid-template-columns:40% 20% 40% !important;
    gap:0 !important;
    align-items:center !important;
  }
  .mfcard-live-root .mfcard-live-halves span{
    font-size:12px !important;
    font-weight:400 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-halves b{
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.10 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    text-align:center !important;
  }

  .mfcard-live-root .mfcard-live-mom-wrap{
    width:100% !important;
    max-width:none !important;
    margin:-1px auto 14px !important;
    position:static !important;
    top:auto !important;
    display:flex !important;
    justify-content:center !important;
  }
  .mfcard-live-root .mfcard-live-mom{
    min-height:31px !important;
    padding:3px 9px !important;
    gap:6px !important;
    border-radius:6px !important;
    font-size:14px !important;
    line-height:1.20 !important;
  }
  .mfcard-live-root .mfcard-live-mom-label{
    font-size:14px !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
  }
  .mfcard-live-root .mfcard-live-mom-emblem{
    width:17px !important;
    height:17px !important;
  }
  .mfcard-live-root .mfcard-live-mom-name{
    font-size:14px !important;
    font-weight:400 !important;
  }

  .mfcard-live-root .mfcard-live-match-item + .mfcard-live-match-item{
    margin-top:12px !important;
  }
  .mfcard-live-root .mfcard-live-schedule-group + .mfcard-live-schedule-group{
    margin-top:28px !important;
  }
}

/* 641-799px は基本CSSの安定寸法へ固定。 */
@media(min-width:641px) and (max-width:799px){
  .mfcard-live-root h3.mfcard-live-date{font-size:24px !important;letter-spacing:0 !important;}
  .mfcard-live-root .mfcard-live-venue{font-size:20px !important;letter-spacing:0 !important;}
  .mfcard-live-root .mfcard-live-total{font-size:28px !important;}
  .mfcard-live-root .mfcard-live-time{font-size:12px !important;}
  .mfcard-live-root .mfcard-live-team-name{font-size:14px !important;}
  .mfcard-live-root .mfcard-live-halves span{font-weight:400 !important;}
  .mfcard-live-root .mfcard-live-halves b{font-weight:700 !important;}
}

/* RC30 HORIZONTAL GUIDE HEIGHT TUNE
 * Visual source of truth: user's red horizontal guide screenshot.
 * Desktop only. The first row aligns emblems and score details;
 * the second row aligns team names and the MOM badge on the same baseline band.
 * MOM is structurally inside the center column so it cannot drift left/right.
 */
@media(min-width:800px){
  .mfcard-live-root .mfcard-live-match{
    width:100% !important;
    max-width:none !important;
    display:grid !important;
    grid-template-columns:28% 44% 28% !important;
    column-gap:0 !important;
    align-items:start !important;
    margin:0 !important;
    padding:0 !important;
  }

  /* Left/right columns share the same two horizontal bands. */
  .mfcard-live-root .mfcard-live-team{
    display:grid !important;
    grid-template-rows:91px 45px !important;
    align-items:start !important;
    justify-items:center !important;
    min-width:0 !important;
    height:136px !important;
    text-align:center !important;
  }
  .mfcard-live-root img.mfcard-live-emblem{
    align-self:start !important;
    width:78px !important;
    height:78px !important;
    max-width:78px !important;
    max-height:78px !important;
    margin:0 auto !important;
  }
  .mfcard-live-root .mfcard-live-team-name{
    align-self:start !important;
    margin:7px 0 0 !important;
    width:100% !important;
    max-width:none !important;
    font-size:14px !important;
    line-height:31px !important;
    font-weight:700 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    text-align:center !important;
  }

  /* Center column uses the exact same two horizontal bands. */
  .mfcard-live-root .mfcard-live-center{
    display:grid !important;
    grid-template-rows:91px 45px !important;
    align-items:start !important;
    justify-items:stretch !important;
    min-width:0 !important;
    height:136px !important;
    position:static !important;
    inset:auto !important;
    transform:none !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-score-layout{
    align-self:start !important;
    display:grid !important;
    grid-template-columns:10% 80% 10% !important;
    column-gap:0 !important;
    align-items:end !important;
    justify-content:stretch !important;
    width:100% !important;
    height:82px !important;
    margin:0 auto !important;
    padding-top:4px !important;
  }
  .mfcard-live-root .mfcard-live-total{
    align-self:end !important;
    padding:0 0 1px !important;
    font-size:28px !important;
    line-height:1 !important;
    font-weight:700 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-details{
    align-self:end !important;
    width:100% !important;
    min-width:0 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-time{
    min-height:16px !important;
    margin:0 0 3px !important;
    font-size:12px !important;
    line-height:1.15 !important;
    font-weight:400 !important;
    letter-spacing:0 !important;
  }
  .mfcard-live-root .mfcard-live-halves{
    width:100% !important;
    margin:0 auto !important;
    display:grid !important;
    gap:2px !important;
    font-size:12px !important;
    line-height:1.25 !important;
  }
  .mfcard-live-root .mfcard-live-halves>div{
    display:grid !important;
    grid-template-columns:40% 20% 40% !important;
    gap:0 !important;
    align-items:center !important;
  }
  .mfcard-live-root .mfcard-live-halves span{
    font-size:12px !important;
    font-weight:400 !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-halves b{
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.10 !important;
    letter-spacing:0 !important;
    white-space:nowrap !important;
    text-align:center !important;
  }

  /* MOM sits in the same lower band as both team names and is centered
     on the same vertical axis as 前半 / 後半. */
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    align-self:start !important;
    justify-self:stretch !important;
    display:flex !important;
    justify-content:center !important;
    align-items:center !important;
    width:100% !important;
    max-width:none !important;
    height:45px !important;
    margin:0 !important;
    padding:0 !important;
    position:static !important;
    inset:auto !important;
    transform:none !important;
  }
  .mfcard-live-root .mfcard-live-mom{
    display:inline-flex !important;
    align-items:center !important;
    justify-content:center !important;
    min-height:31px !important;
    padding:3px 9px !important;
    gap:6px !important;
    border-radius:6px !important;
    font-size:14px !important;
    line-height:1.20 !important;
  }
  .mfcard-live-root .mfcard-live-mom-label{
    font-size:14px !important;
    font-weight:700 !important;
    letter-spacing:.02em !important;
  }
  .mfcard-live-root .mfcard-live-mom-emblem{
    width:17px !important;
    height:17px !important;
  }
  .mfcard-live-root .mfcard-live-mom-name{
    font-size:14px !important;
    font-weight:400 !important;
  }

  /* Header placement remains the RC26 reference lock, without transforms. */
  .mfcard-live-root h3.mfcard-live-date{
    transform:none !important;
  }
  .mfcard-live-root .mfcard-live-venue{
    transform:none !important;
  }

  .mfcard-live-root .mfcard-live-match-item + .mfcard-live-match-item{
    margin-top:12px !important;
  }
  .mfcard-live-root .mfcard-live-schedule-group + .mfcard-live-schedule-group{
    margin-top:28px !important;
  }
}


/* RC31 EMBLEM-TO-NAME GAP TUNE
 * Desktop only. Keep team-name/MOM/center geometry unchanged from RC30.
 * Move only the left/right emblems downward toward the team-name row,
 * matching the user's visual reference.
 */
@media(min-width:800px){
  .mfcard-live-root img.mfcard-live-emblem{
    transform:translateY(15px) !important;
  }
}

/* RC35 HALF-SCORE TYPOGRAPHY FIX
 * Desktop only.
 * Verified against the actual generated markup:
 *   .mfcard-live-halves > div > span
 * Only the four per-half score numbers are enlarged and bolded.
 * No layout/grid/margin/padding/position/transform/team/emblem/MOM geometry changes.
 */
@media(min-width:800px){
  .mfcard-live-root .mfcard-live-halves > div > span{
    font-size:15px !important;
    font-weight:700 !important;
    line-height:1.10 !important;
  }
}

/* RC37 MOBILE PUBLIC-LAYOUT LOCK
 * Mobile source of truth: the user's screenshot of the CURRENT PUBLIC 2026/08/30 card.
 * Desktop (>=800px) is intentionally untouched from RC35.
 * Venue wrapping remains natural; long venue names may span two lines.
 * Only mobile typography/image sizing is adjusted to match the public card.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team{
    grid-template-rows:78px auto !important;
  }
  .mfcard-live-root img.mfcard-live-emblem{
    width:78px !important;
    height:78px !important;
    max-width:78px !important;
    max-height:78px !important;
  }
  .mfcard-live-root .mfcard-live-team-name{
    margin-top:5px !important;
    font-size:14px !important;
    line-height:1.25 !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-total{
    font-size:28px !important;
    line-height:1 !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-time{
    min-height:16px !important;
    margin-bottom:3px !important;
    font-size:12px !important;
    line-height:1.15 !important;
    font-weight:400 !important;
  }
  .mfcard-live-root .mfcard-live-halves{
    font-size:12px !important;
    line-height:1.25 !important;
  }
  .mfcard-live-root .mfcard-live-halves > div > span{
    font-size:12px !important;
    line-height:1.10 !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-halves > div > b{
    font-size:13px !important;
    line-height:1.10 !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-mom{
    min-height:31px !important;
    padding:3px 9px !important;
    gap:6px !important;
    font-size:13px !important;
    line-height:1.20 !important;
  }
  .mfcard-live-root .mfcard-live-mom-label{
    font-size:13px !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-mom-emblem{
    width:17px !important;
    height:17px !important;
  }
  .mfcard-live-root .mfcard-live-mom-name{
    font-size:13px !important;
    font-weight:400 !important;
  }
}

/* Keep very narrow phones balanced without changing the desktop/tablet lock. */
@media(max-width:390px){
  .mfcard-live-root .mfcard-live-team{
    grid-template-rows:70px auto !important;
  }
  .mfcard-live-root img.mfcard-live-emblem{
    width:70px !important;
    height:70px !important;
    max-width:70px !important;
    max-height:70px !important;
  }
  .mfcard-live-root .mfcard-live-team-name{font-size:13px !important;}
  .mfcard-live-root .mfcard-live-total{font-size:26px !important;}
  .mfcard-live-root .mfcard-live-time{font-size:11.5px !important;}
  .mfcard-live-root .mfcard-live-halves > div > span{font-size:11.5px !important;}
  .mfcard-live-root .mfcard-live-halves > div > b{font-size:12.5px !important;}
}

/* RC38 MOBILE CENTER-WIDTH / MOM SINGLE-LINE TUNE
 * Source of truth: current public smartphone 2026/08/30 card.
 * Desktop is untouched.
 * Keep venue wrapping natural.
 * Increase only the mobile center column enough to match the public balance
 * and keep the MOM badge/player name on one line.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-match{
    grid-template-columns:minmax(0,1fr) 156px minmax(0,1fr) !important;
    column-gap:2px !important;
  }
  .mfcard-live-root .mfcard-live-score-layout{
    grid-template-columns:34px 88px 34px !important;
    width:156px !important;
  }
  .mfcard-live-root .mfcard-live-halves{
    width:88px !important;
  }
  .mfcard-live-root .mfcard-live-halves > div{
    grid-template-columns:1fr 40px 1fr !important;
    gap:1px !important;
  }
  .mfcard-live-root .mfcard-live-mom{
    white-space:nowrap !important;
  }
  .mfcard-live-root .mfcard-live-mom-name{
    white-space:nowrap !important;
  }
}

@media(max-width:390px){
  .mfcard-live-root .mfcard-live-match{
    grid-template-columns:minmax(0,1fr) 146px minmax(0,1fr) !important;
  }
  .mfcard-live-root .mfcard-live-score-layout{
    grid-template-columns:32px 82px 32px !important;
    width:146px !important;
  }
  .mfcard-live-root .mfcard-live-halves{
    width:82px !important;
  }
  .mfcard-live-root .mfcard-live-halves > div{
    grid-template-columns:1fr 38px 1fr !important;
  }
}


/* RC39 MOBILE MOM VERTICAL ALIGNMENT ONLY
 * User request: keep the entire mobile layout from RC38 unchanged,
 * and move only the MOM badge downward so its bottom edge visually aligns
 * with the bottom edge of both team-name texts.
 * No typography, width, emblem, score, venue, or desktop changes.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    position:relative !important;
    top:11px !important;
  }
}


/* RC40 MOBILE TEAM-NAME AUTO-FIT
 * User-approved policy: team names are one line by default on smartphones.
 * Only names that do not fit their own team column are reduced gradually by JS.
 * Short names keep the RC39 size. Desktop/tablet layout is untouched.
 * Vertical geometry, emblem positions, center score block and MOM are unchanged.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team-name{
    white-space:nowrap !important;
    width:100% !important;
    max-width:100% !important;
  }
}


/* RC43 MOBILE TEAM-NAME FINAL AUTO-FIT
 * Production candidate after the approved 2-line test.
 * Smartphone policy:
 *  1) one line at normal size,
 *  2) shrink gradually only when needed,
 *  3) if still too long at the readability floor, use two lines.
 * Emblem geometry / score block / MOM / desktop layout remain unchanged.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team-name{
    width:100% !important;
    max-width:100% !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line{
    display:flex !important;
    flex-direction:column !important;
    align-items:center !important;
    justify-content:flex-start !important;
    white-space:normal !important;
    line-height:1.05 !important;
    row-gap:0 !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line > span{
    display:block !important;
    max-width:100% !important;
    white-space:nowrap !important;
    font-weight:700 !important;
  }
}

/* RC45 HALF-SCORE HORIZONTAL MICRO-ALIGNMENT TEST ONLY
 * RC44から、ユーザー指定により同じ方向へさらに移動する試験版。
 * RC44: PC ±5px / smartphone ±3px
 * RC45 total: PC left +10px, right -10px / smartphone left +6px, right -6px
 * No grid/width/font-size/font-weight/vertical-position/MOM/team/emblem changes.
 */
@media(min-width:641px){
  .mfcard-live-root .mfcard-live-halves > div > span:first-child{
    transform:translateX(10px) !important;
  }
  .mfcard-live-root .mfcard-live-halves > div > span:last-child{
    transform:translateX(-10px) !important;
  }
}
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-halves > div > span:first-child{
    transform:translateX(6px) !important;
  }
  .mfcard-live-root .mfcard-live-halves > div > span:last-child{
    transform:translateX(-6px) !important;
  }
}

/* RC46 PC TOTAL SCORE +4PX ONLY
 * User request: smartphone remains exactly as RC45.
 * Increase only the two aggregate total scores on PC.
 * No change to half-scores, team names, emblem geometry, MOM, or mobile layout.
 */
@media(min-width:800px){
  .mfcard-live-root .mfcard-live-total{
    font-size:32px !important;
  }
}

/* RC47 MOBILE MOM / TEAM-NAME COLLISION GUARD
 * Smartphone only. Keep RC46/RC45 layout unchanged unless a team name
 * actually overlaps the MOM badge. When an overlap is detected by JS,
 * move only the MOM badge downward by the minimum required amount and
 * add matching bottom clearance so the next match/date block is not hit.
 * Desktop is untouched.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-match.mfcard-live-mom-clearance{
    padding-bottom:calc(6px + var(--mfcard-mom-extra-shift, 0px)) !important;
  }
  .mfcard-live-root .mfcard-live-match.mfcard-live-mom-clearance .mfcard-live-center > .mfcard-live-mom-wrap{
    top:calc(11px + var(--mfcard-mom-extra-shift, 0px)) !important;
  }
}

/* RC48 MOBILE TEAM-NAME CENTER LOCK
 * Smartphone only. Explicitly lock every team name to the horizontal center
 * of its own team column (the same axis as its emblem), regardless of text length.
 * RC47 MOM collision guard remains unchanged.
 * No PC layout / score / emblem size / MOM typography changes.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team{
    justify-items:center !important;
  }
  .mfcard-live-root .mfcard-live-team-name{
    justify-self:center !important;
    width:100% !important;
    max-width:100% !important;
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
    transform:none !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line{
    justify-self:center !important;
    align-items:center !important;
    text-align:center !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line > span{
    margin-left:auto !important;
    margin-right:auto !important;
    text-align:center !important;
  }
}


/* RC49 MOBILE TEAM-NAME / MOM FIX
 * Smartphone only. MOM badge stays fixed.
 * When a team name may touch the MOM badge, JS constrains the usable name width
 * from the emblem center toward the badge, then applies the approved policy:
 * 1) keep one line when possible,
 * 2) shrink only as much as needed,
 * 3) if still too long, use two lines.
 * Desktop/PC layout is unchanged.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team-name{
    justify-self:center !important;
    text-align:center !important;
  }
}


/* RC50 FINAL TUNE
 * Mobile: MOM position stays fixed. If a team name needs two lines, JS prefers
 * a natural break before a trailing club suffix such as FC/SC/JYFC.
 * Desktop: move only the MOM badge upward by 7px so the visible bottom edge of
 * the badge aligns with the visible bottom of the team-name text, narrowing
 * the gap beneath the second-half row. Nothing else moves.
 */
@media(min-width:800px){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    transform:translateY(-7px) !important;
  }
}
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    top:11px !important;
  }
  .mfcard-live-root .mfcard-live-match.mfcard-live-mom-clearance{
    padding-bottom:6px !important;
  }
}

/* RC59 TOUCH-WIDE MOM TOP-GAP FINE-TUNE ONLY
 * Scope: touch/coarse-pointer viewports 641px and wider (landscape phones/tablets).
 * Problem: on these devices the MOM badge can sit visually too close to the
 * second-half row because they inherit the wide-layout vertical tuning.
 * Change only the MOM wrapper vertical offset. Portrait phones <=640px and
 * mouse/trackpad desktop layouts remain exactly as RC57.
 */
@media (min-width:641px) and (hover:none) and (pointer:coarse){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    transform:translateY(10px) !important;
  }
}


/* RC65 IPAD/TABLET MOM GAP DEVICE-ORIENTATION FINE-TUNE ONLY
 * Base remains RC59: landscape phones keep +10px.
 * iPad Air 4th gen landscape remains at -7px (confirmed good on RC63).
 * iPad/tablet portrait: RC64 moved 5px upward from RC63 (-4px -> -9px),
 * which was too high in real-device review. RC65 uses the requested compromise:
 * 3px upward from RC63, i.e. -7px.
 * Scope is coarse-pointer tablets only. iPhone portrait/landscape and desktop
 * mouse/trackpad layouts remain unchanged.
 */
@media (min-width:1024px) and (max-width:1366px) and (orientation:landscape) and (hover:none) and (pointer:coarse){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    transform:translateY(-7px) !important;
  }
}

@media (min-width:768px) and (max-width:1023px) and (orientation:portrait) and (hover:none) and (pointer:coarse){
  .mfcard-live-root .mfcard-live-center > .mfcard-live-mom-wrap{
    transform:translateY(-7px) !important;
  }
}

/* RC104 MOBILE TEAM-NAME TRUE AXIS + WEIGHT LOCK
 * Smartphone only. Keep the outer name box at 100% of the team grid column.
 * JS uses a separate collision-safe text-width limit, so the text can never
 * shift the box away from the emblem/team-column center. Two-line rows retain
 * the approved bold weight. Score/MOM/emblem/notice/desktop geometry unchanged.
 */
@media(max-width:640px){
  .mfcard-live-root .mfcard-live-team-name{
    justify-self:stretch !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    margin-left:0 !important;
    margin-right:0 !important;
    text-align:center !important;
    font-weight:700 !important;
    transform:none !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
    justify-content:flex-start !important;
    width:100% !important;
    max-width:100% !important;
    min-width:0 !important;
    text-align:center !important;
    font-weight:700 !important;
  }
  .mfcard-live-root .mfcard-live-team-name-auto-two-line > span{
    display:block !important;
    width:100% !important;
    min-width:0 !important;
    max-width:100% !important;
    box-sizing:border-box !important;
    margin-left:0 !important;
    margin-right:0 !important;
    text-align:center !important;
    font-weight:700 !important;
    white-space:nowrap !important;
    transform:none !important;
  }
}
