/* ====== 61 探亲假 · 青瓷绿（车票票据感）====== */
.fvl {
    --fvl-bg:#f2f7f4; --fvl-bg2:#e5efe8; --fvl-card:#fff; --fvl-card2:#f7fbf8;
    --fvl-ink:#12241c; --fvl-sub:#2f4a3d; --fvl-faint:#6b8478; --fvl-line:#cfe0d6; --fvl-line2:#e3efe8;
    --fvl-green:#2f7a62; --fvl-green-2:#4a9a80; --fvl-green-soft:#e0f0e9; --fvl-deep:#1b5544;
    --fvl-stamp:#c0563a; --fvl-warn:#b8791a;
    --fvl-shadow:0 1px 2px rgba(18,36,28,.04),0 10px 28px rgba(18,36,28,.06);
    --fvl-r:18px; --fvl-r-sm:12px;
    background:radial-gradient(700px 320px at 88% -8%, rgba(47,122,98,.12), transparent 62%),
               radial-gradient(560px 300px at 0% 6%, rgba(74,154,128,.07), transparent 58%),
               var(--fvl-bg);
}
:root[data-theme="dark"] .fvl {
    --fvl-bg:#0b1712; --fvl-bg2:#101f18; --fvl-card:#142419; --fvl-card2:#1a2d22;
    --fvl-ink:#e6f2ec; --fvl-sub:#a9c2b6; --fvl-faint:#5f7a6d; --fvl-line:#22392d; --fvl-line2:#1a2b21;
    --fvl-green:#4a9a80; --fvl-green-soft:rgba(74,154,128,.14); --fvl-deep:#8fd0b8;
    --fvl-stamp:#e0795a;
}

.fvl-hero { display:grid; grid-template-columns:minmax(0,1fr) 372px; gap:32px; padding:32px 0 22px; align-items:start; }
@media (max-width:980px) { .fvl-hero { grid-template-columns:1fr; } }
.fvl-hero-l .tsk-h1 b { color:var(--fvl-deep); }

.fvl-ticket {
    position:relative; background:var(--fvl-card); border:1px solid var(--fvl-line);
    border-radius:var(--fvl-r); box-shadow:var(--fvl-shadow); padding:20px 22px 22px; overflow:hidden;
}
.fvl-ticket::before {
    content:""; position:absolute; left:0; right:0; top:0; height:5px;
    background:repeating-linear-gradient(90deg, var(--fvl-green) 0 14px, var(--fvl-green-2) 14px 28px);
}
.fvl-ticket::after {
    content:""; position:absolute; left:-9px; top:58%; width:18px; height:18px; border-radius:50%;
    background:var(--fvl-bg);
}
.fvl-ticket-head {
    display:flex; align-items:center; justify-content:space-between; padding:8px 0 12px;
    border-bottom:1px dashed var(--fvl-line); margin-bottom:6px;
}
.fvl-ticket-head span { font:800 13px/1 var(--num,"Bahnschrift",sans-serif); letter-spacing:.14em; color:var(--fvl-deep); }
.fvl-ticket-head em { font-style:normal; font-size:9.5px; letter-spacing:.22em; color:var(--fvl-faint); }
.fvl-ticket label { display:block; font-size:11.5px; font-weight:700; color:var(--fvl-faint); margin-top:10px; letter-spacing:.02em; }
.fvl-ticket label:first-of-type { margin-top:12px; }
.fvl-ticket select, .fvl-ticket input {
    width:100%; height:36px; margin-top:4px; padding:0 10px; border:1.5px solid var(--fvl-line);
    border-radius:9px; background:var(--fvl-card2); color:var(--fvl-ink); font-size:13px; font-weight:600; outline:none;
}
.fvl-ticket input { font-family:var(--num,"Bahnschrift",monospace); text-align:right; }
.fvl-ticket select:focus, .fvl-ticket input:focus { border-color:var(--fvl-green); }

/* 结果 */
.fvl-result { margin-top:6px; }
.fvl-res-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:12px; }
.fvl-res-card {
    background:var(--fvl-card); border:1px solid var(--fvl-line); border-radius:var(--fvl-r-sm);
    padding:16px 18px; box-shadow:var(--fvl-shadow); text-align:center;
}
.fvl-res-card b { display:block; font:800 34px/1 var(--num,"Bahnschrift",monospace); color:var(--fvl-deep); font-variant-numeric:tabular-nums; }
.fvl-res-card span { display:block; font-size:11.5px; color:var(--fvl-faint); margin-top:6px; font-weight:700; }
.fvl-res-card i { display:block; font-style:normal; font-size:10.5px; color:var(--fvl-faint); margin-top:5px; }
.fvl-res-card.fvl-main { border-top:3px solid var(--fvl-green); }
.fvl-res-card.fvl-main b { font-size:44px; }

.fvl-alert {
    margin-top:12px; padding:12px 16px; border-radius:var(--fvl-r-sm); font-size:12.5px; line-height:1.75;
    background:var(--fvl-green-soft); color:var(--fvl-deep); border-left:3px solid var(--fvl-green);
}
.fvl-alert.is-warn { background:#fdf2e0; color:#8a5a12; border-left-color:var(--fvl-warn); }
.fvl-verdict {
    margin-top:10px; padding:14px 16px; border-radius:var(--fvl-r-sm); background:var(--fvl-card);
    border:1px solid var(--fvl-line); font-size:12.5px; line-height:1.85; color:var(--fvl-sub);
}

/* 规则对照 */
.fvl-rules { display:grid; grid-template-columns:repeat(auto-fit,minmax(280px,1fr)); gap:14px; }
.fvl-rule {
    background:var(--fvl-card); border:1px solid var(--fvl-line); border-radius:var(--fvl-r-sm);
    box-shadow:var(--fvl-shadow); padding:16px 18px; position:relative;
}
.fvl-rule header { display:flex; align-items:center; gap:8px; }
.fvl-ri { font-size:18px; }
.fvl-rule header b { font-size:13px; font-weight:800; color:var(--fvl-ink); }
.fvl-rule-days {
    font:800 30px/1 var(--num,"Bahnschrift",monospace); color:var(--fvl-deep); margin:10px 0 8px;
}
.fvl-rule-days small { font-size:11px; font-weight:700; color:var(--fvl-faint); margin-left:4px; letter-spacing:.02em; }
.fvl-rule p { font-size:11.5px; line-height:1.7; color:var(--fvl-sub); margin:0; }
.fvl-rule-fare { display:flex; gap:8px; margin-top:10px; padding-top:10px; border-top:1px dashed var(--fvl-line2); font-size:11px; line-height:1.65; }
.fvl-rule-fare span { flex:none; font-weight:800; color:var(--fvl-stamp); }
.fvl-rule-fare i { font-style:normal; color:var(--fvl-sub); }
.fvl-rule-spouse { border-top:3px solid #5b8dd6; }
.fvl-rule-unmarried { border-top:3px solid var(--fvl-green); }
.fvl-rule-married { border-top:3px solid var(--fvl-stamp); }

/* 表格 */
.fvl-table { width:100%; border-collapse:collapse; background:var(--fvl-card); border:1px solid var(--fvl-line); border-radius:var(--fvl-r-sm); overflow:hidden; }
.fvl-table th { width:130px; text-align:left; font-size:12px; font-weight:800; color:var(--fvl-deep); background:var(--fvl-card2); padding:12px 16px; border-bottom:1px solid var(--fvl-line2); vertical-align:top; }
.fvl-table td { font-size:12px; line-height:1.72; color:var(--fvl-sub); padding:12px 16px; border-bottom:1px solid var(--fvl-line2); }
.fvl-table tr:last-child th, .fvl-table tr:last-child td { border-bottom:0; }

/* 路程假 */
.fvl-road { display:grid; gap:8px; }
.fvl-road-row {
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    background:var(--fvl-card); border:1px solid var(--fvl-line); border-radius:10px; padding:12px 16px;
}
.fvl-road-row b { font-size:12.5px; font-weight:700; color:var(--fvl-ink); }
.fvl-road-row span { font-size:12px; font-weight:700; color:var(--fvl-green); flex:none; }

/* 列表 */
.fvl-list { list-style:none; padding:0; margin:0; display:grid; gap:8px; }
.fvl-list li {
    position:relative; padding:11px 16px 11px 36px; background:var(--fvl-card); border:1px solid var(--fvl-line);
    border-radius:10px; font-size:12.5px; line-height:1.7; color:var(--fvl-sub);
}
.fvl-list li::before {
    content:"✓"; position:absolute; left:14px; top:11px; font-size:12px; font-weight:800; color:var(--fvl-green);
}
.fvl-list-warn li::before { content:"!"; color:var(--fvl-warn); }

/* 票价标准 */
.fvl-fare-standard { margin-top:14px; display:grid; gap:6px; }
.fvl-fs-row { display:flex; gap:12px; align-items:baseline; font-size:12px; padding:9px 14px; background:var(--fvl-card2); border-radius:8px; }
.fvl-fs-row b { flex:none; min-width:70px; font-weight:800; color:var(--fvl-deep); }
.fvl-fs-row span { color:var(--fvl-sub); line-height:1.6; }

/* 流程 */
.fvl-steps { list-style:none; padding:0; margin:0; display:grid; gap:10px; }
.fvl-steps li {
    display:grid; grid-template-columns:46px 1fr; grid-template-rows:auto auto; column-gap:12px; row-gap:3px;
    background:var(--fvl-card); border:1px solid var(--fvl-line); border-radius:var(--fvl-r-sm); padding:14px 16px;
}
.fvl-steps-no { grid-row:1 / span 2; font:800 26px/1 var(--num,"Bahnschrift",monospace); color:var(--fvl-green-soft); align-self:center; }
.fvl-steps li b { font-size:13px; font-weight:800; color:var(--fvl-ink); }
.fvl-steps li p { font-size:11.5px; line-height:1.65; color:var(--fvl-sub); margin:0; }

@media (max-width:560px) {
    .fvl-res-card.fvl-main b { font-size:36px; }
    .fvl-table th { width:96px; padding:10px 12px; }
    .fvl-table td { padding:10px 12px; }
}
