.alb-tpa-departures{border:1px solid #d9dee5;border-radius:12px;background:#fff;overflow:hidden;box-sizing:border-box}.alb-tpa-departures *{box-sizing:border-box}.alb-tpa-departures-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-end;padding:14px 16px;background:#f6f8fa}.alb-tpa-departures-heading{display:flex;flex-direction:column}.alb-tpa-departures-heading>strong{font-size:18px}.alb-tpa-departures-heading>span{font-size:12px;color:#667085;margin-top:3px}.alb-tpa-departures-head label{display:flex;flex-direction:column;gap:4px}.alb-tpa-departures-head label>span{font-size:11px;font-weight:700;text-transform:uppercase;color:#667085}.alb-tpa-departures-head select{min-width:220px;min-height:40px;border:1px solid #d9dee5;border-radius:9px;background:#fff;padding:0 10px;font:inherit}.alb-tpa-departures-table{overflow:auto}.alb-tpa-departures-table table{width:100%;border-collapse:collapse;min-width:580px}.alb-tpa-departures-table th,.alb-tpa-departures-table td{padding:11px 14px;text-align:left;border-top:1px solid #edf0f3}.alb-tpa-departures-table th{font-size:11px;text-transform:uppercase;color:#667085}.alb-tpa-departures-table td small{color:#b42318}.alb-tpa-departures-table>p{padding:14px 16px;margin:0}.alb-tpa-dep-line{display:inline-flex;min-width:36px;height:28px;padding:0 7px;align-items:center;justify-content:center;border-radius:7px;background:#f0c600;color:#003578;font-weight:900;font-variant-numeric:tabular-nums}.alb-tpa-dep-line.is-t1{background:#2437ff;color:#fff}

/* Variante institutionnelle TPA — reprend la charte de la page TPA. */
.alb-tpa-departures--tpa{background:#101827;color:#fff;border:1px solid rgba(255,255,255,.08);border-radius:28px;box-shadow:0 20px 45px rgba(0,32,80,.14)}.alb-tpa-departures--tpa .alb-tpa-departures-head{padding:24px 26px;background:linear-gradient(135deg,#0b2e63 0%,#101827 100%);border-bottom:1px solid rgba(255,255,255,.10);align-items:center}.alb-tpa-departures--tpa .alb-tpa-departures-heading>strong{font-size:clamp(1.7rem,3vw,2.5rem);line-height:1;color:#fff;letter-spacing:-.04em}.alb-tpa-departures--tpa .alb-tpa-departures-heading>span[data-tpa-clock]{color:rgba(255,255,255,.62);font-size:.76rem;margin-top:8px;font-variant-numeric:tabular-nums}.alb-tpa-live-kicker{display:inline-flex!important;flex-direction:row!important;align-items:center;gap:8px;color:rgba(255,255,255,.74)!important;font-size:.76rem!important;font-weight:900;text-transform:uppercase;letter-spacing:.08em;margin:0 0 8px!important}.alb-tpa-live-dot{width:9px;height:9px;border-radius:50%;background:#22c55e;box-shadow:0 0 0 rgba(34,197,94,.55);animation:albTpaShortcodePulse 1.5s infinite}@keyframes albTpaShortcodePulse{0%{box-shadow:0 0 0 0 rgba(34,197,94,.55)}70%{box-shadow:0 0 0 9px rgba(34,197,94,0)}100%{box-shadow:0 0 0 0 rgba(34,197,94,0)}}.alb-tpa-departures--tpa .alb-tpa-departures-head label>span{color:rgba(255,255,255,.55)}.alb-tpa-departures--tpa .alb-tpa-departures-head select{background:#fff;color:#152033;border-color:rgba(255,255,255,.18);border-radius:12px;min-height:44px}.alb-tpa-departures--tpa .alb-tpa-departures-table{padding:0 26px 8px;overflow:visible}.alb-tpa-live-list{display:grid}.alb-tpa-live-row{display:grid;grid-template-columns:64px minmax(0,1fr) auto;gap:16px;align-items:center;padding:17px 0;border-bottom:1px solid rgba(255,255,255,.10)}.alb-tpa-live-row:last-child{border-bottom:0}.alb-tpa-live-row .alb-tpa-dep-line{width:58px;height:36px;border-radius:10px;font-size:1.02rem}.alb-tpa-live-destination{min-width:0}.alb-tpa-live-destination strong{display:block;color:#fff;font-size:1.08rem;line-height:1.2}.alb-tpa-live-destination span{display:block;margin-top:4px;color:rgba(255,255,255,.58);font-size:.84rem;font-variant-numeric:tabular-nums}.alb-tpa-live-destination em{display:inline-block;margin-top:3px;color:#ffad9e;font-size:.8rem;font-weight:850;font-style:normal}.alb-tpa-live-time{text-align:right;min-width:104px}.alb-tpa-live-time>div{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px}.alb-tpa-live-time i{width:9px;height:9px;border-radius:50%;background:#f0c600;animation:albTpaDotBlink 1s ease-in-out infinite}.alb-tpa-live-time strong{color:#f0c600;font-size:1.15rem;white-space:nowrap;font-variant-numeric:tabular-nums}.alb-tpa-live-time>span{display:block;margin-top:4px;color:rgba(255,255,255,.56);font-size:.8rem;font-variant-numeric:tabular-nums}.alb-tpa-live-row.is-due .alb-tpa-live-time strong{color:#22c55e}.alb-tpa-live-row.is-due .alb-tpa-live-time i{background:#22c55e}@keyframes albTpaDotBlink{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.25;transform:scale(.85)}}.alb-tpa-departures--tpa .alb-tpa-departures-table>p{color:rgba(255,255,255,.64);padding:20px 0}.alb-tpa-departures-foot{padding:12px 26px 20px;color:rgba(255,255,255,.52);font-size:.82rem;border-top:1px solid rgba(255,255,255,.06)}

/* Variante compacte pour les pages de gare, commune ou aéroport. */
.alb-tpa-departures--compact{border-radius:16px;box-shadow:0 8px 24px rgba(0,32,80,.08)}.alb-tpa-departures--compact .alb-tpa-departures-head{padding:12px 14px;align-items:center}.alb-tpa-departures--compact .alb-tpa-departures-heading>strong{font-size:16px}.alb-tpa-departures--compact .alb-tpa-departures-table{overflow:visible}.alb-tpa-compact-list{display:grid}.alb-tpa-compact-row{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;padding:11px 14px;border-top:1px solid #edf0f3}.alb-tpa-compact-row>div strong{display:block;color:#152033;font-size:13px}.alb-tpa-compact-row>div span{display:block;color:#667085;font-size:11px;margin-top:2px}.alb-tpa-compact-row>b{font-size:12px;color:#003578;white-space:nowrap}

@media(max-width:640px){.alb-tpa-departures-head{align-items:stretch;flex-direction:column}.alb-tpa-departures-head select{width:100%;min-width:0}.alb-tpa-departures--tpa .alb-tpa-departures-head{padding:19px 18px}.alb-tpa-departures--tpa .alb-tpa-departures-table{padding:0 18px 6px}.alb-tpa-live-row{grid-template-columns:56px minmax(0,1fr);gap:10px}.alb-tpa-live-row .alb-tpa-dep-line{width:50px;height:32px}.alb-tpa-live-time{grid-column:2;text-align:left;min-width:0;margin-top:-5px}.alb-tpa-live-time>div{justify-content:flex-start}.alb-tpa-departures-foot{padding:10px 18px 17px}}

.alb-tpa-service-end{padding:22px 16px;text-align:center}.alb-tpa-service-end strong{display:block;font-size:1rem;color:#344054}.alb-tpa-service-end span{display:block;margin-top:5px;color:#667085;font-size:.82rem}.alb-tpa-departures--tpa .alb-tpa-service-end{padding:28px 0 30px}.alb-tpa-departures--tpa .alb-tpa-service-end strong{color:#fff;font-size:1.12rem}.alb-tpa-departures--tpa .alb-tpa-service-end span{color:rgba(255,255,255,.58)}.alb-tpa-departures--compact .alb-tpa-service-end{padding:16px 14px;text-align:left}

/* 0.4.8 — alertes issues de la situation routière. */
.alb-tpa-service-alerts{display:grid;gap:8px;padding:10px 14px;background:#fff8e8;border-top:1px solid #f2dfb3;border-bottom:1px solid #f2dfb3}.alb-tpa-service-alert{display:grid;grid-template-columns:auto minmax(0,1fr);gap:9px;align-items:start;padding:9px 10px;border-radius:10px;background:#fff;border:1px solid #ead7a7;color:#344054}.alb-tpa-service-alert>span{font-size:16px;line-height:1.2}.alb-tpa-service-alert strong{display:block;font-size:12px;color:#7a4d00}.alb-tpa-service-alert p{margin:2px 0 0;font-size:12px;line-height:1.35}.alb-tpa-service-alert small{display:block;margin-top:3px;color:#667085;font-size:10px}.alb-tpa-service-alert.is-danger{border-color:#fecaca;background:#fff5f5}.alb-tpa-service-alert.is-danger strong{color:#991b1b}.alb-tpa-service-alert.is-info{border-color:#bfdbfe;background:#f5f9ff}.alb-tpa-service-alert.is-info strong{color:#1e4f91}.alb-tpa-departures--tpa .alb-tpa-service-alerts{background:#172234;border-color:rgba(255,255,255,.10);padding:11px 26px}.alb-tpa-departures--tpa .alb-tpa-service-alert{background:rgba(255,255,255,.07);border-color:rgba(255,255,255,.12);color:#fff}.alb-tpa-departures--tpa .alb-tpa-service-alert strong{color:#f0c600}.alb-tpa-departures--tpa .alb-tpa-service-alert p{color:rgba(255,255,255,.82)}.alb-tpa-departures--tpa .alb-tpa-service-alert small{color:rgba(255,255,255,.52)}.alb-tpa-departures--tpa .alb-tpa-service-alert.is-danger strong{color:#ff8b8b}.alb-tpa-departures--tpa .alb-tpa-service-alert.is-info strong{color:#9cc7ff}.alb-tpa-departures--compact .alb-tpa-service-alerts{padding:8px 10px}.alb-tpa-departures--compact .alb-tpa-service-alert{padding:7px 8px}
.alb-tpa-service-end.is-suspended strong{color:#b42318}.alb-tpa-departures.is-tpa .alb-tpa-service-end.is-suspended strong{color:#ff9b91}
.alb-tpa-service-alerts[hidden]{display:none!important}
