/* Tournament results and event pages. Loaded on /tournaments/<id>/ and /events/<id>/ only. */

/* Standings: the table on wide screens, a two-line list on phones (player over Legend, record at
   the right). A row with a published list is one link to it. */
.standings-list{display:none;list-style:none;margin:0;padding:0;border-top:1px solid var(--soft)}
.standings-list>li>a,.standings-list>li>div{display:grid;grid-template-columns:2.4rem minmax(0,1fr) auto;align-items:center;column-gap:12px;row-gap:2px;padding:12px 4px;border-bottom:1px solid var(--soft);color:var(--ink);text-decoration:none}
.standings-list>li:first-child>*{background:var(--bg2)}
.standings-list>li>a:hover{background:var(--bg3);text-decoration:none}
.standing-place{grid-row:span 2;font:700 22px/1 var(--head);color:var(--ac);text-align:center;font-variant-numeric:tabular-nums}
.standing-who{grid-row:span 2;display:flex;flex-direction:column;min-width:0}
.standing-who strong{font:600 16px/1.3 var(--body);overflow-wrap:anywhere}
.standing-who>span{font:14px/1.4 var(--body);color:var(--muted);overflow-wrap:anywhere}
.standing-who a{color:var(--muted)}
.standing-record{font:500 14px/1.3 var(--mono);text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
.standing-list-link{font:600 14px/1.3 var(--body);color:var(--ac);text-align:right}
@media(max-width:700px){.standings-table{display:none}.standings-list{display:block}}

/* The event's own story, directly under the winner box. */
.tournament-story{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;row-gap:4px;align-items:center;margin:-10px 24px 26px;padding:18px 24px;border:1px solid var(--soft);background:var(--bg2);color:var(--ink);text-decoration:none}
.tournament-story:hover{background:var(--bg3);text-decoration:none}
.tournament-story .fine{grid-column:1;margin:0;color:var(--muted)}
.tournament-story strong{grid-column:1;font:600 18px/1.35 var(--body);overflow-wrap:anywhere}
.tournament-story-action{grid-column:2;grid-row:1/span 2;font:600 15px/1.2 var(--body);color:var(--ac);white-space:nowrap}
@media(max-width:650px){.tournament-story{grid-template-columns:minmax(0,1fr);margin:-4px 16px 22px;padding:16px}.tournament-story-action{grid-column:1;grid-row:auto;margin-top:8px}}

/* Published lists lead with the Legend and its art; the player is the second line. */
.utility-page .tournament-deck-grid.tournament-list-grid>a{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;align-items:start}
.tournament-list-grid img,.tournament-list-art-missing{display:block;width:64px;height:90px;border-radius:4px;object-fit:cover;background:var(--bg3)}
.tournament-list-copy{display:flex;flex-direction:column;gap:6px;min-width:0;height:100%}
.utility-page .tournament-list-grid h3{font-size:22px;line-height:1.1}
.utility-page .tournament-list-grid p{font:15px/1.4 var(--body);color:var(--ink)}
.utility-page .tournament-list-grid .accent{margin-top:auto}
@media(max-width:700px){.utility-page .tournament-deck-grid.tournament-list-grid{grid-template-columns:minmax(0,1fr)}}

/* Event pages: the facts beside a panel with what to do next (results, organizer, calendar). */
.event-sheet{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,1fr);gap:48px;align-items:start;margin:32px 24px 0}
.event-sheet .event-detail{min-width:0;padding:0}
.event-status{margin:0 0 18px;font:600 15px/1.5 var(--body);color:var(--ink)}
.event-sheet .event-detail dl{margin:0 0 22px;grid-template-columns:140px minmax(0,1fr);row-gap:12px}
.event-sheet .event-detail dt{font:14px/1.5 var(--body)}
.event-sheet .event-detail dd{font:16px/1.5 var(--body)}
.event-sheet .event-detail>p:not(.event-status):not(.fine){max-width:62ch;margin:0 0 14px;font:19px/1.6 var(--text)}
.event-panel{display:flex;flex-direction:column;gap:20px;padding:24px;border:1px solid var(--soft);background:var(--bg2)}
.event-panel>.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:0}
.event-panel>.fine{margin:-8px 0 0}
.event-back{margin:0}
.event-results-card{display:flex;flex-direction:column;gap:14px;padding-bottom:20px;border-bottom:1px solid var(--soft)}
.event-results-card h2{margin:0;font-size:32px}
.event-results-card>.fine{margin:0}
.event-winner{display:grid;grid-template-columns:72px minmax(0,1fr);gap:16px;align-items:center}
.event-winner img{display:block;width:72px;height:auto;border-radius:4px}
.event-winner p{display:flex;flex-direction:column;gap:2px;margin:0;min-width:0}
.event-winner strong{font:700 30px/1.05 var(--head);text-transform:uppercase;overflow-wrap:anywhere}
.event-winner p>span:last-child{font:15px/1.4 var(--body);color:var(--ink)}
.event-results-actions{display:flex;flex-wrap:wrap;gap:10px}
@media(max-width:800px){.event-sheet{grid-template-columns:minmax(0,1fr);gap:24px;margin:20px 16px 0}.event-sheet.has-side .event-panel{order:-1}.event-sheet .event-detail dl{grid-template-columns:110px minmax(0,1fr)}.event-panel{padding:20px}}
/* Card names keep their printed case. */
.top-deck-art + div h3,.tournament-list-copy h3{text-transform:none}

/* Live labels (event-live.mjs): the browser rewrites the words; the state shows as a small dot. */
.event-status [data-state=live]::before,.tournament-now-when[data-state=live]::before{content:"";display:inline-block;width:.5em;height:.5em;border-radius:50%;background:currentColor;vertical-align:.08em}
.event-status [data-state=live]::before,.tournament-now-when[data-state=live]::before{margin-right:.45em}
.event-when::before{content:" · "}
.event-when[data-state=live]{font-weight:600;color:var(--ink)}

/* Calendar rows: the whole row opens the event; the organizer link sits above it. */
.calendar-row{position:relative}
.calendar-row h2 a::after{content:"";position:absolute;inset:0}
.calendar-row .context-links a{position:relative;z-index:1}
.calendar-row:has(h2 a:hover) h2 a{text-decoration:underline;text-underline-offset:4px}
.calendar-row:has(h2 a:focus-visible){outline:3px solid var(--ac);outline-offset:4px}
.calendar-row h2 a:focus-visible{outline:0}
@media(pointer:coarse){.calendar-row .context-links a{display:inline-flex;align-items:center;min-height:44px}.calendar-row .context-links{margin-top:4px}}

/* Tournaments on now or this week, above the results. */
.tournament-now{display:grid;gap:12px}
.tournament-now-row{display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:24px;row-gap:4px;align-items:center;padding:18px 24px;border:1px solid var(--soft);background:var(--bg2);color:var(--ink);text-decoration:none}
.tournament-now-row:hover{background:var(--bg3);text-decoration:none}
.tournament-now-row>*{grid-column:1;min-width:0}
.tournament-now-when{margin:0;font:600 14px/1.4 var(--body);color:var(--ink);letter-spacing:0;text-transform:none}
.tournament-now-row strong{font:700 30px/1.05 var(--head);text-transform:uppercase;overflow-wrap:anywhere}
.tournament-now-row .fine{margin:0;color:var(--muted)}
.tournament-now-action{grid-column:2;grid-row:1/span 3;font:600 15px/1.2 var(--body);white-space:nowrap}
@media(max-width:650px){.tournament-now-row{grid-template-columns:minmax(0,1fr);padding:16px}.tournament-now-row strong{font-size:26px}.tournament-now-action{grid-column:1;grid-row:auto;margin-top:8px}}

/* An event's series: every stop with its dates, and results where Riftwatch has them. */
.event-series{margin-top:32px;border-bottom:0}
.event-series h2{margin:0 0 16px}
.event-series-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--soft)}
.event-series-list>li>a,.event-series-list>li>div{display:grid;grid-template-columns:150px minmax(0,1fr) auto;gap:4px 20px;align-items:center;min-height:56px;padding:12px 8px;border-bottom:1px solid var(--soft);color:var(--ink);text-decoration:none}
.event-series-list>li>a:hover{background:var(--bg2);text-decoration:none}
.event-series-list>li.is-current>div{background:var(--bg2)}
.event-series-list time{font:15px/1.4 var(--body);color:var(--muted);font-variant-numeric:tabular-nums}
.event-series-name{display:flex;flex-direction:column;min-width:0}
.event-series-name strong{font:600 17px/1.3 var(--body);overflow-wrap:anywhere}
.event-series-name>span{font:14px/1.4 var(--body);color:var(--muted)}
.event-series-note{font:600 14px/1.3 var(--body);text-align:right;white-space:nowrap}
.is-current .event-series-note{color:var(--muted);font-weight:500}
@media(max-width:800px){.event-series{margin-top:20px}.event-series-list>li>a,.event-series-list>li>div{grid-template-columns:minmax(0,1fr) auto;padding:12px 4px}.event-series-list time{grid-column:1}.event-series-name{grid-column:1}.event-series-note{grid-column:2;grid-row:1/span 2}}
