/* TOP: 今日のレース結果速報（sandbox/bb-today.php） */
.today { background: var(--white); }
.td-empty { text-align: center; color: var(--muted); }
.td-summary { display: grid; grid-template-columns: repeat(3, 1fr) 2fr; gap: .8rem; margin-bottom: 1.4rem; }
.td-sum { background: var(--mist); border-radius: var(--r); padding: .9rem 1rem; display: flex; flex-direction: column; gap: .15rem; }
.td-sum__label { font-size: .78rem; font-weight: 700; color: var(--muted); }
.td-sum__num { font-family: var(--num); font-weight: 800; font-size: 1.8rem; color: var(--navy); line-height: 1.1; }
.td-sum__num small { font-size: .85rem; margin-left: 2px; color: var(--muted); }
.td-sum--best { background: linear-gradient(135deg, #fff5d6, #ffe7a8); }
.td-sum--best .td-sum__num { color: var(--red); }
.td-sum__note { font-size: .82rem; color: var(--navy); display: flex; align-items: center; gap: .35rem; flex-wrap: wrap; }
@media (max-width: 760px) { .td-summary { grid-template-columns: repeat(3, 1fr); } .td-sum--best { grid-column: 1 / -1; } .td-sum__num { font-size: 1.45rem; } }

.td-list { display: grid; gap: .6rem; }
.td-st { background: var(--white); border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; }
.td-st > summary { list-style: none; cursor: pointer; display: flex; flex-wrap: wrap; align-items: center; gap: .3rem .7rem; padding: .85rem 1rem; }
.td-st > summary::-webkit-details-marker { display: none; }
.td-st > summary::after { content: "＋"; margin-left: auto; color: var(--blue); font-weight: 700; }
.td-st[open] > summary::after { content: "－"; }
.td-st[open] > summary { border-bottom: 1px solid var(--line); background: var(--mist); }
.td-st__name { font-family: var(--round); font-weight: 900; color: var(--navy); font-size: 1.05rem; min-width: 3.5em; }
.td-st__title { font-size: .82rem; color: var(--text); flex: 1 1 14rem; min-width: 0; }
.td-st__title small { color: var(--muted); margin-left: .2rem; }
.td-st__status { font-size: .82rem; color: var(--blue-deep); display: inline-flex; align-items: center; gap: .3rem; flex-wrap: wrap; }
.td-st__status b { color: var(--navy); }
.td-st__link { margin: .6rem 1rem .9rem; font-size: .85rem; }
.td-st__link a { color: var(--blue); }

.td-table { width: 100%; border-collapse: collapse; font-size: .85rem; }
.td-table th, .td-table td { padding: .55rem .6rem; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; white-space: nowrap; }
.td-table thead th { background: var(--white); color: var(--muted); font-size: .72rem; font-weight: 700; }
.td-table tbody th { color: var(--navy); font-family: var(--num); font-weight: 800; }
.td-table tbody tr:last-child th, .td-table tbody tr:last-child td { border-bottom: none; }
.td-table .is-wait td, .td-table .is-wait th { color: var(--muted); }
.td-wait { font-size: .78rem; }
.td-final { display: block; font-family: var(--round); font-size: .65rem; color: var(--red); font-weight: 700; }
.td-top { white-space: normal; min-width: 13rem; }
.td-top__i { display: inline-flex; align-items: center; gap: .25rem; margin-right: .5rem; }
.td-pay b { display: block; font-family: var(--num); font-size: .95rem; color: var(--navy); margin-top: .15rem; }
.td-pay b.is-man { color: var(--red); }
.td-pay small { display: block; font-size: .7rem; color: var(--muted); }
.td-combo { display: inline-flex; align-items: center; gap: 1px; }
.td-combo .std-lane { width: 1.25rem; height: 1.25rem; font-size: .72rem; border-radius: 4px; }
.td-sep { font-size: .7rem; color: var(--muted); margin: 0 1px; }
.td-note { font-size: .78rem; color: var(--muted); margin-top: 1rem; }

/* 艇番色（stadium.css と同じ。TOP では stadium.css を読まないので再定義） */
.today .std-lane { display: inline-grid; place-items: center; width: 1.5rem; height: 1.5rem; border-radius: 5px; font-family: var(--num); font-weight: 800; border: 1px solid #ccc; font-size: .8rem; line-height: 1; }
.today .std-lane--1 { background: #fff; color: #222; }
.today .std-lane--2 { background: #222; color: #fff; border-color: #222; }
.today .std-lane--3 { background: #e60023; color: #fff; border-color: #e60023; }
.today .std-lane--4 { background: #1577e0; color: #fff; border-color: #1577e0; }
.today .std-lane--5 { background: #f5d200; color: #222; border-color: #f5d200; }
.today .std-lane--6 { background: #1f9e6a; color: #fff; border-color: #1f9e6a; }
.today .std-grade { display: inline-block; font-family: var(--num); font-weight: 800; font-size: .7rem; padding: .05rem .45rem; border-radius: 6px; color: #fff; background: var(--teal); }
.today .std-grade--sg { background: #c9a227; }
.today .std-grade--pg1, .today .std-grade--g1 { background: var(--red); }
.today .std-grade--g2 { background: var(--navy-soft); }
.today .std-scroll { overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* 絞り込み・並び替え */
.td-ctrl { background: var(--mist); border-radius: var(--r); padding: .9rem 1rem; margin-bottom: 1rem; display: grid; gap: .6rem; }
.td-ctrl[hidden] { display: none; }
.td-ctrl__row { display: flex; align-items: center; gap: .5rem .8rem; flex-wrap: wrap; }
.td-ctrl__label { font-size: .78rem; font-weight: 700; color: var(--muted); min-width: 4em; }
.td-chips { display: flex; flex-wrap: wrap; gap: .35rem; }
.td-chip { font-family: var(--round); font-weight: 700; font-size: .8rem; color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: .3rem .8rem; cursor: pointer; }
.td-chip:hover { border-color: var(--blue); }
.td-chip.is-on { background: var(--navy); border-color: var(--navy); color: #fff; }
.td-check { display: inline-flex; align-items: center; gap: .3rem; font-size: .82rem; font-weight: 700; color: var(--navy); cursor: pointer; }
.td-check input { width: 1rem; height: 1rem; accent-color: var(--blue); }
.td-sort { display: inline-flex; align-items: center; gap: .4rem; font-size: .8rem; font-weight: 700; color: var(--muted); }
.td-sort select { font: inherit; color: var(--navy); background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: .3rem .5rem; }
.td-toggle { margin-left: auto; font-family: var(--round); font-weight: 700; font-size: .8rem; color: var(--blue); background: none; border: 1px solid var(--blue); border-radius: 999px; padding: .3rem .9rem; cursor: pointer; }
.td-count { margin: 0; font-size: .78rem; color: var(--muted); }
.td-none { text-align: center; color: var(--muted); padding: 1.2rem 0; }
.td-st[hidden], .td-table tr[hidden] { display: none; }
@media (max-width: 600px) { .td-toggle { margin-left: 0; } .td-ctrl__label { min-width: 0; width: 100%; } }
