*{
    box-sizing:border-box;
}

body.scoreboard-mobile-page{
    margin:0;
    font-family:"Segoe UI",Arial,sans-serif;
    color:#1f2c44;
    background:#f2f4f9;
}

.scoreboard{
    min-height:100vh;
    padding:14px 14px 92px;
}

.scoreboard__grid--mobile{
    display:grid;
    grid-template-columns:1fr;
    gap:16px;
    padding:0;
}

.scoreboard__card--mobile{
    min-height:0;
    padding:16px 16px 18px;
    border-radius:24px;
    background:#fff;
    box-shadow:0 16px 36px rgba(136,149,171,.12);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    border:1px solid rgba(230,235,243,.92);
}

.scoreboard__card--playing{
    opacity:1;
}

.scoreboard__card--warmup{
    opacity:.9;
    filter:saturate(.92);
}

.scoreboard__card--queued,
.scoreboard__card--finished{
    opacity:.76;
    filter:saturate(.84);
}

.scoreboard__header--mobile{
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto auto;
    gap:12px;
    align-items:center;
    padding-bottom:12px;
    border-bottom:1px solid #e6ebf3;
}

.scoreboard__court{
    display:flex;
    align-items:center;
    gap:12px;
    min-width:0;
}

.scoreboard__qr{
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:4px;
    flex:0 0 auto;
}

.scoreboard__qr--button{
    min-width:72px;
}

.scoreboard__camera-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:76px;
    min-height:76px;
    padding:10px 12px;
    border-radius:16px;
    background:#fff;
    box-shadow:0 6px 16px rgba(136,149,171,.14);
    color:#6b7fa6;
    text-decoration:none;
    font-size:14px;
    font-weight:800;
    text-align:center;
}

.scoreboard__camera-btn--disabled{
    background:#eff2f7;
    color:#b9bec7;
}

.scoreboard__qr-label{
    font-size:10px;
    font-weight:700;
    color:#b2b9c4;
}

.scoreboard__court-name{
    font-size:20px;
    font-weight:500;
    color:#9da4b0;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}

.scoreboard__badge{
    padding:8px 14px;
    border-radius:999px;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
    white-space:nowrap;
    background:#d3d8e0;
    color:#fff;
}

.scoreboard__badge--live{
    background:#cddcf8;
    color:#4f78d0;
}

.scoreboard__badge--finished{
    background:#cfd4db;
    color:#fff;
}

.scoreboard__badge--queue{
    background:#dbe3f1;
    color:#6b7fa6;
}

.scoreboard__badge--warmup{
    background:#f5deae;
    color:#9d6a00;
}

.scoreboard__set-label{
    justify-self:end;
    font-size:15px;
    font-weight:500;
    color:#b0b6c0;
}

.scoreboard__player{
    display:grid;
    grid-template-columns:minmax(0,1fr) auto;
    gap:12px;
    align-items:center;
    padding:12px 0;
    border-bottom:1px solid #e6ebf3;
}

.scoreboard__player-name{
    display:grid;
    gap:6px;
    min-width:0;
    min-height:56px;
    align-content:center;
}

.scoreboard__player-name--single{
    display:flex;
    align-items:center;
}

.scoreboard__player-name--winner .scoreboard__player-line span{
    font-weight:800;
    color:#4b5563;
}

.scoreboard__player-line{
    display:grid;
    grid-template-columns:12px minmax(0, 1fr);
    align-items:start;
    gap:8px;
    min-width:0;
}

.scoreboard__player-line span{
    display:block;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:20px;
    font-weight:600;
    line-height:1.12;
    color:#777f8d;
}

.scoreboard__serve-ball{
    width:12px;
    height:12px;
    margin-top:7px;
    visibility:hidden;
}

.scoreboard__serve-ball--active{
    visibility:visible;
}

.scoreboard__score{
    display:flex;
    align-items:center;
    gap:8px;
}

.scoreboard__game-points{
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    font-size:18px;
    font-weight:800;
    background:#d8dde6;
    color:#6d7581;
}

.scoreboard__game-points--hidden{
    display:none;
}

.scoreboard__sets{
    display:flex;
    gap:6px;
}

.scoreboard__set{
    width:40px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    font-size:24px;
    font-weight:800;
    background:#d8dde6;
    color:#6d7581;
}

.scoreboard__set--win{
    background:#cfd4db;
    color:#666f7d;
}

.scoreboard__set--empty{
    background:#eff2f7;
    color:#b9bec7;
}

.scoreboard__footer{
    margin-top:auto;
    display:grid;
    grid-template-columns:minmax(0, 1fr) auto;
    gap:10px;
    align-items:end;
    padding:8px 4px 0;
}

.scoreboard__footer-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    min-width:0;
}

.scoreboard__category,
.scoreboard__stage,
.scoreboard__umpire,
.scoreboard__time{
    display:inline-flex;
    align-items:center;
    min-height:32px;
    padding:6px 10px;
    border-radius:12px;
    background:#f4f6fb;
    color:#9ca3af;
    font-size:14px;
    font-weight:600;
}

.ticker--mobile{
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    height:auto;
    padding:10px 14px calc(10px + env(safe-area-inset-bottom));
    border-radius:0;
    background:#101828;
    box-shadow:0 -10px 24px rgba(16,24,40,.22);
}

.ticker__text--mobile{
    white-space:nowrap;
    font-size:18px;
    font-weight:600;
    color:#f8fafc;
    display:inline-block;
    transform:translateX(100vw);
    animation:tickerMoveMobile linear infinite;
}

@keyframes tickerMoveMobile{
    from{ transform:translateX(100vw); }
    to{ transform:translateX(-100%); }
}

@media (max-width: 420px){
    .scoreboard__header--mobile{
        grid-template-columns:minmax(0, 1fr) auto;
    }

    .scoreboard__set-label{
        display:none;
    }

    .scoreboard__court-name{
        font-size:18px;
    }

    .scoreboard__player-line span{
        font-size:18px;
    }
}
