:root{--bg:#08090b;--surface:#111318;--surface-2:#181b21;--border:#292d35;--text:#f5f6f7;--muted:#9399a5;--accent:#ffcc00;--accent-soft:#332b06;--danger:#ff4d5e;--success:#41c985;--radius:16px;--shadow:0 20px 60px #0005}*{box-sizing:border-box}html{color-scheme:dark}body{margin:0;background:radial-gradient(circle at 70% -10%,#2a230a 0,transparent 28%),linear-gradient(#090b0e,#08090b);color:var(--text);font:15px/1.5 Inter,Arial,sans-serif;min-height:100vh}a{color:inherit;text-decoration:none}button,input,select{font:inherit}.svg-sprite{position:absolute;width:0;height:0;overflow:hidden}.topbar svg,.mobile-nav svg,.action svg,.section-head svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.topbar{height:74px;border-bottom:1px solid var(--border);background:#0a0c0fee;backdrop-filter:blur(16px);display:flex;align-items:center;padding:0 max(24px,calc((100% - 1180px)/2));gap:46px;position:sticky;top:0;z-index:20}.brand{color:var(--accent);display:grid;font-weight:950;font-size:28px;line-height:.8;letter-spacing:3px}.brand small{font-size:7px;letter-spacing:5px;margin-top:9px;color:#777}.topbar nav{display:flex;gap:8px;flex:1}.topbar nav a{display:flex;align-items:center;gap:8px;color:var(--muted);font-weight:800;text-transform:uppercase;font-size:11px;padding:11px 13px;border-radius:9px}.topbar nav a:hover{color:var(--text);background:var(--surface-2)}#auth-box{display:flex;align-items:center;gap:10px}#auth-box>a{font-weight:800}.container{width:min(1180px,calc(100% - 32px));margin:28px auto 110px}.hero{position:relative;overflow:hidden;min-height:235px;padding:38px 42px;border:1px solid #4c410d;border-radius:20px;background:linear-gradient(110deg,#201b08 0,#121419 58%,#0e1014 100%);display:flex;flex-direction:column;justify-content:center;box-shadow:var(--shadow)}.hero:before{content:"VVL";position:absolute;right:-20px;bottom:-90px;font-size:260px;line-height:1;font-weight:950;color:#ffffff05;letter-spacing:-18px;pointer-events:none}.hero:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 0 69%,#ffcc0005),repeating-linear-gradient(115deg,transparent 0 28px,#ffffff03 29px 30px);pointer-events:none}.hero>*{position:relative;z-index:1}.hero.compact{min-height:170px}.eyebrow{color:var(--accent);font-size:11px;font-weight:900;letter-spacing:2.2px;text-transform:uppercase;margin:0 0 7px}.hero h1,.page-head h1{font-size:clamp(38px,6vw,68px);line-height:1;margin:0 0 20px;text-transform:uppercase;letter-spacing:-2px}.hero-meta{display:flex;gap:10px;color:var(--muted)}.hero-meta span{padding:8px 12px;border:1px solid #ffffff10;border-radius:8px;background:#ffffff05}.quick-grid,.club-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:18px 0}.card{background:linear-gradient(145deg,var(--surface),#0f1115);border:1px solid var(--border);border-radius:var(--radius);padding:22px}.action{position:relative;overflow:hidden;min-height:142px;display:grid;grid-template-columns:52px 1fr 24px;align-items:center;gap:14px;transition:transform .2s,border-color .2s,background .2s}.action:hover{border-color:#665612;transform:translateY(-3px);background:linear-gradient(145deg,#18191a,#111318)}.action-icon{width:52px;height:52px;display:grid;place-items:center;border-radius:13px;background:var(--accent-soft);color:var(--accent)}.action-icon svg{width:27px;height:27px}.action-copy{display:grid;gap:3px}.action b{font-size:15px;text-transform:uppercase}.action small{color:var(--muted);font-size:13px;line-height:1.35}.action-arrow{color:#555;transition:.2s}.action:hover .action-arrow{color:var(--accent);transform:translateX(3px)}.dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.leaderboard-card{min-height:310px}.section-head,.page-head,.row{display:flex;align-items:center;justify-content:space-between;gap:15px}.section-head h2{margin:0;font-size:24px}.section-head a{display:flex;align-items:center;gap:5px;color:var(--accent);font-weight:800;font-size:12px;text-transform:uppercase}.section-head a svg{width:16px}.list{margin-top:16px}.list-row{display:grid;grid-template-columns:42px 46px 1fr auto;align-items:center;gap:12px;padding:11px 6px;border-top:1px solid var(--border);border-radius:8px}.list-row:hover{background:#ffffff04}.list-row:first-child>b:first-child{color:var(--accent)}.avatar{width:46px;height:46px;border-radius:11px;object-fit:cover;background:var(--surface-2)}.avatar.large{width:120px;height:120px;border-radius:18px}.avatar.preview{width:90px;height:90px}.btn{border:1px solid var(--border);border-radius:10px;min-height:44px;padding:10px 18px;background:var(--surface-2);color:var(--text);font-weight:850;text-transform:uppercase;cursor:pointer}.btn-primary{background:var(--accent);border-color:var(--accent);color:#111}.btn-danger{background:var(--danger);border-color:var(--danger)}.btn-block{width:100%}.btn:disabled{opacity:.45;cursor:not-allowed}.input{width:100%;min-height:46px;padding:10px 12px;margin-top:6px;border:1px solid var(--border);border-radius:9px;background:#0d0f12;color:var(--text)}label{display:block;color:var(--muted);margin-bottom:16px}.search{max-width:440px;margin:20px 0}.club-grid{grid-template-columns:repeat(3,1fr)}.club-card{cursor:pointer}.club-card:hover{border-color:var(--accent)}.club-head{display:flex;align-items:center;gap:14px}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:22px 0}.stat{padding:16px;background:var(--surface-2);border-radius:10px}.stat b{display:block;font-size:22px}.badge{display:inline-block;padding:4px 8px;border-radius:6px;background:#292b30;color:var(--muted);font-size:11px;font-weight:800}.badge.accent{background:#3d3509;color:var(--accent)}.tabs{display:flex;gap:8px;margin:22px 0}.tab{padding:12px 20px;border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);font-weight:800;cursor:pointer}.tab.active{color:var(--accent);border-color:var(--accent)}.table-wrap{overflow-x:auto;padding:0}.table{width:100%;border-collapse:collapse;min-width:650px}.table th,.table td{padding:15px;text-align:left;border-bottom:1px solid var(--border)}.table th{color:var(--muted);font-size:11px;text-transform:uppercase}.table tbody tr{cursor:pointer}.table tbody tr:hover{background:var(--surface-2)}.modal{position:fixed;inset:0;background:#000c;backdrop-filter:blur(6px);display:grid;place-items:center;padding:16px;z-index:50}.modal-card{width:min(460px,100%);max-height:90vh;overflow:auto;background:var(--surface);border:1px solid var(--border);border-radius:18px;padding:30px;position:relative;box-shadow:var(--shadow)}.modal-card h2{font-size:28px;margin-top:0}.modal-close{position:absolute;right:12px;top:8px;border:0;background:none;color:var(--muted);font-size:28px;cursor:pointer}.toast-root{position:fixed;right:20px;bottom:20px;display:grid;gap:8px;z-index:80}.toast{background:var(--surface-2);border-left:3px solid var(--accent);padding:13px 16px;border-radius:7px;box-shadow:0 10px 30px #0008}.toast.error{border-color:var(--danger)}.profile-hero,.club-hero{display:flex;align-items:center;gap:24px}.stack{display:grid;gap:14px;margin-top:20px}.form-grid{display:grid;grid-template-columns:2fr 1fr 1fr auto;align-items:end;gap:12px}.empty{color:var(--muted);padding:35px;text-align:center;border:1px dashed var(--border);border-radius:12px}.loading{color:var(--muted);display:flex;align-items:center;gap:10px}.loader{width:16px;height:16px;border:2px solid #ffffff20;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}.hidden{display:none!important}.mobile-nav{display:none}.flag{width:27px;height:18px;object-fit:cover;border-radius:2px}.owner-panel{margin-top:22px;border-color:#54470d}@keyframes spin{to{transform:rotate(360deg)}}
@media(max-width:800px){body{padding-bottom:calc(76px + env(safe-area-inset-bottom))}.topbar{height:62px;padding:0 14px}.brand{font-size:24px}.brand small{display:none}.topbar nav{display:none}.topbar #auth-box .btn{min-height:38px;padding:7px 14px}.container{width:min(100% - 22px,1180px);margin:14px auto 30px}.hero{padding:26px;min-height:205px;border-radius:16px}.hero:before{font-size:170px;bottom:-55px}.hero h1{font-size:clamp(36px,12vw,56px)}.hero-meta{display:flex;flex-wrap:wrap;gap:7px}.hero-meta span{padding:6px 9px;font-size:12px}.quick-grid,.club-grid{grid-template-columns:1fr 1fr}.dashboard-grid{grid-template-columns:1fr}.stat-grid{grid-template-columns:1fr 1fr}.mobile-nav{display:grid;grid-template-columns:repeat(4,1fr);position:fixed;bottom:0;left:0;right:0;height:calc(68px + env(safe-area-inset-bottom));padding:5px 5px env(safe-area-inset-bottom);background:#0b0d10f5;backdrop-filter:blur(18px);border-top:1px solid var(--border);z-index:30}.mobile-nav a{min-width:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--muted);font-size:10px;font-weight:750;border-radius:10px}.mobile-nav a:hover,.mobile-nav a:active{color:var(--accent);background:var(--accent-soft)}.mobile-nav svg{width:22px;height:22px}.form-grid{grid-template-columns:1fr}.profile-hero,.club-hero{align-items:flex-start}.page-head h1{font-size:36px}.toast-root{left:12px;right:12px;bottom:calc(80px + env(safe-area-inset-bottom))}}
@media(max-width:520px){.quick-grid{grid-template-columns:1fr;margin:14px 0}.club-grid{grid-template-columns:1fr}.action{min-height:92px;grid-template-columns:46px 1fr 20px;padding:16px}.action-icon{width:46px;height:46px}.action b{font-size:14px}.action small{font-size:12px}.dashboard-grid{gap:14px}.leaderboard-card{min-height:0;padding:17px}.section-head h2{font-size:21px}.list-row{grid-template-columns:32px 42px 1fr auto;gap:8px;padding:9px 2px}.list-row>div .muted{font-size:12px}.list-row>b:last-child{font-size:12px}.profile-hero,.club-hero{display:grid}.topbar #auth-box .muted{display:none}.card{padding:16px}.page-head{align-items:flex-end}.modal-card{padding:24px 18px}}

/* Keep loaded leaderboard rows vertical and prevent grid min-content overflow. */
.dashboard-grid{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.leaderboard-card{min-width:0;overflow:hidden}
.loading{display:block}
.loading>.loader{display:inline-block;vertical-align:-3px;margin-right:8px}
@media(max-width:800px){.dashboard-grid{grid-template-columns:minmax(0,1fr)}}
.mobile-nav.has-admin{grid-template-columns:repeat(5,1fr)}

.player-cell{display:flex;align-items:center;gap:13px;min-width:0}
.player-cell .avatar{flex:0 0 46px}
.player-name{display:inline-flex;align-items:center;gap:6px;min-width:0;font-weight:800;white-space:nowrap}
.verified-badge{display:inline-grid;place-items:center;flex:0 0 auto;width:18px;height:18px;color:var(--accent)}
.verified-badge svg{width:18px;height:18px;fill:var(--accent);stroke:#161200;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.rank-cell,.elo-cell{font-weight:850;font-variant-numeric:tabular-nums}
.rank-cell{color:var(--accent)}
.table td{vertical-align:middle}
.country-cell{display:flex;align-items:center;gap:9px;white-space:nowrap}
.profile-player-name{display:flex;align-items:center;gap:10px}.profile-player-name .verified-badge,.profile-player-name .verified-badge svg{width:25px;height:25px}.owner-name{display:flex;align-items:center;gap:5px}.owner-name .player-name{color:var(--text)}
@media(max-width:520px){.player-cell{gap:9px}.player-cell .avatar{flex-basis:40px;width:40px;height:40px}.verified-badge,.verified-badge svg{width:16px;height:16px}}

.profile-settings{margin-top:20px;border-color:#4a4012}
.profile-settings .section-head{margin-bottom:22px}
.profile-settings h2{margin:0;font-size:24px}
.settings-form{display:grid;grid-template-columns:180px minmax(180px,1fr) minmax(220px,1fr);gap:18px;align-items:end}
.settings-form label{margin:0}
.avatar-field{grid-row:span 2;align-self:start}
.settings-avatar{display:block;width:96px;height:96px;margin:8px 0 10px;border:2px solid #3a3e46}
.settings-actions{grid-column:2/-1;display:flex;justify-content:flex-end;padding-top:2px}
.account-link{display:flex;align-items:center;gap:9px;font-weight:800}.notification-link{position:relative;display:grid;place-items:center;width:42px;height:42px;border:1px solid var(--border);border-radius:11px;color:var(--accent);background:var(--surface)}.notification-link svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.8}.notification-count{position:absolute;right:-5px;top:-6px;min-width:19px;height:19px;padding:0 5px;display:grid;place-items:center;border:2px solid var(--bg);border-radius:10px;background:var(--danger);color:white;font-size:10px;font-weight:900}.invites-card{margin-top:20px;border-color:#5b4d0c;scroll-margin-top:90px}.invites-card h2{margin:0}.invite-row{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.invite-actions{display:flex;gap:8px}
@media(max-width:700px){.settings-form{grid-template-columns:1fr}.avatar-field{grid-row:auto}.settings-actions{grid-column:auto}.settings-actions .btn{width:100%}}
@media(max-width:520px){.account-link span{display:none}.account-link .avatar{width:38px;height:38px}.notification-link{width:38px;height:38px}.invite-row{align-items:stretch;flex-direction:column}.invite-actions{display:grid;grid-template-columns:1fr 1fr}.invite-actions .btn{padding-inline:8px}}

/* Club catalog and club ranking share the same square card component. */
.club-grid{display:grid!important;width:100%;grid-template-columns:repeat(auto-fill,minmax(250px,300px));justify-content:start;gap:18px;align-items:start}
.club-grid>.empty{grid-column:1/-1}
.club-card{position:relative;isolation:isolate;aspect-ratio:1/1;min-width:0;overflow:hidden;display:flex;flex-direction:column;padding:22px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(circle at 50% 38%,#242107 0,transparent 33%),linear-gradient(145deg,#15181e,#0e1014);transition:transform .2s,border-color .2s,box-shadow .2s}
.club-card:before{content:"";position:absolute;inset:0;z-index:-1;background:repeating-linear-gradient(125deg,transparent 0 31px,#ffffff03 32px 33px);pointer-events:none}
.club-card:hover{transform:translateY(-4px);border-color:#6a5910;box-shadow:0 20px 45px #0007}
.club-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px}
.club-rank{font-size:17px;font-weight:950;color:var(--accent)}
.club-policy{padding:6px 9px;border-radius:8px;font-size:10px;font-weight:900;letter-spacing:.8px;text-transform:uppercase}
.club-policy.open{color:var(--success);background:#123224;border:1px solid #20553c}.club-policy.closed{color:#ffbdc5;background:#35151a;border:1px solid #61252e}
.club-visual{flex:1;display:grid;place-items:center;min-height:0;padding:12px}
.club-avatar{width:min(42%,132px)!important;height:auto!important;aspect-ratio:1;border-radius:24%!important;border:1px solid #ffffff18;box-shadow:0 16px 35px #0008}
.club-card h3{overflow:hidden;margin:0 0 14px;font-size:clamp(20px,2vw,28px);line-height:1.1;text-overflow:ellipsis;white-space:nowrap;text-align:center;text-transform:uppercase}
.club-card-stats{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--border);border-radius:11px;background:#090b0e99}
.club-card-stat{display:grid;gap:2px;padding:10px 12px}.club-card-stat+ .club-card-stat{border-left:1px solid var(--border)}.club-card-stat span{font-size:10px;text-transform:uppercase}.club-card-stat b{font-size:17px;font-variant-numeric:tabular-nums}
.club-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase}.club-card-footer svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8}
.ranking-intro{display:flex;align-items:end;justify-content:space-between;gap:25px;margin-bottom:18px}.ranking-intro h2{margin:0;font-size:30px}.ranking-intro>p{max-width:390px;margin:0;color:var(--muted);text-align:right}.ranking-club-grid{margin-top:0}
@media(max-width:900px){.club-grid{grid-template-columns:repeat(auto-fill,minmax(240px,1fr))}}
@media(max-width:560px){.club-grid{grid-template-columns:minmax(0,1fr);gap:14px}.club-card{width:100%;max-width:360px;justify-self:center;aspect-ratio:1/1;min-height:0;padding:18px}.club-avatar{width:100px!important}.ranking-intro{display:block}.ranking-intro>p{margin-top:6px;text-align:left}.club-card h3{font-size:22px}}

.owner-requests{margin-top:20px;border-color:#51450d}.owner-requests h2{margin:0}.request-list{display:grid;gap:10px;margin-top:18px}.request-card{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:20px;padding:14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.request-player{display:flex;align-items:center;gap:12px;min-width:0}.request-player:hover .player-name{color:var(--accent)}.request-stats{display:flex;gap:18px}.request-stats span{display:grid;min-width:55px}.request-stats small{color:var(--muted);font-size:9px;font-weight:800;text-transform:uppercase}.request-stats b{font-size:16px;font-variant-numeric:tabular-nums}.request-actions{display:flex;gap:8px}
@media(max-width:700px){.request-card{grid-template-columns:1fr auto}.request-actions{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr}.request-actions .btn{padding-inline:8px}}
@media(max-width:430px){.request-card{grid-template-columns:1fr}.request-stats{justify-content:space-between}.request-actions{grid-column:auto}}

.owner-members{margin-top:20px}.owner-members h2{margin:0}.member-manage-list{display:grid;gap:9px;margin-top:18px}.member-manage-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto;align-items:center;gap:18px;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--surface-2)}.member-elo{font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:600px){.member-manage-row{grid-template-columns:1fr auto}.member-manage-row .btn{grid-column:1/-1;width:100%}}

.season-history{margin-top:20px}.season-history h2{margin:0 0 20px}.season-history-row{display:grid;grid-template-columns:minmax(170px,1.25fr) minmax(105px,.65fr) minmax(180px,1fr) minmax(105px,.55fr);align-items:center;gap:18px;padding:15px 8px;border-top:1px solid var(--border)}.season-history-row small{display:block;margin-bottom:3px;color:var(--muted);font-size:9px;font-weight:850;letter-spacing:.5px;text-transform:uppercase}.season-history-row b{display:block;line-height:1.25}.season-history-name{min-width:0}.season-history-name b{overflow-wrap:anywhere}.season-history-value{font-variant-numeric:tabular-nums}.season-history-elo{text-align:right;color:var(--accent)}
@media(max-width:720px){.season-history-row{grid-template-columns:minmax(0,1fr) minmax(90px,auto)}.season-history-name{grid-column:1/-1}.season-history-elo{text-align:left}}
@media(max-width:420px){.season-history-row{grid-template-columns:1fr 1fr;gap:12px}.season-history-value:nth-child(3){grid-column:1/-1}}

.admin-tabs{margin-top:0}.admin-player-search{display:flex;align-items:center;justify-content:space-between;gap:24px}.admin-player-search h2,.admin-player-search p{margin:0}.admin-player-search .input{width:min(380px,100%);margin:0}.admin-player-list{display:grid;gap:14px;margin-top:18px}.admin-player-card{display:grid;gap:20px}.admin-player-head{display:flex;align-items:center;justify-content:space-between;gap:16px}.admin-player-elo{color:var(--accent);font-variant-numeric:tabular-nums}.admin-player-form{display:grid;grid-template-columns:1.2fr repeat(6,minmax(90px,1fr)) auto;align-items:end;gap:10px}.admin-player-form label{margin:0;font-size:12px}.admin-check{min-height:46px;display:flex!important;align-items:center;gap:9px;padding:10px 12px;border:1px solid var(--border);border-radius:9px;background:#0d0f12;color:var(--text)!important}.admin-check input{width:18px;height:18px;accent-color:var(--accent)}
@media(max-width:1050px){.admin-player-form{grid-template-columns:repeat(4,1fr)}.admin-player-form .btn{width:100%}}
@media(max-width:700px){.admin-player-search{display:grid}.admin-player-form{grid-template-columns:1fr 1fr}.admin-check{grid-column:1/-1}.admin-player-form .btn{grid-column:1/-1}.admin-player-head{align-items:flex-start}.admin-page .page-head h1{font-size:34px}}
@media(max-width:420px){.admin-player-form{grid-template-columns:1fr}.admin-check,.admin-player-form .btn{grid-column:auto}.admin-player-head{display:grid}.admin-player-elo{padding-left:59px}}
