.kirin-races-screen{display:grid;gap:10px;width:100%}
.kirin-races-header{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:linear-gradient(145deg,#11140f,#0b0e0b)}
.kirin-races-header>div{display:flex;align-items:center;gap:14px;min-width:0}.kirin-races-header .kirin-breadcrumb{margin:0;white-space:nowrap}.kirin-races-header h1{display:flex;align-items:baseline;gap:8px;margin:0;font-size:22px;white-space:nowrap}.kirin-races-header h1 span{color:var(--gold-soft);font-size:13px}.kirin-races-header>p{margin:0;color:var(--muted);font-size:11px;text-align:right}
@media(min-width:721px){.kirin-races-header{display:block;padding:18px;background:#0b0e0b}.kirin-races-header>div{display:block}.kirin-races-header .kirin-breadcrumb{margin:0 0 1px;font-size:14px;line-height:1.35}.kirin-races-header h1{font-size:36px;line-height:1.25}.kirin-races-header h1 span{margin-left:8px;font-size:24px;font-weight:700}.kirin-races-header>div>p:last-child{margin:6px 0 0;color:#9ba89c;font-size:14px;line-height:1.35;text-align:left}}
.kirin-races-toolbar{display:grid;grid-template-columns:minmax(240px,1fr) auto auto;gap:10px;align-items:center;padding:10px;border:1px solid var(--line-soft);border-radius:12px;background:#0a0d0b}.kirin-races-toolbar>input{width:100%;min-height:38px;padding:0 12px;border:1px solid var(--line-soft);border-radius:9px;background:#080b09;color:var(--text);outline:none}.kirin-races-toolbar>input:focus{border-color:var(--gold)}
.kirin-races-filter-accordion{display:contents}.kirin-races-filter-accordion>summary{display:none}.kirin-races-filter-content{display:contents!important}
.kirin-races-filter-group{display:grid;gap:4px}.kirin-races-filter-group>small{color:var(--muted);font-size:8px}.kirin-races-source-filters,.kirin-races-status-filters{display:flex;gap:6px}.kirin-races-source-filters button,.kirin-races-status-filters button{min-height:34px;padding:0 10px;border:1px solid var(--line-soft);border-radius:8px;background:#0d100d;color:#cbd2cc;cursor:pointer;white-space:nowrap}.kirin-races-source-filters button span,.kirin-races-status-filters button span{margin-left:5px;color:var(--muted);font-size:8px}.kirin-races-source-filters button.is-active,.kirin-races-status-filters button.is-active{border-color:var(--gold);background:rgba(215,181,74,.1);color:var(--gold-soft)}
.kirin-races-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.kirin-races-card{display:grid;grid-template-rows:auto auto auto;gap:7px;min-width:0;min-height:102px;padding:12px 13px;border:1px solid var(--line-soft);border-radius:11px;background:linear-gradient(145deg,#0f120f,#090c09);color:inherit;text-align:left;cursor:pointer}.kirin-races-card:hover,.kirin-races-card:focus-visible{border-color:#6d5718;outline:none}.kirin-races-card-heading{display:grid;gap:5px;min-width:0}.kirin-races-card-heading-top,.kirin-races-card-heading-bottom{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;min-width:0}.kirin-races-card-heading strong{min-width:0;font-size:13px;line-height:1.35;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.kirin-races-card-heading time{color:var(--muted);font-size:9px;white-space:nowrap}.kirin-races-card p{margin:0;color:#aab5ac;font-size:10px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.kirin-races-card footer{display:flex;align-items:center;justify-self:end;gap:7px;margin-top:0}.kirin-races-card em,.kirin-races-card footer span{padding:3px 6px;border:1px solid var(--line-soft);border-radius:999px;color:#7f8982;font-size:8px;font-style:normal;white-space:nowrap}.kirin-races-card em.is-ready{border-color:#236d43;color:#8fe0a5}.kirin-races-card em.is-waiting{border-color:#73541b;color:var(--orange)}.kirin-races-card footer span{border-color:#51451d;color:#d7c574}.kirin-races-empty{grid-column:1/-1;padding:30px;border:1px dashed var(--line-soft);border-radius:12px;color:var(--muted);text-align:center}
@media(min-width:1900px){.kirin-races-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:1380px){.kirin-races-toolbar{grid-template-columns:1fr}.kirin-races-filter-content{display:grid!important;grid-template-columns:auto auto;gap:10px}.kirin-races-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:980px){.kirin-races-header{display:grid;align-items:start;gap:7px}.kirin-races-header>div{display:flex;flex-wrap:wrap;gap:8px 12px}.kirin-races-header>p{max-width:none;text-align:left;line-height:1.55}.kirin-races-header h1{white-space:normal}.kirin-races-source-filters,.kirin-races-status-filters{flex-wrap:wrap}}
@media(max-width:720px){.kirin-races-header{padding:13px}.kirin-races-header>div{display:grid;gap:5px}.kirin-races-header h1{font-size:20px}.kirin-races-header>p{font-size:10px}.kirin-races-toolbar{gap:8px}.kirin-races-filter-accordion{display:block;border:1px solid var(--line-soft);border-radius:10px;background:#090c09;overflow:hidden}.kirin-races-filter-accordion>summary{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:42px;padding:0 12px;color:#d4dbd5;cursor:pointer;list-style:none}.kirin-races-filter-accordion>summary::-webkit-details-marker{display:none}.kirin-races-filter-accordion>summary span{font-size:11px;font-weight:700}.kirin-races-filter-accordion>summary strong{min-width:0;color:var(--gold-soft);font-size:10px;font-weight:600;text-align:right;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.kirin-races-filter-accordion>summary::after{content:'⌄';flex:0 0 auto;color:var(--gold-soft);font-size:14px;transition:transform .18s ease}.kirin-races-filter-accordion[open]>summary::after{transform:rotate(180deg)}.kirin-races-filter-accordion:not([open])>.kirin-races-filter-content{display:none!important}.kirin-races-filter-content{display:grid!important;grid-template-columns:1fr;gap:12px;padding:10px 12px 12px;border-top:1px solid var(--line-soft)}.kirin-races-source-filters,.kirin-races-status-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible;padding:0}.kirin-races-source-filters button,.kirin-races-status-filters button{width:100%;min-width:0;padding:0 8px}.kirin-races-status-filters button:last-child:nth-child(odd){grid-column:1/-1}.kirin-races-grid{grid-template-columns:1fr}.kirin-races-card{min-height:96px;padding:11px 12px}}
@media(max-width:390px){.kirin-races-card-heading{grid-template-columns:minmax(0,1fr)}.kirin-races-card-heading time{grid-row:2}}

/* Sprint40 Phase4-②A: PC race list density and information alignment. */
@media(min-width:1381px){
  .kirin-races-filter-group{display:flex;align-items:center;gap:10px;min-width:0}
  .kirin-races-filter-group>small{flex:0 0 auto;margin:0;color:#aab5ac;font-size:10px;white-space:nowrap}
  .kirin-races-filter-group>small::after{content:'｜';margin-left:8px;color:#59645b}
  .kirin-races-filter-group>div{min-width:0}
  .kirin-races-card{grid-template-rows:min-content;align-content:center;gap:5px;min-height:0;padding:10px 12px;box-sizing:border-box}
  .kirin-races-card-heading{align-items:center}
  .kirin-races-card-heading time{width:68px;font-size:8px;text-align:right;justify-self:end}
}

/* Sprint40 Phase4-②B: keep PC race-card dates on one fixed right edge. */
@media(min-width:1381px){
  .kirin-races-card-heading{grid-template-columns:minmax(0,1fr) 68px}
}

/* Sprint40 Phase4-②B-R: align every PC race-card date to the card's right edge. */
@media(min-width:1381px){
  .kirin-races-card{justify-items:stretch}
  .kirin-races-card-heading{grid-column:1 / -1;width:100%;min-width:0;max-width:none;inline-size:100%;align-self:stretch;justify-self:stretch;box-sizing:border-box;grid-template-columns:minmax(0,1fr) max-content;column-gap:4px}
  .kirin-races-card-heading strong{min-width:0;overflow:hidden}
  .kirin-races-card-heading time{width:68px;min-width:68px;justify-self:end;text-align:right}
}

/* Sprint40 Phase4-②C: rebuild PC race-card header into two explicit rows. */
@media(min-width:1381px){
  .kirin-races-card{grid-template-rows:auto}
  .kirin-races-card-heading{display:grid;grid-template-rows:auto auto;gap:5px}
  .kirin-races-card-heading-top,.kirin-races-card-heading-bottom{grid-template-columns:minmax(0,1fr) auto;gap:10px}
  .kirin-races-card-heading time{width:auto;min-width:0;justify-self:end;text-align:right}
  .kirin-races-card-heading-bottom p{grid-row:auto;grid-column:1;align-self:center}
  .kirin-races-card-heading-bottom footer{grid-row:auto;grid-column:2;justify-self:end;align-self:center;margin-top:0}
}

@media(max-width:390px){
  .kirin-races-card-heading-top{grid-template-columns:minmax(0,1fr)}
  .kirin-races-card-heading-top time{grid-row:2;justify-self:start}
}

/* Sprint40 Phase4-②C-R: move the date to the PC auxiliary information row. */
.kirin-races-card-date-bottom,.kirin-races-card-date-separator{display:none}
@media(min-width:1381px){
  .kirin-races-card-heading-top .kirin-races-card-date-top{display:none}
  .kirin-races-card-heading-bottom p{display:flex;align-items:baseline;min-width:0}
  .kirin-races-card-heading-bottom .kirin-races-card-date-separator{display:inline;margin:0 6px;color:#59645b}
  .kirin-races-card-heading-bottom .kirin-races-card-date-bottom{display:inline;color:#aab5ac;font-size:10px;font-weight:inherit}
}

/* === Sprint40 FinalQA iPad mini/Air portrait filter balance BEGIN === */
/*
 * Runtime evidence:
 *
 * 768px:
 * outer columns = 238.33 / 250.33 (unequal)
 * held group = label 12 + buttons 74
 * state group = label 12 + buttons 74
 *
 * 820px:
 * outer columns = 261.04 / 279.63 (unequal)
 * held group becomes label 32 + buttons 54 because its four buttons fit one row,
 * while state remains label 12 + two button rows.
 *
 * Contract for iPad mini/Air portrait only:
 * - equal outer columns
 * - BOTH filter groups intentionally use two button rows
 * - 34px button height
 * - equal, deterministic button distribution
 *
 * 開催区分: 2 x 2
 * 対応状況: 3 buttons first row / 2 buttons second row
 *
 * Pro portrait (>820), landscape, PC and iPhone are outside this media range.
 */
@media screen
  and (min-width:721px)
  and (max-width:820px)
  and (orientation:portrait){

  .kirin-races-screen .kirin-races-filter-content{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    align-items:start!important;
  }

  .kirin-races-screen .kirin-races-filter-group{
    min-width:0!important;
    grid-template-rows:12px auto!important;
    gap:4px!important;
    align-content:start!important;
  }

  .kirin-races-screen .kirin-races-filter-group > small{
    height:12px!important;
    min-height:12px!important;
    line-height:12px!important;
    align-self:start!important;
  }

  /* 開催区分: exactly 2 x 2 */
  .kirin-races-screen .kirin-races-source-filters{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    grid-auto-rows:34px!important;
    gap:6px!important;
    min-width:0!important;
  }

  .kirin-races-screen .kirin-races-source-filters > button{
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 8px!important;
  }

  /* 対応状況: 3 equal buttons + 2 equal buttons */
  .kirin-races-screen .kirin-races-status-filters{
    display:grid!important;
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    grid-auto-rows:34px!important;
    gap:6px!important;
    min-width:0!important;
  }

  .kirin-races-screen .kirin-races-status-filters > button{
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    min-height:34px!important;
    padding:0 8px!important;
    grid-column:span 2!important;
  }

  .kirin-races-screen .kirin-races-status-filters > button:nth-child(4),
  .kirin-races-screen .kirin-races-status-filters > button:nth-child(5){
    grid-column:span 3!important;
  }
}
/* === Sprint40 FinalQA iPad mini/Air portrait filter balance END === */
