.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.demo-controls{border:2px solid var(--ink);padding:18px;background:#fff8d8;margin:20px 0}.demo-controls summary{font-weight:bold;cursor:pointer;min-height:44px}.demo-controls .row{margin:16px 0}.demo-controls select{margin-top:8px}.demo-label{padding:14px 18px;background:#ffda28;color:#10151c;border:2px solid #10151c;font-weight:bold;margin:20px 0}.ranking-summary{display:flex;flex-wrap:wrap;gap:12px;margin:22px 0}.ranking-summary span{border:1px solid #10151c;background:#fffdf8;padding:10px 14px}.team-monogram{display:grid;place-items:center;width:58px;height:58px;background:#00baf2;border:2px solid #10151c;font-weight:900;font-size:24px;box-shadow:3px 3px 0 #ffda28}.team-streak{font-weight:bold;color:#062638}.ranking-table tbody tr:nth-child(odd){background:#fffdf8}.ranking-table tbody tr:hover{background:#ffda2833}.ranking-table td:first-child{font-weight:bold;font-size:22px}.ranking-table a{font-weight:bold;text-underline-offset:4px}.table-wrap:focus-visible,summary:focus-visible{outline:3px solid #bd0059;outline-offset:3px}.field,form,.panel,.admin-event>*,.actions>*{min-width:0}.actions select{flex:1;min-width:140px}.actions a,.actions button{overflow-wrap:anywhere}.panel+.panel{margin-top:30px}button,.button{min-height:44px}input[type=checkbox]{width:20px;height:20px;flex-shrink:0}.check{display:flex;gap:10px;align-items:flex-start;margin:16px 0}fieldset{min-width:0;max-width:100%}progress{width:100%;height:16px;accent-color:#bd0059}.metric{border:2px solid #10151c;background:#fffdf8;padding:18px}.metric strong{font-size:32px;display:block}.metric span{display:block}#team-metrics{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:22px 0}.error:empty,[role=status]:empty{padding:0;border:0;margin:0}.rating-table-help{font-size:14px;color:#405866}.event-card h3{overflow-wrap:anywhere}#team-history a{font-weight:bold}.quiz-feedback a{display:block;margin-top:10px;font-size:14px}.presence-pin-label{pointer-events:none}
@media(max-width:540px){body:not(.public-page) header{flex-direction:column;gap:12px}body:not(.public-page) header nav a{padding:8px 0;min-height:40px}.actions{align-items:stretch}.actions>*{max-width:100%}.actions select{flex-basis:100%}.admin-event{align-items:stretch;flex-direction:column}.admin-event>.actions{width:100%}.admin-event input{max-width:100%}.panel{padding:16px}.panel fieldset{padding:10px}#team-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.metric{padding:12px}.metric strong{font-size:28px}th,td{padding:12px 10px}.ranking-table{min-width:510px}.ranking-table th:nth-child(2){min-width:150px}.team-monogram{width:48px;height:48px}h1{overflow-wrap:anywhere}#session{overflow-wrap:anywhere}}
.achievement-intro{display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center;margin-bottom:32px}.achievement-intro h2{max-width:760px}.achievement-intro p{max-width:650px;margin:18px 0 24px;line-height:1.6}.achievement-demo-note{background:#ffda28;border:2px solid #10151c;padding:28px;box-shadow:7px 7px 0 #10151c;transform:rotate(1deg)}.achievement-demo-note h3{font-size:30px;margin:16px 0 0}.achievement-demo-note p{margin:12px 0}.achievement-tracks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.achievement-track{min-width:0;padding:22px;border:2px solid #10151c;background:#fffdf8;color:#10151c;box-shadow:4px 4px 0 #10151c}.achievement-track:nth-child(3n+2){box-shadow:4px 4px 0 #00baf2}.achievement-track:nth-child(3n){box-shadow:4px 4px 0 #ed008b}.achievement-track-head{display:flex;align-items:center;gap:12px}.achievement-track-head h3{font-size:21px;line-height:1.2;margin:0}.achievement-symbol{font-size:26px;flex-shrink:0}.achievement-scope,.achievement-explanation{font-size:13px;line-height:1.5;margin:12px 0;color:#40515a}.achievement-levels{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.achievement-levels li{display:grid;place-items:center;min-width:36px;height:36px;border:1px solid #58636a;background:#f1eee6;font-weight:800;font-size:14px}.achievement-levels .earned{background:#ffda28;border:2px solid #10151c}.achievement-levels .earned:before{content:'✓';font-size:10px;position:absolute;transform:translate(13px,-15px);background:#fffdf8}.achievement-levels .next{outline:3px solid #bd0059;outline-offset:2px;background:#fff}.achievement-progress-copy{font-size:14px;font-weight:700;line-height:1.5;margin:10px 0 0}.achievement-track progress{display:block;margin-top:18px}.achievement-track[data-family=FULL_SEASON]{background:#e6f7fc}
@media(max-width:1000px){.achievement-tracks{grid-template-columns:repeat(2,minmax(0,1fr))}.achievement-intro{gap:28px}}
@media(max-width:600px){.achievement-intro{grid-template-columns:1fr;gap:24px}.achievement-tracks{grid-template-columns:1fr}.achievement-track{padding:20px}.achievement-demo-note{padding:22px;transform:none}.achievement-demo-note h3{font-size:26px}}
@media(max-width:540px){body:not(.public-page) header nav{max-width:100%;width:100%;justify-content:flex-start;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px 14px}body:not(.public-page) header nav a{display:flex;align-items:center;min-height:44px}.actions>*{flex:1 1 100%;width:100%;min-width:0}#account .actions input{max-width:100%}}

.achievement-demo-chip{display:inline-block;padding:5px 9px;background:#10151c;color:#fffdf8;font-size:12px;font-weight:800;letter-spacing:1px}.achievement-levels li{position:relative}

/* Cumulative vector medals: the same centre grows through every threshold. */
.achievement-track-head{align-items:center}.achievement-emblem{width:80px;height:85px;flex:none;object-fit:contain}.achievement-emblem.locked{filter:grayscale(1);opacity:.52}.achievement-status{display:block;font-size:12px;line-height:1.4;margin-top:8px;color:#40515a}
.achievement-levels.badge-levels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;align-items:stretch;margin:18px 0}
.achievement-levels.badge-levels li{display:block;height:auto;min-width:0;border:0;outline:0;background:none}.achievement-levels.badge-levels li:before{content:none}
.badge-level{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;width:100%;padding:6px 2px;border:1px solid #c8d0d5;border-radius:8px;background:#f4f1e8;color:#0a2438;cursor:pointer;min-height:134px;font:inherit;text-transform:none;letter-spacing:normal;box-shadow:none}
.badge-level img{display:block;width:64px;max-width:100%;height:68px;object-fit:contain}.badge-level strong{font-size:16px;line-height:1.2}.badge-level span{font-size:10px;line-height:1.25;margin:4px 0 0;overflow-wrap:anywhere}
.badge-level[data-state=locked] img{filter:grayscale(1);opacity:.35}.badge-level[data-state=next]{border:2px dashed #b60061;background:#fff4fa}.badge-level[data-state=next] img{opacity:.7}.badge-level[data-state=current],.badge-level[data-state=max]{border:2px solid #09243f;background:#fff0ab}.badge-level[data-state=earned]{background:#fffaf0}.badge-level:focus-visible{outline:3px solid #008bb5;outline-offset:3px}.badge-level:hover{background:#e4f7fc}
.counted-results{min-width:160px;max-width:350px}.counted-results summary{cursor:pointer;padding:8px 0;font-size:14px;white-space:normal}.counted-results ol{padding-left:20px;margin:8px 0}.counted-results li{padding:7px 0;font-size:13px;line-height:1.5;white-space:normal}.counted-results li span{display:block;color:#40515a}.rating-zero{color:#5b6470}.season-rating-card{border:2px solid #08243e;background:#fffdf8;padding:20px;margin:18px 0 32px}.season-rating-score{font-size:24px;font-weight:800}.season-rating-card p{line-height:1.6}.season-rating-card details{margin:14px 0}.ranking-table tr[data-provisional=true]{color:#425467}.ranking-table td{vertical-align:top}.ranking-table td:last-child{white-space:normal;min-width:145px}

.season-history{margin-top:22px}.season-history-entry{border-top:1px solid #b5c4ca;padding:16px 0}.season-history-entry h3{font-size:18px}.season-history-entry code{display:block;font-size:11px;overflow-wrap:anywhere}.season-history-entry li{margin:8px 0;overflow-wrap:anywhere}#season-state-status,#result-season-status{font-weight:700;line-height:1.5}#season-reason{width:100%;min-height:70px}.season-history summary{min-height:44px;padding:10px 0;cursor:pointer}

/* Transparent raster packs retain the same accessible achievement layout. */
.badge-art{display:block;flex:none;line-height:0}

/* Inline atlas badges share two cached web images. */
.badge-inline{display:block;flex:none;overflow:visible}.achievement-emblem.badge-inline{width:80px;height:85px}.badge-level .badge-inline{width:64px;height:68px;max-width:100%;margin:auto}.badge-level:is([data-state="locked"],[data-state="next"]) .badge-inline,.achievement-emblem.badge-inline.locked{filter:grayscale(.9);opacity:.55}

/* R16: compact city rating; native links and whole-row keyboard activation. */
.team-rating-row{cursor:pointer}.team-rating-row:hover{background:#fff3bb}.team-rating-row:focus-visible{outline:3px solid #c00063;outline-offset:-3px}.team-rating-link{display:block;min-height:44px;padding:12px 0;color:#062638;font-weight:800;text-decoration:underline;text-underline-offset:3px}.team-rating-link:focus-visible{outline:3px solid #c00063;outline-offset:3px}.ranking-table td:nth-child(2){min-width:145px}.ranking-table td:first-child,.ranking-table td:last-child{white-space:nowrap}

/* R16.1: all three public rating columns fit the phone viewport. */
.public-page[data-page="rating"] .table-wrap .ranking-table{width:100%;min-width:0;table-layout:fixed}
.public-page[data-page="rating"] .ranking-table th,.public-page[data-page="rating"] .ranking-table td{min-width:0;padding:10px 8px;overflow-wrap:anywhere}
.public-page[data-page="rating"] .ranking-table th:first-child,.public-page[data-page="rating"] .ranking-table td:first-child{width:18%}
.public-page[data-page="rating"] .ranking-table th:nth-child(2),.public-page[data-page="rating"] .ranking-table td:nth-child(2){width:58%;min-width:0;white-space:normal}
.public-page[data-page="rating"] .ranking-table th:last-child,.public-page[data-page="rating"] .ranking-table td:last-child{width:24%;min-width:0}
.public-page[data-page="rating"] .ranking-table td.empty{width:auto;white-space:normal;font-size:18px;line-height:1.5;padding:20px}
@media(max-width:600px){.public-page[data-page="rating"] .ranking-table th{font-size:12px}.public-page[data-page="rating"] .ranking-table td{font-size:14px}.public-page[data-page="rating"] .ranking-table th,.public-page[data-page="rating"] .ranking-table td{padding:9px 6px}.public-page[data-page="rating"] .team-rating-link{line-height:1.45}.public-page[data-page="rating"] .ranking-table td.empty{font-size:18px}}

/* R18: conditions under every badge, including locked and earned levels. */
.badge-level strong{font-size:14px;line-height:1.35;white-space:normal;overflow-wrap:normal;max-width:100%;text-align:center}.badge-level{height:100%}@media(max-width:480px){.achievement-levels.badge-levels{grid-template-columns:repeat(2,minmax(0,1fr))}}


/* R20: compact approved badge rows with an accessible in-flow tooltip. */
.achievement-tracks.achievement-tracks{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;gap:20px 24px}
.achievement-tracks.achievement-tracks .achievement-track:nth-child(n){padding:18px 16px;min-width:0;border:0;border-top:2px solid #cbd5d5;border-radius:0;background:transparent;box-shadow:none}
.achievement-track .achievement-track-head h3{font-size:23px;line-height:1.25;margin:0}
.achievement-track .achievement-scope{margin:7px 0 0;overflow-wrap:anywhere}
.achievement-track .achievement-levels.badge-levels{display:flex;flex-wrap:wrap;gap:10px;margin:15px 0 0;align-items:flex-start}
.achievement-tracks .achievement-levels .badge-level{display:grid;place-items:center;width:80px;height:88px;min-height:88px;padding:4px;gap:0;border:1px solid transparent;border-radius:10px;box-shadow:none;background:transparent;line-height:0}
.achievement-tracks .badge-level .badge-inline{width:70px;height:78px;max-width:100%;margin:0}
.achievement-tracks .badge-level:is([data-state=next],[data-state=locked]){background:#edf0eb;border-color:#d5dbd6}
.achievement-tracks .badge-level:is([data-state=next],[data-state=locked]) .badge-inline{filter:grayscale(.8);opacity:.62}
.achievement-tracks .badge-level:is([data-state=current],[data-state=max]){border-color:#bda338;background:#fff1b6}
.achievement-tracks .achievement-levels .badge-level[aria-expanded=true]{outline:3px solid #b40059;outline-offset:2px;background:#fff3f8}
.achievement-tracks .achievement-levels .badge-level:focus-visible{outline:3px solid #007da6;outline-offset:3px}
.achievement-tooltip{margin:16px 0 0;padding:18px;min-width:0;max-width:100%;border-left:4px solid #d00069;border-radius:0 8px 8px 0;background:#fffdf8;box-shadow:0 4px 14px #06263812;color:#10151c;overflow-wrap:anywhere;scroll-margin:100px 0 20px;line-height:1.5}
.achievement-tooltip h4{margin:0 0 9px;font:700 18px/1.3 var(--public-body,system-ui,sans-serif)}
.achievement-tooltip p{margin:7px 0;font-size:14px}
.achievement-tooltip .achievement-tooltip-goal{font-size:17px;font-weight:700}
.achievement-tooltip .achievement-tooltip-status{font-weight:700;color:#8d0049}
.achievement-tooltip .achievement-tooltip-note,.achievement-tooltip .achievement-tooltip-detail{font-size:13px;color:#40515a}
.achievement-tooltip .achievement-progress-copy{font-size:14px;font-weight:700}
.achievement-tooltip progress{display:block;width:100%;max-width:100%;height:8px;margin:9px 0 12px;accent-color:#b40059}
@media(max-width:760px){
 .achievement-tracks.achievement-tracks{grid-template-columns:minmax(0,1fr);gap:10px}
 .achievement-tracks.achievement-tracks .achievement-track:nth-child(n){padding:17px 12px}
 .achievement-track .achievement-levels.badge-levels{gap:8px}
 .achievement-tracks .achievement-levels .badge-level{width:68px;height:76px;min-height:76px;padding:3px}
 .achievement-tracks .badge-level .badge-inline{width:60px;height:68px}
 .achievement-tooltip{padding:14px;scroll-margin-top:155px}
}
