.rankings-module { display: grid; gap: 16px; }
.rankings-toolbar { padding: 16px; border: 1px solid rgba(74, 133, 204, .25); background: rgba(8, 20, 37, .8); }
.rankings-search { display: flex; gap: 10px; align-items: center; }
.rankings-search .form-control { flex: 1 1 auto; min-width: 0; }
.rankings-tabs { display: flex; flex-wrap: wrap; gap: 0; padding: 0 12px; border: 1px solid rgba(74, 133, 204, .25); background: rgba(8, 20, 37, .8); }
.rankings-tabs a { position: relative; padding: 15px 13px; color: #9eb5d2; font-size: 12px; text-decoration: none; }
.rankings-tabs a::after { content: ''; position: absolute; right: 13px; bottom: 7px; left: 13px; height: 2px; background: transparent; }
.rankings-tabs a:hover, .rankings-tabs a.active { color: #62e4ff; }
.rankings-tabs a.active::after { background: #00d9ff; box-shadow: 0 0 12px rgba(0, 217, 255, .55); }
.rankings-class-filter { display: grid; grid-template-columns: repeat(8, minmax(58px, 1fr)); gap: 8px; padding: 12px 10px; border: 1px solid rgba(74, 133, 204, .25); background: rgba(8, 20, 37, .8); }
.class-filter { display: flex; min-height: 92px; align-items: center; justify-content: center; gap: 5px; padding: 7px 3px; border: 1px solid transparent; color: #8ea5c2; flex-direction: column; text-align: center; text-decoration: none; }
.class-filter img { width: 52px; height: 52px; object-fit: contain; filter: drop-shadow(0 5px 8px rgba(0, 0, 0, .35)); }
.class-filter span { color: #a9bdd8; font-size: 12px; font-weight: 800; letter-spacing: .03em; }
.class-filter:hover, .class-filter.active { border-color: rgba(0, 217, 255, .7); background: rgba(0, 217, 255, .08); }
.class-filter:hover span, .class-filter.active span { color: #62e4ff; }
.rankings-table-shell { overflow: hidden; border: 1px solid rgba(74, 133, 204, .25); background: #071426; }
.rankings-table-full { width: 100%; min-width: 0; table-layout: fixed; border-collapse: collapse; }
.rankings-table-full th { padding: 15px 11px; color: #62e4ff; font-size: 11px; font-weight: 800; letter-spacing: .04em; text-align: left; white-space: nowrap; background: #11223b; }
.rankings-table-full td { padding: 13px 11px; border-top: 1px solid rgba(74, 133, 204, .18); color: #c6d8ed; font-size: 14px; white-space: nowrap; }
.rankings-table-full th, .rankings-table-full td { overflow: hidden; text-overflow: ellipsis; }
.rankings-table-full.standard th:nth-child(1), .rankings-table-full.standard td:nth-child(1) { width: 5%; }
.rankings-table-full.standard th:nth-child(2), .rankings-table-full.standard td:nth-child(2) { width: 22%; }
.rankings-table-full.standard th:nth-child(3), .rankings-table-full.standard td:nth-child(3) { width: 16%; }
.rankings-table-full.standard th:nth-child(4), .rankings-table-full.standard td:nth-child(4) { width: 18%; }
.rankings-table-full.standard th:nth-child(5), .rankings-table-full.standard td:nth-child(5) { width: 13%; }
.rankings-table-full.standard th:nth-child(6), .rankings-table-full.standard td:nth-child(6) { width: 16%; }
.rankings-table-full.standard th:nth-child(7), .rankings-table-full.standard td:nth-child(7) { width: 10%; }
.rankings-table-full.has-result th:nth-child(1), .rankings-table-full.has-result td:nth-child(1) { width: 5%; }
.rankings-table-full.has-result th:nth-child(2), .rankings-table-full.has-result td:nth-child(2) { width: 19%; }
.rankings-table-full.has-result th:nth-child(3), .rankings-table-full.has-result td:nth-child(3) { width: 15%; }
.rankings-table-full.has-result th:nth-child(4), .rankings-table-full.has-result td:nth-child(4) { width: 17%; }
.rankings-table-full.has-result th:nth-child(5), .rankings-table-full.has-result td:nth-child(5) { width: 12%; }
.rankings-table-full.has-result th:nth-child(6), .rankings-table-full.has-result td:nth-child(6) { width: 12%; }
.rankings-table-full.has-result th:nth-child(7), .rankings-table-full.has-result td:nth-child(7) { width: 12%; }
.rankings-table-full.has-result th:nth-child(8), .rankings-table-full.has-result td:nth-child(8) { width: 8%; }
.rankings-table-full .ranking-player-cell { padding-left: 8px; text-align: left; }
.rankings-table-full .ranking-guild-cell { text-align: left; }
.rankings-table-full tbody tr:nth-child(odd) td { background: #071426; }
.rankings-table-full tbody tr:nth-child(even) td { background: #0b1a2f; }
.rankings-table-full tr:hover td { background: rgba(0, 217, 255, .08); }
.rankings-table-full th:first-child, .rankings-table-full td:first-child { width: 42px; text-align: center; }
.rankings-table-full .rankings-table-place { color: #62e4ff; font-size: 20px; font-weight: 800; }
.ranking-player-cell a, .ranking-guild-cell a { color: #f0c56f; font-size: 16px; font-weight: 700; text-decoration: none; }
.ranking-player-cell a:hover, .ranking-guild-cell a:hover { color: #62e4ff; text-decoration: underline; }
.ranking-player-cell, .ranking-guild-cell { overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: anywhere; word-break: break-word; }
.ranking-guild-cell { max-width: none; }
.rankings-table-full .rankings-class-image { width: 36px; height: 36px; margin-right: 7px; object-fit: contain; vertical-align: middle; filter: drop-shadow(0 4px 5px rgba(0, 0, 0, .35)); }
.rankings-table-full .class-code { display: inline-block; padding: 6px 9px; border-radius: 5px; color: #c8ddfb; font-size: 12px; font-weight: 800; vertical-align: middle; background: #122c4d; }
.ranking-muted { color: #7189a8; font-size: 11px; }
.ranking-check { color: #55ef9a; font-size: 16px; }
.rankings-note { margin: 0; color: #7189a8; font-size: 11px; }
@media (max-width: 760px) {
    .rankings-search { align-items: stretch; flex-direction: column; }
    .rankings-search .btn { width: 100%; }
    .rankings-tabs { padding: 0 6px; }
    .rankings-tabs a { padding: 12px 8px; font-size: 11px; }
    .rankings-tabs a::after { right: 8px; left: 8px; }
    .rankings-class-filter { grid-template-columns: repeat(4, minmax(60px, 1fr)); }
    .rankings-table-full th, .rankings-table-full td { padding: 10px 5px; font-size: 10px; }
    .rankings-table-full .ranking-player-cell { padding-left: 10px; }
    .rankings-table-full .rankings-table-place { font-size: 15px; }
    .ranking-player-cell a, .ranking-guild-cell a { font-size: 12px; }
    .rankings-table-full .rankings-class-image { width: 25px; height: 25px; margin-right: 3px; }
    .rankings-table-full .class-code { padding: 4px 5px; font-size: 10px; }
}
