.eptvc-routes { margin-block: 2rem; }
.eptvc-routes__intro { max-width: 48rem; }
.eptvc-routes__intro h2 { font-family: Manrope, sans-serif; font-size: clamp(1.7rem, 3vw, 2.5rem); margin: .2rem 0 .5rem; }
.eptvc-routes__intro p { color: var(--eptvc-muted); }
.eptvc-routes__filters { display: grid; gap: 1rem; grid-template-columns: repeat(2, minmax(0, 1fr)); margin: 1.5rem 0; max-width: 48rem; }
.eptvc-routes__filters label { color: var(--eptvc-ink); display: grid; font-weight: 800; gap: .35rem; }
.eptvc-routes__filters input, .eptvc-routes__filters select { background: #fff; border: 1px solid #d8dfe8; border-radius: .45rem; font: inherit; padding: .75rem .85rem; }
.eptvc-routes__grid { display: grid; gap: 1.2rem; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.eptvc-route-card { background: #fff; border: 1px solid var(--eptvc-line); border-radius: 1rem; box-shadow: 0 .6rem 1.6rem rgba(30, 45, 64, .05); padding: 1.25rem; }
.eptvc-route-card__top { align-items: center; display: flex; gap: .5rem; justify-content: space-between; }
.eptvc-route-card__status, .eptvc-route-card__type { border-radius: 999px; font-size: .78rem; font-weight: 800; padding: .27rem .6rem; }
.eptvc-route-card__status--activo { background: #edf8f0; color: #18733a; }
.eptvc-route-card__status--temporal { background: #fff3e8; color: #b74d00; }
.eptvc-route-card__status--suspendido { background: #fff0ef; color: #b82d2b; }
.eptvc-route-card__type { background: #edf1f7; color: var(--eptvc-ink); }
.eptvc-route-card h3 { font-family: Manrope, sans-serif; font-size: 1.2rem; margin: 1rem 0 .7rem; }
.eptvc-route-card p { color: var(--eptvc-muted); font-size: .95rem; line-height: 1.55; }
.eptvc-route-card__journey { align-items: center; color: var(--eptvc-ink) !important; display: flex; gap: .45rem; }
.eptvc-route-card__alert { background: #fff6ee; border-left: .25rem solid var(--eptvc-orange); border-radius: .3rem; padding: .65rem .75rem; }
.eptvc-route-card .eptvc-button { display: inline-block; margin-top: .35rem; text-decoration: none; }
@media (max-width: 68rem) { .eptvc-routes__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 52rem) { .eptvc-routes__grid, .eptvc-routes__filters { grid-template-columns: 1fr; } }
.eptvc-routes__empty { background: linear-gradient(135deg, #fff7f0, #fff); border: 1px dashed #f0a05e; border-radius: 1rem; color: var(--eptvc-ink); grid-column: 1 / -1; padding: 1.5rem; text-align: center; }
.eptvc-routes__empty p { color: var(--eptvc-muted); margin: .55rem auto 0; max-width: 48rem; }
