.upcoming-competitions{padding:26px 0 20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.upcoming-competitions .section-header{margin-bottom:16px;align-items:center}
.upcoming-competitions .section-header .eyebrow{margin-bottom:8px}
.upcoming-competitions h2{font-size:28px}
.upcoming-scroll{overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;padding:4px 4px 10px;margin:0 -4px;scrollbar-color:#35566a var(--panel)}
.upcoming-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.upcoming-card{min-width:0;padding:18px;border:1px solid var(--line);border-radius:7px;background:var(--panel);display:flex;flex-direction:column;gap:7px;scroll-snap-align:start}
.upcoming-card.upcoming-nearest{border-color:#398c98;background:linear-gradient(125deg,#11232d,var(--panel))}
.upcoming-card-top{display:flex;gap:8px;align-items:center;justify-content:space-between;flex-wrap:wrap}
.upcoming-card-top .eyebrow{font-size:9px}.upcoming-card-top .pill{font-size:10px;padding:2px 7px}
.upcoming-card h3{font:600 18px/1.35 var(--head);letter-spacing:-.02em;margin:4px 0}
.upcoming-date,.upcoming-location{font-size:12px;line-height:1.5}
.upcoming-actions{margin-top:auto;padding-top:11px;display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap}
.upcoming-actions .text-link{font-size:11px}.upcoming-actions .small{font-size:10px}.upcoming-actions .button{font-size:11px}
.upcoming-hint{display:none}.competition-back{padding-top:28px}.competition-page .page-intro{padding-top:30px}
.competition-detail-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);align-items:start;gap:22px}
.competition-detail-sidebar{display:grid;gap:22px;min-width:0}
.competition-fantasy-slot:empty{display:none}
.competition-detail-grid .panel{min-width:0;padding:25px}
.competition-detail-grid h2{font-size:25px;margin:12px 0 16px}
.competition-detail-grid p{font-size:14px;line-height:1.7}
.competition-detail-grid .small{font-size:12px;margin:12px 0}
.competition-detail-grid .button{margin-top:18px}.competition-detail-grid .text-link{display:inline-block;margin-top:15px;white-space:normal}
.competition-detail-grid .status-inline{font-size:11px;margin-top:15px}
.competition-phase-list{list-style:none;margin:20px 0 0;padding:0}
.competition-phase-list li{border-top:1px solid var(--line);padding:14px 0;display:flex;flex-direction:column;gap:5px}
.competition-phase-list strong{font-size:14px}.competition-phase-list time{font-size:13px;color:var(--muted)}
.competition-link-row{display:flex;gap:15px;flex-wrap:wrap;align-items:center}
.competition-rosters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:22px;align-items:start}
.competition-roster{min-width:0;padding:22px}.competition-roster summary{font:600 20px/1.4 var(--head);cursor:pointer}.competition-roster summary .small{margin-left:8px}
.competition-roster ul{list-style:none;padding:0;margin:18px 0 0}.competition-roster li{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-top:1px solid var(--line);font-size:13px;overflow-wrap:anywhere}.competition-roster li .small{flex-shrink:0}
.competition-calendar{border-top:1px solid var(--line)}
.competition-calendar-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}
.competition-calendar-card{display:flex;flex-direction:column;gap:8px;padding:20px;border:1px solid var(--line);border-radius:7px;background:var(--panel);font-size:12px;min-width:0}
.competition-calendar-card:hover{border-color:var(--cyan)}.competition-calendar-card strong{font:600 17px/1.4 var(--head)}.competition-calendar-card>span:not(.eyebrow){color:var(--muted)}
.competition-calendar-controls{display:grid;grid-template-columns:minmax(0,2fr) minmax(180px,1fr);gap:18px;margin:0 0 12px}
.competition-calendar-controls label{display:flex;flex-direction:column;gap:8px;font-size:13px;color:var(--muted);min-width:0}
.competition-calendar-controls input,.competition-calendar-controls select{width:100%;min-height:44px;box-sizing:border-box;background:var(--panel);color:var(--ink);border:1px solid var(--line);border-radius:6px;padding:11px 12px;font:inherit}
.competition-calendar-controls input:focus-visible,.competition-calendar-controls select:focus-visible{outline:2px solid var(--cyan);outline-offset:3px}
.competition-calendar [data-calendar-count]{margin:12px 0 18px}
.competition-calendar-pagination{display:flex;align-items:center;justify-content:center;gap:20px;margin:24px 0;flex-wrap:wrap}
.competition-calendar-pagination button{min-height:44px}.competition-calendar-pagination button:disabled{opacity:.4;cursor:default}
.competition-calendar-empty{grid-column:1/-1;padding:24px 0;color:var(--muted);font-size:14px}
.competition-calendar-card.competition-cancelled{border-style:dashed}.competition-calendar-card.competition-cancelled .competition-event-state{color:var(--pink)}
.competition-cancellation{border-left:3px solid var(--pink);background:var(--panel);padding:16px 20px;margin:0 0 24px;font-size:14px}
.competition-official-links{display:flex;gap:8px 18px;flex-wrap:wrap}
.competition-official-entries .section-header{gap:20px;flex-wrap:wrap}.competition-official-entries .section-header h2,.competition-entrants .section-header h2{font-size:30px}
.competition-official-entries .competition-roster .text-link{display:inline-block;margin-top:16px;font-size:12px}
.competition-official-entries .competition-roster .status-inline{font-size:11px;margin-top:12px}
@media(max-width:900px){.upcoming-grid{display:flex}.upcoming-card{flex:0 0 calc((100% - 14px)/2);min-width:260px}.upcoming-hint{display:block}.competition-detail-grid{grid-template-columns:1fr}.competition-detail-sidebar{grid-template-columns:repeat(2,minmax(0,1fr))}.competition-calendar-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.upcoming-competitions{padding:22px 0 16px}.upcoming-competitions h2{font-size:25px}.upcoming-competitions .section-header{gap:15px}.upcoming-competitions .section-header>.text-link{font-size:11px}.upcoming-card{flex-basis:86%;min-width:230px;padding:16px}.competition-detail-sidebar,.competition-rosters,.competition-calendar-grid{grid-template-columns:1fr}.competition-detail-grid .panel,.competition-roster{padding:20px}.competition-roster summary{font-size:18px}.competition-calendar .section-header h2{font-size:28px}}
@media(max-width:600px){.competition-calendar-controls{grid-template-columns:1fr;gap:14px}.competition-calendar-pagination{gap:12px}.competition-calendar-pagination .button{padding:10px 14px}.competition-official-entries .section-header h2,.competition-entrants .section-header h2{font-size:28px}}
