/* ============================================================
   関西選手権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 .h-bg{position:absolute;inset:0;z-index:0;
  background:
    radial-gradient(60% 50% at 88% 18%, rgba(80,200,230,.5) 0%, transparent 60%),
    radial-gradient(80% 70% at 10% 0%, rgba(40,90,200,.4) 0%, transparent 55%),
    linear-gradient(158deg,#06122e 0%,#0d2a5e 48%,#0b3a52 78%,#0d5566 100%)}
.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 .h-scrim{position:absolute;inset:0;z-index:2;pointer-events:none;
  background:linear-gradient(to top,rgba(5,10,24,.94) 3%,rgba(5,10,24,.5) 32%,rgba(5,10,24,.04) 64%,transparent 80%),
    linear-gradient(102deg,rgba(5,10,24,.7) 0%,rgba(5,10,24,.2) 42%,transparent 64%)}
.hero .h-lanes{position:absolute;inset:0;z-index:2;pointer-events:none;opacity:.5;
  background:repeating-linear-gradient(116deg,transparent 0 54px,rgba(255,255,255,.04) 54px 55px)}
.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 94px}

/* 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 ====================== */
.days{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.day{position:relative;border:1px solid var(--line);background:var(--surface);border-radius:var(--r-md);
  padding:10px 6px 11px;cursor:pointer;text-align:center;transition:.15s;overflow:hidden;display:flex;align-items:center;justify-content:center;gap:9px}
.day .dn{font-size:16px;font-weight:900}
.day .dd{font-family:var(--cond);font-style:italic;font-weight:700;font-size:13px;color:var(--mut)}
.day .dr{font-size:10.5px;font-weight:700;color:var(--mut);margin-left:2px}
.day.on{background:var(--panel);border-color:transparent;color:#fff}
.day.on .dd{color:var(--cyan-2)}.day.on .dr{color:rgba(255,255,255,.7)}
.day .liveflag{position:absolute;top:6px;right:8px;width:7px;height:7px;border-radius:50%;background:var(--red)}

.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}
.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:0;border-radius:14px;padding:0;background:var(--surface);
  box-shadow:0 4px 12px rgba(31,107,255,.1);transition:transform .12s,box-shadow .12s}
.evm.w{box-shadow:0 4px 12px rgba(255,45,122,.1)}
.evm:active{transform:scale(.975)}
.evm:hover{box-shadow:0 6px 16px rgba(31,107,255,.18)}
.evm.w:hover{box-shadow:0 6px 16px rgba(255,45,122,.18)}
/* 左：部門色のコード面。左角はカードに合わせて丸める。男子は「SCHEDULE」タグと同じ紺→青グラデ */
.evm-code{flex:none;width:52px;display:flex;align-items:center;justify-content:center;border-radius:14px 0 0 14px;
  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}
.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}
.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}

/* ---- チーム詳細：種目ごとの土日×午前午後カレンダー。決勝に近いラウンドほど鮮やかに ---- */
.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 ====================== */
.bnav{position:fixed;left:50%;transform:translateX(-50%);bottom:0;width:100%;max-width:520px;z-index:50;
  background:rgba(255,255,255,.9);backdrop-filter:blur(18px) saturate(150%);border-top:1px solid var(--line);
  display:grid;grid-auto-flow:column;grid-auto-columns:1fr;padding:7px 2px calc(7px + env(safe-area-inset-bottom));box-shadow:0 -8px 28px rgba(11,31,68,.08)}
.bnav button{appearance:none;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:3px;
  padding:5px 1px;color:var(--mut);font-family:var(--jp);transition:.13s;border-radius:10px;min-width:0}
.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:var(--ph-ink)}
/* アンケートタブを紫系で差別化（誘導率アップ）：非選択でも文字・アイコンを紫に＋淡い紫地 */
.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:700;font-size:10.5px;color:rgba(255,255,255,.5);padding:5px 0 3px}
.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{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 -2px;padding:0 2px}
.hmtable{display:flex;flex-direction:column;gap:3px;width:max-content;min-width:100%}
.hmrow{display:flex;align-items:stretch;gap:3px}
.hmhead{font-size:9px;color:rgba(255,255,255,.4);font-weight:700}
.hmnm{flex:none;width:100px;display:flex;flex-direction:column;justify-content:center;font-size:11px;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:none;width:56px;text-align:center;border-radius:5px;padding:5px 0;font-family:var(--cond);font-style:italic;font-weight:700;font-size:11px;color:#fff}
.hmhead .hmc{color:rgba(255,255,255,.4);font-weight:700;font-size:9px;padding:0;display:flex;align-items:center;justify-content:center}
.hmtot{flex:none;width:60px;text-align:center;margin-right:9px;border-radius:5px;font-family:var(--cond);font-style:italic;font-weight:800;font-size:12.5px;color:#fff;padding:5px 0}
.hmhead .hmtot{color:rgba(255,255,255,.4);font-weight:700;font-size:9px;padding:0;display:flex;align-items:center;justify-content:center}

.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"]{
  /* 背景＝白っぽく、欄（カード）＝白→明るい青の斜めグラデ、文字＝濃紺（高級感×可読性） */
  --bg:#f0f4fb;
  --surface:#f4f8ff; --surface-2:#e6eeff; --surface-3:#d7e4ff;
  --ink:#101f47; --sub:#46598c; --mut:#8090b6; --line:rgba(80,125,220,.22); --line-2:rgba(80,125,220,.13);
  --men:#1f6bff; --men-soft:rgba(31,107,255,.12);
  --women:#f0307a; --women-soft:rgba(240,48,122,.11);
  --cyan-soft:rgba(15,181,207,.14); --cyan-line:rgba(15,181,207,.4);
  --gold:#d99a16; --gold-2:#f4c244; --gold-soft:rgba(244,194,68,.2); --gold-line:rgba(218,162,40,.5);
  --shadow-card:0 10px 28px rgba(60,110,220,.18); --shadow-pop:0 18px 44px rgba(60,110,220,.28);
  background:linear-gradient(180deg,#f8fbff 0%,#eef4fd 48%,#e9f0fb 100%);
  /* カード用：白 → 明るい青へ斜めに流れる上質グラデ */
  --card-grad:linear-gradient(135deg,#ffffff 0%,#f2f6ff 28%,#dde9ff 60%,#b4cfff 104%);
  /* 小さなピル（チップ・ボタン）用：控えめな同系グラデ */
  --pill-grad:linear-gradient(135deg,#ffffff 0%,#eef4ff 60%,#ddE9ff 115%);
}
/* フェーズ色（淡色面＋濃色文字。パネルは鮮やかなまま） */
.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(--card-grad);
  border:1px solid rgba(150,185,255,.6);
  box-shadow:var(--shadow-card), inset 0 1px 0 #fff;
}
/* 中に意味色（金=A決勝・男女色・フェーズ色）を持つ欄は白基調にして色を主役に */
.app[data-dark="1"] .tt,
.app[data-dark="1"] .card{
  background:linear-gradient(160deg,#ffffff 0%,#fcfdff 55%,#f4f8ff 100%);
  border:1px solid rgba(150,185,255,.42);
  box-shadow:var(--shadow-card), inset 0 1px 0 #fff;
}
/* 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(--pill-grad);
  border-color:rgba(150,185,255,.55);
  box-shadow:0 3px 10px rgba(60,110,220,.12), inset 0 1px 0 #fff;
}
.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:#13203f}
.app[data-dark="1"] .shead .meta{color:#6f7e9f}
.app[data-dark="1"] .subhead{color:#13203f}
.app[data-dark="1"] .subhead .subnote{color:#8492b3}
.app[data-dark="1"] .legend{color:#5d6c8e}
.app[data-dark="1"] footer{color:#7e8caa}
.app[data-dark="1"] .tgroup-h{color:#41517a}
.app[data-dark="1"] .favtitle{color:#13203f}
.app[data-dark="1"] .empty{color:#6f7e9f}
/* フェーズ帯（白地の上）はライト風の淡色チップに */
/* 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-top:1px solid #e2e9f4}
.app[data-dark="1"] .bnav button{color:#93a0bb}
.app[data-dark="1"] .bnav button.on{color:#2c5fd9}
/* 発艇時刻・件数：淡色グラデの上で締まる深紺に */
.app[data-dark="1"] .row .time .t{color:#0e2a66}
.app[data-dark="1"] .card .cnt{color:#0e2a66}

/* ====== ヒーロー水面アニメ（波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:#e3edff;color:#1a4fd0}

/* ====== 選手プロフィール（名前タップ→シート）====== */
/* ---- 航行ルール ---- */
.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}
