/* Owner: ranking-directory. Base and state rules retain order; conditional blocks own responsiveness. */
.ap-ranking-directory { container-type: inline-size; color: #04233a; max-width: 100%; margin: 24px 0; font-size: 15px; line-height: 1.5; }
.ap-ranking-directory * { box-sizing: border-box; }
.ap-ranking-directory__header h2 { margin: 0 0 8px!important; font-size: var(--ap-ui-title-size); line-height: var(--ap-ui-title-line); color: inherit; }
.ap-ranking-directory__header p { color: #657381; margin: 0 0 22px; }
.ap-ranking-directory__tabs { display: flex; border-bottom: 1px solid #dce4eb; padding-bottom: 12px; margin-bottom: 22px; }
.ap-ranking-directory__tabs a { border-radius: var(--ap-ui-radius,0px); color: #04233a; text-decoration: none; font-weight: 700; }
.ap-ranking-directory__filters { display: flex; flex-wrap: wrap; align-items: end; gap: 12px; margin: 0 0 20px; }
.ap-ranking-directory__filters label { display: block; flex: 1 1 180px; margin: 0; min-width: 0; }
.ap-ranking-directory__filters label:first-of-type { flex: 2 1 240px; }
.ap-ranking-directory__filters label>span:not(.ap-ui-select) { display: block; font-weight: 700; font-size: 12px; margin-bottom: 5px; }
.ap-ranking-directory__filters input[type=search],.ap-ranking-directory__filters select { width: 100%; height: 44px; min-width: 0; border: 1px solid #cbd6df; border-radius: var(--ap-ui-radius,0px); background: #fff; color: #04233a; padding: 8px 12px; font: inherit; }
.ap-ranking-directory__filters button { height: 44px; padding: 8px 22px; border: 1px solid #04233a; border-radius: var(--ap-ui-radius,0px); background: #04233a; color: #fff; font: inherit; font-weight: 700; cursor: pointer; }
.ap-ranking-directory .ap-ranking-directory__reset { display: inline-flex; align-self: flex-end; align-items: center; justify-content: center; gap: 8px; height: var(--ap-ui-field-height,48px); min-height: var(--ap-ui-field-height,48px); padding: 0 var(--ap-ui-field-padding,18px); margin: 0; border: 1px solid #d0dce5; border-radius: var(--ap-ui-radius,4px); background: #fff; color: #04233a; font-family: inherit; font-size: var(--ap-ui-field-font-size,16px); font-weight: 600; line-height: 1.4; text-align: center; text-decoration: none; white-space: nowrap; }
.ap-ranking-directory .ap-ranking-directory__reset:hover { border-color: #b42318; background: #fff5f5; color: #04233a; text-decoration: none; }
.ap-ranking-directory .ap-ranking-directory__reset-icon { display: block; flex: 0 0 20px; width: 20px; height: 20px; margin: 0; color: #b42318; }
.ap-ranking-directory__meta { display: flex; align-items: center; margin-bottom: 12px; gap: 12px; justify-content: space-between; flex-wrap: wrap; color: #657381; font-size: 12px; }
.ap-ranking-directory .ap-ranking-directory__meta p { margin: 0!important; padding: 0; font: inherit; }
.ap-ranking-directory__meta-actions { display: flex; align-items: center; justify-content: flex-end; flex-wrap: wrap; gap: 8px 16px; margin-inline-start: auto; min-width: 0; }
.ap-ranking-directory .ap-ranking-directory__meta-actions>p { display: inline-flex; align-items: center; gap: 4px; min-height: 24px; white-space: nowrap; }
.ap-ranking-directory__meta-actions>p::before { content: ""; display: block; flex: 0 0 1px; height: 14px; margin-inline-end: 12px; background: #cbd6df; }
.ap-ranking-directory .ap-ranking-directory__table { width: 100%; table-layout: fixed; border-collapse: collapse; border: 0; margin: 0; background: #fff; }
.ap-ranking-directory .ap-ranking-directory__table th,.ap-ranking-directory .ap-ranking-directory__table td { border: 0; border-bottom: 1px solid #e5ebf0; padding: 12px 10px; vertical-align: middle; background: transparent; color: inherit; line-height: 1.4; }
.ap-ranking-directory .ap-ranking-directory__table thead th { font-size: 12px; font-weight: 700; text-transform: none; }
.ap-ranking-directory .ap-rd-rank { width: 76px; text-align: center; font-variant-numeric: tabular-nums; }
.ap-ranking-directory .ap-rd-rank strong { font-size: 17px; }
.ap-ranking-directory .ap-rd-rank small { display: block; font-size: 11px; color: #687987; line-height: 1.3; margin-top: 3px; }
.ap-ranking-directory .ap-rd-player { text-align: left; font-size: 15px; overflow-wrap: anywhere; font-weight: 700; }
.ap-ranking-directory .ap-rd-player a { color: inherit; text-decoration: none; }
.ap-ranking-directory .ap-rd-player a:hover { text-decoration: underline; }
.ap-rd-identity { display: flex; align-items: center; gap: 10px; min-width: 0; }
.ap-rd-identity>div { min-width: 0; }
.ap-rd-portrait { width: 36px; height: 36px; flex: none; object-fit: cover; border-radius: 50%; }
.ap-ranking-directory .ap-rd-player small { display: block; font-size: 11px; color: #687987; font-weight: 400; margin-top: 4px; }
.ap-ranking-directory .ap-ranking-country { display: inline-flex; align-items: center; gap: 5px; }
.ap-ranking-directory .ap-country-flag { width: 18px; height: 13px; object-fit: cover; display: inline-block; }
.ap-ranking-directory .ap-rd-points { width: 112px; text-align: right; font-weight: 700; font-variant-numeric: tabular-nums; }
.ap-ranking-directory .ap-rd-elo { width: 92px; text-align: right; font-size: 13px; color: #657381; font-variant-numeric: tabular-nums; }
.ap-ranking-directory .ap-rd-player .ap-rd-mobile-elo { display: none; }
.ap-ranking-directory__pagination { display: flex; align-items: center; justify-content: center; flex-wrap: wrap; gap: 18px; margin: 24px 0; font-size: 13px; }
.ap-ranking-directory__pagination a { display: inline-block; border: 1px solid #d3dfe8; border-radius: var(--ap-ui-radius,0px); padding: 8px 14px; color: #04233a; text-decoration: none; }
.ap-ranking-directory__pagination a:hover { background: #f1f5f8; }
.ap-ranking-directory__note,.ap-ranking-directory .ap-fip-references { font-size: 12px; color: #627484; margin: 10px 0; line-height: 1.6; }
.ap-ranking-directory .ap-fip-references a { color: inherit; }
.ap-ranking-directory__message { padding: 16px; background: #f1f5f8; border-radius: var(--ap-ui-radius,0px); }
.ap-ranking-directory__sr { position: absolute; width: 1px; height: 1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
.ap-ranking-directory :focus-visible { outline: 2px solid #1766b1; outline-offset: 3px; }
@container (max-width:540px) {
  .ap-ranking-directory .ap-rd-elo { display: none; }
  .ap-ranking-directory .ap-rd-player .ap-rd-mobile-elo { display: block; }
  .ap-ranking-directory .ap-rd-rank { width: 46px; }
  .ap-ranking-directory .ap-rd-points { width: 76px; }
  .ap-ranking-directory .ap-ranking-directory__table th,.ap-ranking-directory .ap-ranking-directory__table td { padding: 11px 5px; }
  .ap-ranking-directory .ap-rd-player { font-size: 14px; }
  .ap-ranking-directory__filters label,.ap-ranking-directory__filters label:first-of-type { flex-basis: 100%; }
  .ap-ranking-directory .ap-rd-portrait { display: none; }
}
.ap-ranking-directory__header h2 { overflow-wrap: anywhere; margin-bottom: 20px!important; }
.ap-ranking-directory__tabs { gap: 4px; border: 0; padding: 4px; background: #edf2f5; border-radius: var(--ap-ui-radius,0px); width: 100%; max-width: 100%; }
.ap-ranking-directory__tabs a { flex: 1; min-height: 44px; text-align: center; padding: 10px 22px; background: transparent; }
.ap-ranking-directory__tabs a[aria-current] { background: #f4c430; box-shadow: none; color: #04233a; }
.ap-ranking-directory .ap-ranking-directory__table tbody tr:hover { background: #f7fafc; }
.ap-ranking-directory .ap-ranking-directory__table thead th { background: #edf2f5; color: #405969; }
.ap-ranking-directory .ap-rd-points { font-size: 17px; }
.ap-ranking-directory .ap-rd-portrait { width: 36px; height: 44px; border-radius: var(--ap-ui-radius,0px); object-position: center 20%; }
.ap-ranking-directory .ap-rd-rank small,.ap-ranking-directory .ap-rd-player small,.ap-ranking-directory__meta,.ap-ranking-directory__note { color: #486174; }
.ap-ranking-directory__source { font-size: 12px; color: #486174; margin: 16px 0; }
.ap-ranking-directory__source summary { cursor: pointer; align-content: center; }
.ap-ranking-directory__pagination a { min-height: 44px; align-content: center; }
@container(max-width:540px) {
  .ap-ranking-directory .ap-rd-portrait { display: block; width: 28px; height: 36px; }
  .ap-ranking-directory .ap-rd-identity { gap: 6px; flex-wrap: wrap; }
  .ap-ranking-directory .ap-rd-points { font-size: 15px; }
  .ap-ranking-directory__tabs { width: 100%; }
  .ap-ranking-directory__tabs a { flex: 1; padding: 10px 12px; }
}

/* Compact display preference accompanies the date without disturbing search controls. */
.ap-ranking-directory .ap-ranking-directory__options { display: flex; align-items: center; flex: 0 0 auto; min-width: 0; }
.ap-ranking-directory .ap-ranking-directory__options label { display: inline-flex; flex: none; align-items: center; gap: 6px; min-height: 24px; margin: 0; color: #486174; font: inherit; font-size: 12px; font-weight: 400; cursor: pointer; }
.ap-ranking-directory .ap-ranking-directory__options input[type=checkbox] { appearance: auto; position: static; display: inline-block; flex: 0 0 14px; width: 14px; height: 14px; margin: 0; opacity: 1; accent-color: #04233a; cursor: pointer; }
.ap-ranking-directory .ap-ranking-directory__options label>span { display: inline; margin: 0; font: inherit; }
.ap-ranking-directory [data-ap-ranking-elo][hidden] { display: none!important; }

/* FIP movement remains independent of the optional Elo column. */
.ap-ranking-directory .ap-ranking-directory__table .ap-rd-movement { width: 136px; padding-inline: 20px 32px; text-align: right; font-variant-numeric: tabular-nums; }
.ap-ranking-directory .ap-ranking-directory__table td.ap-rd-movement { font-size: 20px; font-weight: 700; white-space: nowrap; }
.ap-ranking-directory .ap-rd-movement strong { font: inherit; }
.ap-ranking-directory .ap-rd-movement .ap-rd-gain { color: #145337; }
.ap-ranking-directory .ap-rd-movement .ap-rd-loss { color: #8c2e22; }
.ap-ranking-directory .ap-rd-movement .ap-rd-neutral { color: #425a6a; }
@container(max-width:540px) {
  .ap-ranking-directory .ap-ranking-directory__table .ap-rd-movement { width: 104px; padding-inline: 8px 16px; }
  .ap-ranking-directory .ap-ranking-directory__table th.ap-rd-movement { font-size: 11px; overflow-wrap: anywhere; }
  .ap-ranking-directory .ap-ranking-directory__table td.ap-rd-movement { font-size: 17px; }
  .ap-ranking-directory .ap-ranking-directory__table .ap-rd-points { width: 66px; }
}

/* AJAX keeps the current table stable until a validated fragment is ready. */
.ap-ranking-directory { scroll-margin-top: 100px; }
.ap-ranking-directory .ap-ranking-directory__load-status { margin: 0 0 12px; padding: 10px 12px; background: #edf2f5; color: #04233a; font-size: 13px; }
.ap-ranking-directory .ap-ranking-directory__load-status[hidden],.ap-ranking-directory [data-ap-ranking-fallback][hidden] { display:none!important; }
.ap-ranking-directory__load-status a { color: #04233a; font-weight: 700; text-decoration: underline; }
.ap-ranking-directory[aria-busy=true] .ap-ranking-directory__pagination { opacity: .6; }
