/*
 * MSFS攻略Lab ポータル — デザイン言語
 *
 * 参照: パイロットのニーボード、VFRセクショナルチャートの用紙、フライトストリップ（ATCの進行票）、
 * METAR/TAFの生テキスト読み上げ。すでにこのサイトの読者が読み慣れている表記（ICAO・METAR・滑走路方位）
 * をそのままデザインの語彙にする。2つのゾーンだけを使う: 暗いアビオニクスパネル（ヒーロー・気象表示）と
 * 明るいチャート用紙（それ以外すべて）。色はカテゴリ・状態を表す記号として使い、装飾では使わない。
 */
/* Tokens are declared on both wrappers: `.msfs-lab` wraps the five portal pages, but `[msfs_aircraft_table]`
   and `[msfs_edition_table]` also render standalone inside ordinary articles (their own `.msfs-edition-table`
   wrapper, outside `.msfs-lab`) — without this, var() references there fail silently outside the portal. */
:where(.msfs-lab,.msfs-edition-table) {
  --msfs-ink:#122430;
  --msfs-panel:#0C2431;
  --msfs-panel-line:#25495D;
  --msfs-chart:#EDE6D3;
  --msfs-surface:#F7F3E7;
  --msfs-line:#DCD2B4;
  --msfs-muted:#5B6A63;
  --msfs-amber:#B87A22;
  --msfs-amber-deep:#8A5A16;
  --msfs-teal:#356F60;
  --msfs-rust:#93432E;
  --msfs-sage:#5F7F4F;
  --msfs-evtol:#5F5280;
  --msfs-mono:'IBM Plex Mono',ui-monospace,Menlo,Consolas,monospace;
  color:var(--msfs-ink);
  font-variant-numeric:oldstyle-nums;
}
.msfs-lab :where(h1,h2,h3) { font-variant-numeric:normal; }
.msfs-lab a { text-underline-offset:.2em; }
.msfs-lab :where(a,button,input,select,textarea,summary):focus-visible { outline:3px solid var(--msfs-amber); outline-offset:3px; }
.msfs-lab code,.msfs-lab .msfs-mono { font-family:var(--msfs-mono); }

/* ---- タブ（機能ナビゲーション） ---- */
/* 折り返さず横スクロールにする（SWELL標準タブ .c-tabList と同じ挙動）。サイドバー表示時の
   本文幅は画面幅に応じて変わるため、常時 overflow-x:auto にして幅が足りない時だけ実際に
   スクロールできるようにする。スクロールバーは隠さず薄いつまみだけ出す。 */
.msfs-nav { display:flex; gap:4px; flex-wrap:nowrap; overflow-x:auto; overscroll-behavior-x:contain; scrollbar-width:thin; scrollbar-color:var(--msfs-line) transparent; border-bottom:2px solid var(--msfs-ink); padding:0; margin:0 0 32px; }
.msfs-nav::-webkit-scrollbar { height:5px; }
.msfs-nav::-webkit-scrollbar-thumb { background:var(--msfs-line); border-radius:3px; }
.msfs-nav a { display:flex; align-items:center; gap:6px; flex-shrink:0; padding:11px 14px; font-weight:600; font-size:14px; text-decoration:none; color:var(--msfs-muted); background:var(--msfs-surface); border:1px solid var(--msfs-line); border-bottom:none; border-radius:4px 4px 0 0; margin-bottom:-2px; transition:background-color .15s ease,color .15s ease; }
.msfs-nav-icon { width:16px; height:16px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; opacity:.7; transition:opacity .15s ease; }
.msfs-nav a:hover { color:var(--msfs-ink); background:var(--msfs-chart); }
.msfs-nav a:hover .msfs-nav-icon,.msfs-nav a[aria-current] .msfs-nav-icon { opacity:1; }
.msfs-nav a[aria-current] { color:var(--msfs-ink); background:#fff; border-color:var(--msfs-ink); box-shadow:inset 0 3px var(--msfs-amber); }

/* ---- ヒーロー（アビオニクスパネル） ---- */
.msfs-hero { position:relative; isolation:isolate; overflow:hidden; border-radius:2px; background:var(--msfs-panel); color:#F2EEE1; padding:48px 44px; }
.msfs-compass { position:absolute; right:-40px; top:50%; translate:0 -50%; width:320px; height:320px; color:#F2EEE1; opacity:.14; z-index:-1; }
.msfs-hero-copy { max-width:640px; }
.msfs-hero-copy h1, .msfs-hero-copy .msfs-hero-title { font-size:clamp(1.9rem,3.6vw,2.7rem); line-height:1.4; font-weight:700; margin:0 0 14px; }
.msfs-hero-copy>p:not(.msfs-hero-title) { line-height:1.85; margin:0 0 30px; color:#CBD4CE; max-width:34em; }
.msfs-stats { display:flex; gap:36px; margin-bottom:32px; border-top:1px solid var(--msfs-panel-line); padding-top:24px; }
.msfs-stats div { min-width:0; }
.msfs-stats strong { display:block; font-family:var(--msfs-mono); font-weight:700; font-size:clamp(1.5rem,3vw,2.1rem); line-height:1; color:#F2EEE1; font-variant-numeric:tabular-nums; }
.msfs-stats span { display:block; margin-top:8px; font-size:13px; color:#9FB0A8; }
.msfs-button { display:inline-flex; align-items:center; justify-content:center; min-height:46px; padding:11px 26px; border:1px solid var(--msfs-amber); border-radius:2px; background:var(--msfs-amber); color:#20140A!important; font:inherit; font-weight:700; text-decoration:none!important; cursor:pointer; transition:background .15s,transform .1s; }
.msfs-button:hover { background:#CE8E2C; }
.msfs-button:active { transform:translateY(1px); }
.msfs-button-light { background:transparent; border-color:#F2EEE1; color:#F2EEE1!important; }
.msfs-button-light:hover { background:rgba(242,238,225,.12); }

/* ---- ランチパッド（フライトストリップ・ラック） ---- */
.msfs-launchpad { display:flex; flex-direction:column; border:1px solid var(--msfs-line); border-radius:2px; overflow:hidden; margin:28px 0 40px; background:#fff; }
.msfs-launchpad>a { display:flex; align-items:center; gap:16px; padding:16px 20px; text-decoration:none; color:var(--msfs-ink); border-left:5px solid var(--msfs-muted); border-top:1px solid var(--msfs-line); }
.msfs-launchpad>a:first-child { border-top:none; }
.msfs-launchpad>a[data-accent="aircraft"] { border-left-color:var(--msfs-teal); }
.msfs-launchpad>a[data-accent="addons"] { border-left-color:var(--msfs-amber); }
.msfs-launchpad>a[data-accent="airports"] { border-left-color:var(--msfs-rust); }
.msfs-launchpad>a[data-accent="briefing"] { border-left-color:#397DB0; }
.msfs-launchpad>a:hover { background:var(--msfs-surface); }
.msfs-launchpad strong { display:block; font-size:16px; font-weight:700; }
.msfs-launchpad span { display:block; font-size:13px; color:var(--msfs-muted); margin-top:3px; }
.msfs-launchpad b { margin-left:auto; font-weight:400; color:var(--msfs-muted); flex-shrink:0; }

/* ---- 見出し・イントロ ---- */
.msfs-intro { margin:32px 0; }
.msfs-intro h1 { font-size:2rem; line-height:1.5; margin:8px 0 12px; overflow-wrap:anywhere; }
.msfs-intro>p { color:var(--msfs-muted); }
.msfs-meta,.msfs-source,.msfs-note,.msfs-footnote,.msfs-back { font-size:13px; line-height:1.8; color:var(--msfs-muted); }
.msfs-source { margin:20px 0 0!important; }
.msfs-footnote { border-top:1px solid var(--msfs-line); padding-top:24px; margin-top:56px!important; }

/* ---- 検索フォーム ---- */
.msfs-search { display:flex; align-items:flex-end; flex-wrap:wrap; gap:12px; background:var(--msfs-chart); border:1px solid var(--msfs-line); padding:20px; border-radius:2px; margin:20px 0 22px; }
.msfs-search label { display:flex; flex:1 1 130px; flex-direction:column; gap:7px; font-size:13px; font-weight:600; color:var(--msfs-ink); }
.msfs-search .msfs-search-query { flex:3 1 260px; }
.msfs-search input,.msfs-search select { width:100%; min-width:0; border:1px solid #9C917A; border-radius:2px; background:#fff; height:46px; font:inherit; font-size:16px; font-weight:400; color:var(--msfs-ink); padding:8px 12px; }
.msfs-search input::placeholder { color:#7A7259; opacity:1; }
.msfs-search select { max-width:100%; }
.msfs-search .msfs-reset { padding:12px 0; font-size:13px; color:var(--msfs-ink); }
.msfs-result-count { margin:24px 0!important; font-size:14px; }
.msfs-result-count strong { font-family:var(--msfs-mono); font-size:20px; font-variant-numeric:tabular-nums; }
.msfs-result-count span { color:var(--msfs-muted); }

/* ---- カタログカード（フライトストリップ） ---- */
.msfs-catalog { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.msfs-catalog-item { padding:20px 20px 20px 18px; border:1px solid var(--msfs-line); border-left:5px solid var(--msfs-muted); border-radius:2px; min-width:0; background:#fff; }
.msfs-catalog-item.has-media { padding-top:0; overflow:hidden; }
.msfs-catalog-media-link { display:block; margin:0 -20px 18px -18px; overflow:hidden; background:var(--msfs-panel); }
.msfs-catalog-thumb { aspect-ratio:16/9; margin:0; overflow:hidden; }
.msfs-catalog-thumb img { display:block; width:100%; height:100%; object-fit:cover; transition:transform .35s cubic-bezier(.16,1,.3,1); }
.msfs-catalog-media-link:hover img { transform:scale(1.035); }
.msfs-catalog-item[data-accent="jet"] { border-left-color:var(--msfs-teal); }
.msfs-catalog-item[data-accent="prop"] { border-left-color:var(--msfs-amber); }
.msfs-catalog-item[data-accent="heli"] { border-left-color:var(--msfs-rust); }
.msfs-catalog-item[data-accent="glider"] { border-left-color:var(--msfs-sage); }
.msfs-catalog-item[data-accent="evtol"] { border-left-color:var(--msfs-evtol); }
.msfs-catalog-item .msfs-item-name { margin:5px 0 12px; font-size:19px; font-weight:700; line-height:1.5; }
.msfs-item-name a { color:var(--msfs-ink); }
.msfs-catalog-item>p:not(.msfs-item-name):not(.msfs-meta) { font-size:14px; line-height:1.8; margin-bottom:16px; }
.msfs-tags { display:flex; flex-wrap:wrap; gap:6px; }
.msfs-tags span { display:inline-block; padding:3px 9px; border-radius:2px; background:var(--msfs-chart); color:var(--msfs-ink); font-size:11px; font-weight:600; font-family:var(--msfs-mono); border:1px solid var(--msfs-line); }
.msfs-tags .msfs-sim-2024 { background:#E4EEE8; color:var(--msfs-teal); border-color:#BFD6CB; }

/* ---- 公式ニュース ---- */
.msfs-news-list { list-style:none!important; padding:0!important; margin:16px 0!important; }
.msfs-news-list>li { display:grid; grid-template-columns:110px minmax(0,1fr); gap:14px; border-top:1px solid var(--msfs-line); padding:18px 0; margin:0; }
.msfs-news-list time { font-family:var(--msfs-mono); font-size:12px; color:var(--msfs-muted); padding-top:4px; }
.msfs-news-list article { min-width:0; }
.msfs-news-title { margin:0!important; font-size:16px; line-height:1.7; font-weight:700; color:var(--msfs-ink); overflow-wrap:anywhere; }
.msfs-news-original-title { margin:4px 0 0!important; color:var(--msfs-muted); font-size:12px; line-height:1.55; overflow-wrap:anywhere; }
.msfs-news-list a { line-height:1.7; font-weight:600; color:var(--msfs-ink); text-decoration:none; }
.msfs-news-list a:hover { text-decoration:underline; }
.msfs-news-list .msfs-meta { margin:7px 0; }
.msfs-news-labels { margin:8px 0 12px; }
.msfs-news-labels span:first-child { border-color:#C89B58; background:#F4E8CC; color:var(--msfs-amber-deep); }
.msfs-news-read { margin:10px 0 0!important; font-size:13px; }
.msfs-news-read a { color:var(--msfs-teal); }
.msfs-news-note { margin:14px 0; padding:13px 15px; background:#EAF0EB; box-shadow:inset 0 2px var(--msfs-teal); font-size:14px; line-height:1.75; }
.msfs-news-note strong { display:block; margin-bottom:3px; }
.msfs-news-note p { margin:0!important; }
.msfs-news-note small { display:block; margin-top:5px; color:var(--msfs-muted); }
.msfs-news-detail { max-width:780px; }
.msfs-news-detail-header { padding-bottom:24px; margin-bottom:32px; border-bottom:2px solid var(--msfs-ink); }
.msfs-news-detail-header h1 { margin:10px 0 18px!important; font-size:clamp(26px,4vw,42px)!important; line-height:1.3!important; letter-spacing:-.02em; overflow-wrap:anywhere; }
.msfs-news-detail-original { max-width:68ch; margin:-6px 0 18px!important; color:var(--msfs-muted); font-size:14px; line-height:1.7; overflow-wrap:anywhere; }
.msfs-news-detail-meta { display:flex; flex-wrap:wrap; gap:8px 18px; margin:0!important; color:var(--msfs-muted); font:600 12px var(--msfs-mono); }
.msfs-news-detail-meta span { position:relative; }
.msfs-news-detail-meta span::before { content:"/"; position:absolute; left:-12px; color:var(--msfs-line); }
.msfs-news-detail h2 { margin-top:32px; }
.msfs-news-body { max-width:68ch; margin-bottom:16px!important; font-size:16px; line-height:2; color:var(--msfs-ink); overflow-wrap:anywhere; }
.msfs-news-body-original { color:var(--msfs-muted); font-size:14px; line-height:1.85; }
.msfs-news-caption { max-width:68ch; margin:0!important; color:var(--msfs-muted); font-size:12px; }
.msfs-news-official { margin:26px 0 0!important; }
.msfs-more { text-align:right; font-size:14px; }

/* ---- クイックリンク（空港） ---- */
.msfs-quick-links { display:flex; gap:8px; flex-wrap:wrap; }
.msfs-quick-links a { padding:8px 12px; border:1px solid var(--msfs-line); border-radius:2px; text-decoration:none; font-size:14px; color:var(--msfs-ink); background:#fff; }
.msfs-quick-links a:hover { background:var(--msfs-surface); }
.msfs-quick-links small { font-family:var(--msfs-mono); color:var(--msfs-muted); padding-left:6px; }

/* ---- 記事カード ---- */
.msfs-articles { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:24px; }
.msfs-articles article { min-width:0; }
.msfs-articles a { display:block; color:var(--msfs-ink); text-decoration:none; }
.msfs-articles a:hover strong { text-decoration:underline; }
.msfs-articles img { aspect-ratio:16/9; width:100%; object-fit:cover; border-radius:2px; margin-bottom:12px; }
.msfs-articles strong { display:block; font-size:15px; line-height:1.75; }
.msfs-articles time { font-family:var(--msfs-mono); font-size:12px; color:var(--msfs-muted); }

/* ---- 空港一覧 ---- */
.msfs-airport-row { display:grid; grid-template-columns:88px minmax(0,1fr) 20px; gap:18px; padding:16px 12px; border-bottom:1px solid var(--msfs-line); align-items:center; text-decoration:none; color:var(--msfs-ink); }
.msfs-airport-row:hover { background:var(--msfs-surface); }
.msfs-airport-row small { display:block; color:var(--msfs-muted); font-size:12px; margin-top:5px; }
.msfs-airport-code { font:700 18px var(--msfs-mono); letter-spacing:.03em; }
.msfs-pagination { display:flex; align-items:center; gap:20px; margin:30px 0; font-family:var(--msfs-mono); }
.msfs-pagination a { padding:9px 14px; border:1px solid var(--msfs-line); border-radius:2px; color:var(--msfs-ink); text-decoration:none; }
.msfs-pagination a:hover { background:var(--msfs-surface); }

/* ---- 基本情報（定義リスト） ---- */
.msfs-facts>div { display:grid; grid-template-columns:minmax(140px,1fr) 3fr; gap:20px; border-bottom:1px solid var(--msfs-line); padding:13px 0; }
.msfs-facts dt { font-weight:600; font-size:14px; }
.msfs-facts dd { margin:0; font-size:14px; font-family:var(--msfs-mono); }
.msfs-catalog-summary { max-width:68ch; font-size:17px; line-height:1.95; text-wrap:pretty; }
.msfs-catalog-hero { margin:20px 0 26px; }
.msfs-catalog-hero img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:2px; background:var(--msfs-panel); }
.msfs-catalog-hero figcaption { margin-top:7px; color:var(--msfs-muted); font-size:12px; line-height:1.6; }
.msfs-media-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin:18px 0 28px; }
.msfs-media-gallery .msfs-catalog-thumb { border:1px solid var(--msfs-line); background:var(--msfs-panel); }
.msfs-detail-list,.msfs-detail-steps { max-width:68ch; padding-left:1.4em!important; }
.msfs-detail-list li,.msfs-detail-steps li { margin:.55em 0; line-height:1.8; }
.msfs-detail-steps { counter-reset:msfs-detail-step; list-style:none!important; padding-left:0!important; }
.msfs-detail-steps li { position:relative; min-height:34px; padding:6px 0 10px 46px; border-bottom:1px solid var(--msfs-line); }
.msfs-detail-steps li::before { counter-increment:msfs-detail-step; content:counter(msfs-detail-step,decimal-leading-zero); position:absolute; left:0; top:4px; width:32px; padding:4px 0; color:#F2EEE1; background:var(--msfs-ink); font:700 12px var(--msfs-mono); text-align:center; }
.msfs-detail-sources { margin:32px 0 8px; padding:17px 18px; border-top:3px solid var(--msfs-teal); background:var(--msfs-surface); }
.msfs-detail-sources>strong { display:block; margin-bottom:8px; font-size:14px; }
.msfs-detail-sources ul { margin:0!important; padding:0!important; list-style:none!important; }
.msfs-detail-sources li { display:flex; flex-wrap:wrap; justify-content:space-between; gap:4px 16px; padding:7px 0; border-top:1px solid var(--msfs-line); font-size:13px; }
.msfs-detail-sources li:first-child { border-top:0; }
.msfs-detail-sources span { color:var(--msfs-muted); font:500 11px var(--msfs-mono); }
.msfs-release-list { padding:0!important; list-style:none!important; }
.msfs-release-list li { display:flex; flex-wrap:wrap; align-items:center; gap:16px; border-bottom:1px solid var(--msfs-line); padding:14px 0; }
.msfs-release-list time { font-family:var(--msfs-mono); font-size:12px; color:var(--msfs-muted); }
.msfs-empty { padding:26px; border:1px dashed #9C917A; border-radius:2px; color:var(--msfs-muted); background:var(--msfs-chart); }

/* ---- マニフェスト（機体一覧・滑走路などのテーブル） ---- */
.msfs-table-scroll { overflow:auto; }
.msfs-table-scroll table { min-width:540px; border-collapse:collapse; width:100%; }
.msfs-manifest thead th { background:var(--msfs-ink); color:#F2EEE1; text-align:left; font-weight:600; font-size:13px; padding:10px 12px; border-bottom:2px solid var(--msfs-amber); }
.msfs-manifest td { padding:9px 12px; border-bottom:1px solid var(--msfs-line); font-size:14px; }
.msfs-manifest tbody tr:nth-child(even) td { background:var(--msfs-surface); }
.msfs-manifest tr[data-accent] td:first-child { box-shadow:inset 4px 0 var(--msfs-muted); }
.msfs-manifest tr[data-accent="jet"] td:first-child { box-shadow:inset 4px 0 var(--msfs-teal); }
.msfs-manifest tr[data-accent="prop"] td:first-child { box-shadow:inset 4px 0 var(--msfs-amber); }
.msfs-manifest tr[data-accent="heli"] td:first-child { box-shadow:inset 4px 0 var(--msfs-rust); }
.msfs-manifest tr[data-accent="glider"] td:first-child { box-shadow:inset 4px 0 var(--msfs-sage); }
.msfs-manifest tr[data-accent="evtol"] td:first-child { box-shadow:inset 4px 0 var(--msfs-evtol); }
.msfs-manifest-num td:nth-child(n+2) { font-family:var(--msfs-mono); font-variant-numeric:tabular-nums; }

/* ---- 機体写真・カード ---- */
.msfs-aircraft-thumb { margin:0 0 12px; aspect-ratio:16/9; overflow:hidden; border-radius:2px; background:var(--msfs-chart); }
.msfs-aircraft-thumb img { width:100%; height:100%; object-fit:cover; display:block; }
.msfs-aircraft-hero { margin:20px 0; }
.msfs-aircraft-hero img { width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:2px; display:block; }
.msfs-aircraft-hero figcaption { margin-top:6px; font-size:12px; line-height:1.6; color:var(--msfs-muted); }
td.msfs-table-thumb { width:64px; padding:6px 10px 6px 12px!important; }
td.msfs-table-thumb img { display:block; width:64px; height:40px; object-fit:cover; border-radius:2px; }

/* ---- エディション別 機体ギャラリー（ダイナミックカードグリッド） ---- */
.msfs-edition-gallery { margin:24px 0 36px; }
.msfs-aircraft-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(230px, 1fr)); gap:18px; margin:16px 0 22px; }
.msfs-aircraft-card {
  background:#fff;
  border:1px solid var(--msfs-line);
  border-radius:0;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:0 2px 5px rgba(18,36,48,0.05);
  transition:transform .25s cubic-bezier(.16,1,.3,1), box-shadow .25s cubic-bezier(.16,1,.3,1), border-color .25s ease;
  position:relative;
  text-decoration:none!important;
  color:inherit;
  cursor:pointer;
}
.msfs-aircraft-card:focus-visible {
  outline:3px solid var(--msfs-amber);
  outline-offset:2px;
}
.msfs-aircraft-card:hover {
  transform:translateY(-4px);
  box-shadow:0 12px 24px rgba(18,36,48,0.12);
  border-color:var(--msfs-muted);
  text-decoration:none!important;
}
.msfs-aircraft-card .msfs-table-thumb {
  position:relative;
  width:100%!important;
  aspect-ratio:16/9;
  background:var(--msfs-panel);
  overflow:hidden;
  padding:0!important;
  display:block;
}
.msfs-aircraft-card .msfs-table-thumb::after {
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top, rgba(12,36,49,0.5) 0%, transparent 45%);
  pointer-events:none;
  z-index:1;
}
.msfs-aircraft-card .msfs-table-thumb img {
  width:100%!important;
  height:100%!important;
  object-fit:cover;
  display:block;
  transition:transform .4s cubic-bezier(.16,1,.3,1);
}
.msfs-aircraft-card:hover .msfs-table-thumb img {
  transform:scale(1.07);
}
.msfs-aircraft-card .msfs-card-badge {
  position:absolute;
  bottom:8px;
  left:8px;
  padding:3px 8px 3px 7px;
  font-size:11px;
  font-weight:600;
  line-height:1.2;
  color:#F2EEE1;
  background:rgba(12,36,49,0.88);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  border-radius:2px;
  border:1px solid rgba(255,255,255,0.18);
  display:inline-flex;
  align-items:center;
  gap:5px;
  pointer-events:none;
  z-index:2;
}
.msfs-aircraft-card .msfs-card-badge::before {
  content:"";
  display:inline-block;
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--msfs-muted);
}
.msfs-aircraft-card[data-accent="jet"] { border-top:3px solid var(--msfs-teal); }
.msfs-aircraft-card[data-accent="jet"] .msfs-card-badge::before { background:var(--msfs-teal); box-shadow:0 0 5px var(--msfs-teal); }
.msfs-aircraft-card[data-accent="prop"] { border-top:3px solid var(--msfs-amber); }
.msfs-aircraft-card[data-accent="prop"] .msfs-card-badge::before { background:var(--msfs-amber); box-shadow:0 0 5px var(--msfs-amber); }
.msfs-aircraft-card[data-accent="heli"] { border-top:3px solid var(--msfs-rust); }
.msfs-aircraft-card[data-accent="heli"] .msfs-card-badge::before { background:var(--msfs-rust); box-shadow:0 0 5px var(--msfs-rust); }
.msfs-aircraft-card[data-accent="glider"] { border-top:3px solid var(--msfs-sage); }
.msfs-aircraft-card[data-accent="glider"] .msfs-card-badge::before { background:var(--msfs-sage); box-shadow:0 0 5px var(--msfs-sage); }
.msfs-aircraft-card[data-accent="evtol"] { border-top:3px solid var(--msfs-evtol); }
.msfs-aircraft-card[data-accent="evtol"] .msfs-card-badge::before { background:var(--msfs-evtol); box-shadow:0 0 5px var(--msfs-evtol); }
.msfs-aircraft-card-body {
  padding:12px 14px 14px;
  display:flex;
  flex-direction:column;
  flex-grow:1;
  background:#fff;
  border-top:1px solid rgba(220,210,180,0.5);
}
.msfs-aircraft-card-meta {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:6px;
  margin:0 0 4px;
  font-size:11.5px;
  line-height:1.3;
}
.msfs-aircraft-card-mfr {
  color:var(--msfs-muted);
  font-weight:500;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.msfs-aircraft-card-icao {
  font-family:var(--msfs-mono);
  font-size:11px;
  font-weight:600;
  color:var(--msfs-ink);
  background:var(--msfs-surface);
  border:1px solid var(--msfs-line);
  padding:1px 5px;
  border-radius:2px;
  letter-spacing:0.04em;
  flex-shrink:0;
}
.msfs-aircraft-card-name {
  margin:0!important;
  font-size:15px!important;
  font-weight:700!important;
  line-height:1.4!important;
  padding:0!important;
  border:none!important;
  color:var(--msfs-ink);
  display:-webkit-box;
  -webkit-line-clamp:2;
  -webkit-box-orient:vertical;
  overflow:hidden;
  transition:color .15s ease;
}
.msfs-aircraft-card:hover .msfs-aircraft-card-name {
  color:var(--msfs-amber-deep);
  text-decoration:underline;
  text-underline-offset:3px;
}
.msfs-card-noimg {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  height:100%;
  color:var(--msfs-muted);
  font-size:12px;
  font-family:var(--msfs-mono);
}

/* ---- 航空気象（ATIS風の読み上げ表示） ---- */
.msfs-weather { margin:22px 0; background:var(--msfs-panel); color:#F2EEE1; border-radius:2px; padding:22px; }
.msfs-weather h3 { color:#F2EEE1; margin:20px 0 10px; font-size:15px; }
.msfs-weather h3:first-child { margin-top:0; }
.msfs-weather .msfs-source { color:#9FB0A8; }
.msfs-weather-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:16px 0 24px; }
.msfs-weather-grid>div { background:rgba(242,238,225,.06); border:1px solid var(--msfs-panel-line); padding:12px 14px; border-radius:2px; }
.msfs-weather-grid strong { display:block; font-family:var(--msfs-mono); font-size:21px; color:#F2EEE1; font-variant-numeric:tabular-nums; }
.msfs-weather-grid span { font-size:12px; color:#9FB0A8; }
.msfs-weather pre { font-family:var(--msfs-mono); white-space:pre-wrap; word-break:break-word; background:rgba(0,0,0,.25); border:1px solid var(--msfs-panel-line); color:#D8C98C; padding:14px; font-size:13px; line-height:1.8; margin:12px 0; border-radius:2px; }
.msfs-weather-warning { color:#E3B673; font-weight:600; }
.msfs-weather button { margin-top:16px; }
.msfs-weather .msfs-button { border-color:#F2EEE1; }

/* ---- フライト・ブリーフィング（チャート用紙＋3面ニーボード） ---- */
/* 以前はここで .l-mainContent を1540pxまで広げていたが、他5タブはサイドバー表示込みの
   SWELL標準幅（既定設定で概ね800px台前半、画面幅次第で変動）のまま。フライト準備だけ
   幅が変わり画面が揺れて見えるため撤去した。ワークスペースは下の2カラム構成でこの幅に収まる。 */
.msfs-lab [hidden] { display:none!important; }
.msfs-briefing-page :where(.p-adBox,.c-ad,.w-beforeFooter,.swell-block-ad-tag) { display:none!important; }
.msfs-briefing-notice { display:grid; grid-template-columns:auto 1fr; gap:14px; align-items:center; margin:0 0 18px; padding:12px 16px; color:#F2EEE1; background:var(--msfs-panel); border-top:3px solid var(--msfs-amber); font-size:13px; line-height:1.6; }
.msfs-briefing-notice strong { font:700 12px var(--msfs-mono); letter-spacing:.08em; color:#F4C46B; white-space:nowrap; }
/* サイドバー込みの本文幅（800px台前半）に収まる2カラム構成。入力パネルを固定幅、地図を残り幅
   いっぱいに、結果パネルは下段に全幅（内部は2列グリッド）で展開する。以前の3カラム横並びは
   1540px前提だったため廃止。 */
.msfs-briefing-workspace { display:grid; grid-template-columns:280px minmax(0,1fr); grid-template-areas:"input map" "results results"; gap:14px; align-items:start; margin:24px 0 38px; }
.msfs-briefing-input,.msfs-briefing-map-panel,.msfs-briefing-results { min-width:0; border:1px solid var(--msfs-line); border-top:4px solid var(--msfs-ink); background:#fff; }
.msfs-briefing-input { grid-area:input; padding:16px; }
.msfs-briefing-map-panel { grid-area:map; padding:16px; }
.msfs-briefing-results { grid-area:results; padding:16px; display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 20px; }
.msfs-briefing-results>.msfs-panel-heading,.msfs-briefing-results>.msfs-briefing-route-strip,.msfs-briefing-results>.msfs-briefing-summary { grid-column:1/-1; }
.msfs-panel-heading { display:flex; gap:10px; align-items:center; padding-bottom:12px; margin-bottom:14px; border-bottom:1px solid var(--msfs-line); }
.msfs-panel-heading>span { display:grid; place-items:center; width:28px; height:24px; color:#F2EEE1; background:var(--msfs-ink); font:700 11px var(--msfs-mono); }
.msfs-panel-heading>strong { color:var(--msfs-ink); font-size:16px; line-height:1.4; }
.msfs-briefing-tabs { display:grid; grid-template-columns:1fr 1fr; margin-bottom:18px; border-bottom:2px solid var(--msfs-ink); }
.msfs-briefing-tabs button { min-height:42px; padding:8px 10px; border:1px solid var(--msfs-line); border-bottom:0; border-radius:0; color:var(--msfs-muted); background:var(--msfs-surface); font:700 13px var(--msfs-mono); cursor:pointer; }
.msfs-briefing-tabs button[aria-selected="true"] { color:var(--msfs-ink); background:#fff; box-shadow:inset 0 3px var(--msfs-amber); border-color:var(--msfs-ink); }
.msfs-briefing-input form>label:not(.msfs-check),.msfs-form-pair label { display:flex; flex-direction:column; gap:6px; margin:0 0 14px; color:var(--msfs-ink); font-size:12px; font-weight:700; }
.msfs-briefing-input :where(input:not([type="checkbox"]),textarea) { width:100%; min-width:0; min-height:44px; padding:9px 10px; border:1px solid #8D846E; border-radius:2px; background:#fff; color:var(--msfs-ink); font:500 15px var(--msfs-mono); }
.msfs-briefing-input textarea { resize:vertical; line-height:1.55; }
.msfs-briefing-input input::placeholder,.msfs-briefing-input textarea::placeholder { color:#756F5C; opacity:1; }
.msfs-form-pair { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.msfs-check { display:grid; grid-template-columns:18px 1fr; gap:8px; align-items:start; margin:2px 0 6px; font-size:12px; line-height:1.55; }
.msfs-check input { width:18px; height:18px; margin:1px 0 0; accent-color:var(--msfs-amber-deep); }
.msfs-field-help { margin:6px 0 16px!important; color:var(--msfs-muted); font-size:11px; line-height:1.7; }
.msfs-briefing-input .msfs-button { width:100%; }
.msfs-form-status { min-height:1.7em; margin:14px 0 0!important; font-size:12px; line-height:1.6; color:var(--msfs-muted); }
.msfs-form-status[data-state="error"] { color:#8B2D24; font-weight:700; }
.msfs-form-status[data-state="ok"] { color:#286350; }
.msfs-form-status[data-state="loading"]::before { content:""; display:inline-block; width:8px; height:8px; margin-right:7px; border-radius:50%; background:var(--msfs-amber); }
.msfs-map-toolbar { display:flex; flex-wrap:wrap; gap:8px 18px; margin-bottom:10px; font-size:12px; font-weight:700; }
.msfs-map-toolbar label { display:flex; align-items:center; gap:6px; }
.msfs-map-toolbar input { width:18px; height:18px; accent-color:var(--msfs-amber-deep); }
.msfs-briefing-map { position:relative; min-height:510px; overflow:hidden; border:1px solid #817865; background:#D9E0DA; }
.msfs-briefing-map>p { display:grid; min-height:510px; place-items:center; margin:0!important; padding:24px; text-align:center; color:var(--msfs-muted); }
.msfs-briefing-map .maplibregl-ctrl-attrib { font-size:10px; }
.msfs-map-marker { padding:2px 5px; color:var(--msfs-ink); background:rgba(255,255,255,.9); border:1px solid var(--msfs-ink); font:700 10px var(--msfs-mono); box-shadow:0 1px 2px rgba(18,36,48,.2); }
.msfs-radar-time { display:grid; grid-template-columns:auto 1fr; gap:5px 12px; align-items:center; margin-top:10px; font-size:11px; }
.msfs-radar-time input { grid-column:1/-1; width:100%; accent-color:var(--msfs-amber-deep); }
.msfs-radar-time output { color:var(--msfs-rust); font:600 11px var(--msfs-mono); text-align:right; }
.msfs-map-credit { margin:10px 0 0!important; color:var(--msfs-muted); font-size:10px; line-height:1.55; }
.msfs-briefing-route-strip { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); gap:8px; align-items:center; margin-bottom:14px; padding-bottom:14px; border-bottom:2px solid var(--msfs-ink); }
.msfs-route-airport { min-width:0; }
.msfs-route-airport:last-child { text-align:right; }
.msfs-route-airport :where(small,strong,span) { display:block; }
.msfs-route-airport small { color:var(--msfs-muted); font:700 9px var(--msfs-mono); }
.msfs-route-airport strong { overflow:hidden; color:var(--msfs-ink); font:700 22px var(--msfs-mono); text-overflow:ellipsis; }
.msfs-route-airport span { overflow:hidden; color:var(--msfs-muted); font-size:10px; text-overflow:ellipsis; white-space:nowrap; }
.msfs-route-distance { display:flex; flex-direction:column; align-items:center; min-width:88px; padding:4px 8px; color:#F2EEE1; background:var(--msfs-panel); text-align:center; }
.msfs-route-distance span { font:700 12px var(--msfs-mono); }
.msfs-route-distance small { color:#B8C5BE; font:500 8px var(--msfs-mono); }
.msfs-route-distance::before,.msfs-route-distance::after { content:""; position:absolute; }
.msfs-briefing-facts { margin:0 0 12px; }
.msfs-briefing-facts>div { display:grid; grid-template-columns:80px 1fr; gap:8px; padding:7px 0; border-bottom:1px solid var(--msfs-line); }
.msfs-briefing-facts dt { color:var(--msfs-muted); font-size:11px; }
.msfs-briefing-facts dd { margin:0; overflow-wrap:anywhere; font:600 11px/1.6 var(--msfs-mono); }
.msfs-briefing-section { border-top:1px solid var(--msfs-line); }
.msfs-briefing-section>summary { position:relative; padding:12px 22px 12px 0; color:var(--msfs-ink); font-size:13px; font-weight:700; cursor:pointer; list-style:none; }
.msfs-briefing-section>summary::-webkit-details-marker { display:none; }
.msfs-briefing-section>summary::after { content:"+"; position:absolute; right:2px; top:12px; font:700 16px var(--msfs-mono); }
.msfs-briefing-section[open]>summary::after { content:"−"; }
.msfs-briefing-section>div { padding:2px 0 14px; }
.msfs-muted,.msfs-warning,.msfs-stale { font-size:11px; line-height:1.65; }
.msfs-muted { color:var(--msfs-muted); }
.msfs-warning { padding:9px 10px; color:#6D4711; border:1px solid #E7CF96; border-top:3px solid var(--msfs-amber); background:#FBF3DD; }
.msfs-stale { padding:8px 10px; color:#77352A; border:1px solid #E4BEB2; border-top:3px solid var(--msfs-rust); background:#F7E9E3; }
.msfs-weather-card,.msfs-sun-card,.msfs-chart-airport { padding:10px 0; border-bottom:1px dashed var(--msfs-line); }
.msfs-weather-card:last-child,.msfs-sun-card:last-child,.msfs-chart-airport:last-child { border-bottom:0; }
.msfs-weather-card h3,.msfs-sun-card h3,.msfs-chart-airport h3 { margin:0 0 8px!important; padding:0!important; border:0!important; background:none!important; font-size:12px!important; line-height:1.5!important; }
.msfs-flight-cat { display:inline-block; min-width:54px; margin-right:8px; padding:3px 8px; border:1px solid currentColor; color:#fff; background:#32765B; font:700 12px var(--msfs-mono); text-align:center; }
.msfs-flight-cat.is-mvfr { background:#2E65A4; }
.msfs-flight-cat.is-ifr { background:#A13E32; }
.msfs-flight-cat.is-lifr { background:#6A417D; }
.msfs-weather-meta { margin:6px 0!important; color:var(--msfs-muted); font:500 10px/1.5 var(--msfs-mono); }
.msfs-alert-list { margin:8px 0!important; padding-left:18px!important; color:var(--msfs-ink); font-size:11px; line-height:1.6; }
.msfs-raw-weather { margin:8px 0; }
.msfs-raw-weather strong { display:block; margin-bottom:3px; color:#9FB0A8; font:700 9px var(--msfs-mono); }
.msfs-raw-weather code { display:block; max-height:116px; overflow:auto; padding:8px; color:#E6D9A6; background:var(--msfs-panel); font-size:10px; line-height:1.6; white-space:pre-wrap; overflow-wrap:anywhere; }
.msfs-sun-phase { display:inline-block; padding:4px 8px; color:var(--msfs-ink); border:1px solid var(--msfs-amber); background:#F8E4A8; font:700 11px var(--msfs-mono); }
.msfs-sun-card p { margin:6px 0!important; font-size:11px; }
.msfs-airspace-list { margin:0!important; padding:0!important; list-style:none!important; }
.msfs-airspace-list li { padding:9px 0; border-bottom:1px dashed var(--msfs-line); }
.msfs-airspace-list li>div { display:grid; grid-template-columns:8px minmax(0,1fr) auto; gap:7px; align-items:center; }
.msfs-airspace-list strong { font-size:11px; overflow-wrap:anywhere; }
.msfs-airspace-list span:last-child { color:var(--msfs-muted); font:600 9px var(--msfs-mono); }
.msfs-airspace-list p { margin:4px 0 0!important; color:var(--msfs-muted); font:500 9px/1.6 var(--msfs-mono); }
.msfs-airspace-swatch { width:8px; height:20px; }
.msfs-chart-type { border-top:1px solid var(--msfs-line); }
.msfs-chart-type summary { padding:7px 0; font-size:11px; cursor:pointer; }
.msfs-chart-type ul { max-height:180px; overflow:auto; margin:2px 0 8px!important; padding-left:18px!important; font-size:10px; line-height:1.7; }
.msfs-briefing-articles { margin-top:44px; padding-top:8px; }
.msfs-aircraft-briefing-link { display:flex; flex-wrap:wrap; gap:8px 16px; align-items:center; margin:0 0 18px; padding:14px 16px; border-top:3px solid var(--msfs-teal); background:var(--msfs-surface); }
.msfs-aircraft-briefing-link a { font-weight:700; color:var(--msfs-ink); }
.msfs-related-chip { display:inline-block; margin:0 8px 16px 0; padding:6px 10px; border:1px solid var(--msfs-line); color:var(--msfs-ink); font-size:12px; text-decoration:none; }
.msfs-related-chip:hover { background:var(--msfs-surface); }


@media(max-width:700px) {
 .msfs-nav a { padding:9px 11px; font-size:12px; }
 .msfs-hero { padding:32px 24px; }
 .msfs-compass { width:220px; height:220px; right:-70px; }
 .msfs-stats { gap:22px; flex-wrap:wrap; }
 .msfs-search { padding:16px; gap:14px; }
 .msfs-search .msfs-search-query { flex-basis:100%; }
 .msfs-search .msfs-button { width:100%; }
 .msfs-catalog { grid-template-columns:1fr; }
 .msfs-articles { grid-template-columns:1fr; }
 .msfs-news-list>li { grid-template-columns:1fr; gap:6px; }
 .msfs-airport-row { grid-template-columns:60px minmax(0,1fr) 12px; gap:12px; }
 .msfs-airport-code { font-size:15px; }
 .msfs-airport-row strong { font-size:14px; }
 .msfs-weather-grid { grid-template-columns:repeat(2,1fr); }
 .msfs-facts>div { grid-template-columns:1fr; gap:5px; }
 .msfs-media-gallery { grid-template-columns:1fr; }
 .msfs-intro h1 { font-size:1.6rem; }
 .msfs-aircraft-grid { grid-template-columns:repeat(auto-fill, minmax(180px, 1fr)); gap:12px; }
 .msfs-aircraft-card-body { padding:10px 10px 12px; }
 .msfs-aircraft-card-name { font-size:13.5px!important; }
 .msfs-aircraft-card .msfs-card-badge { font-size:10px; padding:2px 6px; bottom:6px; left:6px; }
 .msfs-briefing-notice { grid-template-columns:1fr; gap:4px; }
 .msfs-briefing-workspace { grid-template-columns:1fr; grid-template-areas:"input" "results" "map"; }
 .msfs-briefing-results { display:block; }
 .msfs-briefing-map { min-height:350px; }
 .msfs-briefing-map>p { min-height:350px; }
 .msfs-form-pair { grid-template-columns:1fr; gap:0; }
 .msfs-route-distance { min-width:74px; padding-inline:5px; }
 .msfs-route-airport strong { font-size:18px; }
 .msfs-radar-time { grid-template-columns:1fr; }
 .msfs-radar-time output { text-align:left; }
}
@media(max-width:420px) {
 .msfs-aircraft-grid { grid-template-columns:1fr; gap:16px; }
 .msfs-aircraft-card-body { padding:12px 14px 14px; }
 .msfs-aircraft-card-name { font-size:15px!important; }
}
@media(prefers-reduced-motion:reduce) {
 :where(.msfs-lab,.msfs-edition-table) * { scroll-behavior:auto!important; transition:none!important; transform:none!important; }
}

/* 一覧ページ末尾の案内。ページの使い方と出典を説明する。本文と同じ幅・余白に揃える。 */
.msfs-list-guide { margin-top:48px; padding-top:8px; border-top:1px solid var(--msfs-panel-line); }
.msfs-list-guide p { line-height:1.9; margin:0 0 8px; }
