:root{--myv-blue:#2f7df6;--myv-ink:#06112f;--myv-muted:rgba(6,17,47,.56);--myv-green:#14a36d;--myv-orange:#f59e0b}

/* La ligne Mon véhicule gagne 35 %, la ligne des deux PDF rend exactement cet espace. */
.app{grid-template-rows:var(--planning-row-height,2fr) minmax(128px,1.35fr) minmax(210px,2.65fr)!important}
.traffic-widget{cursor:pointer!important;padding:10px 12px!important;overflow:hidden!important}
.traffic-widget:focus-visible{outline:3px solid rgba(47,125,246,.35);outline-offset:2px}
.traffic-home{display:block!important;width:100%!important;height:100%!important;padding:0!important;overflow:hidden!important}
.traffic-home-empty{height:100%!important;min-height:0!important;padding:12px!important;flex-direction:column!important;gap:4px!important;font-size:18px!important;text-align:center!important}
.myv-empty-title{color:var(--myv-ink);font-weight:1000;letter-spacing:-.045em}
.myv-empty-detail{max-width:580px;color:var(--myv-muted);font-size:12px;font-weight:760;letter-spacing:-.02em;line-height:1.25}

.myv-card{height:100%;min-height:0;display:grid;grid-template-rows:auto auto 1fr;gap:7px;padding:9px 12px;border:1px solid rgba(47,125,246,.16);border-radius:25px;background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(245,249,255,.68));box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 10px 25px rgba(45,70,120,.065);transition:border-color .28s ease,background .28s ease}
.myv-card.myv-terminus{border-color:rgba(20,163,109,.25);background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(235,253,246,.68))}
.myv-top{display:flex;align-items:center;gap:8px;min-width:0}
.myv-pill{display:inline-flex;align-items:center;gap:6px;min-width:0;padding:5px 10px 6px;border-radius:999px;background:linear-gradient(180deg,#438cff,#2f7df6);color:#fff;font-size:13px;font-weight:1000;letter-spacing:-.035em;box-shadow:0 6px 14px rgba(47,125,246,.22)}
.myv-pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.myv-delay{margin-left:auto;flex:0 0 auto;padding:4px 9px 5px;border-radius:999px;background:rgba(20,163,109,.11);color:#08734c;border:1px solid rgba(20,163,109,.13);font-size:11px;font-weight:1000;font-variant-numeric:tabular-nums}
.myv-delay.late{background:rgba(245,158,11,.12);color:#a65a00;border-color:rgba(245,158,11,.18)}
.myv-delay.early{background:rgba(47,125,246,.10);color:#1d63c7;border-color:rgba(47,125,246,.14)}
.myv-main{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:3px;min-width:0}
.myv-direction{min-width:0;color:var(--myv-ink);font-size:17px;font-weight:1000;letter-spacing:-.05em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.myv-state{justify-self:start;max-width:100%;padding:4px 9px 5px;border-radius:999px;background:rgba(47,125,246,.08);color:#245caa;font-size:10.5px;font-weight:950;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.myv-state.proximity{background:rgba(20,163,109,.12);color:#08734c}
.myv-state.waiting{background:rgba(245,158,11,.12);color:#a65a00}

.myv-progress{position:relative;min-height:43px;margin:0 11px;padding-top:8px}
.myv-rail,.myv-rail-done{position:absolute;top:17px;left:0;height:7px;border-radius:999px}
.myv-rail{right:0;background:rgba(47,125,246,.11)}
.myv-rail-done{width:var(--myv-progress,0%);background:linear-gradient(90deg,#2f7df6,#70b2ff);transition:width .55s cubic-bezier(.2,.8,.2,1)}
.myv-bus{position:absolute;z-index:2;top:3px;left:var(--myv-progress,0%);font-size:22px;line-height:1;transform:translateX(-50%);filter:drop-shadow(0 5px 7px rgba(47,125,246,.24));transition:left .55s cubic-bezier(.2,.8,.2,1)}
.myv-stop{position:absolute;z-index:1;top:14px;left:var(--stop-x);width:10px;height:10px;border-radius:50%;transform:translateX(-50%);background:#fff;border:2px solid rgba(47,125,246,.38)}
.myv-stop.past{background:#2f7df6;border-color:#2f7df6}.myv-stop.active{width:13px;height:13px;top:12px;background:#fff;border:4px solid #2f7df6;box-shadow:0 0 0 4px rgba(47,125,246,.09)}
.myv-stop-name{position:absolute;top:29px;left:var(--stop-x);max-width:30%;transform:translateX(-50%);color:var(--myv-muted);font-size:9px;font-weight:850;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.myv-stop-name.first{transform:none}.myv-stop-name.last{transform:translateX(-100%)}

.traffic-modal{align-items:center!important;justify-content:center!important}
.traffic-sheet.myv-sheet{max-width:880px!important;padding:13px!important}
.myv-sheet .traffic-modal-title{margin-left:108px!important;margin-right:18px!important;font-size:19px!important;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important}
.traffic-modal-list.myv-detail{display:grid!important;grid-template-rows:auto minmax(0,1fr);gap:12px!important;padding:12px!important;overflow:hidden!important}
.myv-detail-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;padding:14px 15px;border-radius:21px;background:#fff;border:1px solid rgba(155,170,205,.18);box-shadow:0 8px 24px rgba(15,23,42,.06)}
.myv-detail-vehicle{font-size:20px;font-weight:1000;letter-spacing:-.05em;color:var(--myv-ink)}
.myv-detail-direction{margin-top:3px;color:var(--myv-muted);font-size:13px;font-weight:850}
.myv-detail-status{align-self:center;padding:6px 10px;border-radius:999px;background:rgba(47,125,246,.09);color:#245caa;font-size:11px;font-weight:1000;white-space:nowrap}
.myv-stops{min-height:0;overflow:auto;-webkit-overflow-scrolling:touch;padding:2px 2px 12px 22px}
.myv-stop-row{position:relative;display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:9px;align-items:center;min-height:47px;padding:8px 10px 8px 20px;border-bottom:1px solid rgba(155,170,205,.14)}
.myv-stop-row::before{content:"";position:absolute;left:3px;top:0;bottom:0;width:3px;background:rgba(47,125,246,.13)}
.myv-stop-row::after{content:"";position:absolute;left:-1px;top:18px;width:8px;height:8px;border-radius:50%;background:#fff;border:3px solid rgba(47,125,246,.45)}
.myv-stop-row.past{opacity:.55}.myv-stop-row.active{background:rgba(47,125,246,.055);border-radius:14px;opacity:1}.myv-stop-row.active::after{background:#2f7df6;border-color:#2f7df6;box-shadow:0 0 0 4px rgba(47,125,246,.10)}
.myv-stop-row:last-child::before{bottom:50%}.myv-stop-row:first-child::before{top:50%}
.myv-stop-label{color:var(--myv-ink);font-size:13px;font-weight:900;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.myv-stop-badge{margin-top:2px;color:#2f7df6;font-size:10px;font-weight:950}
.myv-stop-time{color:var(--myv-muted);font-size:11px;font-weight:850;font-variant-numeric:tabular-nums;white-space:nowrap}
.myv-stop-delta{min-width:43px;text-align:right;color:#a65a00;font-size:10px;font-weight:950;white-space:nowrap}
.myv-location-note{padding:14px;color:var(--myv-muted);text-align:center;font-size:12px;font-weight:800}

@media(max-width:600px){
  .traffic-widget{padding:8px 9px!important}
  .myv-card{padding:8px 10px;gap:5px;border-radius:22px}
  .myv-pill{font-size:12px;padding:4px 8px 5px}.myv-delay{font-size:10px;padding:3px 7px 4px}
  .myv-direction{font-size:15px}.myv-state{font-size:9.5px;max-width:42vw}
  .myv-progress{margin:0 8px;min-height:40px}.myv-stop-name{font-size:8px;top:28px}
  .myv-sheet .traffic-modal-title{margin-left:104px!important;margin-right:6px!important;font-size:16px!important;justify-content:flex-start!important}
  .traffic-modal-list.myv-detail{padding:8px!important}.myv-detail-summary{grid-template-columns:1fr;padding:12px}.myv-detail-status{justify-self:start;max-width:100%;white-space:normal}.myv-detail-vehicle{font-size:18px}.myv-detail-direction{font-size:12px}
  .myv-stop-row{grid-template-columns:minmax(0,1fr) auto;gap:5px}.myv-stop-delta{grid-column:2}
}
@media(max-width:350px){.myv-state{display:none}.myv-direction{font-size:14px}.myv-stop-name{display:none}}
@media(prefers-reduced-motion:reduce){.myv-rail-done,.myv-bus{transition:none}}
