/* === CONSOLIDATED RANKING PAGE (ranking.php) === */
/* Widen the shared 880px content column — the 15-column table needs room. */
.rk-wrap{max-width:1400px}
.rk-card{padding:2rem 2.25rem 2.5rem}

/* --- Header --- */
.rk-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.25rem}
.rk-head h1{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.9rem;color:#312E81}
.rk-title{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap}
.rk-sub{font-size:.9rem;color:#6D28D9;margin-top:.35rem}
.rk-meta{display:flex;align-items:center;gap:.9rem}
.rk-asof{font-size:.8rem;color:#7C7A9C}
.rk-refresh{
    font-family:'Nunito',sans-serif;font-weight:700;font-size:.85rem;
    color:#fff;background:#7C3AED;padding:.55rem 1rem;border-radius:12px;text-decoration:none;
    box-shadow:0 3px 10px rgba(124,58,237,.35);transition:background .2s;
}
.rk-refresh:hover{background:#6D28D9}
.rk-refresh:focus-visible{outline:2px solid #A78BFA;outline-offset:2px}

/* --- Banners --- */
.rk-banner{background:#FEF3C7;border:1px solid #FCD34D;color:#92400E;border-radius:12px;padding:.7rem 1rem;font-size:.88rem;margin-bottom:1rem}
.rk-banner--error{background:#FEE2E2;border-color:#FCA5A5;color:#991B1B}
.rk-banner a{color:inherit;font-weight:700}

/* --- Stat strip --- */
.rk-stats{display:flex;flex-wrap:wrap;gap:.9rem;margin-bottom:1.25rem}
.rk-stat{background:#F5F3FF;border:1px solid #DDD6FE;border-radius:16px;padding:.7rem 1.2rem;display:flex;flex-direction:column;min-width:110px}
.rk-stat-n{font-family:'Fredoka',sans-serif;font-weight:700;font-size:1.45rem;color:#312E81}
.rk-stat-l{font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#8B5CF6}
.rk-stat-sktbi{background:#ECFDF5;border-color:#A7F3D0}
.rk-stat-sktbi .rk-stat-n{color:#065F46}
.rk-stat-sktbi .rk-stat-l{color:#059669}

/* ⓘ member tooltip on the team stat cards (hover on desktop, tap on touch) */
.rk-info{position:relative;display:inline-flex;margin-left:.4rem;vertical-align:2px}
.rk-info-btn{
    width:16px;height:16px;border-radius:50%;border:none;cursor:pointer;
    background:#10B981;color:#fff;
    font:italic 700 11px/16px Georgia,serif;text-align:center;padding:0;
}
.rk-info-btn:hover{background:#059669}
.rk-info-btn:focus-visible{outline:2px solid #A78BFA;outline-offset:2px}
.rk-info-tip{
    display:none;position:absolute;top:calc(100% + 9px);left:-8px;z-index:70;
    width:max-content;max-width:255px;padding:.65rem .85rem;border-radius:10px;
    background:#1E1B4B;color:#F5F3FF;
    font-family:'Nunito',sans-serif;font-size:.74rem;font-weight:600;line-height:1.5;
    text-align:left;text-transform:none;letter-spacing:normal;white-space:normal;
    box-shadow:0 6px 20px rgba(30,27,75,.35);
}
.rk-info-tip::before{
    content:"";position:absolute;top:-5px;left:12px;
    border-left:6px solid transparent;border-right:6px solid transparent;
    border-bottom:6px solid #1E1B4B;
}
.rk-info-row{display:block}
.rk-info-row + .rk-info-row{margin-top:.25rem}
.rk-info-row strong{color:#A7F3D0}
.rk-info:hover .rk-info-tip,
.rk-info:focus-within .rk-info-tip{display:block}
/* Desktop has room: one line per member. Mobile keeps wrapping (a long
   name + role is wider than the screen). */
@media(min-width:768px){
    .rk-info-tip{max-width:480px}
    .rk-info-row{white-space:nowrap}
}

/* Mobile stats: one slim summary line + a single merged TEAM BIPS card
   (replaces the five cards below 768px — they pushed the table off-screen). */
.rk-stats-m{display:none}
.rk-stats-line{font-size:.85rem;color:#6D28D9;margin-bottom:.5rem}
.rk-stats-line strong{font-family:'Fredoka',sans-serif;font-size:1rem;color:#312E81}
.rk-team-card{background:#ECFDF5;border:1px solid #A7F3D0;border-radius:14px;padding:.35rem .9rem}
.rk-team-row{display:flex;align-items:baseline;gap:.75rem;padding:.4rem 0}
.rk-team-row + .rk-team-row{border-top:1px solid #D1FAE5}
.rk-team-name{font-family:'Fredoka',sans-serif;font-weight:700;font-size:.92rem;color:#065F46;flex:1}
.rk-team-rank{font-size:.78rem;color:#059669;white-space:nowrap}
.rk-team-rank strong{font-weight:800;color:#065F46}

/* --- Filters --- */
.rk-filters{display:flex;flex-wrap:wrap;gap:.6rem;align-items:center;margin-bottom:1rem}
.rk-state{
    font-family:'Nunito',sans-serif;font-weight:700;font-size:.88rem;color:#4C1D95;
    background:#EDE9FE;border:1px solid #DDD6FE;border-radius:12px;
    padding:.5rem 2.4rem .5rem .9rem;
    cursor:pointer;appearance:none;-webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%237C3AED' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;background-position:right .9rem center;
}
.rk-state:hover{background:#DDD6FE}
.rk-state:focus-visible{outline:2px solid #A78BFA;outline-offset:1px}
.rk-search{
    flex:1;min-width:200px;font-family:'Nunito',sans-serif;font-size:.88rem;
    padding:.5rem .9rem;border:1px solid #DDD6FE;border-radius:12px;background:#fff;color:#1E1B4B;
}
.rk-search:focus{outline:2px solid #A78BFA;outline-offset:1px}

/* --- Table --- */
.rk-scroll{overflow-x:auto;border:1px solid #EDE9FE;border-radius:14px}
.rk-table{width:100%;border-collapse:collapse;font-size:.85rem;min-width:1150px}
.rk-table thead th{position:sticky;top:0;background:#312E81;z-index:1;padding:0;text-align:left}
.rk-table thead button{
    font-family:'Nunito',sans-serif;font-weight:700;font-size:.78rem;color:#EDE9FE;
    background:none;border:none;cursor:pointer;padding:.7rem .65rem;width:100%;text-align:left;white-space:nowrap;
}
.rk-table thead button:hover{color:#fff}
.rk-table th[aria-sort="ascending"] .rk-arrow::after{content:" ▲"}
.rk-table th[aria-sort="descending"] .rk-arrow::after{content:" ▼"}
/* Plain (non-sortable) header labels — used by the archive final table */
.rk-th{
    display:block;padding:.7rem .65rem;
    font-family:'Nunito',sans-serif;font-weight:700;font-size:.78rem;color:#EDE9FE;
    text-align:left;white-space:nowrap;
}
.rk-table tbody td{padding:.55rem .65rem;border-top:1px solid #F1EFFB;white-space:nowrap}
.rk-table tbody tr:hover{background:#F3F0FF}
.rk-school{font-weight:700}
.rk-best{font-weight:800;color:#312E81}
.rk-rank{display:inline-block;min-width:1.9rem;text-align:center;font-weight:800}
.rk-top1,.rk-top2,.rk-top3{border-radius:8px;color:#fff;padding:.1rem .35rem}
.rk-top1{background:#D97706}
.rk-top2{background:#94A3B8}
.rk-top3{background:#B45309}
tr.rk-sktbi{background:#ECFDF5;box-shadow:inset 3px 0 0 #10B981}
tr.rk-sktbi:hover{background:#D1FAE5}
tr.rk-sktbi td{font-weight:700}
.rk-count{margin-top:.8rem;font-size:.8rem;color:#7C7A9C;text-align:right}

/* --- National final card (live + archive pages) --- */
.rk-final{margin-top:1.5rem}
.rk-empty-row td{
    text-align:center;padding:1.6rem 1rem;white-space:normal;
    color:#7C7A9C;font-weight:600;font-size:.88rem;
}

/* --- Mobile --- */
@media(max-width:767px){
    .rk-card{padding:1.25rem 1rem 1.75rem}
    .rk-head h1{font-size:1.45rem}
    .rk-search{min-width:100%}
    .rk-stats{display:none}
    .rk-stats-m{display:block;margin-bottom:1.1rem}
}
