/* Boîte à outils du voyage (js/tools-voyage.js). Jetons de app.css uniquement. */
.tv-panel{display:block}
.tv-card .field:first-of-type{margin-top:8px}
.tv-card input[type=text],.tv-card input[type=date],.tv-card select,.tv-addrow input{width:100%;min-height:44px;padding:0 12px;border-radius:12px;border:1px solid var(--line);background:var(--card2);color:var(--tx);font:inherit}
.tv-dates{display:grid;grid-template-columns:1fr 1fr;gap:0 12px}
.tv-form .btn{margin-top:4px}
.tv-scope{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 10px}
.tv-prog{font-weight:800;color:var(--acc2);margin:4px 2px 0;font-variant-numeric:tabular-nums}
.tv-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(6.5rem,1fr));gap:8px;margin:6px 0}
.tv-kpi{background:var(--card2);border:1px solid var(--line2);border-radius:var(--r2);padding:10px 12px}
.tv-kpi span{display:block;font-size:.78rem;color:var(--tx3);font-weight:700}
.tv-kpi strong{font-family:var(--fd);font-size:1.2rem;font-variant-numeric:tabular-nums}
.tv-kpi.ok strong{color:var(--ok)}
.tv-kpi.bad strong{color:var(--danger)}
.tv-bars,.tv-items,.tv-checks,.tv-evs,.tv-fxl,.tv-sos{list-style:none;margin:8px 0;padding:0}
.tv-bars li{display:grid;grid-template-columns:7rem 1fr auto;gap:10px;align-items:center;padding:6px 0;font-size:.9rem}
.tv-bn{color:var(--tx2);font-weight:600}
.tv-bar{display:flex;height:10px;background:var(--card2);border-radius:999px;overflow:hidden}
.tv-bar i{display:block;height:100%}
.tv-bar .tv-s{background:var(--acc)}
.tv-bar .tv-p{background:var(--acc);opacity:.4}
.tv-item{display:grid;grid-template-columns:1fr auto;gap:6px 10px;align-items:center;padding:10px 0;border-top:1px solid var(--line2)}
.tv-item .tv-it small{display:block;color:var(--tx3);font-size:.78rem}
.tv-item .tv-amt{font-weight:800;font-variant-numeric:tabular-nums;text-align:right}
.tv-item.planned .tv-amt{color:var(--tx2)}
.tv-item .btn{min-height:44px}
.tv-reset{margin-top:10px}
.tv-foot{margin-top:12px}
.tv-check{display:flex;gap:10px;align-items:flex-start;padding:4px 0;min-height:44px}
.tv-check input{width:22px;height:22px;margin:10px 0 0;flex:none}
.tv-check label{flex:1;padding:8px 0;cursor:pointer;font-size:.92rem}
.tv-check label small{display:block;color:var(--tx3);font-size:.78rem}
.tv-check input:checked+label span,.tv-check input:checked+label a{text-decoration:line-through;color:var(--tx3)}
.tv-check .btn{min-width:44px;padding:0}
.tv-addrow{display:flex;gap:8px;margin-top:10px}
.tv-addrow input{flex:1}
.tv-month{margin-top:18px}
.tv-ev{padding:12px 0;border-top:1px solid var(--line2)}
.tv-ev p{margin:4px 0 0;color:var(--tx2);font-size:.88rem}
.tv-evh{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-bottom:4px;font-size:.8rem;color:var(--tx3);font-weight:700}
.tv-evh em{font-style:normal;color:var(--tx3);border:1px dashed var(--line);border-radius:999px;padding:0 8px}
.tv-tag{font-size:.7rem;letter-spacing:.04em;text-transform:uppercase;font-weight:800;border-radius:999px;padding:2px 9px;background:var(--card2);color:var(--acc2);border:1px solid var(--line2)}
.tv-tag.closure{color:var(--danger)}
.tv-tag.ok{color:var(--ok)}
.tv-evs{background:var(--card);border:1px solid var(--line2);border-radius:var(--r);padding:2px 16px}
.tv-evs .tv-ev:first-child{border-top:0}
.tv-fxl li{display:flex;justify-content:space-between;padding:8px 0;border-top:1px solid var(--line2);font-variant-numeric:tabular-nums}
.tv-bul{margin:8px 0;padding-left:1.2rem;color:var(--tx2);font-size:.9rem}
.tv-bul li{margin:6px 0}
.tv-res{display:grid;gap:10px;margin-top:14px}
.tv-opt{background:var(--card2);border:1px solid var(--line2);border-radius:var(--r2);padding:14px}
.tv-opt.best{border-color:var(--acc)}
.tv-opth{display:flex;justify-content:space-between;gap:8px;align-items:center}
.tv-price{font-family:var(--fd);font-size:1.4rem;margin:6px 0 2px}
.tv-price small{display:block;font-family:var(--ff);font-size:.78rem;color:var(--tx3)}
.tv-opt p{margin:6px 0 0;color:var(--tx2);font-size:.85rem}
.tv-opt .tv-x{color:var(--acc2);font-weight:700}
.tv-sos{display:grid;gap:8px}
.tv-call{display:flex;align-items:center;gap:14px;min-height:56px;padding:10px 14px;border-radius:var(--r2);background:var(--card2);border:1px solid var(--line2);color:var(--tx)}
.tv-call strong{font-family:var(--fd);font-size:1.35rem;min-width:4.6rem;color:var(--acc2);font-variant-numeric:tabular-nums}
.tv-call span{font-size:.88rem;color:var(--tx2)}
.tv-call.main{border-color:var(--acc)}
.tv-call:active{transform:scale(.985)}
@media (max-width:380px){.tv-bars li{grid-template-columns:5.5rem 1fr auto}.tv-dates{grid-template-columns:1fr}}
