.lineup-page { min-width:0; }
.lineup-page button,.lineup-page input,.lineup-page select { min-height:44px; }
.lineup-page .ec-card-body,.lineup-page .ec-tl > div { overflow-wrap:anywhere; min-width:0; }

.lineup-sheet { position:fixed; inset:0; z-index:100; background:#0009; display:flex; align-items:flex-end; justify-content:center; padding:12px; }
.lineup-sheet form { width:100%; max-width:480px; max-height:90dvh; overflow:auto; padding:16px; display:grid; gap:10px; }
.lineup-sheet label { display:grid; gap:4px; }
.lineup-sheet input,.lineup-sheet select { width:100%; min-width:0; box-sizing:border-box; }

.lineup-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.lineup-name-row>strong{flex:0 0 100%;min-width:0}.lineup-favourite{display:flex;align-items:center;gap:6px}.lineup-page [data-favourite],.lineup-page [data-star]{box-sizing:border-box;flex:0 0 44px;width:44px;height:44px;padding:0;border-radius:50%;border:1px solid var(--line);background:var(--surface);color:var(--ink);font-size:24px}.lineup-favourite small{margin:0;font-size:.75rem}

/* Frosted text surfaces; image tiles retain their own backgrounds. */
.lineup-page .ec-solid,.lineup-sheet .ec-solid{background:var(--glass);color:var(--ink);border:var(--glass-border);box-shadow:var(--glass-shadow);backdrop-filter:var(--glass-filter);-webkit-backdrop-filter:var(--glass-filter)}

/* DS-C: stage-light posters and the crew's featured artist. */
.lineup-page .ec-seg { display:flex; min-width:0; }
.lineup-page .ec-seg button { flex:1; min-width:44px; padding-inline:8px; }
.lineup-page [data-refresh] { margin-bottom:12px; }
.lineup-page .poster-card { background:var(--surface); border:1px solid var(--line); box-shadow:var(--edge); }
.lineup-page .poster-art { position:relative; aspect-ratio:1; background:var(--nav) center/cover; }
.poster-art[data-poster="1"] { background-image:url(../img/poster/stage-1.jpg); }
.poster-art[data-poster="2"] { background-image:url(../img/poster/stage-2.jpg); }
.poster-art[data-poster="3"] { background-image:url(../img/poster/stage-3.jpg); }
.poster-art[data-poster="4"] { background-image:url(../img/poster/stage-4.jpg); }
.poster-art[data-poster="5"] { background-image:url(../img/poster/stage-5.jpg); }
.poster-art[data-poster="6"] { background-image:url(../img/poster/stage-6.jpg); }
.poster-art::before { z-index:1; pointer-events:none; content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 20%,rgba(5,13,22,.85)); }
.poster-name { text-decoration:none; z-index:2; position:absolute; left:12px; right:12px; bottom:12px; color:var(--ink); font-size:clamp(20px,6vw,26px); font-weight:800; line-height:1.05; overflow-wrap:anywhere; text-shadow:0 2px 8px #000; }
.poster-when { color:var(--fog); font-size:13px; line-height:1.5; font-variant-numeric:tabular-nums; }
.lineup-name-row .poster-when { flex-basis:100%; }
.lineup-favourite { min-width:0; }
.lineup-favourite small { color:var(--fog); overflow-wrap:anywhere; }
.lineup-hero { position:relative; margin:0 0 16px; min-height:230px; border-radius:var(--r-hero,18px); overflow:hidden; background:var(--surface); box-shadow:var(--shadow); }
.lineup-hero > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lineup-hero figcaption { position:relative; display:flex; flex-direction:column; justify-content:flex-end; min-height:230px; box-sizing:border-box; padding:16px; background:linear-gradient(180deg,rgba(5,13,22,.05),rgba(5,13,22,.92) 75%); overflow-wrap:anywhere; }
.lineup-hero h2 { margin:4px 0; color:var(--ink); font-size:28px; line-height:1.1; font-weight:800; }
.lineup-featured-label { margin:0; font-size:12px; color:var(--ink); }
.lineup-hero .lineup-favourite { margin-top:8px; }

.poster-art.has-photo > img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.lineup-hero.has-photo > img { object-position:center 25%; }
.photo-credit { display:block; min-width:0; max-width:100%; font-size:11px; color:var(--fog); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.lineup-name-row > .photo-credit { flex-basis:100%; }

.lineup-hero .poster-name { position:static; font:inherit; color:inherit; }
