/*
 * Sprint40 - iPad portrait Phase1
 * Scope: 768px portrait only.
 * Shell / left navigation / race tree / race header only.
 * Home body is intentionally untouched in this phase.
 */
@media (width:768px) and (orientation:portrait){

  /* Left primary navigation: repair inherited vertical-writing regression. */
  .kirin-sidebar nav,
  .kirin-sidebar .kirin-nav,
  .kirin-sidebar .kirin-nav-list{
    writing-mode:horizontal-tb!important;
  }
  .kirin-sidebar nav a,
  .kirin-sidebar nav button,
  .kirin-sidebar .kirin-nav-item,
  .kirin-sidebar .kirin-nav-link{
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
    white-space:nowrap!important;
  }

  /* Race tree: compact title and remove redundant second metadata line. */
  .kirin-race-item{
    font-size:11px!important;
  }
  .kirin-race-item > span{
    display:none!important;
  }

  /* Race header density. */
  .kirin-race-header{
    padding:14px!important;
  }
  .kirin-race-header .kirin-race-meta,
  .kirin-race-header .kirin-race-info{
    font-size:11px!important;
  }
  .kirin-race-header h1,
  .kirin-race-header .kirin-race-title{
    font-size:28px!important;
    line-height:1.15!important;
  }

  /* Result-status badge: compact portrait contract. */
  .kirin-race-header .kirin-result-badge,
  .kirin-race-header .kirin-result-status,
  .kirin-race-header [class*="result"][class*="badge"]{
    font-size:10px!important;
    padding:4px 8px!important;
  }
}


/* Phase1 repair: exact selectors confirmed by selector audit. */
@media (width:768px) and (orientation:portrait){

  /* Primary navigation: restore normal stacked sidebar buttons. */
  .kirin-sidebar .kirin-nav{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    overflow:visible!important;
  }
  .kirin-sidebar .kirin-nav button{
    width:100%!important;
    min-width:0!important;
    padding:12px 14px!important;
    text-align:left!important;
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
    white-space:nowrap!important;
  }

  /* Race tree: actual title node + redundant metadata line. */
  .kirin-race-item strong{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .kirin-race-item > span{
    display:none!important;
  }

  /* Shared race identity: exact current DOM selectors. */
  .kirin-race-header{
    padding:14px!important;
  }
  .kirin-race-meta-line,
  .kirin-race-details{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .kirin-race-identity h1,
  .kirin-race-title{
    font-size:28px!important;
    line-height:1.15!important;
  }

  /* Actual green status badge. */
  .kirin-race-header .kirin-status{
    font-size:10px!important;
    padding:4px 8px!important;
  }
}


/* Phase1 final repair
   Use the existing iPad portrait contract range instead of width:768 only.
   Exact selectors confirmed by audit.
*/
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Primary navigation: normal stacked sidebar, horizontal text. */
  .kirin-sidebar .kirin-nav{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:8px!important;
    overflow:visible!important;
  }
  .kirin-sidebar .kirin-nav button{
    width:100%!important;
    min-width:0!important;
    padding:12px 14px!important;
    text-align:left!important;
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
    white-space:nowrap!important;
  }

  /* Race tree. */
  .kirin-race-item strong{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .kirin-race-item > span{
    display:none!important;
  }

  /* Shared race header. */
  .kirin-race-header{
    padding:14px!important;
  }
  .kirin-race-meta-line{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .kirin-race-identity h1,
  .kirin-race-title{
    font-size:28px!important;
    line-height:1.15!important;
  }
  .kirin-race-details{
    font-size:11px!important;
    line-height:1.35!important;
  }

  /* Status badge. */
  .kirin-race-header .kirin-status{
    font-size:10px!important;
    padding:4px 8px!important;
  }
}


/* Phase1 targeted header repair
   Stronger scope + actual first-line selector (.kirin-screen-context).
   No body/layout changes below the race header.
*/
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Exact race-header box. */
  .kirin-main .kirin-race-screen .kirin-race-header{
    padding:14px!important;
  }

  /* Header line 1: current DOM may use screen-context instead of race-meta-line. */
  .kirin-main .kirin-race-screen .kirin-race-header .kirin-screen-context,
  .kirin-main .kirin-race-screen .kirin-race-header .kirin-race-meta-line{
    font-size:11px!important;
    line-height:1.35!important;
  }

  /* Header line 3. */
  .kirin-main .kirin-race-screen .kirin-race-header .kirin-race-details{
    font-size:11px!important;
    line-height:1.35!important;
  }
}


/* Phase1 exact header fix
   Confirmed contract:
   - visible bordered card = .kirin-race-info
   - line 1 = .kirin-race-info__meta
   - line 2 = .kirin-race-info__title
   - line 3 = .kirin-race-info__summary
*/
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  .kirin-race-header > .kirin-race-info{
    padding:14px!important;
  }

  .kirin-race-header > .kirin-race-info .kirin-race-info__meta,
  .kirin-race-header > .kirin-race-info .kirin-race-info__summary{
    font-size:11px!important;
    line-height:1.35!important;
  }

  .kirin-race-header > .kirin-race-info .kirin-race-info__title{
    font-size:28px!important;
    line-height:1.15!important;
  }

  .kirin-race-header > .kirin-status{
    top:14px!important;
    right:14px!important;
    font-size:10px!important;
    padding:4px 8px!important;
  }
}


/* Phase2: iPad portrait Home body density + layout
   Contract-checked selectors only.
   Goal: reduce vertical waste and prevent narrow multi-column breakage.
*/
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Main rhythm */
  .kirin-main{
    padding:14px!important;
  }
  .kirin-race-screen{
    width:100%!important;
    gap:10px!important;
  }
  .kirin-race-header,
  .kirin-race-header > .kirin-race-info{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
  }

  /* Timing: keep 2 columns but tighten height */
  .kirin-timing{
    gap:8px!important;
  }
  .kirin-time-card{
    min-height:48px!important;
    padding:7px 11px!important;
    gap:8px!important;
  }
  .kirin-time-card small{
    font-size:10px!important;
  }
  .kirin-time-value{
    font-size:19px!important;
  }

  /* Decision card overall */
  .kirin-decision-card{
    padding:8px!important;
    gap:8px!important;
    border-radius:14px!important;
  }

  /* AI final judgement: keep hierarchy, remove excess vertical space */
  .kirin-decision-main{
    min-height:230px!important;
    padding:18px 14px!important;
  }
  .kirin-decision-heading{
    margin-bottom:8px!important;
    gap:7px!important;
  }
  .kirin-eyebrow{
    font-size:11px!important;
  }
  .kirin-score{
    font-size:62px!important;
  }
  .kirin-score span{
    font-size:13px!important;
  }
  .kirin-rank{
    margin:10px 0!important;
    gap:9px!important;
  }
  .kirin-pick{
    font-size:18px!important;
    gap:8px!important;
  }

  /* Metrics: preserve 3x2 information architecture, compact each card */
  .kirin-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .kirin-metric{
    min-height:68px!important;
    padding:9px!important;
    gap:4px!important;
    border-radius:9px!important;
  }
  .kirin-metric small{
    font-size:10px!important;
  }
  .kirin-metric strong{
    font-size:20px!important;
    line-height:1.15!important;
  }
  .kirin-investment-values{
    gap:6px!important;
  }
  .kirin-investment-values>span+span{
    padding-left:6px!important;
  }
  .kirin-investment-values em{
    font-size:9px!important;
  }
  .kirin-investment-values strong{
    font-size:17px!important;
  }

  /* Buy / caution: keep 2 columns, reduce box height and text pressure */
  .kirin-reasons{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .kirin-reason{
    padding:11px 12px!important;
  }
  .kirin-reason h3{
    margin-bottom:6px!important;
    font-size:13px!important;
  }
  .kirin-reason ul{
    padding-left:17px!important;
    gap:0!important;
    font-size:11px!important;
    line-height:1.4!important;
  }

  /* Recommended horses: compact without changing information order */
  .kirin-recommended-horses{
    padding:11px 12px!important;
  }
  .kirin-recommended-horses h2{
    margin-bottom:8px!important;
    font-size:13px!important;
  }
  .kirin-recommended-horses ul{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .kirin-recommended-horses li{
    padding:7px 8px!important;
    gap:2px!important;
  }
  .kirin-recommended-horses strong{
    font-size:11px!important;
  }
  .kirin-recommended-role{
    margin-left:28px!important;
    font-size:10px!important;
  }

  /* Recommended tickets:
     primary tickets stay 3-up;
     expanded "other bet types" becomes 2 columns instead of 4 narrow columns. */
  .kirin-recommended-tickets{
    padding:11px 12px!important;
  }
  .kirin-recommended-tickets h2{
    margin-bottom:8px!important;
    font-size:13px!important;
  }
  .kirin-recommended-tickets > ul{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .kirin-recommended-tickets > ul > li{
    grid-template-columns:1fr!important;
    gap:5px!important;
    padding:8px!important;
  }
  .kirin-recommended-tickets details ul{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:6px!important;
  }
  .kirin-recommended-tickets details li{
    min-width:0!important;
    padding:8px!important;
  }
  .kirin-recommended-tickets li>strong,
  .kirin-recommended-tickets li>span{
    font-size:11px!important;
  }
  .kirin-recommended-tickets li>small{
    grid-column:auto!important;
    font-size:9px!important;
    line-height:1.3!important;
  }

  /* Details / lower sections: compact vertical rhythm */
  .kirin-decision-detail{
    padding-top:8px!important;
  }
  .kirin-decision-detail summary{
    font-size:12px!important;
  }
  .kirin-detail-content{
    gap:8px!important;
    padding:10px 0!important;
  }
  .kirin-detail-content>div{
    padding:9px 10px!important;
  }
}


/* Sprint40 iPad portrait Phase2 exact ticket repair */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  /* Exact current DOM contract:
     primary = .kirin-ticket-grid
     other   = .kirin-other-ticket-grid
     card    = .kirin-ticket-card
     Previous Phase2 targeted obsolete UL/LI markup and therefore did not change the real grids. */

  .kirin-recommended-tickets{
    padding:10px 11px!important;
  }

  .kirin-recommended-tickets h2{
    margin:0 0 7px!important;
    font-size:13px!important;
  }

  .kirin-ticket-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
  }

  .kirin-other-tickets{
    margin-top:7px!important;
    padding-top:6px!important;
  }

  .kirin-other-tickets>summary{
    font-size:11px!important;
    line-height:1.25!important;
  }

  .kirin-other-ticket-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
    margin-top:7px!important;
  }

  .kirin-ticket-card{
    min-width:0!important;
    padding:8px!important;
    gap:5px!important;
  }

  .kirin-ticket-card>strong{
    font-size:11px!important;
    line-height:1.25!important;
  }

  .kirin-ticket-card>small{
    font-size:9px!important;
    line-height:1.3!important;
    overflow-wrap:anywhere!important;
  }

  .kirin-ticket-formation{
    gap:3px!important;
    line-height:1.55!important;
  }

  .kirin-ticket-combination{
    gap:2px!important;
    padding:2px 3px!important;
    max-width:100%!important;
  }

  .kirin-ticket-separator{
    display:block!important;
    flex-basis:100%!important;
    height:0!important;
    overflow:hidden!important;
    font-size:0!important;
    line-height:0!important;
  }

  .kirin-ticket-combination-separator{
    font-size:10px!important;
  }

  .kirin-other-ticket-grid .kirin-ticket-card{
    align-content:start!important;
  }
}


/* Sprint40 iPad portrait Phase2 header width + timing gap fix */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  /* Confirmed shared contract:
     .kirin-race-header is only the wrapper.
     .kirin-race-info is the visible bordered card.
     Remove old portrait wrapper padding so header aligns with timing row. */
  .kirin-main .kirin-race-screen > .kirin-race-header{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }

  .kirin-main .kirin-race-screen > .kirin-race-header > .kirin-race-info{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px!important;
    box-sizing:border-box!important;
  }

  /* Tighten header -> timing and timing -> decision vertical rhythm. */
  .kirin-main .kirin-race-screen{
    row-gap:8px!important;
    gap:8px!important;
  }

  .kirin-main .kirin-race-screen > .kirin-timing{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
  }

  .kirin-main .kirin-race-screen > .kirin-decision-card{
    margin-top:0!important;
  }
}


/* Sprint40 iPad portrait Phase3 visual polish v2 */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* AI final judgement */
  .kirin-decision-main{
    min-height:198px!important;
    padding:14px 12px!important;
  }
  .kirin-decision-heading{margin-bottom:5px!important}
  .kirin-score{font-size:54px!important;line-height:1!important}
  .kirin-score span{font-size:12px!important}
  .kirin-rank{margin:7px 0!important}
  .kirin-pick{font-size:17px!important}

  /* Metrics */
  .kirin-metrics{gap:5px!important}
  .kirin-metric{
    min-height:58px!important;
    padding:7px 8px!important;
  }
  .kirin-metric small{font-size:9px!important;line-height:1.2!important}
  .kirin-metric strong{font-size:18px!important;line-height:1.05!important}
  .kirin-investment-values{gap:5px!important}
  .kirin-investment-values em{font-size:8px!important}
  .kirin-investment-values strong{font-size:15px!important}

  /* Buy / caution */
  .kirin-reasons{gap:6px!important}
  .kirin-reason{
    min-height:0!important;
    padding:9px 10px!important;
  }
  .kirin-reason h3{
    margin-bottom:4px!important;
    font-size:12px!important;
  }
  .kirin-reason ul{
    font-size:10px!important;
    line-height:1.35!important;
  }

  /* AI summary */
  .kirin-decision-summary{
    padding:10px 11px!important;
  }
  .kirin-support-heading{margin-bottom:7px!important}
  .kirin-support-heading h2{font-size:14px!important}
  .kirin-summary-grid{gap:6px!important}
  .kirin-summary-grid>div{
    min-height:56px!important;
    padding:8px 9px!important;
  }
  .kirin-summary-grid small{font-size:9px!important}
  .kirin-summary-grid strong{
    font-size:11px!important;
    line-height:1.3!important;
  }

  /* Recommended action */
  .kirin-recommended-action{
    padding:11px 12px!important;
  }
  .kirin-recommended-action h2{
    margin-bottom:5px!important;
    font-size:14px!important;
  }
  .kirin-recommended-action>strong{font-size:14px!important}
  .kirin-recommended-action p{
    margin-top:5px!important;
    font-size:11px!important;
    line-height:1.35!important;
  }

  /* Recommended horses */
  .kirin-recommended-horses{
    padding:9px 10px!important;
  }
  .kirin-recommended-horses h2{margin-bottom:6px!important}
  .kirin-recommended-horses ul{gap:5px!important}
  .kirin-recommended-horses li{padding:6px 7px!important}
  .kirin-recommended-name{font-size:11px!important}
  .kirin-recommended-role{
    margin-left:27px!important;
    font-size:9px!important;
  }

  /* Recommended tickets */
  .kirin-recommended-tickets{
    padding:9px 10px!important;
  }
  .kirin-ticket-grid,
  .kirin-other-ticket-grid{
    gap:6px!important;
  }
  .kirin-ticket-card{
    padding:7px!important;
    gap:4px!important;
  }
  .kirin-ticket-card>small{margin-top:1px!important}

  /* Section rhythm */
  .kirin-decision-card{gap:7px!important}
}


/* Sprint40 iPad portrait Phase4 final density */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Final judgement: remove the last unnecessary vertical slack. */
  .kirin-decision-main{
    min-height:176px!important;
    padding:12px!important;
  }
  .kirin-decision-heading{margin-bottom:3px!important}
  .kirin-score{font-size:50px!important}
  .kirin-rank{margin:5px 0!important}
  .kirin-pick{font-size:16px!important}

  /* Investment metric: keep expectation/risk values readable on one line. */
  .kirin-metric--investment{
    padding-inline:7px!important;
  }
  .kirin-investment-values{
    grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr)!important;
    gap:4px!important;
  }
  .kirin-investment-values>span{
    min-width:0!important;
  }
  .kirin-investment-values em{
    font-size:8px!important;
    white-space:nowrap!important;
  }
  .kirin-investment-values strong{
    font-size:14px!important;
    line-height:1.05!important;
    white-space:nowrap!important;
  }

  /* Summary: only long concern text gets slightly denser. */
  .kirin-summary-risk strong{
    font-size:10px!important;
    line-height:1.25!important;
  }

  /* Recommended action: reduce remaining dead vertical space. */
  .kirin-recommended-action{
    padding:9px 11px!important;
  }
  .kirin-recommended-action h2{
    margin-bottom:3px!important;
  }
  .kirin-recommended-action p{
    margin:3px 0 0!important;
    line-height:1.3!important;
  }

  /* Other tickets:
     2 cards per row remains.
     Inside each ticket card, combinations use a compact 2-column matrix.
     This reduces Triple/Trifecta height without hiding any combinations. */
  .kirin-other-ticket-grid .kirin-ticket-formation{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,max-content))!important;
    align-items:center!important;
    justify-content:start!important;
    column-gap:6px!important;
    row-gap:5px!important;
    line-height:1.2!important;
  }

  .kirin-other-ticket-grid .kirin-ticket-combination{
    display:inline-flex!important;
    width:max-content!important;
    max-width:100%!important;
    padding:2px 3px!important;
    white-space:nowrap!important;
  }

  .kirin-other-ticket-grid .kirin-ticket-separator{
    display:none!important;
  }

  .kirin-other-ticket-grid .kirin-ticket-card{
    padding:7px!important;
    gap:4px!important;
  }

  .kirin-other-ticket-grid .kirin-ticket-card>small{
    margin-top:2px!important;
    font-size:9px!important;
    line-height:1.25!important;
  }
}


/* Sprint40 iPad portrait Home Phase5 v2
   User feedback polish. Exact selectors confirmed from current components.js/CSS.
*/
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* 発走 / 購入締切: slightly shorter. */
  .kirin-time-card{
    min-height:0!important;
    padding-top:8px!important;
    padding-bottom:8px!important;
  }

  /* 買い要素 / 注意点:
     equal top-bottom padding, with a little more space around list text. */
  .kirin-reasons{
    align-items:stretch!important;
  }
  .kirin-reason{
    padding-top:11px!important;
    padding-bottom:11px!important;
  }
  .kirin-reason h3{
    margin-bottom:6px!important;
  }
  .kirin-reason ul{
    margin-top:0!important;
    margin-bottom:0!important;
    row-gap:2px!important;
  }
  .kirin-reason li{
    line-height:1.42!important;
  }

  /* 投資判断: expectation/risk need more breathing room. */
  .kirin-metric--investment{
    padding-left:10px!important;
    padding-right:10px!important;
  }
  .kirin-investment-values{
    column-gap:8px!important;
  }
  .kirin-investment-values>span:first-child{
    padding-left:1px!important;
  }
  .kirin-investment-values>span+span{
    padding-left:8px!important;
  }

  /* AI判断サマリー右上「強く買える」:
     same compact visual scale as the race status badge. */
  .kirin-decision-summary .kirin-assessment{
    font-size:10px!important;
    line-height:1.2!important;
    padding:4px 8px!important;
    min-height:0!important;
  }

  /* 推奨アクション:
     normalize the three-line vertical rhythm. */
  .kirin-recommended-action{
    display:grid!important;
    row-gap:5px!important;
    padding-top:11px!important;
    padding-bottom:11px!important;
  }
  .kirin-recommended-action h2,
  .kirin-recommended-action>strong,
  .kirin-recommended-action p{
    margin-top:0!important;
    margin-bottom:0!important;
  }

  /* 馬券内推奨馬: 2 columns x 3 rows.
     Give names width and prevent unnecessary clipping. */
  .kirin-recommended-horses ul{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:7px!important;
  }
  .kirin-recommended-horses li{
    min-width:0!important;
  }
  .kirin-recommended-horse-main{
    min-width:0!important;
  }
  .kirin-recommended-name{
    min-width:0!important;
    overflow:visible!important;
    text-overflow:clip!important;
    white-space:nowrap!important;
    font-size:11px!important;
  }
}


/* Sprint40 iPad portrait Race + Settings Phase1 exact fix */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* ---------------------------------------------------------
     Race / Settings header contract
     Match the established iPad portrait Home / Analysis / Review density:
     padding 14px, line 1 + line 3 = 11px, title = 28px.
     --------------------------------------------------------- */

  .kirin-races-header,
  .kirin-settings-header{
    width:100%!important;
    max-width:none!important;
    box-sizing:border-box!important;
    padding:14px!important;
    border:1px solid var(--line-soft)!important;
    border-radius:14px!important;
    background:#0b0e0b!important;
  }

  .kirin-races-header{
    display:block!important;
  }
  .kirin-races-header>div{
    display:block!important;
  }

  .kirin-races-header .kirin-breadcrumb,
  .kirin-races-header>div>p:last-child,
  .kirin-settings-header .kirin-breadcrumb,
  .kirin-settings-header>div>p:last-child{
    margin-top:0!important;
    color:var(--muted)!important;
    font-size:11px!important;
    line-height:1.35!important;
  }

  .kirin-races-header .kirin-breadcrumb,
  .kirin-settings-header .kirin-breadcrumb{
    margin-bottom:1px!important;
  }

  .kirin-races-header h1,
  .kirin-settings-header h1{
    margin:0!important;
    font-size:28px!important;
    line-height:1.15!important;
    letter-spacing:.02em!important;
  }

  .kirin-races-header>div>p:last-child,
  .kirin-settings-header>div>p:last-child{
    margin-bottom:0!important;
    margin-top:6px!important;
  }

  /* Saved-race count belongs to the title, but must not overpower it. */
  .kirin-races-header h1 span{
    margin-left:6px!important;
    font-size:16px!important;
    line-height:1!important;
  }

  /* Settings version follows the same compact badge scale used elsewhere. */
  .kirin-settings-version{
    flex:0 0 auto!important;
    padding:4px 8px!important;
    font-size:10px!important;
    line-height:1.2!important;
    border-radius:999px!important;
  }

  /* ---------------------------------------------------------
     Race cards
     Remove the unused lower vertical space while keeping the
     existing 2-column portrait layout and information hierarchy.
     This mirrors the already-proven iPad landscape density contract.
     --------------------------------------------------------- */

  .kirin-races-card{
    min-height:82px!important;
    padding:9px 11px!important;
    gap:4px!important;
    align-content:center!important;
  }

  .kirin-races-card-heading{
    gap:3px!important;
  }

  .kirin-races-grid{
    gap:7px!important;
  }
}


/* Sprint40 iPad portrait Race Phase2 header-toolbar gap fix */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  /* Race page only: tighten the remaining space between the page header
     and the search/filter toolbar without changing either component. */
  .kirin-races-screen{
    gap:7px!important;
    row-gap:7px!important;
  }
}


/* Sprint40 iPad portrait — analysis room phase1 exact fix v2 */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Analysis header: same visible-card contract as Home. */
  .kirin-main .kirin-analysis-room > .kirin-race-header{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  .kirin-main .kirin-analysis-room > .kirin-race-header > .kirin-race-info{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px!important;
    box-sizing:border-box!important;
  }
  .kirin-main .kirin-analysis-room > .kirin-race-header .kirin-race-info__meta,
  .kirin-main .kirin-analysis-room > .kirin-race-header .kirin-race-info__summary{
    font-size:11px!important;
    line-height:1.35!important;
  }
  .kirin-main .kirin-analysis-room > .kirin-race-header .kirin-race-info__title{
    font-size:28px!important;
    line-height:1.15!important;
  }

  /* Top overview: compact, keep 3-up. */
  .kirin-analysis-room .kirin-analysis-overview{
    gap:7px!important;
  }
  .kirin-analysis-room .kirin-analysis-overview>div{
    min-width:0!important;
    padding:10px 11px!important;
  }
  .kirin-analysis-room .kirin-analysis-overview small{
    font-size:9px!important;
  }
  .kirin-analysis-room .kirin-analysis-overview strong{
    min-width:0!important;
    font-size:12px!important;
    line-height:1.35!important;
  }
  .kirin-analysis-room .kirin-analysis-overview .kirin-summary-pick{
    display:flex!important;
    align-items:center!important;
    gap:6px!important;
    min-width:0!important;
  }
  .kirin-analysis-room .kirin-analysis-overview .kirin-recommended-mark{
    width:auto!important;
    min-width:18px!important;
    font-size:14px!important;
  }
  .kirin-analysis-room .kirin-analysis-overview .kirin-horse-number-chip{
    width:24px!important;
    min-width:24px!important;
    height:24px!important;
    font-size:11px!important;
  }
  .kirin-analysis-room .kirin-analysis-center-horse-name{
    min-width:0!important;
    overflow-wrap:anywhere!important;
  }

  /* In-page navigation. */
  .kirin-analysis-room .kirin-analysis-room-nav{
    gap:6px!important;
  }
  .kirin-analysis-room .kirin-analysis-room-nav a{
    min-width:0!important;
    padding:9px 10px!important;
  }
  .kirin-analysis-room .kirin-analysis-room-nav strong{
    font-size:11px!important;
  }
  .kirin-analysis-room .kirin-analysis-room-nav small{
    font-size:8px!important;
    line-height:1.3!important;
  }

  /* Main section rhythm. */
  .kirin-analysis-room .kirin-analysis-sections{
    gap:9px!important;
  }
  .kirin-analysis-room .kirin-analysis-lens-header{
    gap:8px!important;
    padding:11px 12px!important;
  }
  .kirin-analysis-room .kirin-analysis-lens-header h2{
    font-size:14px!important;
  }
  .kirin-analysis-room .kirin-analysis-lens-header p{
    margin-top:3px!important;
    font-size:9px!important;
    line-height:1.35!important;
  }
  .kirin-analysis-room .kirin-analysis-state{
    flex:0 0 auto!important;
    font-size:9px!important;
    padding:4px 8px!important;
  }

  /* Capability: preserve 3 + 2 structure, just reduce waste. */
  .kirin-analysis-room .kirin-analysis-capability-grid{
    gap:6px!important;
    padding:10px 11px!important;
  }
  .kirin-analysis-room .kirin-analysis-capability-grid .kirin-metric{
    min-width:0!important;
    min-height:62px!important;
    padding:8px 8px!important;
  }
  .kirin-analysis-room .kirin-analysis-capability-grid .kirin-metric small{
    font-size:9px!important;
  }

  /* Structure / investment / evidence. */
  .kirin-analysis-room .kirin-analysis-structure-grid,
  .kirin-analysis-room .kirin-analysis-investment-grid,
  .kirin-analysis-room .kirin-analysis-evidence-grid{
    gap:7px!important;
    padding:10px 11px!important;
  }
  .kirin-analysis-room .kirin-analysis-cell{
    min-width:0!important;
    padding:10px 11px!important;
  }
  .kirin-analysis-room .kirin-analysis-cell small{
    font-size:9px!important;
  }
  .kirin-analysis-room .kirin-analysis-cell strong{
    font-size:12px!important;
    line-height:1.4!important;
  }
  .kirin-analysis-room .kirin-analysis-cell p,
  .kirin-analysis-room .kirin-analysis-cell li{
    font-size:10px!important;
    line-height:1.4!important;
  }

  /* Evidence: portrait reads better stacked. */
  .kirin-analysis-room #analysis-evidence .kirin-reasons{
    grid-template-columns:1fr!important;
    gap:7px!important;
  }
  .kirin-analysis-room #analysis-evidence .kirin-reason{
    min-height:0!important;
    padding:10px 11px!important;
  }
  .kirin-analysis-room #analysis-evidence .kirin-reason h3{
    margin-bottom:6px!important;
    font-size:11px!important;
  }
  .kirin-analysis-room #analysis-evidence .kirin-reason li{
    font-size:10px!important;
    line-height:1.45!important;
  }
}


/* Sprint40 iPad portrait — analysis room phase2 center horse + environment v2 */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* ===== Analysis overview =====
     Row 1: assessment + action.
     Row 2: center horse alone, full width.
  */
  .kirin-analysis-room .kirin-analysis-overview{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:7px!important;
  }

  .kirin-analysis-room .kirin-analysis-overview>div:nth-child(1){
    grid-column:1!important;
    grid-row:1!important;
  }

  .kirin-analysis-room .kirin-analysis-overview>div:nth-child(3){
    grid-column:2!important;
    grid-row:1!important;
  }

  .kirin-analysis-room .kirin-analysis-overview>div:nth-child(2){
    grid-column:1 / -1!important;
    grid-row:2!important;
    text-align:left!important;
    align-items:start!important;
    justify-items:start!important;
    padding:9px 11px!important;
  }

  .kirin-analysis-room .kirin-analysis-overview>div:nth-child(2)>small,
  .kirin-analysis-room .kirin-analysis-overview>div:nth-child(2)>strong{
    width:100%!important;
    text-align:left!important;
  }

  .kirin-analysis-room .kirin-analysis-overview .kirin-summary-pick{
    width:100%!important;
    display:flex!important;
    justify-content:flex-start!important;
    align-items:center!important;
    text-align:left!important;
    gap:7px!important;
  }

  .kirin-analysis-room .kirin-analysis-overview .kirin-analysis-center-horse-name{
    flex:1 1 auto!important;
    min-width:0!important;
    max-width:100%!important;
    white-space:normal!important;
    overflow:visible!important;
    text-overflow:clip!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    display:-webkit-box!important;
    -webkit-box-orient:vertical!important;
    -webkit-line-clamp:2!important;
    font-size:12px!important;
    line-height:1.3!important;
  }

  .kirin-analysis-room .kirin-analysis-overview .kirin-recommended-mark,
  .kirin-analysis-room .kirin-analysis-overview .kirin-horse-number-chip{
    flex:0 0 auto!important;
  }

  /* ===== Environment / track bias =====
     Actual DOM contract:
     - .kirin-environment-analysis
     - .kirin-environment-actions
     - .kirin-environment-analysis-grid
     - .kirin-environment-analysis-summary
     - .kirin-home-bias-grid / .kirin-home-bias-item
  */
  .kirin-analysis-room #analysis-environment{
    padding-bottom:10px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-analysis-lens-header{
    padding-top:10px!important;
    padding-bottom:8px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-actions{
    gap:6px!important;
    padding:0 11px 8px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-actions button{
    min-height:0!important;
    padding:6px 9px!important;
    font-size:9px!important;
    line-height:1.2!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-grid{
    gap:6px!important;
    padding:8px 11px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-metric{
    min-height:0!important;
    padding:7px 9px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-metric small{
    margin-bottom:2px!important;
    font-size:8px!important;
    line-height:1.2!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-metric strong{
    font-size:11px!important;
    line-height:1.25!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary{
    gap:7px!important;
    padding:8px 11px 0!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary>div{
    min-width:0!important;
    padding:8px 9px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary>div>small{
    margin-bottom:4px!important;
    font-size:8px!important;
    line-height:1.2!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-grid{
    gap:6px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-item{
    min-height:0!important;
    padding:7px 9px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-item small{
    font-size:8px!important;
    line-height:1.2!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-item strong{
    font-size:10px!important;
    line-height:1.25!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary>div:last-child strong{
    font-size:10px!important;
    line-height:1.35!important;
  }
}


/* Sprint40 iPad portrait — analysis room phase3 environment final compact */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){

  /* Final environment-only trim.
     Preserve the Phase2 center-horse layout and all content. */

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-grid{
    gap:5px!important;
    padding-top:6px!important;
    padding-bottom:6px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-metric{
    padding-top:5px!important;
    padding-bottom:5px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-metric small{
    margin-bottom:1px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary{
    gap:6px!important;
    padding-top:6px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary>div{
    padding-top:6px!important;
    padding-bottom:6px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-grid{
    gap:5px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-home-bias-item{
    padding-top:5px!important;
    padding-bottom:5px!important;
  }

  .kirin-analysis-room #analysis-environment .kirin-environment-analysis-summary>div:last-child{
    padding-top:6px!important;
    padding-bottom:6px!important;
  }
}


/* Sprint40 Final QA v1 */
/* Theme 2: iPad Pro Portrait Home
   The 1024px portrait layout already uses the desired two-column Pro contract.
   Only rebalance the two top columns: make AI judgement narrower and transfer
   that width to metrics/reasons so caution copy wraps less.
   721..980 portrait keeps its existing layout unchanged.
*/
@media (min-width:981px) and (max-width:1024px) and (orientation:portrait){
  .kirin-race-screen .kirin-decision-card{
    grid-template-columns:minmax(286px,.82fr) minmax(0,1.88fr)!important;
  }

  .kirin-race-screen .kirin-decision-main{
    min-width:0!important;
    padding-inline:18px!important;
  }

  .kirin-race-screen .kirin-reasons{
    min-width:0!important;
    gap:8px!important;
  }

  .kirin-race-screen .kirin-reason{
    min-width:0!important;
    padding-inline:11px!important;
  }

  .kirin-race-screen .kirin-reason ul{
    font-size:10px!important;
    line-height:1.42!important;
  }

  .kirin-race-screen .kirin-decision-support,
  .kirin-race-screen .kirin-decision-detail,
  .kirin-race-screen .kirin-decision-detail-home,
  .kirin-race-screen .kirin-recommended-horses,
  .kirin-race-screen .kirin-recommended-tickets{
    grid-column:1 / -1!important;
    min-width:0!important;
  }
}

/* Shared dark scrollbar contract for iPad portrait. */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  html,
  body,
  .kirin-sidebar,
  .kirin-race-list{
    scrollbar-color:#343a35 #0a0d0b;
    scrollbar-width:thin;
  }
  html::-webkit-scrollbar,
  body::-webkit-scrollbar,
  .kirin-sidebar::-webkit-scrollbar,
  .kirin-race-list::-webkit-scrollbar{
    width:8px;
    height:8px;
  }
  html::-webkit-scrollbar-track,
  body::-webkit-scrollbar-track,
  .kirin-sidebar::-webkit-scrollbar-track,
  .kirin-race-list::-webkit-scrollbar-track{
    background:#0a0d0b;
  }
  html::-webkit-scrollbar-thumb,
  body::-webkit-scrollbar-thumb,
  .kirin-sidebar::-webkit-scrollbar-thumb,
  .kirin-race-list::-webkit-scrollbar-thumb{
    background:#343a35;
    border:2px solid #0a0d0b;
    border-radius:999px;
  }
}

/* === Sprint40 Final QA exact repair v2: iPad Pro portrait Home BEGIN === */
@media (min-width:981px) and (max-width:1024px) and (orientation:portrait){
  .kirin-race-screen>.kirin-decision-card{
    grid-template-columns:minmax(0,286px) minmax(0,1fr) minmax(0,1fr)!important;
  }
  .kirin-race-screen>.kirin-decision-card>.kirin-recommended-horses,
  .kirin-race-screen>.kirin-decision-card>.kirin-recommended-tickets,
  .kirin-race-screen>.kirin-decision-card>.kirin-decision-detail,
  .kirin-race-screen>.kirin-decision-card>.kirin-decision-detail-home{
    grid-column:1 / 4!important;
    width:auto!important;
    max-width:none!important;
    min-width:0!important;
  }
}
/* === Sprint40 Final QA exact repair v2: iPad Pro portrait Home END === */

/* === Sprint40 iPad portrait row-separator contract BEGIN === */
@media (min-width:721px) and (max-width:1024px) and (orientation:portrait){
  .kirin-race-screen .kirin-other-ticket-grid .kirin-ticket-separator{
    display:none!important;
  }

  .kirin-race-screen .kirin-other-ticket-grid .kirin-ticket-combination{
    position:relative!important;
  }

  /* 2-column visual rule:
     slash is a LEADING separator of column 2,
     never a trailing separator of column 1. */
  .kirin-race-screen .kirin-other-ticket-grid .kirin-ticket-combination:nth-child(4n + 3)::before{
    content:"/"!important;
    display:inline-block!important;
    margin-right:7px!important;
    color:#7f8a82!important;
    font-size:10px!important;
    font-weight:700!important;
    line-height:1!important;
  }
}
/* === Sprint40 iPad portrait row-separator contract END === */
