/*
 * K.I.R.I.N. Sprint40
 * iPhone Home polish
 *
 * Scope:
 *   - max-width:480px only
 *   - Home/Race decision presentation only
 *
 * Do not redefine:
 *   - data contracts
 *   - horse numbers / ticket generation
 *   - Review renderers
 *   - PC / iPad layouts
 */

@media (max-width:480px){

  /* ---------- Home first-view density ---------- */
  .kirin-race-screen{
    gap:12px;
  }

  .kirin-decision-card{
    gap:9px;
    padding:8px;
  }

  .kirin-decision-main{
    padding:20px 12px;
  }

  .kirin-decision-heading{
    margin-bottom:9px;
  }

  .kirin-rank{
    margin:12px 0;
  }

  /* ---------- Decision metrics ---------- */
  .kirin-metrics{
    gap:6px;
  }

  .kirin-metric{
    min-height:76px;
    padding:9px;
    gap:5px;
  }

  .kirin-metric small{
    line-height:1.25;
  }

  .kirin-metric strong{
    line-height:1.15;
  }

  .kirin-investment-values{
    gap:5px;
  }

  .kirin-investment-values>span+span{
    padding-left:5px;
  }

  .kirin-investment-values strong{
    font-size:16px;
    line-height:1.18;
    overflow-wrap:anywhere;
  }

  /* ---------- Buy / caution ---------- */
  .kirin-reason{
    padding:12px 13px;
  }

  .kirin-reason h3{
    margin-bottom:7px;
  }

  .kirin-reason ul{
    line-height:1.45;
  }

  /* ---------- Summary / action ---------- */
  .kirin-decision-support{
    gap:9px;
  }

  .kirin-decision-summary,
  .kirin-recommended-action{
    padding:13px;
  }

  .kirin-support-heading{
    margin-bottom:10px;
  }

  .kirin-summary-grid{
    gap:7px;
  }

  .kirin-summary-grid>div{
    padding:10px 11px;
  }

  .kirin-summary-grid small{
    margin-bottom:5px;
  }

  .kirin-recommended-action>strong{
    margin:10px 0 6px;
  }

  /* ---------- Recommended horses ---------- */
  .kirin-recommended-horses{
    padding:12px 13px;
  }

  .kirin-recommended-horses h2{
    margin-bottom:8px;
  }

  .kirin-recommended-horses ul{
    gap:7px;
  }

  .kirin-recommended-horses li{
    padding:8px 9px;
  }

  /* ---------- Recommended tickets ----------
   * Keep combinations, horse-number chips, BOX/count contracts untouched.
   * Only reduce mobile whitespace.
   */
  .kirin-recommended-tickets{
    padding:12px 13px;
  }

  .kirin-recommended-tickets h2{
    margin-bottom:8px;
  }

  .kirin-ticket-grid,
  .kirin-other-ticket-grid{
    gap:7px;
  }

  .kirin-ticket-card{
    padding:9px 10px;
  }

  .kirin-ticket-card>small{
    line-height:1.35;
  }

  .kirin-ticket-formation{
    row-gap:5px;
  }

  .kirin-other-tickets{
    margin-top:8px;
  }

  /* ---------- Detail ---------- */
  .kirin-decision-detail-home{
    padding-top:8px;
  }

  .kirin-decision-detail-home>summary{
    min-height:52px;
  }
}

@media (max-width:390px){
  .kirin-decision-card{
    padding:7px;
  }

  .kirin-decision-main{
    padding:18px 10px;
  }

  .kirin-metric{
    min-height:74px;
    padding:8px;
  }

  .kirin-investment-values strong{
    font-size:15px;
  }

  .kirin-ticket-card{
    padding:8px 9px;
  }
}


/* === Sprint40 iPhone Home Phase2 finish === */
@media (max-width:390px){

  /*
   * 375pxで唯一まだ窮屈だった「投資判断 / 期待値 / リスク」だけを再調整。
   * 3列メトリクスの情報密度は維持し、期待値側へ幅を寄せる。
   */
  .kirin-metric--investment{
    padding-left:7px;
    padding-right:7px;
  }

  .kirin-metric--investment > small{
    font-size:9px;
  }

  .kirin-metric--investment .kirin-investment-values{
    grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr);
    gap:3px;
  }

  .kirin-metric--investment .kirin-investment-values>span+span{
    padding-left:3px;
  }

  .kirin-metric--investment .kirin-investment-values em{
    font-size:8px;
    white-space:nowrap;
  }

  .kirin-metric--investment .kirin-investment-values strong{
    font-size:13px;
    line-height:1.1;
    letter-spacing:-.035em;
  }

  /*
   * 推奨馬は情報量を削らず、各行の余白だけ最終調整。
   * 馬番・枠色・印・馬名・役割のDOM契約は触らない。
   */
  .kirin-recommended-horses li{
    gap:2px;
    padding:7px 8px;
  }

  .kirin-recommended-horse-main{
    gap:7px;
  }

  .kirin-recommended-role{
    margin-top:1px;
    line-height:1.2;
  }

  /*
   * 長い買い目は可読性を優先しつつ、カード間余白だけ少し詰める。
   * combinations / BOX / count / horse-number chipは変更しない。
   */
  .kirin-ticket-grid,
  .kirin-other-ticket-grid{
    gap:6px;
  }

  .kirin-ticket-card{
    padding-top:8px;
    padding-bottom:8px;
  }

  .kirin-ticket-card>strong{
    margin-bottom:5px;
  }
}
/* === /Sprint40 iPhone Home Phase2 finish === */


/* === Sprint40 iPhone Home Phase3 user fixes === */
@media (max-width:390px){

  /* 1) Race identity header: 14px / 10px / 22px / 10px */
  .kirin-race-info{
    padding:14px;
  }

  .kirin-race-info__meta{
    margin-bottom:1px;
    font-size:10px;
    line-height:1.3;
  }

  .kirin-race-info__title{
    font-size:22px;
    line-height:1.22;
  }

  .kirin-race-info__summary{
    margin-top:5px;
    font-size:10px;
    line-height:1.35;
  }

  /* Result-ready badge: smaller text + frame */
  .kirin-race-header>.kirin-status{
    top:14px;
    right:14px;
    padding:4px 7px;
    border-radius:999px;
    font-size:9px;
    line-height:1.15;
  }

  /* 2) Start / purchase-deadline cards: reduce vertical padding */
  .kirin-timing{
    gap:7px;
  }

  .kirin-time-card{
    min-height:44px;
    padding:4px 9px;
    gap:7px;
  }

  .kirin-time-card small{
    font-size:9px;
  }

  .kirin-time-value,
  .kirin-time-card--close .kirin-time-value--exact{
    font-size:17px;
  }

  .kirin-time-card--close .kirin-time-rule{
    margin-left:4px;
    padding:2px 5px;
    font-size:7px;
  }

  /* 3) Six decision boxes: tighter inner spacing */
  .kirin-metrics{
    gap:6px;
  }

  .kirin-metric{
    min-height:68px;
    padding:7px 8px;
    gap:3px;
  }

  .kirin-metric small{
    font-size:9px;
    line-height:1.2;
  }

  .kirin-metric strong{
    font-size:20px;
    line-height:1.05;
  }


  .kirin-metric--investment{
    padding:7px 6px;
  }

  .kirin-metric--investment > small{
    font-size:8px;
  }

  .kirin-metric--investment .kirin-investment-values{
    gap:2px;
  }

  .kirin-metric--investment .kirin-investment-values em{
    font-size:7px;
  }

  .kirin-metric--investment .kirin-investment-values strong{
    font-size:12px;
    line-height:1.05;
  }

  /* 4) Header batch buttons:
   * result button loses red frame/background.
   * only its check/icon tone keeps the red accent.
   */
  .dre-batch-collector-toggle,
  .dre-result-batch-toggle{
    width:38px;
    min-width:38px;
    height:38px;
    min-height:38px;
    margin-left:4px;
    padding:0;
    border-radius:50%;
    font-size:0;
    line-height:1;
    box-shadow:none;
  }

  .dre-batch-collector-toggle{
    border-color:#343a2d;
    background:#0c0f0d;
  }

  .dre-result-batch-toggle{
    border-color:#343a2d!important;
    background:#0c0f0d!important;
    color:#ff7b70!important;
  }

  .dre-result-batch-toggle:hover,
  .dre-result-batch-toggle:focus-visible{
    border-color:#4c5445!important;
    background:#111510!important;
    color:#ff8b80!important;
  }

  /* 5) Footer:
   * copyright + Powered stay on one line.
   * version moves below them.
   */
  .kirin-global-footer{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    padding-top:14px;
    text-align:center;
  }

  .kirin-global-footer p{
    order:1;
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:5px;
    margin:0;
    font-size:9px;
    line-height:1.3;
    white-space:nowrap;
  }

  .kirin-global-footer p span{
    display:inline;
    margin:0;
    color:#c3aa58;
  }

  .kirin-footer-build{
    order:2;
    display:flex;
    align-items:baseline;
    justify-content:center;
    gap:5px;
    margin:0;
    color:var(--muted);
    font-size:8px;
    line-height:1.2;
    letter-spacing:.04em;
  }

  .kirin-footer-build strong{
    font-size:9px;
  }
}
/* === /Sprint40 iPhone Home Phase3 user fixes === */


/* === Sprint40 iPhone Home Phase4 micro tune === */
@media (max-width:390px){

  /* Header three-line rhythm: equalize vertical spacing */
  .kirin-race-info__meta{
    margin:0 0 3px;
  }

  .kirin-race-info__title{
    margin:0;
  }

  .kirin-race-info__summary{
    margin:3px 0 0;
  }

  /* Result badge: tighter final size */
  .kirin-race-header>.kirin-status{
    padding:2px 5px;
  }

  /* Start / purchase deadline: final vertical compression */
  .kirin-time-card{
    min-height:38px;
    padding:2px 9px;
  }
}
/* === /Sprint40 iPhone Home Phase4 micro tune === */


/* === Sprint40 iPhone Home verified final override ===
 * Final cascade layer. 375px only.
 * Uses explicit selectors to beat earlier shared/mobile declarations.
 */
@media screen and (max-width:390px){
  body .kirin-race-header .kirin-race-info .kirin-race-info__meta{
    margin-top:0!important;
    margin-bottom:3px!important;
  }
  body .kirin-race-header .kirin-race-info .kirin-race-info__title{
    margin-top:0!important;
    margin-bottom:0!important;
  }
  body .kirin-race-header .kirin-race-info .kirin-race-info__summary{
    margin-top:3px!important;
    margin-bottom:0!important;
  }
  body .kirin-race-header>.kirin-status{
    padding:2px 5px!important;
  }

  body .kirin-timing .kirin-time-card{
    min-height:0!important;
    height:38px!important;
    padding-top:0!important;
    padding-bottom:0!important;
    box-sizing:border-box!important;
  }

  body .dre-batch-collector-toggle,
  body .dre-result-batch-toggle{
    width:38px!important;
    min-width:38px!important;
    max-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    padding:0!important;
    aspect-ratio:1 / 1!important;
    border-radius:50%!important;
    flex:0 0 38px!important;
    box-sizing:border-box!important;
  }
}
/* === /Sprint40 iPhone Home verified final override === */


/* === Sprint40 iPhone shared race-title 22px contract === */
@media screen and (max-width:390px){
  /* Correct iPhone baseline: the second/header title line is 22px on every page. */
  .kirin-race-header h1,
  .kirin-race-header h2,
  .kirin-race-info h1,
  .kirin-race-info h2{
    font-size:22px!important;
    line-height:1.22!important;
  }
}

/* === Sprint40 Home investment SE parity through 480 BEGIN === */
/*
 * Exact extension of the existing <=390px SE investment contract.
 * No font guessing and no generic metric changes.
 * Scope: Home investment card only, <=480px.
 */
@media screen and (max-width:480px){
  .kirin-metric--investment{
    padding-left:7px!important;
    padding-right:7px!important;
  }

  .kirin-metric--investment > small{
    font-size:9px!important;
  }

  .kirin-metric--investment .kirin-investment-values{
    grid-template-columns:minmax(0,1.35fr) minmax(0,.65fr)!important;
    gap:3px!important;
    min-width:0!important;
  }

  .kirin-metric--investment .kirin-investment-values>span{
    min-width:0!important;
  }

  .kirin-metric--investment .kirin-investment-values>span+span{
    padding-left:3px!important;
  }

  .kirin-metric--investment .kirin-investment-values em{
    font-size:8px!important;
    white-space:nowrap!important;
  }

  .kirin-metric--investment .kirin-investment-values strong{
    font-size:13px!important;
    line-height:1.1!important;
    letter-spacing:-.035em!important;
    white-space:nowrap!important;
  }
}
/* === Sprint40 Home investment SE parity through 480 END === */
