/* Rangers On Tour Predictor V7.0 — Public Core */
/* Rangers On Tour public bundle v1.0.0 — generated from the live project. */

/* ===== SOURCE: css/rot-theme.css ===== */
/* Rangers On Tour Predictor League */
:root{--rot-blue:#0038A8;--rot-dark-blue:#001f5c;--rot-red:#d6001c;--rot-white:#fff;--rot-light:#f4f7fb;--rot-dark:#111827;--rot-gold:#f8c400}
body{background:var(--rot-light);color:var(--rot-dark);font-family:Arial,Helvetica,sans-serif;padding-bottom:78px}
.rot-topbar{background:linear-gradient(135deg,var(--rot-blue),var(--rot-dark-blue));color:#fff;padding:18px 0;box-shadow:0 4px 12px rgba(0,0,0,.15)}
.rot-brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-weight:800;font-size:1.2rem}
.rot-logo{width:48px;height:48px;border-radius:50%;background:#fff;color:var(--rot-blue);display:inline-flex;align-items:center;justify-content:center;font-weight:900}
.rot-nav a{color:#fff;text-decoration:none;margin-left:18px;font-weight:700}.rot-nav a:hover{color:var(--rot-gold)}
.rot-hero{background:linear-gradient(rgba(0,56,168,.9),rgba(0,31,92,.96)),url('../images/ibrox-placeholder.svg');background-size:cover;background-position:center;color:#fff;border-radius:18px;padding:60px 32px;margin:28px 0;box-shadow:0 8px 30px rgba(0,0,0,.18)}
.rot-hero h1{font-size:clamp(2rem,5vw,4rem);font-weight:900;line-height:1;margin-bottom:18px}
.rot-btn{background:var(--rot-red);color:#fff;border:0;border-radius:999px;padding:12px 22px;font-weight:800;text-decoration:none;display:inline-block}.rot-btn:hover{background:#b00017;color:#fff}
.rot-card{background:#fff;border-radius:16px;padding:22px;box-shadow:0 6px 18px rgba(0,0,0,.08);border-top:5px solid var(--rot-blue);height:100%;margin-bottom:18px}
.rot-stat{font-size:2rem;font-weight:900;color:var(--rot-blue)}
.rot-section-title{font-weight:900;color:var(--rot-dark-blue);margin:26px 0 16px}
.rot-countdown{display:flex;gap:10px;flex-wrap:wrap}.rot-countdown-box{background:var(--rot-dark-blue);color:#fff;border-radius:12px;padding:12px 16px;min-width:82px;text-align:center}.rot-countdown-box strong{display:block;font-size:1.6rem}
.rot-bottom-nav{position:fixed;bottom:0;left:0;right:0;background:var(--rot-dark-blue);display:none;justify-content:space-around;z-index:999;box-shadow:0 -4px 16px rgba(0,0,0,.25)}
.rot-bottom-nav a{color:#fff;text-decoration:none;font-size:.8rem;padding:10px 6px;text-align:center;flex:1;font-weight:700}.rot-bottom-nav span{display:block;font-size:1.3rem}.rot-bottom-nav a:hover,.rot-bottom-nav a.active{background:var(--rot-blue)}
.rot-footer{background:var(--rot-dark);color:#fff;text-align:center;padding:28px;margin-top:50px}
.rot-auth-wrap {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 28px;
    align-items: stretch;
    margin: 32px 0;
}

.rot-auth-hero {
    background: linear-gradient(135deg, #0038A8, #001f5c);
    color: #ffffff;
    border-radius: 22px;
    padding: 42px;
    min-height: 430px;
    display: flex;
    flex-direction: column;
    justify-content: center;
    box-shadow: 0 10px 30px rgba(0,0,0,.18);
}

.rot-auth-logo {
    width: 74px;
    height: 74px;
    background: #ffffff;
    color: #0038A8;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    font-size: 1.4rem;
    margin-bottom: 20px;
}

.rot-auth-hero h1 {
    font-size: clamp(2rem, 5vw, 4rem);
    font-weight: 900;
    line-height: 1;
    margin-bottom: 8px;
}

.rot-auth-hero h2 {
    color: #f8c400;
    font-weight: 800;
    margin-bottom: 18px;
}

.rot-auth-hero p {
    font-size: 1.15rem;
    max-width: 560px;
}

.rot-auth-card {
    background: #ffffff;
    border-radius: 22px;
    padding: 34px;
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
    border-top: 7px solid #0038A8;
}

.rot-auth-card h2 {
    color: #001f5c;
    font-weight: 900;
    margin-bottom: 22px;
}

.rot-auth-card label {
    font-weight: 700;
    color: #111827;
}

.rot-auth-card .form-control {
    padding: 13px;
    border-radius: 10px;
}

.rot-login-btn {
    background: #0038A8;
    border: 1px solid #0038A8;
    color: #ffffff;
    border-radius: 10px;
    padding: 14px;
    font-weight: 900;
    font-size: 1.05rem;
}

.rot-login-btn:hover {
    background: #002d84;
    border-color: #002d84;
    color: #ffffff;
}

.rot-register-btn {
    background: #f8c400;
    border: 1px solid #f8c400;
    color: #000000;
    border-radius: 10px;
    padding: 14px;
    font-weight: 900;
    font-size: 1.05rem;
}

.rot-register-btn:hover {
    background: #e0b000;
    border-color: #e0b000;
    color: #000000;
}

.rot-auth-divider {
    text-align: center;
    margin: 24px 0;
    position: relative;
}

.rot-auth-divider:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: #d1d5db;
}

.rot-auth-divider span {
    background: #ffffff;
    position: relative;
    padding: 0 14px;
    color: #6b7280;
    font-weight: 700;
}

.rot-auth-small {
    text-align: center;
    margin-top: 18px;
}

.rot-auth-small a {
    color: #0038A8;
    font-weight: 700;
}

@media (max-width: 850px) {
    .rot-auth-wrap {
        grid-template-columns: 1fr;
    }

    .rot-auth-hero {
        min-height: auto;
        padding: 32px;
    }

    .rot-auth-card {
        padding: 26px;
    }
}
.club-badge {
    width: 34px;
    height: 34px;
    object-fit: contain;
    vertical-align: middle;
    flex: 0 0 auto;
}

.team-name-with-badge {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 800;
    white-space: nowrap;
}

.fixture-teams {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
}

.fixture-vs {
    font-weight: 900;
    color: #001f5c;
    padding: 0 4px;
}

@media (max-width: 600px) {
    .club-badge {
        width: 28px;
        height: 28px;
    }

    .fixture-teams {
        gap: 8px;
    }

    .team-name-with-badge {
        gap: 6px;
    }
}
.rot-hero .btn {
    margin-top: 8px;
}

.rot-countdown {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.rot-countdown-box {
    background: #001f5c;
    color: #ffffff;
    border-radius: 12px;
    padding: 12px 16px;
    min-width: 82px;
    text-align: center;
    font-weight: 700;
}

.rot-countdown-box strong {
    display: block;
    font-size: 1.6rem;
    line-height: 1;
    margin-bottom: 4px;
}

@media (max-width: 768px) {
    .rot-hero .btn,
    .rot-hero .rot-btn {
        display: block;
        width: 100%;
        margin: 8px 0;
        text-align: center;
    }
}
.leaderboard-table td,
.leaderboard-table th {
    vertical-align: middle;
}

.leaderboard-rank {
    font-size: 1.4rem;
    font-weight: 900;
}

.leaderboard-gold {
    background: linear-gradient(90deg, #fff1a8, #ffffff) !important;
    border-left: 6px solid #d4af37;
}

.leaderboard-silver {
    background: linear-gradient(90deg, #eeeeee, #ffffff) !important;
    border-left: 6px solid #c0c0c0;
}

.leaderboard-bronze {
    background: linear-gradient(90deg, #f1c6a8, #ffffff) !important;
    border-left: 6px solid #cd7f32;
}

.leaderboard-me {
    outline: 3px solid #0038A8;
    outline-offset: -3px;
}

.my-position-card {
    border-top: 8px solid #0038A8;
}

.movement-up {
    color: #087f23;
    font-weight: 900;
}

.movement-down {
    color: #b00020;
    font-weight: 900;
}

.movement-same {
    color: #555;
    font-weight: 900;
}

.movement-new {
    color: #0038A8;
    font-weight: 900;
}

.leaderboard-movement-big {
    font-size: 1.25rem;
    margin-top: 8px;
}

.leaderboard-progress {
    height: 10px;
    background: #dbe4f0;
    border-radius: 999px;
    overflow: hidden;
}

.leaderboard-progress-fill {
    height: 100%;
    background: #0038A8;
    border-radius: 999px;
}

@media (max-width: 768px) {
    .leaderboard-table {
        min-width: 780px;
    }
}
/* Mobile-friendly Info Page */

.rot-info-page {
    max-width: 980px;
    margin: 0 auto;
}

.rot-info-card {
    margin-bottom: 16px;
}

.rot-info-card h2 {
    margin-bottom: 14px;
}

.rot-info-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.rot-info-step {
    background: #f4f7fb;
    border-radius: 12px;
    padding: 12px;
    text-align: center;
}

.rot-info-step span {
    width: 34px;
    height: 34px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: #0038A8;
    color: #ffffff;
    border-radius: 50%;
    font-weight: 900;
    margin-bottom: 8px;
}

.rot-info-step strong {
    display: block;
    color: #001f5c;
}

.rot-info-step small {
    display: block;
    color: #444;
}

.rot-info-pill-list {
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
}

.rot-info-pill-list span {
    background: #0038A8;
    color: #ffffff;
    border-radius: 999px;
    padding: 9px 13px;
    font-weight: 800;
}

.rot-score-list {
    display: grid;
    gap: 10px;
}

.rot-score-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    background: #f4f7fb;
    border-left: 5px solid #0038A8;
    border-radius: 10px;
    padding: 12px 14px;
}

.rot-score-row span {
    font-weight: 800;
}

.rot-score-row strong {
    background: #f8c400;
    color: #000000;
    border-radius: 999px;
    padding: 7px 12px;
    white-space: nowrap;
}

.rot-rules-list {
    display: grid;
    gap: 9px;
}

.rot-rules-list div {
    background: #f4f7fb;
    border-radius: 10px;
    padding: 10px 12px;
    font-weight: 700;
}

.rot-info-buttons {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

html.rot-dark-mode .rot-info-step,
html.rot-dark-mode .rot-score-row,
html.rot-dark-mode .rot-rules-list div {
    background: #132642 !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .rot-info-step strong {
    color: #ffffff !important;
}

html.rot-dark-mode .rot-info-step small {
    color: #b8c4d6 !important;
}

@media (max-width: 760px) {
    .rot-info-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .rot-info-card {
        margin-bottom: 12px;
    }

    .rot-info-card h2 {
        font-size: 1.25rem !important;
        margin-bottom: 10px;
    }

    .rot-info-step {
        padding: 10px 8px;
    }

    .rot-score-row {
        padding: 10px;
    }

    .rot-info-buttons .btn {
        flex: 1 1 100%;
        width: 100%;
    }
}

@media (max-width: 420px) {
    .rot-info-grid {
        grid-template-columns: 1fr;
    }

    .rot-score-row {
        font-size: .95rem;
    }

    .rot-score-row strong {
        padding: 6px 10px;
    }
}
/* Mobile Friendly Predict Page Cards */

.predict-card-list {
    display: grid;
    gap: 16px;
}

.predict-fixture-card {
    margin-bottom: 0;
}

.predict-card-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.predict-card-top h2 {
    margin: 0 0 8px;
    font-size: 1.35rem;
    font-weight: 900;
    color: #001f5c;
}

.predict-card-top h2 span {
    color: #666;
    font-size: 1rem;
    margin: 0 6px;
}

.predict-meta {
    margin-bottom: 0;
}

.predict-status {
    white-space: nowrap;
}

.predict-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 16px 0;
}

.predict-detail-box {
    background: #f4f7fb;
    border-left: 5px solid #0038A8;
    border-radius: 10px;
    padding: 12px;
    min-width: 0;
}

.predict-detail-box small {
    display: block;
    color: #555;
    font-weight: 800;
    margin-bottom: 4px;
}

.predict-detail-box strong {
    display: block;
    color: #001f5c;
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}

.predict-detail-box span {
    color: #777;
}

.predict-card-action {
    display: flex;
    justify-content: flex-end;
}

.predict-card-action .btn {
    min-width: 160px;
}

html.rot-dark-mode .predict-card-top h2,
html.rot-dark-mode .predict-detail-box strong {
    color: #ffffff !important;
}

html.rot-dark-mode .predict-detail-box {
    background: #132642 !important;
}

html.rot-dark-mode .predict-detail-box small,
html.rot-dark-mode .predict-detail-box span {
    color: #b8c4d6 !important;
}
/* Build V - Responsive Predict Page */
/* Desktop keeps the wide table. Mobile shows stacked cards. */

.predict-mobile-cards {
    display: none;
}

.predict-desktop-table {
    display: block;
}

.predict-mini-countdown {
    display: inline-block;
    font-weight: 900;
    padding: 6px 9px;
    border-radius: 999px;
    background: #e8f1ff;
    color: #0038A8;
    white-space: nowrap;
}

.predict-mini-countdown.countdown-warning,
.predict-card-countdown.countdown-warning {
    background: #fff2cc;
    color: #8a5a00;
}

.predict-mini-countdown.countdown-danger,
.predict-card-countdown.countdown-danger {
    background: #ffe0e0;
    color: #a40000;
}

.predict-mini-countdown.countdown-closed,
.predict-card-countdown.countdown-closed {
    background: #e5e7eb;
    color: #374151;
}

.predict-card-list {
    display: grid;
    gap: 16px;
}

.predict-fixture-card {
    margin-bottom: 14px;
}

.predict-card-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.predict-card-top h2 {
    margin: 0 0 8px;
    font-size: 1.25rem;
    font-weight: 900;
    color: #001f5c;
}

.predict-card-top h2 span {
    color: #666;
    font-size: 1rem;
    margin: 0 6px;
}

.predict-meta {
    margin-bottom: 0;
}

.predict-status {
    white-space: nowrap;
}

.predict-mobile-info {
    display: grid;
    gap: 8px;
    margin: 14px 0;
}

.predict-info-row {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    background: #f4f7fb;
    border-radius: 10px;
    padding: 10px 12px;
}

.predict-info-row span {
    font-weight: 800;
    color: #374151;
}

.predict-info-row strong {
    text-align: right;
    color: #001f5c;
}

.predict-card-countdown {
    display: inline-block;
    padding: 5px 9px;
    border-radius: 999px;
    background: #e8f1ff;
    color: #0038A8;
}

.predict-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 16px 0;
}

.predict-detail-box {
    background: #f4f7fb;
    border-left: 5px solid #0038A8;
    border-radius: 10px;
    padding: 12px;
    min-width: 0;
}

.predict-detail-box small {
    display: block;
    color: #555;
    font-weight: 800;
    margin-bottom: 4px;
}

.predict-detail-box strong {
    display: block;
    color: #001f5c;
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}

.predict-detail-box span {
    color: #777;
}

.predict-card-action {
    display: flex;
    justify-content: flex-end;
}

.predict-card-action .btn {
    min-width: 160px;
}

/* Dark mode support */
html.rot-dark-mode .predict-card-top h2,
html.rot-dark-mode .predict-detail-box strong,
html.rot-dark-mode .predict-info-row strong {
    color: #ffffff !important;
}

html.rot-dark-mode .predict-detail-box,
html.rot-dark-mode .predict-info-row {
    background: #132642 !important;
}

html.rot-dark-mode .predict-detail-box small,
html.rot-dark-mode .predict-detail-box span,
html.rot-dark-mode .predict-info-row span {
    color: #b8c4d6 !important;
}

/* Predict.php table mobile-only card layout */
/* Desktop table stays unchanged */

@media (max-width: 760px) {
    body table.table {
        min-width: 0 !important;
        width: 100% !important;
        border-collapse: separate !important;
        border-spacing: 0 12px !important;
    }

    body table.table > tbody > tr:first-child {
        display: none !important;
    }

    body table.table > tbody > tr {
        display: block !important;
        background: #ffffff !important;
        border-radius: 14px !important;
        padding: 12px !important;
        box-shadow: 0 6px 18px rgba(0,0,0,.08) !important;
        margin-bottom: 12px !important;
        border-left: 5px solid #0038A8 !important;
    }

    body table.table > tbody > tr > td {
        display: block !important;
        width: 100% !important;
        white-space: normal !important;
        border: 0 !important;
        padding: 7px 0 !important;
        text-align: left !important;
    }

    body table.table > tbody > tr > td:nth-child(1)::before { content: "Date"; }
    body table.table > tbody > tr > td:nth-child(2)::before { content: "Fixture"; }
    body table.table > tbody > tr > td:nth-child(3)::before { content: "Competition"; }
    body table.table > tbody > tr > td:nth-child(4)::before { content: "Your Prediction"; }
    body table.table > tbody > tr > td:nth-child(5)::before { content: "Status"; }
    body table.table > tbody > tr > td:nth-child(6)::before { content: "Action"; }

    body table.table > tbody > tr > td::before {
        display: block;
        font-size: .72rem;
        text-transform: uppercase;
        letter-spacing: .04em;
        color: #0038A8;
        font-weight: 900;
        margin-bottom: 3px;
    }

    body table.table > tbody > tr > td:nth-child(2) {
        font-size: 1.08rem !important;
    }

    body table.table > tbody > tr > td:nth-child(6) .btn,
    body table.table > tbody > tr > td:nth-child(6) button {
        width: 100% !important;
        margin-top: 4px !important;
    }

    body table.table > tbody > tr > td small {
        display: block;
        line-height: 1.45;
        margin-top: 4px;
    }

    body table.table-striped > tbody > tr:nth-of-type(odd) > * {
        background: transparent !important;
    }

    html.rot-dark-mode body table.table > tbody > tr {
        background: #0f1d33 !important;
        color: #f4f7fb !important;
        border-left-color: #1e5eff !important;
    }

    html.rot-dark-mode body table.table > tbody > tr > td::before {
        color: #9fc2ff !important;
    }
}

@media(max-width:768px){.rot-nav{display:none}.rot-bottom-nav{display:flex}.rot-hero{padding:42px 24px;border-radius:0;margin-left:-12px;margin-right:-12px}}


/* ===== DIRECT PREDICT MOBILE FIX - FINAL OVERRIDE ===== */
/* Predict Page Direct Card Fix */
/* This works because predict.php no longer uses a table. */

.predict-card-list {
    display: grid;
    gap: 16px;
}

.predict-fixture-card {
    height: auto !important;
    margin-bottom: 0 !important;
}

.predict-card-top {
    display: flex;
    justify-content: space-between;
    gap: 14px;
    align-items: flex-start;
    flex-wrap: wrap;
}

.predict-fixture-title {
    min-width: 0;
}

.predict-card-top h2 {
    margin: 0 0 8px !important;
    font-size: 1.35rem !important;
    font-weight: 900 !important;
    color: #001f5c !important;
    line-height: 1.2 !important;
}

.predict-card-top h2 span {
    color: #666;
    font-size: 1rem;
    margin: 0 6px;
}

.predict-meta {
    margin-bottom: 0 !important;
}

.predict-status {
    white-space: nowrap;
}

.predict-details-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 10px;
    margin: 16px 0;
}

.predict-detail-box {
    background: #f4f7fb;
    border-left: 5px solid #0038A8;
    border-radius: 10px;
    padding: 12px;
    min-width: 0;
}

.predict-detail-box small {
    display: block;
    color: #555;
    font-weight: 900;
    margin-bottom: 4px;
}

.predict-detail-box strong {
    display: block;
    color: #001f5c;
    font-size: 1.05rem;
    overflow-wrap: anywhere;
}

.predict-detail-box span {
    color: #777;
}

.predict-card-action {
    display: flex;
    justify-content: flex-end;
}

.predict-card-action .btn,
.predict-card-action button {
    min-width: 170px;
}

/* Dark mode support */
html.rot-dark-mode .predict-card-top h2,
html.rot-dark-mode .predict-detail-box strong {
    color: #ffffff !important;
}

html.rot-dark-mode .predict-detail-box {
    background: #132642 !important;
}

html.rot-dark-mode .predict-detail-box small,
html.rot-dark-mode .predict-detail-box span {
    color: #b8c4d6 !important;
}

/* Phone layout */
@media (max-width: 760px) {
    .predict-card-list {
        gap: 12px;
    }

    .predict-card-top {
        display: block;
    }

    .predict-card-top h2 {
        font-size: 1.08rem !important;
        line-height: 1.3 !important;
    }

    .predict-card-top h2 span {
        display: inline-block;
        margin: 0 4px;
    }

    .predict-status {
        margin-top: 10px;
        white-space: normal;
    }

    .predict-details-grid {
        grid-template-columns: 1fr !important;
        gap: 8px;
        margin: 12px 0;
    }

    .predict-detail-box {
        padding: 10px 12px;
    }

    .predict-card-action {
        display: block;
    }

    .predict-card-action .btn,
    .predict-card-action button {
        width: 100% !important;
        min-width: 0 !important;
    }
}

/* Predict page: desktop table, mobile cards */

.predict-mobile-cards {
    display: none;
}

.predict-desktop-table {
    display: block;
}

/* Desktop keeps standard table */
@media (min-width: 761px) {
    .predict-desktop-table table {
        width: 100%;
    }
}

/* Mobile switches to cards */
@media (max-width: 760px) {
    .predict-desktop-table {
        display: none !important;
    }

    .predict-mobile-cards {
        display: grid !important;
        gap: 12px;
    }

    .predict-mobile-card {
        padding: 14px !important;
        margin-bottom: 0 !important;
        height: auto !important;
        border-top: 5px solid #0038A8 !important;
    }

    .predict-mobile-head h2 {
        font-size: 1.08rem !important;
        line-height: 1.3 !important;
        margin: 0 0 6px !important;
        color: #001f5c !important;
        font-weight: 900 !important;
    }

    .predict-mobile-head h2 span {
        color: #666;
        margin: 0 3px;
    }

    .predict-mobile-head p {
        margin-bottom: 8px !important;
        font-size: .92rem;
    }

    .predict-mobile-status {
        margin: 8px 0 10px;
    }

    .predict-mobile-grid {
        display: grid;
        gap: 8px;
        margin: 10px 0 12px;
    }

    .predict-mobile-grid > div {
        background: #f4f7fb;
        border-left: 4px solid #0038A8;
        border-radius: 9px;
        padding: 9px 10px;
    }

    .predict-mobile-grid small {
        display: block;
        color: #555;
        font-weight: 900;
        font-size: .72rem;
        text-transform: uppercase;
        margin-bottom: 3px;
    }

    .predict-mobile-grid strong,
    .predict-mobile-grid span {
        display: block;
        color: #001f5c;
        font-weight: 900;
        overflow-wrap: anywhere;
    }

    .predict-mobile-action .btn,
    .predict-mobile-action button {
        width: 100% !important;
        min-height: 44px;
    }

    html.rot-dark-mode .predict-mobile-head h2,
    html.rot-dark-mode .predict-mobile-grid strong,
    html.rot-dark-mode .predict-mobile-grid span {
        color: #ffffff !important;
    }

    html.rot-dark-mode .predict-mobile-grid > div {
        background: #132642 !important;
    }

    html.rot-dark-mode .predict-mobile-grid small {
        color: #b8c4d6 !important;
    }
}
.fixture-tv-badge{background:#001f5c;color:#fff;border-left:5px solid #f8c400;border-radius:10px;padding:10px 12px;margin:10px 0;font-weight:800}
.fixture-tv-pill{display:inline-block;background:#001f5c;color:#fff;border-radius:999px;padding:6px 10px;font-weight:800;white-space:nowrap}
.fixture-tv-inline{display:inline-block;color:#0038A8;font-weight:800;margin-top:4px}
html.rot-dark-mode .fixture-tv-badge,html.rot-dark-mode .fixture-tv-pill{background:#132642!important;color:#fff!important;border-color:#f8c400!important}
html.rot-dark-mode .fixture-tv-inline{color:#9fc2ff!important}
/* Centre all dashboard cards */

.rot-card {
    text-align: center;
}

.rot-card h2,
.rot-card h3,
.rot-card h4 {
    text-align: center;
}

.rot-stat {
    display: block;
    text-align: center;
    margin: 8px auto;
}

.rot-card .btn {
    display: inline-block;
    margin: 10px auto 0;
}

.rot-countdown {
    justify-content: center;
}

.rot-countdown-box {
    text-align: center;
}

.rot-card p,
.rot-card small,
.rot-card strong {
    text-align: center;
    display: block;
}

/* Hero buttons */
.rot-hero .btn {
    margin: 8px;
}

/* Next Fixture card */
.next-fixture-card,
.rot-next-fixture {
    text-align: center;
}

.next-fixture-card .fixture-teams,
.rot-next-fixture .fixture-teams {
    justify-content: center;
}

/* Mobile */
@media (max-width:768px){

    .rot-card{
        text-align:center;
    }

    .rot-countdown{
        justify-content:center;
    }

    .rot-countdown-box{
        width:70px;
    }
}
/* Mobile nav button fix */

.rot-v-mobile-header,
.rot-v-mobile-menu {
    display: none;
}

@media (max-width: 768px) {
    .rot-v-mobile-header {
        display: flex !important;
        align-items: center;
        justify-content: space-between;
        background: #0038A8;
        color: #ffffff;
        padding: 12px 14px;
        position: sticky;
        top: 0;
        z-index: 99999;
    }

    .rot-v-mobile-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        color: #ffffff !important;
        text-decoration: none !important;
        font-weight: 900;
    }

    .rot-v-mobile-logo {
        width: 40px;
        height: 40px;
        background: #ffffff;
        color: #0038A8;
        border-radius: 50%;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: 900;
    }

    .rot-v-menu-btn {
        background: #f8c400;
        color: #000000;
        border: 0;
        border-radius: 9px;
        padding: 10px 14px;
        font-weight: 900;
        cursor: pointer;
    }

    .rot-v-mobile-menu {
        display: none !important;
        background: #001f5c;
        padding: 8px 14px 12px;
        position: relative;
        z-index: 99998;
    }

    .rot-v-mobile-menu.open {
        display: block !important;
    }

    .rot-v-mobile-menu a {
        display: block;
        color: #ffffff !important;
        text-decoration: none !important;
        padding: 13px 6px;
        border-bottom: 1px solid rgba(255,255,255,.16);
        font-weight: 800;
    }

    .rot-v-mobile-menu a:hover,
    .rot-v-mobile-menu a.active {
        color: #f8c400 !important;
    }
}
/* Better Mobile Leaderboard */

.leaderboard-mobile-list {
    display: none;
}

.leaderboard-my-card {
    text-align: center;
    margin-bottom: 18px;
}

.leaderboard-my-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 10px;
}

.leaderboard-my-grid div {
    background: #f4f7fb;
    border-radius: 12px;
    padding: 12px;
}

.leaderboard-my-grid small {
    display: block;
    font-weight: 900;
    color: #555;
    text-transform: uppercase;
    font-size: .72rem;
    margin-bottom: 4px;
}

.leaderboard-my-grid strong {
    display: block;
    font-size: 1.35rem;
    color: #001f5c;
}

.leaderboard-mobile-card {
    background: #ffffff;
    border-radius: 16px;
    padding: 14px;
    box-shadow: 0 6px 18px rgba(0,0,0,.08);
    border-left: 6px solid #0038A8;
}

.leaderboard-mobile-top {
    display: grid;
    grid-template-columns: 54px 1fr auto;
    gap: 10px;
    align-items: center;
}

.leaderboard-mobile-rank {
    font-size: 1.35rem;
    font-weight: 900;
    text-align: center;
    background: #f4f7fb;
    border-radius: 12px;
    padding: 9px 5px;
}

.leaderboard-mobile-player strong {
    font-size: 1.05rem;
    color: #001f5c;
}

.leaderboard-mobile-points {
    text-align: right;
}

.leaderboard-mobile-points strong {
    display: block;
    font-size: 1.5rem;
    color: #0038A8;
    line-height: 1;
}

.leaderboard-mobile-points small {
    font-weight: 900;
    color: #555;
}

.leaderboard-mobile-meta {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 8px;
    margin: 12px 0;
}

.leaderboard-mobile-meta div {
    background: #f4f7fb;
    border-radius: 10px;
    padding: 9px;
    text-align: center;
}

.leaderboard-mobile-meta small {
    display: block;
    font-size: .68rem;
    text-transform: uppercase;
    font-weight: 900;
    color: #555;
    margin-bottom: 3px;
}

.leaderboard-mobile-meta strong {
    color: #001f5c;
}

.leaderboard-mobile-progress small {
    display: block;
    text-align: center;
    margin-top: 4px;
    font-weight: 800;
    color: #555;
}

.leaderboard-mobile-me {
    outline: 3px solid #0038A8;
    outline-offset: -3px;
}

.leaderboard-gold.leaderboard-mobile-card {
    border-left-color: #d4af37;
    background: linear-gradient(135deg, #fff2a8, #ffffff);
}

.leaderboard-silver.leaderboard-mobile-card {
    border-left-color: #c0c0c0;
    background: linear-gradient(135deg, #eeeeee, #ffffff);
}

.leaderboard-bronze.leaderboard-mobile-card {
    border-left-color: #cd7f32;
    background: linear-gradient(135deg, #f1c6a8, #ffffff);
}

.movement-up {
    color: #087f23;
    font-weight: 900;
}

.movement-down {
    color: #b00020;
    font-weight: 900;
}

.movement-same {
    color: #555;
    font-weight: 900;
}

.movement-new {
    color: #0038A8;
    font-weight: 900;
}

.leaderboard-progress {
    height: 10px;
    background: #dbe4f0;
    border-radius: 999px;
    overflow: hidden;
}

.leaderboard-progress-fill {
    height: 100%;
    background: #0038A8;
    border-radius: 999px;
}

html.rot-dark-mode .leaderboard-mobile-card,
html.rot-dark-mode .leaderboard-my-grid div {
    background: #0f1d33 !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .leaderboard-mobile-rank,
html.rot-dark-mode .leaderboard-mobile-meta div {
    background: #132642 !important;
}

html.rot-dark-mode .leaderboard-mobile-player strong,
html.rot-dark-mode .leaderboard-mobile-meta strong,
html.rot-dark-mode .leaderboard-my-grid strong {
    color: #ffffff !important;
}

html.rot-dark-mode .leaderboard-mobile-meta small,
html.rot-dark-mode .leaderboard-my-grid small,
html.rot-dark-mode .leaderboard-mobile-progress small {
    color: #b8c4d6 !important;
}

@media (max-width: 760px) {
    .leaderboard-desktop-table {
        display: none !important;
    }

    .leaderboard-mobile-list {
        display: grid !important;
        gap: 12px;
    }

    .leaderboard-my-grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 8px;
    }

    .leaderboard-my-grid div {
        padding: 10px 8px;
    }

    .leaderboard-my-grid strong {
        font-size: 1.1rem;
    }

    .leaderboard-mobile-meta {
        grid-template-columns: 1fr;
    }

    .leaderboard-mobile-card {
        padding: 12px;
    }
}

@media (max-width: 390px) {
    .leaderboard-mobile-top {
        grid-template-columns: 46px 1fr auto;
    }

    .leaderboard-mobile-rank {
        font-size: 1.05rem;
    }

    .leaderboard-mobile-points strong {
        font-size: 1.25rem;
    }
}
/* Leaderboard Mobile Fit Table */
/* Keeps desktop similar to current screenshot, makes mobile table fit screen */

#rotLeaderboardSimple {
    text-align: left;
}

#rotLeaderboardSimple .leaderboard-my-position,
#rotLeaderboardSimple .leaderboard-table-card {
    text-align: center !important;
    height: auto !important;
}

#rotLeaderboardSimple .leaderboard-my-position h2,
#rotLeaderboardSimple .leaderboard-table-card h2 {
    text-align: center !important;
    margin-bottom: 14px;
}

#rotLeaderboardSimple .leaderboard-my-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 12px;
}

#rotLeaderboardSimple .leaderboard-my-grid div {
    text-align: center;
}

#rotLeaderboardSimple .leaderboard-my-grid span {
    display: block;
    font-size: 1.1rem;
    font-weight: 700;
    margin-bottom: 6px;
}

#rotLeaderboardSimple .leaderboard-my-grid strong {
    display: block;
    font-size: 1.8rem;
    color: #0038A8;
    font-weight: 900;
}

#rotLeaderboardSimple .leaderboard-fit-table {
    width: 100% !important;
    margin-bottom: 0;
    table-layout: fixed;
}

#rotLeaderboardSimple .leaderboard-fit-table th,
#rotLeaderboardSimple .leaderboard-fit-table td {
    text-align: center !important;
    vertical-align: middle;
}

#rotLeaderboardSimple .leaderboard-fit-table th:nth-child(1),
#rotLeaderboardSimple .leaderboard-fit-table td:nth-child(1) {
    width: 16%;
}

#rotLeaderboardSimple .leaderboard-fit-table th:nth-child(2),
#rotLeaderboardSimple .leaderboard-fit-table td:nth-child(2) {
    width: 44%;
}

#rotLeaderboardSimple .leaderboard-fit-table th:nth-child(3),
#rotLeaderboardSimple .leaderboard-fit-table td:nth-child(3) {
    width: 22%;
}

#rotLeaderboardSimple .leaderboard-fit-table th:nth-child(4),
#rotLeaderboardSimple .leaderboard-fit-table td:nth-child(4) {
    width: 18%;
}

#rotLeaderboardSimple .leaderboard-me-row {
    background: #fff3cd !important;
}

#rotLeaderboardSimple .leaderboard-me-row td {
    background: #fff3cd !important;
}

html.rot-dark-mode #rotLeaderboardSimple .leaderboard-me-row,
html.rot-dark-mode #rotLeaderboardSimple .leaderboard-me-row td {
    background: #3b3100 !important;
}

/* Mobile fitted table */
@media (max-width: 760px) {
    #rotLeaderboardSimple h1 {
        font-size: 1.8rem !important;
        text-align: center;
    }

    #rotLeaderboardSimple .rot-card {
        padding: 12px 8px !important;
        border-radius: 12px !important;
        overflow: visible !important;
    }

    #rotLeaderboardSimple .leaderboard-my-grid {
        grid-template-columns: repeat(3, 1fr);
        gap: 4px;
    }

    #rotLeaderboardSimple .leaderboard-my-grid span {
        font-size: .78rem !important;
        margin-bottom: 3px;
    }

    #rotLeaderboardSimple .leaderboard-my-grid strong {
        font-size: 1.25rem !important;
    }

    #rotLeaderboardSimple .leaderboard-table-card h2,
    #rotLeaderboardSimple .leaderboard-my-position h2 {
        font-size: 1.25rem !important;
        margin-bottom: 10px !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table {
        min-width: 0 !important;
        width: 100% !important;
        table-layout: fixed !important;
        font-size: .78rem !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table th,
    #rotLeaderboardSimple .leaderboard-fit-table td {
        padding: 7px 3px !important;
        white-space: normal !important;
        word-break: break-word;
        text-align: center !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table th {
        font-size: .72rem !important;
        font-weight: 900 !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table td:nth-child(2) {
        font-size: .78rem !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table .badge {
        display: inline-block;
        font-size: .58rem !important;
        padding: 3px 5px !important;
        margin-left: 2px;
    }

    #rotLeaderboardSimple .leaderboard-fit-table strong {
        font-size: .82rem !important;
    }
}

@media (max-width: 380px) {
    #rotLeaderboardSimple .leaderboard-fit-table {
        font-size: .72rem !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table th,
    #rotLeaderboardSimple .leaderboard-fit-table td {
        padding: 6px 2px !important;
    }

    #rotLeaderboardSimple .leaderboard-fit-table .badge {
        display: block;
        margin: 3px auto 0;
        width: fit-content;
    }
}


/* ===== FINAL LEADERBOARD FORCE TABLE OVERRIDE ===== */
/* FINAL Leaderboard force table fix */
/* Paste at the VERY BOTTOM of rot-theme.css */

.leaderboard-mobile-list,
.leaderboard-mobile-card {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
    overflow: hidden !important;
}

#rotLeaderboardSimple table.leaderboard-fit-table {
    display: table !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
}

#rotLeaderboardSimple table.leaderboard-fit-table tbody {
    display: table-row-group !important;
}

#rotLeaderboardSimple table.leaderboard-fit-table tr {
    display: table-row !important;
    border: 0 !important;
    border-radius: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    box-shadow: none !important;
}

#rotLeaderboardSimple table.leaderboard-fit-table th,
#rotLeaderboardSimple table.leaderboard-fit-table td {
    display: table-cell !important;
    text-align: center !important;
    vertical-align: middle !important;
    white-space: normal !important;
    padding: 10px 6px !important;
}

#rotLeaderboardSimple table.leaderboard-fit-table td::before,
#rotLeaderboardSimple table.leaderboard-fit-table th::before {
    content: none !important;
    display: none !important;
}

@media (max-width: 760px) {
    #rotLeaderboardSimple .leaderboard-my-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 4px !important;
    }

    #rotLeaderboardSimple table.leaderboard-fit-table {
        font-size: .74rem !important;
    }

    #rotLeaderboardSimple table.leaderboard-fit-table th,
    #rotLeaderboardSimple table.leaderboard-fit-table td {
        padding: 7px 2px !important;
        word-break: break-word !important;
    }

    #rotLeaderboardSimple table.leaderboard-fit-table .badge {
        font-size: .55rem !important;
        padding: 3px 5px !important;
    }
}
.player-name-cell{
    white-space: nowrap;
}

.player-name-cell strong{
    display:inline;
}

.player-name-cell .badge{
    display:inline-block;
    vertical-align:middle;
    margin-left:6px;
    border-radius:999px;
    font-weight:700;
}
.rot-club-badge{
    width:34px;
    height:34px;
}

.rot-fixture-teams{
    display:flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    flex-wrap:wrap;
}

.rot-fixture-v{
    font-size:22px;
    font-weight:900;
    color:#0038A8;
}

/* UI Buttons V1.0 */
.btn,
button,
input[type=submit],
input[type=button],
input[type=reset],
a.btn{
min-height:36px!important;
padding:8px 18px!important;
border-radius:18px!important;
font-size:15px!important;
font-weight:700!important;
line-height:1.2!important;
display:inline-flex;
align-items:center;
justify-content:center;
}
@media (max-width:768px){
.btn,button,input[type=submit],input[type=button],input[type=reset],a.btn{
min-height:34px!important;
padding:7px 16px!important;
font-size:14px!important;
}
}

/* ===== SOURCE: css/build-x-rangers-pro-theme.css ===== */
/* ==========================================================
   Build X - Rangers Professional Theme Pack
   Rangers On Tour Predictor League
   ========================================================== */

:root {
    --rot-blue: #0038A8;
    --rot-blue-2: #0057d8;
    --rot-dark-blue: #001f5c;
    --rot-navy: #07162f;
    --rot-red: #d6001c;
    --rot-gold: #f8c400;
    --rot-white: #ffffff;
    --rot-light: #eef3fb;
    --rot-card: #ffffff;
    --rot-text: #111827;
    --rot-muted: #6b7280;
    --rot-border: #dbe4f0;
    --rot-shadow: 0 10px 28px rgba(0, 31, 92, .13);
    --rot-radius: 18px;
}

* {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    background:
        radial-gradient(circle at top left, rgba(0,56,168,.10), transparent 32%),
        linear-gradient(180deg, #f6f9ff 0%, var(--rot-light) 100%);
    color: var(--rot-text);
    font-family: Arial, Helvetica, sans-serif;
    padding-bottom: 78px;
    overflow-x: hidden;
}

/* Header */
.rot-topbar {
    background:
        linear-gradient(135deg, rgba(0,56,168,.96), rgba(0,31,92,.98)),
        linear-gradient(45deg, transparent 48%, rgba(255,255,255,.06) 50%, transparent 52%);
    color: #fff;
    padding: 16px 0;
    box-shadow: 0 6px 22px rgba(0,31,92,.28);
    border-bottom: 4px solid var(--rot-gold);
}

.rot-brand {
    display: flex;
    align-items: center;
    gap: 13px;
    color: #fff !important;
    text-decoration: none !important;
    font-weight: 900;
    font-size: 1.18rem;
    letter-spacing: .01em;
}

.rot-brand small {
    color: var(--rot-gold);
    font-weight: 800;
}

.rot-logo,
.rot-admin-logo {
    width: 58px;
    height: 58px;
    border-radius: 50%;
    background: #fff;
    color: var(--rot-blue);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
    box-shadow: 0 0 0 3px rgba(248,196,0,.35);
    overflow: hidden;
}

.rot-logo img,
.rot-admin-logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.rot-nav {
    display: flex;
    align-items: center;
    gap: 6px;
    flex-wrap: wrap;
}

.rot-nav a {
    color: #fff !important;
    text-decoration: none !important;
    margin-left: 0;
    font-weight: 800;
    padding: 9px 11px;
    border-radius: 999px;
    transition: background .18s ease, color .18s ease, transform .18s ease;
}

.rot-nav a:hover {
    background: rgba(255,255,255,.13);
    color: var(--rot-gold) !important;
    transform: translateY(-1px);
}

/* Hero */
.rot-hero {
    background:
        linear-gradient(rgba(0,56,168,.92), rgba(0,20,65,.96)),
        url('../images/ibrox-placeholder.svg');
    background-size: cover;
    background-position: center;
    color: #fff;
    border-radius: 24px;
    padding: 66px 36px;
    margin: 30px 0;
    box-shadow: 0 14px 40px rgba(0,31,92,.25);
    border: 1px solid rgba(255,255,255,.16);
    position: relative;
    overflow: hidden;
}

.rot-hero:before {
    content: "";
    position: absolute;
    inset: 0;
    background:
        linear-gradient(120deg, transparent 0%, rgba(255,255,255,.08) 45%, transparent 70%);
    pointer-events: none;
}

.rot-hero > * {
    position: relative;
}

.rot-hero h1 {
    font-size: clamp(2.1rem, 5vw, 4.4rem);
    font-weight: 900;
    line-height: .98;
    margin-bottom: 18px;
    text-shadow: 0 3px 18px rgba(0,0,0,.25);
}

.rot-hero p {
    font-size: 1.1rem;
    max-width: 820px;
}

/* Buttons */
.btn,
.rot-btn,
.rot-login-btn,
.rot-register-btn {
    border-radius: 999px !important;
    font-weight: 900 !important;
    letter-spacing: .01em;
    transition: transform .16s ease, box-shadow .16s ease, background .16s ease;
}

.btn:hover,
.rot-btn:hover,
.rot-login-btn:hover,
.rot-register-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 8px 18px rgba(0,31,92,.18);
}

.rot-btn,
.btn-primary {
    background: var(--rot-blue) !important;
    border-color: var(--rot-blue) !important;
    color: #fff !important;
}

.rot-btn:hover,
.btn-primary:hover {
    background: var(--rot-dark-blue) !important;
    border-color: var(--rot-dark-blue) !important;
}

.btn-warning,
.rot-register-btn {
    background: var(--rot-gold) !important;
    border-color: var(--rot-gold) !important;
    color: #000 !important;
}

.btn-dark {
    background: var(--rot-navy) !important;
    border-color: var(--rot-navy) !important;
}

.btn-secondary {
    background: #334155 !important;
    border-color: #334155 !important;
}

/* Cards */
.rot-card,
.card {
    background: var(--rot-card);
    border-radius: var(--rot-radius);
    padding: 24px;
    box-shadow: var(--rot-shadow);
    border: 1px solid var(--rot-border);
    border-top: 6px solid var(--rot-blue);
    height: 100%;
    margin-bottom: 18px;
}

.rot-card h2,
.rot-card h3,
.rot-card h4 {
    color: var(--rot-dark-blue);
    font-weight: 900;
}

.rot-stat {
    font-size: 2.1rem;
    font-weight: 900;
    color: var(--rot-blue);
}

.rot-section-title {
    font-weight: 900;
    color: var(--rot-dark-blue);
    margin: 30px 0 18px;
    padding-left: 14px;
    border-left: 6px solid var(--rot-gold);
}

/* Matchday / fixture styling */
.homepage-fixture-details div,
.build-w-fixture-meta div,
.predict-detail-box,
.predict-mobile-grid > div,
.rot-score-row,
.rot-rules-list div {
    background: linear-gradient(180deg, #f7fbff 0%, #eef4ff 100%) !important;
    border-left: 5px solid var(--rot-blue) !important;
}

.fixture-tv-badge,
.fixture-tv-pill {
    background: var(--rot-navy) !important;
    color: #fff !important;
    border-left: 5px solid var(--rot-gold) !important;
}

.fixture-tv-inline {
    color: var(--rot-blue) !important;
    font-weight: 900;
}

/* Countdown */
.rot-countdown {
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
    justify-content: center;
}

.rot-countdown-box {
    background:
        linear-gradient(180deg, var(--rot-blue), var(--rot-dark-blue));
    color: #fff;
    border-radius: 15px;
    padding: 13px 17px;
    min-width: 86px;
    text-align: center;
    font-weight: 800;
    box-shadow: inset 0 0 0 1px rgba(255,255,255,.12);
}

.rot-countdown-box strong {
    display: block;
    font-size: 1.7rem;
    line-height: 1;
    margin-bottom: 4px;
    color: var(--rot-gold);
}

/* Tables */
.table {
    background: #fff;
    border-radius: 14px;
    overflow: hidden;
}

.table th {
    background: var(--rot-dark-blue) !important;
    color: #fff !important;
    border-color: rgba(255,255,255,.14) !important;
    font-weight: 900;
}

.table td {
    vertical-align: middle;
}

.table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #f6f9ff;
}

/* Leaderboard */
.leaderboard-gold {
    background: linear-gradient(90deg, #fff1a8, #ffffff) !important;
    border-left: 6px solid #d4af37;
}

.leaderboard-silver {
    background: linear-gradient(90deg, #eeeeee, #ffffff) !important;
    border-left: 6px solid #c0c0c0;
}

.leaderboard-bronze {
    background: linear-gradient(90deg, #f1c6a8, #ffffff) !important;
    border-left: 6px solid #cd7f32;
}

.leaderboard-me,
.leaderboard-me-row td {
    background: #fff3cd !important;
    outline: 2px solid var(--rot-gold);
    outline-offset: -2px;
}

.leaderboard-progress {
    height: 10px;
    background: #dbe4f0;
    border-radius: 999px;
    overflow: hidden;
}

.leaderboard-progress-fill {
    height: 100%;
    background: linear-gradient(90deg, var(--rot-blue), var(--rot-gold));
    border-radius: 999px;
}

/* Auth */
.rot-auth-hero {
    background: linear-gradient(135deg, var(--rot-blue), var(--rot-navy));
    color: #fff;
    border-radius: 24px;
    border-bottom: 6px solid var(--rot-gold);
}

.rot-auth-card {
    border-radius: 24px;
    border-top: 7px solid var(--rot-blue);
}

.form-control,
input,
select,
textarea {
    border-radius: 12px !important;
    border-color: #cbd5e1 !important;
}

.form-control:focus,
input:focus,
select:focus,
textarea:focus {
    border-color: var(--rot-blue) !important;
    box-shadow: 0 0 0 .2rem rgba(0,56,168,.18) !important;
}

/* Mobile header force compatibility */
.rot-force-mobile-header,
.rot-v-mobile-header {
    border-bottom: 3px solid var(--rot-gold);
}

.rot-force-menu-btn,
.rot-v-menu-btn {
    background: var(--rot-gold) !important;
    color: #000 !important;
    border-radius: 999px !important;
}

.rot-force-mobile-menu,
.rot-v-mobile-menu {
    background: var(--rot-navy) !important;
}

.rot-force-mobile-menu a,
.rot-v-mobile-menu a {
    color: #fff !important;
    font-weight: 900 !important;
}

.rot-force-mobile-menu a:hover,
.rot-v-mobile-menu a:hover {
    color: var(--rot-gold) !important;
}

/* Bottom nav */
.rot-bottom-nav,
.rot-v-bottom-nav {
    background: var(--rot-navy) !important;
    border-top: 3px solid var(--rot-gold);
}

.rot-bottom-nav a,
.rot-v-bottom-nav a {
    color: #fff !important;
}

.rot-bottom-nav a:hover,
.rot-bottom-nav a.active,
.rot-v-bottom-nav a:hover,
.rot-v-bottom-nav a.active {
    background: var(--rot-blue) !important;
    color: var(--rot-gold) !important;
}

/* Footer */
.rot-footer {
    background:
        linear-gradient(135deg, var(--rot-navy), #030b1a);
    color: #fff;
    text-align: center;
    padding: 30px;
    margin-top: 54px;
    border-top: 5px solid var(--rot-gold);
}

/* Professional page polish */
.homepage-stat-card,
.build-w-stat-card,
.leaderboard-my-position,
.my-position-card {
    text-align: center !important;
}

.homepage-stat-card:hover,
.build-w-stat-card:hover,
.rot-card:hover {
    box-shadow: 0 12px 32px rgba(0,31,92,.16);
}

.badge {
    border-radius: 999px;
    font-weight: 900;
}

/* Dark mode compatibility */
html.rot-dark-mode,
html.rot-dark-mode body {
    background: #07111f !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .rot-card,
html.rot-dark-mode .card,
html.rot-dark-mode .rot-auth-card {
    background: #0f1d33 !important;
    color: #f4f7fb !important;
    border-color: #28456f !important;
}

html.rot-dark-mode .rot-card h2,
html.rot-dark-mode .rot-card h3,
html.rot-dark-mode .rot-card h4,
html.rot-dark-mode .rot-section-title {
    color: #fff !important;
}

html.rot-dark-mode .table {
    background: #0f1d33 !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .table-striped > tbody > tr:nth-of-type(odd) > * {
    background-color: #132642 !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .homepage-fixture-details div,
html.rot-dark-mode .build-w-fixture-meta div,
html.rot-dark-mode .predict-detail-box,
html.rot-dark-mode .predict-mobile-grid > div,
html.rot-dark-mode .rot-score-row,
html.rot-dark-mode .rot-rules-list div {
    background: #132642 !important;
    color: #f4f7fb !important;
}

/* Mobile */
@media (max-width: 900px) {
    body {
        padding-bottom: 82px;
    }

    .container,
    .container-fluid {
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    .rot-nav {
        display: none !important;
    }

    .rot-hero {
        padding: 40px 20px !important;
        border-radius: 0 0 24px 24px !important;
        margin: 0 -14px 22px !important;
    }

    .rot-hero h1 {
        font-size: 2rem !important;
    }

    .rot-card {
        padding: 16px !important;
        border-radius: 16px;
        margin-bottom: 14px;
    }

    .rot-stat {
        font-size: 1.55rem !important;
    }

    .btn,
    .rot-btn {
        min-height: 44px;
    }

    .rot-card .btn {
        width: 100%;
        margin-bottom: 8px;
    }

    .rot-countdown {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px !important;
    }

    .rot-countdown-box {
        width: 100% !important;
        min-width: 0 !important;
        padding: 11px 8px;
    }

    .rot-countdown-box strong {
        font-size: 1.35rem;
    }

    .club-badge,
    .team-badge {
        width: 28px !important;
        height: 28px !important;
    }

    h1 {
        font-size: 1.8rem !important;
    }

    h2 {
        font-size: 1.4rem !important;
    }

    h3 {
        font-size: 1.15rem !important;
    }
}

/* Small screens */
@media (max-width: 420px) {
    .rot-card {
        padding: 14px !important;
    }

    .rot-hero h1 {
        font-size: 1.7rem !important;
    }

    .rot-brand {
        font-size: 1rem;
    }
}

/* ===== SOURCE: css/build-v-mobile.css ===== */
/* Build V - Full Mobile Optimisation */
/* Public/main site only. Do not load this in admin_header.php. */

/* -------- Base safety -------- */
* {
    box-sizing: border-box;
}

html {
    -webkit-text-size-adjust: 100%;
}

body {
    overflow-x: hidden;
}

img {
    max-width: 100%;
    height: auto;
}

/* -------- Responsive stats system -------- */
/* Works across index, dashboard, my-predictions, leaderboard and other public stat rows */

.rot-stats-grid,
.row.mb-4:has(.rot-stat),
.row.g-4:has(.rot-stat) {
    row-gap: 12px;
}

.rot-stat {
    line-height: 1.05;
}

/* Optional class for future pages */
.rot-compact-stats {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 12px;
}

/* -------- Cards -------- */
.rot-card {
    overflow-wrap: break-word;
    max-width: 100%;
}

/* -------- Buttons -------- */
.btn,
.rot-btn,
.rot-login-btn,
.rot-register-btn {
    white-space: normal;
}

/* -------- Tables -------- */
.rot-table-scroll,
.table-responsive-mobile {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

/* -------- Club badges -------- */
.club-badge,
.team-badge {
    object-fit: contain;
    flex-shrink: 0;
}

.fixture-teams,
.team-name-with-badge {
    max-width: 100%;
}

/* -------- Mobile nav -------- */
.rot-v-mobile-header,
.rot-v-mobile-menu,
.rot-v-bottom-nav {
    display: none;
}

/* -------- Mobile rules -------- */
@media (max-width: 900px) {
    body {
        padding-bottom: 76px;
    }

    .container,
    .container-fluid {
        width: 100%;
        max-width: 100%;
        padding-left: 14px;
        padding-right: 14px;
    }

    h1 {
        font-size: 1.8rem !important;
        line-height: 1.15 !important;
    }

    h2 {
        font-size: 1.45rem !important;
        line-height: 1.2 !important;
    }

    h3 {
        font-size: 1.2rem !important;
        line-height: 1.25 !important;
    }

    p {
        font-size: .98rem;
    }

    /* Hide desktop nav on public mobile */
    .rot-nav {
        display: none !important;
    }

    .rot-v-mobile-header {
        display: flex;
        align-items: center;
        justify-content: space-between;
        background: #0038A8;
        color: #ffffff;
        padding: 12px 14px;
        box-shadow: 0 4px 16px rgba(0,0,0,.18);
        position: sticky;
        top: 0;
        z-index: 99990;
    }

    .rot-v-mobile-brand {
        display: flex;
        align-items: center;
        gap: 10px;
        color: #ffffff !important;
        text-decoration: none !important;
        font-weight: 900;
        line-height: 1.1;
    }

    .rot-v-mobile-logo {
        width: 42px;
        height: 42px;
        border-radius: 50%;
        background: #ffffff;
        color: #0038A8;
        display: inline-flex;
        align-items: center;
        justify-content: center;
        font-weight: 900;
    }

    .rot-v-menu-btn {
        background: #f8c400;
        color: #000000;
        border: 0;
        border-radius: 9px;
        padding: 10px 14px;
        font-weight: 900;
    }

    .rot-v-mobile-menu {
        background: #001f5c;
        padding: 8px 14px 12px;
        z-index: 99989;
    }

    .rot-v-mobile-menu.open {
        display: block;
    }

    .rot-v-mobile-menu a,
    .rot-v-mobile-menu button {
        display: block;
        width: 100%;
        color: #ffffff !important;
        text-decoration: none !important;
        padding: 13px 6px;
        border: 0;
        border-bottom: 1px solid rgba(255,255,255,.16);
        background: transparent;
        text-align: left;
        font-weight: 800;
    }

    .rot-v-mobile-menu a:hover,
    .rot-v-mobile-menu button:hover {
        color: #f8c400 !important;
    }

    .rot-v-bottom-nav {
        position: fixed;
        bottom: 0;
        left: 0;
        right: 0;
        display: flex;
        background: #001f5c;
        z-index: 99998;
        box-shadow: 0 -4px 18px rgba(0,0,0,.28);
    }

    .rot-v-bottom-nav a {
        flex: 1;
        color: #ffffff !important;
        text-align: center;
        text-decoration: none !important;
        padding: 8px 3px;
        font-size: .68rem;
        font-weight: 800;
    }

    .rot-v-bottom-nav span {
        display: block;
        font-size: 1.15rem;
        line-height: 1;
        margin-bottom: 3px;
    }

    .rot-v-bottom-nav a.active,
    .rot-v-bottom-nav a:hover {
        background: #0038A8;
        color: #f8c400 !important;
    }

    /* Hero */
    .rot-hero {
        margin-left: -14px;
        margin-right: -14px;
        border-radius: 0 !important;
        padding: 28px 18px !important;
    }

    .rot-hero h1 {
        font-size: 2rem !important;
    }

    .rot-hero .btn,
    .rot-hero .rot-btn {
        display: block;
        width: 100%;
        margin: 8px 0 !important;
        text-align: center;
    }

    /* Cards */
    .rot-card {
        padding: 15px !important;
        border-radius: 14px !important;
        margin-bottom: 12px !important;
    }

    /* Stat cards: compact across all public pages */
    .row.mb-4:has(.rot-stat),
    .row.g-4:has(.rot-stat),
    .rot-compact-stats {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    .row.mb-4:has(.rot-stat) > [class*="col-"],
    .row.g-4:has(.rot-stat) > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 0 !important;
        padding-right: 0 !important;
        margin-bottom: 0 !important;
    }

    .row.mb-4:has(.rot-stat) .rot-card,
    .row.g-4:has(.rot-stat) .rot-card,
    .rot-compact-stats .rot-card {
        padding: 10px 8px !important;
        text-align: center !important;
        min-height: auto !important;
        margin-bottom: 0 !important;
    }

    .row.mb-4:has(.rot-stat) .rot-card h3,
    .row.mb-4:has(.rot-stat) .rot-card h4,
    .row.g-4:has(.rot-stat) .rot-card h3,
    .row.g-4:has(.rot-stat) .rot-card h4,
    .rot-compact-stats .rot-card h3,
    .rot-compact-stats .rot-card h4 {
        font-size: .78rem !important;
        line-height: 1.1 !important;
        margin: 0 0 4px !important;
        font-weight: 900 !important;
    }

    .row.mb-4:has(.rot-stat) .rot-stat,
    .row.g-4:has(.rot-stat) .rot-stat,
    .rot-compact-stats .rot-stat {
        font-size: 1.35rem !important;
        line-height: 1.1 !important;
        margin: 0 !important;
    }

    /* Standard rows */
    .row > [class*='col-'] {
        margin-bottom: 12px;
    }

    /* Buttons */
    .btn {
        min-height: 44px;
        white-space: normal;
    }

    .rot-card .btn,
    .rot-auth-card .btn,
    .my-position-card .btn {
        width: 100%;
        margin-bottom: 8px;
    }

    .btn-sm {
        width: auto !important;
        min-height: 34px;
        margin-bottom: 4px;
    }

    /* Forms */
    .form-control,
    input,
    select,
    textarea {
        min-height: 46px;
        font-size: 16px !important;
        max-width: 100%;
    }

    label {
        font-weight: 800;
    }

    /* Tables: keep readable but inside page */
    table.table {
        min-width: 680px;
        font-size: .88rem;
    }

    table.table th,
    table.table td {
        white-space: nowrap;
        padding: 9px;
    }

    .rot-card:has(table) {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }

    /* Fixtures / badges */
    .fixture-teams {
        display: flex;
        justify-content: flex-start;
        flex-wrap: wrap;
        gap: 8px;
        font-size: 1rem;
    }

    .team-name-with-badge {
        white-space: normal !important;
    }

    .club-badge,
    .team-badge {
        width: 26px !important;
        height: 26px !important;
    }

    /* Countdown */
    .rot-countdown {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr);
        gap: 8px !important;
    }

    .rot-countdown-box {
        min-width: 0 !important;
        width: 100% !important;
        padding: 10px !important;
    }

    .rot-countdown-box strong {
        font-size: 1.25rem !important;
    }

    /* Auth */
    .rot-auth-wrap {
        display: block !important;
        margin: 12px 0 !important;
    }

    .rot-auth-hero {
        min-height: auto !important;
        padding: 24px !important;
        border-radius: 16px 16px 0 0 !important;
    }

    .rot-auth-card {
        border-radius: 0 0 16px 16px !important;
        padding: 22px !important;
    }

    .rot-auth-hero h1 {
        font-size: 2rem !important;
    }

    /* Leaderboard */
    .leaderboard-table {
        min-width: 760px !important;
    }

    .my-position-card .row {
        display: grid !important;
        grid-template-columns: repeat(2, 1fr) !important;
        gap: 8px !important;
    }

    .my-position-card .row > [class*="col-"] {
        width: 100% !important;
        max-width: 100% !important;
        margin-bottom: 0 !important;
        padding: 8px !important;
        background: rgba(0,56,168,.08);
        border-radius: 10px;
    }

    /* Predict card layout support */
    .predict-details-grid {
        grid-template-columns: 1fr !important;
    }

    .predict-card-action .btn {
        width: 100%;
    }
}

@media (max-width: 480px) {
    .rot-hero h1 {
        font-size: 1.65rem !important;
    }

    .rot-card {
        padding: 13px !important;
    }

    .rot-v-bottom-nav a {
        font-size: .62rem;
    }

    .rot-v-bottom-nav span {
        font-size: 1rem;
    }

    .row.mb-4:has(.rot-stat) .rot-card h3,
    .row.mb-4:has(.rot-stat) .rot-card h4,
    .row.g-4:has(.rot-stat) .rot-card h3,
    .row.g-4:has(.rot-stat) .rot-card h4 {
        font-size: .72rem !important;
    }

    .row.mb-4:has(.rot-stat) .rot-stat,
    .row.g-4:has(.rot-stat) .rot-stat {
        font-size: 1.18rem !important;
    }
}
/* ===== Leaderboard Mobile Header Fix ===== */

@media (max-width: 768px) {

    .leaderboard-table thead,
    .leaderboard-table thead tr,
    .leaderboard-table thead th,
    table.table thead,
    table.table thead tr,
    table.table thead th {

        background: #0a2d73 !important;
        background-color: #0a2d73 !important;
        color: #ffffff !important;
    }

    table.table thead th {
        font-weight: 700;
        border-color: rgba(255,255,255,.15);
    }
}

/* ===== SOURCE: css/build-x1-no-green-red-accent.css ===== */
/* ==========================================================
   Build X.1 - No Green CSS Audit + Red Header/Footer Accent
   Rangers On Tour Predictor League
   Paste AFTER Build X / rot-theme.css
   ========================================================== */

:root {
    --rot-red: #d6001c;
    --rot-blue: #0038A8;
    --rot-dark-blue: #001f5c;
    --rot-navy: #07162f;
    --rot-gold: #f8c400;
}

/* Replace gold header/footer lines with Rangers red */
.rot-topbar,
.rot-force-mobile-header,
.rot-v-mobile-header {
    border-bottom: 4px solid var(--rot-red) !important;
}

.rot-footer,
.rot-bottom-nav,
.rot-v-bottom-nav {
    border-top: 4px solid var(--rot-red) !important;
}

/* Remove Bootstrap green success styling */
.btn-success,
.btn-outline-success,
.badge.bg-success,
.bg-success,
.text-bg-success {
    background: var(--rot-blue) !important;
    border-color: var(--rot-blue) !important;
    color: #ffffff !important;
}

.btn-success:hover,
.btn-outline-success:hover {
    background: var(--rot-dark-blue) !important;
    border-color: var(--rot-dark-blue) !important;
    color: #ffffff !important;
}

.text-success {
    color: var(--rot-blue) !important;
}

.border-success {
    border-color: var(--rot-blue) !important;
}

.alert-success {
    background: #e8f1ff !important;
    border-color: var(--rot-blue) !important;
    color: var(--rot-dark-blue) !important;
}

.alert-success strong,
.alert-success a {
    color: var(--rot-dark-blue) !important;
}

/* Remove green table states */
.table-success,
tr.table-success,
td.table-success,
th.table-success,
.table-success > * {
    background: #eef4ff !important;
    color: var(--rot-dark-blue) !important;
    border-color: #c8d8f2 !important;
}

/* Remove green list group states */
.list-group-item-success {
    background: #eef4ff !important;
    color: var(--rot-dark-blue) !important;
}

/* Remove green form states */
.form-control.is-valid,
.was-validated .form-control:valid,
.form-select.is-valid,
.was-validated .form-select:valid {
    border-color: var(--rot-blue) !important;
    background-image: none !important;
}

.valid-feedback {
    color: var(--rot-blue) !important;
}

/* Progress bars should be Rangers blue/red, not green */
.progress-bar,
.bg-success.progress-bar {
    background: linear-gradient(90deg, var(--rot-blue), var(--rot-red)) !important;
}

/* Replace custom green movement/status colours */
.movement-up {
    color: var(--rot-blue) !important;
    font-weight: 900;
}

/* Any status pills/cards that used success green */
.status-success,
.success,
.success-row,
.prediction-success,
.fixture-success,
.user-success,
.points-success {
    background: #e8f1ff !important;
    color: var(--rot-dark-blue) !important;
    border-color: var(--rot-blue) !important;
}

/* Override common green hex/rgb utility classes if they appear */
[style*="#087f23"],
[style*="#198754"],
[style*="#28a745"],
[style*="green"],
[style*="rgb(25, 135, 84)"] {
    color: var(--rot-blue) !important;
    border-color: var(--rot-blue) !important;
}

/* Bootstrap success SVG/check icons can show green; neutralise their colour */
.was-validated .form-control:valid,
.form-control.is-valid {
    box-shadow: 0 0 0 .2rem rgba(0, 56, 168, .14) !important;
}

/* Keep warning/gold available, but red is now the structural accent */
.rot-logo,
.rot-admin-logo {
    box-shadow: 0 0 0 3px rgba(214, 0, 28, .38) !important;
}

/* Mobile nav accents */
.rot-force-menu-btn,
.rot-v-menu-btn {
    box-shadow: 0 0 0 2px rgba(214,0,28,.25) !important;
}

/* Dark mode success replacements */
html.rot-dark-mode .alert-success {
    background: #102a4d !important;
    border-color: var(--rot-blue) !important;
    color: #f4f7fb !important;
}

html.rot-dark-mode .btn-success,
html.rot-dark-mode .badge.bg-success,
html.rot-dark-mode .bg-success {
    background: var(--rot-blue) !important;
    color: #ffffff !important;
}

html.rot-dark-mode .text-success {
    color: #9fc2ff !important;
}

/* Admin/public generic “active” or “complete” areas that may have used green */
.complete,
.completed,
.active-status,
.status-active {
    background: #e8f1ff !important;
    color: var(--rot-dark-blue) !important;
    border-color: var(--rot-blue) !important;
}

/* If Bootstrap icons inherit success colour */
.bi-check-circle,
.bi-check,
.icon-success {
    color: var(--rot-blue) !important;
}

/* ===== SOURCE: css/build-z-lite.css ===== */
/* Build Z Lite */
.bz-match-banner{background:linear-gradient(135deg,#0038A8,#001f5c);color:#fff;border-bottom:4px solid #d6001c;border-radius:0 0 18px 18px;padding:12px 16px;margin-bottom:18px;text-align:center;box-shadow:0 8px 24px rgba(0,31,92,.22)}
.bz-match-main{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.bz-match-main strong{font-size:1.05rem}.bz-match-main span,.bz-match-meta span,.bz-banner-countdown{font-weight:800}.bz-match-meta{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin-top:6px;font-size:.9rem}.bz-banner-countdown{margin-top:6px;color:#f8c400}
.bz-page h1{font-weight:900;color:#001f5c;margin-bottom:18px}.bz-my-position-card{text-align:center}.bz-my-position-grid,.bz-stats-grid,.bz-achievement-grid{display:grid;gap:14px}.bz-my-position-grid{grid-template-columns:repeat(4,1fr)}.bz-stats-grid{grid-template-columns:repeat(4,1fr);margin-bottom:18px}.bz-achievement-grid{grid-template-columns:repeat(4,1fr)}
.bz-my-position-grid div,.bz-stat-box{background:#eef4ff;border-radius:14px;padding:14px;text-align:center}.bz-my-position-grid small,.bz-stat-box small{display:block;text-transform:uppercase;font-weight:900;color:#001f5c;font-size:.72rem;margin-bottom:5px}.bz-my-position-grid strong,.bz-stat-box strong{display:block;font-size:1.7rem;color:#0038A8;font-weight:900}.bz-stat-box span{font-size:2rem;display:block;margin-bottom:4px}
.bz-leaderboard-list{display:grid;gap:12px}.bz-leaderboard-row{display:grid;grid-template-columns:58px 48px 1fr auto;align-items:center;gap:12px;background:#fff;border-radius:18px;border-left:7px solid #0038A8;padding:14px;box-shadow:0 8px 24px rgba(0,31,92,.12)}.bz-gold{border-left-color:#d4af37;background:linear-gradient(90deg,#fff3ba,#fff)}.bz-silver{border-left-color:#c0c0c0;background:linear-gradient(90deg,#eee,#fff)}.bz-bronze{border-left-color:#cd7f32;background:linear-gradient(90deg,#f1c6a8,#fff)}.bz-you-row{outline:3px solid #d6001c;outline-offset:-3px}.bz-rank{font-size:1.35rem;font-weight:900;text-align:center}.bz-avatar{width:44px;height:44px;border-radius:50%;background:#0038A8;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900}.bz-player strong{display:block;font-size:1.1rem;color:#001f5c}.bz-player small{color:#374151;font-weight:700}.bz-you-pill{display:inline-block;margin-left:6px;background:#f8c400;color:#000;border-radius:999px;padding:3px 8px;font-size:.72rem;font-weight:900;vertical-align:middle}.bz-points{text-align:right}.bz-points strong{display:block;font-size:1.7rem;color:#0038A8;line-height:1}.bz-points small{font-weight:900}.bz-progress{height:10px;background:#dbe4f0;border-radius:999px;overflow:hidden;margin-top:8px}.bz-progress div{height:100%;background:linear-gradient(90deg,#0038A8,#d6001c);border-radius:999px}
.bz-stat-panel{max-width:760px;margin:0 auto}.bz-stat-line{display:flex;justify-content:space-between;gap:12px;border-bottom:1px solid #dbe4f0;padding:12px 0;font-weight:900}.bz-achievement{text-align:center}.bz-achievement-emoji{font-size:2.2rem;margin-bottom:8px}.bz-achievement h3{font-weight:900}.bz-achievement.locked{opacity:.55;filter:grayscale(1)}.bz-unlocked,.bz-locked{display:inline-block;border-radius:999px;padding:5px 10px;font-weight:900}.bz-unlocked{background:#e8f1ff;color:#0038A8;border:1px solid #0038A8}.bz-locked{background:#eef2f7;color:#334155}
@media(max-width:900px){.bz-my-position-grid,.bz-stats-grid,.bz-achievement-grid{grid-template-columns:repeat(2,1fr)}.bz-leaderboard-row{grid-template-columns:44px 40px 1fr}.bz-points{grid-column:1/-1;text-align:center;background:#eef4ff;border-radius:12px;padding:8px}}
@media(max-width:480px){.bz-my-position-grid,.bz-stats-grid,.bz-achievement-grid{grid-template-columns:1fr}.bz-match-meta{display:grid;gap:5px}.bz-leaderboard-row{grid-template-columns:38px 36px 1fr;gap:8px;padding:12px}.bz-avatar{width:36px;height:36px}.bz-player strong{font-size:1rem}}

/* ===== SOURCE: css/build-aj-typography.css ===== */
/* Build AJ - Typography & Spacing Refresh */
/* Font size is controlled by body class:
   aj-font-compact
   aj-font-normal
   aj-font-comfortable
   aj-font-large
*/

:root {
    --aj-body-font: 15px;
    --aj-small-font: 13px;
    --aj-table-font: 14px;
    --aj-button-font: 14px;
    --aj-card-padding: 18px;
    --aj-card-radius: 16px;
}

body.aj-font-compact {
    --aj-body-font: 14px;
    --aj-small-font: 12px;
    --aj-table-font: 13px;
    --aj-button-font: 13px;
    --aj-card-padding: 14px;
}

body.aj-font-normal {
    --aj-body-font: 15px;
    --aj-small-font: 13px;
    --aj-table-font: 14px;
    --aj-button-font: 14px;
    --aj-card-padding: 18px;
}

body.aj-font-comfortable {
    --aj-body-font: 16px;
    --aj-small-font: 14px;
    --aj-table-font: 15px;
    --aj-button-font: 15px;
    --aj-card-padding: 22px;
}

body.aj-font-large {
    --aj-body-font: 17px;
    --aj-small-font: 15px;
    --aj-table-font: 16px;
    --aj-button-font: 16px;
    --aj-card-padding: 26px;
}

body {
    font-size: var(--aj-body-font) !important;
    line-height: 1.45;
}

p,
li,
label,
input,
select,
textarea,
.form-control,
.form-select {
    font-size: var(--aj-body-font) !important;
}

small,
.small,
.badge {
    font-size: var(--aj-small-font) !important;
}

h1 {
    font-size: calc(var(--aj-body-font) * 2) !important;
    line-height: 1.15;
}

h2 {
    font-size: calc(var(--aj-body-font) * 1.55) !important;
    line-height: 1.2;
}

h3 {
    font-size: calc(var(--aj-body-font) * 1.25) !important;
    line-height: 1.25;
}

h4 {
    font-size: calc(var(--aj-body-font) * 1.08) !important;
}

.btn,
button,
.rot-btn {
    font-size: var(--aj-button-font) !important;
    padding: 8px 13px !important;
}

.btn-sm {
    font-size: calc(var(--aj-button-font) - 1px) !important;
    padding: 6px 10px !important;
}

.rot-card,
.card,
.af-card,
.af-stat-card,
.af-tool-card,
.bz-leaderboard-row,
.bz-stat-box,
.bz-achievement {
    padding: var(--aj-card-padding) !important;
    border-radius: var(--aj-card-radius) !important;
}

.table {
    font-size: var(--aj-table-font) !important;
}

.table th,
.table td {
    padding: 8px 7px !important;
}

.rot-stat,
.af-stat {
    font-size: calc(var(--aj-body-font) * 1.8) !important;
}

.rot-nav a,
.af-admin-nav a,
.rot-admin-nav a {
    font-size: var(--aj-button-font) !important;
}

.rot-footer,
.af-admin-footer,
.rot-admin-footer {
    font-size: var(--aj-small-font) !important;
}

/* Mobile tighter layout */
@media (max-width: 760px) {
    body.aj-font-compact,
    body.aj-font-normal,
    body.aj-font-comfortable,
    body.aj-font-large {
        --aj-card-padding: 13px;
    }

    body.aj-font-compact {
        --aj-body-font: 13px;
        --aj-table-font: 12px;
    }

    body.aj-font-normal {
        --aj-body-font: 14px;
        --aj-table-font: 13px;
    }

    body.aj-font-comfortable {
        --aj-body-font: 15px;
        --aj-table-font: 14px;
    }

    body.aj-font-large {
        --aj-body-font: 16px;
        --aj-table-font: 15px;
    }

    h1 {
        font-size: calc(var(--aj-body-font) * 1.75) !important;
    }

    h2 {
        font-size: calc(var(--aj-body-font) * 1.35) !important;
    }

    h3 {
        font-size: calc(var(--aj-body-font) * 1.15) !important;
    }

    .table th,
    .table td {
        padding: 6px 4px !important;
    }
}

/* ===== SOURCE: css/build-am-footer-socials.css ===== */
.rot-social-footer{margin:16px auto 8px;text-align:center}.rot-social-footer a{display:inline-block;margin:4px 7px;color:#ffffff!important;text-decoration:none!important;font-weight:800}.rot-social-footer a:hover{text-decoration:underline!important}

/* ===== SOURCE: css/build-ak-professional-finish.css ===== */
/* Build AK - Professional Finish */

/* Global polish */
:root {
    --ak-blue: #0038A8;
    --ak-dark-blue: #001f5c;
    --ak-red: #d6001c;
    --ak-navy: #07162f;
    --ak-light: #eef3fb;
    --ak-card: #ffffff;
    --ak-shadow: 0 14px 34px rgba(0,31,92,.16);
    --ak-soft-shadow: 0 8px 22px rgba(0,31,92,.11);
}

body {
    background:
        radial-gradient(circle at top left, rgba(0,56,168,.10), transparent 34%),
        radial-gradient(circle at bottom right, rgba(214,0,28,.08), transparent 32%),
        linear-gradient(180deg, #f7faff 0%, #eef3fb 100%) !important;
}

/* Smooth cards */
.rot-card,
.af-card,
.af-tool-card,
.af-stat-card,
.bz-stat-box,
.bz-achievement,
.leaderboard-my-position,
.leaderboard-table-card {
    border-radius: 20px !important;
    box-shadow: var(--ak-soft-shadow) !important;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}

.rot-card:hover,
.af-tool-card:hover,
.af-stat-card:hover,
.bz-achievement:hover {
    transform: translateY(-2px);
    box-shadow: var(--ak-shadow) !important;
}

/* Professional page headings */
h1 {
    font-weight: 950 !important;
    letter-spacing: -.03em;
}

.rot-section-title,
h2 {
    font-weight: 950 !important;
}

/* Hero upgrade */
.rot-hero,
.ak-hero {
    position: relative;
    overflow: hidden;
    background:
        linear-gradient(135deg, rgba(0,56,168,.96), rgba(0,31,92,.98)),
        radial-gradient(circle at top right, rgba(255,255,255,.18), transparent 32%) !important;
    border-radius: 26px !important;
    border-bottom: 5px solid var(--ak-red);
}

.rot-hero:before,
.ak-hero:before {
    content: "";
    position: absolute;
    inset: -60px;
    background:
        linear-gradient(115deg, transparent 0%, transparent 42%, rgba(255,255,255,.10) 48%, transparent 54%, transparent 100%);
    animation: akShine 7s ease-in-out infinite;
    pointer-events: none;
}

@keyframes akShine {
    0%, 60% { transform: translateX(-40%); opacity: 0; }
    70% { opacity: 1; }
    100% { transform: translateX(40%); opacity: 0; }
}

.rot-hero > *,
.ak-hero > * {
    position: relative;
    z-index: 1;
}

/* Buttons */
.btn,
.rot-btn,
button {
    transition: transform .16s ease, box-shadow .16s ease, filter .16s ease;
}

.btn:hover,
.rot-btn:hover,
button:hover {
    transform: translateY(-1px);
    filter: brightness(1.03);
}

/* Fixture cards */
.ak-fixture-card {
    background: #ffffff;
    border-radius: 22px;
    border-top: 6px solid var(--ak-blue);
    box-shadow: var(--ak-soft-shadow);
    padding: 22px;
    margin-bottom: 18px;
    position: relative;
    overflow: hidden;
}

.ak-fixture-card:after {
    content: "";
    position: absolute;
    top: 0;
    right: 0;
    width: 90px;
    height: 90px;
    background: linear-gradient(135deg, rgba(0,56,168,.12), rgba(214,0,28,.08));
    border-bottom-left-radius: 100%;
}

.ak-fixture-teams {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    flex-wrap: wrap;
    font-weight: 950;
    color: var(--ak-dark-blue);
    margin: 12px 0;
}

.ak-fixture-vs {
    background: var(--ak-red);
    color: #ffffff;
    border-radius: 999px;
    padding: 5px 10px;
    font-size: .85em;
}

.ak-match-meta {
    display: flex;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    margin-top: 12px;
}

.ak-meta-pill {
    background: #eef4ff;
    color: var(--ak-dark-blue);
    border: 1px solid #d5e2fb;
    border-radius: 999px;
    padding: 7px 11px;
    font-weight: 800;
    font-size: .92em;
}

/* Hot match banner */
.ak-hot-match {
    background: linear-gradient(135deg, var(--ak-blue), var(--ak-dark-blue));
    color: #ffffff;
    border-radius: 24px;
    padding: 24px;
    box-shadow: var(--ak-shadow);
    border-bottom: 5px solid var(--ak-red);
    margin-bottom: 22px;
    text-align: center;
}

.ak-hot-match h2 {
    color: #ffffff !important;
    margin-bottom: 8px;
}

.ak-hot-match .ak-meta-pill {
    background: rgba(255,255,255,.12);
    color: #ffffff;
    border-color: rgba(255,255,255,.20);
}

/* Trophy / achievement styling */
.ak-trophy-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}

.ak-trophy-card {
    background: #ffffff;
    border-radius: 20px;
    padding: 18px;
    text-align: center;
    box-shadow: var(--ak-soft-shadow);
    border-top: 5px solid var(--ak-blue);
}

.ak-trophy-icon {
    font-size: 2.2rem;
    display: block;
    margin-bottom: 8px;
}

.ak-trophy-card strong {
    color: var(--ak-dark-blue);
    font-weight: 950;
}

/* Leaderboard polish */
.leaderboard-rank-1 td,
.ak-gold-row td {
    background: linear-gradient(90deg, #fff3ba, #ffffff) !important;
}

.leaderboard-rank-2 td,
.ak-silver-row td {
    background: linear-gradient(90deg, #eeeeee, #ffffff) !important;
}

.leaderboard-rank-3 td,
.ak-bronze-row td {
    background: linear-gradient(90deg, #f1c6a8, #ffffff) !important;
}

.leaderboard-me-row td {
    box-shadow: inset 4px 0 0 var(--ak-blue);
}

/* Admin dashboard polish */
.af-dashboard-grid .af-stat-card,
.ak-dashboard-card {
    position: relative;
    overflow: hidden;
}

.af-dashboard-grid .af-stat-card:after,
.ak-dashboard-card:after {
    content: "";
    position: absolute;
    right: -24px;
    bottom: -24px;
    width: 88px;
    height: 88px;
    background: rgba(0,56,168,.08);
    border-radius: 50%;
}

/* Tables */
.table {
    box-shadow: var(--ak-soft-shadow);
    overflow: hidden;
}

.table th {
    letter-spacing: .01em;
}

/* Profile/user badges */
.ak-user-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    border-radius: 999px;
    padding: 6px 10px;
    font-weight: 900;
    background: #eef4ff;
    color: var(--ak-dark-blue);
}

/* Loading / fade effect */
.ak-fade-in {
    animation: akFadeIn .35s ease both;
}

@keyframes akFadeIn {
    from { opacity: 0; transform: translateY(8px); }
    to { opacity: 1; transform: translateY(0); }
}

/* Mobile refinement */
@media (max-width: 760px) {
    .rot-hero,
    .ak-hero,
    .ak-hot-match {
        border-radius: 18px !important;
        padding: 20px !important;
    }

    .ak-trophy-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .ak-fixture-card {
        padding: 16px;
    }

    .ak-fixture-teams {
        gap: 8px;
        font-size: .96em;
    }

    .ak-meta-pill {
        font-size: .84em;
        padding: 6px 9px;
    }
}

@media (max-width: 430px) {
    .ak-trophy-grid {
        grid-template-columns: 1fr;
    }
}

/* ===== SOURCE: css/fixture-badges.css ===== */
/* Badge Spacing Clean Fix */

.rot-fixture-teams {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
    flex-wrap: wrap;
    line-height: 1.25;
}

.rot-team-with-badge {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-weight: 800;
    line-height: 1.25;
    white-space: nowrap;
}

.rot-team-badge-left {
    flex-direction: row;
}

.rot-team-badge-right {
    flex-direction: row;
}

.rot-club-badge {
    width: 1.25em !important;
    height: 1.25em !important;
    min-width: 1.25em !important;
    max-width: 1.25em !important;
    max-height: 1.25em !important;
    object-fit: contain !important;
    display: inline-block !important;
    vertical-align: middle !important;
    flex: 0 0 auto;
}

.rot-fixture-v {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-weight: 950;
    color: #0038A8;
    font-size: 1.05em;
    margin: 0 2px;
}

/* Match banner only */
.bz-match-banner .rot-fixture-v{
    color:#ffffff !important;
}

/* Homepage next fixture card */
.homepage-fixture-title {
    text-align: center;
}

.homepage-fixture-title .rot-fixture-teams {
    font-size: 1rem;
    gap: 10px;
}

.homepage-fixture-title .rot-team-with-badge {
    font-size: 1rem;
}

/* Banner version can be slightly bigger */
.bz-match-banner .rot-fixture-teams {
    font-size: 1.1rem;
}

/* Tables */
.table .rot-fixture-teams {
    justify-content: flex-start;
}

.table .rot-team-with-badge {
    font-size: 0.95rem;
}

/* Mobile */
@media (max-width: 700px) {
    .rot-fixture-teams {
        gap: 7px;
    }

    .rot-team-with-badge {
        gap: 5px;
        font-size: 0.95rem;
    }

    .rot-club-badge {
        width: 1.15em !important;
        height: 1.15em !important;
        min-width: 1.15em !important;
        max-width: 1.15em !important;
        max-height: 1.15em !important;
    }

    .rot-fixture-v {
        margin: 0 1px;
    }
}

/* ===== SOURCE: css/global-footer.css ===== */
/* Build AQ.3.2 - Global Footer Manager */

.aq32-global-footer {
    background: #07162f;
    border-top: 4px solid #d6001c;
    color: #ffffff;
    text-align: center;
    padding: 28px 16px 34px;
    margin-top: 32px;
}

.aq32-footer-socials {
    display: flex;
    justify-content: center;
    align-items: center;
    gap: 12px;
    flex-wrap: wrap;
    margin-bottom: 16px;
}

.aq32-social {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    color: #ffffff !important;
    text-decoration: none !important;
    font-weight: 900;
    padding: 8px 12px;
    border-radius: 999px;
    background: #0038A8;
    transition: transform .2s ease, background .2s ease;
}

.aq32-social:hover {
    background: #d6001c;
    transform: translateY(-2px);
}

.aq32-social i {
    font-size: 1.05rem;
}

.aq32-social-facebook { background:#1877F2; }
.aq32-social-instagram { background:linear-gradient(45deg,#f58529,#dd2a7b,#8134af,#515bd4); }
.aq32-social-x { background:#000000; }
.aq32-social-youtube { background:#ff0000; }
.aq32-social-tiktok { background:#111111; }
.aq32-social-whatsapp { background:#25D366; }
.aq32-social-threads { background:#000000; }

.aq32-copyright,
.aq32-footer-text,
.aq32-version {
    margin: 8px 0;
}

.aq32-copyright {
    font-weight: 900;
}

.aq32-footer-text {
    color: #e5edf8;
}

.aq32-version {
    color: #94a3b8;
    font-size: .78rem;
}

.aq32-back-top {
    margin-top: 12px;
    border: 0;
    border-radius: 999px;
    background: #0038A8;
    color: #ffffff;
    font-weight: 900;
    padding: 9px 16px;
    cursor: pointer;
}

.aq32-back-top:hover {
    background: #d6001c;
}

@media (max-width: 700px) {
    .aq32-global-footer {
        padding-bottom: 88px;
    }

    .aq32-footer-socials {
        gap: 8px;
    }

    .aq32-social {
        padding: 8px 10px;
        font-size: .82rem;
    }

    .aq32-social span {
        display: none;
    }

    .aq32-social i {
        font-size: 1.2rem;
    }
}

/* ===== SOURCE: css/cookie-notice.css ===== */
.rot-cookie-notice{
    position:fixed;
    left:16px;
    right:16px;
    bottom:16px;
    z-index:9999;
    background:#07162f;
    color:#fff;
    border-top:4px solid #d6001c;
    border-radius:16px;
    padding:14px;
    box-shadow:0 10px 30px rgba(0,0,0,.25);
    display:flex;
    gap:12px;
    align-items:center;
    justify-content:space-between;
}
.rot-cookie-notice p{margin:4px 0 0;font-size:.9rem;}
.rot-cookie-notice button{
    border:0;
    background:#0038A8;
    color:#fff;
    border-radius:999px;
    padding:8px 14px;
    font-weight:900;
}
@media(max-width:700px){
    .rot-cookie-notice{flex-direction:column;align-items:flex-start;bottom:78px;}
}

/* ===== SOURCE: css/sponsor-pro-v3.css ===== */
/*
 * Rangers On Tour Predictor League
 * Sponsor Pro V3.3 — Clean Core
 *
 * Core appearance only.
 * Grid/card sizing and responsive layout are controlled by:
 * css/sponsor-pro-v3-uniform-cards.css
 */

.sp30-sponsor-section {
    background: #ffffff;
    border-top: 5px solid #0038A8;
    border-radius: 20px;
    box-shadow: 0 10px 28px rgba(0, 31, 92, .12);
}

.sp30-section-heading,
.sp30-tier-heading {
    display: flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.sp30-section-heading h2,
.sp30-tier-heading h3 {
    margin: 0;
    color: #001f5c;
    font-weight: 900;
}

.sp30-section-heading p {
    margin: 3px 0;
    color: #475569;
}

.sp30-sponsor-card {
    text-decoration: none !important;
    gap: 9px;
}

.sp30-sponsor-card.sp30-level-gold {
    border: 2px solid #d4af37;
    background: #fffdf5;
}

.sp30-sponsor-card.sp30-level-silver {
    border: 2px solid #a8b0bd;
    background: #fafbfd;
}

.sp30-sponsor-card.sp30-level-bronze {
    border: 2px solid #b87333;
    background: #fffaf6;
}

.sp30-level-badge {
    border-radius: 999px;
    padding: 5px 10px;
    font-size: .75rem;
    font-weight: 900;
    color: #07162f;
}

.sp30-level-gold .sp30-level-badge { background: #f8c400; }
.sp30-level-silver .sp30-level-badge { background: #dbe3ed; }
.sp30-level-bronze .sp30-level-badge { background: #d9955b; }

.sp30-placeholder {
    width: 54px;
    height: 54px;
    border-radius: 50%;
    background: #eef4ff;
    color: #0038A8;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 900;
}

.sp30-sponsor-card strong {
    color: #001f5c;
}

.sp30-sponsor-card small {
    color: #475569;
}

/* Sponsor Spotlight */
.sp30-spotlight {
    display: grid;
    grid-template-columns: 220px 1fr;
    gap: 22px;
    align-items: center;
    padding: 24px;
    border-radius: 20px;
    margin: 24px 0;
    position: relative;
}

.sp30-spotlight img {
    max-width: 200px;
    max-height: 100px;
    width: auto;
    height: auto;
    object-fit: contain;
    background: #ffffff;
    padding: 12px;
    border-radius: 14px;
}

.sp30-spotlight-label {
    position: absolute;
    right: 16px;
    top: 14px;
    background: #0038A8;
    color: #ffffff;
    border-radius: 999px;
    padding: 6px 11px;
    font-weight: 900;
}

.sp30-spotlight a {
    display: inline-block;
    background: #0038A8;
    color: #ffffff;
    border-radius: 999px;
    padding: 10px 16px;
    text-decoration: none;
    font-weight: 900;
}

/* Admin/location controls */
.sp30-location-box {
    background: #f8fbff;
    border: 1px solid #dbe5f4;
    border-radius: 14px;
    padding: 14px;
    margin: 14px 0;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.sp30-location-box label {
    background: #ffffff;
    border: 1px solid #dbe5f4;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 900;
}

@media (max-width: 760px) {
    .sp30-sponsor-card small {
        display: none;
    }

    .sp30-spotlight {
        grid-template-columns: 1fr;
        text-align: center;
        padding-top: 54px;
    }
}

/* ===== SOURCE: css/sponsor-pro-v3-uniform-cards.css ===== */
/*
 * Rangers On Tour Predictor League
 * Sponsor Pro V3.4 — Tier Hierarchy
 *
 * Gold cards are largest, Silver cards are medium,
 * Bronze cards are compact. Tier headings are hidden
 * and each card gets a coloured star badge.
 */

.sp30-sponsor-section {
    width: min(1200px, calc(100% - 28px)) !important;
    max-width: 1200px !important;
    margin: 30px auto !important;
    padding: 26px !important;
    box-sizing: border-box !important;
    text-align: center !important;
}

.sp30-section-heading {
    width: 100% !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
    text-align: center !important;
    margin-bottom: 30px !important;
}

.sp30-section-heading > div,
.sp30-section-heading h2,
.sp30-section-heading p {
    text-align: center !important;
}

/* Remove Gold/Silver/Bronze heading rows completely. */
.sp30-tier-heading {
    display: none !important;
}

.sp30-tier {
    width: 100% !important;
    margin: 30px 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
}

.sp30-tier:first-of-type {
    margin-top: 10px !important;
}

.sp30-tier:last-child {
    margin-bottom: 0 !important;
}

.sp30-tier + .sp30-tier {
    border-top: 0 !important;
    padding-top: 0 !important;
}

.sp30-tier-grid {
    width: 100% !important;
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: stretch !important;
    gap: 20px !important;
    margin: 0 auto !important;
    padding: 0 !important;
}

/* Shared card foundation */
.sp30-sponsor-card,
.sp30-sponsor-item .sp30-sponsor-card {
    position: relative !important;
    min-width: 0 !important;
    margin: 0 !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    text-align: center !important;
    text-decoration: none !important;
    box-sizing: border-box !important;
    transition: transform .22s ease, box-shadow .22s ease !important;
    overflow: hidden !important;
}

.sp30-sponsor-card:hover {
    transform: translateY(-5px);
}

/* Coloured star inside every sponsor card */
.sp30-sponsor-card::before {
    content: "★";
    position: absolute;
    top: 14px;
    left: 14px;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #ffffff;
    font-size: 1.25rem;
    line-height: 1;
    font-weight: 900;
    box-shadow: 0 5px 14px rgba(0, 31, 92, .16);
    z-index: 2;
}

/* GOLD — biggest and most prominent */
.sp30-sponsor-card.sp30-level-gold {
    width: 430px !important;
    max-width: calc(50% - 10px) !important;
    min-height: 235px !important;
    padding: 28px 24px !important;
    border-radius: 22px !important;
    background: #fffdf5 !important;
    border: 2px solid #d9aa00 !important;
    box-shadow: 0 14px 34px rgba(217, 170, 0, .18) !important;
}

.sp30-sponsor-card.sp30-level-gold::before {
    background: #d9aa00;
}

.sp30-sponsor-card.sp30-level-gold .sp30-logo-box {
    height: 112px !important;
}

.sp30-sponsor-card.sp30-level-gold .sp30-logo-box img {
    max-width: 230px !important;
    max-height: 100px !important;
}

.sp30-sponsor-card.sp30-level-gold strong {
    font-size: 1.18rem !important;
}

/* SILVER — medium size */
.sp30-sponsor-card.sp30-level-silver {
    width: 350px !important;
    max-width: 100% !important;
    min-height: 195px !important;
    padding: 22px 20px !important;
    border-radius: 19px !important;
    background: #fafbfd !important;
    border: 2px solid #aab6c7 !important;
    box-shadow: 0 10px 26px rgba(95, 113, 138, .16) !important;
}

.sp30-sponsor-card.sp30-level-silver::before {
    background: #9aa8ba;
}

.sp30-sponsor-card.sp30-level-silver .sp30-logo-box {
    height: 88px !important;
}

.sp30-sponsor-card.sp30-level-silver .sp30-logo-box img {
    max-width: 180px !important;
    max-height: 76px !important;
}

.sp30-sponsor-card.sp30-level-silver strong {
    font-size: 1.05rem !important;
}

/* BRONZE — smallest, compact cards */
.sp30-sponsor-card.sp30-level-bronze {
    width: 270px !important;
    max-width: 100% !important;
    min-height: 160px !important;
    padding: 18px 16px !important;
    border-radius: 17px !important;
    background: #fffaf6 !important;
    border: 2px solid #c96d20 !important;
    box-shadow: 0 8px 20px rgba(201, 109, 32, .14) !important;
}

.sp30-sponsor-card.sp30-level-bronze::before {
    background: #c96d20;
}

.sp30-sponsor-card.sp30-level-bronze .sp30-logo-box {
    height: 68px !important;
}

.sp30-sponsor-card.sp30-level-bronze .sp30-logo-box img {
    max-width: 145px !important;
    max-height: 58px !important;
}

.sp30-sponsor-card.sp30-level-bronze strong {
    font-size: .95rem !important;
}

/* Shared logo/text */
.sp30-logo-box {
    width: 100% !important;
    margin: 0 auto 12px !important;
    padding: 0 !important;
    display: flex !important;
    justify-content: center !important;
    align-items: center !important;
    background: transparent !important;
    text-align: center !important;
}

.sp30-logo-box img {
    display: block !important;
    width: auto !important;
    height: auto !important;
    margin: 0 auto !important;
    object-fit: contain !important;
}

.sp30-sponsor-name,
.sp30-sponsor-card strong {
    display: block !important;
    width: 100% !important;
    margin: 0 !important;
    color: #001f5c !important;
    font-weight: 900 !important;
    text-align: center !important;
}

.sp30-sponsor-tagline,
.sp30-sponsor-card small {
    display: block;
    width: 100% !important;
    margin-top: 7px !important;
    color: #64748b !important;
    text-align: center !important;
}

/* Hide the old Gold/Silver/Bronze wording badge inside cards. */
.sp30-sponsor-card > .sp30-level-badge {
    display: none !important;
}

/* Footer uses the same hierarchy. */
.rot-footer .sp30-tier-grid,
footer .sp30-tier-grid {
    justify-content: center !important;
}

/* Mobile */
@media (max-width: 768px) {
    .sp30-sponsor-section {
        width: calc(100% - 18px) !important;
        margin: 24px auto !important;
        padding: 18px 12px !important;
    }

    .sp30-section-heading {
        margin-bottom: 22px !important;
    }

    .sp30-tier {
        margin: 24px 0 !important;
    }

    .sp30-tier-grid {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        justify-content: center !important;
        justify-items: center !important;
        align-items: stretch !important;
        gap: 10px !important;
    }

    .sp30-sponsor-card::before {
        top: 10px;
        left: 10px;
        width: 32px;
        height: 32px;
        font-size: 1rem;
    }

    /* Gold cards span the full row and remain the largest. */
    .sp30-sponsor-card.sp30-level-gold {
        grid-column: 1 / -1 !important;
        width: min(100%, 520px) !important;
        max-width: 520px !important;
        min-height: 190px !important;
        padding: 22px 18px !important;
        justify-self: center !important;
    }

    .sp30-sponsor-card.sp30-level-gold .sp30-logo-box {
        height: 92px !important;
    }

    .sp30-sponsor-card.sp30-level-gold .sp30-logo-box img {
        max-width: 190px !important;
        max-height: 82px !important;
    }

    /* Silver cards are narrower than Gold. */
    .sp30-sponsor-card.sp30-level-silver {
        grid-column: 1 / -1 !important;
        width: min(78%, 360px) !important;
        max-width: 360px !important;
        min-height: 170px !important;
        justify-self: center !important;
    }

    /* Bronze cards stay compact and can sit side by side. */
    .sp30-sponsor-card.sp30-level-bronze {
        width: 100% !important;
        max-width: 220px !important;
        min-height: 145px !important;
        padding: 14px 10px !important;
    }

    .sp30-sponsor-card.sp30-level-bronze .sp30-logo-box {
        height: 60px !important;
    }

    .sp30-sponsor-card.sp30-level-bronze .sp30-logo-box img {
        max-width: 115px !important;
        max-height: 50px !important;
    }

    /* Centre a single or odd final Bronze card. */
    .sp30-tier-grid > .sp30-sponsor-card.sp30-level-bronze:only-child,
    .sp30-tier-grid > .sp30-sponsor-card.sp30-level-bronze:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
        width: min(220px, 100%) !important;
        justify-self: center !important;
    }
}

@media (max-width: 390px) {
    .sp30-tier-grid {
        gap: 7px !important;
    }

    .sp30-sponsor-card.sp30-level-gold {
        min-height: 180px !important;
    }

    .sp30-sponsor-card.sp30-level-silver {
        width: min(88%, 330px) !important;
    }

    .sp30-sponsor-card.sp30-level-bronze {
        max-width: 170px !important;
        min-height: 135px !important;
    }

    .sp30-sponsor-card.sp30-level-bronze strong {
        font-size: .84rem !important;
    }
}

/* ===== SOURCE: css/prize-centre.css ===== */
/* Build V2.9 - Prize Centre Pro */

.rot-prize-banner {
    background: linear-gradient(135deg, #f8c400, #ffdd45);
    color: #07162f;
    border-bottom: 4px solid #d6001c;
    font-weight: 900;
    box-shadow: 0 6px 18px rgba(0,0,0,.15);
}

.rot-prize-banner-inner {
    width: min(1200px, calc(100% - 24px));
    margin: 0 auto;
    padding: 10px 0;
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    text-align: center;
}

.rot-prize-banner a {
    color: #0038A8;
    text-decoration: none;
    font-weight: 950;
}

.rot-prize-centre {
    background: #ffffff;
    border-top: 5px solid #0038A8;
    border-radius: 20px;
    box-shadow: 0 10px 28px rgba(0,31,92,.12);
    padding: 22px;
    margin: 24px 0;
}

.rot-prize-centre-head {
    display: flex;
    gap: 14px;
    align-items: center;
    justify-content: center;
    text-align: left;
    margin-bottom: 18px;
}

.rot-prize-centre-head span {
    font-size: 2.5rem;
}

.rot-prize-centre-head h2 {
    margin: 0;
    color: #001f5c;
    font-weight: 950;
}

.rot-prize-centre-head p {
    margin: 4px 0 0;
    color: #475569;
}

.rot-prize-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 18px;
}

.rot-prize-card {
    background: #f8fbff;
    border: 1px solid #dbe5f4;
    border-radius: 18px;
    overflow: hidden;
    display: flex;
    flex-direction: column;
}

.rot-prize-image {
    min-height: 150px;
    background-size: cover;
    background-position: center;
    background-color: #001f5c;
}

.rot-prize-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 4rem;
    color: #ffffff;
    background: linear-gradient(135deg, #0038A8, #001f5c);
}

.rot-prize-body {
    padding: 18px;
}

.rot-prize-body small {
    color: #0038A8;
    font-weight: 900;
}

.rot-prize-body h3 {
    color: #001f5c;
    font-weight: 950;
    margin: 4px 0 8px;
}

.rot-prize-subtitle {
    display: block;
    color: #d6001c;
    font-weight: 950;
    margin-bottom: 10px;
}

.rot-prize-date,
.rot-prize-winner {
    background: #ffffff;
    border-radius: 12px;
    padding: 10px 12px;
    margin: 12px 0;
    border: 1px solid #dbe5f4;
}

.rot-prize-countdown {
    background: linear-gradient(135deg, #0038A8, #001f5c);
    color: #ffffff;
    border-radius: 16px;
    padding: 14px;
    text-align: center;
    margin: 12px 0;
}

.rot-prize-countdown b {
    display: block;
    font-size: 2.3rem;
    line-height: 1;
}

.rot-prize-countdown span {
    display: block;
    font-weight: 800;
    margin-top: 4px;
}

.rot-prize-leader {
    background: #fff7d6;
    border: 1px solid #f8c400;
    border-radius: 14px;
    padding: 12px;
    margin: 12px 0;
    text-align: center;
}

.rot-prize-leader span,
.rot-prize-leader small {
    display: block;
}

.rot-prize-leader strong {
    display: block;
    color: #001f5c;
    font-size: 1.3rem;
}

.rot-prize-btn {
    display: inline-block;
    background: #f8c400;
    color: #07162f;
    text-decoration: none;
    font-weight: 950;
    padding: 10px 14px;
    border-radius: 999px;
    margin-top: 6px;
}

.rot-prize-admin-checks {
    background: #f8fbff;
    border: 1px solid #dbe5f4;
    border-radius: 14px;
    padding: 14px;
    display: flex;
    gap: 10px;
    flex-wrap: wrap;
}

.rot-prize-admin-checks label {
    background: #ffffff;
    border: 1px solid #dbe5f4;
    border-radius: 999px;
    padding: 8px 12px;
    font-weight: 900;
}

@media(max-width: 700px) {
    .rot-prize-banner-inner {
        font-size: .9rem;
    }

    .rot-prize-centre {
        padding: 16px;
    }

    .rot-prize-centre-head {
        align-items: flex-start;
        justify-content: flex-start;
    }
}

/* ===== SOURCE: css/v4-public.css ===== */
/* V4.0 Milestone 5 - Public Site */
:root{--v4-blue:#0038a8;--v4-navy:#001f5c;--v4-red:#d6001c;--v4-gold:#f8c400;--v4-ink:#07162f;--v4-page:#f3f7fc;--v4-border:#dbe5f4;--v4-radius:18px;--v4-shadow:0 10px 28px rgba(0,31,92,.12)}
html{overflow-x:hidden;scroll-behavior:smooth}
body.rot-v4{min-width:0;overflow-x:hidden;background:radial-gradient(circle at top left,rgba(0,56,168,.07),transparent 32rem),var(--v4-page);color:var(--v4-ink)}
body.rot-v4 *,body.rot-v4 *:before,body.rot-v4 *:after{box-sizing:border-box}
body.rot-v4 img,body.rot-v4 svg,body.rot-v4 video{max-width:100%}
body.rot-v4 main.container{width:min(1180px,calc(100% - 28px));max-width:1180px;min-width:0;padding:0;margin:auto}
body.rot-v4 h1,body.rot-v4 h2,body.rot-v4 h3{color:var(--v4-navy);font-weight:900;overflow-wrap:anywhere}
body.rot-v4 h1{margin:24px 0 18px;font-size:clamp(1.7rem,3.2vw,2.45rem)}
body.rot-v4 .rot-section-title{text-align:center;color:var(--v4-navy);font-weight:950}
body.rot-v4 .rot-card,body.rot-v4 .card{min-width:0;height:auto;border:1px solid var(--v4-border);border-top:5px solid var(--v4-blue);border-radius:var(--v4-radius);background:#fff;box-shadow:var(--v4-shadow);overflow:hidden}
body.rot-v4 .rot-card{padding:20px;margin-bottom:18px}
body.rot-v4 .row>*{min-width:0}
body.rot-v4 .btn,body.rot-v4 .rot-btn,body.rot-v4 button:not(.rot-v-menu-btn){min-height:42px;border-radius:999px;font-weight:850}
body.rot-v4 .btn-primary,body.rot-v4 .rot-btn,body.rot-v4 .btn-success{border-color:var(--v4-blue);background:var(--v4-blue);color:#fff}
body.rot-v4 .btn-warning{border-color:var(--v4-gold);background:var(--v4-gold);color:var(--v4-ink)}
body.rot-v4 .btn-danger{border-color:var(--v4-red);background:var(--v4-red)}
body.rot-v4 .form-control,body.rot-v4 .form-select,body.rot-v4 textarea,body.rot-v4 input,body.rot-v4 select{max-width:100%;min-width:0;min-height:44px;border-radius:12px}
body.rot-v4 label{color:var(--v4-navy);font-weight:800}
body.rot-v4 .table-responsive,body.rot-v4 .v4-table-wrap{width:100%;min-width:0;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:14px}
body.rot-v4 table{width:100%;margin-bottom:0}
body.rot-v4 table th{background:var(--v4-navy);color:#fff;white-space:nowrap;vertical-align:middle}
body.rot-v4 table td{vertical-align:middle}
body.rot-v4 .rot-topbar{border-bottom:4px solid var(--v4-red)}
body.rot-v4 .rot-topbar .container{width:min(1240px,calc(100% - 28px));max-width:1240px;min-width:0}
body.rot-v4 .rot-brand{min-width:0;gap:10px}
body.rot-v4 .rot-logo{flex:0 0 auto;overflow:hidden}
body.rot-v4 .rot-logo img{width:100%;height:100%;object-fit:contain}
body.rot-v4 .rot-nav{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:4px 12px}
body.rot-v4 .rot-nav a{margin:0;padding:8px 4px}
body.rot-v4 .rot-nav a.active,body.rot-v4 .rot-nav a[aria-current=page]{color:var(--v4-gold)}
body.rot-v4 .rot-hero{max-width:100%;border-radius:24px;padding:clamp(28px,7vw,62px) clamp(18px,5vw,42px);overflow:hidden}
body.rot-v4 .rot-hero h1,body.rot-v4 .rot-hero h2,body.rot-v4 .rot-hero p{color:#fff}
body.rot-v4 .rot-countdown{justify-content:center}
body.rot-v4 .ao11-brand-pill{display:inline-flex;align-items:center;justify-content:center;gap:8px;max-width:100%}
body.rot-v4 .ao11-brand-icon{flex:0 0 auto;object-fit:contain}
body.rot-v4 .rot-prize-centre,body.rot-v4 .sp30-sponsor-section,body.rot-v4 .sp30-spotlight{width:100%;max-width:100%;margin:22px 0}
body.rot-v4 .sp30-logo-box img,body.rot-v4 .sp30-spotlight img{object-fit:contain}
body.rot-v4 .rot-v-bottom-nav a.active,body.rot-v4 .rot-v-bottom-nav a[aria-current=page]{background:rgba(255,255,255,.14);color:var(--v4-gold)}
body.rot-page-profile-location .rot-card,body.rot-page-profile .rot-card{max-width:960px;margin-left:auto;margin-right:auto}
body.rot-page-info .rot-info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
body.rot-page-leaderboard table tbody tr:nth-child(1) td{background:rgba(248,196,0,.13)}
body.rot-page-leaderboard table tbody tr:nth-child(2) td{background:rgba(148,163,184,.13)}
body.rot-page-leaderboard table tbody tr:nth-child(3) td{background:rgba(184,115,51,.10)}


/* UI Buttons V1.0 */
.btn,
button,
input[type=submit],
input[type=button],
input[type=reset],
a.btn{
min-height:36px!important;
padding:8px 18px!important;
border-radius:18px!important;
font-size:15px!important;
font-weight:700!important;
line-height:1.2!important;
display:inline-flex;
align-items:center;
justify-content:center;
}
@media (max-width:768px){
.btn,button,input[type=submit],input[type=button],input[type=reset],a.btn{
min-height:34px!important;
padding:7px 16px!important;
font-size:14px!important;
}
}

/* ===== SOURCE: css/v4-mobile.css ===== */
/* V4.0 Milestone 5 - Mobile */
@media(max-width:991px){
body.rot-v4 .rot-nav{display:none!important}
body.rot-v4 .rot-v-mobile-header{display:flex;justify-content:flex-end;align-items:center;min-height:48px;padding:6px 12px;background:#001f5c}
body.rot-v4 .rot-v-menu-btn{min-width:92px;min-height:40px;border:1px solid rgba(255,255,255,.32);border-radius:999px;background:#0038a8;color:#fff;font-weight:900}
body.rot-v4 .rot-v-mobile-menu{width:min(360px,calc(100% - 24px));max-height:calc(100vh - 70px);overflow-y:auto}
body.rot-v4 .rot-topbar .container{justify-content:center!important}
}
@media(max-width:767px){
body.rot-v4{padding-bottom:78px}
body.rot-v4 main.container{width:calc(100% - 18px)}
body.rot-v4 .rot-card{padding:14px;border-radius:15px;margin-bottom:14px}
body.rot-v4 .rot-hero{margin:16px 0;text-align:center}
body.rot-v4 .rot-hero h1{font-size:clamp(1.7rem,9vw,2.55rem)}
body.rot-v4 .rot-hero .btn,body.rot-v4 .rot-hero .rot-btn{width:100%;max-width:340px;margin:5px auto}
body.rot-v4 .btn,body.rot-v4 .rot-btn,body.rot-v4 button:not(.rot-v-menu-btn){min-height:44px}
body.rot-v4 .v4-table-wrap{margin:0 -4px;width:calc(100% + 8px)}
body.rot-v4 table{font-size:.82rem}
body.rot-v4 table th,body.rot-v4 table td{padding:.55rem .42rem}
body.rot-v4 .rot-countdown{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.rot-v4 .rot-countdown-box{min-width:0;width:100%;padding:10px 6px}
body.rot-v4 .rot-v-bottom-nav{display:flex}
body.rot-v4 .rot-v-bottom-nav a{min-width:0;padding:9px 3px;font-size:.67rem;line-height:1.1}
body.rot-v4 .sp30-tier-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
body.rot-v4 .sp30-sponsor-card{width:100%!important;min-height:132px;padding:8px}
body.rot-v4 .sp30-logo-box{height:58px}
body.rot-v4 .sp30-logo-box img{max-width:112px;max-height:47px}
body.rot-v4 .sp30-sponsor-card small{display:none}
body.rot-v4 .rot-prize-grid{grid-template-columns:1fr}
body.rot-page-leaderboard table{table-layout:fixed;font-size:.72rem}
body.rot-page-leaderboard table th,body.rot-page-leaderboard table td{padding:.46rem .25rem;white-space:normal;overflow-wrap:anywhere}
body.rot-page-results table,body.rot-page-prediction-stats table{min-width:680px}
body.rot-page-info .rot-info-grid{grid-template-columns:1fr}
}
@media(max-width:390px){
body.rot-v4 main.container{width:calc(100% - 12px)}
body.rot-v4 .rot-card{padding:12px}
body.rot-v4 .rot-brand{font-size:.96rem}
body.rot-v4 .rot-logo{width:44px;height:44px}
}
@media(max-width:340px){body.rot-v4 .sp30-tier-grid{grid-template-columns:1fr}}

/* ===== SOURCE: css/typography-system-v1.css ===== */
/*
=====================================================
Rangers On Tour — Typography System V1.0
Headings: Manrope
Interface/body: Inter
=====================================================
*/

/* Google Fonts. Existing local/system fallbacks remain available if blocked. */
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Manrope:wght@600;700;800&display=swap");

:root {
    --rot-font-body: "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI",
        Roboto, Helvetica, Arial, sans-serif;
    --rot-font-heading: "Manrope", "Inter", -apple-system, BlinkMacSystemFont,
        "Segoe UI", Roboto, Helvetica, Arial, sans-serif;

    --rot-weight-regular: 400;
    --rot-weight-medium: 500;
    --rot-weight-semibold: 600;
    --rot-weight-bold: 700;
    --rot-weight-extrabold: 800;

    --rot-letter-tight: -0.025em;
    --rot-letter-heading: -0.018em;
    --rot-letter-label: 0.055em;
}

/* Main interface text */
html,
body {
    font-family: var(--rot-font-body) !important;
    font-weight: var(--rot-weight-regular);
    font-feature-settings: "kern" 1, "liga" 1, "calt" 1;
    text-rendering: optimizeLegibility;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

/* Forms and controls do not always inherit fonts naturally */
button,
input,
select,
textarea,
option {
    font-family: var(--rot-font-body) !important;
}

/* Modern, clean heading hierarchy */
h1,
h2,
h3,
h4,
h5,
h6,
.page-title,
.card-title,
.modal-title,
.hero-title,
.section-title,
.admin-page-title {
    font-family: var(--rot-font-heading) !important;
    font-weight: var(--rot-weight-extrabold);
    letter-spacing: var(--rot-letter-heading);
    line-height: 1.15;
}

h1 {
    letter-spacing: var(--rot-letter-tight);
}

h2,
h3 {
    line-height: 1.2;
}

/* Navigation and action text */
.main-nav,
.navbar,
.site-nav,
.admin-nav,
.btn,
button,
input[type="submit"],
input[type="button"],
input[type="reset"],
.badge,
.status,
.pill,
.tab,
.pagination {
    font-family: var(--rot-font-body) !important;
    font-weight: var(--rot-weight-bold);
}

/* Tables and data-heavy screens */
table,
th,
td,
.leaderboard-table,
.admin-table,
.fixtures-table {
    font-family: var(--rot-font-body) !important;
}

th,
.table-heading,
.table-header {
    font-weight: var(--rot-weight-bold);
    letter-spacing: 0.01em;
}

/* Small interface labels */
.eyebrow,
.overline,
.meta-label,
.field-label,
.stat-label,
.card-label,
small[class*="label"],
[class*="section-kicker"] {
    font-family: var(--rot-font-body) !important;
    font-weight: var(--rot-weight-bold);
    letter-spacing: var(--rot-letter-label);
    text-transform: uppercase;
}

/* Body copy */
p,
li,
label,
.help-text,
.form-text,
.card-text,
.modal-body {
    line-height: 1.55;
}

/* Numeric clarity for leaderboards, stats and scores */
.lnv6-number,
.lbv6-number,
.lbv6-points,
.stat-value,
.score,
.points,
.rank,
.countdown,
input[type="number"] {
    font-variant-numeric: tabular-nums;
}

/*
Do not override icon-font families.
This protects Font Awesome and similar icon libraries.
*/
.fa,
.fas,
.far,
.fal,
.fad,
.fab,
.fa-solid,
.fa-regular,
.fa-light,
.fa-thin,
.fa-duotone,
.fa-brands,
[class^="fa-"],
[class*=" fa-"],
.material-icons,
.material-symbols-outlined {
    font-family: inherit;
}

/* Font Awesome's own declarations must win where supplied */
.fa::before,
.fas::before,
.far::before,
.fal::before,
.fad::before,
.fab::before,
.fa-solid::before,
.fa-regular::before,
.fa-light::before,
.fa-thin::before,
.fa-duotone::before,
.fa-brands::before,
[class^="fa-"]::before,
[class*=" fa-"]::before {
    font-family: var(--fa-style-family, "Font Awesome 6 Free") !important;
}

/* Mobile tuning */
@media (max-width: 768px) {
    body {
        font-size: 15px;
    }

    h1 {
        line-height: 1.12;
    }

    h2,
    h3 {
        line-height: 1.18;
    }

    .btn,
    button,
    input[type="submit"],
    input[type="button"] {
        letter-spacing: 0;
    }
}

/* Accessibility: preserve readable text when users enlarge fonts */
@media (max-width: 420px) {
    html {
        -webkit-text-size-adjust: 100%;
        text-size-adjust: 100%;
    }
}

/* ===== SOURCE: css/fun-pack-v1.css ===== */
/* Rangers On Tour Fun Pack V1.0 */
:root{--fun-blue:#0754d8;--fun-deep:#001b52;--fun-red:#d71920;--fun-gold:#ffd638}
.rot-fun-enabled{--fun-glow:0 0 28px rgba(38,117,255,.28)}
.rot-matchday-mode .rot-topbar{box-shadow:0 0 28px rgba(51,126,255,.55);position:relative}
.rot-matchday-mode .rot-topbar:after{content:"MATCHDAY";position:absolute;right:18px;bottom:-13px;background:var(--fun-red);color:#fff;padding:5px 11px;border-radius:999px;font:800 11px/1 Inter,sans-serif;letter-spacing:.09em}
.rot-matchday-mode .rot-card,.rot-matchday-mode .card{animation:rotMatchGlow 3.6s ease-in-out infinite alternate}
@keyframes rotMatchGlow{to{box-shadow:0 10px 34px rgba(14,76,190,.18)}}
.rot-fun-toast{position:fixed;right:18px;bottom:90px;z-index:99990;width:min(350px,calc(100vw - 36px));padding:15px 17px;border:1px solid rgba(255,255,255,.25);border-radius:17px;background:linear-gradient(135deg,#073e9e,#001b52);color:#fff;box-shadow:0 18px 52px rgba(0,20,70,.32);transform:translateY(24px);opacity:0;pointer-events:none;transition:.25s ease}
.rot-fun-toast.is-showing{transform:none;opacity:1;pointer-events:auto}.rot-fun-toast strong{display:block;font-size:1rem}.rot-fun-toast small{color:rgba(255,255,255,.8)}
.rot-broxi-tip{display:flex;gap:11px;align-items:center}.rot-broxi-tip .mascot{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff;color:#073e9e;font-size:24px}
.rot-confetti{position:fixed;inset:0;z-index:99999;pointer-events:none;overflow:hidden}.rot-confetti i{position:absolute;top:-20px;width:9px;height:15px;background:var(--fun-gold);animation:rotConfettiFall 1.8s linear forwards}.rot-confetti i:nth-child(3n){background:#fff}.rot-confetti i:nth-child(3n+1){background:#1565d8}
@keyframes rotConfettiFall{to{transform:translate3d(var(--drift),110vh,0) rotate(740deg);opacity:.2}}
.rot-achievement-pop{border-left:5px solid var(--fun-gold)}
.rot-fun-sound{position:fixed;right:16px;bottom:20px;z-index:9990;width:42px;height:42px;border:0;border-radius:50%;background:#073e9e;color:#fff;box-shadow:0 9px 25px rgba(0,0,0,.2)}
.rot-arcade-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.rot-game-card{padding:22px;border-radius:20px;background:#fff;box-shadow:0 12px 34px rgba(0,32,92,.12);text-decoration:none;color:#10203c}.rot-game-card:hover{transform:translateY(-3px)}
.rot-weekly-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.rot-weekly-stat{padding:18px;border-radius:18px;background:#fff;box-shadow:0 10px 28px rgba(0,30,85,.1)}
.rot-night-ready.rot-night-active{background:#071124;color:#ecf3ff}.rot-night-active .rot-card,.rot-night-active .card,.rot-night-active .rot-game-card{background:#101f38;color:#ecf3ff;border-color:#203a63}
.rot-season-festive .rot-topbar:before{content:"❄";position:absolute;left:8px;color:#fff;animation:rotSnow 3s linear infinite}@keyframes rotSnow{to{transform:translateY(55px) rotate(180deg);opacity:0}}
.rot-reduced-motion *,@media (prefers-reduced-motion:reduce){.rot-fun-enabled *{animation:none!important;transition:none!important}}
@media(max-width:760px){.rot-arcade-grid{grid-template-columns:1fr}.rot-weekly-grid{grid-template-columns:repeat(2,1fr)}.rot-matchday-mode .rot-topbar:after{display:block;right:10px;bottom:-14px;z-index:1005;font-size:10px;padding:5px 10px;box-shadow:0 4px 12px rgba(0,0,0,.24)}.rot-fun-toast{bottom:78px}}

/* =========================================================
   Broxi Toast Emergency Fix V1.1.3
   Protects close button from global button/theme overrides.
   ========================================================= */

#rotFunToast.rot-fun-toast {
    position: fixed !important;
    right: 18px !important;
    bottom: 90px !important;
    z-index: 99990 !important;
    width: min(420px, calc(100vw - 36px)) !important;
    padding: 18px 48px 18px 20px !important;
    border-radius: 20px !important;
    overflow: visible !important;
}

#rotFunToast .rot-fun-toast-close {
    position: absolute !important;
    top: 9px !important;
    right: 9px !important;
    left: auto !important;
    bottom: auto !important;

    display: grid !important;
    place-items: center !important;

    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;

    padding: 0 !important;
    margin: 0 !important;
    gap: 0 !important;

    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.10) !important;
    box-shadow: none !important;

    color: #ffffff !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    text-decoration: none !important;

    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
    transform: none !important;
}

#rotFunToast .rot-fun-toast-close:hover,
#rotFunToast .rot-fun-toast-close:focus {
    background: rgba(255,255,255,.22) !important;
    color: #ffffff !important;
    outline: 2px solid rgba(255,255,255,.45) !important;
    outline-offset: 1px !important;
    transform: scale(1.06) !important;
}

#rotFunToast .rot-broxi-tip {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 0 !important;
    margin: 0 !important;
}

#rotFunToast .rot-broxi-tip .mascot {
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 50px !important;
    font-size: 28px !important;
}

#rotFunToast .rot-broxi-tip > div {
    min-width: 0 !important;
    padding-right: 4px !important;
}

#rotFunToast strong {
    display: block !important;
    margin: 0 0 4px !important;
    font-size: 1.08rem !important;
    line-height: 1.2 !important;
}

#rotFunToast small {
    display: block !important;
    margin: 0 !important;
    font-size: .95rem !important;
    line-height: 1.4 !important;
}

@media (max-width: 760px) {
    #rotFunToast.rot-fun-toast {
        right: 10px !important;
        bottom: 78px !important;
        width: calc(100vw - 20px) !important;
        padding: 16px 42px 16px 16px !important;
        border-radius: 18px !important;
    }

    #rotFunToast .rot-fun-toast-close {
        top: 8px !important;
        right: 8px !important;
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
        font-size: 14px !important;
    }

    #rotFunToast .rot-broxi-tip .mascot {
        flex-basis: 46px !important;
        width: 46px !important;
        height: 46px !important;
        font-size: 25px !important;
    }
}

/* ===== SOURCE: css/rot-core-overrides-v1.css ===== */
/*
===============================================================================
Rangers On Tour — Core UI Override V1.0
Loads last and resolves conflicts between Bootstrap, typography, theme fixes,
Fun Pack, PWA controls, footer social icons and global button rules.
===============================================================================
*/

:root {
    --rot-blue: #0038A8;
    --rot-blue-dark: #07162f;
    --rot-red: #D6001C;
    --rot-white: #ffffff;
    --rot-text: #111827;
    --rot-muted: #6b7280;
    --rot-radius: 18px;
    --rot-shadow: 0 14px 36px rgba(0, 31, 92, .18);
}

/* ---------------------------------------------------------------------------
   1. Global colour hierarchy
--------------------------------------------------------------------------- */
h1, h2, h3, h4, h5, h6,
.page-title, .card-title, .section-title,
.profile-title, .profile-section-title, .profile-card-title,
.info-content h1, .info-content h2, .info-content h3 {
    color: var(--rot-blue) !important;
}

small, .muted, .text-muted, .help-text {
    color: var(--rot-muted);
}

/* ---------------------------------------------------------------------------
   2. General button system
--------------------------------------------------------------------------- */
.btn,
a.btn,
button.btn,
input[type="submit"].btn,
input[type="button"].btn,
input[type="reset"].btn {
    min-height: 34px !important;
    height: auto !important;
    padding: 7px 14px !important;
    border-radius: 999px !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.15 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 6px !important;
    white-space: nowrap;
}

/* Component controls must never inherit global button dimensions. */
#rotFunToast .rot-fun-toast-close,
#rotPwaIosHelp .rot-pwa-ios-close,
#rotPwaInstall.rot-pwa-install,
#rotFunSound.rot-fun-sound {
    margin: 0 !important;
}

/* ---------------------------------------------------------------------------
   3. Header logo
--------------------------------------------------------------------------- */
.rot-brand .rot-logo {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex: 0 0 60px !important;
    width: 60px !important;
    height: 60px !important;
    min-width: 60px !important;
    min-height: 60px !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: transparent !important;
    box-shadow: none !important;
    overflow: visible !important;
}

.rot-brand .rot-logo img {
    display: block !important;
    width: 60px !important;
    height: 60px !important;
    max-width: 60px !important;
    max-height: 60px !important;
    object-fit: contain !important;
    object-position: center !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    box-shadow: none !important;
    transform: none !important;
    filter: none !important;
}

/* ---------------------------------------------------------------------------
   4. Font Awesome footer/social icon protection
--------------------------------------------------------------------------- */
.aq32-footer-socials .aq32-social i,
.aq32-footer-socials .aq32-social i::before {
    font-style: normal !important;
    font-variant: normal !important;
    text-rendering: auto !important;
    line-height: 1 !important;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

.aq32-footer-socials .aq32-social i.fa-brands,
.aq32-footer-socials .aq32-social i.fab,
.aq32-footer-socials .aq32-social i.fa-brands::before,
.aq32-footer-socials .aq32-social i.fab::before {
    font-family: "Font Awesome 6 Brands" !important;
    font-weight: 400 !important;
}

.aq32-footer-socials .aq32-social i.fa-solid,
.aq32-footer-socials .aq32-social i.fas,
.aq32-footer-socials .aq32-social i.fa-solid::before,
.aq32-footer-socials .aq32-social i.fas::before {
    font-family: "Font Awesome 6 Free" !important;
    font-weight: 900 !important;
}

.aq32-footer-socials .aq32-social {
    min-height: 36px !important;
    height: auto !important;
    padding: 8px 12px !important;
    margin: 0 !important;
    border-radius: 999px !important;
}

/* ---------------------------------------------------------------------------
   5. Broxi / Fun Pack toast
--------------------------------------------------------------------------- */
#rotFunToast.rot-fun-toast {
    position: fixed !important;
    right: 18px !important;
    bottom: 90px !important;
    z-index: 99990 !important;
    width: min(420px, calc(100vw - 36px)) !important;
    padding: 18px 48px 18px 20px !important;
    margin: 0 !important;
    border: 1px solid rgba(255,255,255,.24) !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, #073e9e, #001b52) !important;
    color: #ffffff !important;
    box-shadow: 0 18px 52px rgba(0,20,70,.32) !important;
    overflow: visible !important;
}

#rotFunToast .rot-fun-toast-close {
    position: absolute !important;
    top: 9px !important;
    right: 9px !important;
    left: auto !important;
    bottom: auto !important;
    display: grid !important;
    place-items: center !important;
    width: 22px !important;
    min-width: 22px !important;
    max-width: 22px !important;
    height: 22px !important;
    min-height: 22px !important;
    max-height: 22px !important;
    padding: 0 !important;
    gap: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: rgba(255,255,255,.10) !important;
    box-shadow: none !important;
    color: #ffffff !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 15px !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    cursor: pointer !important;
    appearance: none !important;
    -webkit-appearance: none !important;
}

#rotFunToast .rot-fun-toast-close:hover,
#rotFunToast .rot-fun-toast-close:focus {
    background: rgba(255,255,255,.22) !important;
    outline: 2px solid rgba(255,255,255,.42) !important;
    outline-offset: 1px !important;
    transform: scale(1.06) !important;
}

#rotFunToast .rot-broxi-tip {
    display: flex !important;
    align-items: center !important;
    gap: 14px !important;
    padding: 0 !important;
    margin: 0 !important;
}

#rotFunToast .rot-broxi-tip .mascot {
    display: grid !important;
    place-items: center !important;
    flex: 0 0 50px !important;
    width: 50px !important;
    height: 50px !important;
    border-radius: 50% !important;
    background: #ffffff !important;
    color: #073e9e !important;
    font-size: 28px !important;
}

#rotFunToast strong {
    display: block !important;
    margin: 0 0 4px !important;
    color: #ffffff !important;
    font-size: 1.08rem !important;
    line-height: 1.2 !important;
}

#rotFunToast small {
    display: block !important;
    margin: 0 !important;
    color: rgba(255,255,255,.86) !important;
    font-size: .95rem !important;
    line-height: 1.4 !important;
}

/* ---------------------------------------------------------------------------
   6. PWA install button
--------------------------------------------------------------------------- */
#rotPwaInstall.rot-pwa-install {
    position: fixed !important;
    right: 16px !important;
    bottom: 82px !important;
    z-index: 99970 !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    width: auto !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 40px !important;
    height: auto !important;
    padding: 9px 15px !important;
    border: 0 !important;
    border-radius: 999px !important;
    background: var(--rot-red) !important;
    color: #ffffff !important;
    box-shadow: 0 12px 30px rgba(0,0,0,.25) !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 14px !important;
    font-weight: 800 !important;
    line-height: 1.1 !important;
    cursor: pointer !important;
}

#rotPwaInstall.rot-pwa-install[hidden] {
    display: none !important;
}

/* ---------------------------------------------------------------------------
   7. PWA iPhone install dialog
--------------------------------------------------------------------------- */
#rotPwaIosHelp.rot-pwa-ios-help {
    position: fixed !important;
    inset: 0 !important;
    z-index: 100100 !important;
    display: none !important;
    place-items: center !important;
    width: 100vw !important;
    height: 100vh !important;
    padding: 20px !important;
    margin: 0 !important;
    background: rgba(2,13,35,.76) !important;
}

#rotPwaIosHelp.rot-pwa-ios-help.is-open {
    display: grid !important;
}

#rotPwaIosHelp .rot-pwa-ios-card {
    position: relative !important;
    width: min(430px, 100%) !important;
    max-width: 430px !important;
    padding: 28px 24px !important;
    margin: 0 !important;
    border-radius: 22px !important;
    background: #ffffff !important;
    color: var(--rot-blue-dark) !important;
    box-shadow: 0 25px 80px rgba(0,0,0,.35) !important;
    text-align: left !important;
}

#rotPwaIosHelp .rot-pwa-ios-card h2 {
    margin: 0 34px 14px 0 !important;
    color: var(--rot-blue) !important;
}

#rotPwaIosHelp .rot-pwa-ios-card ol {
    margin: 12px 0 0 !important;
    padding-left: 22px !important;
    line-height: 1.65 !important;
}

#rotPwaIosHelp .rot-pwa-ios-close {
    position: absolute !important;
    top: 10px !important;
    right: 10px !important;
    left: auto !important;
    bottom: auto !important;
    display: grid !important;
    place-items: center !important;
    width: 28px !important;
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    min-height: 28px !important;
    max-height: 28px !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #edf3ff !important;
    color: var(--rot-blue) !important;
    box-shadow: none !important;
    font-family: Arial, Helvetica, sans-serif !important;
    font-size: 18px !important;
    font-weight: 800 !important;
    line-height: 1 !important;
    cursor: pointer !important;
}

/* The modal must never appear as ordinary content. */
#rotPwaIosHelp:not(.is-open) {
    display: none !important;
}

/* Standalone app mode */
.rot-pwa-standalone #rotPwaInstall {
    display: none !important;
}

@media (display-mode: standalone) {
    #rotPwaInstall {
        display: none !important;
    }
}

/* ---------------------------------------------------------------------------
   8. Responsive protections
--------------------------------------------------------------------------- */
@media (max-width: 760px) {
    .rot-brand .rot-logo {
        flex-basis: 54px !important;
        width: 54px !important;
        height: 54px !important;
        min-width: 54px !important;
        min-height: 54px !important;
    }

    .rot-brand .rot-logo img {
        width: 54px !important;
        height: 54px !important;
        max-width: 54px !important;
        max-height: 54px !important;
    }

    #rotFunToast.rot-fun-toast {
        right: 10px !important;
        bottom: 78px !important;
        width: calc(100vw - 20px) !important;
        padding: 16px 42px 16px 16px !important;
        border-radius: 18px !important;
    }

    #rotFunToast .rot-fun-toast-close {
        top: 8px !important;
        right: 8px !important;
        width: 20px !important;
        min-width: 20px !important;
        max-width: 20px !important;
        height: 20px !important;
        min-height: 20px !important;
        max-height: 20px !important;
        font-size: 14px !important;
    }

    #rotPwaInstall.rot-pwa-install {
        right: 12px !important;
        bottom: 76px !important;
        padding: 8px 12px !important;
        font-size: 13px !important;
    }

    .aq32-footer-socials .aq32-social {
        width: 40px !important;
        min-width: 40px !important;
        min-height: 40px !important;
        padding: 0 !important;
        gap: 0 !important;
    }

    .aq32-footer-socials .aq32-social span {
        display: none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    #rotFunToast,
    #rotPwaInstall,
    #rotPwaIosHelp * {
        animation: none !important;
        transition: none !important;
    }
}


/* =========================================================
   ROT GLOBAL SPONSOR GRID — 2 x 2 DESKTOP STANDARD
   Keeps every Sponsor Pro section consistent across all
   public pages. Four sponsors = 2 + 2. Odd final sponsor
   is centred on its own row.
   ========================================================= */
@media (min-width: 769px) {
    .sp30-sponsor-section .sp30-tier-grid,
    .rot-footer .sp30-tier-grid,
    footer .sp30-tier-grid {
        width: 100% !important;
        max-width: 900px !important;
        margin-left: auto !important;
        margin-right: auto !important;
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 430px)) !important;
        grid-auto-flow: row !important;
        justify-content: center !important;
        justify-items: center !important;
        align-items: stretch !important;
        gap: 20px !important;
    }

    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-card,
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-item,
    .rot-footer .sp30-tier-grid > .sp30-sponsor-card,
    footer .sp30-tier-grid > .sp30-sponsor-card {
        min-width: 0 !important;
        margin-left: auto !important;
        margin-right: auto !important;
    }

    /* Gold cards fill either of the two columns cleanly. */
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-card.sp30-level-gold,
    .sp30-sponsor-section .sp30-sponsor-item .sp30-sponsor-card.sp30-level-gold {
        width: 100% !important;
        max-width: 430px !important;
    }

    /* One sponsor, or an odd final sponsor, sits centred below. */
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-card:only-child,
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-card:last-child:nth-child(odd),
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-item:only-child,
    .sp30-sponsor-section .sp30-tier-grid > .sp30-sponsor-item:last-child:nth-child(odd),
    .rot-footer .sp30-tier-grid > .sp30-sponsor-card:only-child,
    .rot-footer .sp30-tier-grid > .sp30-sponsor-card:last-child:nth-child(odd),
    footer .sp30-tier-grid > .sp30-sponsor-card:only-child,
    footer .sp30-tier-grid > .sp30-sponsor-card:last-child:nth-child(odd) {
        grid-column: 1 / -1 !important;
        justify-self: center !important;
    }
}
