/* 42 免签落地签材料核对 —— 独立视觉：深色航班信息板 + 琥珀翻牌字 +
   竖向节点时间轴 + 三列打勾卡。与 41 的纸质卡、43 的仪表盘完全不同。 */
.vfp {
    --vfp-deep: #102d2a;
    --vfp-deep2: #183b36;
    --vfp-teal: #0e6d63;
    --vfp-amber: #e0a832;
    --vfp-amber2: #f3d081;
    --vfp-mint: #cfe9dc;
    --vfp-ink: #20302c;
    --vfp-sub: #5e7068;
    --vfp-line: #cfdcd3;
}
:root[data-theme="dark"] .vfp {
    --vfp-deep: #0c1a18;
    --vfp-deep2: #142722;
    --vfp-teal: #61bdab;
    --vfp-amber: #e6b45e;
    --vfp-amber2: #f0d59a;
    --vfp-mint: #1c3a30;
    --vfp-ink: #e5efe9;
    --vfp-sub: #a9bdb1;
    --vfp-line: #2c4238;
}
.vfp { --g5-pri: var(--vfp-teal); --g5-pri2: var(--vfp-deep); --g5-prisoft: var(--vfp-mint); }
:root[data-theme="dark"] .vfp { --g5-pri2: #a7e0cb; }
.vfp .g5-btn-amber { background: var(--vfp-amber); border-color: var(--vfp-amber); color: #15241f; }
:root[data-theme="dark"] .vfp .g5-btn-amber { color: #101715; }
.vfp .g5-btn-main { background: var(--vfp-teal); border-color: var(--vfp-teal); }
:root[data-theme="dark"] .vfp .g5-btn-main { color: #101715; }

.vfp-board {
    background: var(--vfp-deep);
    color: #e9f3ea;
    border: 1px solid var(--vfp-deep2);
    border-radius: 0 0 8px 8px;
    box-shadow: 0 14px 34px rgba(10, 40, 34, .16);
    overflow: hidden;
}
.vfp-board-hd { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 24px; border-bottom: 1px dashed rgba(224, 168, 50, .45); font-family: var(--g5-mono); font-size: 11px; letter-spacing: .14em; }
.vfp-board-no { color: var(--vfp-amber2); }
.vfp-board-main { display: grid; grid-template-columns: .86fr 1.14fr; gap: 0; }
.vfp-board-copy { padding: 26px 26px 28px; border-right: 1px dashed rgba(224, 168, 50, .35); }
.vfp-board h1 { margin: 10px 0 14px; color: var(--vfp-amber2); font-size: 32px; letter-spacing: .01em; }
.vfp-board .g5-lede { color: #d3e4d9; }
.g5.vfp .vfp-board b, .g5.vfp .vfp-board strong { color: var(--vfp-amber2); }
.g5.vfp .vfp-board .g5-kicker { color: var(--vfp-amber2); }
.g5.vfp .vfp-bound b, .g5.vfp .vfp-bound strong { color: var(--vfp-amber2); }
.vfp-bound { margin-top: 14px; font-size: 12.5px; color: #a8c2b4; border-left: 3px solid var(--vfp-amber); padding-left: 10px; }
.vfp-board-form { padding: 24px 26px 20px; }
.vfp-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.vfp-fields label { display: block; font-size: 11.5px; font-weight: 700; letter-spacing: .03em; color: #b5cec1; }
.vfp-fields input, .vfp-fields select {
    display: block; width: 100%; margin-top: 4px; padding: 7px 9px;
    border: 1px solid rgba(207, 233, 220, .28); background: var(--vfp-deep2); color: #f0f7f1;
    font-size: 13px; line-height: 1.6;
}
.vfp-fields input:focus, .vfp-fields select:focus { border-color: var(--vfp-amber); outline: none; }
.vfp-board-form .g5-btn { background: transparent; color: #dceee1; border-color: rgba(207, 233, 220, .4); }
.vfp-board-form .g5-btn:hover { color: var(--vfp-amber2); border-color: var(--vfp-amber2); }
.vfp-board-form .g5-btn-amber { background: var(--vfp-amber); border-color: var(--vfp-amber); color: #15241f; }
.vfp-board-ft { padding: 10px 24px; border-top: 1px dashed rgba(224, 168, 50, .35); font-size: 11.5px; color: #9fbcab; letter-spacing: .02em; }

.vfp-sec { margin-top: 32px; }
.vfp-sec-hd { display: flex; align-items: baseline; gap: 14px; flex-wrap: wrap; margin-bottom: 16px; }
.vfp-sec-hd h2 { color: var(--vfp-teal); }
.vfp-sec-hd i { display: inline-grid; place-items: center; width: 26px; height: 26px; margin-right: 10px; border-radius: 50%; background: var(--vfp-teal); color: #fff; font-family: var(--g5-mono); font-style: normal; font-size: 11px; }
:root[data-theme="dark"] .vfp-sec-hd i { color: #101715; }
.vfp-sec-hd span { font-size: 12px; color: var(--g5-muted); }

/* 竖向时间轴：三节点 */
.vfp-timeline { display: grid; grid-template-columns: repeat(3, 1fr); position: relative; margin: 0 0 18px; padding: 0 6px; }
.vfp-timeline::before { content: ''; position: absolute; left: 8%; right: 8%; top: 18px; height: 2px; background: var(--vfp-line); }
.vfp-node { position: relative; text-align: center; padding-top: 0; }
.vfp-node-dot { width: 36px; height: 36px; margin: 0 auto 8px; border-radius: 50%; border: 2px solid var(--vfp-line); background: var(--g5-card); display: grid; place-items: center; font-family: var(--g5-mono); font-size: 12px; font-weight: 700; color: var(--vfp-sub); position: relative; z-index: 1; }
.vfp-node.is-done .vfp-node-dot { border-color: var(--vfp-teal); background: var(--vfp-teal); color: #fff; }
.vfp-node.is-part .vfp-node-dot { border-color: var(--vfp-amber); color: var(--vfp-amber); }
:root[data-theme="dark"] .vfp-node.is-done .vfp-node-dot { color: #101715; }
.vfp-node b { display: block; font-size: 13.5px; color: var(--vfp-ink); }
.vfp-node small { display: block; font-size: 11px; color: var(--g5-muted); }

.vfp-cols { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px; }
.vfp-col { background: var(--g5-card); border: 1px solid var(--g5-line); border-top: 4px solid var(--vfp-teal); padding: 14px 16px 16px; }
.vfp-col:nth-child(2) { border-top-color: var(--vfp-amber); }
.vfp-col:nth-child(3) { border-top-color: var(--g5-muted); }
.vfp-col h3 { color: var(--vfp-teal); font-size: 15px; margin-bottom: 4px; }
.vfp-col .vfp-col-sub { font-size: 11.5px; color: var(--g5-muted); margin-bottom: 12px; }
.vfp-item { display: flex; align-items: flex-start; gap: 8px; padding: 7px 0; border-bottom: 1px dashed var(--g5-line); font-size: 13px; line-height: 1.65; }
.vfp-item:last-child { border-bottom: 0; }
.vfp-item input { margin: 4px 0 0; width: 15px; height: 15px; accent-color: var(--vfp-teal); flex: none; }
.vfp-item span { color: var(--g5-ink2); }
.vfp-item.is-on span { color: var(--vfp-ink); font-weight: 650; }
.vfp-item em { font-style: normal; font-size: 10.5px; color: var(--vfp-amber); border: 1px solid var(--vfp-amber); padding: 0 4px; margin-left: 4px; }
.vfp-item.is-cond { background: linear-gradient(90deg, rgba(224, 168, 50, .08), transparent); }

.vfp-kpis { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-bottom: 16px; }
.vfp-kpi { background: var(--vfp-deep2); color: #e8f4ea; padding: 12px 14px; border-left: 3px solid var(--vfp-amber); }
:root[data-theme="dark"] .vfp-kpi { border: 1px solid var(--vfp-line); }
.vfp-kpi .k { display: block; font-size: 11px; letter-spacing: .08em; color: #a9c6b6; }
.vfp-kpi .v { display: block; font-family: var(--g5-mono); font-size: 23px; font-weight: 700; color: var(--vfp-amber2); line-height: 1.45; }
.vfp-kpi .s { display: block; font-size: 11px; color: #a9c6b6; }
.vfp-two { display: grid; grid-template-columns: 1.15fr .85fr; gap: 14px; margin-bottom: 14px; }
.vfp-panel { background: var(--g5-card); border: 1px solid var(--g5-line); padding: 16px 18px; margin-bottom: 14px; }
.vfp-panel h3 { color: var(--vfp-teal); margin-bottom: 12px; }
.vfp-checks { display: grid; gap: 8px; font-size: 13px; }
.vfp-check { padding: 8px 10px; border-left: 3px solid var(--vfp-teal); background: var(--g5-card2); line-height: 1.75; }
.vfp-check.is-warn { border-left-color: var(--vfp-amber); }
.vfp-check.is-bad { border-left-color: var(--g5-bad); }
.vfp-text { margin: 0; padding: 14px 16px; background: var(--g5-card2); border: 1px dashed var(--g5-line2); font-family: var(--g5-mono); font-size: 12.5px; line-height: 1.95; white-space: pre-wrap; word-break: break-word; }
.vfp-ai { margin-top: 18px; padding: 16px 18px; border: 1px dashed var(--vfp-amber); background: var(--g5-card); }
.vfp-ai-hd { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; align-items: baseline; }
.vfp-ai-hd h3 { color: var(--vfp-teal); }
.vfp-ai-hd span { font-size: 11.5px; color: var(--g5-muted); }
.vfp-clean { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 12px 0; padding: 10px; background: var(--g5-card2); border: 1px dashed var(--g5-line2); font-size: 12px; }
.vfp-clean b { margin-right: 4px; }
.vfp-clean code { display: block; width: 100%; margin-top: 4px; white-space: pre-wrap; word-break: break-all; color: var(--g5-ink2); }
.vfp textarea { width: 100%; padding: 10px 12px; border: 1px solid var(--g5-line); background: var(--g5-card); color: var(--g5-ink); font-family: var(--g5-mono); font-size: 12.5px; line-height: 1.8; resize: vertical; }
.vfp-read { margin-top: 38px; padding: 20px 22px; background: var(--g5-card); border-top: 3px solid var(--vfp-amber); }
.vfp-read h2 { color: var(--vfp-teal); margin-bottom: 12px; }
.vfp-read p { font-size: 13.5px; line-height: 1.95; color: var(--g5-ink2); max-width: 88ch; }

@media (max-width: 900px) {
    .vfp-board-main, .vfp-cols, .vfp-two { grid-template-columns: 1fr; }
    .vfp-board-copy { border-right: 0; border-bottom: 1px dashed rgba(224, 168, 50, .35); }
    .vfp-timeline::before { display: none; }
    .vfp-timeline { gap: 8px; }
    .vfp-kpis { grid-template-columns: repeat(2, 1fr); }
    .vfp-fields { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) { .vfp-fields { grid-template-columns: 1fr; } .vfp-timeline { grid-template-columns: 1fr; } }
