:root {
  --bg: #ffffff;
  --bg2: #f1f5f9;
  --bg3: #e2e8f0;
  --card: #f8fafc;
  --card2: #e9eef5;
  --border: rgba(99,140,210,0.25);
  --border2: rgba(99,140,210,0.5);
  --amber: #b45309;
  --amber2: #d97706;
  --blue: #1d4ed8;
  --blue2: #2563eb;
  --cyan: #0369a1;
  --green: #047857;
  --red: #b91c1c;
  --purple: #6d28d9;
  --text: #0f172a;
  --text2: #334155;
  --text3: #475569;
  --glow: 0 0 20px rgba(59,130,246,0.3);
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--text);font-family:'Segoe UI',system-ui,sans-serif;overflow-x:hidden}

/* ─── HEADER ─── */
.hero{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg,#0f172a 0%,#1e3a5f 40%,#1e40af 70%,#172554 100%);
  padding:56px 32px 48px;text-align:center;
  border-bottom:1px solid var(--border2);
}
.hero::before{
  content:'';position:absolute;inset:0;
  background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%233b82f6' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
  opacity:.4;
}
.hero-grid{
  position:absolute;inset:0;
  background:linear-gradient(rgba(59,130,246,.05) 1px,transparent 1px),
             linear-gradient(90deg,rgba(59,130,246,.05) 1px,transparent 1px);
  background-size:40px 40px;
  mask-image:radial-gradient(ellipse 80% 60% at 50% 50%,black,transparent);
}
.hero-badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(59,130,246,.12);border:1px solid rgba(59,130,246,.3);
  border-radius:20px;padding:4px 14px;font-size:14px;letter-spacing:1.5px;
  text-transform:uppercase;color:#93C5FD;margin-bottom:20px;
}
.hero h1{
  font-size:clamp(30px,4.6vw,50px);font-weight:800;letter-spacing:-1px;
  background:linear-gradient(135deg,#fff 0%,#93C5FD 50%,#F59E0B 100%);
  -webkit-background-clip:text;-webkit-text-fill-color:transparent;
  margin-bottom:14px;line-height:1.15;
}
.hero p{font-size:18px;color:#CBD5E1;max-width:640px;margin:0 auto 28px;line-height:1.6}
.hero-stats{display:flex;justify-content:center;gap:32px;flex-wrap:wrap}
.hstat{text-align:center}
.hstat-num{font-size:31px;font-weight:800;color:#F59E0B;line-height:1}
.hstat-lbl{font-size:14px;color:#94A3B8;text-transform:uppercase;letter-spacing:1px;margin-top:4px}

/* ─── BOOKS ─── */
.bk-cat{margin-bottom:36px}
.bk-cat-hdr{display:flex;align-items:center;gap:12px;margin-bottom:16px;padding:12px 18px;border-radius:12px}
.bk-cat-hdr.bk-ref{background:linear-gradient(135deg,rgba(14,165,233,.1),rgba(14,165,233,.05))}
.bk-cat-hdr.bk-servo{background:linear-gradient(135deg,rgba(239,68,68,.1),rgba(239,68,68,.05))}
.bk-cat-hdr.bk-fcs{background:linear-gradient(135deg,rgba(245,158,11,.1),rgba(245,158,11,.05))}
.bk-cat-hdr.bk-sae{background:linear-gradient(135deg,rgba(16,185,129,.1),rgba(16,185,129,.05))}
.bk-cat-hdr.bk-edu{background:linear-gradient(135deg,rgba(139,92,246,.1),rgba(139,92,246,.05))}
.bk-cat-icon{font-size:28px;flex-shrink:0}
.bk-cat-title{font-size:16px;font-weight:800;color:var(--text)}
.bk-cat-sub{font-size:12px;color:var(--text3);margin-top:2px}
.bk-grid{display:grid;grid-template-columns:1fr;gap:16px}
@media(min-width:768px){.bk-grid{grid-template-columns:repeat(2,1fr)}}
.bk-card{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;display:flex;gap:14px;transition:transform .2s,box-shadow .2s}
.bk-card:hover{transform:translateY(-3px);box-shadow:0 0 20px rgba(59,130,246,.15);border-color:rgba(99,140,210,.5)}
.bk-icon{font-size:32px;flex-shrink:0}
.bk-badge{display:inline-block;font-size:10px;font-weight:700;padding:2px 8px;border-radius:10px;text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px}
.bk-badge-ref{background:rgba(14,165,233,.12);color:#0284c7}
.bk-badge-servo{background:rgba(239,68,68,.12);color:#dc2626}
.bk-badge-fcs{background:rgba(245,158,11,.12);color:#d97706}
.bk-badge-sae{background:rgba(16,185,129,.12);color:#059669}
.bk-badge-edu{background:rgba(139,92,246,.12);color:#7c3aed}
.bk-title{font-size:15px;font-weight:800;color:var(--text);margin-bottom:4px}
.bk-author{font-size:13px;font-weight:600;color:var(--text2);margin-bottom:3px}
.bk-meta{font-size:11px;color:var(--text3);margin-bottom:8px}
.bk-desc{font-size:13px;color:var(--text2);line-height:1.6}

/* ─── TABS ─── */
.tab-bar{
  position:sticky;top:0;z-index:100;
  background:#1e293b !important;
  border-bottom:2px solid rgba(99,140,210,0.4);
  display:flex;justify-content:center;gap:4px;padding:10px 16px;flex-wrap:wrap;
}
.tab-btn{
  background:transparent;border:1px solid transparent;
  border-radius:8px;padding:9px 22px;font-size:16px;font-weight:700;
  color:#e2e8f0 !important;cursor:pointer;transition:all .2s;letter-spacing:.3px;
  display:flex;align-items:center;gap:8px;
}
.tab-btn:hover{color:#fff !important;background:rgba(255,255,255,.12);border-color:rgba(148,163,184,.5)}
.tab-btn.active{color:#fff !important;background:rgba(59,130,246,.3);border-color:rgba(59,130,246,.7)}
.tab-btn .dot{width:8px;height:8px;border-radius:50%}
.ext-link{pointer-events:auto;cursor:pointer}

/* ─── PANEL ─── */
.panel{display:none;padding:32px 24px 60px;max-width:1320px;margin:0 auto;animation:fadeUp .4s ease}
.panel.active{display:block}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* ─── SECTION TITLE ─── */
.sec-title{margin-bottom:28px}
.sec-title h2{font-size:25px;font-weight:700;color:#1e293b;margin-bottom:6px}
.sec-title p{font-size:16px;color:var(--text2);line-height:1.5}

/* ─── TIMELINE ─── */
.timeline-wrap{position:relative;margin-bottom:40px;overflow-x:auto;overflow-y:visible;padding-bottom:60px}
.timeline{display:flex;gap:0;min-width:720px;position:relative}
.timeline::before{
  content:'';position:absolute;top:28px;left:0;right:0;height:2px;
  background:linear-gradient(90deg,var(--amber) 0%,var(--blue) 60%,var(--cyan) 100%);
  z-index:0;
}
.tl-item{
  flex:0 0 auto;min-width:150px;display:flex;flex-direction:column;align-items:center;
  cursor:pointer;position:relative;z-index:1;
  transition:transform .2s;padding:0 6px;
}
.tl-item:hover{transform:translateY(-4px)}
.tl-dot{
  width:20px;height:20px;border-radius:50%;
  border:3px solid;display:flex;align-items:center;justify-content:center;
  background:var(--bg);margin-bottom:8px;transition:all .25s;
  position:relative;
}
.tl-dot::after{
  content:'';position:absolute;inset:-6px;border-radius:50%;
  background:currentColor;opacity:0;transition:opacity .25s;
}
.tl-item:hover .tl-dot::after,.tl-item.active .tl-dot::after{opacity:.15}
.tl-item.active .tl-dot{transform:scale(1.3)}
.tl-label{font-size:13px;font-weight:700;letter-spacing:.5px;text-align:center;color:var(--text2);margin-bottom:6px}
.tl-year{font-size:11px;color:#1e293b !important;text-align:center;white-space:nowrap;border:1px solid rgba(71,85,105,.5);border-radius:4px;padding:2px 8px;background:rgba(71,85,105,.12);display:inline-block;margin-bottom:4px;font-weight:600}
.tl-aircraft{font-size:10.5px;text-align:center;border-radius:4px;padding:2px 8px;white-space:nowrap;display:inline-block;margin-bottom:4px}

/* ─── GEN GRID ─── */
.gen-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(330px,1fr));gap:20px;margin-bottom:48px}

/* ─── GEN CARD ─── */
.gen-card{
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  overflow:hidden;transition:all .3s;cursor:pointer;position:relative;
}
.gen-card:hover{transform:translateY(-6px);box-shadow:var(--glow);border-color:var(--border2)}
.gen-card.active-card{border-color:var(--c-accent);box-shadow:0 0 0 1px var(--c-accent),0 8px 30px rgba(0,0,0,.5)}
.card-top{
  padding:18px 20px 14px;
  background:linear-gradient(135deg,var(--c-bg1) 0%,var(--c-bg2) 100%);
  border-bottom:1px solid var(--border);
  display:flex;align-items:flex-start;justify-content:space-between;
}
.card-gen{font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;opacity:.8;margin-bottom:4px}
.card-name{font-size:20px;font-weight:800;color:#fff;line-height:1.2;margin-bottom:6px}
.card-period{font-size:14px;color:#CBD5E1;font-weight:500}
.card-badge{
  font-size:13px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;
  padding:3px 9px;border-radius:12px;white-space:nowrap;flex-shrink:0;margin-left:8px;
}
.card-body{padding:16px 20px 20px}
.card-aircraft{
  font-size:14px;color:var(--amber2);font-weight:600;margin-bottom:10px;
  display:flex;flex-wrap:wrap;gap:4px;
}
.ac-chip{
  background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);
  border-radius:10px;padding:2px 8px;font-size:13px;
}
.card-desc{font-size:15px;color:#1e293b;line-height:1.55;margin-bottom:14px}

/* specs rows */
.spec-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.spec-item{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 10px}
.spec-lbl{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#64748B;margin-bottom:3px}
.spec-val{font-size:16px;font-weight:700;color:#1e293b}
.spec-val.hi{color:var(--c-accent)}

/* feature tags */
.feat-tags{display:flex;flex-wrap:wrap;gap:5px}
.feat-tag{
  font-size:13px;padding:3px 8px;border-radius:8px;font-weight:600;
  background:rgba(255,255,255,.05);color:var(--text2);border:1px solid rgba(255,255,255,.08);
}

/* ─── BAR CHART ─── */
.chart-section{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:32px}
.chart-title{font-size:17px;font-weight:700;color:#1e293b;margin-bottom:4px}
.chart-sub{font-size:14px;color:#334155;margin-bottom:20px}
.chart-canvas-wrap{position:relative}
canvas.chart{display:block;width:100%;height:260px}

/* ─── TECH RADAR ─── */
.radar-section{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-bottom:32px}
@media(max-width:700px){.radar-section{grid-template-columns:1fr}}
.radar-card{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px}
canvas.radar{display:block;margin:0 auto}

/* ─── SUPPLIER SECTION ─── */
.supplier-section{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:32px}
.supplier-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;margin-top:16px}
.sup-card{
  background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.07);
  border-radius:10px;padding:12px 14px;
}
.sup-name{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:4px}
.sup-role{font-size:14px;color:#1e293b;line-height:1.4}
.sup-gens{display:flex;gap:4px;flex-wrap:wrap;margin-top:8px}
.sup-gen{font-size:12px;padding:2px 6px;border-radius:6px;font-weight:700}

/* ─── GLOSSARY ─── */
.glossary{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:32px}
.gloss-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;margin-top:14px}
.gloss-item{background:rgba(255,255,255,.03);border-radius:8px;padding:10px 12px}
.gloss-term{font-size:15px;font-weight:700;color:var(--amber);margin-bottom:3px}
.gloss-def{font-size:14px;color:#334155;line-height:1.4}

/* ─── PRESSURE EVOLUTION FLOW ─── */
.evolution-bar{
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  padding:24px;margin-bottom:32px;
}
.evo-track{display:flex;align-items:center;gap:0;margin-top:18px;overflow-x:auto;padding-bottom:4px}
.evo-node{
  display:flex;flex-direction:column;align-items:center;min-width:90px;
  position:relative;flex:1;
}
.evo-node::after{
  content:'→';position:absolute;right:-14px;top:20px;
  color:var(--text3);font-size:17px;z-index:1;
}
.evo-node:last-child::after{display:none}
.evo-circle{
  width:46px;height:46px;border-radius:50%;display:flex;align-items:center;
  justify-content:center;font-size:14px;font-weight:800;color:#fff;
  margin-bottom:8px;border:2px solid rgba(255,255,255,.15);
  background:var(--c-fill);position:relative;z-index:2;
}
.evo-psi{font-size:15px;font-weight:800;margin-bottom:2px;color:#1e293b}
.evo-label{font-size:13px;color:var(--text3);text-align:center}

/* ─── COMPARISON TABLE ─── */
.comp-table-wrap{overflow-x:auto;margin-bottom:32px}
.comp-table{width:100%;border-collapse:collapse;font-size:15px;min-width:700px}
.comp-table th{
  background:var(--bg3);padding:10px 14px;text-align:left;
  font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--text2);
  border-bottom:1px solid var(--border);position:sticky;top:0;z-index:2;
  white-space:nowrap;
}
.comp-table td{
  padding:11px 14px;border-bottom:1px solid rgba(255,255,255,.04);
  vertical-align:top;line-height:1.4;
}
.comp-table tr:hover td{background:rgba(255,255,255,.02)}
.comp-table td:first-child{font-weight:700;color:var(--c-accent);white-space:nowrap}
.chip{display:inline-block;font-size:13px;padding:2px 7px;border-radius:6px;font-weight:600;white-space:nowrap}

/* ─── STABILITY INDICATOR ─── */
.stability-bar{height:6px;border-radius:3px;background:linear-gradient(90deg,#10B981,#F59E0B,#EF4444);position:relative;margin:4px 0}
.stability-marker{position:absolute;top:-4px;width:14px;height:14px;border-radius:50%;border:2px solid #fff;transform:translateX(-50%);background:var(--c-accent)}

/* ─── CHART TOOLTIP ─── */
.tooltip{
  position:fixed;background:#1e293b;border:1px solid var(--border2);
  border-radius:8px;padding:8px 12px;font-size:15px;color:var(--text);
  pointer-events:none;z-index:9999;box-shadow:0 4px 20px rgba(0,0,0,.6);
  display:none;max-width:240px;line-height:1.6;
}

/* ─── SEARCH / FILTER BAR ─── */
.filter-bar{
  background:#1e293b;
  border-bottom:1px solid rgba(99,140,210,0.35);
  padding:10px 24px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  max-width:1320px;margin:0 auto;
}
.search-wrap{position:relative;flex:1;min-width:180px;max-width:320px}
.search-wrap svg{position:absolute;left:10px;top:50%;transform:translateY(-50%);color:#94A3B8;pointer-events:none}
#searchInput{
  width:100%;background:rgba(255,255,255,.1);border:1px solid rgba(148,163,184,.4);
  border-radius:8px;padding:7px 12px 7px 32px;color:#f1f5f9;font-size:16px;
  outline:none;transition:border-color .2s;
}
#searchInput:focus{border-color:rgba(59,130,246,.6)}
#searchInput::placeholder{color:#94A3B8}
.filter-chips{display:flex;gap:6px;flex-wrap:wrap}
.fchip{
  font-size:14px;padding:4px 12px;border-radius:20px;border:1px solid rgba(148,163,184,.4);
  background:transparent;color:#CBD5E1;cursor:pointer;transition:all .2s;font-weight:600;
}
.fchip:hover{border-color:#94A3B8;color:#fff}
.fchip.on{color:#fff;border-color:currentColor}
.filter-bar-right{margin-left:auto;display:flex;gap:8px;align-items:center}
.compare-btn{
  font-size:15px;padding:6px 14px;border-radius:8px;border:1px solid rgba(148,163,184,.4);
  background:transparent;color:#CBD5E1;cursor:pointer;transition:all .2s;font-weight:600;
}
.compare-btn:hover{border-color:#3B82F6;color:#3B82F6}
.compare-btn.active{background:rgba(59,130,246,.2);border-color:#3B82F6;color:#93C5FD}
.result-count{font-size:14px;color:#CBD5E1}

/* ─── MILESTONES TAB ─── */
.ms-era{margin-bottom:36px}
.ms-era-hdr{display:flex;align-items:center;gap:12px;margin-bottom:18px;padding:14px 20px;border-radius:12px}
.ms-era-hdr.era-pioneer{background:linear-gradient(135deg,rgba(217,119,6,.12),rgba(245,158,11,.05))}
.ms-era-hdr.era-jet{background:linear-gradient(135deg,rgba(37,99,235,.12),rgba(59,130,246,.05))}
.ms-era-hdr.era-modern{background:linear-gradient(135deg,rgba(5,150,105,.12),rgba(16,185,129,.05))}
.ms-era-icon{font-size:28px;flex-shrink:0}
.ms-era-title{font-size:17px;font-weight:800;color:var(--text)}
.ms-era-sub{font-size:12px;color:var(--text3);margin-top:2px}
.ms-tl{position:relative;padding:0 0 0 36px;margin-bottom:8px}
.ms-tl::before{content:'';position:absolute;left:15px;top:0;bottom:0;width:3px;border-radius:2px}
.ms-tl.tl-amber::before{background:linear-gradient(180deg,#d97706,#f59e0b)}
.ms-tl.tl-blue::before{background:linear-gradient(180deg,#2563eb,#60a5fa)}
.ms-tl.tl-green::before{background:linear-gradient(180deg,#059669,#34d399)}
.ms-entry{position:relative;margin-bottom:18px;padding-left:22px}
.ms-entry::before{content:'';position:absolute;left:-25px;top:7px;width:13px;height:13px;border-radius:50%;border:3px solid var(--ms-dot,#3b82f6);background:#fff;z-index:1}
.ms-entry.major::before{background:var(--ms-dot,#3b82f6);width:15px;height:15px;left:-26px;top:6px}
.ms-year{display:inline-block;font-size:12px;font-weight:800;padding:2px 10px;border-radius:6px;margin-bottom:5px;color:#fff}
.ms-ttl{font-size:15px;font-weight:700;color:var(--text);margin-bottom:3px}
.ms-desc{font-size:13px;color:var(--text2);line-height:1.55}
.ms-aircraft{display:inline-block;font-size:11px;font-weight:600;padding:2px 8px;border-radius:8px;margin-top:5px;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);color:#b45309}
.ms-stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-bottom:28px}
.ms-stat{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:18px;text-align:center;transition:transform .2s}
.ms-stat:hover{transform:translateY(-3px);box-shadow:0 4px 16px rgba(59,130,246,.1)}
.ms-stat-val{font-size:26px;font-weight:800;line-height:1;margin-bottom:4px}
.ms-stat-lbl{font-size:12px;color:var(--text3);text-transform:uppercase;letter-spacing:1px}
.ms-stat-detail{font-size:12px;color:var(--text2);margin-top:6px;line-height:1.4}
.ms-evo{display:flex;align-items:center;gap:0;margin:20px 0;overflow-x:auto;padding-bottom:6px;justify-content:center}
.ms-evo-node{display:flex;flex-direction:column;align-items:center;min-width:90px;flex:0 0 auto}
.ms-evo-circle{border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;color:#fff;margin-bottom:6px}
.ms-evo-psi{font-size:13px;font-weight:800;color:var(--text)}
.ms-evo-bar{font-size:11px;font-weight:600;color:var(--text3)}
.ms-evo-label{font-size:11px;color:var(--text3);text-align:center}
.ms-evo-arrow{font-size:18px;color:var(--text3);padding:0 6px;flex-shrink:0}
.ms-benefit-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px;margin-bottom:28px}
.ms-benefit{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px;display:flex;gap:12px;transition:transform .2s}
.ms-benefit:hover{transform:translateY(-2px);box-shadow:0 4px 16px rgba(59,130,246,.1)}
.ms-benefit-icon{font-size:24px;flex-shrink:0;width:36px;text-align:center}
.ms-benefit-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.ms-benefit-desc{font-size:13px;color:var(--text2);line-height:1.5}
.ms-dev-list{display:grid;gap:12px;margin-bottom:28px}
.ms-dev{background:var(--card);border:1px solid var(--border);border-radius:12px;padding:16px 18px;display:flex;gap:12px;align-items:flex-start;transition:transform .2s}
.ms-dev:hover{transform:translateX(4px);border-color:var(--border2)}
.ms-dev-num{width:32px;height:32px;border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#fff}
.ms-dev-title{font-size:14px;font-weight:700;color:var(--text);margin-bottom:3px}
.ms-dev-desc{font-size:13px;color:var(--text2);line-height:1.5}
.ms-cycle-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:14px;margin:18px 0 28px}
.ms-cycle{border-radius:12px;padding:16px;text-align:center;border:2px solid;transition:transform .2s}
.ms-cycle:hover{transform:translateY(-3px)}
.ms-cycle-decade{font-size:22px;font-weight:800;margin-bottom:3px}
.ms-cycle-tech{font-size:14px;font-weight:700;margin-bottom:5px}
.ms-cycle-desc{font-size:12px;line-height:1.45}
.ms-power-row{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.ms-power-label{font-size:13px;font-weight:700;min-width:100px;text-align:right}
.ms-power-bg{flex:1;height:28px;background:rgba(0,0,0,.04);border-radius:8px;overflow:hidden}
.ms-power-fill{height:100%;border-radius:8px;display:flex;align-items:center;justify-content:flex-end;padding-right:10px;font-size:12px;font-weight:700;color:#fff;transition:width 1s ease}
.ms-power-unit{font-size:11px;color:var(--text3);min-width:40px}
.ms-leak-bars{display:flex;align-items:flex-end;gap:24px;height:160px;margin:18px 0;justify-content:center}
.ms-leak-wrap{display:flex;flex-direction:column;align-items:center;gap:6px}
.ms-leak-bar{width:70px;border-radius:8px 8px 0 0;position:relative}
.ms-leak-val{position:absolute;top:-24px;left:50%;transform:translateX(-50%);font-size:13px;font-weight:800;white-space:nowrap}
.ms-leak-label{font-size:12px;font-weight:600;color:var(--text3)}

/* ─── MODAL ─── */
.modal-overlay{
  position:fixed;inset:0;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);
  z-index:2000;display:none;align-items:center;justify-content:center;padding:16px;
  animation:fadeIn .2s ease;
}
.modal-overlay.open{display:flex}
@keyframes fadeIn{from{opacity:0}to{opacity:1}}
.modal{
  background:linear-gradient(145deg,#0d1526,#111d35);
  border:1px solid var(--border2);border-radius:18px;
  max-width:720px;width:100%;max-height:90vh;overflow-y:auto;
  box-shadow:0 24px 80px rgba(0,0,0,.8);
  animation:slideUp .25s ease;
}
@keyframes slideUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.modal-header{
  padding:24px 28px 18px;
  border-bottom:1px solid var(--border);
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  background:linear-gradient(135deg,var(--m-bg1,#111d35),var(--m-bg2,#0d1526));
}
.modal-close{
  background:rgba(255,255,255,.08);border:none;color:#fff;
  width:32px;height:32px;border-radius:50%;cursor:pointer;font-size:21px;
  display:flex;align-items:center;justify-content:center;flex-shrink:0;
  transition:background .2s;
}
.modal-close:hover{background:rgba(255,255,255,.18)}
.modal-body{padding:24px 28px 28px}
.modal-gen-label{font-size:14px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;margin-bottom:6px}
.modal-title{font-size:25px;font-weight:800;color:#fff;margin-bottom:4px}
.modal-period{font-size:15px;color:var(--text3);margin-bottom:12px}
.modal-aircraft-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:18px}
.modal-ac-chip{
  background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);
  border-radius:10px;padding:4px 10px;font-size:15px;font-weight:600;color:var(--amber2);
}
.modal-desc{font-size:16px;color:var(--text2);line-height:1.65;margin-bottom:20px}
.modal-specs{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px;margin-bottom:20px}
.modal-spec{background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:10px;padding:12px 14px}
.modal-spec-lbl{font-size:12px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:4px}
.modal-spec-val{font-size:17px;font-weight:700;color:#fff}
.modal-section-title{font-size:14px;text-transform:uppercase;letter-spacing:1px;color:var(--text3);margin-bottom:10px;font-weight:700}
.modal-feat-grid{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.modal-feat{
  font-size:14px;padding:4px 10px;border-radius:8px;font-weight:600;
  background:rgba(255,255,255,.06);color:var(--text);border:1px solid rgba(255,255,255,.1);
}
.modal-sup-list{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:20px}
.modal-sup{
  font-size:14px;padding:4px 10px;border-radius:8px;font-weight:600;
  border:1px solid rgba(59,130,246,.25);background:rgba(59,130,246,.08);color:var(--blue2);
}
.modal-stability-section{margin-bottom:20px}
.modal-stability-bar{height:8px;border-radius:4px;background:linear-gradient(90deg,#10B981,#F59E0B,#EF4444);position:relative;margin:8px 0 4px}
.modal-stability-marker{position:absolute;top:-5px;width:18px;height:18px;border-radius:50%;border:2px solid #fff;transform:translateX(-50%);box-shadow:0 0 12px currentColor}

/* ─── MODAL LIGHT (Tamamen Mekanik) ─── */
.modal.modal-light{background:#ffffff;border:1px solid #cbd5e1;box-shadow:0 24px 80px rgba(0,0,0,.35)}
.modal.modal-light .modal-header{background:linear-gradient(135deg,#f1f5f9,#e2e8f0);border-bottom:1px solid #cbd5e1}
.modal.modal-light .modal-title{color:#0f172a}
.modal.modal-light .modal-period{color:#475569}
.modal.modal-light .modal-desc{color:#1e293b}
.modal.modal-light .modal-section-title{color:#475569}
.modal.modal-light .modal-spec{background:#f8fafc;border:1px solid #e2e8f0}
.modal.modal-light .modal-spec-lbl{color:#64748b}
.modal.modal-light .modal-spec-val{color:#0f172a}
.modal.modal-light .modal-ac-chip{background:rgba(245,158,11,.12);border-color:rgba(245,158,11,.35);color:#92400e}
.modal.modal-light .modal-feat{background:#f1f5f9;color:#1e293b;border:1px solid #cbd5e1}
.modal.modal-light .modal-sup{background:rgba(59,130,246,.10);color:#1e40af;border:1px solid rgba(59,130,246,.30)}
.modal.modal-light .modal-close{background:rgba(15,23,42,.08);color:#0f172a}
.modal.modal-light .modal-close:hover{background:rgba(15,23,42,.18)}
.modal.modal-light .modal-stability-marker{border-color:#0f172a}

/* ─── COMPARE PANEL ─── */
.compare-panel{
  display:none;background:var(--card);border:1px solid var(--border2);
  border-radius:14px;padding:24px;margin:0 24px 28px;
  max-width:1272px;margin-left:auto;margin-right:auto;
}
.compare-panel.open{display:block}
.compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:16px}
@media(max-width:600px){.compare-grid{grid-template-columns:1fr}}
.compare-select-wrap{display:flex;flex-direction:column;gap:8px}
.compare-select{
  background:rgba(255,255,255,.05);border:1px solid var(--border);
  border-radius:8px;padding:8px 12px;color:var(--text);font-size:16px;
  outline:none;cursor:pointer;
}
.compare-select option{background:#111d35}
.compare-result{margin-top:20px;display:none}
.compare-result.show{display:block}
.compare-result-grid{display:grid;grid-template-columns:200px 1fr 1fr;gap:1px;background:var(--border);border-radius:10px;overflow:hidden}
.cmp-cell{background:var(--card);padding:10px 14px;font-size:15px}
.cmp-cell.header{background:var(--bg3);font-size:13px;text-transform:uppercase;letter-spacing:1px;color:var(--text2);font-weight:700}
.cmp-cell.row-label{color:var(--text2);font-weight:600}
.cmp-cell.a{color:#1e293b}
.cmp-cell.b{color:#1e293b}
.cmp-win{color:var(--green)!important;font-weight:700}

/* card selected ring */
.gen-card.compare-sel{box-shadow:0 0 0 2px #F59E0B,0 8px 30px rgba(0,0,0,.5);border-color:#F59E0B}

/* ─── FAILURE MODES ─── */
.failure-section{background:var(--card);border:1px solid var(--border);border-radius:14px;padding:24px;margin-bottom:32px}
.failure-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:12px;margin-top:16px}
.failure-card{background:rgba(239,68,68,.04);border:1px solid rgba(239,68,68,.15);border-radius:10px;padding:14px 16px;position:relative;overflow:hidden}
.failure-card::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--fc-color)}
.failure-gen{font-size:12px;font-weight:700;letter-spacing:1.2px;text-transform:uppercase;color:var(--fc-color);margin-bottom:4px}
.failure-event{font-size:16px;font-weight:700;color:#1e293b;margin-bottom:3px}
.failure-aircraft{font-size:14px;color:var(--amber2);margin-bottom:8px}
.failure-meta{font-size:14px;color:#1e293b;line-height:1.5;margin-bottom:6px}
.failure-lesson{font-size:14px;color:var(--green);background:rgba(16,185,129,.07);border-radius:6px;padding:5px 8px;margin-top:6px}
.failure-lesson::before{content:'→ Ders: ';font-weight:700}

/* ─── EVO ANIMATION ─── */
.evo-node{opacity:0;transform:translateY(12px);transition:opacity .45s ease,transform .45s ease}
.evo-node.evo-visible{opacity:1;transform:translateY(0)}

/* ─── PRINT ─── */
.print-btn{
  position:fixed;bottom:24px;right:24px;z-index:500;
  background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.4);
  border-radius:50px;padding:10px 18px;color:var(--blue2);font-size:15px;font-weight:700;
  cursor:pointer;backdrop-filter:blur(8px);transition:all .2s;display:flex;align-items:center;gap:8px;
  box-shadow:0 4px 20px rgba(0,0,0,.4);
}
.print-btn:hover{background:rgba(59,130,246,.28);border-color:var(--blue);color:#fff}
@media print{
  *{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important;color-adjust:exact!important}
  html,body{overflow:visible!important;width:100%!important;height:auto!important;background:#fff!important;color:#000}

  /* Hide non-printable UI */
  .tab-bar,.filter-bar,.compare-panel,.print-btn,.modal-overlay,.tooltip,.hero-grid,.hero-badge,.fc-tip{display:none!important}

  /* Show all panels */
  .panel{display:block!important;padding:20px 16px 12px!important;animation:none!important}

  /* Hero compact */
  .hero{background:#f8fafc!important;border-bottom:1px solid #ddd;padding:20px 16px 16px}
  .hero h1{-webkit-text-fill-color:#1e293b;font-size:24px}
  .hero p,.hstat-lbl{color:#475569}
  .hstat-num{color:#b45309;font-size:22px}
  .hero-stats{gap:16px}
  .hero::before{display:none}

  /* Section titles */
  .sec-title{margin-bottom:12px;break-after:avoid;page-break-after:avoid}
  .sec-title h2{font-size:16px}
  .sec-title p{font-size:12px}

  /* Cards */
  .gen-card{break-inside:avoid;page-break-inside:avoid;border:1px solid #ddd;background:#f8fafc}
  .gen-grid{gap:12px}
  .card-top{padding:10px 14px 8px}
  .card-name{font-size:16px;color:#1e293b!important;-webkit-text-fill-color:#1e293b}
  .card-body{padding:10px 14px 12px}
  .card-desc{font-size:12px;color:#334155;margin-bottom:8px}
  .spec-grid{gap:4px;margin-bottom:8px}
  .spec-val,.chart-title,.chart-sub{color:#334155}
  .spec-lbl{font-size:10px}
  .spec-val{font-size:13px}
  .feat-tag{font-size:11px;padding:2px 6px}

  /* Hide canvas-based charts (they don't render in print) */
  canvas,.chart-section,.radar-section{display:none!important}

  /* Hide interactive controls & animations (useless in PDF) */
  .hyd-controls,.hyd-legend,.fbw-anim-wrap,.fbw-anim-wrap+div,.fbw-btn,
  button.hyd-btn,.hyd-btn,.compare-btn,#searchInput,.search-wrap,.filter-chips,
  .fchip,.result-count{display:none!important}

  /* SVG diagrams — scale to fit page width, avoid overflow blank pages */
  svg{max-width:100%!important;height:auto!important;page-break-inside:avoid;break-inside:avoid}
  .hyd-diagram{overflow:visible!important;page-break-inside:avoid;break-inside:avoid}
  .hyd-diagram svg{max-height:500px!important;width:100%!important}
  #panel-f35hyd svg,#panel-f4hyd svg{max-height:500px!important;width:100%!important}
  .hyd-wrap{overflow:visible!important;break-inside:avoid;page-break-inside:avoid}
  .hyd-header{background:#f1f5f9!important;color:#0f172a!important}
  .hyd-header h3{color:#b45309!important}
  .hyd-header .sub{color:#334155!important}
  .hyd-badge{color:#334155!important;border-color:#cbd5e1!important;background:#e2e8f0!important}

  /* Evolution bars — keep but compact */
  .evolution-bar{padding:14px;margin-bottom:12px!important;break-inside:avoid;page-break-inside:avoid}
  .evo-circle{width:36px;height:36px;font-size:12px}
  .evo-psi{font-size:12px}
  .evo-label{font-size:10px}

  /* Timeline */
  .timeline-wrap{margin-bottom:16px;padding-bottom:20px;overflow:visible!important}

  /* Comparison table */
  .comp-table-wrap{overflow:visible!important;margin-bottom:16px}
  .comp-table th,.comp-table td{color:#334155;border-color:#ddd;font-size:11px;padding:6px 8px}

  /* Supplier section */
  .supplier-section{padding:14px;margin-bottom:12px!important;break-inside:avoid;page-break-inside:avoid}
  .sup-card{break-inside:avoid;page-break-inside:avoid}

  /* Glossary */
  .glossary{padding:14px;margin-bottom:12px!important}
  .gloss-item{break-inside:avoid;page-break-inside:avoid}

  /* Failure section */
  .failure-section{padding:14px;margin-bottom:12px!important;break-inside:avoid;page-break-inside:avoid}

  /* Gantt charts */
  .fc-gantt-wrap{overflow:visible!important;break-inside:auto}
  .fc-gantt-header{position:static!important}
  .fc-gantt-row{min-height:36px!important;break-inside:avoid;page-break-inside:avoid}
  .fc-gantt-bar-area{overflow:visible!important;min-width:300px!important}
  .fc-gantt-bar{height:10px!important}
  .fc-gantt-tag{font-size:8px!important;padding:1px 4px!important}
  .fc-gantt-cat-row{break-after:avoid;page-break-after:avoid}

  /* Panel separators — each panel starts on new page */
  .panel+.panel{border-top:2px solid #cbd5e1;padding-top:16px;break-before:page;page-break-before:always}

  /* Prevent large empty gaps */
  div,section{overflow:visible!important}
}

/* ─── RESPONSIVE ─── */
@media(max-width:600px){
  .gen-grid{grid-template-columns:1fr}
  .spec-grid{grid-template-columns:1fr}
  .hero-stats{gap:20px}
  .tab-btn{padding:7px 12px;font-size:15px}
}

/* ─── GANTT TIMELINE ─── */
.fc-gantt-wrap{overflow-x:auto;background:#fff;border:1px solid var(--border);border-radius:12px}
.fc-gantt-header{display:flex;background:var(--bg2);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:10}
.fc-gantt-label-col{min-width:170px;width:170px;padding:10px 14px;font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px;border-right:1px solid var(--border);flex-shrink:0}
.fc-gantt-years{flex:1;display:flex}
.fc-gantt-year-tick{flex:1;text-align:center;font-size:10px;font-weight:700;color:var(--text3);padding:10px 2px;border-right:1px solid var(--bg3);min-width:44px}
.fc-gantt-row{display:flex;border-bottom:1px solid var(--bg3);min-height:56px}
.fc-gantt-row:hover{background:rgba(59,130,246,.03)}
.fc-gantt-cat-row{background:var(--bg2);border-bottom:1px solid var(--border);min-height:36px!important}
.fc-gantt-name{min-width:170px;width:170px;padding:8px 14px;font-size:12px;font-weight:600;color:var(--text);border-right:1px solid var(--border);flex-shrink:0;display:flex;align-items:center}
.fc-gantt-cat-name{font-size:11px;font-weight:800;text-transform:uppercase;letter-spacing:1px}
.fc-gantt-bar-area{flex:1;min-width:400px;position:relative;min-height:56px;overflow:hidden}
.fc-gantt-bar{position:absolute;height:14px;bottom:10px;border-radius:3px;cursor:pointer;opacity:.85;transition:opacity .15s}
.fc-gantt-bar:hover{opacity:1;box-shadow:0 0 0 2px rgba(0,0,0,.2)}
.fc-gantt-tag{position:absolute;bottom:28px;background:#fff;border:1.5px solid #cbd5e1;border-radius:4px;padding:2px 8px;font-size:11px;font-weight:700;color:#0f172a;white-space:nowrap;box-shadow:0 1px 4px rgba(0,0,0,.12);pointer-events:none;z-index:4}
.fc-gantt-tag::after{content:'';position:absolute;left:8px;top:100%;border:4px solid transparent;border-top-color:#cbd5e1}
.fc-gantt-tag::before{content:'';position:absolute;left:9px;top:100%;border:3px solid transparent;border-top-color:#fff;z-index:1}
.fc-gantt-dot{position:absolute;width:10px;height:10px;border-radius:50%;bottom:6px;cursor:pointer;z-index:5;border:2px solid #fff;box-shadow:0 1px 3px rgba(0,0,0,.25);transition:transform .15s}
.fc-gantt-dot:hover{transform:scale(1.6)}
.fc-gantt-milestone-row{min-height:44px!important}
.fc-gantt-info-col{min-width:160px;width:160px;padding:6px 10px;border-left:1px solid var(--border);flex-shrink:0;display:flex;flex-direction:column;justify-content:center;gap:2px}
.fc-gantt-info-col.header{background:var(--bg2);font-size:11px;font-weight:700;color:var(--text3);text-transform:uppercase;letter-spacing:1px;justify-content:center}
.fc-gantt-info-row{display:flex;align-items:baseline;gap:4px;line-height:1.4}
.fc-gantt-info-lbl{font-size:9px;text-transform:uppercase;letter-spacing:.5px;color:var(--text3);flex-shrink:0}
.fc-gantt-info-val{font-size:11px;font-weight:700;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.fc-tip{position:fixed;background:#fff;color:#0f172a;padding:12px 16px;border-radius:10px;font-size:12px;pointer-events:none;z-index:2000;max-width:300px;box-shadow:0 4px 24px rgba(0,0,0,.18);opacity:0;transition:opacity .15s;line-height:1.6;border:1px solid #e2e8f0}
.fc-tip.show{opacity:1}
.fc-tip-title{font-weight:800;font-size:14px;border-bottom:1px solid #e2e8f0;padding-bottom:6px;margin-bottom:6px}
.fc-tip-row{display:flex;gap:6px;font-size:11px;padding:2px 0}
.fc-tip-key{color:#64748b;min-width:70px}
.fc-tip-val{color:#0f172a;font-weight:600}
.fc-legend{display:flex;gap:16px;flex-wrap:wrap;margin-bottom:20px}
.fc-legend-item{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--text2)}
.fc-legend-dot{width:12px;height:12px;border-radius:50%}

/* ─── MANUFACTURER CARDS ─── */
.mfr-card{
  background:var(--card);border:1px solid var(--border);border-radius:14px;
  overflow:hidden;transition:all .3s;position:relative;
}
.mfr-card:hover{transform:translateY(-5px);box-shadow:var(--glow);border-color:var(--border2)}
.mfr-card-top{
  padding:18px 20px 14px;
  background:linear-gradient(135deg,var(--m-bg1) 0%,var(--m-bg2) 100%);
  border-bottom:1px solid var(--border);
}
.mfr-name{font-size:19px;font-weight:800;color:#fff;margin-bottom:4px}
.mfr-sub{font-size:13px;color:#CBD5E1;margin-bottom:8px}
.mfr-badges{display:flex;gap:6px;flex-wrap:wrap}
.mfr-badge{font-size:12px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;padding:3px 9px;border-radius:10px;white-space:nowrap}
.mfr-card-body{padding:16px 20px 20px}
.mfr-stat-row{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:14px}
.mfr-stat{background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:8px;padding:8px 10px}
.mfr-stat-lbl{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:#64748B;margin-bottom:3px}
.mfr-stat-val{font-size:14px;font-weight:700;color:#1e293b}
.mfr-desc{font-size:14px;color:#334155;line-height:1.55;margin-bottom:14px}
.mfr-products{display:flex;flex-wrap:wrap;gap:5px;margin-bottom:12px}
.mfr-product-tag{font-size:12px;padding:3px 8px;border-radius:7px;font-weight:600;background:rgba(255,255,255,.05);color:var(--text2);border:1px solid rgba(255,255,255,.08)}
.mfr-programs{font-size:13px;color:var(--amber2);font-weight:600;line-height:1.5}
.mfr-program-chip{background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.2);border-radius:8px;padding:2px 7px;font-size:12px;display:inline-block;margin:2px 2px 0 0}
.mfr-milestone{font-size:13px;color:#475569;padding:6px 0;border-bottom:1px solid rgba(0,0,0,.05);display:flex;gap:10px;align-items:baseline}
.mfr-milestone:last-child{border-bottom:none}
.mfr-milestone-year{font-size:12px;font-weight:800;min-width:38px;flex-shrink:0}

/* company timeline */
.mfr-tl-container{position:relative;min-width:900px;height:140px}
.mfr-tl-axis{position:absolute;top:60px;left:0;right:0;height:2px;background:linear-gradient(90deg,var(--amber),#34D399,var(--blue))}
.mfr-tl-item{position:absolute;display:flex;flex-direction:column;align-items:center;cursor:default}
.mfr-tl-dot{width:14px;height:14px;border-radius:50%;border:2px solid #fff;top:54px;position:absolute;z-index:2}
.mfr-tl-label-above{position:absolute;bottom:72px;font-size:11px;font-weight:800;text-align:center;white-space:nowrap;max-width:90px;overflow:hidden;text-overflow:ellipsis}
.mfr-tl-label-below{position:absolute;top:72px;font-size:10px;color:var(--text3);text-align:center;white-space:nowrap}
.mfr-tl-tick{position:absolute;top:56px;width:1px;height:8px;background:rgba(0,0,0,.2)}

/* ─── FBW ANIMATION ─── */
.fbw-btn{
  background:rgba(34,211,238,.07);border:1px solid rgba(34,211,238,.3);
  border-radius:8px;padding:7px 18px;color:#67e8f9;font-size:13px;font-weight:700;
  cursor:pointer;transition:all .2s;letter-spacing:.3px;
}
.fbw-btn:hover{background:rgba(34,211,238,.18);border-color:#22d3ee;color:#fff}
.fbw-btn.active{background:rgba(34,211,238,.25);border-color:#22d3ee;color:#fff;
  box-shadow:0 0 10px rgba(34,211,238,.3)}
.fbw-btn.danger{border-color:rgba(239,68,68,.4);color:#fca5a5;background:rgba(239,68,68,.07)}
.fbw-btn.danger:hover{background:rgba(239,68,68,.2);border-color:#ef4444;color:#fff}
.fbw-btn.danger.active{background:rgba(239,68,68,.25);border-color:#ef4444;color:#fff;
  box-shadow:0 0 10px rgba(239,68,68,.3)}
.fbw-anim-wrap{background:#080f1e;border-radius:10px;padding:6px;margin-top:4px}
.fbw-anim-canvas{width:100%;display:block;border-radius:8px;cursor:crosshair}

/* matrix table cells */
.mfr-cell-yes{color:#10B981;font-weight:800;font-size:16px}
.mfr-cell-part{color:#F59E0B;font-weight:700;font-size:14px}
.mfr-cell-no{color:#CBD5E1;font-size:13px}

/* ─── GENEALOGY / M&A ─── */
.genl-track{background:var(--card);border:1px solid var(--border);border-radius:10px;margin-bottom:10px;overflow:hidden}
.genl-hdr{display:flex;align-items:center;gap:10px;padding:9px 16px;border-bottom:1px solid var(--border);background:var(--card2)}
.genl-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px currentColor}
.genl-gname{font-size:.8rem;font-weight:800;letter-spacing:.03em}
.genl-curr{font-size:.68rem;background:rgba(99,140,210,.1);border:1px solid var(--border2);padding:2px 10px;border-radius:12px;color:var(--text3);margin-left:auto;white-space:nowrap;flex-shrink:0}
.genl-scroll{overflow-x:auto;padding:10px 16px 14px}
.genl-chain{display:flex;align-items:flex-start;gap:0;min-height:76px}
.genl-node{display:flex;flex-direction:column;align-items:center;flex-shrink:0;width:116px}
.genl-yr{font-size:.62rem;color:var(--text3);font-weight:700;margin-bottom:3px}
.genl-box{padding:5px 7px;border-radius:7px;border:1.5px solid;font-size:.67rem;font-weight:700;text-align:center;line-height:1.3;width:108px}
.genl-nt{font-size:.57rem;color:var(--text3);max-width:108px;text-align:center;margin-top:4px;line-height:1.25}
.genl-conn{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding-top:18px;flex-shrink:0;width:76px;gap:2px}
.genl-pill{font-size:.57rem;font-weight:700;padding:1px 5px;border-radius:8px;white-space:nowrap;letter-spacing:.02em;text-align:center}
.genl-arrow{display:flex;align-items:center;width:72px;gap:0}
.genl-line{flex:1;height:2px;background:var(--border2)}
.genl-head{font-size:.7rem;color:var(--text3);line-height:1;margin-left:-1px}
.gp-founded{background:rgba(16,185,129,.12);color:#059669;border:1px solid rgba(16,185,129,.25)}
.gp-rename{background:rgba(59,130,246,.12);color:#2563eb;border:1px solid rgba(59,130,246,.25)}
.gp-merge{background:rgba(239,68,68,.12);color:#dc2626;border:1px solid rgba(239,68,68,.25)}
.gp-acquire{background:rgba(245,158,11,.12);color:#d97706;border:1px solid rgba(245,158,11,.25)}
.gp-spinoff{background:rgba(139,92,246,.12);color:#7c3aed;border:1px solid rgba(139,92,246,.25)}
.gp-current{background:rgba(6,182,212,.12);color:#0891b2;border:1px solid rgba(6,182,212,.25)}
.genl-legend{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.genl-legend span{font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:10px}

/* ─── HYDRAULIC PANEL ─── */
#panel-hydraulic .hyd-wrap{background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden}
#panel-hydraulic .hyd-header{background:linear-gradient(135deg,#0f172a,#1e3a5f);padding:18px 24px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
#panel-hydraulic .hyd-header h3{font-size:1.2rem;font-weight:700;color:#f59e0b;margin:0}
#panel-hydraulic .hyd-header .sub{font-size:.8rem;color:#94a3b8;margin-top:3px}
#panel-hydraulic .hyd-badge{background:rgba(59,130,246,.15);border:1px solid rgba(59,130,246,.3);border-radius:16px;padding:4px 12px;font-size:.75rem;color:#93c5fd;letter-spacing:.05em}
#panel-hydraulic .hyd-controls{display:flex;gap:8px;padding:10px 18px;background:#f8fafc;border-bottom:1px solid var(--border);align-items:center;flex-wrap:wrap}
#panel-hydraulic .hyd-ctl-lbl{font-size:.75rem;color:var(--text3)}
#panel-hydraulic .hyd-btn{padding:4px 14px;border-radius:5px;border:1.5px solid;cursor:pointer;font-size:.78rem;font-weight:600;transition:all .2s;background:transparent}
#panel-hydraulic .hyd-btn-a{color:#dc2626;border-color:#dc2626}
#panel-hydraulic .hyd-btn-a.on{background:#dc2626;color:#fff;box-shadow:0 0 8px #dc262666}
#panel-hydraulic .hyd-btn-b{color:#2563eb;border-color:#2563eb}
#panel-hydraulic .hyd-btn-b.on{background:#2563eb;color:#fff;box-shadow:0 0 8px #2563eb66}
#panel-hydraulic .hyd-btn-epu{color:#d97706;border-color:#d97706}
#panel-hydraulic .hyd-btn-epu.on{background:#d97706;color:#fff;box-shadow:0 0 8px #d9770666}
#panel-hydraulic .hyd-legend{display:flex;gap:20px;padding:8px 18px;background:#f1f5f9;border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center}
#panel-hydraulic .hyd-li{display:flex;align-items:center;gap:6px;font-size:.73rem;color:var(--text3)}
#panel-hydraulic .hyd-ll{width:30px;height:3px;border-radius:2px}
#panel-hydraulic .hyd-lp{background:#dc2626}
#panel-hydraulic .hyd-lr{background:#059669}
#panel-hydraulic .hyd-ls{background:#2563eb}
#panel-hydraulic .hyd-diagram{padding:12px 16px;overflow-x:auto;background:#fff}

/* SVG classes for hydraulic diagram (white bg) */
@keyframes hfp{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}
@keyframes hfr{from{stroke-dashoffset:0}to{stroke-dashoffset:20}}
@keyframes hfs{from{stroke-dashoffset:20}to{stroke-dashoffset:0}}
.hP{stroke:#dc2626;stroke-width:2.5;fill:none;stroke-dasharray:9 5;animation:hfp .55s linear infinite;filter:drop-shadow(0 0 2px #dc2626)}
.hR{stroke:#059669;stroke-width:2.5;fill:none;stroke-dasharray:9 5;animation:hfr .75s linear infinite;filter:drop-shadow(0 0 2px #059669)}
.hS{stroke:#2563eb;stroke-width:2.5;fill:none;stroke-dasharray:9 5;animation:hfs 1s linear infinite;filter:drop-shadow(0 0 2px #2563eb)}
.hP2{stroke:#dc2626;stroke-width:1.8;fill:none;stroke-dasharray:7 4;animation:hfp .6s linear infinite;filter:drop-shadow(0 0 1.5px #dc2626)}
.hR2{stroke:#059669;stroke-width:1.8;fill:none;stroke-dasharray:7 4;animation:hfr .8s linear infinite;filter:drop-shadow(0 0 1.5px #059669)}
.hS2{stroke:#2563eb;stroke-width:1.8;fill:none;stroke-dasharray:7 4;animation:hfs 1.1s linear infinite;filter:drop-shadow(0 0 1.5px #2563eb)}
@keyframes hPump{0%,100%{filter:drop-shadow(0 0 3px #16a34a)}50%{filter:drop-shadow(0 0 8px #16a34a)}}
.hPump{fill:#f0fdf4;stroke:#16a34a;stroke-width:1.8;animation:hPump 2.5s ease-in-out infinite}
.hPumpEpu{fill:#fffbeb;stroke:#d97706;stroke-width:1.8}
@keyframes hEpu{0%,100%{filter:drop-shadow(0 0 3px #d97706)}50%{filter:drop-shadow(0 0 8px #d97706)}}
.hPumpEpu.hon{animation:hEpu 1.8s ease-in-out infinite}
.hAcc{fill:#fff1f2;stroke:#dc2626;stroke-width:1.8}
.hAccFluid{fill:#fecaca;opacity:.8}
.hRes{fill:#eff6ff;stroke:#2563eb;stroke-width:1.8}
.hResFluid{fill:#bfdbfe;opacity:.7}
.hGauge{fill:#fffbeb;stroke:#d97706;stroke-width:1.8}
.hWarn{fill:#fff1f2;stroke:#dc2626;stroke-width:1.5}
.hFilt{fill:#f8fafc;stroke:#94a3b8;stroke-width:1.3}
.hAct{fill:#f8fafc;stroke:#bfdbfe;stroke-width:1}
.hActLbl{fill:#1e293b;font-family:'Segoe UI',system-ui;font-size:9.5px;text-anchor:middle;dominant-baseline:middle}
.hLbl{fill:#1e293b;font-family:'Segoe UI',system-ui;text-anchor:middle;dominant-baseline:middle}
.hSysLbl{fill:#b45309;font-family:'Segoe UI',system-ui;font-size:13px;font-weight:700;text-anchor:middle}
.hSmall{fill:#f8fafc;stroke:#94a3b8;stroke-width:1}
.hCapsule{fill:#eff6ff;stroke:#2563eb;stroke-width:1.5}
.hDragAcc{fill:#fff1f2;stroke:#dc2626;stroke-width:1.5}
.hSysGrp{transition:opacity .4s}
/* ---- Actuator modal ---- */
#hActModal{position:fixed;inset:0;z-index:9000;background:rgba(4,8,20,0.88);display:none;align-items:center;justify-content:center;backdrop-filter:blur(3px)}
#hActModal.open{display:flex}
#hActBox{background:#0b1628;border:1px solid #2d4a6e;border-radius:12px;padding:16px 20px 12px;width:510px;box-shadow:0 0 48px rgba(59,130,246,0.22);position:relative}
#hActClose{position:absolute;top:10px;right:14px;background:none;border:none;color:#94a3b8;font-size:1.4rem;cursor:pointer;line-height:1}
#hActClose:hover{color:#e2e8f0}
.hact-m-title{font-size:.82rem;font-weight:700;color:#F59E0B;letter-spacing:.08em}
.hact-m-sub{font-size:.7rem;color:#94A3B8;margin:2px 0 10px}
g.h-clickable-act{cursor:pointer}
g.h-clickable-act:hover>.hAct{stroke:#2563eb;filter:drop-shadow(0 0 5px #2563eb)}

/* ─── F-16 FLUID POWER COMPONENTS TABLE ─── */
.fp-section{margin-top:32px;padding:0 8px}
.fp-section .sec-title h2{font-size:clamp(1.1rem,2.2vw,1.45rem)}
.fp-cat-title{font-size:.95rem;font-weight:700;color:var(--amber);margin:22px 0 10px;padding-left:6px;border-left:3px solid var(--amber);letter-spacing:.04em}
.fp-tbl-wrap{overflow-x:auto;border-radius:10px;border:1px solid var(--border);margin-bottom:18px}
.fp-tbl{width:100%;border-collapse:collapse;font-size:.78rem;min-width:680px}
.fp-tbl thead{background:linear-gradient(135deg,#0f172a,#1e3a5f)}
.fp-tbl th{padding:10px 12px;text-align:left;color:#f1f5f9;font-weight:700;font-size:.72rem;letter-spacing:.06em;white-space:nowrap}
.fp-tbl tbody tr{border-bottom:1px solid var(--border);transition:background .2s}
.fp-tbl tbody tr:hover{background:rgba(59,130,246,.06)}
.fp-tbl td{padding:9px 12px;color:var(--text);vertical-align:top;line-height:1.45}
.fp-tbl .fp-comp{font-weight:700;color:var(--blue);white-space:nowrap}
.fp-tbl .fp-supplier{color:var(--amber);font-weight:600}
.fp-tbl .fp-sys{display:inline-block;font-size:.65rem;padding:1px 7px;border-radius:8px;font-weight:700;letter-spacing:.04em;margin-right:4px}
.fp-sys-a{background:rgba(220,38,38,.12);color:#dc2626;border:1px solid rgba(220,38,38,.25)}
.fp-sys-b{background:rgba(37,99,235,.12);color:#2563eb;border:1px solid rgba(37,99,235,.25)}
.fp-sys-ab{background:rgba(139,92,246,.12);color:#7c3aed;border:1px solid rgba(139,92,246,.25)}
.fp-sys-util{background:rgba(16,185,129,.12);color:#10b981;border:1px solid rgba(16,185,129,.25)}
.fp-note{font-size:.7rem;color:var(--text2);padding:8px 12px;background:rgba(245,158,11,.05);border-radius:8px;border:1px solid rgba(245,158,11,.12);margin-top:8px;line-height:1.5}

/* ─── F-35 variant buttons ─── */
.f35-btn-a{color:#06b6d4;border-color:#06b6d4}
.f35-btn-a.on{background:#06b6d4;color:#fff;box-shadow:0 0 8px #06b6d466}
.f35-btn-b{color:#8b5cf6;border-color:#8b5cf6}
.f35-btn-b.on{background:#8b5cf6;color:#fff;box-shadow:0 0 8px #8b5cf666}
.f35-btn-c{color:#0ea5e9;border-color:#0ea5e9}
.f35-btn-c.on{background:#0ea5e9;color:#fff;box-shadow:0 0 8px #0ea5e966}
.f4-btn-pc1{color:#ea580c;border-color:#ea580c}
.f4-btn-pc1.on{background:#ea580c;color:#fff;box-shadow:0 0 8px #ea580c66}
.f4-btn-pc2{color:#c2410c;border-color:#c2410c}
.f4-btn-pc2.on{background:#c2410c;color:#fff;box-shadow:0 0 8px #c2410c66}
