:root {
    --navy:       #0d1b2e;
    --navy-mid:   #14253d;
    --navy-light: #1c3354;
    --navy-hover: #213d64;
    --gold:       #f5a623;
    --gold-dark:  #c8860a;
    --gold-light: #ffd06b;
    --white:      #ffffff;
    --gray:       #8fa3b8;
    --gray-light: #c5d3df;
    --green:      #27ae60;
    --green-dim:  rgba(39,174,96,0.15);
    --red:        #e74c3c;
    --red-dim:    rgba(231,76,60,0.15);
    --border:     rgba(245,166,35,0.18);
    --border-dim: rgba(255,255,255,0.07);
}

*  { box-sizing:border-box; margin:0; padding:0; }
body { background:var(--navy); color:var(--white); font-family:'Segoe UI',Arial,sans-serif; min-height:100vh; font-size:15px; }
a  { color:inherit; }

/* ── HEADER ──────────────────────────────────────────── */
.site-header {
    background:linear-gradient(135deg,var(--navy-mid) 0%,var(--navy) 100%);
    border-bottom:2px solid var(--gold);
    padding:0 24px;
    position:sticky; top:0; z-index:100;
}
.header-inner {
    max-width:1300px; margin:0 auto;
    display:flex; align-items:center; justify-content:space-between;
    height:64px;
}
.logo { font-size:1.4rem; font-weight:900; text-transform:uppercase; letter-spacing:3px; }
.logo span { color:var(--gold); }
.main-nav a {
    color:var(--gray-light); text-decoration:none;
    margin-left:20px; font-size:0.82rem;
    text-transform:uppercase; letter-spacing:1px; transition:color .2s;
}
.main-nav a:hover { color:var(--gold); }

/* ── ADMIN NAV ────────────────────────────────────────── */
.admin-nav {
    background:var(--navy-mid);
    border-bottom:1px solid var(--border-dim);
}
.admin-nav-inner {
    max-width:1300px; margin:0 auto;
    display:flex; height:46px; align-items:center;
    gap:2px; padding:0 24px; overflow-x:auto;
}
.admin-nav a {
    color:var(--gray); text-decoration:none;
    padding:5px 14px; border-radius:5px;
    font-size:0.82rem; font-weight:600;
    white-space:nowrap; transition:all .2s;
}
.admin-nav a:hover  { background:var(--navy-light); color:var(--gold-light); }
.admin-nav a.active { background:var(--gold); color:var(--navy); font-weight:700; }

/* ── CONTAINER ────────────────────────────────────────── */
.container { max-width:1300px; margin:0 auto; padding:20px 24px; }

/* ── PAGE TITLE ───────────────────────────────────────── */
.page-title {
    font-size:1.7rem; font-weight:900;
    text-transform:uppercase; letter-spacing:2px; margin-bottom:4px;
}
.page-title span { color:var(--gold); }
.page-subtitle { color:var(--gray); font-size:0.85rem; margin-bottom:22px; }

/* ── CARD ─────────────────────────────────────────────── */
.card {
    background:var(--navy-mid);
    border:1px solid var(--border);
    border-radius:10px; padding:20px;
    margin-bottom:16px;
}
.card-title {
    font-size:0.75rem; font-weight:800;
    text-transform:uppercase; letter-spacing:2px;
    color:var(--gold); margin-bottom:16px;
}

/* ── BADGES ───────────────────────────────────────────── */
.badge-pill {
    display:inline-flex; align-items:center; gap:7px;
    background:rgba(245,166,35,0.12); border:1px solid var(--gold);
    border-radius:30px; padding:5px 16px;
    font-size:0.72rem; font-weight:700;
    text-transform:uppercase; letter-spacing:2px; color:var(--gold);
}
.round-badge {
    background:var(--gold); color:var(--navy);
    font-weight:800; font-size:0.72rem;
    text-transform:uppercase; letter-spacing:1px;
    padding:4px 12px; border-radius:4px;
}
.round-status-badge {
    font-size:0.76rem; font-weight:700;
    padding:3px 12px; border-radius:10px;
}
.round-status-badge.status-active   { background:var(--green-dim); color:var(--green); }
.round-status-badge.status-completed{ background:rgba(245,166,35,0.12); color:var(--gold); }
.round-status-badge.status-pending  { background:rgba(255,255,255,0.06); color:var(--gray); }

.pts-badge {
    display:inline-block;
    background:rgba(245,166,35,0.18); color:var(--gold);
    padding:3px 10px; border-radius:10px;
    font-weight:700; font-size:0.82rem;
}

/* ── RANK BADGE ───────────────────────────────────────── */
.rank-badge {
    display:inline-flex; align-items:center; justify-content:center;
    width:26px; height:26px; border-radius:50%;
    font-size:0.78rem; font-weight:700;
    background:var(--navy-light); color:var(--gray);
    flex-shrink:0;
}
.rank-badge.r1 { background:var(--gold); color:var(--navy); }
.rank-badge.r2 { background:#9e9e9e;    color:var(--navy); }
.rank-badge.r3 { background:#8d6e3f;    color:var(--white); }

/* ── TABS (public page) ───────────────────────────────── */
.tabs {
    display:flex; gap:2px; flex-wrap:nowrap; overflow-x:auto;
    border-bottom:2px solid var(--border);
    margin-bottom:22px;
    scrollbar-width:thin; scrollbar-color:var(--gold) transparent;
}
.tab-btn {
    background:none; border:none; color:var(--gray);
    padding:10px 18px; cursor:pointer;
    font-size:0.8rem; font-weight:600;
    text-transform:uppercase; letter-spacing:1px;
    border-bottom:2px solid transparent; margin-bottom:-2px;
    white-space:nowrap; transition:all .2s; flex-shrink:0;
}
.tab-btn:hover  { color:var(--gold-light); }
.tab-btn.active { color:var(--gold); border-bottom-color:var(--gold); }
.tab-pane       { display:none; }
.tab-pane.active{ display:block; }

/* ── ROUND SELECTOR (scores page) ────────────────────── */
.round-selector {
    display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px;
}
.round-tab {
    display:flex; flex-direction:column; align-items:center;
    padding:8px 14px; border-radius:8px;
    border:1px solid var(--border-dim);
    text-decoration:none; color:var(--gray);
    font-size:0.78rem; font-weight:600;
    transition:all .2s; min-width:80px;
}
.round-tab:hover    { background:var(--navy-light); color:var(--white); }
.round-tab.active   { background:var(--gold); color:var(--navy); border-color:var(--gold); }
.round-tab.done     { border-color:var(--green-dim); }
.round-tab.done .rt-name { color:var(--green); }
.round-tab.live .rt-name { color:var(--gold-light); }
.rt-name { font-weight:700; }
.rt-prog { font-size:0.7rem; color:var(--gray); margin-top:2px; }
.round-tab.active .rt-prog { color:rgba(13,27,46,0.7); }

/* ── STANDINGS TABLE ──────────────────────────────────── */
.standings-table {
    width:100%; border-collapse:collapse; font-size:0.88rem;
}
.standings-table th {
    text-align:left; padding:9px 12px;
    font-size:0.72rem; font-weight:800;
    text-transform:uppercase; letter-spacing:1px; color:var(--gold);
    border-bottom:1px solid var(--border);
}
.standings-table th.right, .standings-table td.right { text-align:right; }
.standings-table td {
    padding:9px 12px;
    border-bottom:1px solid var(--border-dim);
    vertical-align:middle;
}
.standings-table tr:hover td { background:rgba(245,166,35,0.04); }
.standings-table tr.top1 td  { color:var(--gold); font-weight:700; }
.standings-table tr.top2 td  { color:#c0c0c0; }
.standings-table tr.top3 td  { color:#cd7f32; }

/* ── PUBLIC MATCH ROW ─────────────────────────────────── */
.match-row {
    display:grid;
    grid-template-columns:60px 1fr 110px 1fr;
    align-items:center; gap:10px;
    padding:9px 14px;
    background:var(--navy-light); border-radius:8px;
    margin-bottom:5px;
    border-left:3px solid transparent; transition:border-color .2s;
}
.match-row.completed { border-left-color:var(--green); }
.match-time  { font-size:0.78rem; font-weight:700; color:var(--gold); }
.team-name   { font-weight:600; font-size:0.88rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.team-name.winner { color:var(--gold); }
.team-name.right  { text-align:right; }
.score-box {
    display:flex; align-items:center; justify-content:center;
    gap:6px; font-size:1.05rem; font-weight:800;
}
.score-sep     { color:var(--gray); font-weight:400; }
.score-pending { color:var(--gray); font-size:0.8rem; }

/* ── SCORE FORM (admin) ───────────────────────────────── */
.court-block  { margin-bottom:20px; }
.court-heading {
    font-size:0.72rem; font-weight:800;
    text-transform:uppercase; letter-spacing:2px;
    color:var(--gray); margin-bottom:8px; padding-bottom:6px;
    border-bottom:1px solid var(--border-dim);
}

.score-form {
    display:grid;
    grid-template-columns: 54px 1fr 170px 1fr 80px 90px;
    align-items:center; gap:10px;
    padding:10px 14px;
    background:var(--navy-light); border-radius:8px;
    margin-bottom:6px; border-left:3px solid var(--border-dim);
    transition:border-color .2s;
}
.score-form.is-done { border-left-color:var(--green); background:rgba(39,174,96,0.06); }
.sf-time  { font-size:0.78rem; font-weight:700; color:var(--gold); }
.sf-team  { font-weight:600; font-size:0.88rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sf-t1    { text-align:right; }
.sf-t2    { text-align:left; }
.sf-team.winner { color:var(--gold); }

.sf-inputs { display:flex; align-items:center; gap:8px; justify-content:center; }
.sf-score {
    width:64px; text-align:center;
    background:var(--navy-mid); border:1px solid var(--border);
    border-radius:6px; color:var(--white);
    padding:8px 6px; font-size:1.05rem; font-weight:700;
    outline:none; transition:border-color .2s;
}
.sf-score:focus { border-color:var(--gold); }
.sf-sep   { color:var(--gray); font-weight:700; font-size:1rem; }

.sf-malus { display:flex; flex-direction:column; align-items:center; gap:3px; }
.malus-val {
    font-size:0.78rem; font-weight:700;
    padding:2px 7px; border-radius:8px;
}
.malus-val.pos { background:rgba(39,174,96,0.18); color:var(--green); }
.malus-val.neg { background:var(--red-dim); color:var(--red); }
.malus-label { font-size:0.68rem; color:var(--gray); text-align:center; line-height:1.3; }

.sf-actions { display:flex; gap:5px; align-items:center; justify-content:flex-end; }
.btn-reset {
    background:none; border:1px solid rgba(231,76,60,0.4);
    color:var(--red); border-radius:5px;
    padding:5px 8px; cursor:pointer; font-size:0.8rem;
    transition:all .2s;
}
.btn-reset:hover { background:var(--red-dim); }

/* ── ROUND CARD (rounds page) ─────────────────────────── */
.round-card { transition:border-color .3s; }
.round-card.status-active   { border-color:var(--green); }
.round-card.status-completed{ border-color:rgba(245,166,35,0.4); opacity:0.85; }
.rc-header {
    display:flex; align-items:center;
    justify-content:space-between; flex-wrap:wrap; gap:12px;
    margin-bottom:4px;
}
.rc-left  { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.rc-actions { display:flex; gap:8px; flex-wrap:wrap; align-items:center; }
.rc-progress { display:flex; align-items:center; gap:8px; }
.rc-pbar {
    width:80px; height:5px;
    background:var(--navy-light); border-radius:3px; overflow:hidden;
}
.rc-pfill  { height:100%; background:var(--gold); border-radius:3px; transition:width .3s; }
.rc-ptext  { font-size:0.72rem; color:var(--gray); font-weight:600; }
.btn-disabled {
    display:inline-flex; align-items:center; gap:6px;
    padding:6px 14px; border-radius:6px; font-size:0.78rem; font-weight:700;
    background:rgba(255,255,255,0.04); color:var(--gray);
    border:1px solid var(--border-dim); cursor:not-allowed;
    text-transform:uppercase; letter-spacing:1px;
}

.matches-grid {
    display:grid; grid-template-columns:1fr 1fr; gap:16px;
    margin-top:14px; padding-top:14px;
    border-top:1px solid var(--border-dim);
}
@media(max-width:700px){ .matches-grid{ grid-template-columns:1fr; } }

.match-line {
    display:flex; align-items:center; gap:8px;
    padding:7px 10px; border-radius:6px; font-size:0.83rem;
    border-left:3px solid transparent;
}
.match-line.ml-done    { background:rgba(39,174,96,0.08); border-left-color:var(--green); }
.match-line.ml-pending { background:rgba(255,255,255,0.03); border-left-color:var(--border-dim); }
.ml-time   { font-size:0.75rem; font-weight:700; color:var(--gold); min-width:46px; }
.ml-team   { flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-weight:600; }
.ml-r      { text-align:right; }
.ml-winner { color:var(--gold); }
.ml-score  { min-width:60px; text-align:center; font-size:0.9rem; }
.ml-dash   { color:var(--gray); }
.ml-dot {
    width:8px; height:8px; border-radius:50%; flex-shrink:0;
    background:var(--border-dim);
}
.ml-dot.done { background:var(--green); }

/* ── ROUND HEADER (used in multiple places) ───────────── */
.round-header {
    display:flex; align-items:center; gap:10px; margin-bottom:16px;
}

/* ── PROGRESS BAR ─────────────────────────────────────── */
.round-summary {
    display:flex; align-items:center; gap:12px;
    margin-top:16px; padding-top:12px;
    border-top:1px solid var(--border-dim);
    font-size:0.82rem; color:var(--gray);
}
.progress-bar {
    flex:1; height:6px; background:var(--navy);
    border-radius:3px; overflow:hidden;
}
.progress-fill { height:100%; background:var(--gold); border-radius:3px; transition:width .4s; }
.text-green { color:var(--green); font-weight:700; }

/* ── STATS GRID ───────────────────────────────────────── */
.stats-grid {
    display:grid; grid-template-columns:repeat(auto-fill,minmax(160px,1fr)); gap:12px;
}
.stat-card {
    background:var(--navy-light); border:1px solid var(--border);
    border-radius:10px; padding:16px; text-align:center;
}
.stat-value { font-size:1.7rem; font-weight:900; color:var(--gold); }
.stat-label { font-size:0.7rem; color:var(--gray); text-transform:uppercase; letter-spacing:1px; margin-top:4px; }

/* ── PLAYOFF BRACKET ──────────────────────────────────── */
.bracket { display:flex; gap:24px; overflow-x:auto; padding-bottom:8px; }
.bracket-col { min-width:210px; }
.bracket-label {
    text-align:center; font-size:0.72rem; font-weight:800;
    text-transform:uppercase; letter-spacing:2px;
    color:var(--gold); margin-bottom:10px;
}
.bracket-match {
    background:var(--navy-light); border:1px solid var(--border);
    border-radius:8px; overflow:hidden;
}
.bracket-team {
    padding:10px 14px; display:flex;
    justify-content:space-between; font-size:0.88rem; font-weight:600;
    border-bottom:1px solid var(--border-dim);
}
.bracket-team:last-child { border-bottom:none; }
.bracket-team.winner { color:var(--gold); background:rgba(245,166,35,0.08); }
.bracket-score { font-weight:800; color:var(--gold); }

/* ── EMPTY STATE ──────────────────────────────────────── */
.empty-state {
    color:var(--gray); text-align:center;
    padding:36px 20px; font-size:0.9rem;
}

/* ── GRID 2 ───────────────────────────────────────────── */
.grid-2 { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
@media(max-width:800px){ .grid-2{ grid-template-columns:1fr; } }

/* ── COURT SECTION (public page) ─────────────────────── */
.court-section  { }
.court-label {
    font-size:0.72rem; font-weight:800;
    text-transform:uppercase; letter-spacing:2px; color:var(--gray);
    margin-bottom:7px;
}

/* ── LIVE DOT ─────────────────────────────────────────── */
.live-dot {
    display:inline-block; width:7px; height:7px; border-radius:50%;
    background:var(--green); animation:pulse 1.5s infinite;
}
@keyframes pulse { 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(1.3)} }

/* ── FORMS ────────────────────────────────────────────── */
.form-group { margin-bottom:16px; }
label {
    display:block; font-size:0.75rem; font-weight:800;
    text-transform:uppercase; letter-spacing:1px;
    color:var(--gold); margin-bottom:6px;
}
input[type=text], input[type=number], input[type=password], select, textarea {
    width:100%; background:var(--navy-light);
    border:1px solid var(--border); border-radius:6px;
    color:var(--white); padding:9px 13px; font-size:0.9rem;
    outline:none; transition:border-color .2s;
    font-family:inherit;
}
input:focus, select:focus { border-color:var(--gold); }
select option { background:var(--navy); }

/* ── BUTTONS ──────────────────────────────────────────── */
.btn {
    display:inline-flex; align-items:center; gap:6px;
    padding:9px 20px; border:none; border-radius:6px;
    font-size:0.8rem; font-weight:700; text-transform:uppercase; letter-spacing:1px;
    cursor:pointer; text-decoration:none; transition:all .2s; font-family:inherit;
}
.btn-gold    { background:var(--gold);  color:var(--navy); }
.btn-gold:hover { background:var(--gold-light); }
.btn-outline { background:transparent; border:1px solid var(--gold); color:var(--gold); }
.btn-outline:hover { background:rgba(245,166,35,0.1); }
.btn-danger  { background:var(--red);   color:#fff; }
.btn-danger:hover { filter:brightness(1.1); }
.btn-green   { background:var(--green); color:#fff; }
.btn-green:hover { filter:brightness(1.1); }
.btn-sm { padding:6px 13px; font-size:0.74rem; }

/* ── ALERTS ───────────────────────────────────────────── */
.alert {
    padding:11px 16px; border-radius:8px;
    margin-bottom:16px; font-size:0.88rem; font-weight:600;
}
.alert-success { background:var(--green-dim); border:1px solid var(--green); color:var(--green); }
.alert-error   { background:var(--red-dim);   border:1px solid var(--red);   color:var(--red); }

/* ── TV MODE ──────────────────────────────────────────── */
body.tv-mode { font-size:1rem; overflow:hidden; }
.tv-header {
    background:linear-gradient(90deg,var(--navy-mid),var(--navy-light),var(--navy-mid));
    border-bottom:3px solid var(--gold);
    padding:12px 40px;
    display:flex; align-items:center; justify-content:space-between;
}
.tv-title { font-size:1.7rem; font-weight:900; text-transform:uppercase; letter-spacing:3px; }
.tv-title span { color:var(--gold); }
.tv-clock { font-size:1.5rem; font-weight:700; color:var(--gold); font-variant-numeric:tabular-nums; }
.tv-body  { display:grid; grid-template-columns:1fr 1fr; height:calc(100vh - 76px - 36px); }
.tv-panel { padding:18px 24px; overflow:hidden; }
.tv-panel + .tv-panel { border-left:2px solid var(--border); }
.tv-section-title {
    font-size:0.78rem; font-weight:800; text-transform:uppercase; letter-spacing:3px;
    color:var(--gold); margin-bottom:12px; padding-bottom:7px;
    border-bottom:1px solid var(--border);
}
.tv-stand-row {
    display:grid; grid-template-columns:32px 1fr 55px 55px 60px;
    gap:6px; padding:7px 10px; border-radius:5px; font-size:0.92rem;
    margin-bottom:2px; align-items:center;
}
.tv-stand-row:nth-child(odd) { background:rgba(255,255,255,0.02); }
.tv-stand-row.tv-top { background:rgba(245,166,35,0.09); }
.tv-match-row {
    display:grid; grid-template-columns:1fr 80px 1fr;
    align-items:center; gap:8px; padding:7px 10px;
    border-radius:5px; margin-bottom:3px;
    background:rgba(255,255,255,0.03);
}
.tv-match-row.live-match { background:rgba(39,174,96,0.09); border-left:3px solid var(--green); }
.tv-score { text-align:center; font-size:1.1rem; font-weight:800; color:var(--gold); }
.tv-team-r { text-align:right; font-weight:600; }
.ticker {
    background:var(--gold); color:var(--navy);
    padding:7px 0; overflow:hidden; white-space:nowrap;
    font-size:0.82rem; font-weight:700; height:36px;
}
.ticker-inner { display:inline-block; animation:ticker 45s linear infinite; }
@keyframes ticker { 0%{transform:translateX(100vw)} 100%{transform:translateX(-100%)} }

/* ── SCROLLBAR ────────────────────────────────────────── */
::-webkit-scrollbar { width:5px; height:5px; }
::-webkit-scrollbar-track { background:transparent; }
::-webkit-scrollbar-thumb { background:var(--border); border-radius:3px; }

/* ── RESPONSIVE ───────────────────────────────────────── */
@media(max-width:640px) {
    .score-form {
        grid-template-columns: 48px 1fr 130px 1fr;
        grid-template-rows: auto auto;
    }
    .sf-malus, .sf-actions { grid-column: span 2; }
    .page-title { font-size:1.2rem; }
    .standings-table { font-size:0.78rem; }
    .standings-table th, .standings-table td { padding:7px 6px; }
}

/* ── SCORES PAGE ──────────────────────────────────────── */
.score-form {
    display:grid;
    grid-template-columns: 46px 54px 1fr 180px 1fr 90px 80px;
    align-items:center; gap:10px;
    padding:10px 14px;
    background:var(--navy-light); border-radius:8px;
    margin-bottom:5px; border-left:3px solid var(--border-dim);
    transition:all .2s;
}
.score-form.is-done    { border-left-color:var(--green); background:rgba(39,174,96,0.05); }
.score-form.is-current { border-left-color:var(--gold); background:rgba(245,166,35,0.05); }
.score-form.is-locked  { border-left-color:transparent; opacity:0.4; }
.sf-num  { font-size:0.7rem; font-weight:800; color:var(--gray); text-transform:uppercase; }
.sf-time { font-size:0.78rem; font-weight:700; color:var(--gold); }
.sf-team { font-weight:600; font-size:0.88rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.sf-t1   { text-align:right; }
.sf-inputs { display:flex; align-items:center; gap:8px; justify-content:center; }
.sf-score {
    width:62px; text-align:center;
    background:var(--navy-mid); border:1px solid var(--border);
    border-radius:6px; color:var(--white);
    padding:8px 4px; font-size:1.05rem; font-weight:700; outline:none;
    transition:border-color .2s;
}
.sf-score:focus { border-color:var(--gold); }
.sf-sep  { color:var(--gray); font-weight:700; font-size:1rem; }
.sf-done-score { font-size:1.1rem; font-weight:800; }
.sf-done-score.winner { color:var(--gold); }
.sf-lock { font-size:1.2rem; color:var(--gray); }
.sf-malus { display:flex; flex-direction:column; align-items:center; gap:3px; }
.malus-val { font-size:0.76rem; font-weight:700; padding:2px 7px; border-radius:8px; }
.malus-val.pos { background:rgba(39,174,96,0.18); color:var(--green); }
.malus-val.neg { background:rgba(231,76,60,0.15); color:var(--red); }
.sf-actions { display:flex; gap:5px; justify-content:flex-end; }
.sf-team.winner { color:var(--gold); }

.round-validate-bar {
    display:flex; align-items:center; gap:16px;
    padding:14px 0 4px; border-top:1px solid var(--border-dim); margin-top:8px;
}
.rv-progress { display:flex; align-items:center; gap:10px; flex:1; }
.rv-bar { flex:1; height:6px; background:var(--navy); border-radius:3px; overflow:hidden; }
.rv-fill { height:100%; background:var(--gold); border-radius:3px; transition:width .4s; }
.rv-text { font-size:0.8rem; color:var(--gray); white-space:nowrap; }
.btn-disabled-val {
    background:rgba(255,255,255,0.06); color:var(--gray);
    border:1px solid var(--border-dim); cursor:not-allowed;
    padding:9px 20px; border-radius:6px; font-size:0.8rem; font-weight:700;
    text-transform:uppercase; letter-spacing:1px;
}

/* ── ROUNDS PAGE ──────────────────────────────────────── */
.day-separator {
    font-size:0.78rem; font-weight:800; text-transform:uppercase;
    letter-spacing:3px; color:var(--gold);
    padding:10px 0 8px; margin-bottom:6px;
    border:none;
    border-bottom:2px solid rgba(255,255,255,0.15);
}

/* ── CHAMPIONS MATCH ──────────────────────────────────── */
.champ-preview {
    display:grid; grid-template-columns:1fr 1fr; gap:20px;
}
.champ-match-display {
    display:grid; grid-template-columns:1fr 200px 1fr; gap:20px; align-items:start;
}
.champ-side-title {
    font-size:0.78rem; font-weight:800; text-transform:uppercase; letter-spacing:2px;
    padding:10px 14px; border-radius:6px; text-align:center; margin-bottom:10px;
}
.champ-side-title.magic  { background:rgba(245,166,35,0.15); color:var(--gold); }
.champ-side-title.basket { background:rgba(100,149,237,0.15); color:cornflowerblue; }
.champ-player-row {
    display:flex; align-items:center; gap:10px;
    padding:7px 12px; border-radius:6px; font-size:0.88rem;
    border-bottom:1px solid var(--border-dim);
}
.champ-rank { font-weight:800; font-size:0.75rem; color:var(--gray); min-width:24px; }
.champ-vs-col { text-align:center; padding-top:20px; }
.champ-final-score {
    font-size:2rem; font-weight:900; display:flex;
    align-items:center; justify-content:center;
}
.champ-final-score .winner { color:var(--gold); }

/* ── CONCOURS ADMIN ───────────────────────────────────── */
.current-player-row td { background:rgba(245,166,35,0.08); }

@media(max-width:900px) {
    .score-form { grid-template-columns:40px 48px 1fr 140px 1fr 70px; }
    .sf-malus, .sf-actions { grid-column:span 2; }
    .champ-match-display { grid-template-columns:1fr; }
    .champ-preview { grid-template-columns:1fr; }
}

/* ═══════════════════════════════════════════════════════════
   RESPONSIVE — Mobile · Tablet · Desktop
   Mobile   : < 480px
   Tablet   : 480px – 768px
   Desktop  : > 768px
   ═══════════════════════════════════════════════════════════ */

/* ── UTILITAIRES ──────────────────────────────────────────── */
@media(max-width:768px) {
    .hide-mobile { display:none !important; }
}
@media(min-width:769px) {
    .hide-desktop { display:none !important; }
}

/* ── HEADER ───────────────────────────────────────────────── */
@media(max-width:600px) {
    .header-inner { height:54px; padding:0 14px; }
    .logo { font-size:1.1rem; letter-spacing:1px; }
    .main-nav a { margin-left:10px; font-size:.74rem; }
}

/* ── ADMIN NAV ────────────────────────────────────────────── */
@media(max-width:768px) {
    .admin-nav-inner {
        gap:1px; padding:0 10px; height:auto;
        flex-wrap:wrap; padding:6px 10px;
    }
    .admin-nav a { font-size:.72rem; padding:5px 10px; }
}

/* ── CONTAINER ────────────────────────────────────────────── */
@media(max-width:600px) {
    .container { padding:12px 14px; }
    .page-title { font-size:1.3rem; }
    .page-subtitle { font-size:.78rem; }
}

/* ── CARDS ────────────────────────────────────────────────── */
@media(max-width:600px) {
    .card { padding:14px; }
}

/* ── GRID 2 ───────────────────────────────────────────────── */
@media(max-width:700px) {
    .grid-2 { grid-template-columns:1fr !important; }
}

/* ── STATS GRID ───────────────────────────────────────────── */
@media(max-width:480px) {
    .stats-grid, .sboxes {
        grid-template-columns:repeat(2, 1fr) !important;
    }
}

/* ── STANDINGS TABLE ──────────────────────────────────────── */
@media(max-width:600px) {
    .standings-table th, .standings-table td { padding:7px 8px; font-size:.78rem; }
}

/* ── ROUND SELECTOR ───────────────────────────────────────── */
@media(max-width:600px) {
    .round-selector { gap:4px; }
    .round-tab { min-width:60px; padding:6px 8px; font-size:.7rem; }
}

/* ── SCORE FORM (admin saisie scores) ─────────────────────── */
@media(max-width:768px) {
    .score-form {
        grid-template-columns: 36px 42px 1fr 100px 1fr 56px 44px;
        gap:6px; padding:8px 10px;
    }
}
@media(max-width:560px) {
    .score-form {
        display:flex; flex-wrap:wrap; gap:6px;
    }
    .sf-num  { order:1; font-size:.64rem; }
    .sf-time { order:2; }
    .sf-t1   { order:3; flex:1; text-align:right; min-width:80px; }
    .sf-inputs { order:4; }
    .sf-t2   { order:5; flex:1; min-width:80px; }
    .sf-malus  { order:6; flex:1; }
    .sf-actions{ order:7; }
}

/* ── ROUND VALIDATE BAR ───────────────────────────────────── */
@media(max-width:600px) {
    .round-validate-bar { flex-direction:column; gap:10px; }
    .rv-bar { width:100% !important; }
}

/* ── DASHBOARD FOCUS CARD ─────────────────────────────────── */
@media(max-width:640px) {
    .focus-card { padding:14px; }
    .focus-title { font-size:1.1rem; }
    .focus-right { width:100%; flex-direction:row; flex-wrap:wrap; }
    .focus-right .btn { flex:1; justify-content:center; }
}

/* ── DASHBOARD ROUNDS LIST ────────────────────────────────── */
@media(max-width:560px) {
    /* Rounds list rows */
    [style*="grid-template-columns:32px"] {
        grid-template-columns: 28px 1fr 44px 40px !important;
    }
    .sr-hide { display:none !important; }
}

/* ── MATCH CARDS (public) ─────────────────────────────────── */
@media(max-width:480px) {
    .mcard {
        grid-template-columns: 44px 1fr 80px 1fr;
        gap:5px; padding:7px 8px;
    }
    .mc-t { font-size:.66rem; }
    .mc-nm { font-size:.78rem; }
}

/* ── BRACKET (phase finale) ───────────────────────────────── */
@media(max-width:600px) {
    .bracket { flex-direction:column; gap:10px; }
    .bstage { min-width:unset; width:100%; }
}

/* ── PLAYOFFS ADMIN ───────────────────────────────────────── */
@media(max-width:640px) {
    .pf-grid { grid-template-columns:1fr !important; }
    .pf-score-form { gap:6px; }
    .pf-matchup { flex-wrap:wrap; }
}

/* ── CHAMPIONS MATCH ──────────────────────────────────────── */
@media(max-width:700px) {
    .champ-grid, .tv-champ-grid, .ch-grid {
        grid-template-columns:1fr !important;
    }
    .champ-vs-col, .ch-vs { padding-top:8px; }
}

/* ── ROUND CARDS (admin/rounds.php) ──────────────────────── */
@media(max-width:640px) {
    .rc-header { flex-direction:column; align-items:flex-start; gap:8px; }
    .rc-actions { flex-wrap:wrap; gap:4px; }
    .matches-grid { grid-template-columns:1fr !important; }
}

/* ── TIMELINE NAV (public page) ───────────────────────────── */
@media(max-width:480px) {
    .tl-btn { padding:5px 8px; min-width:54px; }
    .tl-n { font-size:.64rem; }
    .tl-s { font-size:.54rem; }
    .tl-day { padding:0 5px; font-size:.56rem; }
}

/* ── EQUIPES TAB (public) ─────────────────────────────────── */
@media(max-width:600px) {
    .eq-grid { grid-template-columns:1fr !important; }
    .eq-stats { grid-template-columns:repeat(3,1fr); gap:6px; }
}

/* ── CONCOURS ADMIN ───────────────────────────────────────── */
@media(max-width:900px) {
    .live-grid, .live-wrap {
        grid-template-columns:1fr !important;
    }
}
@media(max-width:600px) {
    .scoring-card { padding:16px; }
    .sc-total { font-size:3.5rem; }
    .btn-plus1 { font-size:1.4rem; padding:14px; }
    .shot-btns { gap:8px; }
}

/* ── FAIR PLAY ────────────────────────────────────────────── */
@media(max-width:800px) {
    .fp-grid { grid-template-columns:1fr !important; }
}
@media(max-width:560px) {
    .vote-row { flex-wrap:wrap; gap:6px; }
    .vr-team { width:100%; min-width:unset; }
}

/* ── FORMS ────────────────────────────────────────────────── */
@media(max-width:560px) {
    input[type=text], input[type=number], input[type=password], select {
        font-size:16px; /* évite zoom auto iOS */
    }
    .btn { padding:9px 14px; font-size:.78rem; }
    .btn-sm { padding:7px 10px; font-size:.72rem; }
}

/* ── SCOREUR PAGE ─────────────────────────────────────────── */
@media(max-width:600px) {
    .scoreur-container { padding:10px 12px; }
    .sf-matchup { gap:8px; }
    .sf-input-big { width:56px; font-size:1.1rem; padding:8px 4px; }
    .sf-team-name { font-size:.82rem; }
    .round-info-bar { flex-direction:column; gap:8px; }
}

/* ── LOGIN ────────────────────────────────────────────────── */
@media(max-width:480px) {
    .role-cards { grid-template-columns:1fr !important; }
    .login-wrap { padding:14px; }
}

/* ── HORAIRES (public) ────────────────────────────────────── */
@media(max-width:700px) {
    .hor-wrap { grid-template-columns:1fr !important; }
}

/* ── PODIUM (public finale) ───────────────────────────────── */
@media(max-width:480px) {
    .pub-podium-grid { flex-direction:column; gap:10px; }
}

/* ── TEAMS ADMIN ──────────────────────────────────────────── */
@media(max-width:700px) {
    /* Teams table: masquer colonnes secondaires */
    .teams-table-col-hide { display:none; }
}

/* ── SCROLL HELPERS ───────────────────────────────────────── */
.overflow-x-auto { overflow-x:auto; -webkit-overflow-scrolling:touch; }
@media(max-width:600px) {
    .card { overflow-x:auto; }
    table { min-width:400px; }
    .standings-table { min-width:unset; }
}


/* ═══════════════════════════════════════════════════════════
   FIX MOBILE — Standings + colonnes
   ═══════════════════════════════════════════════════════════ */

/* Standings mobile : 5 colonnes visibles seulement */
@media(max-width:600px) {
    /* Réduire le grid aux seules colonnes visibles */
    .srow {
        grid-template-columns: 28px 1fr 42px 36px 50px !important;
        gap: 4px !important;
        padding: 7px 10px !important;
        font-size: .82rem !important;
    }
    .srow.hdr { font-size:.6rem !important; }

    /* Cacher les colonnes 6 et 7 dans tous les .srow */
    .srow > span.sr-hide,
    .srow > span:nth-child(6),
    .srow > span:nth-child(7) {
        display: none !important;
    }

    /* Pts badge plus petit */
    .sr-pts { font-size:.78rem !important; }

    /* Rank badge plus petit */
    .rank-badge { width:22px; height:22px; font-size:.68rem; }
}

/* Stats boxes : 2×2 sur mobile */
@media(max-width:480px) {
    .sboxes { grid-template-columns:1fr 1fr !important; gap:6px; }
    .sbox { padding:9px; }
    .sbox-v { font-size:1.1rem; }
    .sbox-l { font-size:.58rem; }
}

/* Réduire padding container mobile */
@media(max-width:480px) {
    .container { padding:10px 12px !important; }
    .card { padding:12px !important; }
    .page-title { font-size:1.2rem !important; }
}

/* Header mobile compact */
@media(max-width:400px) {
    .logo { font-size:.95rem !important; }
    .main-nav a { font-size:.7rem !important; margin-left:8px !important; }
    .header-inner { height:50px; }
}

/* Match cards mobile */
@media(max-width:480px) {
    .mcard {
        grid-template-columns: 40px 1fr 76px 1fr !important;
        gap: 5px !important;
        padding: 7px 8px !important;
        font-size: .78rem !important;
    }
    .mc-t { font-size:.62rem !important; min-width:40px; }
    .mc-sc { font-size:.88rem !important; }
}

/* Round tabs scrollable */
@media(max-width:480px) {
    .round-selector { gap:3px; }
    .round-tab { min-width:52px; padding:5px 6px; font-size:.66rem; }
    .rt-name { font-size:.64rem; }
    .rt-prog { font-size:.56rem; }
}

/* Score form mobile (saisie scores) */
@media(max-width:640px) {
    .sf-scoreur {
        display: flex !important;
        flex-wrap: wrap;
        gap: 6px;
    }
    .sf-meta { width: 100%; }
    .sf-matchup {
        width: 100%;
        grid-template-columns: 1fr 120px 1fr !important;
        gap: 6px !important;
    }
    .sf-input-big { width: 50px !important; font-size: 1rem !important; padding: 8px 3px !important; }
    .sf-footer { flex-wrap: wrap; gap: 6px; }
}

/* Timeline public — noms courts */
@media(max-width:400px) {
    .tl-n { font-size:.6rem !important; letter-spacing:.5px; }
    .tl-s { display:none; }
    .tl-btn { min-width:48px !important; padding:5px 6px !important; }
}

/* Cards équipes */
@media(max-width:400px) {
    .eq-grid { grid-template-columns:1fr !important; gap:6px; }
    .eq-stats { grid-template-columns:repeat(3,1fr) !important; gap:4px; }
    .eq-stat-v { font-size:.9rem !important; }
}
