/* ============================================================
   関西選手権2026 — design system
   "Summer regatta on the Hamadera waterway"
   Light, premium, broadcast energy. Phase-tinted accents.
   ============================================================ */
:root{
  --latin:"Saira","Noto Sans JP",system-ui,sans-serif;
  --cond:"Saira Condensed","Saira",system-ui,sans-serif;
  --jp:"Noto Sans JP","Hiragino Sans","Yu Gothic UI",Meiryo,system-ui,sans-serif;
  --r-sm:8px; --r-md:12px; --r-lg:16px; --r-xl:22px;

  --bg:#eef2f7; --surface:#ffffff; --surface-2:#f3f6fb; --surface-3:#eaeff6;
  --ink:#0c1626; --sub:#566077; --mut:#94a0b4; --line:#e4e9f1; --line-2:#eef2f7;
  --navy:#0b1f44; --navy-2:#143a7a;
  --cyan:#0fb5cf; --cyan-2:#16cfe0; --cyan-soft:#e3f7fb; --cyan-line:#bfe9f0;
  --red:#ff2e4d; --red-2:#ff5a54;
  --gold:#dd9b18; --gold-2:#f4c244; --gold-soft:#fdf2d8; --gold-line:#eccf86;
  --men:#1f6bff; --men-soft:#e9f0ff; --women:#ff2d7a; --women-soft:#ffe6f0;
  /* 「SCHEDULE」タグと同じ紺→鮮やかな青の斜めグラデーション。フェーズに関わらず固定（男子の色面用） */
  --men-grad:linear-gradient(118deg,#0b1f44 28%,#2a64d8 138%);
  /* 男子グラデと同じテイスト（暗いワイン→鮮やかな赤）の女子版。明るめに調整 */
  --women-grad:linear-gradient(118deg,#8a2049 28%,#ff4d92 138%);

  /* phase accent — overridden by [data-phase] */
  --ph:#0fb5cf; --ph-2:#16cfe0; --ph-soft:#e3f7fb; --ph-line:#bfe9f0; --ph-ink:#076b7c;
  --panel:linear-gradient(118deg,#0b1f44 30%,#143a7a 130%);
  --shadow-card:0 6px 22px rgba(11,31,68,.08);
  --shadow-pop:0 14px 36px rgba(11,31,68,.16);
}
.app[data-phase="before"]{ --ph:#1f6bff; --ph-2:#3f86ff; --ph-soft:#e9f0ff; --ph-line:#c5d8ff; --ph-ink:#1a4fd0;
  --panel:linear-gradient(118deg,#0b1f44 28%,#2a64d8 138%); }
.app[data-phase="during"]{ --ph:#ff2e4d; --ph-2:#ff5a54; --ph-soft:#ffe7ea; --ph-line:#ffc8cf; --ph-ink:#cc1f38;
  --panel:linear-gradient(118deg,#0b1f44 24%,#c01f38 150%); }
.app[data-phase="after"]{ --ph:#dd9b18; --ph-2:#f4c244; --ph-soft:#fdf2d8; --ph-line:#eccf86; --ph-ink:#9a6c0f;
  --panel:linear-gradient(118deg,#0b1f44 22%,#b8860f 152%); }

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:#0a1020;}
@media(min-width:560px){
  body{background:
    radial-gradient(120% 60% at 50% -12%, #16284e 0%, transparent 58%),
    repeating-linear-gradient(116deg, transparent 0 46px, rgba(255,255,255,.018) 46px 47px),
    #0a1020;}
}
.app{
  font-family:var(--jp); color:var(--ink); line-height:1.6; -webkit-font-smoothing:antialiased;
  max-width:520px; margin:0 auto; min-height:100vh; background:var(--bg); position:relative;
  box-shadow:0 0 0 1px rgba(255,255,255,.04), 0 40px 110px rgba(0,0,0,.55); overflow-x:hidden;
}
.num{font-family:var(--cond);font-style:italic;font-weight:800;font-variant-numeric:tabular-nums}
.lat{font-family:var(--latin)}

/* ====================== HERO ====================== */
.hero{position:relative;overflow:hidden;color:#fff;isolation:isolate}
.h-credit{position:absolute;right:16px;bottom:9px;z-index:4;font-size:10px;font-weight:600;letter-spacing:.02em;color:rgba(255,255,255,.5);text-decoration:none}
.h-credit:hover{color:rgba(255,255,255,.75)}
.h-credit:active{opacity:.6}
/* ============================================================
   HERO「夜明けの戸田」 — 朝7:00発艇の空気（最終版）
   z0: h-bg(空・水) → h-stars(星) → h-shore(対岸) → h-grain(質感)
   z1: h-slot(写真・将来)
   z2: h-scrim(暗幕) → h-glow(朝焼けの核と光の道) → h-lanes(薄明光線)
   z3: h-water(波・6艇 既存) / z4: inner・tagline(既存)
   水平線は calc(100% - 78px) ＝ 水面ゾーン上端に固定
   ============================================================ */

/* --- 空と水のベース（写真を入れると隠れる層） --- */
.hero .h-bg{position:absolute;inset:0;z-index:0;
  background:
    /* 朝焼けの残光帯（水平線ぎわ・右寄り） */
    radial-gradient(210px 34px at 84% calc(100% - 78px), rgba(255,168,92,.40), rgba(255,122,66,.16) 55%, transparent 78%),
    radial-gradient(430px 120px at 84% calc(100% - 70px), rgba(255,132,72,.15), transparent 70%),
    /* 水平線の細い残光ライン（全幅） */
    linear-gradient(to bottom, transparent calc(100% - 82px), rgba(255,188,118,.16) calc(100% - 79px), rgba(255,204,140,.30) calc(100% - 78px), rgba(255,160,95,.10) calc(100% - 74px), transparent calc(100% - 69px)),
    /* 朝焼けへ移るバラ色の帯 */
    radial-gradient(320px 60px at 84% calc(100% - 86px), rgba(255,110,120,.10), transparent 75%),
    /* 天頂に残る夜のシアン */
    radial-gradient(64% 56% at 76% -10%, rgba(22,207,224,.14), transparent 62%),
    /* 左の水面に残る冷たい空の照り返し */
    radial-gradient(340px 90px at 26% calc(100% - 26px), rgba(22,170,210,.13), transparent 75%),
    /* 右の水面へ広がる暖色の照り返し */
    radial-gradient(260px 110px at 84% calc(100% - 30px), rgba(255,140,80,.12), transparent 75%),
    /* 空→水 ベースグラデ */
    linear-gradient(to bottom,
      #030a1e 0%, #071838 32%, #0d2a5e 56%,
      #182f58 calc(100% - 100px), #263a63 calc(100% - 80px),
      #0b2a46 calc(100% - 74px), #071e34 100%)}

/* --- 消え残りの星（明け方の空・2層で明滅。右上2つはタグライン退避済み） --- */
.hero .h-stars{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.7;
  animation:hTwinkleA 5.6s ease-in-out infinite alternate;
  background:
    radial-gradient(1.1px 1.1px at 9% 19%, rgba(215,235,255,.7), transparent),
    radial-gradient(1.5px 1.5px at 22% 9%, rgba(255,255,255,.8), transparent),
    radial-gradient(1px 1px at 34% 27%, rgba(215,235,255,.55), transparent),
    radial-gradient(1.4px 1.4px at 47% 13%, rgba(255,255,255,.75), transparent),
    radial-gradient(1px 1px at 58% 30%, rgba(215,235,255,.5), transparent),
    radial-gradient(1.6px 1.6px at 69% 8%, rgba(255,255,255,.85), transparent),
    radial-gradient(1px 1px at 86% 38%, rgba(220,240,255,.6), transparent)}
.hero .h-stars::after{content:"";position:absolute;inset:0;opacity:.5;
  animation:hTwinkleB 7.8s ease-in-out -3.2s infinite alternate;
  background:
    radial-gradient(1px 1px at 15% 33%, rgba(215,235,255,.6), transparent),
    radial-gradient(1.3px 1.3px at 29% 17%, rgba(255,255,255,.7), transparent),
    radial-gradient(1px 1px at 41% 6%, rgba(215,235,255,.55), transparent),
    radial-gradient(1.4px 1.4px at 53% 22%, rgba(255,255,255,.65), transparent),
    radial-gradient(1px 1px at 64% 15%, rgba(215,235,255,.5), transparent),
    radial-gradient(1.2px 1.2px at 76% 28%, rgba(255,255,255,.6), transparent),
    radial-gradient(1px 1px at 97% 36%, rgba(220,240,255,.65), transparent)}
@keyframes hTwinkleA{from{opacity:.35}to{opacity:.85}}
@keyframes hTwinkleB{from{opacity:.22}to{opacity:.68}}

/* --- 対岸のシルエットと灯り（戸田の観覧席側） --- */
.hero .h-shore{position:absolute;inset:0;z-index:0;pointer-events:none;
  background:
    /* 窓灯り・街灯（右＝夜明け側に密集） */
    radial-gradient(1.6px 1.6px at 61% calc(100% - 82px), rgba(255,214,140,.9), transparent),
    radial-gradient(1.3px 1.3px at 66% calc(100% - 81px), rgba(255,200,120,.8), transparent),
    radial-gradient(1.8px 1.8px at 72% calc(100% - 84px), rgba(255,224,160,.95), transparent),
    radial-gradient(1.3px 1.3px at 76% calc(100% - 81px), rgba(255,205,125,.8), transparent),
    radial-gradient(1.5px 1.5px at 90% calc(100% - 83px), rgba(255,214,140,.85), transparent),
    radial-gradient(1.2px 1.2px at 95% calc(100% - 81px), rgba(255,200,120,.7), transparent),
    radial-gradient(1.2px 1.2px at 13% calc(100% - 81px), rgba(190,225,255,.5), transparent),
    radial-gradient(1.2px 1.2px at 30% calc(100% - 81px), rgba(190,225,255,.45), transparent),
    /* 灯りの水面反射（縦ニジミ） */
    linear-gradient(to bottom, rgba(255,195,125,.30), transparent) 72% calc(100% - 60px)/2px 16px no-repeat,
    linear-gradient(to bottom, rgba(255,195,125,.24), transparent) 90% calc(100% - 64px)/2px 12px no-repeat,
    linear-gradient(to bottom, rgba(190,225,255,.18), transparent) 13% calc(100% - 66px)/1.5px 10px no-repeat,
    /* 建物・観覧席のブロック（水平線に接地・右＝夜明け側だけ高く） */
    linear-gradient(rgba(4,15,30,.85),rgba(4,15,30,.85)) 86% calc(100% - 78px)/52px 10px no-repeat,
    linear-gradient(rgba(4,15,30,.82),rgba(4,15,30,.82)) 78% calc(100% - 78px)/4px 14px no-repeat,
    linear-gradient(rgba(4,15,30,.82),rgba(4,15,30,.82)) 70% calc(100% - 78px)/30px 8px no-repeat,
    linear-gradient(rgba(4,15,30,.78),rgba(4,15,30,.78)) 61% calc(100% - 78px)/18px 6px no-repeat,
    linear-gradient(rgba(4,15,30,.55),rgba(4,15,30,.55)) 12% calc(100% - 78px)/36px 4px no-repeat,
    linear-gradient(rgba(4,15,30,.55),rgba(4,15,30,.55)) 30% calc(100% - 78px)/22px 4px no-repeat,
    /* 岸の帯（樹木のシルエット） */
    linear-gradient(to bottom, transparent calc(100% - 90px), rgba(4,14,28,.4) calc(100% - 84px), rgba(3,10,22,.85) calc(100% - 78px), transparent calc(100% - 78px))}

/* --- 微細グレイン（C案から移植・静止）：質感＋空グラデのバンディング消し。SVG data-URI 約300B --- */
.hero .h-grain{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.05;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");
  background-size:140px 140px}

/* --- 暗幕（文字の可読性を守る。左と下をやや強めに） --- */
.hero .h-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(4,9,22,.94) 3%,rgba(4,9,22,.52) 30%,rgba(4,9,22,.05) 62%,transparent 80%),
    linear-gradient(102deg,rgba(4,9,22,.76) 0%,rgba(4,9,22,.26) 40%,transparent 63%)}

/* --- 朝焼けの核＋水面へ落ちる光の道 --- */
.hero .h-glow{position:absolute;inset:0;z-index:2;pointer-events:none;mix-blend-mode:screen;
  background:
    radial-gradient(46px 13px at 84% calc(100% - 78px), rgba(255,236,190,.85), rgba(255,190,120,.4) 55%, transparent 80%),
    radial-gradient(120px 40px at 84% calc(100% - 78px), rgba(255,176,104,.38), transparent 75%),
    radial-gradient(210px 130px at 84% calc(100% - 74px), rgba(255,150,90,.14), transparent 70%)}
.hero .h-glow::after{content:"";position:absolute;left:calc(84% - 42px);width:84px;top:calc(100% - 78px);bottom:14px;
  opacity:.85;transform-origin:50% 0;animation:hGlitter 7s ease-in-out infinite;
  background:
    radial-gradient(48px 66px at 42px 6px, rgba(255,180,110,.30), transparent 78%),
    radial-gradient(54px 30px at 42px 92%, rgba(255,170,100,.12), transparent 80%),
    linear-gradient(to bottom, rgba(255,215,155,.4), rgba(255,175,105,.16) 55%, transparent 95%) 16px 0/1.5px 26px no-repeat,
    linear-gradient(to bottom, rgba(255,215,155,.48), rgba(255,175,105,.22) 55%, transparent 95%) 27px 0/2px 44px no-repeat,
    linear-gradient(to bottom, rgba(255,222,165,.56), rgba(255,180,110,.26) 55%, transparent 95%) 36px 0/2px 58px no-repeat,
    linear-gradient(to bottom, rgba(255,228,175,.62), rgba(255,185,115,.3) 55%, transparent 96%) 41px 0/2px 70px no-repeat,
    linear-gradient(to bottom, rgba(255,222,165,.5), rgba(255,180,110,.22) 55%, transparent 95%) 47px 0/2px 50px no-repeat,
    linear-gradient(to bottom, rgba(255,215,155,.4), rgba(255,175,105,.18) 55%, transparent 95%) 56px 0/2px 64px no-repeat,
    linear-gradient(to bottom, rgba(255,215,155,.3), rgba(255,175,105,.14) 55%, transparent 95%) 66px 0/1.5px 30px no-repeat,
    linear-gradient(to bottom, rgba(255,215,155,.22), transparent 90%) 74px 0/1.5px 40px no-repeat}
@keyframes hGlitter{0%,100%{transform:translateX(-2px) skewX(-2deg);opacity:.72}50%{transform:translateX(2px) skewX(2deg);opacity:1}}

/* --- 薄明光線（太陽点から扇状）＋うっすら斜めテクスチャ --- */
.hero .h-lanes{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.5;
  animation:hRayBreathe 9s ease-in-out infinite alternate;
  background:
    conic-gradient(from 250deg at 84% calc(100% - 78px),
      transparent 33deg, rgba(255,196,130,.10) 37deg, transparent 42deg,
      transparent 49deg, rgba(255,186,120,.07) 53deg, transparent 58deg,
      transparent 68deg, rgba(255,206,146,.12) 72deg, transparent 78deg,
      transparent 86deg, rgba(255,186,120,.06) 90deg, transparent 95deg,
      transparent 101deg, rgba(255,196,130,.09) 105deg, transparent 110deg,
      transparent 360deg),
    repeating-linear-gradient(116deg,transparent 0 54px,rgba(255,255,255,.03) 54px 55px)}
@keyframes hRayBreathe{from{opacity:.32}to{opacity:.6}}

/* --- 動きを減らす設定では装飾アニメを停止（グレインは元々静止） --- */
@media (prefers-reduced-motion:reduce){
  .hero .h-stars,.hero .h-stars::after,.hero .h-glow::after,.hero .h-lanes{animation:none!important}
}
.hero .h-slot{position:absolute;inset:0;z-index:1;width:100%;height:100%;display:block}
.hero .h-slot::part(frame){background:transparent;border-radius:0}
.hero .h-slot::part(ring){border-color:transparent}
.hero .h-slot::part(empty),.hero .h-slot::part(icon){display:none}
.hero .inner{position:relative;z-index:4;padding:15px 20px 18px;display:flex;flex-direction:column;gap:11px}

.h-tagline{position:absolute;top:14px;right:20px;z-index:4;margin:0;text-align:right;white-space:nowrap;pointer-events:none;
  font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;line-height:1.28;
  letter-spacing:.03em;color:rgba(255,255,255,.58);text-transform:uppercase}
.hero h1{margin:0;font-weight:900;letter-spacing:-.01em;font-size:30px;line-height:1.08}
.hero h1 .en{display:block;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;
  letter-spacing:.05em;color:rgba(255,255,255,.6);margin-bottom:2px}
.hero h1 .yr{font-family:var(--cond);font-style:italic;color:var(--cyan-2)}
.h-meta{display:flex;flex-direction:column;gap:4px;margin-top:1px}
.h-line{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;color:rgba(255,255,255,.9);white-space:nowrap}
.h-line svg{color:var(--cyan-2);flex:none}
.h-stats{display:flex;align-items:flex-end;margin-top:3px}
.h-stat{position:relative;display:flex;flex-direction:column;padding:0 14px}
.h-stat:first-child{padding-left:0}
.h-stat .tick{width:20px;height:3px;border-radius:2px;background:var(--red);margin-bottom:5px}
.h-stat b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:26px;color:#fff;line-height:.9}
.h-stat span{font-size:10.5px;font-weight:700;color:rgba(255,255,255,.72);margin-top:3px}
.h-stat .sep{position:absolute;left:0;top:2px;bottom:2px;width:1px;transform:skewX(-16deg);
  background:linear-gradient(180deg,transparent,rgba(255,255,255,.26),transparent)}

/* ====================== BODY ====================== */
.body{padding:0 13px 116px}

/* phase banner */
.phasebar{display:flex;align-items:center;gap:10px;margin:13px 0 4px;padding:11px 14px;
  border-radius:var(--r-md);background:var(--ph-soft);border:1px solid var(--ph-line);position:relative;overflow:hidden;transition:transform .12s}
.phasebar.clk:active{transform:scale(.98)}
.phasebar .pdot{width:9px;height:9px;border-radius:50%;background:var(--ph);flex:none;position:relative}
.app[data-phase="during"] .phasebar .pdot::after{content:"";position:absolute;inset:-5px;border-radius:50%;
  border:2px solid var(--ph);animation:pulse 1.6s ease-out infinite}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.7);opacity:0}}
.phasebar .pname{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;letter-spacing:.06em;
  color:var(--ph-ink);text-transform:uppercase;flex:none}
.phasebar .ptext{font-size:11.5px;font-weight:700;color:var(--ph-ink);opacity:.92;min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.phasebar .pclock{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;
  color:var(--ph-ink);opacity:.8;flex:none}

/* section head */
.shead{display:flex;align-items:center;gap:10px;margin:20px 2px 12px}
.shead .tag{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11.5px;color:#fff;
  background:var(--panel);padding:5px 15px 4px 12px;border-radius:5px;transform:skewX(-9deg);letter-spacing:.04em;flex:none}
.shead .tag span{display:inline-block;transform:skewX(9deg)}
.shead .jp{font-size:14.5px;font-weight:800;letter-spacing:.01em;white-space:nowrap}
.shead .sp{flex:1}
.shead .meta{font-size:11px;color:var(--mut);font-weight:700;white-space:nowrap;flex:none}
.subhead{font-size:13.5px;font-weight:800;margin:18px 2px 11px;display:flex;align-items:center;gap:7px}
.subhead .ic{color:var(--ph)}
.subhead .subnote{font-size:10px;font-weight:700;color:var(--mut);margin-left:2px}

/* code badge + chips */
.code{font-family:var(--cond);font-style:italic;font-weight:800;font-size:13.5px;padding:3px 8px;border-radius:6px;
  background:var(--men-soft);color:var(--men);white-space:nowrap;line-height:1.25;flex:none}
.code.w{background:var(--women-soft);color:var(--women)}
.code.hm{background:#eafaf4;color:#0a8f63}
.code.ms{background:#f1ecfb;color:#7a4dd0}
.divchip{font-family:var(--jp);font-size:9.5px;font-weight:800;padding:2px 7px;border-radius:5px;flex:none;
  background:var(--surface-3);color:var(--sub);letter-spacing:.02em;border:1px solid var(--line)}
.divchip.hamadera{background:#eafaf4;color:#0a8f63;border-color:#bfeada}
.divchip.masters{background:#f1ecfb;color:#7a4dd0;border-color:#ddd0f4}
.finchip{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;letter-spacing:.05em;
  color:var(--gold);background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:5px;padding:1px 6px;flex:none}
.opchip{font-size:9.5px;font-weight:800;color:#0a8f63;background:#eafaf4;border:1px solid #bfeada;border-radius:5px;padding:1px 6px;flex:none}
.dbchip{font-size:9px;font-weight:800;color:#a3670a;background:#fff4de;border:1px solid #f2dba8;border-radius:5px;padding:1px 6px;flex:none;white-space:nowrap}

/* ====================== LIVE STRIP ====================== */
.livestrip{margin:12px 0 0;border-radius:var(--r-md);overflow:hidden;background:var(--panel);color:#fff;
  position:relative;cursor:pointer;box-shadow:var(--shadow-pop)}
.livestrip .lanes{position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(116deg,transparent 0 26px,rgba(255,255,255,.05) 26px 27px)}
.livestrip .ls-in{position:relative;display:flex;align-items:center;gap:11px;padding:12px 14px}
.dotlive{width:9px;height:9px;border-radius:50%;background:var(--red);flex:none;position:relative}
.dotlive::after{content:"";position:absolute;inset:-5px;border-radius:50%;border:2px solid var(--red);animation:pulse 1.6s ease-out infinite}
.ls-lbl{font-family:var(--latin);font-weight:700;font-size:11px;letter-spacing:.14em;color:#ff8a86;text-transform:uppercase;white-space:nowrap}
.ls-text{flex:1;min-width:0}
.ls-text .t1{font-size:11px;opacity:.72;font-weight:600}
.ls-text .t2{font-weight:800;font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ls-go{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;opacity:.7;flex:none}
.livestrip.idle{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-card);border:1px solid var(--line)}
.livestrip.idle .lanes{display:none}
.livestrip.idle .ls-lbl{color:var(--ph-ink)}
.livestrip.idle .dotlive{background:var(--ph)}.livestrip.idle .dotlive::after{display:none}

/* ====================== HOME: COUNTDOWN (before) — 決戦前夜の高揚感 ====================== */
.countcard{position:relative;overflow:hidden;border-radius:var(--r-lg);color:#fff;
  background:linear-gradient(135deg,#040d26 0%,#0a1f55 45%,#061333 100%);
  padding:20px 18px 17px;box-shadow:var(--shadow-pop),0 0 0 1px rgba(255,255,255,.06);margin-top:12px;
  animation:cbreathe 3.4s ease-in-out infinite}
@keyframes cbreathe{0%,100%{box-shadow:var(--shadow-pop),0 0 0 1px rgba(255,209,102,.12)}50%{box-shadow:var(--shadow-pop),0 0 22px rgba(255,209,102,.28),0 0 0 1px rgba(255,209,102,.34)}}
.countcard .lanes{position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(116deg,transparent 0 34px,rgba(255,255,255,.05) 34px 35px)}
/* 奥でゆっくり回るオーロラ光（主役級に強く） */
.countcard .cglow{position:absolute;inset:-45%;pointer-events:none;opacity:.95;
  background:conic-gradient(from 0deg,transparent 0 55deg,rgba(80,170,255,.5) 100deg,rgba(140,90,255,.22) 135deg,transparent 175deg,rgba(255,209,102,.4) 235deg,rgba(255,140,80,.16) 265deg,transparent 300deg);
  filter:blur(6px);animation:cspin 14s linear infinite}
@keyframes cspin{to{transform:rotate(1turn)}}
.countcard .ci{position:relative}
.countcard .cl{display:flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--latin);font-weight:800;font-size:11px;letter-spacing:.3em;color:#ffd166;text-transform:uppercase;text-align:center}
.countcard .cl-spark{width:26px;height:1px;background:linear-gradient(to left,#ffd166,transparent)}
.countcard .cl-spark.r{background:linear-gradient(to right,#ffd166,transparent)}
.countcard .cbig{text-align:center;font-size:13px;font-weight:800;letter-spacing:.5em;text-indent:.5em;margin-top:6px;color:rgba(255,255,255,.92)}
.countcard .cnums{display:flex;align-items:stretch;gap:4px;margin:10px 0 6px}
.countcard .ccolon{align-self:center;font-family:var(--cond);font-weight:800;font-size:22px;color:rgba(255,255,255,.45);
  animation:cblink 1s steps(1) infinite;margin-top:-12px}
@keyframes cblink{50%{opacity:.15}}
.countcard .cu{flex:1;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.16);border-radius:12px;
  padding:11px 4px 9px;text-align:center;overflow:hidden;position:relative}
.countcard .cu::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:rgba(255,255,255,.1)}
.countcard .cu b{display:block;font-family:var(--cond);font-style:italic;font-weight:800;font-size:34px;line-height:.95;
  text-shadow:0 0 18px rgba(120,190,255,.45);animation:cflip .5s cubic-bezier(.2,.9,.3,1.2)}
/* 数字切替の瞬間：上からフリップして着地 */
@keyframes cflip{0%{transform:translateY(-60%) scaleY(.4);opacity:0;filter:brightness(2)}60%{transform:translateY(6%) scaleY(1.06);opacity:1}100%{transform:none;filter:none}}
.countcard .cu span{font-size:9.5px;font-weight:800;opacity:.75;letter-spacing:.18em}
/* 秒のセル：金色に燃える主役 */
.countcard .cu.sec{background:linear-gradient(160deg,rgba(255,209,102,.2),rgba(255,255,255,.07));border-color:rgba(255,209,102,.5)}
.countcard .cu.sec b{color:#ffd166;text-shadow:0 0 16px rgba(255,209,102,.65)}
.countcard .cu.sec span{color:#ffd166;opacity:.95}
.countcard .csub{display:flex;align-items:center;gap:7px;justify-content:center;font-size:11.5px;opacity:.88;font-weight:700;margin-top:7px}
.countcard .cdot{width:7px;height:7px;border-radius:50%;background:#ff5964;flex:none;animation:cdotpulse 1.6s ease-in-out infinite}
@keyframes cdotpulse{0%,100%{box-shadow:0 0 0 0 rgba(255,89,100,.55)}55%{box-shadow:0 0 0 6px rgba(255,89,100,0)}}

/* ====================== サブフェーズ：archive（大会終了から24時間以上）====================== */
.archivebar{margin:12px 0 0;padding:10px 14px;border-radius:var(--r-md);background:var(--surface-2);
  border:1px solid var(--line);color:var(--sub);font-size:11.5px;font-weight:700;text-align:center;letter-spacing:.03em}

/* ====================== サブフェーズ：eve（開幕まで24時間以内）====================== */
.evecard{margin-top:12px}
.evecard-hd{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--ph-ink);margin-bottom:8px}

/* ====================== サブフェーズ：interday（初日終了〜2日目開始前）====================== */
.interday{position:relative;overflow:hidden;border-radius:var(--r-lg);color:#fff;
  background:var(--men-grad);padding:15px 16px 14px;box-shadow:var(--shadow-pop);margin:2px 0 16px}
.interday-hd{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;letter-spacing:.04em;
  color:rgba(255,255,255,.72);text-transform:uppercase;margin-bottom:10px}
.interday-team{padding:8px 0;border-top:1px solid rgba(255,255,255,.14)}
.interday-team:first-of-type{border-top:0}
.interday-teamnm{font-weight:800;font-size:13px;cursor:pointer}
.interday-chips{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
.interday-tmrw{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:12px;
  padding-top:12px;border-top:1px dashed rgba(255,255,255,.25);font-size:12px;font-weight:700;cursor:pointer}

/* ====================== 浜寺水路 天気カード（eve/racing/interday）====================== */
.wxcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:13px 14px;margin-top:12px}
.wxcard-hd{font-size:12px;font-weight:800;color:var(--sub);margin-bottom:10px}
.wxcard-row{display:flex;gap:6px}
.wx-item{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;gap:2px;text-align:center}
.wx-item b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:15px;color:var(--ink);white-space:nowrap}
.wx-item span{font-size:9px;font-weight:700;color:var(--mut);white-space:nowrap}
.wx-arrow{display:inline-block;font-size:15px;line-height:1;color:var(--ph-ink)}
.wx-heat{margin-top:10px;padding:7px 10px;border-radius:8px;font-size:11.5px;font-weight:800;text-align:center}
.wx-heat.ok{background:#eafaf4;color:#0a8f63}
.wx-heat.warn{background:#fff4de;color:#a3670a}
.wx-heat.danger{background:#ffe6e6;color:#c81e2b}
.wx-note{margin-top:6px;font-size:9px;color:var(--mut);text-align:center}

/* ====================== サブフェーズ：justEnded（閉会から24時間以内）====================== */
.jehl{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-card);
  padding:13px 14px;margin-top:12px}
.jehl-hd{display:flex;align-items:center;gap:6px;font-size:12.5px;font-weight:800;color:var(--gold);margin-bottom:9px}
.jehl-row{display:flex;align-items:center;gap:8px;padding:6px 0;border-top:1px solid var(--line-2)}
.jehl-row:first-child{border-top:0}
.jehl-nm{font-size:12px;font-weight:700;color:var(--ink);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jehl-win{font-size:11px;font-weight:700;color:var(--ph-ink);cursor:pointer;white-space:nowrap}

/* ====================== HOME: highlight / matchup cards ====================== */
.hl-grid{display:grid;grid-template-columns:1fr;gap:10px}
.hcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);overflow:hidden;cursor:pointer;transition:.15s}
.hcard:hover{transform:translateY(-2px);box-shadow:var(--shadow-pop)}
.hcard .acc{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--ph)}
.hcard .hc-top{display:flex;align-items:center;gap:8px;padding:12px 14px 8px}
.hcard .hc-name{font-size:13px;font-weight:800}
.hcard .hc-cnt{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--ph-ink);
  background:var(--ph-soft);border-radius:6px;padding:2px 9px;flex:none}
.hcard .hc-body{padding:0 14px 12px;font-size:11.5px;color:var(--sub);font-weight:600}
.hcard .hc-rail{display:flex;gap:6px;flex-wrap:wrap;padding:0 14px 13px}
.hcard .hc-pill{font-size:11px;background:var(--surface-2);border:1px solid var(--line);border-radius:7px;padding:3px 8px;color:var(--sub)}
.hcard .hc-pill.star{color:var(--red);border-color:var(--red-2)}

/* big now (during) */
.bignow{position:relative;background:var(--panel);color:#fff;border-radius:var(--r-lg);overflow:hidden;
  box-shadow:var(--shadow-pop);margin-top:12px}
.bignow .lanes{position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(116deg,transparent 0 40px,rgba(255,255,255,.05) 40px 41px)}
.bignow .bn-in{position:relative;padding:16px 18px 18px}
.bignow .bn-h{display:flex;align-items:center;gap:9px;margin-bottom:13px}
.bignow .bn-time{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;opacity:.72}
.bignow .bn-code{display:flex;align-items:center;gap:9px;margin-bottom:6px}
.bignow .bn-code .code{font-size:18px;padding:5px 11px;background:rgba(255,255,255,.16);color:#fff}
.bignow .bn-name{font-size:20px;font-weight:900;line-height:1.15}
.bignow .bn-round{font-size:12.5px;opacity:.8;margin-top:5px;font-weight:600}
.bignow.empty{background:var(--surface);color:var(--ink);border:1px solid var(--line);box-shadow:var(--shadow-card)}
.bignow.empty .lanes{display:none}
.bignow.empty .bn-code .code{background:var(--men-soft);color:var(--men)}
.bignow.empty .bn-code .code.w{background:var(--women-soft);color:var(--women)}

/* next list */
.nextlist{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card)}
.nextrow{display:flex;align-items:center;gap:11px;padding:11px 14px;border-top:1px solid var(--line-2)}
.nextrow:first-child{border-top:0}
.nextrow .nt{font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--ph-ink);width:48px;flex:none}
.nextrow .nx{flex:1;min-width:0}
.nextrow .nx .l1{display:flex;align-items:center;gap:6px}
.nextrow .nx .nm{font-size:11.5px;color:var(--sub);font-weight:600;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.eta{font-family:var(--cond);font-style:italic;font-weight:700;font-size:10px;color:var(--ph-ink);background:var(--ph-soft);border-radius:5px;padding:2px 6px;flex:none;white-space:nowrap}
.favteam-evs{background:var(--surface-2);padding:0 14px 6px}
.favaddbtn{display:flex;align-items:center;gap:5px;flex:none;appearance:none;cursor:pointer;white-space:nowrap;touch-action:manipulation;
  border:1.5px solid var(--red);background:rgba(255,46,77,.08);color:var(--red);
  font-family:var(--jp);font-weight:800;font-size:11.5px;border-radius:999px;padding:8px 12px}
.favaddbtn:active{transform:scale(.95)}
.favaddbtn.on{background:var(--red);color:#fff}
.favteam-evs .trow{padding:8px 0 8px 24px}

/* ====================== DAY TABS / TIMETABLE ====================== */
/* ====================== DAY TABS / TIMETABLE ====================== */
/* 日付セレクタ＝1行のデイストリップ（DAY 1→最終日＝大会の流れがそのまま並び順）＋選択中の日の詳細バー。
   列数は日数まかせなので3日でも7日でも成立し、入りきらない時だけ横スクロール（選択日は自動で中央へ）。 */
.daysel{margin-bottom:12px}
.days{display:flex;gap:6px;padding:3px 0 7px;
  overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;-ms-overflow-style:none;scroll-snap-type:x proximity;overscroll-behavior-x:contain}
.days::-webkit-scrollbar{display:none}
.day{flex:1 1 0;min-width:52px;min-height:64px;position:relative;overflow:hidden;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1px;
  appearance:none;-webkit-appearance:none;font-family:var(--jp);color:var(--ink);text-align:center;
  border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);
  padding:8px 3px 10px;cursor:pointer;touch-action:manipulation;scroll-snap-align:center;
  transition:background .15s,border-color .15s,box-shadow .15s,opacity .15s}
.day .dnum{display:inline-flex;align-items:center;gap:3px;height:14px;white-space:nowrap;
  font-family:var(--cond);font-style:italic;font-weight:800;font-size:9.5px;letter-spacing:.05em;color:var(--mut)}
.day .dn{font-size:17px;font-weight:900;line-height:1.2}
.day .dd{font-family:var(--cond);font-style:italic;font-weight:700;font-size:12px;color:var(--mut);line-height:1.2}
.day:active{transform:scale(.97)}
.day:focus-visible{outline:2px solid var(--ph);outline-offset:-2px}
/* 下辺のレール＝その日の位置づけ。灰＝終了した日／金＝A決勝がある日／赤＝LIVE中 */
.day::after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--line)}
.day.past{opacity:.6}
.day.past::after{background:var(--mut)}
.day.medal::after{background:linear-gradient(90deg,var(--gold-2),var(--gold))}
.day.medal .dnum{color:var(--gold)}
/* LIVEの日は DAY n が赤＋点滅ドット（DAY番号は消さないので並びの流れが途切れない） */
.day .dlive{width:6px;height:6px;border-radius:50%;background:var(--red);animation:blink 1.4s steps(2) infinite}
.day.live .dnum{color:var(--red)}
.day.live::after{background:var(--red)}
/* 選択中 */
.day.on{background:var(--panel);border-color:transparent;color:#fff;opacity:1;box-shadow:var(--shadow-card)}
.day.on .dnum{color:rgba(255,255,255,.72)}
.day.on .dd{color:var(--cyan-2)}
.day.on::after{background:rgba(255,255,255,.34)}
.day.on.medal .dnum{color:var(--gold-2)}
.day.on.medal::after{background:linear-gradient(90deg,var(--gold-2),var(--gold))}
.day.on.live .dnum{color:var(--red-2)}
.day.on.live::after{background:var(--red)}
/* 選択中の日の中身。長いラウンド名（準々決勝・順位別決勝）はここで受けるのでピルが窮屈にならない */
.dayinfo{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin-top:2px;padding:8px 11px;
  border-radius:var(--r-md);background:var(--surface-2);border:1px solid var(--line)}
.dayinfo.medal{background:var(--gold-soft);border-color:var(--gold-line)}
.dayinfo .di-tag{font-size:12.5px;font-weight:900;color:var(--ink);line-height:1.35}
.dayinfo .di-meta{display:flex;flex-wrap:wrap;align-items:center;gap:3px 9px;font-size:11px;font-weight:700;color:var(--sub)}
.dayinfo .di-time{font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--navy);white-space:nowrap}
.dayinfo .di-n{white-space:nowrap}
.dayinfo .di-med{font-size:10.5px;font-weight:800;color:var(--gold);background:var(--gold-soft);
  border:1px solid var(--gold-line);border-radius:6px;padding:1px 6px;white-space:nowrap}
.dayinfo.medal .di-med{background:var(--surface)}

.legend{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:10px 0 13px;font-size:11px;color:var(--sub)}
.legend i{width:10px;height:10px;border-radius:3px;display:inline-block;vertical-align:-1px;margin-right:5px}

.tt{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card)}
.row{display:flex;align-items:center;gap:11px;padding:11px 14px;border-top:1px solid var(--line-2);position:relative;transition:.12s}
.row:first-child{border-top:0}
.row .time{flex:none;width:82px}
.row .time .t{font-family:var(--cond);font-style:italic;font-weight:800;font-size:15px;color:var(--navy);line-height:1.1}
.row .time .e{font-family:var(--cond);font-style:italic;font-weight:700;font-size:10px;color:var(--mut)}
.row .ev{flex:1;min-width:0}
.row .ev .l1{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.row .row-fav{display:inline-flex;flex:none;transform:rotate(-10deg)}
.row .row-fav svg{filter:drop-shadow(0 1px 2px rgba(221,155,24,.45))}
.row .nm{font-size:11.5px;color:var(--sub);font-weight:600;margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .rd{flex:none;text-align:right}
.row .rd .r{font-size:12px;font-weight:800;color:var(--sub)}
.row .rd .n{font-family:var(--cond);font-style:italic;font-weight:700;font-size:10px;color:var(--mut)}
.row.medal{background:linear-gradient(90deg,var(--gold-soft),transparent 72%)}
.row.medal .time .t,.row.medal .rd .r{color:var(--gold)}
.row.medal::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:linear-gradient(180deg,var(--red),var(--gold))}
.row.done{opacity:.55}
.row.done.hasres{opacity:.9}
.row.live{background:linear-gradient(90deg,var(--ph-soft),transparent 72%)}
.row.live::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ph)}
.row .livetag{font-family:var(--latin);font-weight:800;font-size:9px;letter-spacing:.1em;color:#fff;background:var(--red);border-radius:4px;padding:2px 5px;animation:blink 1.4s steps(2) infinite}
@keyframes blink{50%{opacity:.45}}
.row .row-exp{flex:none;display:inline-flex;color:var(--mut);margin-left:-4px}
.row.open .row-exp{color:var(--ph-ink)}
.row.open{background:linear-gradient(90deg,rgba(43,100,216,.10),transparent 72%)}
/* 日程タブ：種目タップで開くインライン展開（ダークパネル＝レースカードと同じ配色で流用） */
.rc-inline{background:linear-gradient(170deg,#0d1c33,#0b1626);color:#fff;border-radius:0 0 14px 14px;
  padding:10px 12px 12px;margin:-2px 0 6px;box-shadow:inset 0 1px 0 rgba(255,255,255,.06);animation:fade .18s ease}
.rc-inline .pcmode{padding-top:2px}
.rc-inline .rc-res-note{margin:2px 0 8px}
.rc-prog{font-size:11px;line-height:1.5;color:rgba(255,255,255,.82);background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:8px;padding:7px 10px;margin:2px 0 10px}
.rc-prog b{display:block;font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;letter-spacing:.08em;color:var(--cyan-2);margin-bottom:2px}
.row .donetag{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;color:var(--mut)}
.row .donetag.res{color:var(--ph-ink);background:var(--surface-3);border-radius:5px;padding:2px 7px;font-style:normal}

.nowline{display:flex;align-items:center;gap:8px;height:20px;padding:0 14px;background:var(--surface)}
.nowline i{flex:1;height:1.5px;background:var(--red)}
.nowline span{flex:none;font-family:var(--cond);font-style:italic;font-weight:800;font-size:10.5px;color:#fff;
  background:var(--red);border-radius:20px;padding:1px 8px;letter-spacing:.02em}

.tt[data-ttl="compact"] .row{padding:8px 13px;gap:9px}
.tt[data-ttl="compact"] .row .nm{display:none}
.tt[data-ttl="compact"] .row .time{width:62px}

/* ====================== CHIPS FILTER ====================== */
.chips{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:13px}
.chip{font-family:var(--jp);font-size:12px;font-weight:700;border:1px solid var(--line);background:var(--surface);
  color:var(--sub);padding:7px 13px;border-radius:999px;cursor:pointer;transition:.13s;white-space:nowrap}
.chip:hover{border-color:var(--ph-line)}
.chip.on{background:var(--panel);color:#fff;border-color:transparent}

/* ====================== EVENT CARDS ====================== */
/* ---- 種目：部門別2列グリッド（男女が左右に並ぶ） ---- */
.evsec{margin:8px 0 18px}
.evsec-h{display:flex;align-items:center;gap:9px;margin:0 2px 9px}
.evsec-line{width:18px;height:2px;border-radius:2px;background:var(--mut);flex:none}
.evsec-lb{font-size:13px;font-weight:800;color:var(--sub);letter-spacing:.02em}
.evsec-n{font-size:10.5px;font-weight:700;color:var(--mut);margin-left:auto}
.evgrid{display:grid;grid-template-columns:1fr 1fr;gap:9px}
.evcols{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:start}
.evcol{display:flex;flex-direction:column;gap:9px;min-width:0}
/* ゼッケン型（フラット）：左に部門色のブロック＋大きなコード、右に白パネル */
.evm{position:relative;display:flex;align-items:stretch;overflow:hidden;text-align:left;appearance:none;cursor:pointer;font-family:inherit;
  border:1px solid var(--line);border-radius:14px;padding:0;background:var(--surface);
  box-shadow:0 1px 2px rgba(20,24,40,.05);transition:transform .12s,box-shadow .12s}
.evm.w{box-shadow:0 1px 2px rgba(20,24,40,.05)}
.evm:active{transform:scale(.975)}
.evm:hover{box-shadow:0 3px 8px rgba(20,24,40,.08)}
.evm.w:hover{box-shadow:0 3px 8px rgba(20,24,40,.08)}
/* 左：部門色のコード面。左角はカードに合わせて丸める。男子は「SCHEDULE」タグと同じ紺→青グラデ */
.evm-code{flex:none;width:52px;display:flex;align-items:center;justify-content:center;border-radius:13px 0 0 13px;
  background:var(--men-grad)}
.evm.w .evm-code{background:var(--women-grad)}
.evm-codetxt{font-family:var(--cond);font-style:italic;font-weight:900;font-size:21px;color:#fff;letter-spacing:.01em;
  text-align:center;line-height:1;white-space:nowrap}
/* OXM8+ / JOM8+ / JOW8+ は52px枠に収まらないので接頭辞(OX/JO)を上の行に分ける */
.evm-codetxt.two{font-size:17px;line-height:1.08;display:flex;flex-direction:column;align-items:center;gap:1px}
.evm-codetxt .evm-pfx{font-style:italic;font-size:11px;font-weight:800;letter-spacing:.06em;opacity:.85}
/* 男女を艇種で対応付けた2列。片方だけの種目はもう片方が空き枠になる */
.evrows{display:flex;flex-direction:column;gap:9px}
.evrow{display:grid;grid-template-columns:1fr 1fr;gap:9px;align-items:stretch}
.evrow > *{min-width:0}
.evnone{cursor:default;box-shadow:none;border:1px dashed var(--line-2);background:transparent}
.evnone:hover,.evnone:active{transform:none;box-shadow:none}
.evnone .evm-code{background:transparent;border-right:1px dashed var(--line-2)}
.evnone .evm-codetxt{color:var(--mut);opacity:.5;font-size:19px}
.evnone .evm-body{background:transparent}
.evnone .evm-nm{color:var(--mut);font-weight:700}
.evnone-t{font-size:11px;font-weight:700;color:var(--mut);opacity:.75}
@media (max-width:360px){.evm-codetxt{font-size:19px}.evm-codetxt.two{font-size:15px}}
.evm-body{flex:1;min-width:0;padding:7px 12px 7px 13px;display:flex;flex-direction:column;justify-content:center;gap:3px;background:var(--surface)}
.evm-top{display:flex;align-items:center;gap:7px;min-width:0}
.evm-nm{font-size:13px;font-weight:800;color:var(--ink);line-height:1.15;min-width:0;flex:1;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.evm-cv{color:var(--mut);flex:none}
.evm-foot{display:flex;align-items:baseline;gap:6px;margin-top:0}
.evm-cnt{font-size:12px;font-weight:700;color:var(--sub)}
.evm-cnt b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:21px;color:#1452d4;margin-right:3px;font-variant-numeric:tabular-nums}
.evm.w .evm-cnt b{color:#e01563}
.evm-head{margin-left:auto;font-size:11px;font-weight:700;color:var(--mut);flex:none}
.evm .opchip{padding:1px 5px;font-size:9px}
@media (max-width:360px){ .evgrid{grid-template-columns:1fr} }

.grid{display:grid;grid-template-columns:1fr;gap:10px}
.card{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);
  box-shadow:var(--shadow-card);overflow:hidden;transition:.15s}
.card .accbar{position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--men)}
.card.w .accbar{background:var(--women)}
.card .ctop{display:flex;align-items:center;gap:8px;padding:12px 14px 10px;cursor:pointer}
.card .nm2{font-size:13px;font-weight:800;line-height:1.2}
.card .cnt{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--navy);
  background:var(--surface-2);border-radius:6px;padding:2px 9px;flex:none}
.strip{display:flex;gap:6px;padding:0 14px 11px}
.cell{flex:1;border:1px solid var(--line);border-radius:9px;padding:6px 4px 7px;text-align:center;min-width:0}
.cell.off{background:var(--surface-2);color:var(--mut)}
.cell.on2{background:var(--ph-soft);border-color:var(--ph-line)}
.cell.fin{background:var(--gold-soft);border-color:var(--gold-line)}
.cell.donec{opacity:.5}
.cell .cd{font-size:11px;font-weight:800;line-height:1.15}
.cell .cd span{font-family:var(--cond);font-style:italic;font-weight:700;color:var(--mut);font-size:9.5px;display:block}
.cell .cr{font-size:10px;font-weight:700;margin-top:3px;color:var(--sub);line-height:1.15}
.cell.fin .cr{color:var(--gold)}
/* 1日に複数ラウンドある日（予選＋敗復／準決＋B決勝＋A決勝）を縦に列挙 */
.cell .crl{margin-top:3px;display:flex;flex-direction:column;gap:1px}
.cell .crr{display:flex;align-items:baseline;justify-content:center;gap:4px;line-height:1.3}
.cell .crt{font-family:var(--cond);font-style:italic;font-weight:700;font-size:9.5px;color:var(--mut)}
.cell .crn{font-size:10px;font-weight:700;color:var(--sub)}
.cell .crr.fin .crn{color:var(--gold)}
.cell .crr.fin .crt{color:var(--gold)}
.cell .crr.dn{opacity:.5}
.exp{font-family:var(--jp);font-size:11.5px;color:var(--ph-ink);font-weight:800;padding:2px 14px 12px;cursor:pointer;display:flex;align-items:center;gap:5px}
.card .entries{display:none;flex-direction:column;padding:0 14px 13px;border-top:1px dashed var(--line);margin-top:2px;padding-top:9px}
.card.open .entries{display:flex}
.enrow{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px solid var(--line-2)}
.enrow:first-child{border-top:0}
.enrow .enn{font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;color:var(--mut);width:22px;flex:none}
.enrow .ent{font-size:12px;font-weight:600;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.enrow .ena{font-size:11px;color:var(--mut);font-weight:600;flex:none;white-space:nowrap}
.enrow > svg{flex:none;color:var(--mut)}
.enrow.clk:active{opacity:.6}

/* エントリー行を開いた時の選手名簿（シート・氏名・カナ） */
.enroster{background:var(--surface-2);border:1px solid var(--line-2);border-radius:9px;
  padding:7px 11px;margin:3px 0 8px 30px;display:flex;flex-direction:column}
.enseat{display:flex;align-items:center;gap:9px;padding:4px 0;border-top:1px solid var(--line-2)}
.enseat:first-child{border-top:0}
.ens{font-family:var(--cond);font-weight:800;font-size:10.5px;color:var(--mut);
  width:22px;flex:none;text-align:center;background:var(--surface-3);border-radius:5px;padding:1px 0}
.enm{font-size:12.5px;font-weight:700;flex:none}
.enk{font-size:10px;color:var(--mut);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.enteam{align-self:flex-end;margin-top:6px;appearance:none;border:1px solid var(--line-2);background:none;
  color:var(--mut);font-family:var(--jp);font-size:10.5px;font-weight:700;border-radius:999px;padding:3px 11px;cursor:pointer}
.enteam:active{opacity:.6}

/* inline podium result */
.cresult{padding:2px 14px 13px}
.cresult .rt{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;letter-spacing:.05em;color:var(--gold);margin-bottom:6px}
.prow{display:flex;align-items:center;gap:9px;padding:4px 0}
.prow .pt{flex:1;font-size:12px;font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.prow .pn{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:var(--sub);flex:none}

/* ====================== RESULTS / MEDAL TABLE ====================== */
.mtable{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;box-shadow:var(--shadow-card)}
.mtrow{display:flex;align-items:center;gap:11px;padding:11px 14px;border-top:1px solid var(--line-2)}
.mtrow:first-child{border-top:0}
.mtrow.top{background:linear-gradient(90deg,var(--gold-soft),transparent 80%)}
.mtrow .rk{font-family:var(--cond);font-style:italic;font-weight:800;font-size:16px;color:var(--mut);width:22px;flex:none;text-align:center}
.mtrow.top .rk{color:var(--gold)}
.mtrow .tm{flex:1;font-size:13px;font-weight:800;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.mtrow .medals{display:flex;gap:9px;flex:none}
.mtrow .mc{display:flex;align-items:center;gap:3px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--sub)}
.mtrow .mc i{width:11px;height:11px;border-radius:50%;display:inline-block}
.mtrow .mc.g i{background:linear-gradient(160deg,#f6d676,#d9a318)}
.mtrow .mc.s i{background:linear-gradient(160deg,#e6ebf2,#aab4c2)}
.mtrow .mc.b i{background:linear-gradient(160deg,#e6b07a,#bb7a44)}
.mtrow .mc.zero{opacity:.3}
/* 団体別メダル 横棒グラフ（一般/浜寺杯/マスターズ 分割・メダル数/人数トグル） */
.mtoggle{display:flex;gap:0;background:var(--surface-3);border-radius:9px;padding:3px;margin:2px 0 14px}
.mtoggle button{flex:1;border:0;background:transparent;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--sub);padding:8px;border-radius:7px;cursor:pointer;-webkit-appearance:none;appearance:none}
.mtoggle button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 3px rgba(11,31,68,.12)}
.mbt-sec{margin-bottom:16px}
.mbt-divhd{display:flex;align-items:center;gap:8px;margin:0 0 8px}
.mbt-divtag{font-size:11px;font-weight:800;color:var(--sub);background:var(--surface-3);border:1px solid var(--line);border-radius:6px;padding:2px 9px}
.mbt-divtag.hm{background:#eafaf4;color:#0a8f63;border-color:#bfeada}
.mbt-divtag.ms{background:#f1ecfb;color:#7a4dd0;border-color:#ddd0f4}
.mbt-divhd .n{font-size:10px;font-weight:700;color:var(--mut)}
.mbt-chart{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:6px 12px;box-shadow:var(--shadow-card)}
.mbt-item{border-top:1px solid var(--line-2)}
.mbt-item:first-child{border-top:0}
.mbt-item.open{background:var(--surface-2);border-radius:8px}
.mbt-row{display:flex;align-items:center;gap:8px;padding:6px 0;cursor:pointer}
.mbt-row:active{opacity:.7}
.mbt-rk{flex:none;width:18px;text-align:center;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--mut)}
.mbt-item:first-child .mbt-rk{color:var(--gold)}
/* メダル内訳（種目＋金銀銅）：チーム名/バーをタップで展開 */
.mbt-detail{padding:2px 6px 9px 26px}
.mbt-medal-wrap{border-bottom:1px dashed var(--line-2)}
.mbt-medal-wrap:last-of-type{border-bottom:0}
.mbt-medal{display:flex;align-items:center;gap:8px;padding:5px 0;font-size:11.5px;cursor:pointer}
.mbt-medal:active{opacity:.7}
.mbt-medal svg{flex:none;color:var(--mut)}
/* メダル種目タップ→そのクルーの選手名（さらにタップでプロフィール） */
.mbt-math{display:flex;flex-wrap:wrap;gap:5px 12px;padding:2px 0 8px 20px}
.mbt-md{width:12px;height:12px;border-radius:50%;flex:none;box-shadow:inset 0 -1px 2px rgba(0,0,0,.18)}
.mbt-md.g{background:linear-gradient(160deg,#f6d676,#d9a318)}
.mbt-md.s{background:linear-gradient(160deg,#e6ebf2,#aab4c2)}
.mbt-md.b{background:linear-gradient(160deg,#e6b07a,#bb7a44)}
.mbt-mev{flex:1;min-width:0;font-weight:700;color:var(--ink)}
.mbt-mrk{flex:none;font-family:var(--cond);font-style:italic;font-weight:800;font-size:11px;color:var(--sub)}
.mbt-detlink{appearance:none;-webkit-appearance:none;border:0;background:none;cursor:pointer;font-family:inherit;font-size:11px;font-weight:800;color:var(--ph-ink);padding:5px 0 0}
.mbt-tm{flex:none;width:84px;font-size:11.5px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mbt-barwrap{flex:1;display:flex;align-items:center;gap:8px;min-width:0}
.mbt-bar{flex:1;display:flex;height:14px;min-width:22px;border-radius:4px;overflow:hidden;background:var(--surface-3)}
.mbt-seg{height:100%;position:relative;overflow:hidden}
.mbt-seg.g{background:linear-gradient(180deg,#f6d676,#d9a318)}
.mbt-seg.s{background:linear-gradient(180deg,#e6ebf2,#aab4c2)}
.mbt-seg.b{background:linear-gradient(180deg,#e6b07a,#bb7a44)}
/* テカリ：色帯全体（mbt-fill）を1本の2層シャイン（鋭い光の芯＋柔らかいハロ）が
   斜めに走り抜ける。配置順＝金→銀→銅の順に光が通り、銅だけのチームは銅から。
   left をバー幅基準で動かすので、長いバーでも必ず右端まで流れ切る。 */
.mbt-fill{position:relative;display:flex;height:100%;overflow:hidden}
.mbt-fill::after{content:"";position:absolute;top:0;bottom:0;left:-70px;width:58px;pointer-events:none;
  background:
    linear-gradient(to right,transparent,rgba(255,255,255,.18) 32%,rgba(255,255,255,.55) 50%,rgba(255,255,255,.18) 68%,transparent),
    linear-gradient(to right,transparent 41%,rgba(255,255,255,.95) 49%,#fff 50%,rgba(255,255,255,.95) 51%,transparent 59%);
  transform:skewX(-18deg);
  animation:mbtShine 3.4s cubic-bezier(.55,0,.3,1) infinite}
/* 金バーはシャインが抜けた直後にフワッと明るさが残る（余韻） */
.mbt-seg.g::after{content:"";position:absolute;inset:0;pointer-events:none;background:rgba(255,246,214,.5);
  opacity:0;animation:mbtAfterglow 3.4s ease-out infinite}
@keyframes mbtShine{0%,26%{left:-70px}72%,100%{left:calc(100% + 16px)}}
@keyframes mbtAfterglow{0%,26%{opacity:0}44%{opacity:.55}80%,100%{opacity:0}}
@media (prefers-reduced-motion:reduce){.mbt-fill::after,.mbt-seg.g::after{display:none}}
/* 数値欄は全行で同じ幅に固定する。チップ数（金銀銅の内訳数）が行ごとに違っても
   バーの土台幅が変わらない＝「メダル1個ぶんの幅」が全行で一致し、最多チームだけが右端に届く。 */
.mbt-val{flex:none;width:96px;display:flex;gap:7px;justify-content:flex-end}
@media (max-width:389px){.mbt-val{width:84px}}
.mbt-val .mc{display:flex;align-items:center;gap:3px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:var(--sub)}
.mbt-val .mc i{width:9px;height:9px;border-radius:50%;display:inline-block}
.mbt-val .mc.g i{background:linear-gradient(160deg,#f6d676,#d9a318)}
.mbt-val .mc.s i{background:linear-gradient(160deg,#e6ebf2,#aab4c2)}
.mbt-val .mc.b i{background:linear-gradient(160deg,#e6b07a,#bb7a44)}

.medalcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:12px 14px;box-shadow:var(--shadow-card)}
.medalcard+.medalcard{margin-top:9px}
/* 決勝の結果（全種目）の区分小見出し（浜寺杯 / マスターズ） */
.fin-divhd{font-size:12px;font-weight:800;color:var(--sub);margin:16px 2px 8px;display:flex;align-items:center;gap:8px}
.fin-divhd::before{content:"";width:14px;height:2px;border-radius:2px;background:var(--line-strong,#c7d0de)}
.medalcard .mh{display:flex;align-items:center;gap:8px;margin-bottom:8px}
.medalcard .mh .nm2{font-size:12.5px;font-weight:800}
.medalcard .mh .when{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;color:var(--mut);flex:none}

/* ====================== TEAMS ====================== */
.search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:12px 14px;box-shadow:var(--shadow-card);margin-bottom:12px}
.search svg{flex:none;color:var(--mut)}
.search input{flex:1;border:0;outline:0;font:inherit;font-size:15px;background:transparent;color:var(--ink)}
.search input::placeholder{color:var(--mut)}
/* ホーム：その場でチーム検索＆お気に入り登録できる検索欄 */
.search.hsearch{margin:13px 0 12px}
.hsearch-clear{appearance:none;border:0;background:var(--surface-3);color:var(--mut);width:22px;height:22px;border-radius:50%;
  display:flex;align-items:center;justify-content:center;cursor:pointer;flex:none}
.team-sort{display:flex;align-items:center;gap:7px;margin-top:14px;flex-wrap:wrap}
.team-sort-lbl{font-size:11px;font-weight:800;color:var(--mut);margin-right:1px}
.tgroup+.tgroup{margin-top:16px}
/* 五十音の行見出し（あ・か・さ…）。部門ブロックの中で使う。 */
.krow-h{display:flex;align-items:center;gap:8px;margin:12px 2px 6px;font-weight:900;font-size:12px;color:var(--mut)}
.krow-h::before{content:"";width:10px;height:2px;border-radius:2px;background:var(--mut);opacity:.55}
.krow-h::after{content:"";flex:1;height:1px;background:currentColor;opacity:.14}
.tgroup-h{display:flex;align-items:center;gap:9px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;
  letter-spacing:.04em;color:var(--sub);margin:2px 2px 10px;text-transform:uppercase}
.tgroup-h::before{content:"";width:14px;height:3px;border-radius:2px;background:var(--panel)}
.tgroup-h .c{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11px;color:var(--ph-ink);background:var(--ph-soft);border-radius:5px;padding:1px 8px}
.tlist{display:flex;flex-wrap:wrap;gap:7px}
.tbtn{font-family:var(--jp);font-size:12px;font-weight:600;border:1px solid var(--line);background:var(--surface);
  color:var(--ink);padding:8px 12px;border-radius:var(--r-sm);cursor:pointer;transition:.12s;display:inline-flex;align-items:center;gap:6px}
.tbtn:hover{border-color:var(--ph-line)}
.tbtn b{font-family:var(--cond);font-style:italic;color:var(--mut);font-weight:700}
.tbtn .fav-s{color:var(--red);display:inline-flex}
.tbtn-nm{font-weight:700}
.tbtn-stats{display:inline-flex;align-items:baseline;gap:6px;padding-left:2px}
.ts-x{font-size:9px;font-weight:700;color:var(--mut);white-space:nowrap}
.ts-x b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;margin-right:1px}
.ts-x.ev b{color:var(--sub)}
.ts-x.cr b{color:var(--men)}
.ts-x.pp b{color:var(--gold)}
.favsec{margin-bottom:6px}
.favtitle{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:800;color:var(--sub);margin:4px 2px 9px}
.favtitle svg{color:var(--red)}

.tcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-pop);overflow:hidden;margin-top:14px}
.tcard .th{background:var(--panel);color:#fff;padding:15px 16px;position:relative;overflow:hidden}
.tcard .th .lanes{position:absolute;inset:0;pointer-events:none;opacity:.5;background:repeating-linear-gradient(116deg,transparent 0 28px,rgba(255,255,255,.05) 28px 29px)}
.tcard .th h3{margin:0;font-size:20px;font-weight:900;position:relative}
.tcard .th .meta{font-size:11.5px;opacity:.8;margin-top:2px;font-weight:600;position:relative;display:flex;align-items:center;gap:8px}
.tcard .th .thbtns{position:absolute;top:12px;right:12px;display:flex;align-items:center;gap:4px}
.tcard .th .thbtns .starbtn{color:rgba(255,255,255,.85)}
.tcard .th .thbtns .starbtn.on{color:var(--red)}
.tcard .th .closebtn{appearance:none;border:0;background:rgba(255,255,255,.14);color:#fff;width:40px;height:40px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .1s,background .12s}
.tcard .th .closebtn:active{transform:scale(.86);background:rgba(255,255,255,.26)}
.tcard .th .thbtns{z-index:3}
.tbody{padding:5px 14px 13px}
.trow{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--line-2)}
.trow:first-child{border-top:0}
.trow .tcode{flex:none}
.trow .tnm{flex:1;font-size:11.5px;font-weight:600;color:var(--sub);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trow .tlabel{font-size:11px;color:var(--mut);font-weight:600;flex:none}
.trow .tday{font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;color:var(--ph-ink);flex:none;white-space:nowrap}
.trow.clk{cursor:pointer}
.trow>svg{flex:none;color:var(--mut)}
/* チーム詳細：種目を開くとそのチームの出場選手を表示 */
/* 大会後：種目ごとの最終結果チップ（決勝はメダル・着順、他は「◯◯敗退」） */
.tresrow{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin:-2px 0 10px}
.treslbl{font-size:10px;font-weight:800;color:var(--mut);letter-spacing:.04em;flex:none}
.tres{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:800;border-radius:8px;padding:4px 11px;line-height:1.3}
.tres .trescrew{font-weight:900;opacity:.75;margin-right:1px}
.tres .tresmedal{font-style:normal;font-size:14px;line-height:1}
.tres.gold{background:linear-gradient(135deg,#f5d778,#d9a92a);color:#4a3506;box-shadow:inset 0 0 0 1px rgba(74,53,6,.18)}
.tres.silver{background:linear-gradient(135deg,#eef1f6,#c9d1dc);color:#48505f}
.tres.bronze{background:linear-gradient(135deg,#e9c398,#cf9260);color:#5a3413}
.tres.af{background:#fbf0d3;color:#8a6a12}
.tres.bf{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#7c5c07}
.tres.sf{background:#ece6fb;color:#6238cf}
.tres.cr{background:var(--surface-3);color:#5c6a84}
.tres.out{background:var(--surface-3);color:var(--mut)}
.trow-ros{padding:2px 0 12px 2px;border-top:1px dashed var(--line-2);margin-top:-1px}
.trow-crew{padding:6px 0 2px}
.trow-crew+.trow-crew{border-top:1px dotted var(--line-2);margin-top:4px}
.trow-crewlbl{font-size:11px;font-weight:800;color:var(--ph-ink);margin:4px 0 6px}
.trow-seat{display:flex;align-items:center;gap:9px;padding:5px 0}
.trow-seat .trow-s{flex:none;width:20px;height:20px;border-radius:50%;background:var(--panel);color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center}
.trow-seat .trow-nm{font-size:14px;font-weight:700;color:var(--ink)}
.trow-evbtn{appearance:none;margin-top:9px;border:1px solid var(--line);background:var(--surface);color:var(--ph-ink);font-size:11.5px;font-weight:700;border-radius:999px;padding:6px 13px;cursor:pointer}
.trow-evbtn:active{opacity:.6}

/* ---- チーム詳細：種目ごとの土日×午前午後カレンダー。決勝に近いラウンドほど鮮やかに ---- */
/* チーム詳細：種目×5日のマトリクス。列＝大会の全日程（ヘッダーは上部に1回・スクロール中も追従） */
.tmx-hdr{display:grid;grid-template-columns:30px repeat(5,1fr);gap:4px;margin:0 0 10px;
  position:sticky;top:6px;z-index:5;background:var(--bg);padding:5px 0 5px;border-radius:8px}
/* 案K「時刻表」（2026-08 採用）：パステルの箱をやめ、点＋文字＋罫線で見せる。
   点の色＝ラウンドの意味（予選・準々=水色 / 準決=紫 / A決勝=金 / B決勝=淡い金 / 順位決定=グレー）。
   金で塗るのはA決勝の文字だけ。 */
.tmx-hd{display:flex;align-items:baseline;justify-content:center;gap:3px;padding:6px 0}
.tmx-hdr{background:var(--surface-2);border-bottom:2px solid var(--navy);border-radius:8px 8px 0 0;padding:0}
.tmx-hd b{font-size:11px;font-weight:900;color:var(--ink)}
.tmx-hd i{font-family:var(--cond);font-style:italic;font-weight:700;font-size:9.5px;color:var(--mut)}
.tmx-hd.sat b{color:#1a4fd0}
.tmx-hd.sun b{color:#d11f5a}
.tmx{display:grid;grid-template-columns:30px repeat(5,1fr);gap:0;margin:0 0 11px;align-items:stretch}
.tmx-hlbl{width:30px}
.tmx-c{display:flex;flex-direction:column;justify-content:center;gap:3px;min-width:0;overflow:hidden;
  border-left:1px solid var(--line-2);padding:3px 0 3px 6px;min-height:34px}
.tmx-c.off{opacity:1}
.tmx-none{text-align:left;font-size:11px;font-weight:700;color:var(--line)}
.tmx-r{display:flex;flex-direction:row;align-items:baseline;gap:3px 4px;min-width:0;white-space:nowrap;color:var(--sub);
  flex-wrap:wrap;row-gap:0}   /* 「C–E決勝 7:00–7:20」のような長い行はセル内で時刻だけ2行目に折り返す */
.tmx-r::before{content:"";flex:none;width:6px;height:6px;border-radius:50%;align-self:center;background:var(--dot,#9aa1ad)}
.tmx-r i{font-style:normal;font-size:9px;font-weight:900;line-height:1;white-space:nowrap}
.tmx-r b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10.5px;line-height:1.1;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--ink)}
.tmx-r.heat{--dot:#0fb5cf}
.tmx-r.cr{--dot:#9aa1ad}
.tmx-r.semi{--dot:#6238cf}
.tmx-r.bfinal{--dot:#caa53d}
.tmx-r.afinal{--dot:#d99a16;color:#8a6410}
.tmx-r.afinal b{color:#523808}
/* 点の凡例（マトリクスの下に1行） */
.tmx-leg{display:flex;flex-wrap:wrap;gap:10px;margin:-4px 2px 10px;font-size:9.5px;font-weight:700;color:var(--mut)}
.tmx-leg span{display:inline-flex;align-items:center;gap:4px}
.tmx-leg i{width:6px;height:6px;border-radius:50%;display:inline-block}
.tmx-note{margin:2px 2px 0;font-size:10.5px;line-height:1.9;color:var(--mut)}
.tmx-note b{color:var(--sub)}
@media (max-width:374px){
  .tmx-hdr,.tmx{grid-template-columns:0 repeat(5,1fr)}
  .tmx-hlbl{width:0}
  .tmx-r b{font-size:9px}
}
.tsched{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin:0 0 11px}
.tsc{background:var(--surface);border:1px solid var(--line-2);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0}
.tsc.norace{background:var(--surface-2)}
/* 各マスに常に「土 午前」等を表示。日本の暦どおり 土=青／日=赤 */
.tsc-h{display:flex;align-items:center;justify-content:center;gap:3px;font-size:9.5px;font-weight:800;color:var(--sub);padding:1px 0 2px}
.tsc-d{display:inline-flex;align-items:center;justify-content:center;width:15px;height:15px;border-radius:5px;font-size:10px;font-weight:800}
.tsc-d.sat{background:#e9f0ff;color:#1a4fd0}
.tsc-d.sun{background:#ffe6ee;color:#d11f5a}
.tsc-none{text-align:center;font-size:12px;font-weight:700;color:var(--mut);padding:5px 0 6px}
.tsc-r{border-radius:6px;padding:5px 2px;display:flex;flex-direction:row;justify-content:center;align-items:baseline;gap:4px;min-width:0}
.tsc-r b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.tsc-r i{font-style:normal;font-size:10px;font-weight:700;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* 予選＝クールなエメラルド／CR(敗者戦)＝メダル圏外のスレート → 準決＝ディープバイオレット → B決勝＝ブラッシュドゴールド → A決勝＝メタリックシャンパンゴールド */
.tsc-r.heat{background:linear-gradient(135deg,#e4f6ec,#cdeedd);color:#067a53;box-shadow:inset 0 0 0 1px rgba(6,122,83,.12)}
.tsc-r.cr{background:linear-gradient(135deg,#eef1f6,#dde3ed);color:#5c6a84;box-shadow:inset 0 0 0 1px rgba(92,106,132,.14)}
.tsc-r.semi{background:linear-gradient(135deg,#ece6fb,#ddd2f6);color:#6238cf;box-shadow:inset 0 0 0 1px rgba(98,56,207,.14)}
.tsc-r.bfinal{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#866008;box-shadow:inset 0 0 0 1px rgba(134,96,8,.18)}
.tsc-r.afinal{background:linear-gradient(135deg,#f0cd6e,#c2901a);color:#523808}
.tsc-r.afinal b,.tsc-r.afinal i{opacity:1}

/* お気に入りクルーの勝ち上がり状況チップ（karal実結果ベース。qualifyが取れた時だけ緑＝進出扱い） */
.progchip{display:inline-flex;align-items:center;font-size:10.5px;font-weight:700;border-radius:6px;padding:3px 8px;white-space:nowrap;
  background:linear-gradient(135deg,#eef1f6,#dde3ed);color:#5c6a84;box-shadow:inset 0 0 0 1px rgba(92,106,132,.14)}
.progchip.go{background:linear-gradient(135deg,#e4f6ec,#cdeedd);color:#067a53;box-shadow:inset 0 0 0 1px rgba(6,122,83,.12)}
/* 進出チップを行き先カラーに（日程セルと統一）：準決=紫 / B決勝=黄 / A決勝=金 / 敗者戦=グレー */
.progchip.prog-semi{background:linear-gradient(135deg,#ece6fb,#ddd2f6);color:#6238cf;box-shadow:inset 0 0 0 1px rgba(98,56,207,.14)}
.progchip.prog-bfinal{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#866008;box-shadow:inset 0 0 0 1px rgba(134,96,8,.18)}
.progchip.prog-afinal{background:linear-gradient(135deg,#f0cd6e,#c2901a);color:#523808;box-shadow:inset 0 0 0 1px rgba(82,56,8,.22)}
.progchip.prog-cr{background:linear-gradient(135deg,#eef1f6,#dde3ed);color:#5c6a84;box-shadow:inset 0 0 0 1px rgba(92,106,132,.14)}
/* 結果タブ：チーム別 進出状況 */
.pgt-hint{font-size:11px;line-height:1.8;color:var(--mut);margin:2px 0 10px}
.pgt-item{background:var(--surface);border:1px solid var(--line);border-radius:12px;margin-bottom:7px;overflow:hidden}
.pgt-item:first-child .pgt-rk{color:var(--gold)}
.pgt-row{display:flex;align-items:center;gap:9px;padding:10px 12px}
.pgt-rk{flex:none;width:22px;text-align:center;font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--mut)}
.pgt-tm{flex:none;width:88px;font-size:12.5px;font-weight:800;color:var(--ink);line-height:1.25;cursor:pointer}
.pgt-tm i{display:block;font-style:normal;font-size:9.5px;font-weight:700;color:var(--mut)}
.pgt-tm.on{color:var(--ph-ink)}
.pgt-tm.on i{color:var(--ph-ink)}
.pgt-chips{flex:1;display:flex;flex-wrap:wrap;gap:4px;justify-content:flex-end}
.pgt-out{opacity:.6}
/* 進出チップをタップ可能に＋クルー種目・選手名のドリルダウン */
.pgt-chips .progchip{cursor:pointer;border:0;margin:0;font-family:inherit;-webkit-appearance:none;appearance:none}
.pgt-chips .progchip:active{transform:scale(.94)}
.pgt-chips .progchip.on{box-shadow:inset 0 0 0 2px currentColor}
.pgt-drill{padding:0 12px 5px}
.pgt-crew{border-top:1px dashed var(--line-2)}
.pgt-crewhd{display:flex;align-items:center;gap:8px;padding:8px 2px;cursor:pointer}
.pgt-crewhd:active{opacity:.7}
.pgt-cev{flex:1;min-width:0;font-size:12px;font-weight:700;color:var(--ink)}
.pgt-cev i{font-style:normal;font-weight:800;color:var(--men);margin-left:5px;font-size:11px}
.pgt-ctime{flex:none;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--ink);letter-spacing:.01em}
.pgt-crewhd svg{flex:none;color:var(--mut)}
/* チーム名タップの「全種目」一覧内：各種目の行き先（A決勝/準決など）を小さく色付きで表示 */
.pgt-btag{flex:none;font-size:9.5px;font-weight:800;border-radius:5px;padding:2px 6px;white-space:nowrap}
.pgt-btag.prog-semi{background:linear-gradient(135deg,#ece6fb,#ddd2f6);color:#6238cf}
.pgt-btag.prog-bfinal{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#866008}
.pgt-btag.prog-afinal{background:linear-gradient(135deg,#f0cd6e,#c2901a);color:#523808}
.pgt-btag.prog-cr{background:linear-gradient(135deg,#eef1f6,#dde3ed);color:#5c6a84}
.pgt-btag.pgt-out{background:var(--surface-3);color:var(--mut)}
.pgt-ath{display:flex;flex-wrap:wrap;gap:5px 12px;padding:2px 2px 10px}
.pgt-seat{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--ink)}
.pgt-seat b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;color:var(--mut);min-width:13px;text-align:center}
.pgt-noath{font-size:11px;color:var(--mut);padding:2px 0 8px}
.pgt-detlink{display:block;appearance:none;-webkit-appearance:none;border:0;background:none;cursor:pointer;font-family:inherit;
  font-size:11.5px;font-weight:800;color:var(--ph-ink);padding:8px 2px 4px;border-top:1px solid var(--line-2);margin-top:2px;width:100%;text-align:left}

.empty{color:var(--mut);font-size:12.5px;padding:24px 10px;text-align:center;line-height:1.7}
.starbtn{appearance:none;border:0;background:none;cursor:pointer;padding:11px;margin:-7px;line-height:0;color:var(--mut);transition:transform .1s,color .12s;touch-action:manipulation;-webkit-tap-highlight-color:transparent;display:inline-flex;align-items:center;justify-content:center}
.starbtn:hover{color:var(--red)}
.starbtn:active{transform:scale(.8)}
.starbtn.on{color:var(--red)}

/* ====================== BOTTOM NAV ====================== */
/* 浮遊ピル型ナビ（note風）：画面下から浮かせた丸いカプセル。選択中は淡いグレーの丸背景＋黒 */
.bnav{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(10px + env(safe-area-inset-bottom));z-index:50;
  display:flex;align-items:center;gap:2px;width:auto;max-width:min(508px,calc(100vw - 20px));
  padding:6px 8px;border-radius:999px;
  background:rgba(255,255,255,.92);backdrop-filter:blur(18px) saturate(150%);
  border:1px solid var(--line);
  box-shadow:0 10px 34px rgba(20,24,40,.16),0 2px 8px rgba(20,24,40,.07)}
.bnav button{appearance:none;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:2px;
  padding:7px 13px;color:var(--mut);font-family:var(--jp);transition:.13s;border-radius:999px;min-width:0}
@media (max-width:374px){.bnav button{padding:6px 9px}}
.bnav button .bl{font-size:9.5px;font-weight:800;letter-spacing:0;white-space:nowrap}
.bnav button svg{width:20px;height:20px}
.bnav button.on{color:#111318;background:var(--surface-3)}
/* アンケートタブを紫系で差別化（誘導率アップ）：非選択でも文字・アイコンを紫に＋淡い紫地 */
.bnav button.nav-survey,.app[data-dark="1"] .bnav button.nav-survey{color:#7a4dd0;background:rgba(122,77,208,.09)}
.bnav button.nav-survey.on,.app[data-dark="1"] .bnav button.nav-survey.on{color:#6a34c9;background:rgba(122,77,208,.15)}
.bnav button .nav-live{position:relative}
.bnav button .nav-live .ld{position:absolute;top:-1px;right:-3px;width:7px;height:7px;border-radius:50%;background:var(--red);border:1.5px solid #fff}

.view{animation:slidein .28s ease}
@keyframes slidein{from{transform:translateY(8px)}to{transform:none}}

footer{margin-top:24px;color:var(--mut);font-size:10.5px;text-align:center;line-height:1.8;padding:0 6px}
/* アンケート（Googleフォーム埋め込み） */
.survey-intro{font-size:12.5px;line-height:1.9;color:var(--sub);margin:16px 0 12px}
.survey-intro b{color:var(--ink)}
.survey-open{display:block;margin-top:6px;font-weight:800;color:var(--ph-ink);text-decoration:none}
.survey-frame{border-radius:16px;overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:0 6px 20px rgba(11,31,68,.06)}
/* フォーム全体が確実に収まる高さにして iframe 内側のスクロールを無くす（内外二重スクロールだと引っかかる）。
   実測：フォーム高さは375pxで約1,780px／320pxで約2,027px。端末のフォント拡大でも収まるよう余裕をとる。
   ※ 余白は送信ボタンより下に出るだけで、記入→送信の導線には現れない。 */
.survey-frame iframe{width:100%;height:2400px;border:0;display:block}
footer b{color:var(--sub)} footer a{color:var(--ph-ink)}

/* ====== 触り心地（マイクロインタラクション）====== */
.hcard,.card,.chip,.nextrow,.dayseg button,.cell{transition:transform .14s cubic-bezier(.2,.8,.3,1),box-shadow .14s ease}
.hcard:active,.card:active{transform:scale(.985)}
.chip:active{transform:scale(.93)}
.nextrow:active{transform:scale(.99)}
@media (prefers-reduced-motion:reduce){
  .hcard,.card,.chip,.nextrow{transition:none}
  .countcard,.countcard .cglow,.countcard .ccolon,.countcard .cu b,.countcard .cdot{animation:none!important}
}

/* ====== 見逃しレーダー（お気に入り発艇カウントダウン常駐バー）====== */
.favradar{position:sticky;top:8px;z-index:40;display:flex;align-items:center;gap:7px;
  margin:10px 0 2px;padding:9px 12px;border-radius:var(--r-md);cursor:pointer;
  background:var(--ph-soft);border:1px solid var(--ph-line);box-shadow:var(--shadow-card);
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.favradar .fr-team{font-size:12px;font-weight:800;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.favradar .fr-round{font-size:11px;font-weight:700;color:var(--sub);flex:none}
.favradar .fr-more{font-size:9.5px;font-weight:800;color:var(--ph-ink);background:#fff;border:1px solid var(--ph-line);border-radius:999px;padding:1px 7px;flex:none}
.favradar .fr-eta{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--ph-ink);flex:none}
.favradar .fr-x{appearance:none;border:0;background:none;color:var(--mut);padding:3px;display:flex;cursor:pointer;flex:none}
.favradar.soon{background:#ffe7ea;border-color:#ffc8cf;animation:radarPulse 1.4s ease-out infinite}
.favradar.soon .fr-eta{color:var(--red);font-size:17px}
@keyframes radarPulse{0%{box-shadow:0 0 0 0 rgba(255,46,77,.45)}100%{box-shadow:0 0 0 14px rgba(255,46,77,0)}}

/* ====== クルー・シートマップ（艇を真上から見る）====== */
.boatmap{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  padding:8px 8px 9px;margin-bottom:9px}
.boatmap svg{display:block}
.boatmap .bm-on{filter:drop-shadow(0 0 5px var(--ph))}
.bm-card{display:flex;align-items:baseline;gap:9px;min-height:26px;padding:5px 8px 0;flex-wrap:wrap}
.bm-seat{font-family:var(--cond);font-weight:800;font-size:11px;color:var(--ph-ink);
  background:var(--ph-soft);border:1px solid var(--ph-line);border-radius:5px;padding:1px 8px;flex:none}
.bm-name{font-size:14px;font-weight:800;color:var(--ink)}
.bm-kana{font-size:10.5px;font-weight:600;color:var(--mut)}
.bm-hint{font-size:10.5px;font-weight:600;color:var(--mut)}
.bm-note{font-size:9px;color:var(--mut);padding:4px 8px 0;font-weight:600}

/* ====== 発艇表ビッグカード（直射日光対応・全画面）====== */
.rcwrap{position:fixed;inset:0;z-index:80;background:rgba(5,10,24,.55);display:flex;align-items:flex-end;justify-content:center;animation:fade .14s ease}
@keyframes fade{from{opacity:0}}
.rcard{position:relative;width:100%;max-width:520px;max-height:94vh;overflow:hidden;display:flex;flex-direction:column;
  background:linear-gradient(170deg,#0d1c33 0%,#0b1626 65%);color:#fff;border-radius:18px 18px 0 0;
  animation:rcup .28s cubic-bezier(.2,.85,.25,1)}
@keyframes rcup{from{transform:translateY(100%)}}
.rcard .lanes{position:absolute;inset:0;opacity:.5;pointer-events:none;border-radius:18px 18px 0 0;
  background:repeating-linear-gradient(116deg,transparent 0 34px,rgba(255,255,255,.05) 34px 35px)}
/* ヘッダー（種目名・ラウンド）は固定サイズのまま、クルー一覧だけが専用の枠内でスクロール。前後ナビは常に下に固定表示。
   一覧は一度に10クルー分の高さまでに抑え、画面いっぱいにならないようにする（カード上部に必ず余白ができる） */
.rc-scroll{flex:1;min-width:0;min-height:0;max-height:max(420px, calc(76vh - 190px));overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;
  padding:12px 18px 4px} /* カード全体で画面の約3/4まで届く高さ（ヘッダー＋下部ナビの分を差し引き） */
/* 種目モード：内容の長さ（予選/敗者戦/…で違う）に関わらず高さを固定し、カード上端を常に揃える
   （flex:1 のままだと height が flex-basis に負けて内容次第で伸縮するため flex を解除） */
.rcard.evmode .rc-scroll{flex:0 0 auto;height:max(420px, calc(76vh - 190px))}
.rc-x{position:absolute;top:12px;right:12px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center}
.rc-share{position:absolute;top:12px;right:58px;z-index:2;width:38px;height:38px;border-radius:50%;border:0;cursor:pointer;
  background:rgba(255,255,255,.14);color:#fff;display:flex;align-items:center;justify-content:center}
.rc-share-toast{position:absolute;top:19px;right:100px;z-index:2;background:rgba(0,0,0,.78);color:#fff;font-size:11px;font-weight:700;
  padding:0 10px;height:24px;line-height:24px;border-radius:7px;white-space:nowrap;animation:fade .15s ease}
.rc-hd{position:relative;flex:none;padding:18px 18px 0;padding-right:90px}
.rc-badges{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.rc-st{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11px;letter-spacing:.08em;
  color:var(--cyan-2);border:1px solid rgba(255,255,255,.3);border-radius:5px;padding:2px 8px}
.rc-st.done{color:rgba(255,255,255,.6)}
.rc-codeband{display:flex;align-items:center;gap:12px;margin-top:9px;padding:11px 14px;border-radius:10px;
  background:linear-gradient(100deg,#0b1f44 0%,#2a64d8 65%,rgba(42,100,216,.55) 100%)}
.rc-codeband.w{background:linear-gradient(100deg,#8a2049 0%,#ff4d92 65%,rgba(255,77,146,.55) 100%)}
.rc-codeband.hm{background:linear-gradient(100deg,#0a7a54 0%,#17b47e 65%,rgba(23,180,126,.55) 100%)}
.rc-codeband.ms{background:linear-gradient(100deg,#5b2ea6 0%,#8a5be0 65%,rgba(138,91,224,.55) 100%)}
.rc-codebig{font-family:var(--cond);font-style:italic;font-weight:900;font-size:30px;line-height:.85;color:#fff;flex:none}
.rc-name{font-size:15px;font-weight:800;line-height:1.3;min-width:0}
.rc-round{font-size:13px;font-weight:700;color:rgba(255,255,255,.78);margin-top:2px}
.rc-time{font-family:var(--cond);font-style:italic;font-weight:800;font-size:38px;line-height:1.1;margin-top:4px;color:#fff}
.rc-blk{position:relative;margin-top:15px}
.rc-sec{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10.5px;letter-spacing:.1em;color:var(--cyan-2);margin-bottom:7px}
.rc-podium{background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:7px 12px}
.rc-podium .prow .pt{color:#fff}
.rc-podium .prow .pn{color:rgba(255,255,255,.75)}
.rc-list{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:2px 12px;overflow:hidden}
.rc-row{display:flex;align-items:center;gap:8px;padding:8px 12px;margin:0 -12px;border-top:1px solid rgba(255,255,255,.1);border-left:3px solid var(--men)}
.rc-row:first-child{border-top:0}
.rc-row.clk{cursor:pointer}
.rc-row.clk:active{opacity:.65}
.rc-row.alt{background:rgba(255,255,255,.03)}
.rc-row.w{border-left-color:var(--women)}
.rc-row.w .rc-n{color:var(--women)}
.rc-row.fav{background:linear-gradient(90deg,rgba(244,194,68,.18),rgba(244,194,68,.04));border-left-color:var(--gold-2)}
.rc-row.fav .rc-n{color:var(--gold-2)}
.rc-n{font-family:var(--cond);font-style:italic;font-weight:800;font-size:16px;color:var(--men);width:24px;flex:none;text-align:center}
.rc-team{font-size:14px;font-weight:800;color:#fff;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}
.rc-sub{font-size:10.5px;font-weight:600;color:rgba(255,255,255,.62);flex:none}
/* 結果行：選手名＋所属を縦積みにして、どちらも略さずフル表示する */
.rc-ident{flex:1;min-width:0;display:flex;flex-direction:column;justify-content:center}
.rc-ident .rc-team{flex:none;white-space:normal;overflow:visible;text-overflow:clip;line-height:1.3}
.rc-ident .rc-sub{white-space:normal;line-height:1.3;margin-top:1px}
.rc-row > svg{flex:none;color:rgba(255,255,255,.5)}
.rc-list.w .rc-row{border-left-color:var(--women)}
.rc-list.w .rc-n{color:var(--women)}
/* 棄権（出漕取消） */
.rc-row.scratch{opacity:.5;border-left-color:rgba(255,255,255,.2)!important}
.rc-row.scratch .rc-team{text-decoration:line-through;text-decoration-thickness:1.5px;color:rgba(255,255,255,.75)}
.rc-dnf{flex:none;font-family:var(--latin);font-weight:800;font-size:9px;letter-spacing:.06em;color:#fff;background:var(--red);border-radius:4px;padding:1px 6px}
.trow-crew.scratch{opacity:.55}
.trow-crew.scratch .trow-nm{text-decoration:line-through}
.rc-roster{background:rgba(0,0,0,.22);border-radius:9px;padding:7px 11px;margin:2px 0 8px;display:flex;flex-direction:column}
.rc-seat{display:flex;align-items:center;gap:9px;padding:4px 0;border-top:1px solid rgba(255,255,255,.08)}
.rc-seat:first-child{border-top:0}
.rc-s{font-family:var(--cond);font-weight:800;font-size:10.5px;color:rgba(255,255,255,.65);
  width:22px;flex:none;text-align:center;background:rgba(255,255,255,.12);border-radius:5px;padding:1px 0}
.rc-nm{font-size:12.5px;font-weight:700;color:#fff}
.rc-k{font-size:10px;color:rgba(255,255,255,.55);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-teambtn{align-self:flex-end;margin-top:6px;appearance:none;border:1px solid rgba(255,255,255,.3);background:none;
  color:rgba(255,255,255,.85);font-family:var(--jp);font-size:10.5px;font-weight:700;border-radius:999px;padding:3px 11px;cursor:pointer}
.rc-nav{position:relative;flex:none;display:flex;gap:9px;padding:14px 18px calc(14px + env(safe-area-inset-bottom,0px));
  border-top:1px solid rgba(255,255,255,.1)}
.rc-nav button{flex:1;height:50px;border-radius:11px;border:0;background:var(--men-grad);
  color:#fff;font-family:var(--jp);font-weight:800;font-size:15px;cursor:pointer}
.rc-nav button.w{background:var(--women-grad)}
.rc-nav button:disabled{opacity:.35;cursor:default}
.rc-navhint{font-style:normal;font-family:var(--cond);font-weight:800;font-size:14px;letter-spacing:.02em;margin:0 4px;padding:3px 9px;border-radius:6px;background:#fff;color:#15326e;vertical-align:1px}
.rc-nav button.w .rc-navhint{color:#cc1f38}
.rc-nav button:active:not(:disabled){filter:brightness(.88)}
@media (prefers-reduced-motion:reduce){.favradar.soon{animation:none}.rcard{animation:none}.rcwrap{animation:none}}

/* ====== 種目カード→ビッグカード化（タップ誘導） ====== */
.card.clk{cursor:pointer}
.exp{justify-content:space-between}
.exp > svg{color:var(--ph)}

/* ====== ビッグカード：種目モードのラウンド一覧（表示のみ・1行固定） ====== */
.rc-rounds{display:flex;flex-wrap:nowrap;gap:5px;margin-top:11px}
.rc-rnd{display:flex;flex-direction:column;gap:1px;flex:1;min-width:0;align-items:center;cursor:pointer;
  appearance:none;-webkit-appearance:none;font-family:inherit;
  background:rgba(255,255,255,.06);border:0;border-radius:4px;padding:6px 2px;text-align:center}
.rc-rnd:active{transform:scale(.95)}
.rc-rnd b{font-size:10.5px;font-weight:800;color:rgba(255,255,255,.6);white-space:nowrap;font-style:italic;letter-spacing:.02em}
.rc-rnd i{font-family:var(--cond);font-style:italic;font-weight:700;font-size:10px;color:rgba(255,255,255,.4);white-space:nowrap}
.rc-rnd.fin{background:var(--gold-2)}
.rc-rnd.fin b{color:#3c2c04}
.rc-rnd.fin i{color:rgba(60,44,4,.72)}

/* ====== ビッグカード：karal.jp 実結果（勝ち上がりトラッカー） ====== */
.rc-res-note{font-size:9.5px;font-weight:700;color:rgba(255,255,255,.4);margin:-3px 0 7px;letter-spacing:.02em}
.rc-res{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:11px;overflow:hidden}
.rc-res-rnd{border-top:1px solid rgba(255,255,255,.1)}
.rc-res-rnd:first-child{border-top:0}
.rc-res-rndhd{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:9px 12px;cursor:pointer}
.rc-res-rndhd b{font-family:var(--jp);font-weight:800;font-size:12px;color:#fff;font-style:normal}
.rc-res-rndhd svg{color:rgba(255,255,255,.5);flex:none}
.rc-res-grp{padding:2px 12px 9px}
.rc-res-grphd{font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--cyan-2);padding:6px 0 4px}
.rc-raceno{margin-left:9px;color:var(--cyan-2);font-weight:800}
.rc-res-row{display:flex;align-items:center;gap:8px;padding:5px 0;border-top:1px dashed rgba(255,255,255,.08)}
.rc-res-row:first-child{border-top:0}
.rc-res-row.fav{background:linear-gradient(90deg,rgba(244,194,68,.16),rgba(244,194,68,.02));margin:0 -12px;padding:5px 12px;border-top-color:transparent}
.rc-res-rk{font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--gold-2);width:20px;flex:none;text-align:center}
.rc-res-nm{font-size:11.5px;font-weight:700;color:#fff;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.rc-res-t{font-family:var(--cond);font-style:italic;font-weight:700;font-size:10.5px;color:rgba(255,255,255,.65);flex:none;width:44px;text-align:right}
.rc-res-q{font-size:9.5px;font-weight:800;color:#8be3b0;flex:none;white-space:nowrap}
.rc-res-wait{font-size:11.5px;font-weight:600;color:rgba(255,255,255,.6);text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:11px;padding:12px}

/* ---- 結果ビュー切替（結果／レース再現／ヒートマップ）：race-card.jsx KaralPaceHeatmap・KaralRaceReplay ---- */
.pcmode{display:flex;gap:5px;padding:0 0 9px;flex-wrap:wrap}
.pcmbtn{flex:1;min-width:62px;font-size:11px;font-weight:800;padding:6px 4px;border-radius:8px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);cursor:pointer}
.pcmbtn.on{background:var(--cyan-2);color:#04222a;border-color:var(--cyan-2)}
.pcwrap{padding:2px 0 6px}
.pchint{font-size:10.5px;color:rgba(255,255,255,.5);line-height:1.5;margin:2px 0 9px}

/* 横スワイプ無しで全列が入るよう、固定幅をやめて画面幅に合わせて伸縮させる（本人指示） */
.hmscroll{margin:0 -2px;padding:0 2px}
.hmtable{display:flex;flex-direction:column;gap:3px;width:100%}
.hmrow{display:flex;align-items:stretch;gap:2px}
.hmhead{font-size:9px;color:rgba(255,255,255,.4);font-weight:700}
.hmnm{flex:0 1 92px;min-width:74px;display:flex;flex-direction:column;justify-content:center;font-size:10.5px;color:#fff;line-height:1.2;padding:5px 4px 5px 0}
.hmnm b{font-weight:800;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.hmteam{font-style:normal;font-size:9px;color:rgba(255,255,255,.62);font-weight:600;line-height:1.25;overflow-wrap:anywhere}
.hmsub{font-size:8.5px;color:rgba(255,255,255,.45);font-weight:600;margin-left:0}
.hmc{flex:1 1 0;min-width:0;text-align:center;border-radius:5px;padding:6px 0;font-family:var(--cond);font-style:italic;font-weight:700;font-size:12px;color:#fff}
.hmhead .hmc{color:rgba(255,255,255,.4);font-weight:700;font-size:8px;letter-spacing:0;padding:0;display:flex;align-items:center;justify-content:center;white-space:nowrap}
.hmtot{flex:1.15 1 0;min-width:0;text-align:center;margin-left:5px;border-radius:5px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:#fff;padding:6px 0}
.hmhead .hmtot{color:rgba(255,255,255,.4);font-weight:700;font-size:8.5px;padding:0;display:flex;align-items:center;justify-content:center;margin-left:5px}

.rrheats{display:flex;gap:5px;flex-wrap:wrap;margin:0 0 9px}
.rrhb{flex:none;font-size:11px;font-weight:800;padding:4px 12px;border-radius:7px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);cursor:pointer}
.rrhb.on{background:#fff;color:#0b1f44;border-color:#fff}
.rrlegend{display:flex;gap:11px;flex-wrap:wrap;margin:-2px 0 10px;font-size:10px;color:rgba(255,255,255,.55);font-weight:700}
.rrlg{display:inline-flex;align-items:center;gap:4px}
.rrlg i{width:13px;height:8px;border-radius:3px;display:inline-block}

.rrctrl{display:flex;align-items:center;gap:8px;margin:2px 0 12px}
.rrplay{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:var(--cyan-2);color:#04222a;font-size:13px;cursor:pointer}
.rrscrub{flex:1;min-width:0;accent-color:var(--cyan-2)}
.rrtime{flex:none;width:54px;text-align:right;font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--gold-2)}
.rrspd{flex:none;font-size:10px;font-weight:800;padding:3px 6px;border-radius:6px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.06);color:rgba(255,255,255,.6);cursor:pointer}
.rrspd.on{background:#fff;color:#0b1f44;border-color:#fff}

.rrtrack{position:relative;isolation:isolate}
.rrgrid{position:absolute;left:94px;right:0;top:0;bottom:0;pointer-events:none}
.rrgl{position:absolute;top:16px;bottom:0;width:1px;background:rgba(255,255,255,.15)}
.rrgl.goal{background:var(--cyan-2);width:2px}
.rrgl.start{background:rgba(255,255,255,.3)}
.rrgl i{position:absolute;top:-15px;left:50%;transform:translateX(-50%);font-size:8px;color:rgba(255,255,255,.4);font-style:normal;white-space:nowrap}
.rrgl.goal i{right:0;left:auto;transform:none;color:var(--cyan-2);font-weight:800}
.rrgl.start i{left:0;right:auto;transform:none;font-weight:800}
.rrlead{position:absolute;top:16px;bottom:0;width:1px;background:repeating-linear-gradient(var(--gold-2),var(--gold-2) 3px,transparent 3px,transparent 6px);opacity:.5}
.rrlane{position:absolute;left:0;right:0;height:23px;display:flex;align-items:center;gap:6px;transition:top .42s cubic-bezier(.34,.02,.24,1)}
.rrrank{flex:none;width:18px;text-align:center;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:rgba(255,255,255,.5)}
.rrrank.top{color:var(--gold-2)}
.rrnm{flex:none;width:64px;font-size:9.5px;font-weight:800;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#fff}
.rrln{flex:1;min-width:0;position:relative;height:100%}
.rrboat{position:absolute;top:50%;transform:translate(-50%,-50%);width:42px;height:16px}
.rrhull{width:42px;height:16px;display:block;overflow:visible;filter:drop-shadow(0 1px 1px rgba(0,0,0,.4))}
.rrboat.fin .rrhull{filter:drop-shadow(0 0 3px var(--cyan-2));animation:rrpop .55s ease}
.rrgap{position:absolute;right:44px;left:auto;top:50%;transform:translateY(-50%);font-size:8.5px;font-style:normal;font-family:var(--cond);font-weight:800;color:rgba(255,255,255,.55);white-space:nowrap;text-align:right}
.rrgap.ahead{right:auto;left:44px;text-align:left}
.rrfintime{position:absolute;right:45px;left:auto;top:50%;transform:translateY(-50%);font-size:9px;font-style:normal;font-family:var(--cond);font-weight:800;color:#fff;white-space:nowrap;text-align:right;display:flex;align-items:center;gap:5px}
/* ゴール後の進出先チップ（→A決勝＝金 / →準決＝紫 / →B決勝＝黄 / →敗者戦＝グレー） */
.rrq{font-style:normal;font-family:var(--jp);font-size:8.5px;font-weight:800;border-radius:4px;padding:1.5px 5px;line-height:1.3;white-space:nowrap}
.rrq.af{background:linear-gradient(135deg,#f0cd6e,#c2901a);color:#523808}
.rrq.sf{background:linear-gradient(135deg,#ece6fb,#ddd2f6);color:#6238cf}
.rrq.bf{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#866008}
.rrq.cr{background:#dfe5ee;color:#5c6a84}
/* ラウンド切替（予選/敗者戦/準決/…）は組切替より一段強い見た目に */
.rrheats.rrrounds .rrhb{font-weight:800}
.rrheats.rrrounds{margin-bottom:2px}
@keyframes rrpop{0%{transform:scale(1)}30%{transform:scale(1.7)}60%{transform:scale(.93)}100%{transform:scale(1)}}

/* ---- レースカード配色：放送グラフィック風。クルー一覧は部門カラー、お気に入りは金色で行ごとに強調 ---- */
.rc-list .rc-s{background:rgba(31,107,255,.22);color:#cfe0ff}
.rc-list.w .rc-s{background:rgba(255,45,122,.22);color:#ffd6e6}
/* ビッグカード内の艇図は白パネルとして馴染ませる（既存 .boatmap を流用） */
.rc-roster .boatmap{margin-bottom:8px}

/* ============================================================
   ダークテーマ（メイン候補）— .app[data-dark="1"] でトークン一括切替。
   ビッグカード・ヒーローと同じ「夜の放送グラフィック」世界観に統一する。
   ============================================================ */
.app[data-dark="1"]{
  /* W2「ピュアホワイト」（2026-08 採用）：混じり気のない白・ヘアライン境界・影ほぼゼロ。
     色は種目コード（紺・臙脂）と数字だけに絞り、余白の白で見せる。 */
  --bg:#ffffff;
  --surface:#ffffff; --surface-2:#f6f7f9; --surface-3:#eef0f4;
  --ink:#16181d; --sub:#5a616e; --mut:#9aa1ad; --line:#e8eaee; --line-2:#f1f2f5;
  --men:#1f6bff; --men-soft:#eef3ff;
  --women:#f0307a; --women-soft:#feeef5;
  --cyan-soft:#eafafd; --cyan-line:#c8ecf2;
  --gold:#d99a16; --gold-2:#f4c244; --gold-soft:#fdf6e3; --gold-line:#eeddb0;
  --shadow-card:0 1px 3px rgba(20,24,40,.06); --shadow-pop:0 10px 26px rgba(20,24,40,.10);
  background:var(--bg);
  /* 旧テーマの名残り変数。W2ではグラデを使わずフラットな白 */
  --card-grad:#ffffff;
  --pill-grad:#ffffff;
}
/* フェーズ色（淡色面＋濃色文字。パネルは鮮やかなまま） */
.app[data-dark="1"][data-phase="before"]{ --ph:#1f6bff; --ph-2:#3f86ff; --ph-soft:#e6eeff; --ph-line:#bcd2ff; --ph-ink:#1a4fd0;
  --panel:linear-gradient(118deg,#1b3490 18%,#3f7cff 155%); }
.app[data-dark="1"][data-phase="during"]{ --ph:#ff2e4d; --ph-2:#ff5a54; --ph-soft:#ffe7ea; --ph-line:#ffc8cf; --ph-ink:#cc1f38;
  --panel:linear-gradient(118deg,#321055 14%,#ff3d5c 158%); }
.app[data-dark="1"][data-phase="after"]{ --ph:#dd9b18; --ph-2:#f4c244; --ph-soft:#fdf2d8; --ph-line:#ecd394; --ph-ink:#9a6c0f;
  --panel:linear-gradient(118deg,#1b3490 14%,#e8a91f 160%); }
/* 斜めグラデは「文字中心のカード」だけに適用（白ハイライトの稜線＋青の浮遊影） */
.app[data-dark="1"] .hcard,
.app[data-dark="1"] .livestrip.idle,
.app[data-dark="1"] .medalcard{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-card);
}
/* 中に意味色（金=A決勝・男女色・フェーズ色）を持つ欄は白基調にして色を主役に */
.app[data-dark="1"] .tt,
.app[data-dark="1"] .card{
  background:var(--surface);
  border:1px solid var(--line);
  box-shadow:var(--shadow-card);
}
/* A決勝の行：白地に映えるクリーム→金のグラデ（青に濁らせない） */
.app[data-dark="1"] .row.medal{background:linear-gradient(90deg,#fff3d2 0%,#fffaf0 55%,rgba(255,250,240,0) 92%)}
.app[data-dark="1"] .row.medal .time .t{color:#c8901a}
.app[data-dark="1"] .chip,
.app[data-dark="1"] .tbtn,
.app[data-dark="1"] .day,
.app[data-dark="1"] .search{
  background:var(--surface);
  border-color:var(--line);
  box-shadow:none;
}
.app[data-dark="1"] .chip.on,.app[data-dark="1"] .day.on{background:var(--panel);box-shadow:var(--shadow-card)}
/* 背景（白地）に直接載る文字は濃色に戻す */
.app[data-dark="1"] .shead .jp{color:var(--ink)}
.app[data-dark="1"] .shead .meta{color:var(--mut)}
.app[data-dark="1"] .subhead{color:var(--ink)}
.app[data-dark="1"] .subhead .subnote{color:var(--mut)}
.app[data-dark="1"] .legend{color:var(--sub)}
.app[data-dark="1"] footer{color:var(--mut)}
.app[data-dark="1"] .tgroup-h{color:var(--sub)}
.app[data-dark="1"] .favtitle{color:var(--ink)}
.app[data-dark="1"] .empty{color:var(--sub)}
/* フェーズ帯（白地の上）はライト風の淡色チップに */
/* PRE-EVENT バー：お気に入り登録への誘導として、男子と同じ紺→青グラデ＋金の文字に */
.app[data-dark="1"][data-phase="before"] .phasebar{background:var(--men-grad);border-color:rgba(255,255,255,.2)}
.app[data-dark="1"][data-phase="before"] .phasebar .pdot{background:#ffd166}
.app[data-dark="1"][data-phase="before"] .phasebar .pname,.app[data-dark="1"][data-phase="before"] .phasebar .ptext,.app[data-dark="1"][data-phase="before"] .phasebar .pclock{color:#ffd166}
.app[data-dark="1"][data-phase="during"] .phasebar{background:#ffe9ec;border-color:#ffcad2}
.app[data-dark="1"][data-phase="during"] .phasebar .pname,.app[data-dark="1"][data-phase="during"] .phasebar .ptext,.app[data-dark="1"][data-phase="during"] .phasebar .pclock{color:#c81f3a}
.app[data-dark="1"][data-phase="after"] .phasebar{background:#fdf2d8;border-color:#ecd394}
.app[data-dark="1"][data-phase="after"] .phasebar .pname,.app[data-dark="1"][data-phase="after"] .phasebar .ptext,.app[data-dark="1"][data-phase="after"] .phasebar .pclock{color:#9a6c0f}
/* カウントダウン＝夜のスタジアム（深紺×金の発光。白地の上でドラマチックに浮く） */
.app[data-dark="1"] .countcard{
  background:
    radial-gradient(120% 90% at 80% -10%,rgba(50,110,230,.35),transparent 55%),
    linear-gradient(135deg,#03091e 0%,#081a44 52%,#040d26 100%);
}
.app[data-dark="1"] .countcard .cu{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.22)}
.app[data-dark="1"] .countcard .cu.sec{background:linear-gradient(160deg,rgba(255,209,102,.24),rgba(255,255,255,.08));border-color:rgba(255,209,102,.55)}
/* 部門チップ：淡色グラデカード上ではライト標準色のままでOK（オーバーライド不要） */
/* レーダー：PRE-EVENTバーと同じ、男子の紺→青グラデ＋金の文字に統一 */
.app[data-dark="1"] .favradar{backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  background:var(--men-grad);border-color:rgba(255,255,255,.2);box-shadow:0 8px 22px rgba(11,31,68,.35)}
.app[data-dark="1"] .favradar .fr-team{color:#ffd166}
.app[data-dark="1"] .favradar .fr-round{color:#ffd166;opacity:.85}
.app[data-dark="1"] .favradar .fr-eta{color:#ffd166}
.app[data-dark="1"] .favradar .fr-x{color:rgba(255,209,102,.75)}
.app[data-dark="1"] .favradar .fr-more{background:rgba(255,209,102,.18);color:#ffd166;border-color:rgba(255,209,102,.4)}
.app[data-dark="1"] .favradar.soon{background:linear-gradient(118deg,#e0244a,#ff5570);border-color:rgba(255,255,255,.4)}
/* 艇図：コックスの紺丸が沈むので明るめに */
.app[data-dark="1"] .boatmap circle[fill="var(--navy)"]{fill:#3a5ca8}

/* ハイブリッド：下ナビは白ガラス（白地の背景に馴染ませ、選択中は鮮やかな青） */
.app[data-dark="1"] .bnav{background:rgba(255,255,255,.92);border:1px solid var(--line);
  box-shadow:0 10px 34px rgba(20,24,40,.16),0 2px 8px rgba(20,24,40,.07)}
.app[data-dark="1"] .bnav button{color:#9aa1ad}
.app[data-dark="1"] .bnav button.on{color:#111318;background:var(--surface-3)}
/* 発艇時刻・件数：淡色グラデの上で締まる深紺に */
.app[data-dark="1"] .row .time .t{color:#16181d}
.app[data-dark="1"] .card .cnt{color:#16181d}

/* ====== ヒーロー水面アニメ（波2層＋エイトの滑走）====== */
/* 専用スペースは設けず、最初のレイアウト通り船は文字の下（後ろ）を流れる */
.hero .h-water{position:absolute;left:0;right:0;bottom:-1px;height:78px;z-index:3;pointer-events:none;overflow:hidden}
.hw-wave{position:absolute;bottom:0;left:0;width:200%;height:30px}
.hw-wave path{fill:rgba(255,255,255,.09)}
.hw-wave.back{height:30px;animation:hwdrift 26s linear infinite}
.hw-wave.front{height:21px;animation:hwdrift 15s linear infinite}
.hw-wave.front path{fill:var(--ph-2);opacity:.22}
@keyframes hwdrift{to{transform:translateX(-50%)}}
/* 6クルーの競漕：各レーンが左→右に流れ、速度差で抜きつ抜かれつ */
.hw-race{position:absolute;left:0;right:0;bottom:8px;height:70px;pointer-events:none}
.hw-lane{position:absolute;left:0;width:100%;top:var(--y);height:18px;animation:hwglide var(--d) linear var(--delay) infinite}
.hw-boat{position:absolute;left:0;top:0;animation:hwsurge 2.6s ease-in-out infinite}
@keyframes hwglide{from{transform:translateX(-22%)}to{transform:translateX(118%)}}
@keyframes hwsurge{0%,100%{transform:translateX(0)}55%{transform:translateX(3px)}}

/* ====== オールの水紋リップル ====== */
.chip,.tbtn,.bnav button,.rc-rnd,.nextrow,.rc-nav button{position:relative;overflow:hidden}
.pud-rip{position:absolute;width:46px;height:38px;border-radius:50%;pointer-events:none;z-index:3;
  transform:translate(-50%,-50%) scale(.25);opacity:.5;
  background:radial-gradient(closest-side,transparent 55%,var(--ph) 63%,transparent 80%);
  animation:pudrip .55s ease-out forwards}
@keyframes pudrip{to{transform:translate(-50%,-50%) scale(2);opacity:0}}
.chip.on .pud-rip,.day.on .pud-rip,.bnav button.on .pud-rip,.rc-rnd .pud-rip,.rc-nav button .pud-rip{
  background:radial-gradient(closest-side,transparent 55%,rgba(255,255,255,.85) 63%,transparent 80%)}

@media (prefers-reduced-motion:reduce){.h-water *{animation:none!important}.pud-rip{display:none}}
/* ハイブリッド：白地上の件数バッジは淡青チップ＋濃青文字に */
.app[data-dark="1"] .tgroup-h .c{background:var(--surface-3);color:var(--sub)}

/* ====== 選手プロフィール（名前タップ→シート）====== */
/* ---- 航行ルール ---- */
.navsec{margin:6px 0 4px}
.navsec-h{display:flex;align-items:center;gap:8px;font-size:15px;font-weight:900;color:var(--ink);margin:4px 2px 10px}
.navsec-note{font-size:11px;font-weight:700;color:var(--mut);background:var(--surface-2);border-radius:999px;padding:3px 10px}
.navgrid{display:flex;flex-direction:column;gap:10px}
.navcard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:12px 14px;border-left:4px solid var(--men)}
.navcard.race{border-left-color:var(--women)}
.navcard-t{font-size:14px;font-weight:800;color:var(--ink);margin-bottom:8px}
.navcard.race .navcard-t{color:var(--women)}
.navlist{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.navlist li{position:relative;padding-left:16px;font-size:12.5px;line-height:1.6;color:var(--sub);font-weight:600}
.navlist li::before{content:"";position:absolute;left:3px;top:9px;width:5px;height:5px;border-radius:50%;background:var(--men)}
.navcard.race .navlist li::before{background:var(--women)}
.navsrc{font-size:10.5px;color:var(--mut);line-height:1.6;margin:10px 2px 0}

/* ---- はじめての観戦ガイド ---- */
.guideflow{display:flex;flex-direction:column;align-items:stretch;gap:0}
.guideflow-step{display:flex;align-items:baseline;gap:9px;padding:10px 13px;border-radius:9px}
.guideflow-step b{font-size:12.5px;font-weight:800;flex:none;width:48px}
.guideflow-step span{font-size:11.5px;font-weight:600;line-height:1.5;opacity:.88}
.guideflow-arrow{text-align:center;font-size:12px;font-weight:800;color:var(--mut);margin:2px 0}
.guideflow-step.heat{background:linear-gradient(135deg,#e4f6ec,#cdeedd);color:#067a53}
.guideflow-step.cr{background:linear-gradient(135deg,#eef1f6,#dde3ed);color:#5c6a84}
.guideflow-step.semi{background:linear-gradient(135deg,#ece6fb,#ddd2f6);color:#6238cf}
.guideflow-step.bfinal{background:linear-gradient(135deg,#f6e8bd,#ecd591);color:#866008}
.guideflow-step.afinal{background:linear-gradient(135deg,#f0cd6e,#c2901a);color:#523808}
.boatdiagram-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:10px}
.boatdiagram{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);box-shadow:var(--shadow-card);padding:8px}
.boatdiagram-lbl{text-align:center;font-size:10.5px;font-weight:700;color:var(--sub);margin-top:4px}
.guide-mapbtn{display:inline-flex;align-items:center;gap:5px;font-size:12px;font-weight:800;color:var(--ph-ink);
  background:var(--ph-soft);border-radius:999px;padding:7px 14px;text-decoration:none}

/* ---- ルール ◯✕クイズ ---- */
.quiz-lead{font-size:12.5px;color:var(--sub);line-height:1.7;margin:6px 2px 12px}
.quiz-lead b{color:var(--ink);font-weight:800}
.quiz-score{display:inline-block;font-size:13px;font-weight:800;color:var(--ink);background:var(--surface-2);border-radius:999px;padding:6px 14px;margin:0 0 12px}
.quiz-score b{font-family:var(--cond);font-style:italic;font-size:18px;color:var(--ph-ink);margin:0 2px}
.quiz-list{display:flex;flex-direction:column;gap:11px}
.quiz-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:13px 14px;box-shadow:var(--shadow-card);border-left:4px solid var(--line)}
.quiz-card.ok{border-left-color:#1aa05a;background:linear-gradient(100deg,rgba(26,160,90,.06),var(--surface))}
.quiz-card.ng{border-left-color:var(--women);background:linear-gradient(100deg,rgba(255,45,122,.06),var(--surface))}
.quiz-q{display:flex;gap:8px;font-size:13.5px;font-weight:700;line-height:1.6;color:var(--ink)}
.quiz-no{font-family:var(--cond);font-style:italic;font-weight:800;color:var(--ph-ink);flex:none}
.quiz-btns{display:flex;gap:10px;margin-top:11px}
.quiz-b{flex:1;appearance:none;font-family:inherit;font-size:24px;font-weight:800;padding:9px 0;border-radius:10px;border:2px solid var(--line);background:var(--surface);color:var(--sub);cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;transition:transform .1s,background .12s,border-color .12s}
.quiz-b:not(:disabled):active{transform:scale(.94)}
.quiz-b.maru:not(:disabled):hover{border-color:#1aa05a;color:#1aa05a}
.quiz-b.batsu:not(:disabled):hover{border-color:var(--women);color:var(--women)}
.quiz-b:disabled{cursor:default;opacity:.55}
.quiz-b.maru.sel{background:#1aa05a;border-color:#1aa05a;color:#fff;opacity:1}
.quiz-b.batsu.sel{background:var(--women);border-color:var(--women);color:#fff;opacity:1}
.quiz-res{margin-top:11px;padding-top:11px;border-top:1px dashed var(--line)}
.quiz-verdict{display:flex;align-items:baseline;gap:10px;font-size:14px;font-weight:800;color:var(--ink)}
.quiz-card.ok .quiz-verdict{color:#138a4c}
.quiz-card.ng .quiz-verdict{color:var(--women)}
.quiz-ans{font-size:11.5px;font-weight:700;color:var(--sub)}
.quiz-exp{margin-top:6px;font-size:12.5px;line-height:1.7;color:var(--sub)}
.quiz-reset{appearance:none;font-family:inherit;font-size:12.5px;font-weight:800;color:var(--ink);background:var(--surface);border:1px solid var(--line-2);border-radius:999px;padding:9px 20px;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
.quiz-reset:active{transform:scale(.96)}
.quiz-srcnote{font-size:10.5px;color:var(--mut);line-height:1.6;margin:14px 2px 0}

.rn-plain{color:inherit}
.rn-kana{font-style:normal;font-size:10.5px;font-weight:600;color:var(--mut);margin-left:6px;letter-spacing:.02em;white-space:nowrap}
.trow-nm .rn-kana{color:var(--sub)}
.rn-link{display:inline;font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer;border-bottom:1px dotted currentColor}
.rn-link.light{color:#fff}
.rn-link:active{opacity:.55}
.rn-ext{margin-left:3px;opacity:.7;vertical-align:-2px}
.psheet-wrap{position:fixed;inset:0;z-index:200;background:rgba(8,16,40,.55);display:flex;align-items:flex-end;justify-content:center;animation:fade .15s ease}
.psheet{width:100%;max-width:520px;max-height:88vh;background:var(--surface);border-radius:18px 18px 0 0;display:flex;flex-direction:column;overflow:hidden;
  box-shadow:0 -12px 48px rgba(8,16,40,.4);animation:rcup .26s cubic-bezier(.2,.85,.2,1)}
.app[data-dark="1"] .psheet{background:#ffffff}
.psheet-hd{flex:none;display:flex;justify-content:flex-end;padding:10px 12px 0}
.psheet-x{flex:none;width:34px;height:34px;border-radius:50%;border:0;background:var(--surface-2);color:var(--sub);display:flex;align-items:center;justify-content:center;cursor:pointer}
.psheet-hero{flex:none;display:flex;flex-direction:column;align-items:center;gap:10px;padding:2px 18px 16px;border-bottom:1px solid var(--line)}
.psheet-photo{width:116px;height:138px;border-radius:15px;object-fit:cover;object-position:top;background:var(--surface-2);border:1px solid var(--line)}
.psheet-noimg{display:flex;align-items:center;justify-content:center;position:relative}
.psheet-noimg span{font-family:"Saira",sans-serif;font-size:46px;font-weight:800;color:var(--mut);opacity:.5}
.psheet-noimg::after{content:"写真なし";position:absolute;bottom:8px;left:0;right:0;text-align:center;font-size:9.5px;font-weight:700;letter-spacing:.08em;color:var(--mut)}
.psheet-nm{font-size:21px;font-weight:800;color:var(--ink);text-align:center;line-height:1.2}
.psheet-kana{font-size:11px;font-weight:600;letter-spacing:.14em;color:var(--mut);text-align:center;margin-top:3px}
.psheet-body{overflow-y:auto;-webkit-overflow-scrolling:touch;padding:4px 18px 16px}
.psec{margin-top:16px}
.psec-t{font-size:12px;font-weight:800;letter-spacing:.04em;color:var(--ph);border-left:3px solid var(--ph);padding-left:8px;margin-bottom:9px}
.psrow{display:flex;gap:10px;padding:3px 0;font-size:12.5px}
.pk{flex:none;width:92px;color:var(--sub);font-weight:600}
.pv{flex:1;color:var(--ink);font-weight:600}
.psec-txt .pline{font-size:12.5px;line-height:1.6;color:var(--ink);padding:1px 0}
.psec-txt .pline.phead{font-weight:800;color:var(--sub);font-size:11px;margin-top:9px;letter-spacing:.03em}
.psec-txt .pline.presult{padding-left:3.7em;text-indent:-3.7em;margin-top:5px}
.psec-txt .pline.presult .pyr{font-family:var(--cond);font-style:italic;font-weight:800;font-size:14px;color:var(--ph);margin-right:.15em}
.psheet-ft{flex:none;padding:13px 18px calc(13px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:var(--surface)}
.app[data-dark="1"] .psheet-ft{background:#ffffff}
.psheet-link{display:flex;align-items:center;justify-content:center;gap:7px;height:46px;border-radius:12px;background:var(--panel);color:#fff;font-weight:800;font-size:14px;text-decoration:none}
.psheet-link:active{opacity:.85}
.psheet-src{text-align:center;font-size:10px;color:var(--mut);margin-top:8px}

/* ---- 歴代優勝者（rules.jsx ChampionsSection）---- */
.champ-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:var(--gold-soft);border:1px solid var(--gold-line);border-radius:var(--r-md);padding:9px 13px;margin:0 0 10px;font-size:12.5px;color:var(--ink)}
.champ-top-l{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10.5px;letter-spacing:.08em;color:var(--gold);flex:none}
.champ-top b{font-weight:900}
.champ-list{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.champ-row{display:flex;align-items:center;gap:12px;padding:8px 13px;border-top:1px solid var(--line-2)}
.champ-row:first-child{border-top:0}
.champ-row.latest{background:var(--gold-soft)}
.champ-yr{flex:none;width:44px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13.5px;color:var(--sub)}
.champ-row.latest .champ-yr{color:var(--gold)}
.champ-team{flex:1;min-width:0;font-size:13px;font-weight:800;color:var(--ink)}
.champ-team i{font-style:normal;font-weight:600;font-size:11px;color:var(--sub);margin-left:7px}
.champ-team.washout{font-weight:600;font-size:11.5px;color:var(--mut)}
.champ-top-note{display:block;font-style:normal;font-weight:700;font-size:8.5px;letter-spacing:.04em;color:var(--sub);margin-top:1px}
.quiz-startbtn{font-family:var(--jp);font-weight:900;font-size:13.5px;color:#fff;background:var(--panel);border:0;border-radius:999px;padding:13px 30px;cursor:pointer;box-shadow:var(--shadow-pop);letter-spacing:.03em}
.quiz-startbtn:active{opacity:.85}

/* ---- YouTubeライブ配信カード ---- */
.ytlive{margin-top:12px;border-radius:var(--r-md);background:var(--panel);color:#fff;padding:14px 14px 13px;box-shadow:0 8px 24px rgba(4,10,24,.35)}
.ytlive-hd{display:flex;align-items:center;gap:9px}
.ytlive-hd svg{flex:none}
.ytlive-ttl{font-family:var(--jp);font-weight:800;font-size:13px;letter-spacing:.04em}
.ytlive-badge{margin-left:auto;display:inline-flex;align-items:center;gap:5px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;letter-spacing:.08em;color:#fff;background:#FF0033;border-radius:99px;padding:2px 9px}
.ytlive-dot{width:5px;height:5px;border-radius:50%;background:#fff;animation:blink 1.6s infinite}
.ytlive-note{font-size:10.5px;font-weight:600;line-height:1.7;color:rgba(255,255,255,.66);margin:7px 0 10px}
.ytlive-row{display:flex;align-items:center;gap:11px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);border-radius:11px;padding:10px 12px;text-decoration:none;color:#fff}
.ytlive-row+.ytlive-row{margin-top:8px}
.ytlive-row:active{opacity:.7}
.ytlive-play{flex:none;width:32px;height:32px;border-radius:50%;background:#FF0033;display:inline-flex;align-items:center;justify-content:center}
.ytlive-play svg{margin-left:2px}
.ytlive-tx{flex:1;min-width:0}
.ytlive-tx b{display:block;font-family:var(--jp);font-weight:900;font-size:13px}
.ytlive-tx i{display:block;font-style:normal;font-family:var(--cond);font-weight:700;font-size:10.5px;letter-spacing:.04em;color:rgba(255,255,255,.6);margin-top:2px}
.ytlive-go{flex:none;font-family:var(--cond);font-style:italic;font-weight:800;font-size:11px;color:var(--gold-2)}
.ytlive-chips{display:flex;gap:7px;margin-bottom:9px}
.ytlive-chip{flex:1;appearance:none;cursor:pointer;border:1px solid rgba(255,255,255,.22);border-radius:9px;padding:7px 4px;background:rgba(255,255,255,.06);color:rgba(255,255,255,.75);font-family:var(--jp);font-weight:900;font-size:11.5px}
.ytlive-chip i{display:block;font-style:normal;font-family:var(--cond);font-weight:700;font-size:9px;letter-spacing:.05em;margin-top:1px;opacity:.75}
.ytlive-chip.on{border-color:rgba(244,194,68,.85);background:rgba(244,194,68,.15);color:var(--gold-2)}
.ytlive-frame{position:relative;border-radius:11px;overflow:hidden;background:#000;aspect-ratio:16/9}
.ytlive-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.ytlive-face{position:absolute;inset:0;cursor:pointer;background-size:cover;background-position:center}
.ytlive-shade{position:absolute;inset:0;background:rgba(4,10,24,.35)}
.ytlive-bigplay{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:58px;height:42px;border-radius:12px;background:#FF0033;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 18px rgba(0,0,0,.5)}
.ytlive-bigplay svg{margin-left:2px}
.ytlive-cap{position:absolute;left:0;right:0;bottom:0;padding:8px 12px;background:linear-gradient(transparent,rgba(0,0,0,.78));font-size:10.5px;font-weight:700;color:rgba(255,255,255,.85)}
.ytlive-cap b{font-family:var(--jp);font-weight:900;font-size:11.5px;color:#fff}

/* 団体別 出場数（積み上げ横棒）：大会ごとの色分けと凡例 */
.entlegend{display:flex;gap:14px;flex-wrap:wrap;margin:10px 2px 4px;font-size:11px;font-weight:800;color:var(--mut)}
.entlg{display:inline-flex;align-items:center;gap:6px}
.entsw{width:11px;height:11px;border-radius:3px;display:inline-block}
.entsw.d0,.mbt-seg.d0{background:linear-gradient(180deg,#3b6fe0,#1f4fbf)}
.entsw.d1,.mbt-seg.d1{background:linear-gradient(180deg,#f0a63c,#d4801a)}
.entsw.d2,.mbt-seg.d2{background:linear-gradient(180deg,#37b39a,#1d8f79)}

/* 出場数の値：セルを固定幅にして、行をまたいで数の列が縦に揃うようにする。
   合計タブは「合計＋大会3つ」の4列ぶん、大会タブは1列ぶんだけ幅を取る（バーが潰れないように）。 */
.entscope{margin-top:10px;flex-wrap:wrap}
.mbt-val.entval{flex:none;width:78px;display:flex;align-items:center;justify-content:flex-end;gap:0;white-space:nowrap;
  font-family:var(--cond);font-style:italic;font-weight:800;color:var(--ink)}
.mbt-val.entval.wide{width:186px}
.entcell{display:inline-flex;align-items:center;justify-content:flex-end;gap:4px;font-size:12px}
.entcell.tot{width:74px;font-size:13px}
.entcell.tot b{font-size:1.25em}
.entval.wide .entcell:not(.tot){width:36px}
.entu{font-style:normal;font-weight:700;font-size:.78em;color:var(--mut);margin-left:3px}
.entcell .entsw{width:8px;height:8px;border-radius:2px;flex:none}
.entcell .zero{color:var(--mut);opacity:.4;font-style:normal}
/* 出場数ビューでは団体名を少し広く（メダル表より名前が長いため） */
.entval-row .mbt-tm{width:96px}
@media (max-width:420px){
  .mbt-val.entval{width:66px}
  .mbt-val.entval.wide{width:150px}
  .entcell.tot{width:62px;font-size:11.5px}
  .entval.wide .entcell:not(.tot){width:28px;font-size:10.5px}
  .entval-row .mbt-tm{width:74px;font-size:11px}
}

/* ============ 歴史タブ ============ */
.histlead{font-size:12px;line-height:1.95;color:var(--ink);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:12px 14px;margin:12px 0 4px}
.histlead.sm{font-size:11.5px;padding:10px 13px;margin:8px 0 10px}
.histnote{display:block;margin-top:6px;font-size:10.5px;color:var(--mut);line-height:1.8}
.subhead .shsub{margin-left:auto;font-size:10.5px;font-weight:700;color:var(--mut)}
.mbt-fill.hist{background:linear-gradient(90deg,#2f5fd0,#7aa3f0)}
.histdetail{margin-top:10px;padding:11px 13px;background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);font-size:12px;line-height:1.9}
.histevs{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.histev{font-size:11px;font-weight:700;color:var(--mut);background:var(--surface-3);border-radius:6px;padding:3px 9px}
.histev b{color:var(--ink);font-family:var(--cond);font-style:italic;font-size:1.15em;margin-left:3px}
.histchips{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.histchip{font-size:11px;font-weight:700;color:var(--ink);background:var(--surface);border:1px solid var(--line);
  border-radius:99px;padding:4px 11px}
.histchip.gold{background:var(--gold-soft);border-color:var(--gold-line);color:#7a5a10}
.histchip.def{background:var(--surface-3)}
.histchip b{font-family:var(--cond);font-style:italic;margin:0 2px}
/* 何年ぶり／初優勝 */
.histgap{margin-top:8px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.histgaprow{display:flex;align-items:center;gap:10px;padding:9px 13px;border-bottom:1px solid var(--line-2);font-size:12px}
.histgaprow:last-child{border-bottom:0}
.histgaprow .gt{font-weight:800;flex:1;min-width:0}
.histgaprow .gy{font-size:11px;color:var(--mut)}
.histgaprow .gn{font-family:var(--cond);font-style:italic;font-weight:800;color:var(--mut);min-width:82px;text-align:right}
.histgaprow .gn b{font-size:1.3em;color:var(--ink);margin-right:2px}
/* 連覇 */
.histstreaks{display:flex;flex-direction:column;gap:7px;margin-top:8px}
.hstk{display:flex;align-items:center;gap:10px;padding:10px 13px;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--surface);font-size:12px}
.hstk.live{border-color:var(--gold-line);background:var(--gold-soft)}
.hstk-n{font-family:var(--cond);font-style:italic;font-weight:800;color:var(--mut);min-width:66px}
.hstk-n b{font-size:1.5em;color:var(--ink);margin-right:2px}
.hstk.live .hstk-n b{color:#a8760c}
.hstk-b{flex:1;min-width:0}
.hstk-y{font-family:var(--cond);font-style:italic;font-size:11px;color:var(--mut)}
/* 歴代スカラー */
.histmulti{margin-top:10px}
.hmh{font-size:11px;font-weight:800;color:var(--mut);margin-bottom:6px}
.histmulti .histchip{margin-bottom:2px}
.histscull{margin-top:12px;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.hsrow{display:flex;align-items:center;gap:9px;padding:8px 12px;border-bottom:1px solid var(--line-2);font-size:12px}
.hsrow:last-child{border-bottom:0}
.hsy{font-family:var(--cond);font-style:italic;font-weight:800;color:var(--mut);width:38px;flex:none}
.hsev{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10.5px;color:#fff;background:var(--men);
  border-radius:5px;padding:2px 7px;flex:none;width:38px;text-align:center}
.hsev.w{background:var(--women)}
.hsn{font-weight:800;flex:1;min-width:0}
.hst{font-size:11px;color:var(--mut);flex:none}
/* 記録の推移（インカレ×U23×世界）。速いタイムほど上。世界との縦の距離が主役 */
.trendbox{margin-bottom:14px}
.trendlegend{display:flex;gap:10px;margin:8px 2px 4px;flex-wrap:wrap}
.tl{font-size:10.5px;font-weight:800;color:var(--sub);display:inline-flex;align-items:center;gap:5px}
.tl::before{content:"";width:14px;height:3px;border-radius:2px;background:var(--mut)}
.tl.wch::before{background:var(--navy)}
.tl.u23::before{background:var(--cyan)}
.tl.ic::before{background:var(--red)}
.tl.w100::before{background:var(--navy);height:0;border-top:2px dashed var(--navy)}
/* タイム／世界一比の切替 */
.trendmode{margin-left:auto;display:inline-flex;gap:4px}
.tm{font-family:var(--jp);font-size:10.5px;font-weight:800;color:var(--sub);background:var(--surface-2);
  border:1px solid var(--line);border-radius:7px;padding:3px 9px;cursor:pointer}
.tm.on{color:#fff;background:var(--navy);border-color:var(--navy)}
.tr-w100{stroke:var(--navy);stroke-width:1.6;stroke-dasharray:5 4}
/* 「風の分をどう割り出した？」の開閉説明 */
.howbtn{display:inline-flex;align-items:center;gap:4px;margin:8px 2px 0;
  font-family:var(--jp);font-size:11px;font-weight:800;color:var(--navy-2);
  background:none;border:none;padding:0;cursor:pointer;text-decoration:underline;
  text-underline-offset:3px}
.howbox{margin:8px 0 4px;padding:12px 14px;border:1px solid var(--line);
  border-radius:var(--r-md);background:var(--surface-2);font-size:11.5px;
  line-height:1.85;color:var(--sub)}
.howbox b{color:var(--ink)}
.howbox ol{margin:6px 0;padding-left:20px}
.howbox li{margin:2px 0}
.howbox p{margin:6px 0}
.trendwrap{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:8px 4px 2px}
.trendsvg{display:block;width:100%;height:auto}
.tr-grid{stroke:var(--line-2);stroke-width:1}
.tr-ylabel{font-family:var(--cond);font-size:10px;font-weight:700;fill:var(--mut);text-anchor:end}
.tr-xlabel{font-family:var(--cond);font-style:italic;font-size:10.5px;font-weight:800;fill:var(--mut);text-anchor:middle}
.tr-line{fill:none;stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round}
.tr-line.wch{stroke:var(--navy)}
.tr-line.u23{stroke:var(--cyan)}
.tr-line.ic{stroke:var(--red);stroke-width:2.8}
.tr-gaparea{fill:var(--red);opacity:.07;stroke:none}
.tr-dot{stroke:var(--surface);stroke-width:1}
.tr-dot.wch{fill:var(--navy)}
.tr-dot.wch.og{fill:var(--gold)}
.tr-dot.u23{fill:var(--cyan)}
.tr-dot.ic{fill:var(--red)}
/* 実測点は控えめに。傾向（太線）を主役にする */
.tr-dot.raw{opacity:.32;stroke:none}
.tr-dot.raw.og{opacity:.75}
.tr-dot.sel{opacity:1;stroke:var(--surface);stroke-width:1.4}
.tr-sel{stroke:var(--gold);stroke-width:1.4;stroke-dasharray:3 3}
.trendsel{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;margin:8px 2px 0;
  padding:8px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface-2);font-size:11.5px}
.ts-y{font-family:var(--cond);font-style:italic;font-size:14px}
.ts-row{color:var(--sub)} .ts-row b{font-family:var(--cond);font-size:13px;color:var(--ink)}
.ts-row.wch b{color:var(--navy)} .ts-row.u23 b{color:var(--cyan)} .ts-row.ic b{color:var(--red)}
.ts-gap{font-weight:800;font-size:11px;color:var(--red)}
.trendgaps{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;margin:10px 2px 0}
.tg-lb{font-size:10.5px;font-weight:800;color:var(--sub)}
.tg{font-size:11px;color:var(--sub);background:var(--surface-2);border:1px solid var(--line);
  border-radius:8px;padding:4px 9px}
.tg b{font-family:var(--cond);font-size:12.5px;color:var(--ink)}
.tg.up{border-color:#f3c1c1;background:#fdf1f1} .tg.up b{color:var(--red)}
.tg.down{border-color:#bfe3cf;background:#effaf3} .tg.down b{color:#0f7a4d}
/* オッ盾の年表：第◯回のバッジと、優勝クルーが出ていない年（中止・調査中）の行 */
.hsed{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;color:var(--mut);
  width:20px;flex:none;text-align:right}
.hsrow.ox-off,.hsrow.ox-unknown{background:var(--surface-2)}
.hsn.oxnone{font-weight:600;font-size:11px;color:var(--mut)}
/* 出典の確度マーク：◎=公式沿革で確認 ○=ブログ集計のみ */
.hsmark{flex:none;font-size:10px;font-weight:800}
.hsmark.official{color:#0f7a4d}
.hsmark.early{color:var(--mut)}
/* 1974年 第1回＝荒天で決勝中止。優勝校が無いことを年表の末尾に明示する行 */
.hsrow.nowin{background:var(--surface-2);border-top:1px solid var(--line)}
.hsrow.nowin .hsy{opacity:.6}
.hsrow.nowin .hsn{font-weight:600;font-size:11px;color:var(--mut)}
/* 年表 */
.histyears{margin-top:8px;display:flex;flex-direction:column;gap:8px}
.hy{border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);padding:10px 13px}
.hy-h{display:flex;align-items:baseline;gap:9px;margin-bottom:6px}
.hy-h b{font-family:var(--cond);font-style:italic;font-size:17px}
.hy-wa,.hy-ed{font-size:10.5px;color:var(--mut);font-weight:700}
.hy-ed{margin-left:auto}
.hy-note{font-size:11.5px;color:var(--mut)}
.hy-wins{display:flex;flex-wrap:wrap;gap:5px 8px}
.hy-w{font-size:11px;line-height:1.7}
.hy-w i{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;color:var(--men);margin-right:4px}
.hy-w i.w{color:var(--women)}
.histsrc{margin-top:16px;font-size:10.5px;line-height:1.9;color:var(--mut)}
.histsrc a{color:var(--men)}

/* 歴史タブのチップ3カテゴリー配色：総合=金（歴史・トロフィー）／男子=青／女子=赤。
   未選択は淡色チップ＋色文字、選択中はそのカテゴリー色で塗る。
   ※ダークテーマの .app[data-dark="1"] .chip.on より強くするため data-dark 付きでも指定 */
.chip.hc-g{background:var(--gold-soft);border-color:var(--gold-line);color:#8a6410}
.chip.hc-m{background:#e9f0ff;border-color:#c9dbff;color:#1452d4}
.chip.hc-w{background:#ffe6ee;border-color:#ffc4d8;color:#e01563}
.chip.hc-g.on,.app[data-dark="1"] .chip.hc-g.on{
  background:linear-gradient(135deg,#f2d379,#c2901a);border-color:transparent;color:#3d2a05;font-weight:900;
  box-shadow:0 3px 10px rgba(194,144,26,.35)}
.chip.hc-m.on,.app[data-dark="1"] .chip.hc-m.on{
  background:var(--men-grad);border-color:transparent;color:#fff;box-shadow:0 3px 10px rgba(31,107,255,.3)}
.chip.hc-w.on,.app[data-dark="1"] .chip.hc-w.on{
  background:var(--women-grad);border-color:transparent;color:#fff;box-shadow:0 3px 10px rgba(255,45,122,.3)}

/* オックスフォード盾の歴代一覧：大学＝青／社会人＝深緑のバッジ */
.hsev.ox{background:#0f7a63;font-size:9.5px;width:auto;padding:2px 6px}

/* ヒーローの併催大会表示（控えめな1行。長ければ折り返す） */
.h-cohost{display:flex;align-items:center;gap:7px;flex-wrap:wrap;margin-top:1px;
  font-size:10.5px;font-weight:600;color:rgba(255,255,255,.68);line-height:1.6}
.h-cohost i{flex:none;font-style:normal;font-weight:800;font-size:9px;letter-spacing:.1em;
  color:rgba(255,255,255,.62);border:1px solid rgba(255,255,255,.3);border-radius:4px;padding:1px 6px}

/* ヒーロー統計の注記（数字は併催2大会込み） */
.h-statnote{margin:-6px 0 0;font-size:9.5px;font-weight:600;color:rgba(255,255,255,.5);letter-spacing:.02em}

/* 団体の規模推移（22年の棒グラフ） */
.sizebox{margin-top:12px;padding-top:12px;border-top:1px solid var(--line)}
.sizehd{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.sizeh{font-size:12px;font-weight:800;color:var(--ink)}
.sizeh i{font-style:normal;font-family:var(--cond);font-weight:700;font-size:11px;color:var(--mut);margin-left:7px}
.mtoggle.sizetg{margin:0 0 0 auto;display:inline-flex;flex:none}
.mtoggle.sizetg button{font-size:10.5px;padding:4px 10px}
.sizetrend{display:flex;align-items:baseline;gap:9px;margin-bottom:9px;font-size:11.5px;color:var(--sub)}
.sizetrend b{font-size:13px;font-weight:900;padding:2px 9px;border-radius:6px}
.sizetrend.up b{background:#e4f6ec;color:#067a53}
.sizetrend.down b{background:#feeef2;color:#c0224a}
.sizetrend.flat b{background:var(--surface-3);color:var(--sub)}
.sizechart{display:flex;align-items:flex-end;gap:2px;height:104px;padding:14px 0 0}
.sizecol{flex:1;min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;position:relative}
.sizev{font-family:var(--cond);font-style:italic;font-weight:800;font-size:8px;color:var(--sub);line-height:1;margin-bottom:2px;
  white-space:nowrap}
/* 51年チャート：数値も横書き（列幅を広げて重ならないようにしている） */
.sizechart.dense .sizev{font-size:8px;margin-bottom:3px}
.sizebar{width:100%;max-width:15px;border-radius:3px 3px 0 0;background:linear-gradient(180deg,#12a08a,#0c7a6a);min-height:2px;
  position:relative;overflow:hidden;display:flex;flex-direction:column}
/* 男女の積み上げ：棒の地色＝男子（ティール）・上に重なる女子（ローズ） */
.sizebar .sw-w{display:block;width:100%;background:linear-gradient(180deg,#f06ba8,#d63384)}
.sizebar:not(.split){background:linear-gradient(180deg,#a4afc2,#8b97ad)}   /* 内訳不明の年は無彩色 */
.sizebar.split{background:linear-gradient(180deg,#12a08a,#0c7a6a)}
.sizewin{font-size:8px;line-height:1;color:#c8901a;font-weight:900;margin-bottom:1px;white-space:nowrap;
  text-shadow:0 0 4px rgba(244,194,68,.5)}
.sizelegend{display:flex;gap:14px;flex-wrap:wrap;margin:0 0 6px;font-size:10px;font-weight:700;color:var(--sub)}
.sizelegend span{display:inline-flex;align-items:center;gap:5px}
.sizelegend .sw{width:10px;height:10px;border-radius:3px;display:inline-flex;align-items:center;justify-content:center;font-size:8px}
.sizelegend .sw.m{background:linear-gradient(180deg,#12a08a,#0c7a6a)}
.sizelegend .sw.w{background:linear-gradient(180deg,#f06ba8,#d63384)}
.sizelegend .sw.g{background:none;color:#c8901a;font-weight:900;width:auto}
.sizecol.none .sizebar{background:var(--surface-3);height:2px!important}
.sizey{font-family:var(--cond);font-style:italic;font-weight:700;font-size:8px;color:var(--mut);margin-top:4px;line-height:1}
.sizenote{margin:10px 2px 0;font-size:10px;line-height:1.85;color:var(--mut)}

/* 展開した行を強調（どこを開いたか分かるように） */
.mbt-item.open{background:var(--surface-2);border-radius:10px}
.mbt-item.open .histdetail{margin:0 6px 10px;background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:11px 13px}

.sizebar .sw-g{display:block;width:100%;background:linear-gradient(180deg,#b6bfce,#9aa5b8)}

/* 軸の断り書き（0から始まっていないことを明示） */
.sizeaxis{margin:2px 2px 6px;font-size:10px;line-height:1.7;color:var(--mut)}
.sizeaxis b{color:var(--sub)}
.sizehd .mtoggle.sizetg button{padding:3px 8px;font-size:10px}

/* 51年チャートの横スクロール（初期＝右端・左へスワイプで過去） */
.sizescroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;
  scrollbar-width:thin;margin:0 -4px;padding:0 4px}
.sizescroll .sizechart .sizecol{flex:none;width:24px}

/* 種目カードの「前回王者」チップ */
.evm-def{font-size:9.5px;font-weight:800;color:#8a6410;background:var(--gold-soft);
  border:1px solid var(--gold-line);border-radius:5px;padding:1px 6px;white-space:nowrap;
  margin-left:6px;flex:none}

/* 配信プレースホルダカード */
.ytlive-pre{display:block;text-decoration:none;color:inherit;cursor:pointer}
.ytlive-pre .ytlive-go{margin-left:auto;font-size:11px;font-weight:800;color:#c00}
.ytlive-pre .ytlive-note{margin:6px 2px 2px;font-size:11px;line-height:1.8;color:var(--sub)}
.ytlive-pre:active{opacity:.75}

/* 種目別：最速タイム（インカレ／U23世界／シニア世界の3段） */
.recbox{margin:0 0 12px;padding:4px 0;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.rec-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:9px 13px}
.rec-row+.rec-row{border-top:1px solid var(--line-2)}
.rec-row.ic{background:var(--gold-soft)}
.rec-lb{font-size:9.5px;font-weight:900;letter-spacing:.05em;color:var(--mut);min-width:74px}
.rec-row.ic .rec-lb{color:#8a6410}
.rec-t{font-family:var(--cond);font-style:italic;font-weight:800;font-size:20px;color:var(--ink)}
.rec-row.ic .rec-t{color:#523808}
.rec-who{font-size:11.5px;font-weight:800;color:var(--ink);min-width:0}
.rec-gap{font-size:10px;font-weight:800;color:#c0224a;background:#feeef2;border-radius:5px;padding:1px 6px}
.rec-yr{font-size:10px;font-weight:700;color:var(--mut);margin-left:auto;white-space:nowrap}
.rec-none{margin:2px 13px 8px;font-size:10.5px;line-height:1.7;color:var(--mut)}

/* ── 記録タブ ───────────────────────────────────────────── */
.jr-mode{margin-bottom:8px}
.chip.lw{background:var(--surface-2);color:var(--mut);font-size:10.5px}
.chip.lw.on{background:var(--navy);color:#fff}
.rec-row.univ .rec-lb{color:var(--cyan)}
.rec-row.jp .rec-lb{color:var(--navy)}
/* 記録の一覧（大会別・会場別・大学別で共用） */
.jrl{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden}
.jrl-row{display:grid;grid-template-columns:minmax(74px,auto) 76px 1fr auto;gap:8px;align-items:baseline;
  padding:9px 12px;border-bottom:1px solid var(--line-2);background:var(--surface);min-width:0}
.jrl-row:last-child{border-bottom:none}
.jrl-row.best{background:var(--surface-2)}
.jrl-m{font-size:11px;font-weight:800;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jrl-t{font-family:var(--cond);font-size:15px;color:var(--ink);white-space:nowrap}
.jrl-o{font-size:11.5px;color:var(--ink);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jrl-y{font-size:10px;color:var(--mut);white-space:nowrap}
/* 大学一覧 */
.jr-q{width:100%;padding:9px 12px;margin:0 0 10px;border:1px solid var(--line);border-radius:var(--r-md);
  background:var(--surface);color:var(--ink);font-family:var(--jp);font-size:13px}
.jrt{display:grid;grid-template-columns:repeat(auto-fill,minmax(148px,1fr));gap:6px}
.jrt-b{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:9px 11px;
  border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface);cursor:pointer;text-align:left}
.jrt-n{font-family:var(--jp);font-size:12px;font-weight:700;color:var(--ink);min-width:0;
  overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jrt-c{font-size:9.5px;color:var(--mut);white-space:nowrap}
.jr-back{margin:0 0 10px;padding:5px 11px;border:1px solid var(--line);border-radius:999px;
  background:var(--surface-2);color:var(--sub);font-family:var(--jp);font-size:11px;font-weight:800;cursor:pointer}
@media(max-width:420px){
  .jrl-row{grid-template-columns:minmax(60px,auto) 68px 1fr;grid-auto-rows:min-content}
  .jrl-y{grid-column:3;text-align:right}
}

/* 団体別出場数：大会を1つ選んだときの男女の塗り分け（推移グラフと同じ色） */
.mbt-seg.gm,.entsw.gm{background:linear-gradient(180deg,#12a08a,#0c7a6a)}
.mbt-seg.gw,.entsw.gw{background:linear-gradient(180deg,#f06ba8,#d63384)}
.mbt-val.entval.gen{width:150px}                 /* 合計＋男＋女 の3セル分 */
.entval.gen .entcell:not(.tot){width:38px}
@media(max-width:420px){
  .mbt-val.entval.gen{width:124px}
  .entval.gen .entcell:not(.tot){width:30px;font-size:10.5px}
}

/* ── 記録タブ：段ばしご（距離の帯つき） ───────────────────── */
.jrd .jrd-row{padding:9px 13px;display:flex;flex-direction:column;gap:3px}
.jrd .jrd-row+.jrd-row{border-top:1px solid var(--line-2)}
.jrd .jrd-row.ic{background:var(--gold-soft)}
.jrd .jrd-row.ic .rec-lb{color:#8a6410}
.jrd .jrd-row.ic .rec-t{color:#523808}
.jrd .jrd-row.jp .rec-lb{color:var(--navy)}
.jrd .jrd-row.univ .rec-lb{color:var(--cyan)}
.jrd-top{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.jrd-top .rec-lb{min-width:86px}
.jrd-bar{display:flex;align-items:center;gap:8px}
.jrd-bar::before{content:"";display:block;min-width:86px}
.jrd-track{flex:1;height:6px;border-radius:3px;background:var(--line-2);position:relative;overflow:hidden}
.jrd-row.ic .jrd-track{background:#f3e7c4}
.jrd-origin{position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--navy)}
.jrd-fill{position:absolute;left:0;top:0;bottom:0;border-radius:3px;background:var(--navy-2)}
.jrd-fill.u23{background:var(--cyan)}
.jrd-fill.univ{background:var(--cyan)}
.jrd-fill.ic{background:#d99a16}
.jrd-gap{width:64px;text-align:right;font-size:10px;font-weight:800;color:var(--sub);white-space:nowrap}
.jrd-gap.hot{color:#c0224a}
.jrl-row.ic{background:var(--gold-soft)}
.jrl-row.ic .jrl-m{color:#8a6410}

/* ── 記録タブ：全記録 短い順（バーの長さ＝タイム） ─────────────── */
.jrs-legend{display:flex;flex-wrap:wrap;gap:10px;margin:0 2px 6px;font-size:10px;font-weight:700;color:var(--sub)}
.jrs-legend span{display:inline-flex;align-items:center;gap:4px}
.jrs-sw{display:inline-block;width:14px;height:8px;border-radius:0 3px 3px 0}
.jrs-sw.wbt,.jrs-bar.wbt{background:var(--ink)}
.jrs-sw.u23,.jrs-bar.u23{background:#7c8aa6}   /* 白抜きだと白い行の上で見えないので塗りに */
.jrs-sw.jp,.jrs-bar.jp{background:var(--navy-2)}
.jrs-sw.univ,.jrs-bar.univ{background:var(--cyan)}
.jrs-sw.ic,.jrs-bar.ic{background:#d99a16}
.jrs-axis{display:flex;align-items:center;gap:8px;margin:0 0 4px;padding:0 12px}
.jrs-axis-pad{width:110px;flex:none}          /* 順位18 + 種目34 + 区分58 の合計 */
.jrs-axis-track{flex:1;position:relative;height:14px}
.jrs-axis-track b{position:absolute;transform:translateX(-50%);font-size:10px;color:var(--mut)}
.jrs-axis-t{width:46px;flex:none}
.jrs{border:1px solid var(--line);border-radius:var(--r-md);overflow:hidden;background:var(--surface)}
.jrs-row{display:grid;grid-template-columns:18px 34px 58px 1fr 46px;gap:8px;align-items:center;width:100%;height:22px;
  padding:0 12px;border:none;border-bottom:1px solid var(--line-2);background:var(--surface);cursor:pointer;text-align:left;font-family:var(--jp)}
.jrs-row:last-child{border-bottom:none}
.jrs-row.same{background:var(--gold-soft)}
.jrs-row.open{background:#f8edc9}
.jrs-rk{font-size:10px;color:var(--mut)}
.jrs-ev{font-size:11px;font-weight:900}
.jrs-row.gm .jrs-ev{color:#0c7a6a}
.jrs-row.gw .jrs-ev{color:#c2185b}
.jrs-tier{font-size:9px;font-weight:900;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jrs-tier.ic{color:#8a6410}
.jrs-track{position:relative;height:22px;min-width:0}
.jrs-grid{position:absolute;top:0;bottom:0;width:1px;background:var(--line-2)}
.jrs-bar{position:absolute;left:0;top:6px;height:10px;border-radius:0 4px 4px 0}
.jrs-t{font-size:12px;color:var(--ink);text-align:right}
.jrs-detail{padding:4px 12px 14px;background:var(--surface-2);border-bottom:1px solid var(--line)}
.jrs-detail .recbox,.jrs-detail .jrl{background:var(--surface)}
@media(max-width:420px){
  .jrs-row{grid-template-columns:16px 32px 52px 1fr 44px;gap:6px;padding:0 10px}
  .jrs-axis{padding:0 10px}.jrs-axis-pad{width:100px}.jrs-axis-t{width:44px}
  .jrs-tier{font-size:8.5px}
}

/* 記録タブ：表示形式の切替と「種目ごと」（案H） */
.mtoggle.jrv{margin:0 0 10px}
.jrb-blk{border-bottom:1px solid var(--line);padding:0 0 6px}
.jrb-blk:last-child{border-bottom:none}
.jrb-blk.open{background:var(--gold-soft)}
.jrb-hd{display:flex;align-items:baseline;gap:8px;width:100%;padding:9px 12px 5px;border:none;background:none;
  cursor:pointer;text-align:left;font-family:var(--jp)}
.jrb-ev{font-size:12.5px;font-weight:900}
.jrb-blk.gm .jrb-ev{color:#0c7a6a}
.jrb-blk.gw .jrb-ev{color:#c2185b}

.jrb-nm{font-size:10px;font-weight:700;color:var(--mut);min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jrb-x{margin-left:auto;font-size:9.5px;font-weight:800;color:var(--navy-2);white-space:nowrap}
.jrb-row{display:grid;grid-template-columns:58px 1fr 46px;gap:8px;align-items:center;height:20px;padding:0 12px;
  width:100%;border:none;background:none;text-align:left;font-family:var(--jp);cursor:pointer}
.jrb-row.on{background:var(--gold-soft)}
.jrb-lb{font-size:9px;font-weight:900;color:var(--sub);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.jrb-lb.ic{color:#8a6410}
.jrb-none{padding:3px 12px 4px 70px;font-size:9.5px;color:var(--mut)}
.jrb .jrs-detail{margin-top:4px}
@media(max-width:420px){
  .jrb-row{grid-template-columns:52px 1fr 44px;gap:6px;padding:0 10px}
  .jrb-hd{padding:9px 10px 5px}
  .jrb-none{padding-left:62px}
}

/* 記録タブ：世界🌎／日本🇯🇵の旗マーク */
.jrs-flag{font-size:11.5px;margin-right:2px;font-style:normal}
.jrs-lghint{color:var(--mut);font-weight:700}

/* バーをタップしたときの「誰が・いつ・どこで」 */
.jrb-det{padding:3px 12px 7px 70px;font-size:10.5px;line-height:1.7;color:var(--sub);background:var(--gold-soft)}
.jrb-det b{color:var(--ink);font-weight:800}
.jrb-det.top{background:none;padding:6px 2px 2px;border-bottom:1px dashed var(--line);margin-bottom:6px}
.jrb-det-note{display:block;font-size:9.5px;color:var(--mut)}
@media(max-width:420px){ .jrb-det{padding-left:62px} }

/* 大学別の詳細：男女で色分け＋1行で読めるレイアウト */
.jru-hd{display:flex;align-items:baseline;gap:7px;margin:14px 2px 7px;font-size:12px;font-weight:900}
.jru-hd.gm{color:#0c7a6a}
.jru-hd.gw{color:#c2185b}
.jru-hd.gl{color:var(--sub)}
.jru-hdn{font-size:9.5px;font-weight:700;color:var(--mut)}
.jru-row{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--surface);
  border-bottom:1px solid var(--line-2)}
.jru-row:last-child{border-bottom:none}
.jru-row.best{background:var(--gold-soft)}
.jru-ev{font-size:10.5px;font-weight:900;padding:2px 8px;border-radius:6px;flex:none}
.jru-row.gm .jru-ev{background:#eef7f5;color:#0c7a6a}
.jru-row.gw .jru-ev{background:#fdf0f6;color:#c2185b}

.jru-t{font-size:16px;font-style:italic;letter-spacing:-.01em}
.jru-gap{font-size:10px;font-weight:800;color:var(--sub)}
.jru-star{font-size:10px;font-weight:900;color:#8a6410;background:#fff;border:1px solid #eeddb0;border-radius:5px;padding:1px 6px}
.jru-sub{margin-left:auto;font-size:10px;font-weight:700;color:var(--mut);white-space:nowrap}
@media(max-width:420px){
  .jru-sub{flex-basis:100%;text-align:right;margin-top:-2px}
}

/* 優勝の推移：年タップで開く「その年の種目と優勝」 */
.sizecol.sel .sizebar{outline:2px solid #d99a16;outline-offset:1px;border-radius:4px}
.yeardetail{margin:10px 0 4px;padding:10px 12px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}
.yd-hd{font-size:11.5px;color:var(--sub);font-weight:700;margin:0 0 7px}
.yd-hd b{font-size:13px;color:var(--ink);font-weight:900;margin-right:2px}
.yd-n{margin-left:8px;font-size:10px;color:var(--mut)}
.yd-list{display:flex;flex-wrap:wrap;gap:5px}
.yd-item{display:inline-flex;align-items:baseline;gap:5px;font-size:11px;font-weight:700;color:var(--ink);
  border:1px solid var(--line);border-radius:7px;padding:4px 8px;background:var(--surface)}
.yd-item b{font-size:10.5px;font-weight:900}
.yd-item.gm b{color:#0c7a6a}
.yd-item.gw b{color:#c2185b}
.yd-none{font-size:11px;color:var(--mut);margin:0}

/* 組み合わせ確定後：レーン番号のバッジ */
/* レーン番号。数字だけだと何の数か分からないので「レーン」の字を必ず添える */
.tmx-lane{font-style:normal;font-size:8.5px;font-weight:900;color:var(--navy-2);background:#e9f0ff;
  border:1px solid #c5d8ff;border-radius:4px;padding:0 4px;line-height:1.6;margin-left:2px;white-space:nowrap}
.tmx-lane span{font-size:7.5px;font-weight:800;margin-left:1px;opacity:.85}
.tmx-r.afinal .tmx-lane{color:#8a6410;background:#fdf6e3;border-color:#eeddb0}
.tmx-leg-lane{display:inline-flex;align-items:center;gap:3px}
.tmx-leg-lane .tmx-lane{margin-left:0}

/* 進出条件チップ（レースNo横。例: 2+2 → 準々決勝） */
.rc-progchip{display:inline-block;margin-left:8px;padding:1px 8px;border-radius:999px;
  font-style:normal;font-weight:800;font-size:10px;letter-spacing:.02em;white-space:nowrap;
  color:var(--gold-2);border:1px solid var(--gold-line);background:rgba(212,175,55,.10)}

/* お気に入り登録（エントリータブ先頭） */
.favreg{margin:0 0 20px}
.frchips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px;align-items:center}
.frchips.now{margin-top:12px}
.frlbl{font-size:11px;font-weight:800;color:var(--mut)}
.frchip{display:inline-flex;align-items:center;gap:5px;padding:7px 12px;border-radius:999px;
  border:1.5px solid var(--line);background:var(--card);color:var(--ink);
  font-size:12.5px;font-weight:800;cursor:pointer}
.frchip .st{color:var(--mut);font-size:13px}
.frchip.on{border-color:var(--gold-line);background:var(--gold-soft)}
.frchip.on .st{color:var(--gold-2)}
.frchip .x{margin-left:2px;color:var(--mut);font-weight:900}
.frnone{margin-top:10px;font-size:12px;color:var(--mut)}

/* 進出条件チップの解説（チップをタップで開閉） */
.rc-progchip{cursor:pointer;font-family:inherit;line-height:1.5}
.rc-progchip.on{background:rgba(212,175,55,.22)}
.rc-prognote{display:block;margin:5px 0 3px;padding:6px 9px;border-radius:8px;
  font-style:normal;font-weight:700;font-size:11px;line-height:1.7;letter-spacing:.01em;
  color:rgba(255,255,255,.82);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12)}

/* チーム別進出状況：準々チップ */
.progchip.prog-q,.pgt-btag.prog-q{color:#0c7a6a;border-color:rgba(12,122,106,.4);background:rgba(12,122,106,.08)}

/* チーム別進出状況：予選前（未出場）チップは控えめに */
.progchip.prog-wait,.pgt-btag.prog-wait{color:var(--mut);border-color:var(--line);background:transparent;font-weight:700}

/* 進出状況ドリル：予選全体順位 */
.pgt-crank{margin-left:auto;flex:none;font-size:10.5px;font-weight:800;color:var(--mut);white-space:nowrap}

/* ============ 大会タブ：予選ランキング ============ */
.qr-sec{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:12px}
.qr-hd{display:flex;align-items:center;gap:8px;padding:2px 0 8px;font-size:13.5px;color:var(--ink)}
.qr-code{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:#1d4ed8;background:rgba(29,78,216,.08);border-radius:6px;padding:2px 7px}
.qr-code.w{color:#c2185b;background:rgba(194,24,91,.08)}
.qr-n{margin-left:auto;font-size:10.5px;color:var(--mut);font-weight:700}
.qr-list{display:flex;flex-direction:column}
.qr-row{display:flex;align-items:center;gap:7px;padding:6px 2px;border-top:1px dashed var(--line);cursor:pointer}
.qr-rk{flex:none;width:22px;text-align:right;font-family:var(--cond);font-style:italic;font-weight:800;font-size:13px;color:var(--mut)}
.qr-row:nth-child(1) .qr-rk,.qr-row:nth-child(2) .qr-rk,.qr-row:nth-child(3) .qr-rk{color:var(--gold-2)}
.qr-nm{min-width:0;font-size:12.5px;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.qr-nm i{font-style:normal;font-weight:600;font-size:10px;color:var(--mut);margin-left:5px}
.qr-meta{flex:none;font-size:9.5px;color:var(--mut);font-weight:600}
.qr-t{flex:none;margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12.5px;color:var(--ink)}
.qr-dest{flex:none;font-size:9.5px;font-weight:800;color:#0a7d5c;white-space:nowrap}
.qr-dest.low{color:var(--mut)}

/* レース再現：お気に入りクルーの強調（金の帯＋★＋艇の光） */
.rrlane.fav{background:linear-gradient(90deg,rgba(212,175,55,.16),rgba(212,175,55,.03) 72%,transparent);border-radius:6px}
.rrlane.fav .rrrank{color:var(--gold-2)}
.rrlane.fav .rrnm{font-weight:900}
.rrboat.fav .rrhull{filter:drop-shadow(0 0 4px var(--gold-2))}

/* お気に入り登録＝案B応援バナー（紺→金グラデ・エントリー/日程共通） */
.favreg.bnr{position:relative;overflow:hidden;background:linear-gradient(118deg,#0b1f44 22%,#143a7a 78%,#b8860f 165%);
  border-radius:var(--r-lg);padding:15px 14px;color:#fff;box-shadow:var(--shadow-card)}
.favreg.bnr::after{content:"";position:absolute;right:-30px;top:-46px;width:160px;height:160px;pointer-events:none;
  background:radial-gradient(circle,rgba(244,194,68,.38),rgba(244,194,68,0) 65%)}
.favreg.bnr .fb-hd{display:flex;align-items:center;gap:9px;font-size:16px;font-weight:900;letter-spacing:.02em}
.favreg.bnr .fb-sub{font-size:11px;color:rgba(255,255,255,.78);margin:4px 0 11px}
.favreg.bnr .search{background:#fff;border:none;box-shadow:0 3px 10px rgba(0,0,0,.28)}
.favreg.bnr .frlbl{color:rgba(255,255,255,.72)}
.favreg.bnr .frnone{color:rgba(255,255,255,.8)}
.favreg.bnr .frchip.on{background:rgba(244,194,68,.18);border-color:rgba(244,194,68,.6);color:#ffe9a8}
.favreg.bnr .frchip.on .st{color:var(--gold-2)}
.favreg.bnr .frchip.on .x{color:rgba(255,255,255,.65)}
/* 日程タブでは下の日付セレクタと間隔を取る */
.view .favreg.bnr{margin-bottom:16px}

/* 日程タブ「お気に入りのみ」＝応援バナーと同じ紺×金の意匠で大きく（本人指示） */
.favonly{display:inline-flex;align-items:center;gap:7px;padding:10px 24px;border-radius:999px;
  font-family:inherit;font-size:14px;font-weight:900;letter-spacing:.02em;cursor:pointer;
  color:#9a6c0f;background:#fff;border:1.5px solid var(--gold-line);
  box-shadow:0 3px 12px rgba(221,155,24,.20);transition:transform .12s ease}
.favonly:active{transform:scale(.97)}
.favonly .st{color:var(--gold-2);font-size:16px;line-height:1}
.favonly.on{color:#fff;background:linear-gradient(118deg,#0b1f44 22%,#143a7a 78%,#b8860f 165%);
  border-color:rgba(244,194,68,.65);box-shadow:0 4px 16px rgba(11,31,68,.30)}

/* 進出状況：A決勝の結果チップ（金・銀・銅・4位/入賞） */
.progchip.prog-gold,.pgt-btag.prog-gold{color:#7a5c00;border-color:#e2b93b;background:linear-gradient(135deg,#fbe9b0,#f3cf5f)}
.progchip.prog-silver,.pgt-btag.prog-silver{color:#4a5568;border-color:#b9c2cf;background:linear-gradient(135deg,#f2f5f9,#d9dfe8)}
.progchip.prog-bronze,.pgt-btag.prog-bronze{color:#6d4423;border-color:#cd9a67;background:linear-gradient(135deg,#f4dfc8,#e2b98d)}
.progchip.prog-fourth,.pgt-btag.prog-fourth{color:var(--sub);border-color:var(--line);background:var(--surface-2)}

/* ============ /demo: 新記録まとめ ============ */
.nr-lead{font-size:12.5px;line-height:1.9;color:var(--sub);background:var(--card);border:1px solid var(--line);border-radius:14px;padding:12px 14px;margin-bottom:12px}
.nr-list{display:flex;flex-direction:column;gap:8px}
.nr-row{display:flex;align-items:center;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:10px 12px}
.nr-ev{flex:none;width:44px;text-align:center;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:#1d4ed8;background:rgba(29,78,216,.08);border-radius:7px;padding:4px 0}
.nr-ev.w{color:#c2185b;background:rgba(194,24,91,.08)}
.nr-body{min-width:0;display:flex;flex-direction:column;gap:2px}
.nr-team{font-size:13.5px;font-weight:800;color:var(--ink)}
.nr-old{font-style:normal;font-size:10.5px;color:var(--mut);font-weight:600}
.nr-time{margin-left:auto;text-align:right;display:flex;flex-direction:column;gap:1px}
.nr-time b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:16px;color:var(--ink)}
.nr-gain{font-style:normal;font-size:11px;font-weight:900;color:#0a7d5c}
.nr-note{margin-top:12px;font-size:11px;color:var(--mut);line-height:1.8}
/* 大会後エントリー案 */
.pe-div{font-size:12px;font-weight:900;color:var(--sub);margin:16px 2px 8px}
.pe-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.pe-card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 11px;cursor:pointer;box-shadow:var(--shadow-card)}
.pe-hd{display:flex;align-items:center;gap:7px;margin-bottom:7px}
.pe-code{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11.5px;color:#1d4ed8;background:rgba(29,78,216,.08);border-radius:6px;padding:2px 7px}
.pe-card.w .pe-code{color:#c2185b;background:rgba(194,24,91,.08)}
.pe-name{font-size:11.5px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pe-row{display:flex;align-items:center;gap:6px;padding:3px 0;font-size:11.5px}
.pe-medal{flex:none;width:20px;height:20px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:900;color:#7a5c00;background:linear-gradient(135deg,#fbe9b0,#f3cf5f)}
.pe-row.m2 .pe-medal{color:#4a5568;background:linear-gradient(135deg,#f2f5f9,#d9dfe8)}
.pe-row.m3 .pe-medal{color:#6d4423;background:linear-gradient(135deg,#f4dfc8,#e2b98d)}
.pe-team{min-width:0;font-weight:700;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pe-time{margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;color:var(--sub)}
.pe-none{font-size:11px;color:var(--mut)}

/* /demo2: 仮想対戦 */
.vs-pick{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:10px 12px;margin-bottom:12px}
.vs-pickhd{display:flex;align-items:center;font-size:12px;font-weight:900;color:var(--sub);padding-bottom:6px}
.vs-n{margin-left:auto;font-size:11px;color:var(--gold-2);font-weight:800}
.vs-crew{display:flex;align-items:center;gap:8px;width:100%;text-align:left;background:none;border:none;border-top:1px dashed var(--line);padding:7px 2px;cursor:pointer;font-family:inherit}
.vs-crew .vs-rk{flex:none;width:20px;text-align:right;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:var(--mut)}
.vs-crew .vs-nm{min-width:0;font-size:12.5px;font-weight:800;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vs-crew .vs-nm i{font-style:normal;font-weight:600;font-size:10px;color:var(--mut);margin-left:5px}
.vs-crew .vs-from{flex:none;font-size:9.5px;color:var(--mut);font-weight:700}
.vs-crew .vs-t{flex:none;margin-left:auto;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12.5px;color:var(--ink)}
.vs-crew.on{background:var(--gold-soft);border-radius:8px}
.vs-crew.on .vs-nm{color:#7a5c00}
.vswrap{padding-bottom:10px}
.vs-restart{display:block;margin:10px auto 0;background:none;border:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.8);border-radius:999px;padding:6px 16px;font-size:11px;font-weight:800;cursor:pointer;font-family:inherit}
/* PostHomeView — 大会終了後ホーム（接頭辞 ph2-） */

.ph2-root {
  display: flex;
  flex-direction: column;
  gap: 28px;
  color: var(--ink);
}

/* ---------- 1) 総括ヘッダ ---------- */

.ph2-hero {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-card);
  padding: 22px 20px 18px;
  text-align: center;
  position: relative;
  overflow: hidden;
}
.ph2-hero::before {
  content: "";
  position: absolute;
  inset: 0 0 auto 0;
  height: 4px;
  background: linear-gradient(90deg, var(--men), var(--gold-2), var(--women));
}
.ph2-hero-eyebrow {
  font-family: var(--cond);
  font-style: italic;
  font-size: 12px;
  letter-spacing: 0.14em;
  color: var(--gold-2);
  margin: 0 0 4px;
}
.ph2-hero-title {
  font-size: 20px;
  font-weight: 800;
  margin: 0 0 14px;
}
.ph2-hero-facts {
  display: flex;
  justify-content: center;
  gap: 8px;
}
.ph2-fact {
  min-width: 88px;
  padding: 10px 12px;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: color-mix(in srgb, var(--card) 60%, transparent);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 2px;
}
.ph2-fact-num {
  font-family: var(--cond);
  font-style: italic;
  font-size: 30px;
  line-height: 1;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.ph2-fact-label {
  font-size: 11px;
  color: var(--sub);
}
.ph2-hero-note {
  margin: 12px 0 0;
  font-size: 12px;
  color: var(--mut);
}

/* ---------- 共通: セクション見出し ---------- */

.ph2-sec {
  display: flex;
  flex-direction: column;
  gap: 12px;
}
.ph2-sec-head {
  display: flex;
  flex-direction: column;
  gap: 2px;
  padding: 0 2px;
}
.ph2-sec-title {
  font-size: 15px;
  font-weight: 800;
  margin: 0;
  color: var(--ink);
}
.ph2-sec-sub {
  margin: 0;
  font-size: 12px;
  color: var(--sub);
}

/* ---------- 2) チャンピオンのカード列 ---------- */

.ph2-champ-row {
  display: flex;
  gap: 10px;
  overflow-x: auto;
  padding: 4px 2px 10px;
  scroll-snap-type: x proximity;
  -webkit-overflow-scrolling: touch;
}
.ph2-champ {
  scroll-snap-align: start;
  flex: 0 0 168px;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 3px;
  text-align: left;
  background: var(--card);
  border: 1px solid var(--line);
  border-top: 3px solid var(--gold-2);
  border-radius: 12px;
  box-shadow: var(--shadow-card);
  padding: 12px 12px 12px;
  cursor: pointer;
  font: inherit;
  color: var(--ink);
  transition: transform 0.12s ease, box-shadow 0.12s ease;
}
.ph2-champ:hover,
.ph2-champ:focus-visible {
  transform: translateY(-2px);
}
.ph2-champ-medal {
  align-self: flex-end;
  width: 24px;
  height: 24px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-size: 12px;
  font-weight: 800;
  color: #6b4e00;
  background: linear-gradient(150deg, #ffe9a8, var(--gold-2) 70%);
  border: 1px solid color-mix(in srgb, var(--gold-2) 70%, #8a6a00);
  margin-bottom: -20px; /* 種目名の行と重ねて右上に置く */
}
.ph2-champ-ev {
  font-size: 12px;
  font-weight: 700;
  max-width: calc(100% - 28px);
}
.ph2-champ[data-cat="m"] .ph2-champ-ev { color: var(--men); }
.ph2-champ[data-cat="w"] .ph2-champ-ev { color: var(--women); }
.ph2-champ-div {
  font-size: 10px;
  color: var(--mut);
}
.ph2-champ-main {
  margin-top: 6px;
  font-size: 15px;
  font-weight: 800;
  line-height: 1.3;
  overflow-wrap: anywhere;
}
.ph2-champ-team {
  font-size: 11px;
  color: var(--sub);
}
.ph2-champ-time {
  margin-top: 4px;
  font-family: var(--cond);
  font-style: italic;
  font-size: 17px;
  font-weight: 700;
  color: var(--ink);
  font-variant-numeric: tabular-nums;
}
.ph2-champ-pending {
  color: var(--mut);
  font-weight: 600;
}

/* ---------- 3) 新記録ダイジェスト ---------- */

.ph2-rec-list {
  list-style: none;
  margin: 0;
  padding: 0;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.ph2-rec {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 14px;
}
.ph2-rec + .ph2-rec {
  border-top: 1px solid var(--line);
}
.ph2-rec-rank {
  flex: 0 0 24px;
  height: 24px;
  border-radius: 50%;
  display: grid;
  place-items: center;
  font-family: var(--cond);
  font-style: italic;
  font-size: 13px;
  font-weight: 700;
  color: var(--sub);
  border: 1px solid var(--line);
}
.ph2-rec:first-child .ph2-rec-rank {
  color: #6b4e00;
  background: linear-gradient(150deg, #ffe9a8, var(--gold-2) 70%);
  border-color: color-mix(in srgb, var(--gold-2) 70%, #8a6a00);
}
.ph2-rec-body {
  flex: 1 1 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.ph2-rec-line1 {
  display: flex;
  align-items: baseline;
  gap: 8px;
  flex-wrap: wrap;
}
.ph2-rec-ev {
  font-size: 12px;
  font-weight: 700;
  color: var(--sub);
}
.ph2-rec-team {
  font-size: 14px;
  font-weight: 800;
  color: var(--ink);
}
.ph2-rec-line2 {
  display: flex;
  align-items: baseline;
  gap: 10px;
  flex-wrap: wrap;
}
.ph2-rec-time {
  font-family: var(--cond);
  font-style: italic;
  font-size: 16px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}
.ph2-rec-old {
  font-size: 11px;
  color: var(--mut);
}
.ph2-rec-gain {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  color: #6b4e00;
  background: color-mix(in srgb, var(--gold-2) 24%, var(--card));
  border: 1px solid color-mix(in srgb, var(--gold-2) 55%, var(--line));
  border-radius: 999px;
  padding: 3px 9px;
  white-space: nowrap;
}
.ph2-rec-more {
  align-self: flex-start;
  font: inherit;
  font-size: 13px;
  font-weight: 700;
  color: var(--ink);
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 8px 16px;
  cursor: pointer;
  box-shadow: var(--shadow-card);
}
.ph2-rec-more:hover {
  border-color: var(--gold-2);
}

/* ---------- 4) タブ案内 ---------- */

.ph2-guide {
  display: flex;
  flex-direction: column;
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.ph2-guide-row {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 13px 14px;
  font: inherit;
  text-align: left;
  background: none;
  border: none;
  cursor: pointer;
  color: var(--ink);
}
.ph2-guide-row + .ph2-guide-row {
  border-top: 1px solid var(--line);
}
.ph2-guide-row:hover {
  background: color-mix(in srgb, var(--gold-2) 7%, var(--card));
}
.ph2-guide-key {
  flex: 0 0 auto;
  font-size: 13px;
  font-weight: 800;
}
.ph2-guide-desc {
  flex: 1 1 auto;
  min-width: 0;
  font-size: 12px;
  color: var(--sub);
}
.ph2-guide-tab {
  flex: 0 0 auto;
  font-size: 11px;
  font-weight: 700;
  color: var(--sub);
  border: 1px solid var(--line);
  border-radius: 999px;
  padding: 3px 10px;
  white-space: nowrap;
}
.ph2-guide-tab::after {
  content: " →";
}

/* 狭い画面 */
@media (max-width: 480px) {
  .ph2-hero-facts { gap: 6px; }
  .ph2-fact { min-width: 0; flex: 1 1 0; }
  .ph2-guide-desc { display: none; }
}
/* ============================================================
   HighlightsView — 大会ハイライト自動まとめ（接頭辞 hl2-）
   ============================================================ */

.hl2 {
  max-width: 860px;
  margin: 0 auto;
  padding: 20px 14px 48px;
  color: var(--ink);
}

/* ---- 見出し ---- */
.hl2-head { margin-bottom: 18px; }
.hl2-title {
  margin: 0 0 6px;
  font-size: 22px;
  font-weight: 800;
  letter-spacing: .02em;
}
.hl2-lead {
  margin: 0;
  font-size: 13px;
  color: var(--sub);
}

/* ---- セクション ---- */
.hl2-grid {
  display: flex;
  flex-direction: column;
  gap: 22px;
}
.hl2-sec {
  background: var(--card);
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: var(--shadow-card);
  overflow: hidden;
}
.hl2-sec-head {
  padding: 14px 16px 10px;
  border-bottom: 1px solid var(--line);
}
.hl2-sec-title {
  margin: 0 0 4px;
  font-size: 16px;
  font-weight: 800;
  letter-spacing: .04em;
}
.hl2-sec-note {
  margin: 0;
  font-size: 12px;
  color: var(--sub);
}

/* ---- 行 ---- */
.hl2-list {
  list-style: none;
  margin: 0;
  padding: 0;
  counter-reset: hl2n;
}
.hl2-row {
  counter-increment: hl2n;
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 4px 14px;
  padding: 12px 16px 12px 44px;
  position: relative;
  border-bottom: 1px solid var(--line);
}
.hl2-row:last-child { border-bottom: none; }
.hl2-row::before {
  content: counter(hl2n);
  position: absolute;
  left: 15px;
  top: 14px;
  width: 20px;
  height: 20px;
  border-radius: 50%;
  border: 1px solid var(--line);
  color: var(--sub);
  font-size: 11px;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* 写真判定級の行はうっすら金色の帯 */
.hl2-row--photo {
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--gold-2) 12%, transparent),
    transparent 65%);
}

/* ---- 左側：レース情報 ---- */
.hl2-race {
  grid-column: 1;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
}
.hl2-code {
  display: inline-block;
  padding: 1px 7px;
  border-radius: 5px;
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .06em;
  text-transform: uppercase;
  color: #fff;
}
.hl2-code--m { background: var(--men); }
.hl2-code--w { background: var(--women); }
.hl2-evname {
  font-size: 12px;
  color: var(--sub);
}
.hl2-round {
  font-size: 12px;
  font-weight: 700;
  color: var(--ink);
  border: 1px solid var(--line);
  border-radius: 5px;
  padding: 0 6px;
}

/* ---- 中央：当事者 ---- */
.hl2-body { grid-column: 1; min-width: 0; }
.hl2-who {
  font-size: 14px;
  font-weight: 700;
  line-height: 1.5;
  overflow-wrap: anywhere;
}
.hl2-vs {
  margin: 0 6px;
  font-size: 12px;
  font-weight: 400;
  color: var(--mut);
}
.hl2-detail {
  margin-top: 2px;
  font-size: 12px;
  color: var(--sub);
  font-variant-numeric: tabular-nums;
}

/* ---- 右側：数値 ---- */
.hl2-num {
  grid-column: 2;
  grid-row: 1 / span 2;
  align-self: center;
  text-align: right;
  display: flex;
  flex-direction: column;
  align-items: flex-end;
  gap: 3px;
  white-space: nowrap;
}
.hl2-num-v {
  font-family: var(--cond);
  font-style: italic;
  font-size: 20px;
  font-weight: 800;
  letter-spacing: .01em;
  font-variant-numeric: tabular-nums;
}
.hl2-num-l {
  font-size: 11px;
  color: var(--sub);
}
.hl2-band {
  font-size: 10px;
  font-weight: 800;
  letter-spacing: .08em;
  color: color-mix(in srgb, var(--gold-2) 70%, var(--ink));
  border: 1px solid color-mix(in srgb, var(--gold-2) 55%, transparent);
  background: color-mix(in srgb, var(--gold-2) 14%, transparent);
  border-radius: 4px;
  padding: 1px 6px;
}

/* ---- 空表示 ---- */
.hl2-empty {
  margin: 0;
  padding: 16px;
  font-size: 13px;
  color: var(--mut);
}

/* ---- 狭い画面 ---- */
@media (max-width: 560px) {
  .hl2-row {
    grid-template-columns: 1fr;
    padding-left: 40px;
  }
  .hl2-num {
    grid-column: 1;
    grid-row: auto;
    flex-direction: row;
    align-items: baseline;
    justify-content: flex-start;
    gap: 8px;
    margin-top: 2px;
  }
  .hl2-num-v { font-size: 18px; }
}

/* ====================== CHAMPIONS（栄冠タブ） ======================
   champions.jsx 専用。既存のセレクタは触らず、.ch- で始まる名前だけを足している。
   色・角丸・影はすべて既存の変数を使うので、テーマ（W2）でもそのまま追従する。 */
.ch-lead{font-size:11.5px;line-height:1.8;color:var(--sub);margin:0 2px 13px}
.ch-src{font-size:10.5px;line-height:1.85;color:var(--mut);margin:14px 2px 0}
.ch-src a{color:var(--ph-ink)}
.ch-sp{flex:1}

/* 学校名・都道府県・選手名・タイム（1行の中身） */
.ch-nm{flex:1;min-width:0;display:flex;align-items:baseline;gap:6px;flex-wrap:wrap}
.ch-nm b{font-size:13px;font-weight:800;color:var(--ink)}
.ch-nm b.ch-gold{color:var(--gold)}
.ch-ath{font-size:11px;font-weight:700;color:var(--sub)}
.ch-ath::before{content:"（"}
.ch-ath::after{content:"）"}
.ch-pref{font-size:10.5px;font-weight:700;color:var(--mut)}
.ch-t{font-family:var(--cond);font-style:italic;font-weight:800;font-variant-numeric:tabular-nums;
  font-size:13.5px;color:var(--sub);white-space:nowrap;flex:none}
.ch-t.g{color:var(--gold)}

/* ① 学校別ランキング（メダル表と同じ .mbt-chart の中で使う） */
.ch-legend{display:flex;gap:14px;margin:0 4px 8px;font-size:10.5px;font-weight:700;color:var(--mut)}
.ch-legend span{display:inline-flex;align-items:center;gap:5px}
.ch-dot{width:9px;height:9px;border-radius:2px;display:inline-block}
.ch-dot.m,.ch-seg.m{background:var(--men)}
.ch-dot.w,.ch-seg.w{background:var(--women)}
.ch-row{display:flex;align-items:center;gap:8px;padding:8px 0;cursor:pointer}
.ch-row:active{opacity:.7}
.ch-tm{flex:none;width:112px;display:flex;flex-direction:column;line-height:1.25;min-width:0}
.ch-tm b{font-size:12px;font-weight:800;color:var(--ink);word-break:break-all}
.ch-tm .ch-pref{font-size:10px}
@media (max-width:389px){.ch-tm{width:100px}}
.ch-bar{flex:1;min-width:22px;height:13px;border-radius:4px;background:var(--surface-3);overflow:hidden}
.ch-fill{display:flex;height:100%;border-radius:4px;overflow:hidden}
.ch-seg{height:100%;display:block}
.ch-cnt{flex:none;width:46px;text-align:right;font-size:10px;font-weight:700;color:var(--mut)}
.ch-cnt b{font-family:var(--cond);font-style:italic;font-weight:800;font-size:15px;color:var(--gold);margin-right:2px}
.ch-det{padding:2px 4px 12px 26px}
.ch-detline{font-size:11px;font-weight:700;color:var(--sub);margin-bottom:7px}
.ch-wchips{display:flex;flex-wrap:wrap;gap:5px}
.ch-wchip{font-size:10px;font-weight:700;color:var(--sub);background:var(--surface-3);border:1px solid var(--line);
  border-radius:5px;padding:2px 7px;white-space:nowrap}
.ch-wchip b{font-family:var(--cond);font-style:italic;font-weight:800;color:var(--gold);margin-right:4px}
.ch-golink{appearance:none;-webkit-appearance:none;border:0;background:none;cursor:pointer;font-family:inherit;
  font-size:11.5px;font-weight:800;color:var(--ph-ink);padding:9px 0 0;text-align:left}

/* ②③ 回ごとのブロック */
.ch-ed{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);
  box-shadow:var(--shadow-card);padding:10px 13px 11px;margin-bottom:9px}
.ch-edhd{display:flex;align-items:baseline;gap:8px;padding-bottom:7px;margin-bottom:5px;border-bottom:1px solid var(--line-2)}
.ch-edn{font-size:12.5px;font-weight:800;color:var(--ink);flex:none}
.ch-yr{font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:var(--mut);flex:none}
.ch-dist{font-family:var(--cond);font-style:italic;font-weight:800;font-size:10px;letter-spacing:.04em;color:var(--sub);
  background:var(--surface-3);border-radius:5px;padding:1px 7px;flex:none;white-space:nowrap}
.ch-win,.ch-pod{display:flex;align-items:center;gap:8px;padding:5px 0}
.ch-win+.ch-win,.ch-pod+.ch-pod{border-top:1px solid var(--line-2)}
.ch-prk{flex:none;width:30px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12px;color:var(--mut)}
.ch-prk.g{color:var(--gold)}
.ch-prk.s{color:#8b93a2}
.ch-prk.b{color:#b57a45}
.ch-noteline{font-size:10.5px;line-height:1.7;color:#a3670a;background:var(--gold-soft);border-radius:6px;
  padding:5px 8px;margin:4px 0 2px}
.ch-gap{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;background:var(--surface-2);border:1px dashed var(--line);
  border-radius:var(--r-md);padding:9px 13px;margin-bottom:9px}
.ch-gaptx{font-size:11px;font-weight:700;color:var(--mut)}
.ch-stat{font-size:11.5px;line-height:1.75;color:var(--sub);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:9px 12px;margin-bottom:10px}
.ch-stat b.ch-t{margin:0 4px;font-size:15px}
.ch-more{display:block;width:100%;appearance:none;-webkit-appearance:none;cursor:pointer;font-family:inherit;
  font-size:12px;font-weight:800;color:var(--sub);background:var(--surface);border:1px solid var(--line);
  border-radius:var(--r-md);padding:11px;margin-top:2px}
.ch-more:active{opacity:.7}
/* 栄冠：優勝チップの西暦（第23回（2012年）W4×+） */
.ch-wyr{font-style:normal;font-weight:700;color:var(--mut);margin-right:4px}
/* レースカード：クルー種目の登録メンバー（大会エントリー由来） */
.rc-crew{padding:8px 12px 10px;background:rgba(255,255,255,.05);border-radius:0 0 10px 10px;margin:-2px 0 6px}
.rc-crewnames{display:flex;flex-wrap:wrap;gap:5px}
.rc-cm{font-size:12px;font-weight:700;color:#fff;background:rgba(255,255,255,.10);
  border:1px solid rgba(255,255,255,.16);border-radius:999px;padding:3px 10px}
.rc-cm.sp{color:rgba(255,255,255,.62);background:transparent;border-style:dashed}
.rc-cm.sp i{font-style:normal;font-size:9px;margin-left:5px;color:rgba(255,255,255,.45)}
.rc-crewnote{margin-top:7px;font-size:10px;color:rgba(255,255,255,.5);line-height:1.6}
/* 学校ページ：同じ都道府県の出場校 */
.td-pref{padding:10px 12px;border-bottom:1px solid var(--line)}
.td-prefhd{font-size:11px;font-weight:800;color:var(--sub);display:flex;align-items:center;gap:6px}
.td-prefhd i{font-style:normal;font-weight:700;color:var(--mut);font-size:10px}
.td-prefchips{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}
.td-prefchip{font-size:11px;font-weight:700;color:var(--ink);background:var(--surface-3);
  border:1px solid var(--line);border-radius:999px;padding:4px 10px;cursor:pointer;display:inline-flex;align-items:center;gap:5px}
.td-prefchip:disabled{cursor:default;opacity:.75}
.td-prefchip i{font-style:normal;font-size:9px;font-weight:700;color:var(--mut)}
/* 学校ページ：歴代の成績 */
.td-hist{padding:12px 12px 14px;border-top:1px solid var(--line)}
.td-histed{margin-left:auto;font-size:10px;font-weight:700;color:var(--mut)}
.td-hist .subhead{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.td-hist .ch-detline{margin-bottom:8px}
.ch-wchip.sub b{color:var(--mut)}
.td-hrk{font-style:normal;font-size:9px;font-weight:800;margin-left:5px;padding:1px 5px;border-radius:4px}
.td-hrk.r1{color:#7a5a00;background:rgba(217,154,22,.20)}
.td-hrk.r2{color:var(--sub);background:rgba(150,166,196,.18)}
.td-hrk.r3{color:#7d4a20;background:rgba(180,110,60,.16)}
/* 優勝の印（初優勝・N連覇・X年ぶり）。決勝結果・ホーム・栄冠の年表で共用 */
.chnote{font-style:normal;font-size:10px;font-weight:800;margin-left:6px;padding:2px 6px;border-radius:5px;
  white-space:nowrap;vertical-align:middle;letter-spacing:.02em}
.chnote.first{color:#046b80;background:rgba(15,181,207,.16);border:1px solid rgba(15,181,207,.34)}
.chnote.firstEv{color:#046b80;background:rgba(15,181,207,.10);border:1px solid rgba(15,181,207,.24)}
.chnote.streak{color:#7a5a00;background:rgba(217,154,22,.20);border:1px solid rgba(217,154,22,.38)}
.chnote.return{color:var(--sub);background:var(--surface-3);border:1px solid var(--line)}
/* 大会タブ：都道府県別（メダルランキングの部品 .mbt-* を流用した追加分） */
.pf-tm{width:96px;display:flex;flex-direction:column;gap:1px;line-height:1.25}
.pf-tm i{font-style:normal;font-size:9.5px;font-weight:700;color:var(--mut);letter-spacing:-.01em}
.mbt-seg.pf-seg{background:linear-gradient(180deg,var(--ph-2),var(--ph))}
.mbt-val .pf-fin{font-family:var(--cond);font-style:italic;font-weight:800;font-size:11.5px;color:var(--mut);white-space:nowrap}
.pf-detail{padding-bottom:11px}
.pf-sum{font-size:10.5px;font-weight:700;color:var(--mut);padding:1px 0 6px}
.pf-sum b{font-family:var(--cond);font-style:italic;font-size:12px;color:var(--sub)}
.pf-school{display:flex;align-items:center;flex-wrap:wrap;gap:5px 8px;padding:5px 0;border-top:1px dashed var(--line-2)}
.pf-school:first-of-type{border-top:0}
.pf-name{appearance:none;-webkit-appearance:none;border:0;background:none;padding:0;cursor:pointer;
  font-family:inherit;font-size:11.5px;font-weight:700;color:var(--ink);display:inline-flex;align-items:baseline;gap:5px}
.pf-name:active{opacity:.6}
.pf-name i{font-style:normal;font-size:9.5px;font-weight:700;color:var(--mut)}
.pf-chips{display:flex;flex-wrap:wrap;gap:4px}
.pf-chips .progchip{font-size:9.5px;padding:2px 6px}
@media (max-width:389px){
  .pf-tm{width:82px;font-size:11px}
  .pf-tm i{font-size:9px}
}
