/* ===== Page title ===== */
.page-title{ font-weight:800; margin:.5rem 0 1rem; color:var(--fc-text); }

/* ===== Filters (brand) ===== */
.fc-filter-card{
    border:1px solid var(--fc-border); border-radius:12px;
    background:var(--fc-surface); padding:1rem 1rem .75rem;
    box-shadow:0 6px 18px var(--fc-shadow);
}
.fc-filter-title{ font-weight:800; letter-spacing:.2px; }
.fc-filter-note{ color:var(--fc-muted); font-weight:600; font-size:.95rem; }
.fc-filter-card .form-label{ color:var(--fc-red); font-weight:700; margin-bottom:.25rem; }
.fc-filter-card .form-control,.fc-filter-card .form-select{
    background:var(--fc-surface); color:var(--fc-text);
    border:1px solid var(--fc-border); border-radius:.6rem;
}
.fc-filter-card .form-control::placeholder{ color:var(--fc-muted); }
.fc-filter-card .form-control:focus,.fc-filter-card .form-select:focus{
    border-color:var(--fc-red); box-shadow:0 0 0 .15rem rgba(227,27,35,.18);
}
.fc-filter-card .btn.btn-read{
    background:var(--fc-red); color:#fff; border:none; border-radius:.6rem;
    font-weight:800; line-height:1.1; padding:.5rem .9rem;
}
.fc-filter-card .btn.btn-read:hover{ background:#c0161c; color:#fff; }
.fc-filter-card .btn.btn-reset{
    color:var(--fc-red); border:1px solid var(--fc-border);
    background:var(--fc-surface); border-radius:.6rem; font-weight:700;
}
.fc-filter-card .btn.btn-reset:hover{ background:var(--fc-soft); }
@media (max-width:576px){ .fc-filter-card .row.g-3{ row-gap:.5rem; } }

/* ===== Division card ===== */
.champions-table-wrap{
    border:1px solid var(--fc-border); border-radius:12px; overflow:hidden;
    background:var(--fc-surface); box-shadow:0 6px 18px var(--fc-shadow);
}
.champions-table-wrap .div-head{
    border-bottom:1px solid var(--fc-border); background:#fafafa;
    padding:.5rem .75rem;
}
[data-theme="dark"] .champions-table-wrap .div-head{ background:#141414; }
.champions-table-wrap .fc-division{ font-weight:800; color:var(--fc-text); }

/* ===== Table ===== */
.champions-table{ width:100%; table-layout:auto; margin:0; }
.champions-table thead th{
    background:#fafafa; color:#374151; font-weight:800; border-bottom:1px solid var(--fc-border);
}
[data-theme="dark"] .champions-table thead th{
    background:#141414; color:#e0e0e0; border-bottom:1px solid var(--fc-border);
}
.champions-table tbody td{
    vertical-align:middle; white-space:normal; word-break:break-word; overflow-wrap:anywhere;
}
.champions-table tbody tr + tr td{ border-top:1px solid #f3f4f6; }
[data-theme="dark"] .champions-table tbody tr + tr td{ border-top:1px solid #1a1a1a; }

/* Rank pill */
.fc-badge-date{
    display:inline-block; background:var(--fc-soft); color:var(--fc-text);
    border:1px solid var(--fc-border); border-radius:999px;
    font-weight:800; line-height:1; padding:.28rem .6rem;
}
[data-theme="dark"] .fc-badge-date{ background:#1d1d1d; border-color:#2a2a2a; color:#fff; }

/* Fighter cell */
.fc-fighters{ font-weight:800; color:var(--fc-text); }

/* Rank delta chip */
.rank-delta{
    display:inline-flex; align-items:center; gap:.25rem;
    padding:.15rem .4rem; border-radius:999px; line-height:1;
    font-size:.82rem; font-weight:800; margin-left:.5rem;
    border:1px solid var(--fc-border); background:var(--fc-soft); color:var(--fc-text);
}
.rank-delta .bi{ font-size:.95em; line-height:1; }
.rank-delta.up{    border-color:rgba(16,185,129,.35); background:rgba(16,185,129,.12); }
.rank-delta.up .bi{ color:#10b981; }
.rank-delta.down{  border-color:rgba(227,27,35,.35); background:rgba(227,27,35,.10); }
.rank-delta.down .bi{ color:var(--fc-red); }
.rank-delta.same{  border-color:rgba(148,163,184,.35); background:rgba(148,163,184,.14); color:#475569; }
[data-theme="dark"] .rank-delta.same{ color:#e5e7eb; }
.rank-delta.new{   border-color:rgba(234,179,8,.45);  background:rgba(234,179,8,.16); color:#b45309; font-weight:900; }

/* Top3 highlight (optional) */
.champions-table tbody tr:nth-child(1){ background:rgba(227,27,35,.03); }
.champions-table tbody tr:nth-child(2){ background:rgba(227,27,35,.02); }
.champions-table tbody tr:nth-child(3){ background:rgba(227,27,35,.01); }
[data-theme="dark"] .champions-table tbody tr:nth-child(-n+3){ background:rgba(255,255,255,.03); }

/* Mobile card mode */
@media (max-width:575.98px){
    .champions-table thead{ display:none; }
    .champions-table, .champions-table tbody, .champions-table tr, .champions-table td{
        display:block; width:100%;
    }
    .champions-table tr{
        background:var(--fc-surface); border-top:1px solid var(--fc-border);
        padding:.75rem .75rem;
    }
    .champions-table tr:first-child{ border-top:0; }
    .champions-table td{
        border:0!important; padding:.25rem 0!important;
        display:flex; align-items:center; gap:.5rem; min-width:0; text-align:left;
    }
    .champions-table td:nth-child(1)::before{ content:"Rank"; }
    .champions-table td:nth-child(2)::before{ content:"Fighter"; }
    .champions-table td::before{
        flex:0 0 90px; color:var(--fc-muted); font-weight:700; font-size:.9rem;
    }
    .fc-badge-date{ padding:.22rem .5rem; white-space:nowrap; }
    .rank-delta{ margin-left:.35rem; font-size:.78rem; }
}

/* Dark theme contrast */
[data-theme="dark"] .champions-table-wrap{ color:#fff; }
[data-theme="dark"] .fc-fighters{ color:#fff; }
