:root{
    --bg:#08090d;
    --sidebar:#0d0f14;
    --panel:#111319;
    --panel-2:#0b0d12;
    --panel-3:#151922;
    --border:#252936;
    --border-soft:#1d212b;
    --text:#f3f5f8;
    --muted:#8f97a7;
    --accent:#e51b23;
    --accent-hover:#f32a32;
    --danger:#5a1820;
    --success:#1b5b35;
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%;font-family:Inter,Arial,Helvetica,sans-serif;background:var(--bg);color:var(--text)}
body{min-height:100vh}
button,input{font:inherit}
button{cursor:pointer}
body.modal-open{overflow:hidden}

.sidebar{
    position:fixed;left:0;top:0;bottom:0;width:245px;
    background:var(--sidebar);border-right:1px solid var(--border);
    padding:28px 18px;display:flex;flex-direction:column;z-index:20
}
.brand{font-weight:900;font-size:20px;letter-spacing:1.5px;line-height:1.05;margin:4px 8px 34px}
.brand span,.eyebrow{color:var(--accent)}
nav{display:flex;flex-direction:column;gap:6px}
nav a,.logout{color:#cfd3dc;text-decoration:none;padding:12px 14px;border-radius:8px}
nav a:hover,.logout:hover{background:#171a22;color:white}
.logout{margin-top:auto}

.content{margin-left:245px;padding:34px;min-height:100vh}
.content-login{min-height:100vh}
.eyebrow{font-size:11px;font-weight:900;letter-spacing:1.7px;text-transform:uppercase}
.muted{color:var(--muted)}
.panel,.login-card{
    background:linear-gradient(180deg,#13161d,#0f1117);
    border:1px solid var(--border);
    border-radius:16px
}
.section-panel{padding:22px;margin-bottom:18px}
.section-panel h2{margin:5px 0 0;font-size:22px}
.section-head{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:18px}

.tournament-hero{
    display:flex;align-items:flex-start;justify-content:space-between;gap:24px;
    background:linear-gradient(135deg,#141820,#0d0f14);
    border:1px solid var(--border);border-radius:18px;padding:26px;margin-bottom:18px
}
.tournament-hero h1{margin:5px 0 12px;font-size:34px}
.hero-meta{display:flex;gap:8px;flex-wrap:wrap}
.hero-meta span{
    background:#0b0d12;border:1px solid var(--border-soft);color:#aab1be;
    padding:7px 10px;border-radius:999px;font-size:12px
}
.hero-actions{display:flex;gap:8px}

.btn-link,.primary-action,.secondary-action,.danger-action,.mini-danger{
    border:0;border-radius:8px;padding:10px 14px;font-weight:800;text-decoration:none;
    display:inline-flex;align-items:center;justify-content:center;gap:6px;color:white
}
.btn-link,.primary-action{background:var(--accent)}
.btn-link:hover,.primary-action:hover{background:var(--accent-hover)}
.secondary,.secondary-action{background:#1a1f29;border:1px solid #303744;color:#e4e8ef}
.secondary:hover,.secondary-action:hover{background:#222833}
.danger-action,.mini-danger{background:#49151c;border:1px solid #6e222b}
.danger-action:hover,.mini-danger:hover{background:#5a1a23}
.compact-action{padding:7px 10px;font-size:12px}
.mini-danger{padding:7px 10px}

.winner-strip{
    display:flex;justify-content:space-between;align-items:center;gap:16px;
    border:1px solid #756319;background:linear-gradient(90deg,#342d10,#16140c);
    padding:14px 18px;border-radius:13px;margin-bottom:18px
}
.winner-strip>div{display:flex;align-items:center;gap:8px}
.winner-strip form{margin:0}
.winner-icon{font-size:20px}

.ranking-list{display:flex;flex-direction:column;gap:7px}
.ranking-row{
    display:grid;grid-template-columns:46px 1fr 150px;align-items:center;gap:14px;
    background:#0b0d12;border:1px solid var(--border-soft);border-radius:10px;padding:11px 14px
}
.ranking-row:hover{border-color:#303644}
.ranking-winner{border-color:#76651a;background:rgba(255,215,0,.045)}
.ranking-place{
    width:34px;height:34px;border-radius:8px;background:#171b23;
    display:grid;place-items:center;font-weight:900;color:#c8ced9
}
.rank-medal-1{color:#ffd700;background:#302b10}
.rank-medal-2{color:#d0d0d0;background:#282a30}
.rank-medal-3{color:#d89556;background:#2d2118}
.ranking-team{display:flex;flex-direction:column;gap:3px;min-width:0}
.ranking-team strong{font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ranking-team small{color:var(--muted)}
.ranking-points{text-align:right;font-size:20px;font-weight:900}
.ranking-points small{font-size:11px;color:var(--muted)}
.matchpoint-text{font-weight:800}

.management-grid{display:grid;grid-template-columns:1.7fr 1fr;gap:18px;margin-bottom:18px}
.player-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.stack-form>button{margin-top:14px;width:100%}

label{display:block;font-size:12px;color:#aeb5c2;margin:11px 0 6px}
input{
    width:100%;background:#090b0f;color:white;border:1px solid #2a303d;
    padding:11px 12px;border-radius:8px;outline:none
}
input:focus{border-color:#5b6476}

.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.stat-list>div{
    background:#0b0d12;border:1px solid var(--border-soft);
    border-radius:10px;padding:14px;display:flex;justify-content:space-between;align-items:center
}
.stat-list span{color:var(--muted);font-size:12px}
.stat-list strong{font-size:17px}

.team-card-list{display:flex;flex-direction:column;gap:10px}
.team-card{
    border:1px solid var(--border-soft);background:#0b0d12;border-radius:13px;overflow:hidden;
    transition:border-color .15s ease, box-shadow .15s ease
}
.team-card:hover{border-color:#303744}
.team-card.is-open{border-color:#343b49;box-shadow:0 8px 24px rgba(0,0,0,.18)}
.team-card-winner{border-color:#76651a}
.team-card-summary{
    width:100%;border:0;background:transparent;color:inherit;padding:15px 16px;
    display:grid;grid-template-columns:50px 1fr auto 28px;align-items:center;gap:14px;text-align:left
}
.team-rank-badge{
    width:42px;height:42px;border-radius:10px;background:#171b23;display:grid;place-items:center;
    font-weight:900;color:#cfd4dd
}
.team-summary-main{min-width:0}
.team-title-line{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.team-title-line>strong{font-size:17px}
.team-players{display:flex;gap:6px;align-items:center;color:var(--muted);font-size:12px;margin-top:5px;flex-wrap:wrap}
.team-players span{color:#525966}
.team-summary-stats{display:flex;gap:24px}
.team-summary-stats>div{display:flex;flex-direction:column;align-items:flex-end}
.team-summary-stats small{color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.8px}
.team-summary-stats strong{font-size:17px}
.team-chevron{font-size:20px;color:#7f8797;transition:transform .18s ease}
.team-card.is-open .team-chevron{transform:rotate(180deg)}
.winner-pill,.matchpoint-pill{
    padding:4px 7px;border-radius:999px;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.4px
}
.winner-pill{background:#3a3210;color:#f7d95b;border:1px solid #675918}
.matchpoint-pill{background:color-mix(in srgb,var(--mp-color) 12%,transparent);color:var(--mp-color);border:1px solid color-mix(in srgb,var(--mp-color) 40%,transparent)}

.team-card-body{display:none;border-top:1px solid var(--border-soft);padding:16px}
.team-card.is-open .team-card-body{display:block}
.team-actionbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}
.team-actionbar form{margin:0}

.team-edit-box{display:none;background:#10131a;border:1px solid var(--border);border-radius:10px;padding:14px;margin-bottom:14px}
.team-edit-box.is-visible{display:block}
.edit-team-grid{display:grid;grid-template-columns:1.2fr repeat(3,1fr);gap:10px}
.inline-actions{display:flex;gap:8px;margin-top:12px}

.subsection-title{display:flex;justify-content:space-between;align-items:center;margin:4px 0 10px}
.subsection-title>div{display:flex;align-items:center;gap:8px}
.subsection-title span{font-weight:900}
.subsection-title small{color:var(--muted)}

.match-list{display:flex;flex-direction:column;gap:7px}
.match-row{
    display:grid;grid-template-columns:48px 250px 1fr auto;align-items:center;gap:14px;
    padding:11px 12px;background:#0e1117;border:1px solid var(--border-soft);border-radius:9px
}
.match-index{
    width:36px;height:36px;border-radius:8px;background:#171b23;display:grid;place-items:center;
    font-weight:900;color:#c9ced8
}
.match-info{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.match-info>div{display:flex;flex-direction:column}
.match-info small{font-size:9px;color:var(--muted);text-transform:uppercase;letter-spacing:.7px}
.match-info strong{font-size:14px}
.match-player-kills{display:flex;gap:8px;flex-wrap:wrap}
.match-player-kills span{
    background:#151922;border:1px solid #252a34;padding:5px 8px;border-radius:7px;
    font-size:11px;color:#9fa6b3
}
.match-player-kills strong{color:white;margin-left:4px}
.match-actions{display:flex;gap:6px;align-items:center}
.match-actions form{margin:0}
.empty-state,.empty-match-state{
    color:var(--muted);border:1px dashed #2a303a;border-radius:10px;padding:18px;text-align:center
}

.modal-backdrop{
    position:fixed;inset:0;background:rgba(0,0,0,.72);display:grid;place-items:center;
    padding:22px;z-index:1000;backdrop-filter:blur(4px)
}
.modal-backdrop[hidden]{display:none}
.modal-card{
    width:min(720px,100%);background:#11141b;border:1px solid #2c3240;border-radius:16px;
    box-shadow:0 24px 70px rgba(0,0,0,.48);padding:20px
}
.modal-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}
.modal-head h3{font-size:23px;margin:4px 0 0}
.modal-close{
    width:34px;height:34px;border:1px solid #303744;background:#191d26;color:white;border-radius:8px;
    font-size:22px;line-height:1
}
.modal-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.modal-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}

.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:420px;padding:34px}
.login-card h1{font-size:32px;margin:8px 0}
.login-card p{color:var(--muted);margin:0 0 28px}
.login-card button{width:100%;margin-top:20px;background:var(--accent);border:0;color:white;padding:12px 14px;border-radius:8px;font-weight:800}
.flash{max-width:1000px;margin:0 0 15px;padding:12px 14px;border-radius:8px}
.flash.danger{background:#391317;border:1px solid #6e2229}
.flash.success{background:#12331e;border:1px solid #235e37}

.topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}
.topbar h1{margin:4px 0 0;font-size:32px}
.user-chip{background:var(--panel);border:1px solid var(--border);padding:10px 14px;border-radius:999px;color:#cfd3dc}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:18px}
.card{background:linear-gradient(180deg,#13161d,#0f1117);border:1px solid var(--border);border-radius:14px;padding:20px}
.card span{display:block;color:var(--muted);font-size:13px;margin-bottom:14px}
.card strong{font-size:28px}
.table-wrap{overflow:auto}
table{width:100%;border-collapse:collapse}
th,td{text-align:left;padding:11px 10px;border-bottom:1px solid #242834}
th{color:#9da5b5;font-size:12px;text-transform:uppercase;letter-spacing:.7px}
td a{color:#ff5b6e;text-decoration:none;font-weight:800}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-bottom:18px}
.triple{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:20px}

@media(max-width:1150px){
    .management-grid{grid-template-columns:1fr}
    .match-row{grid-template-columns:48px 220px 1fr}
    .match-actions{grid-column:2 / -1;justify-content:flex-end}
}
@media(max-width:900px){
    .content{padding:22px}
    .ranking-row{grid-template-columns:42px 1fr 110px}
    .team-card-summary{grid-template-columns:44px 1fr 26px}
    .team-summary-stats{grid-column:2 / 3;margin-top:8px;justify-content:flex-start}
    .team-summary-stats>div{align-items:flex-start}
    .team-chevron{grid-column:3;grid-row:1 / span 2}
    .edit-team-grid{grid-template-columns:1fr 1fr}
    .match-row{grid-template-columns:44px 1fr}
    .match-info,.match-player-kills,.match-actions{grid-column:2}
}
@media(max-width:700px){
    .sidebar{position:static;width:auto}
    .content{margin-left:0;padding:16px}
    .tournament-hero{flex-direction:column;padding:20px}
    .tournament-hero h1{font-size:28px}
    .hero-actions{width:100%}.hero-actions a{width:100%}
    .player-grid,.modal-grid,.edit-team-grid,.stat-list{grid-template-columns:1fr}
    .ranking-row{grid-template-columns:40px 1fr}
    .ranking-points{grid-column:2;text-align:left;font-size:17px}
    .team-card-summary{grid-template-columns:40px 1fr 24px;padding:13px}
    .team-summary-stats{gap:16px}
    .team-actionbar{display:grid;grid-template-columns:1fr}
    .team-actionbar>*{width:100%}
    .team-actionbar button{width:100%}
    .match-row{grid-template-columns:1fr;padding:12px}
    .match-index,.match-info,.match-player-kills,.match-actions{grid-column:1}
    .match-info{grid-template-columns:repeat(3,1fr)}
    .match-actions{justify-content:stretch}
    .match-actions>*{flex:1}
    .match-actions button{width:100%}
    .winner-strip{align-items:flex-start;flex-direction:column}
    .winner-strip form,.winner-strip button{width:100%}
    .grid{grid-template-columns:1fr}
    .two-col{grid-template-columns:1fr}
    .triple{grid-template-columns:1fr}
}
