    .contact-card{
        background:#fff;
        padding:24px;
        border-radius:16px;
        box-shadow:0 3px 12px rgba(0,0,0,.12);
    }

    .filter-switch{
        display:flex;
        justify-content:center;
        gap:10px;
        flex-wrap:wrap;
        margin-bottom:20px;
    }
    .filter-switch .btn{
        border-radius:999px;
        font-weight:800;
        padding:10px 16px;
    }

    .progress-card{
        border:3px dashed rgba(55,178,77,.35);
        border-radius:18px;
        padding:18px;
        background:linear-gradient(135deg,rgba(0,200,0,.12),rgba(164,255,74,.18));
        box-shadow:0 4px 12px rgba(0,0,0,.08);
        margin-bottom:22px;
    }
    .progress-card h2{font-size:1.35rem;font-weight:900;color:#0b3b00;margin-bottom:6px}
    .progress-team-list{
        display:grid;
        grid-template-columns:repeat(auto-fit,minmax(240px,1fr));
        gap:12px;
        margin:0;
        padding:0;
        list-style:none;
    }
    .progress-team-item{
        background:#fff;
        border-radius:14px;
        padding:12px 14px;
        box-shadow:0 2px 8px rgba(0,0,0,.08);
        border:1px solid rgba(0,0,0,.06);
    }
    .progress-team-name{display:block;font-weight:900;color:#1b8c2f;margin-bottom:3px;font-size:1.25rem}
    .progress-team-meta{display:block;color:#444;font-size:.9rem;line-height:1.4}
    .progress-empty,.empty-state{
        background:#fff3cd;
        color:#664d03;
        border:1px solid rgba(102,77,3,.15);
        border-radius:12px;
        padding:16px;
        font-weight:700;
    }
    .progress-empty-standalone{margin-bottom:22px}
    .empty-state{text-align:center}

    .cup-category-nav{
        display:flex;
        flex-wrap:nowrap;
        gap:8px;
        overflow-x:auto;
        padding:4px 2px 10px;
        margin-bottom:14px;
        scrollbar-width:thin;
    }
    .cup-category-nav .nav-link{
        flex:0 0 auto;
        white-space:nowrap;
        border:2px solid #9bcda6;
        border-radius:999px;
        color:#176b2c !important;
        background:#fff;
        font-weight:800;
        padding:9px 14px;
        box-shadow:0 2px 6px rgba(27,140,47,.08);
        transition:background-color .15s ease,border-color .15s ease,color .15s ease,box-shadow .15s ease;
    }
    .cup-category-nav .nav-link:hover,
    .cup-category-nav .nav-link:focus-visible{
        color:#0b4a1d !important;
        background:#eaf7ed;
        border-color:#4fa864;
        box-shadow:0 3px 9px rgba(27,140,47,.16);
    }
    .cup-category-nav .nav-link.active{
        color:#083b17 !important;
        background:linear-gradient(90deg,#00c800,#a4ff4a);
        border-color:#22a63d;
        box-shadow:0 3px 10px rgba(27,140,47,.22);
    }
    .cup-category-nav .nav-link.active::before{
        content:'✓';
        margin-right:.35rem;
        font-weight:900;
    }

    .cup-bracket-shell{
        border:1px solid rgba(0,0,0,.08);
        border-radius:16px;
        background:linear-gradient(180deg,#f8fbf8 0%,#fff 100%);
        overflow:hidden;
    }
    .cup-bracket-toolbar{
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:12px;
        flex-wrap:wrap;
        padding:14px 16px;
        border-bottom:1px solid rgba(0,0,0,.08);
        background:#fff;
    }
    .cup-bracket-toolbar h2{
        font-size:1.2rem;
        font-weight:900;
        color:#0b3b00;
        margin:0;
    }
    .cup-bracket-legend{
        display:flex;
        gap:12px;
        flex-wrap:wrap;
        color:#566056;
        font-size:.82rem;
        font-weight:700;
    }
    .cup-legend-dot{
        display:inline-block;
        width:10px;
        height:10px;
        border-radius:50%;
        margin-right:5px;
    }
    .cup-legend-dot.avanti{background:#39b54a}
    .cup-legend-dot.winner{background:#f2c94c}

    .cup-scroll-hint{
        display:none;
        padding:9px 14px;
        color:#566056;
        background:#f7faf7;
        border-bottom:1px solid rgba(0,0,0,.06);
        font-size:.82rem;
        font-weight:700;
    }
    .cup-bracket-scroll{
        overflow:auto;
        overscroll-behavior-x:contain;
        -webkit-overflow-scrolling:touch;
    }
    .cup-bracket-board{
        --round-count:5;
        --bracket-min-height:760px;
        position:relative;
        display:grid;
        grid-template-columns:repeat(var(--round-count),minmax(255px,1fr));
        gap:90px;
        min-width:calc(var(--round-count) * 285px + (var(--round-count) - 1) * 60px);
        padding:18px 28px 30px;
        isolation:isolate;
    }
    .cup-bracket-lines{
        position:absolute;
        inset:0;
        z-index:1;
        width:100%;
        height:100%;
        pointer-events:none;
        overflow:visible;
    }
    .cup-bracket-line{
        fill:none;
        stroke:#b8c2b9;
        stroke-width:2;
        vector-effect:non-scaling-stroke;
    }
    .cup-bracket-line.is-avanti{
        stroke:#39b54a;
        stroke-width:3;
    }
    .cup-bracket-end-dot{
        fill:#b8c2b9;
    }
    .cup-bracket-end-dot.is-avanti{
        fill:#39b54a;
    }
    .cup-round{
        position:relative;
        z-index:2;
        min-width:0;
    }
    .cup-round-heading{
        position:sticky;
        top:0;
        z-index:4;
        display:flex;
        align-items:center;
        justify-content:space-between;
        gap:8px;
        min-height:44px;
        margin-bottom:12px;
        padding:9px 12px;
        border-radius:12px;
        background:linear-gradient(90deg,#1f7a1f,#4caf50);
        color:#fff;
        box-shadow:0 3px 10px rgba(0,0,0,.12);
    }
    .cup-round-heading strong{font-size:.95rem}
    .cup-round-heading .badge{background:rgba(255,255,255,.2)!important;color:#fff!important}
    .cup-round-matches{
        min-height:var(--bracket-min-height);
        display:flex;
        flex-direction:column;
    }
    .cup-match-slot{
        flex:1 1 0;
        min-height:156px;
        display:flex;
        align-items:center;
        width:100%;
    }

    .cup-match{
        position:relative;
        width:100%;
        border:1px solid rgba(0,0,0,.11);
        border-radius:14px;
        background:#fff;
        box-shadow:0 4px 14px rgba(0,0,0,.09);
        overflow:hidden;
    }
    .cup-match.is-empty-slot{
        min-height:118px;
        border:1px dashed #cbd5cc;
        background:rgba(247,250,247,.72);
        box-shadow:none;
    }
    .cup-match.is-avanti-match{
        border:2px solid rgba(57,181,74,.72);
        box-shadow:0 5px 18px rgba(57,181,74,.18);
    }
    .cup-match-meta{
        display:flex;
        justify-content:space-between;
        gap:8px;
        padding:7px 10px;
        background:#f4f6f4;
        color:#5f685f;
        font-size:.72rem;
        font-weight:700;
        border-bottom:1px solid rgba(0,0,0,.06);
    }
    .cup-team-row{
        display:grid;
        grid-template-columns:minmax(0,1fr) 42px;
        align-items:center;
        min-height:44px;
        padding:8px 10px 8px 12px;
        border-bottom:1px solid rgba(0,0,0,.06);
    }
    .cup-team-row:last-of-type{border-bottom:0}
    .cup-team-row.is-winner{background:rgba(242,201,76,.18)}
    .cup-team-row.is-avanti{background:rgba(57,181,74,.14)}
    .cup-team-row.is-winner.is-avanti{background:linear-gradient(90deg,rgba(57,181,74,.18),rgba(242,201,76,.22))}
    .cup-team-name{
        min-width:0;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
        font-size:.9rem;
        font-weight:750;
        color:#202620;
    }
    .cup-team-name img{
        width:20px;
        height:20px;
        object-fit:contain;
        margin-right:5px;
        vertical-align:-5px;
    }
    .cup-team-score{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        min-width:30px;
        height:28px;
        padding:0 5px;
        border-radius:8px;
        background:#edf0ed;
        color:#1e251e;
        font-size:.9rem;
        font-weight:900;
    }
    .cup-team-row.is-winner .cup-team-score{background:#f2c94c;color:#3d3200}
    .cup-team-badge{
        display:inline-flex;
        align-items:center;
        justify-content:center;
        margin-left:6px;
        padding:1px 6px;
        border-radius:999px;
        background:rgba(0,0,0,.05);
        color:#4b564b;
        font-size:.68rem;
        font-weight:900;
        vertical-align:middle;
    }
    .cup-team-row.is-winner .cup-team-badge{
        background:#f2c94c;
        color:#3d3200;
    }
    .cup-match-details{
        border-top:1px solid rgba(0,0,0,.06);
        background:#fafbfa;
    }
    .cup-match-details summary{
        cursor:pointer;
        list-style:none;
        padding:7px 10px;
        color:#1b8c2f;
        font-size:.75rem;
        font-weight:800;
    }
    .cup-match-details summary::-webkit-details-marker{display:none}
    .cup-match-details summary::after{content:'+';float:right}
    .cup-match-details[open] summary::after{content:'−'}
    .cup-match-details-body{
        padding:0 10px 9px;
        color:#596159;
        font-size:.75rem;
        line-height:1.45;
    }

    @media (max-width:767.98px){
        .contact-card{padding:14px}
        .cup-scroll-hint{display:block}
        .cup-bracket-board{
            grid-template-columns:repeat(var(--round-count),245px);
            gap:72px;
            min-width:calc(var(--round-count) * 245px + (var(--round-count) - 1) * 72px + 40px);
            padding-left:20px;
            padding-right:20px;
        }
        .cup-bracket-toolbar{align-items:flex-start}
    }
