.calendar-page .intro{gap:20px;padding:8px 0 18px}.calendar-page h1{font-size:clamp(30px,3vw,44px);line-height:1.05}.calendar-page .intro p{font-size:12px;margin:8px 0 0;max-width:none}.calendar-page .calendar-category-badge{margin:0;padding:8px 18px}.calendar-page .calendar-category-badge img{width:130px;height:42px;margin:0;object-fit:contain}.calendar-page .calendar-category-badge small{display:none}.calendar-page .toolbar{padding:14px 0;gap:14px}.calendar-page .toolbar h2{font:700 25px 'Barlow Condensed',Impact,sans-serif}.calendar-page .toolbar select{padding:9px 12px;font-size:13px}.calendar-autodrome{color:var(--muted);font-size:12px;line-height:1.3;margin:4px 0}.calendar-page .calendar-list{gap:8px}.calendar-page .calendar-row{grid-template-columns:45px 105px minmax(0,1fr);gap:14px;padding:12px 16px}.calendar-page .round-number strong{font-size:30px}.calendar-page .race-date{font-size:13px;line-height:1.3}.calendar-page .race-track h3{font-size:16px;line-height:1.2}.calendar-page .race-track .notice{font-size:11px;line-height:1.3}
@media(min-width:1000px) and (min-height:720px){
 .calendar-page{height:100dvh;overflow:hidden;display:flex;flex-direction:column}
 .calendar-page>header{position:static;flex-shrink:0;padding:14px 24px}
 .calendar-page>main{display:flex;flex-direction:column;flex:1;min-height:0;width:100%;max-width:none;padding:12px 24px 8px}
 .calendar-page main>.back-menu{align-self:flex-start;flex-shrink:0;margin:0 0 10px;padding:0;font-size:12px;line-height:18px}
 .calendar-page main>.eyebrow{font-size:10px;line-height:12px;flex-shrink:0}
 .calendar-page .intro{flex-shrink:0;padding:8px 0 14px}
 .calendar-page .calendar-content{flex:1;min-height:0;display:flex;flex-direction:column}
 .calendar-page .toolbar{flex-shrink:0;flex-wrap:nowrap;padding:12px 0}
 .calendar-page .toolbar>div{width:auto}
 .calendar-page .calendar-list{flex:1;min-height:0;display:grid;grid-auto-flow:column;grid-template-columns:repeat(var(--calendar-columns,2),minmax(0,1fr));grid-template-rows:repeat(var(--calendar-rows,6),minmax(0,1fr));gap:8px 16px}
 .calendar-page .calendar-row{min-height:0;grid-template-columns:42px 100px minmax(0,1fr);gap:12px;padding:8px 14px}
 .calendar-page .round-number small{font-size:8px;letter-spacing:1px}.calendar-page .round-number strong{font-size:28px;line-height:1.1}
 .calendar-page .calendar-autodrome{font-size:11px;line-height:1.2;margin:3px 0}
 .calendar-page .race-track h3{font-size:15px}
 .calendar-page main>footer{flex-shrink:0;margin-top:10px;padding-top:8px;font-size:10px;line-height:14px}
 .calendar-page #calendar-error{margin:0 0 10px;font-size:13px}
}
@media(max-width:600px){.calendar-page .intro{align-items:flex-start}.calendar-page .calendar-category-badge{margin-top:16px}.calendar-page .calendar-row{grid-template-columns:40px minmax(0,1fr);gap:8px 12px}.calendar-page .race-track{grid-column:2}.calendar-page .round-number{grid-row:span 2}.calendar-page .race-date{font-size:14px}}
.calendar-page .calendar-row.has-layout{grid-template-columns:42px 100px minmax(0,1fr) clamp(80px,9vw,160px)}
.calendar-layout{position:relative;align-self:stretch;min-height:0;border-left:1px solid #343b34}
.calendar-layout img{position:absolute;inset:0;width:100%;height:100%;padding:2px 8px 2px 16px;object-fit:contain;filter:drop-shadow(0 2px 3px #0008)}
@media(max-width:999px){.calendar-layout{min-height:60px}}
@media(max-width:600px){.calendar-page .calendar-row.has-layout{grid-template-columns:40px minmax(0,1fr) 90px}.calendar-layout{grid-column:3;grid-row:1/span 2}.calendar-layout img{padding:4px 0 4px 10px}}

.calendar-page .calendar-row{grid-template-columns:42px 90px minmax(0,1fr) 94px;transition:transform .16s,border-color .16s,box-shadow .16s,background .16s}
.calendar-page .calendar-row.has-layout{grid-template-columns:42px 90px minmax(0,1fr) clamp(64px,7vw,130px) 94px}
.calendar-page .calendar-row:hover,.calendar-page .calendar-row:focus-within{transform:translateY(-2px);border-color:#9ab44c;background:#252d23;box-shadow:0 5px 15px #0004}
.calendar-page .calendar-row.is-raced{border-left:3px solid var(--accent)}
.calendar-result-action{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0}
.calendar-results-button,.calendar-results-back{font:600 12px Barlow,Arial,sans-serif;color:var(--accent);border:1px solid #728742;border-radius:4px;background:#d9ff5f0a;padding:9px 12px;cursor:pointer;transition:transform .15s,background .15s,box-shadow .15s,border-color .15s}
.calendar-results-button:not(:disabled):hover,.calendar-results-back:hover{background:var(--accent);color:#141a10;border-color:var(--accent);transform:translateY(-1px);box-shadow:0 3px 12px #d9ff5f26}
.calendar-results-button:not(:disabled):active,.calendar-results-back:active{transform:translateY(0)}
.calendar-results-button:disabled{color:#8d978d;border-color:#424b40;background:#ffffff03;cursor:not-allowed;opacity:.65}
.calendar-race-state{font-size:9px;color:var(--muted)}.is-raced .calendar-race-state{color:var(--accent)}
.calendar-results-dialog{width:min(820px,94vw);padding:32px;overflow:auto}.calendar-results-dialog h2{font:700 34px 'Barlow Condensed',Impact,sans-serif;margin:18px 35px 10px 0}.calendar-results-dialog>p{font-size:13px;line-height:1.5;color:var(--muted)}
.calendar-results-table{overflow-x:auto;margin:22px 0}.calendar-results-table table{width:100%;border-collapse:collapse;text-align:left;font-size:13px}.calendar-results-table th,.calendar-results-table td{padding:12px;border-bottom:1px solid #343b34}.calendar-results-table thead{font-size:10px;letter-spacing:1px;text-transform:uppercase;color:var(--muted)}.calendar-results-table tbody th{font-weight:600}.calendar-results-table .is-player{background:#d9ff5f12}.calendar-results-table .is-player th,.calendar-results-table .result-position{color:var(--accent)}
@media(min-width:601px) and (max-width:1350px){
 .calendar-page .calendar-row{grid-template-columns:42px 90px minmax(0,1fr);gap:4px 10px}
 .calendar-page .calendar-row.has-layout{grid-template-columns:42px 90px minmax(0,1fr) 76px}
 .calendar-page .calendar-row .round-number{grid-column:1;grid-row:1/span 2}
 .calendar-page .calendar-row .race-date{grid-column:2;grid-row:1;font-size:12px}
 .calendar-page .calendar-row .race-track{grid-column:3;grid-row:1/span 2}
 .calendar-page .calendar-row .calendar-layout{grid-column:4;grid-row:1/span 2}
 .calendar-result-action{grid-column:2;grid-row:2;gap:2px;align-items:flex-start}
 .calendar-results-button{padding:5px 9px;font-size:11px}
}
@media(max-width:600px){
 .calendar-page .calendar-row{grid-template-columns:40px minmax(0,1fr)}
 .calendar-page .calendar-row.has-layout{grid-template-columns:40px minmax(0,1fr) 90px}
 .calendar-page .calendar-row .round-number{grid-row:1/span 3}
 .calendar-page .calendar-row .race-date{grid-column:2;grid-row:1}
 .calendar-page .calendar-row .race-track{grid-column:2;grid-row:2}
 .calendar-page .calendar-row .calendar-layout{grid-column:3;grid-row:1/span 3}
 .calendar-result-action{grid-column:2;grid-row:3;align-items:flex-start}
 .calendar-results-dialog{padding:25px 18px}
}
@media(prefers-reduced-motion:reduce){.calendar-page .calendar-row,.calendar-results-button,.calendar-results-back{transition:none}.calendar-page .calendar-row:hover,.calendar-page .calendar-row:focus-within,.calendar-results-button:not(:disabled):hover,.calendar-results-back:hover{transform:none}}

.calendar-page .race-date{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;text-transform:none;text-align:center}
.calendar-date-large{font:700 34px/1 'Barlow Condensed',Impact,sans-serif;color:var(--text);white-space:nowrap}.calendar-date-full{font-size:10px;line-height:1.25;white-space:nowrap;color:var(--muted)}
.calendar-page .race-track{text-align:center}.calendar-page .race-track h3{font:700 24px/1.05 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase}.calendar-page .calendar-autodrome{font-size:13px;line-height:1.25;margin:6px 0 0}
.calendar-page .calendar-layout{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding-left:10px}
.calendar-page .calendar-layout img{position:static;inset:auto;flex:1;min-height:0;height:0;max-height:70px;width:100%;padding:0 6px;object-fit:contain}
.calendar-layout-caption{display:block;flex-shrink:0;text-align:center;font-size:11px;color:var(--muted);line-height:1.2;max-width:100%}
.calendar-page .calendar-layout img[hidden],.calendar-results-dialog [hidden]{display:none!important}
.calendar-results-dialog .results-preview{padding:20px;border:1px solid #53633b;background:#d9ff5f09;border-radius:6px;color:var(--text);line-height:1.7;margin:24px 0}
.calendar-page .calendar-row.is-preview{border-left:3px solid #819849}.is-preview .calendar-race-state{color:var(--accent)}
@media(min-width:1000px){
 .calendar-page .calendar-row{grid-template-columns:42px 120px minmax(0,1fr) 94px;gap:10px}
 .calendar-page .calendar-row.has-layout{grid-template-columns:42px 120px minmax(0,1fr) clamp(80px,8vw,150px) 94px}
 .calendar-page .calendar-row .round-number,.calendar-page .calendar-row .race-date,.calendar-page .calendar-row .race-track,.calendar-page .calendar-row .calendar-layout,.calendar-page .calendar-row .calendar-result-action{grid-row:auto;grid-column:auto}
 .calendar-page .calendar-row .calendar-result-action{align-items:center;gap:5px}
 .calendar-page .calendar-results-button{padding:9px 12px;font-size:12px}
}
@media(min-width:1000px) and (max-width:1200px){
 .calendar-page .calendar-row{grid-template-columns:32px 100px minmax(0,1fr) 76px;gap:6px;padding:8px}
 .calendar-page .calendar-row.has-layout{grid-template-columns:32px 100px minmax(0,1fr) 65px 76px}
 .calendar-page .race-track h3{font-size:20px}.calendar-page .calendar-autodrome{font-size:11px}.calendar-date-large{font-size:29px}.calendar-date-full{font-size:9px}.calendar-layout-caption{font-size:9px}.calendar-page .calendar-results-button{font-size:10px;padding:8px}
}
@media(max-width:999px){.calendar-page .calendar-layout img{min-height:45px;height:auto;max-height:85px}.calendar-date-large{font-size:30px}.calendar-date-full{font-size:9px}}
.calendar-view-tabs{display:flex;gap:8px;flex-shrink:0;margin:0 0 8px}
.calendar-view-tabs button{padding:8px 16px;border:1px solid #404b35;border-radius:5px;background:transparent;color:var(--muted);font:700 12px Barlow,Arial,sans-serif;cursor:pointer}
.calendar-view-tabs button[aria-pressed="true"]{color:#15200b;background:var(--accent);border-color:var(--accent)}
.calendar-page.results-archive-page .calendar-list{display:block;overflow:auto;padding-right:5px;scrollbar-color:#53633b var(--bg)}
.results-event{border:1px solid #343b34;border-radius:8px;background:var(--panel);margin-bottom:12px;overflow:hidden}
.results-event-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px;cursor:pointer;list-style:none}
.results-event-heading::-webkit-details-marker{display:none}
.results-event-heading:after{content:'+';font-size:24px;color:var(--accent)}
.results-event[open]>.results-event-heading:after{content:'−'}
.results-event-heading:hover{background:#d9ff5f08}
.results-event-heading>div{flex:1}
.results-event-heading strong{display:block;font:700 23px 'Barlow Condensed',Impact,sans-serif;text-transform:uppercase}
.results-event-heading small{display:block;color:var(--muted);font-size:12px;margin-top:4px}
.results-count{font-size:11px;font-weight:700;letter-spacing:1px;color:var(--accent);white-space:nowrap}
.results-day{margin:0;padding:10px 22px;background:#111813;font-size:11px;letter-spacing:1.5px;color:var(--muted);border-top:1px solid #343b34}
.results-session{display:flex;align-items:center;gap:18px;padding:14px 22px;border-top:1px solid #303730}
.results-session.is-available:hover{background:#d9ff5f08}
.results-session-info{flex:1;min-width:0}
.results-session-info strong{display:block;font-size:14px}
.results-session-info small{display:block;font-size:11px;color:var(--muted);margin-top:4px}
.results-session .calendar-results-button{flex-shrink:0}
.results-player{font:700 19px 'Barlow Condensed',Impact,sans-serif;white-space:nowrap;color:var(--accent);font-variant-numeric:tabular-nums}
@media(max-width:620px){.results-event-heading{padding:14px;gap:10px;flex-wrap:wrap}.results-event-heading strong{font-size:20px}.results-count{font-size:9px}.results-session{padding:14px;gap:10px;flex-wrap:wrap}.results-session-info{flex-basis:60%}.results-player{font-size:17px}.results-day{padding:10px 14px}}
.results-event.is-raced{border-color:#71883d;box-shadow:inset 4px 0 var(--accent)}
.results-event.is-raced>.results-event-heading{background:#d9ff5f09}
.results-event.is-in-progress{border-color:#776444;box-shadow:inset 4px 0 #dbb968}
.results-event-heading>.results-event-meta{flex:0 0 auto;display:flex;align-items:center;gap:14px}
.results-event-state{padding:5px 8px;border:1px solid #46503e;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:.7px;white-space:nowrap;color:var(--muted)}
.is-raced .results-event-state{color:var(--accent);border-color:#71883d;background:#d9ff5f12}
.is-in-progress .results-event-state{color:#e0bf77;border-color:#776444;background:#dbb9680a}
.is-pending .results-count{color:var(--muted)}
@media(max-width:620px){.results-event-heading>.results-event-meta{gap:7px;flex-wrap:wrap}.results-event-state{font-size:9px;padding:4px 6px}}

.calendar-championship-phase{display:block;margin-top:6px;color:var(--accent);font-size:11px;font-weight:700;letter-spacing:.5px}
.calendar-row.is-cup,.results-event.is-cup{--accent:#edc45a}
.calendar-page .calendar-row.is-cup{border-left:3px solid var(--accent);background:linear-gradient(100deg,#edc45a0c,transparent 65%),var(--panel)}
.calendar-page .calendar-row.is-cup:hover,.calendar-page .calendar-row.is-cup:focus-within{border-color:#ad8d3c;background:#2a281e}
.is-cup .calendar-results-button:not(:disabled){border-color:#8c753a;background:#edc45a0a}
.is-cup .calendar-results-button:not(:disabled):hover{background:var(--accent);border-color:var(--accent);box-shadow:0 3px 12px #edc45a26}
.results-event.is-cup{border-left:3px solid var(--accent);box-shadow:none}
.results-event.is-cup>.results-event-heading{background:#edc45a09}
.results-event.is-cup.is-raced .results-event-state{border-color:#8c753a;background:#edc45a12}

/* Admin calendar editor and compact card metadata. */
.calendar-edit-button{border:1px solid #728742;background:transparent;color:var(--accent);border-radius:4px;padding:4px 7px;font:600 10px Barlow,Arial,sans-serif;cursor:pointer}
.calendar-edit-button:hover,.calendar-edit-button:focus-visible{background:var(--accent);color:var(--bg)}
.calendar-edit-dialog{width:min(560px,94vw);max-height:90dvh;overflow:auto;padding:28px;border:1px solid #728742;border-radius:8px;background:var(--bg);color:var(--text)}
.calendar-edit-dialog::backdrop{background:#000b}
.calendar-edit-form{display:grid;gap:18px}.calendar-edit-form h2{font:700 30px 'Barlow Condensed',sans-serif;margin:0}.calendar-edit-form p{font-size:13px;line-height:1.5;margin:0}
.calendar-edit-fields{display:grid;grid-template-columns:1fr 1fr;gap:14px}.calendar-edit-fields label{display:grid;gap:7px;font-size:12px;min-width:0}.calendar-edit-fields input,.calendar-edit-fields select{width:100%;min-width:0;padding:9px;background:#1b211c;color:var(--text);border:1px solid #4c5846;border-radius:4px}
.calendar-confirm-check{display:flex;align-items:center;gap:10px;font-size:13px}.calendar-confirm-check input{width:18px;height:18px;accent-color:var(--accent)}
.calendar-edit-form button{padding:9px 12px;cursor:pointer}.calendar-edit-form button:disabled{opacity:.6;cursor:wait}
.calendar-page .race-track{min-width:0}.calendar-page .race-track .notice{display:block;margin-top:2px}
@media(min-width:1000px) and (min-height:720px){
 .calendar-page .calendar-list{overflow:auto;grid-template-rows:repeat(var(--calendar-rows,6),minmax(min-content,1fr))}
 .calendar-page .calendar-row{min-height:80px;padding-top:6px;padding-bottom:6px}
 .calendar-page .race-track h3{font-size:19px;line-height:1.05}
 .calendar-page .has-calendar-warning .race-track h3{font-size:16px}
 .calendar-page .calendar-autodrome{font-size:11px;margin:2px 0 0}
 .calendar-page .race-track .notice{font-size:10px;line-height:1.15}
 .calendar-page .calendar-result-action{gap:3px}
 .calendar-page .calendar-results-button{padding:6px 9px;font-size:11px}
}
@media(max-width:480px){.calendar-edit-fields{grid-template-columns:1fr}.calendar-edit-dialog{padding:20px}}
