/* PIB · Pre-flight Information Bulletin  （自 web/pib.html 抽出，2026-10-14）
   页面本体只保留 <link rel="stylesheet" href="/static/css/pib.css"> */
/* ============================================================
   Airinf 主题（对齐 web/header.html v2 设计令牌）
   品牌渐变 + 玻璃磨砂 + gx-crumb 面包屑 + box 卡片
   ============================================================ */
:root{
  --brand-1:#2563eb; --brand-2:#6366f1; --brand-3:#0ea5e9;
  --brand-grad:linear-gradient(135deg,#2563eb 0%,#6366f1 50%,#0ea5e9 100%);
  --glass-bg:linear-gradient(150deg, rgba(255,255,255,.74), rgba(255,255,255,.56));
  --glass-border:1px solid rgba(255,255,255,.65);
  --glass-blur:blur(20px) saturate(180%);
  --glass-sheen:inset 0 1px 0 rgba(255,255,255,.80);
  --shadow-sm:0 1px 2px rgba(15,23,42,.06);
  --shadow-md:0 4px 14px rgba(15,23,42,.08);
  --shadow-lg:0 10px 30px rgba(37,99,235,.15);
  --sev-high:#ef4444; --sev-med:#f59e0b; --sev-low:#64748b; --sev-unk:#94a3b8;
}
body{
  color:#1f2937;
  background-image:url('/static/frt.png');
  background-position:center top; background-attachment:fixed; background-size:cover;
  font-family:-apple-system,"PingFang SC","Microsoft YaHei","Segoe UI",sans-serif;
}
/* ---------- 顶部固定导航（与主站一致） ---------- */
nav.navbar.airinf-top{
  position:fixed;top:0;left:0;right:0;width:100%;z-index:1000;
  background:linear-gradient(135deg, rgba(37,99,235,.72), rgba(99,102,241,.66));
  backdrop-filter:blur(20px) saturate(180%); -webkit-backdrop-filter:blur(20px) saturate(180%);
  border-bottom:1px solid rgba(255,255,255,.28);
  box-shadow:0 4px 18px rgba(37,99,235,.25), inset 0 1px 0 rgba(255,255,255,.35);
  min-height:48px;
}
.airinf-top .navbar-brand{align-items:center;min-height:48px}
.airinf-top .brand-wrap{
  display:inline-flex;align-items:center;gap:10px;padding:0 12px;color:#fff;
  text-decoration:none;font-weight:700;letter-spacing:.5px;font-size:20px;line-height:48px;
  transition:opacity .18s ease;
}
.airinf-top .brand-wrap:hover{opacity:.88;color:#fff}
.airinf-top .brand-logo{
  width:26px;height:26px;border-radius:7px;background:rgba(255,255,255,.18);
  display:inline-flex;align-items:center;justify-content:center;font-size:15px;
}
.airinf-top .brand-sub{
  font-size:11px;font-weight:400;opacity:.78;margin-left:4px;padding-left:8px;
  border-left:1px solid rgba(255,255,255,.3);
}
.airinf-top .navbar-item{color:rgba(255,255,255,.92)!important;padding:5px 12px!important;font-weight:500;border-radius:6px}
.airinf-top .navbar-item:hover{background-color:rgba(255,255,255,.16)!important;color:#fff!important}
.airinf-top .navbar-item.is-active{background-color:rgba(255,255,255,.22);color:#fff}
.airinf-top .navbar-burger{color:#fff;height:initial!important}
.hei{height:49px!important}

/* ---------- 内容区：与主站 .container.is-fluid + .box ---------- */
.container.is-fluid{padding:10px 16px}
.box{
  background-color:rgba(255,255,255,.60);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid rgba(255,255,255,.65);border-radius:14px;
  box-shadow:var(--shadow-sm), var(--glass-sheen);
  transition:transform .2s ease,box-shadow .2s ease;
}
.box:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}
.title,.subtitle{color:#1f2937}

/* ---------- 面包屑（对齐 gx-crumb） ---------- */
.gx-crumb{
  display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:7px 12px;margin:2px 0 10px;
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:var(--glass-border);border-radius:10px;box-shadow:var(--shadow-sm), var(--glass-sheen);
  font-size:13px;color:#475569;line-height:1.6;
}
.gx-crumb a{color:var(--brand-1);text-decoration:none;padding:2px 8px;border-radius:5px}
.gx-crumb a:hover{background:rgba(37,99,235,.10);color:var(--brand-2)}
.gx-crumb .sep{color:#94a3b8;font-size:11px;user-select:none}
.gx-crumb .current{color:#0f172a;font-weight:600;padding:2px 8px;background:rgba(37,99,235,.08);border-radius:5px}
.gx-crumb i.fa{color:var(--brand-2);margin-right:6px;font-size:12px}

/* ---------- 小组件 ---------- */
.chipset{display:flex;flex-wrap:wrap;gap:6px}
.chip{
  background:rgba(37,99,235,.10);color:var(--brand-1);border-radius:999px;
  padding:3px 12px;font-size:12px;font-weight:600;border:1px solid rgba(37,99,235,.18);
}
.chip.fir{background:rgba(245,158,11,.12);color:#b45309;border-color:rgba(245,158,11,.28)}
.kv{display:flex;gap:8px;font-size:13px;margin:4px 0;align-items:flex-start}
.kv b{color:#64748b;min-width:76px;font-weight:600;flex-shrink:0}
.mono{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:12px;white-space:pre-wrap;word-break:break-word}
.sev{display:inline-block;padding:1px 9px;border-radius:6px;color:#fff;font-size:11px;font-weight:700}
.sev.high{background:var(--sev-high)} .sev.medium{background:var(--sev-med)}
.sev.low{background:var(--sev-low)} .sev.unknown{background:var(--sev-unk)}

/* 状态条 */
.pib-status{padding:9px 14px;border-radius:10px;font-size:13px;margin-bottom:14px;display:none}
.pib-status.err{background:#fee2e2;color:#b91c1c;border:1px solid #fecaca;display:block}
.pib-status.busy{background:rgba(37,99,235,.08);color:var(--brand-1);border:1px solid rgba(37,99,235,.2);display:block}
.pib-status.ok{background:#dcfce7;color:#15803d;border:1px solid #bbf7d0;display:block}

/* 航路地图 */
#map{height:360px;border-radius:12px;overflow:hidden;border:1px solid rgba(255,255,255,.65)}
.map-fallback{padding:40px;text-align:center;color:#64748b;font-size:13px}

/* 气象图分组标题 */
.wx-grp{font-size:13px;font-weight:700;color:#1f2937;margin:14px 0 8px;
  padding:6px 10px;border-radius:8px;background:rgba(37,99,235,.07);border:1px solid rgba(37,99,235,.14)}
.wx-grp .muted{font-weight:400;margin-left:4px}
.wx-grp i.fa{color:var(--brand-2);margin-right:6px}

/* 气象图片：直接显示原图（原始尺寸，不裁剪、不缩略） */
.wx-gal{display:flex;flex-direction:column;gap:18px}
.wx-item{border-radius:12px;overflow:hidden;background:rgba(255,255,255,.60);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid rgba(255,255,255,.65);box-shadow:var(--shadow-sm), var(--glass-sheen)}
.wx-item .hd{padding:9px 12px;font-size:13px;font-weight:600;color:#1f2937;
  border-bottom:1px solid rgba(37,99,235,.14);background:rgba(37,99,235,.05)}
.wx-item .hd .muted{font-weight:400;margin-top:2px}
.wx-item img{display:block;width:100%;height:auto;background:#fff}
.wx-item .ph{padding:40px;text-align:center;color:#64748b;font-size:13px}

/* 气象报文行 */
.wxraw{margin:2px 0;line-height:1.5}
.wxraw .mono{display:block;font-size:12px;color:#0f172a}
.wxraw .when{font-size:11px;color:#64748b;font-family:ui-monospace,Menlo,Consolas,monospace}
.tagx{display:inline-block;padding:0 6px;border-radius:5px;font-size:10px;font-weight:700;
  color:#fff;margin-right:5px;vertical-align:1px}
.tagx.mt{background:#2563eb} .tagx.sp{background:#ea580c} .tagx.tf{background:#0ea5e9}
.wx-none{color:#94a3b8;font-size:12px}

/* NOTAM 卡片 */
.notam{border-radius:12px;padding:12px 14px;margin-bottom:12px;background:rgba(255,255,255,.62);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:1px solid rgba(255,255,255,.65);border-left:4px solid var(--sev-unk);box-shadow:var(--shadow-sm), var(--glass-sheen)}
.notam.high{border-left-color:var(--sev-high)} .notam.medium{border-left-color:var(--sev-med)}
.notam.low{border-left-color:var(--sev-low)}
.notam .hd{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.notam .q{font-size:15px;font-weight:700;color:#1f2937}
.notam .q small{font-weight:400;color:#64748b;font-size:12px;margin-left:6px}

/* NOTAM 分组标签（机场 / 情报区） */
.notam-group{margin-top:6px}
.notam-group .gh{display:flex;align-items:center;gap:8px;margin:14px 0 8px;
  padding:6px 12px;border-radius:9px;background:rgba(37,99,235,.08);
  border-left:3px solid var(--brand-1,#2563eb)}
.notam-group.fir .gh{background:rgba(14,165,233,.10);border-left-color:#0ea5e9}
.notam-group.other .gh{background:rgba(100,116,139,.12);border-left-color:#64748b}
.notam-group .gh .ico{font-size:14px;color:var(--brand-1,#2563eb)}
.notam-group.fir .gh .ico{color:#0ea5e9}
.notam-group .gh .ttl{font-weight:700;font-size:14px;color:#1e293b}
.notam-group .gh .nm{font-size:12px;color:#64748b;margin-left:2px}
.notam-group .gh .badge{margin-left:auto;background:var(--brand-1,#2563eb);color:#fff;
  border-radius:999px;padding:1px 10px;font-size:11px;font-weight:700}
.notam-group.fir .gh .badge{background:#0ea5e9}
.notam-group.other .gh .badge{background:#64748b}
.notam .imp{font-size:11px;color:#f59e0b;font-weight:700;margin-left:6px}
.notam-summary{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 2px}
.notam-summary .sb{font-size:12px;font-weight:600;color:#334155;background:rgba(37,99,235,.07);
  border:1px solid rgba(37,99,235,.16);border-radius:999px;padding:2px 10px}
.notam-summary .sb.fir{background:rgba(14,165,233,.1);border-color:rgba(14,165,233,.2);color:#0369a1}

.muted{color:#64748b;font-size:12px}
.sec-title{color:#1f2937;font-weight:700}

.notam .kv.sched b{color:#7c3aed}
.notam .kv.sched span{color:#5b21b6;font-weight:600}
.notam-raw{
  font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  font-size:13px;line-height:1.5;white-space:pre-wrap;word-break:break-all;
  background:#f6f7f9;border:1px solid #e5e9ef;border-radius:6px;
  padding:8px 10px;margin:6px 0 0;color:#334155;max-height:260px;overflow:auto;
}
.flight-badge{display:inline-block;padding:1px 9px;border-radius:11px;font-size:12px;font-weight:700;letter-spacing:.3px}
.flight-badge.on{background:#dcfce7;color:#15803d;border:1px solid #86efac}
.flight-badge.off{background:#fef3c7;color:#b45309;border:1px solid #fcd34d}
.notam .kv.fab{padding-top:3px}

/* ---------- PIB 左侧目录 + 布局 ---------- */
.pib-toc{position:sticky;top:60px;max-height:calc(100vh - 80px);overflow:auto;
  background:var(--glass-bg);
  backdrop-filter:var(--glass-blur); -webkit-backdrop-filter:var(--glass-blur);
  border:var(--glass-border);border-radius:12px;box-shadow:var(--shadow-sm), var(--glass-sheen);padding:10px 8px;z-index:900}
.pib-toc h5{font-size:11px;color:#64748b;margin:2px 8px 6px;letter-spacing:.6px}
.pib-toc a{display:block;padding:6px 10px;border-radius:8px;color:#334155;text-decoration:none;font-size:13px;
  border-left:3px solid transparent;transition:background .15s,color .15s}
.pib-toc a:hover{background:rgba(37,99,235,.08);color:var(--brand-1)}
.pib-toc a.active{background:rgba(37,99,235,.13);color:var(--brand-1);border-left-color:var(--brand-1);font-weight:600}
.pib-toc .toc-top{margin-top:10px;padding:7px 10px;border-radius:8px;background:var(--brand-1);color:#fff;text-align:center;font-size:12px;font-weight:600;box-shadow:0 2px 8px rgba(37,99,235,.25)}
.pib-toc .toc-top:hover{background:var(--brand-2);color:#fff}
.pib-main{min-width:0}
@media (min-width:901px){
  .container.is-fluid{display:grid;grid-template-columns:196px minmax(0,1fr);gap:14px;align-items:start;align-content:start}
  .container.is-fluid>.gx-crumb{grid-column:1 / -1}
}
@media (max-width:900px){ .pib-toc{display:none} }
.box,.sec-title{scroll-margin-top:64px}
/* NOTAM 卡片新格式：编号 + Q代码 · 解码中文 + 星级 + 严重度徽标 */
.notam .hd{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:6px}
.notam .qmain{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px}
.notam .qmain .q{font-size:15px;font-weight:700;color:#1f2937;font-family:ui-monospace,Menlo,Consolas,monospace}
.notam .qmain .qcode{font-size:13px;font-weight:700;color:var(--brand-1);font-family:ui-monospace,Menlo,Consolas,monospace}
.notam .qmain .sep{color:#94a3b8}
.notam .qmain .subj{font-size:13px;color:#334155;font-weight:600}
.notam .qmain .imp{color:#f59e0b;font-weight:700;letter-spacing:-1px}

/* ---------- 打印 / 导出 PDF ---------- */
@media print{
  @page{margin:12mm}
  nav.navbar.airinf-top,.pib-toc,footer,.hei,#secInput,.pib-status,.field.is-grouped,.gx-crumb{display:none!important}
  body{background:#fff!important;background-image:none!important;color:#111}
  .container.is-fluid{margin-left:0!important;padding:0!important;max-width:none!important}
  .box{background:#fff!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
       box-shadow:none!important;border:1px solid #d8dee6!important;border-radius:8px!important;page-break-inside:auto}
  .title,.subtitle{color:#111!important}
  .notam{background:#fff!important;box-shadow:none!important;border:1px solid #ccc!important;border-left:4px solid #94a3b8!important;page-break-inside:avoid}
  .notam.high{border-left-color:#ef4444!important}.notam.medium{border-left-color:#f59e0b!important}.notam.low{border-left-color:#64748b!important}
  .notam .sev{color:#111!important}
  .notam-raw{display:block!important;max-height:none!important;white-space:pre-wrap!important;background:#fff!important;border-color:#d8dee6!important;color:#111!important}
  a{color:#111!important;text-decoration:none!important}
}
