/* K.I.R.I.N. Sprint40
 * iPhone Common Header Contract — SE PARITY v2
 *
 * Reference:
 *   Existing approved iPhone SE rules already present in the current source.
 *
 * Scope:
 *   <=480px, HEADER REGIONS ONLY.
 *
 * Ownership:
 *   1) global top header / brand / actions / primary nav
 *   2) Home race-information header
 *   3) Race-list page header
 *   4) Analysis race-information header
 *   5) Review page header
 *   6) Settings page header
 *
 * This owner intentionally does NOT style page body, metrics, tickets,
 * analysis cards, review tables, settings cards, or investment contents.
 */
@media screen and (max-width:480px){

  /* =========================================================
     1. GLOBAL TOP HEADER
     SE reference:
       base mobile header 64px / 14px
       brand 32px
       action buttons 38px (Home verified final override)
       nav text 11px
     ========================================================= */
  .kirin-header{
    height:64px!important;
    padding:0 14px!important;
  }

  .kirin-header .kirin-brand{
    gap:8px!important;
  }

  .kirin-header .kirin-brand>img{
    flex:0 0 32px!important;
    width:32px!important;
    height:32px!important;
  }

  .kirin-header .kirin-brand-copy{
    gap:4px!important;
  }

  .kirin-header .kirin-brand-copy strong{
    font-size:13px!important;
  }

  .kirin-header .kirin-brand-copy small{
    display:block!important;
    max-width:108px!important;
    font-size:7px!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  .kirin-header-actions{
    gap:8px!important;
  }

  .kirin-header-tools{
    gap:4px!important;
  }

  /* Exact approved SE action contract:
     geometry = 38px;
     result action keeps ONLY the check/icon red accent.
     Its frame/background stay on the same neutral surface as the + action. */
  .kirin-header-tools .dre-mobile-batch-action,
  body .dre-batch-collector-toggle,
  body .dre-result-batch-toggle{
    flex:0 0 38px!important;
    width:38px!important;
    min-width:38px!important;
    max-width:38px!important;
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    margin-left:4px!important;
    padding:0!important;
    aspect-ratio:1 / 1!important;
    border-radius:50%!important;
    box-sizing:border-box!important;
    box-shadow:none!important;
    font-size:0!important;
    line-height:1!important;
  }

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

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

  body .dre-result-batch-toggle:hover,
  body .dre-result-batch-toggle:focus-visible,
  body .dre-result-batch-toggle[aria-expanded="true"]{
    border-color:#4c5445!important;
    background:#111510!important;
    color:#ff8b80!important;
  }

  .kirin-nav>button{
    font-size:11px!important;
  }

  /* =========================================================
     2. HOME RACE HEADER
     Exact SE Home values from current Sprint40 owner.
     ========================================================= */
  .kirin-race-screen>.kirin-race-header>.kirin-race-info{
    padding:14px!important;
  }

  .kirin-race-screen>.kirin-race-header .kirin-race-info__meta{
    margin:0 0 3px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }

  .kirin-race-screen>.kirin-race-header .kirin-race-info__title{
    margin:0!important;
    font-size:22px!important;
    line-height:1.22!important;
  }

  .kirin-race-screen>.kirin-race-header .kirin-race-info__summary{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.35!important;
  }

  .kirin-race-screen>.kirin-race-header>.kirin-status{
    top:14px!important;
    right:14px!important;
    padding:2px 5px!important;
    font-size:9px!important;
    line-height:1.15!important;
  }

  /* =========================================================
     3. RACE LIST PAGE HEADER
     Exact current Sprint40 iPhone Race values.
     ========================================================= */
  .kirin-races-screen>.kirin-races-header{
    padding:14px!important;
    gap:0!important;
    border:1px solid var(--line-soft)!important;
    border-radius:14px!important;
    background:#0b0e0b!important;
  }

  .kirin-races-screen>.kirin-races-header>div{
    display:grid!important;
    gap:0!important;
    min-width:0!important;
  }

  .kirin-races-screen>.kirin-races-header .kirin-breadcrumb{
    margin:0 0 3px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }

  .kirin-races-screen>.kirin-races-header h1{
    margin:0!important;
    font-size:22px!important;
    line-height:1.22!important;
    letter-spacing:.02em!important;
  }

  .kirin-races-screen>.kirin-races-header h1 span{
    margin-left:4px!important;
    font-size:10px!important;
  }

  .kirin-races-screen>.kirin-races-header>div>p:last-child{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.35!important;
    text-align:left!important;
  }

  /* =========================================================
     4. ANALYSIS RACE HEADER
     Same approved Home mobile race-information contract.
     ========================================================= */
  .kirin-analysis-room>.kirin-race-header>.kirin-race-info{
    padding:14px!important;
  }

  .kirin-analysis-room>.kirin-race-header .kirin-race-info__meta{
    margin:0 0 3px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }

  .kirin-analysis-room>.kirin-race-header .kirin-race-info__title{
    margin:0!important;
    font-size:22px!important;
    line-height:1.22!important;
  }

  .kirin-analysis-room>.kirin-race-header .kirin-race-info__summary{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.35!important;
  }

  /* =========================================================
     5. REVIEW PAGE HEADER
     TRUE shared race-header contract.
     Review renderer already emits:
       <header class="kirin-race-header kirin-review-header">
         renderRaceIdentity(...)
         <span class="kirin-status">...</span>
       </header>

     Therefore the outer element MUST remain the canonical
     .kirin-race-header wrapper.  The visible card is .kirin-race-info.
     ========================================================= */
  .kirin-review-room>.kirin-race-header.kirin-review-header{
    position:relative!important;
    display:block!important;
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:none!important;
    gap:0!important;
    box-sizing:border-box!important;
  }

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

  .kirin-review-room>.kirin-race-header.kirin-review-header .kirin-race-info__meta{
    margin:0 0 3px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }

  .kirin-review-room>.kirin-race-header.kirin-review-header .kirin-race-info__title{
    margin:0!important;
    font-size:22px!important;
    line-height:1.22!important;
  }

  .kirin-review-room>.kirin-race-header.kirin-review-header .kirin-race-info__summary{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.35!important;
  }

  .kirin-review-room>.kirin-race-header.kirin-review-header>.kirin-status{
    position:absolute!important;
    top:14px!important;
    right:14px!important;
    z-index:1!important;
    padding:2px 5px!important;
    font-size:9px!important;
    line-height:1.15!important;
  }

  /* =========================================================
     6. SETTINGS PAGE HEADER
     Exact current Sprint40 iPhone Settings values.
     ========================================================= */
  .kirin-settings-screen>.kirin-settings-header{
    padding:14px!important;
    gap:10px!important;
    border:1px solid var(--line-soft)!important;
    border-radius:14px!important;
    background:#0b0e0b!important;
  }

  .kirin-settings-screen>.kirin-settings-header .kirin-breadcrumb{
    margin:0 0 3px!important;
    font-size:10px!important;
    line-height:1.3!important;
  }

  .kirin-settings-screen>.kirin-settings-header h1{
    margin:0!important;
    font-size:22px!important;
    line-height:1.22!important;
  }

  .kirin-settings-screen>.kirin-settings-header>div>p:last-child{
    margin:3px 0 0!important;
    font-size:10px!important;
    line-height:1.35!important;
  }

  .kirin-settings-screen>.kirin-settings-header .kirin-settings-version{
    padding:2px 5px!important;
    border-radius:999px!important;
    font-size:9px!important;
    line-height:1.15!important;
  }
}

/* === Sprint40 Review runtime-exact Home parity BEGIN === */
/*
 * Runtime evidence at identical 414x896 viewport:
 *
 * HOME (PASS)
 * raceInfo padding: 14px
 * meta: 10px / 13px / margin-bottom 3px
 * title: 22px / 26.84px / margin-top 0
 * summary: 10px / 13.5px / margin-top 3px
 * header height: 88.67px
 *
 * REVIEW (NG before this fix)
 * raceInfo padding: 18px
 * meta: 11px / 14.85px / margin-bottom 1px
 * title: 22px / 27.5px / margin-top 6px
 * summary: 11px / 14.85px / margin-top 6px
 * header height: 107.52px
 *
 * This block applies ONLY the measured Home contract to Review's actual DOM.
 */
@media screen and (max-width:480px){
  .kirin-review-room > .kirin-race-header > .kirin-race-info{
    padding:14px!important;
  }

  .kirin-review-room > .kirin-race-header > .kirin-race-info > .kirin-race-info__meta{
    margin-top:0!important;
    margin-right:0!important;
    margin-bottom:3px!important;
    margin-left:0!important;
    font-size:10px!important;
    line-height:13px!important;
  }

  .kirin-review-room > .kirin-race-header > .kirin-race-info > .kirin-race-info__title{
    margin-top:0!important;
    margin-right:0!important;
    margin-bottom:0!important;
    margin-left:0!important;
    font-size:22px!important;
    line-height:26.84px!important;
    letter-spacing:.44px!important;
  }

  .kirin-review-room > .kirin-race-header > .kirin-race-info > .kirin-race-info__summary{
    margin-top:3px!important;
    margin-right:0!important;
    margin-bottom:0!important;
    margin-left:0!important;
    font-size:10px!important;
    line-height:13.5px!important;
  }
}
/* === Sprint40 Review runtime-exact Home parity END === */

/* === Sprint40 FinalQA SE Settings header typography parity BEGIN === */
/*
 * Runtime matrix at SE:
 * Home / Race / Analysis / Review title:
 *   22px / 700 / 26.84px / letter-spacing .44px / rgb(240,243,239)
 *
 * Settings title:
 *   22px / 700 / 26.84px / letter-spacing normal / rgb(245,242,232)
 *
 * Normalize only the measured residual Settings difference.
 * No height / padding / summary / layout changes.
 */
@media screen and (max-width:376px){
  .kirin-settings-screen > .kirin-settings-header h1{
    color:rgb(240,243,239)!important;
    letter-spacing:.44px!important;
  }
}
/* === Sprint40 FinalQA SE Settings header typography parity END === */

/* === Sprint40 FinalQA SE Analysis summary single-line BEGIN === */
/*
 * Measured fix:
 * At SE width the Analysis description alone wraps to 2 lines (27px),
 * while the shared target header is 1 line (13.5px).
 * Preserve typography and text; allow this one description to consume
 * the header's measured 14px right-side reserve.
 */
@media screen and (max-width:376px){
  .kirin-analysis-room .kirin-race-header .kirin-race-info__summary{
    width:calc(100% + 14px)!important;
    max-width:calc(100% + 14px)!important;
  }
}
/* === Sprint40 FinalQA SE Analysis summary single-line END === */
