/* `site_rating_new.js` reveals initially hidden podium columns with fadeIn().
   FastAPI renders the same source DOM on the server, so reveal it directly
   instead of importing jQuery or a second, approximate rating cascade. */
.legacy-rating-podium .rating-place-column{display:block}.legacy-rating-podium .rating-place-item{display:block;min-height:0;padding:0;border:0;box-shadow:none}.legacy-rating-podium .rating-place-item__image{width:100%;box-sizing:border-box}.legacy-rating-podium .rating-place-item__image--empty{background:linear-gradient(135deg,#4b4964,#29283c)}.legacy-rating-stats .rating-table__status{background:transparent}
.legacy-rating-podium .rating-descr:not([hidden]){display:block}
@media(max-width:639px){.legacy-rating-podium .rating-place-column{width:100%;flex:1 1 100%}}
@media(max-width:767px){.legacy-public:has(.legacy-rating-types) .page-top--rating{min-height:170px;padding:80px 0 30px}.legacy-public:has(.legacy-rating-types) .page-top--rating h1{font-family:'Code-Pro-Black-LC',sans-serif;font-size:30px;line-height:45px}}
@media(max-width:767px){.legacy-rating-podium{padding:60px 0 40px}}@media(max-width:639px){.legacy-rating-podium .rating-place-row{margin:0 -10px}.legacy-rating-podium .rating-place-column{max-width:100%;min-height:200px;padding:0 10px;margin-bottom:40px}}
/* rating.css keeps the mobile 15px gutter through a 15px wrapper, -10px row
   and +10px column pair.  Do not add a second FastAPI-only gutter. */
@media(max-width:639px){.legacy-rating-podium .rating-place-row{margin:0 -10px}.legacy-rating-podium .rating-place-column{padding:0 10px}.legacy-rating-podium .rating-descr{margin:9px auto 0}}

/* Live site_rating.php desktop uses Code Pro for the hero/place number and
   Myriad for team names/table cells.  Do not inherit article/tag serif repair. */
.legacy-public:has(.legacy-rating-types) .page-top--rating h1,.legacy-rating-podium .rating-place-item__number{font-family:'Code Pro Black','Arial Black',sans-serif}.legacy-rating-podium .rating-place-item__title,.legacy-rating-stats .rating-table table{font-family:'MyriadPro',Arial,sans-serif}
.legacy-rating-stats .rating-table th[data-sort-url]{cursor:pointer}
/* The original fixed status width and nowrap names can make the table wider
   than its page. Keep every cell within a shared, bounded column layout. */
.legacy-rating-stats .rating-body,.legacy-rating-stats [data-rating-results]{min-width:0}
.legacy-rating-stats .rating-table{max-width:100%;overflow:visible}
.legacy-rating-stats .rating-table table{width:100%;table-layout:fixed}
.legacy-rating-stats .rating-table__column--place{width:7%}
.legacy-rating-stats .rating-table__column--team{width:26%}
.legacy-rating-stats .rating-table--cities .rating-table__column--team{width:15%}
.legacy-rating-stats .rating-table__column--city{width:11%}
.legacy-rating-stats .rating-table__column--games,.legacy-rating-stats .rating-table__column--wins{width:12%}
.legacy-rating-stats .rating-table__column--average,.legacy-rating-stats .rating-table__column--points{width:14%}
.legacy-rating-stats .rating-table__column--status{width:15%}
.legacy-rating-stats .rating-table th{padding:10px 25px 10px 6px;white-space:normal;overflow-wrap:anywhere}
.legacy-rating-stats .rating-table td{padding:10px 6px;white-space:normal;overflow-wrap:anywhere}
.legacy-rating-stats .rating-table th:first-child,.legacy-rating-stats .rating-table td:first-child{width:auto;padding-left:6px}
.legacy-rating-stats .rating-table td:last-child{padding:10px 6px}
.legacy-rating-stats .rating-table td[data-rating-label],.legacy-rating-stats .rating-table__cell--place{white-space:nowrap;overflow-wrap:normal;font-variant-numeric:tabular-nums}
.legacy-rating-stats .rating-table__team{display:flex;flex-wrap:wrap;align-items:center;gap:4px;min-width:0}
.legacy-rating-stats .rating-table__team a{min-width:0;overflow-wrap:anywhere}
.legacy-rating-stats .rating-table__crown{flex:0 0 18px;margin:0}
.legacy-rating-stats .rating-table__crown img{display:block;max-width:100%;height:auto}
.legacy-rating-podium .rating-place-column,.legacy-rating-podium .rating-place-item__title{min-width:0;max-width:100%;overflow-wrap:anywhere}
.legacy-rating-stats .rating-table__status{display:flex;flex-direction:column;align-items:flex-start;gap:5px;min-width:0;width:auto;max-width:100%;font-size:14px;line-height:1.3}
.legacy-rating-stats .rating-table__status img{display:block;max-width:100%;width:auto;height:auto;max-height:64px;object-fit:contain}
.legacy-rating-stats .rating-table__status span{min-width:0;max-width:100%;white-space:normal;overflow-wrap:anywhere}
.legacy-rating-types [data-rating-filter-url]:focus-visible{outline:3px solid #fcea1c;outline-offset:-3px}
.rating-detective-notice{margin:12px 0;padding:10px 14px;border-left:4px solid #a3ce22;background:#f3f8e7;color:#263217;font-size:14px;line-height:1.45}
.legacy-rating-stats .rating-table__status--detective{color:#263217;font-weight:700}
.legacy-rating-stats .rating-table__status--detective img{width:46px;height:46px}
.rating-descr table img{width:64px;height:64px;object-fit:contain;vertical-align:middle}
.legacy-rating-stats [data-rating-results][aria-busy='true']{opacity:.58;transition:opacity .16s ease}.legacy-rating-stats .legacy-rating-load-status{margin:16px 0 0;color:#4b4964;font-size:15px;line-height:1.4}.legacy-rating-stats .legacy-rating-load-status__retry{margin-left:8px;border:0;border-bottom:1px solid currentColor;padding:0;color:inherit;background:transparent;font:inherit;cursor:pointer}.legacy-rating-stats .legacy-rating-load-status__retry:focus-visible{outline:2px solid #fcea1c;outline-offset:3px}@media(prefers-reduced-motion:reduce){.legacy-rating-stats [data-rating-results][aria-busy='true']{transition:none}}
/* The bundled local Roboto has a 0.35px wider word metric than the source
   Google-served face. This preserves the observed 100.5px source CTA width
   without adding a runtime CDN dependency. */
.legacy-rating-types .games-category-tag__btn{font-size:10px;font-weight:500;letter-spacing:-.35px}.legacy-rating-types .games-category-tag__btn .fa-arrow-right{position:relative;display:inline-block;width:8.75px;height:10px;vertical-align:-1px}.legacy-rating-types .games-category-tag__btn .fa-arrow-right::before{position:absolute;top:2px;left:1px;width:5px;height:5px;border-top:1px solid currentColor;border-right:1px solid currentColor;content:"";transform:rotate(45deg)}
.legacy-rating-stats tbody tr[data-team-id]:focus-visible td{outline:3px solid #fcea1c;outline-offset:-3px}
@media(max-width:767px){.rating-detective-notice{font-size:12px}}
.legacy-rating-stats .rating-infinite-sentinel{display:grid;min-height:38px;place-items:center}.legacy-rating-stats .rating-infinite-sentinel::after{width:16px;height:16px;border:2px solid rgb(90 88 126 / 22%);border-top-color:#5a587e;border-radius:50%;content:"";opacity:0}.legacy-rating-stats [data-rating-results][aria-busy='true'] .rating-infinite-sentinel::after{opacity:1;animation:legacy-rating-spin .68s linear infinite}@keyframes legacy-rating-spin{to{transform:rotate(360deg)}}@media(prefers-reduced-motion:reduce){.legacy-rating-stats [data-rating-results][aria-busy='true'] .rating-infinite-sentinel::after{animation:none}}
.legacy-rating-podium[aria-busy='true']{opacity:.58;transition:opacity .16s ease}@media(prefers-reduced-motion:reduce){.legacy-rating-podium[aria-busy='true']{transition:none}}

/* Preserve full numbers at narrow widths by placing the four metrics below
   each team's identity. The native table, sortable headings and cell order
   stay in the document; no value is hidden or abbreviated for this layout. */
@media(max-width:1100px){
  .legacy-rating-stats .rating-table table,.legacy-rating-stats .rating-table thead,.legacy-rating-stats .rating-table tbody{display:block}
  .legacy-rating-stats .rating-table colgroup{display:none}
  .legacy-rating-stats .rating-table thead tr{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
  .legacy-rating-stats .rating-table th{display:flex;align-items:center;min-width:0;min-height:44px;height:auto;padding:8px;border-bottom:1px solid #616074}
  .legacy-rating-stats .rating-table .rating-filter-arrows{display:none}
  .legacy-rating-stats .rating-table tbody tr[data-team-id]{--rating-identity-rows:1;--rating-metric-row:2;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));row-gap:8px;padding:12px 0;border-bottom:1px solid #d5d5d9}
  .legacy-rating-stats .rating-table--cities tbody tr[data-team-id]{--rating-identity-rows:2;--rating-metric-row:3}
  .legacy-rating-stats .rating-table tbody tr[data-team-id] td{display:block;min-width:0;width:auto;padding:6px 4px;border:0}
  .legacy-rating-stats .rating-table__cell--place{grid-column:1;grid-row:1 / span var(--rating-identity-rows)}
  .legacy-rating-stats .rating-table__cell--team{grid-column:2 / span 7;grid-row:1}
  .legacy-rating-stats .rating-table__cell--city{grid-column:2 / span 7;grid-row:2}
  .legacy-rating-stats .rating-table__cell--status{grid-column:9 / span 4;grid-row:1 / span var(--rating-identity-rows)}
  .legacy-rating-stats .rating-table__cell--games{grid-column:1 / span 3;grid-row:var(--rating-metric-row)}
  .legacy-rating-stats .rating-table__cell--wins{grid-column:4 / span 3;grid-row:var(--rating-metric-row)}
  .legacy-rating-stats .rating-table__cell--average{grid-column:7 / span 3;grid-row:var(--rating-metric-row)}
  .legacy-rating-stats .rating-table__cell--points{grid-column:10 / span 3;grid-row:var(--rating-metric-row)}
  .legacy-rating-stats .rating-table td[data-rating-label]::before{display:block;margin-bottom:5px;color:#6b677b;content:attr(data-rating-label);font-size:12px;line-height:1.3;white-space:normal}
}
@media(max-width:767px){
  .legacy-rating-stats .center-wrapper{padding-right:15px}
  .legacy-rating-stats .rating-table__status{font-size:12px}
  .legacy-rating-stats .rating-table__status--detective img{width:40px;height:40px}
}
