/* ==========================================================================
   Free Fly schedule (/free-fly-schedule/) · loaded after site.css and guide.css, on this page only.
   Same Cockpit HUD system: every token, face and component comes from site.css / guide.css.
   This file only adds what the schedule needs on top of the guide:
   - event tables that run the full grid width under their section heading, turning into
     stacked cards when their own box is too narrow for six columns
   - source-tier tags (Official = signal, Press = neutral, Fan only = amber, as .tag in site.css)
   - several question rows sharing one section band
   - a ten-item "On this page" strip
   ========================================================================== */

/* intro: keep the pilot and the ship in the 4:3 crop */
.ffs .gi__media img{object-position:26% 50%}

/* on this page: ten items, five to a row on wide screens */
@media (min-width:1024px){
  .ffs .gtoc ol{grid-template-columns:repeat(5,minmax(0,1fr));row-gap:8px}
}

/* several question rows in one band: a hairline and the band's rhythm between them */
.ffs-row+.ffs-row{margin-top:96px;padding-top:88px;border-top:1px solid var(--line)}
/* 03–07 read as one Q&A block: question-size headings (the guide's step-heading scale, a notch up)
   on a tighter rhythm, so five questions don't stack up like five section headlines */
.ffs-qa .gsec__h{font-size:clamp(26px,2.3vw,34px);line-height:1.1;letter-spacing:-.01em;max-width:16ch}
.ffs-qa .ffs-row+.ffs-row{margin-top:64px;padding-top:56px}

/* =========================================================================
   EVENT TABLES
   ========================================================================= */
.ffs-wide{grid-column:1 / -1;margin-top:52px}
/* fixed columns, so the 2026, 2025 and 2024 tables line up with each other */
.ffs-t table{font-size:15px;table-layout:fixed}
.ffs-t thead th{white-space:nowrap}
.ffs-t thead th:nth-child(1){width:18%}
.ffs-t thead th:nth-child(2){width:12%}
.ffs-t thead th:nth-child(3){width:6%}
.ffs-t thead th:nth-child(4){width:24%}
.ffs-t thead th:nth-child(5){width:19%}
.ffs-t thead th:nth-child(6){width:21%}
.ffs-t tbody th{white-space:normal}
.ffs-t thead th:nth-child(3),.ffs-t td.ffs-n{text-align:right;padding-right:24px}
.ffs-t td.ffs-d{white-space:nowrap;color:var(--ink)}
.ffs-t td.ffs-n{font:500 15px/1.45 var(--f-mono);color:var(--ink);font-variant-numeric:tabular-nums}
.ffs-t td:last-child{color:var(--ink-2)}
.ffs-nil{color:var(--ink-4)}
.ffs-src{display:flex;flex-direction:column;align-items:flex-start;gap:8px}
.ffs-src .tag{padding:5px 7px 4px;font-size:10.5px}
.ffs-none{color:var(--ink-3)}
.ffs-t tbody tr{transition:background 140ms linear}
.ffs-t tbody tr:hover{background:rgba(76,214,245,.03)}
/* expected (IAE) and unverified rows read as standby, not as history */
.ffs-wait{color:var(--standby)}
.ffs-unv td.ffs-d{color:var(--ink-3);white-space:normal}
.ffs-exp td.ffs-d{white-space:normal}
/* who could join, under the event name (Ship Showdown 2956: existing backers only) */
.ffs-who{display:block;margin-top:8px;font:500 10.5px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--standby)}

/* source tags: Official in the signal colour (Press and Fan only use .tag and .tag--amber) */
.tag--signal{color:var(--signal);border-color:var(--signal-dim)}

/* six columns need about 860px; below that each event becomes a card, as the guide's city table does at 600px */
@container (max-width:860px){
  .ffs-t table,.ffs-t tbody,.ffs-t tr,.ffs-t th,.ffs-t td{display:block}
  .ffs-t thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .ffs-t tbody{border-top:1px solid var(--line-strong)}
  .ffs-t tbody tr{padding:18px 0 16px}
  .ffs-t tbody th{padding:0 0 10px;font-size:19px;white-space:normal}
  .ffs-t td,.ffs-t td.ffs-n,.ffs-t td.ffs-d{display:grid;grid-template-columns:118px minmax(0,1fr);column-gap:12px;padding:5px 0;min-width:0;text-align:left;white-space:normal}
  .ffs-t td::before{content:attr(data-label);padding-top:3px;font:500 10.5px/1.4 var(--f-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
  .ffs-t td.is-nil{display:none}
  .ffs-src{flex-direction:row;flex-wrap:wrap;align-items:baseline;column-gap:10px;row-gap:6px}
}

/* =========================================================================
   QUESTION ROWS
   ========================================================================= */
/* 01: the state line (between / announced / live, swapped by site.js) sits above the lead on every width */
.ffs-state{margin-bottom:22px}
.ffs-state .state-row__t{line-height:1.45}
html.ff-noend .ffs-left{display:none}
.ffs .log{margin-top:48px}
.ffs .ffs-lognote{max-width:none;margin-top:14px;font-size:14.5px;line-height:1.5;color:var(--ink-3)}
.ffs .co--note{margin-top:40px}
.ffs-len{margin-top:32px;max-width:36em}
.ffs-len td:last-child{font:500 15px/1.5 var(--f-mono);color:var(--ink)}
.ffs-months b{color:var(--ink);font-weight:600}
.ffs-months+p{margin-top:20px}

/* how we check: the three source tags as a key */
.ffs-key{margin-top:24px;max-width:36em;border-bottom:1px solid var(--line)}
.ffs-key>div{display:grid;grid-template-columns:112px minmax(0,1fr);column-gap:16px;align-items:baseline;padding:16px 0 17px;border-top:1px solid var(--line)}
.ffs-key dd{font-size:16px;line-height:1.55}
.ffs-key+p{margin-top:24px}
.ffs-checked{font-size:15.5px;color:var(--ink-3)}

@media (max-width:719px){
  .ffs-row+.ffs-row{margin-top:64px;padding-top:56px}
  .ffs-wide{margin-top:32px}
  /* the rail is hidden on phones (site.css) and the 2026 table follows: skip the duplicate list */
  .ffs .log{display:none}
  .ffs-key>div{grid-template-columns:1fr;row-gap:10px}
}
