.ett-public { box-sizing: border-box; font-family: system-ui, sans-serif; line-height: 1.25; }
.ett-public *, .ett-public *::before, .ett-public *::after { box-sizing: inherit; }
.ett-public [hidden] { display: none !important; }
.ett-public .ett-board { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
.ett-public .ett-both { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.ett-public table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.ett-public th, .ett-public td { padding: .5em .35em; border-bottom: 1px solid #627080; vertical-align: middle; text-align: left; overflow-wrap: anywhere; }
.ett-public th:first-child { width: 56%; }
.ett-public th:nth-child(2) { width: 23%; }
.ett-public th:last-child { width: 21%; }
.ett-public td span, .ett-public td small { display: block; }
.ett-public td small { font-size: .63em; line-height: 1.25; }
.ett-public td span { font-size: .7em; }
.ett-public .ett-planned { font-variant-numeric: tabular-nums; font-size: 1.15em; }
.ett-public .ett-important { color: #ffdd75; font-weight: 700; }
.ett-tv { position: relative; display: flex; flex-direction: column; background: #0b1421; color: #fff; width: 100%; height: 56.25vw; padding: 1.2vw; font-size: clamp(16px, 1.65vw, 40px); overflow: hidden; }
.ett-tv > header, .ett-tv > p, .ett-tv > button { flex-shrink: 0; }
.ett-tv .ett-board { flex: 1; min-height: 0; grid-template-rows: minmax(0, 1fr); }
.ett-tv .ett-list { min-height: 0; overflow: hidden; }
.ett-tv header { display: flex; justify-content: space-between; gap: 1rem; align-items: center; }
/* Scoped specificity beats theme th rules; compensate smaller type to retain header geometry. */
.ett-public.ett-tv .ett-board .ett-list table thead th {
 color: #d6e0eb; background: #22354c; font-size: .85em; font-weight: 500;
 line-height: 1.4705882353; padding: .5882352941em .4117647059em; border-bottom: 1px solid #627080;
}
.ett-tv td strong { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ett-tv h1 { color: #fff; font-size: 1.25em; margin: 0; }
.ett-tv time { text-align: right; font-variant-numeric: tabular-nums; }
.ett-tv [data-status] { font-size: .6em; margin: .5em 0; min-height: 1.25em; }
.ett-public .ett-list h2 { color: #fff; padding: .4em .6em; margin: 0; font-size: 1.4em; }
.ett-public .ett-arribos h2 { background: #074b9e; }
.ett-public .ett-salidas h2 { background: #10652e; }
/* Natural title width sets the upper step after the word. Both surfaces share
 * a color and bottom edge; the original 2.05em exterior height is preserved. */
.ett-public.ett-tv .ett-list h2 { display: flex; padding: 0; background: transparent; line-height: 1.25; }
.ett-public.ett-tv .ett-arribos h2 { --ett-band-color: #074b9e; }
.ett-public.ett-tv .ett-salidas h2 { --ett-band-color: #10652e; }
.ett-public.ett-tv h2 .ett-band-title { position: relative; flex: 0 0 auto; padding: .4em .35em .4em 2.8em; background: var(--ett-band-color); border-top-right-radius: .55em; white-space: nowrap; }
.ett-public.ett-tv h2 .ett-band-continuation { flex: 1 1 0; min-width: 0; margin-top: .55em; background: var(--ett-band-color); }
.ett-tv .ett-bus-segment { position: absolute; inset: 0 auto 0 0; width: 2.2em; display: flex; align-items: center; justify-content: center; }
.ett-tv .ett-bus-segment img { width: 1.25em; height: 1.25em; display: block; }
.ett-tv button { background: #eef3fa; color: #12223a; border: 2px solid #8294ac; border-radius: .25em; padding: .35em .6em; font: inherit; font-size: .6em; }
.ett-tv video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: contain; background: #0b1421; z-index: 1; }
.ett-consulta { color: #142031; background: #fff; }
.ett-consulta form { display: flex; flex-wrap: wrap; gap: .75rem; margin-bottom: 1rem; }
.ett-consulta label { display: flex; flex-direction: column; gap: .3rem; flex: 1 1 160px; }
.ett-consulta input, .ett-consulta select, .ett-consulta button { font: inherit; padding: .6rem; border: 1px solid #65758a; border-radius: .25rem; background: #fff; color: #142031; max-width: 100%; }
.ett-consulta button { background: #074b9e; color: #fff; align-self: end; }
.ett-consulta .ett-important { color: #8b2600; }
.ett-consulta table { font-size: 1rem; }
@media (max-width: 760px) { .ett-consulta .ett-both { grid-template-columns: 1fr; } .ett-tv { font-size: clamp(10px, 1.9vw, 18px); } }
@media (min-aspect-ratio: 16/9) { .ett-tv { height: 100vh; } }

.ett-public.ett-tv .ett-single th:first-child { width: 28%; }
.ett-public.ett-tv .ett-single th:nth-child(2) { width: 50%; }
.ett-public.ett-tv .ett-single th:nth-child(3) { width: 6%; }
.ett-public.ett-tv .ett-single th:last-child { width: 16%; }
.ett-public.ett-tv .ett-single .ett-route-text { font-size: .85em; }

.ett-tv .ett-itinerary { display: flex; flex-wrap: wrap; gap: .15em .25em; font-size: .85em; }
.ett-tv .ett-itinerary-unit { display: inline-flex; align-items: baseline; gap: .25em; max-width: 100%; min-width: 0; }
.ett-tv .ett-itinerary-point { display: inline; font-size: 1em; white-space: pre-wrap; overflow-wrap: anywhere; }
.ett-tv .ett-itinerary-current { font-weight: 650; }
.ett-tv .ett-itinerary-time { display: inline; font-size: 1em; color: #c1e0ff; white-space: nowrap; }
.ett-tv .ett-itinerary-separator { display: inline; flex: none; font-size: 1em; color: #bdc5cf; }

/* Highlight the background only: text remains fully visible throughout the warning. */
.ett-tv .ett-imminent { background-color: rgba(245, 158, 11, .16); animation: ett-imminent-pulse 2.4s ease-in-out infinite; }
@keyframes ett-imminent-pulse { 50% { background-color: rgba(245, 158, 11, .32); } }
@media (prefers-reduced-motion: reduce) { .ett-tv .ett-imminent { animation: none; } }
