  /* ===== Gaya Profesional untuk Halaman Pertandingan ===== */
    .tournament-hero {
        background: linear-gradient(135deg, #0d6efd 0%, #0a58ca 50%, #084298 100%);
        color: #fff;
        padding: 3rem 1rem;
        border-radius: 0 0 2rem 2rem;
        margin-bottom: 2rem;
        position: relative;
        overflow: hidden;
    }
    .tournament-hero::before {
        content: "";
        position: absolute;
        top: -50%;
        right: -10%;
        width: 400px;
        height: 400px;
        background: rgba(255,255,255,0.08);
        border-radius: 50%;
    }
    .tournament-hero::after {
        content: "";
        position: absolute;
        bottom: -60%;
        left: -5%;
        width: 300px;
        height: 300px;
        background: rgba(255,255,255,0.06);
        border-radius: 50%;
    }
    .tournament-hero h1 {
        font-weight: 800;
        letter-spacing: -0.5px;
        position: relative;
        z-index: 1;
    }
    .tournament-hero p {
        position: relative;
        z-index: 1;
        opacity: 0.95;
    }

    .tournament-card {
        border: none;
        border-radius: 1rem;
        overflow: hidden;
        box-shadow: 0 4px 20px rgba(0,0,0,0.08);
        transition: all 0.3s ease;
        background: #fff;
    }
    .tournament-card:hover {
        transform: translateY(-5px);
        box-shadow: 0 12px 30px rgba(13,110,253,0.18);
    }
    .tournament-card .card-img-top {
        height: 100%;
        min-height: 220px;
        object-fit: cover;
    }
    .tournament-card .card-title a {
        color: #0d6efd;
        text-decoration: none;
        font-weight: 700;
        font-size: 1.15rem;
        transition: color 0.2s;
    }
    .tournament-card .card-title a:hover {
        color: #084298;
        text-decoration: underline;
    }
    .tournament-card .info-line {
        font-size: 0.9rem;
        color: #495057;
        margin-bottom: 0.4rem;
    }
    .tournament-card .info-line i {
        width: 20px;
        color: #0d6efd;
        text-align: center;
    }
    .tournament-card .badge-prize {
        background: linear-gradient(135deg, #198754, #20c997);
        font-weight: 600;
        padding: 0.45em 0.9em;
        border-radius: 50rem;
        font-size: 0.85rem;
    }
    .badge-status {
        font-size: 0.75rem;
        padding: 0.35em 0.75em;
        border-radius: 50rem;
        font-weight: 600;
    }

    /* Button khas */
    .btn-rank {
        background: linear-gradient(135deg, #ffc107, #ffb300);
        color: #212529;
        border: none;
        font-weight: 600;
        border-radius: 0.5rem;
        transition: all 0.2s;
    }
    .btn-rank:hover {
        background: linear-gradient(135deg, #ffb300, #ff9800);
        color: #212529;
        transform: scale(1.03);
    }
    .btn-participants {
        background: linear-gradient(135deg, #0dcaf0, #0aa2c0);
        color: #fff;
        border: none;
        font-weight: 600;
        border-radius: 0.5rem;
        transition: all 0.2s;
    }
    .btn-participants:hover {
        background: linear-gradient(135deg, #0aa2c0, #087990);
        color: #fff;
        transform: scale(1.03);
    }
    .btn-register {
        background: linear-gradient(135deg, #0d6efd, #0a58ca);
        color: #fff;
        border: none;
        font-weight: 600;
        border-radius: 0.5rem;
        transition: all 0.2s;
    }
    .btn-register:hover {
        background: linear-gradient(135deg, #0a58ca, #084298);
        color: #fff;
        transform: scale(1.03);
    }

    /* Sidebar */
    .sidebar-info .card {
        border: none;
        border-radius: 1rem;
        box-shadow: 0 4px 16px rgba(0,0,0,0.07);
        overflow: hidden;
    }
    .sidebar-info .card-header {
        background: linear-gradient(135deg, #0d6efd, #0a58ca);
        color: #fff;
        font-weight: 700;
        border: none;
        padding: 0.85rem 1rem;
    }
    .sidebar-info .card-header.warning {
        background: linear-gradient(135deg, #ffc107, #ffb300);
        color: #212529;
    }
    .sidebar-info .card-header.success {
        background: linear-gradient(135deg, #198754, #20c997);
    }
    .sidebar-info .card-header.info {
        background: linear-gradient(135deg, #0dcaf0, #0aa2c0);
    }
    .sidebar-info .list-group-item {
        border: none;
        border-bottom: 1px solid #f1f3f5;
        padding: 0.85rem 1rem;
        transition: background 0.2s;
    }
    .sidebar-info .list-group-item:last-child {
        border-bottom: none;
    }
    .sidebar-info .list-group-item:hover {
        background: #f8f9fa;
    }
    .sidebar-info .list-group-item a {
        color: #0d6efd;
        text-decoration: none;
        font-weight: 600;
    }
    .sidebar-info .list-group-item a:hover {
        text-decoration: underline;
    }

    /* Modal peserta */
    .participant-item {
        display: flex;
        align-items: center;
        padding: 0.65rem 0.5rem;
        border-bottom: 1px solid #f1f3f5;
        transition: background 0.2s;
    }
    .participant-item:last-child {
        border-bottom: none;
    }
    .participant-item:hover {
        background: #f8f9fa;
        border-radius: 0.5rem;
    }
    .participant-avatar {
        width: 44px;
        height: 44px;
        border-radius: 50%;
        object-fit: cover;
        margin-right: 0.85rem;
        border: 2px solid #0d6efd;
    }
    .participant-tag {
        display: inline-block;
        background: #0d6efd;
        color: #fff;
        font-size: 0.7rem;
        font-weight: 700;
        padding: 0.2em 0.6em;
        border-radius: 50rem;
        margin-left: 0.4rem;
    }
    .modal-header {
        background: linear-gradient(135deg, #0d6efd, #0a58ca);
        color: #fff;
    }
    .modal-header .btn-close {
        filter: invert(1);
    }

    .empty-state {
        text-align: center;
        padding: 3rem 1rem;
        color: #6c757d;
    }
    .empty-state i {
        font-size: 3rem;
        color: #dee2e6;
        margin-bottom: 1rem;
    }