:root {
  --bg: #0a0e1a;
  --bg2: #0d1220;
  --bg3: #111827;
  --panel: #131a2e;
  --panel2: #1a2340;
  --border: #1e2d4a;
  --border2: #263552;
  --accent: #f9a825;
  --accent2: #ffca28;
  --green: #00e676;
  --red: #ff1744;
  --blue: #00b0ff;
  --purple: #7c4dff;
  --text: #e8eaf0;
  --text2: #8fa0c0;
  --text3: #4a6080;
  --glow: rgba(249,168,37,0.15);
  --glow2: rgba(0,182,255,0.1);
  --map-line: rgba(0,182,255,0.08);
}

*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body { font-family: 'Exo 2', sans-serif; background: var(--bg); color: var(--text); min-height: 100vh; overflow-x: hidden; }

/* MAP BACKGROUND */
.map-bg { position: fixed; inset: 0; z-index: 0; overflow: hidden; pointer-events: none; }
.map-bg::before {
  content: '';
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% 50%, rgba(0,100,255,0.05) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 30%, rgba(249,168,37,0.04) 0%, transparent 60%),
    radial-gradient(ellipse 100% 80% at 50% 100%, rgba(0,20,60,0.8) 0%, transparent 50%);
}
.map-grid {
  position: absolute; inset: 0;
  background-image: linear-gradient(var(--map-line) 1px, transparent 1px), linear-gradient(90deg, var(--map-line) 1px, transparent 1px);
  background-size: 60px 60px;
  animation: gridDrift 30s linear infinite;
}
.map-dots { position: absolute; inset: 0; }
@keyframes gridDrift { 0%{transform:translate(0,0);} 100%{transform:translate(60px,60px);} }
.pin { position:absolute; width:8px; height:8px; border-radius:50%; background:var(--accent); box-shadow:0 0 12px var(--accent),0 0 24px rgba(249,168,37,0.3); animation:pinPulse 3s ease-in-out infinite; }
@keyframes pinPulse { 0%,100%{transform:scale(1);opacity:0.8;} 50%{transform:scale(1.4);opacity:1;} }
.line-path { position:absolute; background:linear-gradient(90deg,transparent,rgba(0,182,255,0.15),transparent); height:1px; animation:lineFade 6s ease-in-out infinite; }
@keyframes lineFade { 0%,100%{opacity:0;} 50%{opacity:1;} }

/* PAGES */
.page { display:none; position:relative; z-index:1; min-height:100vh; }
.page.active { display:flex; }

/* AUTH */
#page-auth { flex-direction:row; min-height:100vh; }
.auth-left { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:60px; position:relative; }
.auth-logo-big { font-family:'Rajdhani',sans-serif; font-size:64px; font-weight:700; letter-spacing:4px; line-height:1; color:#fff; text-shadow:0 0 40px rgba(249,168,37,0.5); }
.auth-logo-big span { color:var(--accent); }
.auth-tagline { font-family:'Space Mono',monospace; font-size:13px; color:var(--text2); letter-spacing:3px; text-transform:uppercase; margin-top:16px; }
.auth-deco { margin-top:48px; position:relative; width:280px; height:280px; }
.auth-deco-globe { width:100%; height:100%; border-radius:50%; border:1px solid var(--border2); position:relative; overflow:hidden; background:radial-gradient(ellipse at 30% 30%, rgba(0,100,200,0.2) 0%, rgba(0,20,60,0.8) 70%); animation:globeSpin 20s linear infinite; box-shadow:0 0 60px rgba(0,100,200,0.2),inset 0 0 60px rgba(0,0,0,0.5); }
.auth-deco-globe::before { content:''; position:absolute; inset:0; background: repeating-linear-gradient(0deg,transparent,transparent 18px,rgba(0,182,255,0.05) 18px,rgba(0,182,255,0.05) 19px), repeating-linear-gradient(90deg,transparent,transparent 18px,rgba(0,182,255,0.05) 18px,rgba(0,182,255,0.05) 19px); }
@keyframes globeSpin { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
.auth-deco-ring { position:absolute; inset:-20px; border-radius:50%; border:1px dashed rgba(249,168,37,0.2); animation:ringRotate 15s linear infinite reverse; }
.auth-deco-ring::before { content:''; position:absolute; width:12px; height:12px; background:var(--accent); border-radius:50%; top:20px; left:50%; transform:translateX(-50%); box-shadow:0 0 20px var(--accent); }
@keyframes ringRotate { from{transform:rotate(0deg);} to{transform:rotate(360deg);} }
.auth-right { width:480px; display:flex; align-items:center; justify-content:center; padding:40px; background:rgba(13,18,32,0.8); border-left:1px solid var(--border); backdrop-filter:blur(20px); }
.auth-panel { width:100%; max-width:380px; }
.auth-tabs { display:flex; border-bottom:1px solid var(--border); margin-bottom:32px; }
.auth-tab { flex:1; padding:12px 0; text-align:center; font-family:'Rajdhani',sans-serif; font-size:16px; font-weight:600; letter-spacing:2px; color:var(--text3); cursor:pointer; text-transform:uppercase; transition:all 0.3s; border-bottom:2px solid transparent; margin-bottom:-1px; }
.auth-tab.active { color:var(--accent); border-bottom-color:var(--accent); }
.auth-form { display:none; }
.auth-form.active { display:block; }
.auth-title { font-family:'Rajdhani',sans-serif; font-size:28px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:24px; color:#fff; }
.auth-error { color:var(--red); font-size:12px; margin-top:8px; font-family:'Space Mono',monospace; display:none; }

/* FIELDS */
.field { margin-bottom:16px; }
.field label { display:block; font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); margin-bottom:8px; font-family:'Space Mono',monospace; }
.field input { width:100%; background:var(--panel); border:1px solid var(--border); border-radius:6px; padding:12px 16px; color:var(--text); font-family:'Exo 2',sans-serif; font-size:15px; outline:none; transition:border-color 0.3s,box-shadow 0.3s; }
.field input:focus { border-color:var(--accent); box-shadow:0 0 0 2px rgba(249,168,37,0.1); }

/* BUTTONS */
.btn { display:inline-flex; align-items:center; justify-content:center; gap:8px; padding:13px 28px; border-radius:6px; font-family:'Rajdhani',sans-serif; font-size:15px; font-weight:700; letter-spacing:2px; text-transform:uppercase; cursor:pointer; border:none; transition:all 0.25s; position:relative; overflow:hidden; }
.btn::after { content:''; position:absolute; inset:0; background:rgba(255,255,255,0); transition:background 0.2s; }
.btn:hover::after { background:rgba(255,255,255,0.05); }
.btn:active { transform:scale(0.98); }
.btn-primary { background:var(--accent); color:#000; width:100%; margin-top:8px; }
.btn-primary:hover { background:var(--accent2); box-shadow:0 0 20px rgba(249,168,37,0.4); }
.btn-ghost { background:transparent; color:var(--text2); border:1px solid var(--border); }
.btn-ghost:hover { border-color:var(--text2); color:var(--text); }
.btn-danger { background:var(--red); color:#fff; }
.btn-success { background:var(--green); color:#000; }
.btn-blue { background:var(--blue); color:#000; }
.btn-sm { padding:7px 16px; font-size:12px; }

/* MAIN LAYOUT */
#page-main { flex-direction:column; min-height:100vh; }
.navbar { height:64px; background:rgba(10,14,26,0.95); border-bottom:1px solid var(--border); backdrop-filter:blur(20px); display:flex; align-items:center; padding:0 28px; gap:0; position:sticky; top:0; z-index:100; }
.nav-logo { font-family:'Rajdhani',sans-serif; font-size:22px; font-weight:700; letter-spacing:2px; color:#fff; cursor:pointer; transition:color 0.2s; display:flex; align-items:center; gap:8px; }
.nav-logo span { color:var(--accent); }
.nav-logo:hover { color:var(--accent); }
.nav-links { display:flex; align-items:center; gap:4px; margin-left:32px; }
.nav-link { padding:8px 20px; font-family:'Rajdhani',sans-serif; font-size:14px; font-weight:600; letter-spacing:2px; text-transform:uppercase; color:var(--text2); cursor:pointer; border-radius:6px; transition:all 0.2s; border:1px solid transparent; }
.nav-link:hover, .nav-link.active { color:var(--accent); background:rgba(249,168,37,0.08); border-color:rgba(249,168,37,0.2); }
.nav-right { margin-left:auto; display:flex; align-items:center; gap:12px; }
.notif-btn { position:relative; width:40px; height:40px; border-radius:8px; background:var(--panel); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; cursor:pointer; transition:all 0.2s; font-size:16px; }
.notif-btn:hover { border-color:var(--accent); }
.notif-badge { position:absolute; top:6px; right:6px; width:8px; height:8px; background:var(--red); border-radius:50%; border:1px solid var(--bg); display:none; animation:badgePulse 2s ease-in-out infinite; }
@keyframes badgePulse { 0%,100%{transform:scale(1);} 50%{transform:scale(1.3);} }
.notif-badge.show { display:block; }
.user-avatar { width:36px; height:36px; border-radius:8px; cursor:pointer; border:2px solid var(--border); transition:border-color 0.2s; display:flex; align-items:center; justify-content:center; background:var(--panel); font-weight:700; font-size:14px; }
.user-avatar:hover { border-color:var(--accent); }
.user-name-nav { font-family:'Rajdhani',sans-serif; font-size:14px; font-weight:600; letter-spacing:1px; color:var(--text2); cursor:pointer; }
.main-content { flex:1; padding:32px 28px; max-width:1400px; width:100%; margin:0 auto; }

/* SECTIONS */
.section { display:none; }
.section.active { display:block; animation:fadeUp 0.4s ease; }
@keyframes fadeUp { from{opacity:0;transform:translateY(16px);} to{opacity:1;transform:translateY(0);} }
.section-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:32px; }
.section-title { font-family:'Rajdhani',sans-serif; font-size:32px; font-weight:700; letter-spacing:3px; text-transform:uppercase; color:#fff; }
.section-title span { color:var(--accent); }

/* PROFILE */
.profile-hero { background:linear-gradient(135deg,var(--panel) 0%,var(--panel2) 100%); border:1px solid var(--border); border-radius:16px; padding:40px; display:flex; gap:40px; align-items:center; margin-bottom:32px; position:relative; overflow:hidden; }
.profile-hero::before { content:''; position:absolute; top:0; right:0; width:300px; height:100%; background:linear-gradient(90deg,transparent,rgba(249,168,37,0.03)); }
.profile-avatar-big { width:100px; height:100px; border-radius:16px; background:var(--panel2); border:2px solid var(--border2); display:flex; align-items:center; justify-content:center; font-size:40px; font-weight:700; flex-shrink:0; }
.profile-info h2 { font-family:'Rajdhani',sans-serif; font-size:36px; font-weight:700; letter-spacing:2px; }
.profile-role { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--accent); margin-top:4px; }
.profile-stats { display:flex; gap:32px; margin-top:20px; }
.stat-block { text-align:center; }
.stat-num { font-family:'Rajdhani',sans-serif; font-size:28px; font-weight:700; color:var(--accent); }
.stat-lbl { font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); font-family:'Space Mono',monospace; }
.badge-list { display:flex; gap:8px; flex-wrap:wrap; margin-top:8px; }
.badge { padding:4px 12px; border-radius:20px; font-size:11px; font-family:'Space Mono',monospace; letter-spacing:1px; }
.badge-admin { background:rgba(124,77,255,0.2); color:var(--purple); border:1px solid rgba(124,77,255,0.3); }
.badge-player { background:rgba(0,230,118,0.15); color:var(--green); border:1px solid rgba(0,230,118,0.3); }
.badge-ban { background:rgba(255,23,68,0.15); color:var(--red); border:1px solid rgba(255,23,68,0.3); }

/* TOURNAMENTS */
.tournaments-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:20px; }
.tournament-card { background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; cursor:pointer; transition:all 0.3s; position:relative; }
.tournament-card:hover { border-color:var(--accent); transform:translateY(-3px); box-shadow:0 12px 40px rgba(0,0,0,0.4),0 0 0 1px rgba(249,168,37,0.1); }
.tournament-card-map { height:140px; background:linear-gradient(135deg,#0a1628,#0d2040); position:relative; overflow:hidden; }
.tournament-card-map::after { content:''; position:absolute; inset:0; background: repeating-linear-gradient(0deg,transparent,transparent 14px,rgba(0,182,255,0.06) 14px,rgba(0,182,255,0.06) 15px), repeating-linear-gradient(90deg,transparent,transparent 14px,rgba(0,182,255,0.06) 14px,rgba(0,182,255,0.06) 15px); }
.tournament-card-region { position:absolute; font-family:'Rajdhani',sans-serif; font-size:48px; font-weight:700; color:rgba(255,255,255,0.05); top:50%; left:50%; transform:translate(-50%,-50%); letter-spacing:6px; z-index:1; }
.tournament-card-icon { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); font-size:36px; z-index:2; }
.tournament-status { position:absolute; top:12px; right:12px; padding:4px 10px; border-radius:20px; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:1px; text-transform:uppercase; z-index:3; }
.status-upcoming { background:rgba(0,182,255,0.2); color:var(--blue); border:1px solid rgba(0,182,255,0.3); }
.status-active { background:rgba(0,230,118,0.2); color:var(--green); border:1px solid rgba(0,230,118,0.3); animation:activePulse 2s ease-in-out infinite; }
.status-finished { background:rgba(255,255,255,0.1); color:var(--text3); border:1px solid var(--border); }
@keyframes activePulse { 0%,100%{opacity:1;} 50%{opacity:0.6;} }
.tournament-card-body { padding:20px; }
.tournament-card-title { font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; letter-spacing:1px; margin-bottom:8px; }
.tournament-meta { display:flex; gap:16px; font-size:12px; color:var(--text3); font-family:'Space Mono',monospace; }
.tournament-card-footer { padding:12px 20px; border-top:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; font-size:12px; color:var(--text3); }
.teams-count { display:flex; align-items:center; gap:6px; font-family:'Space Mono',monospace; }

/* TOURNAMENT DETAIL */
.tournament-detail { display:none; }
.tournament-detail.active { display:block; animation:fadeUp 0.3s ease; }
.back-btn { display:inline-flex; align-items:center; gap:8px; color:var(--text2); cursor:pointer; font-family:'Space Mono',monospace; font-size:12px; letter-spacing:1px; margin-bottom:24px; transition:color 0.2s; }
.back-btn:hover { color:var(--accent); }
.tournament-info-header { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:32px; margin-bottom:24px; display:flex; gap:32px; align-items:flex-start; }
.t-info-main { flex:1; }
.t-info-title { font-family:'Rajdhani',sans-serif; font-size:36px; font-weight:700; letter-spacing:2px; margin-bottom:12px; }
.t-info-desc { color:var(--text2); line-height:1.6; margin-bottom:20px; }
.t-info-stats { display:flex; gap:24px; flex-wrap:wrap; }
.t-stat { background:var(--panel2); border:1px solid var(--border); border-radius:8px; padding:12px 20px; text-align:center; }
.t-stat .num { font-family:'Rajdhani',sans-serif; font-size:24px; font-weight:700; color:var(--accent); }
.t-stat .lbl { font-size:11px; color:var(--text3); font-family:'Space Mono',monospace; letter-spacing:1px; }
.t-actions { display:flex; flex-direction:column; gap:12px; min-width:220px; }
.bracket-section { background:var(--panel); border:1px solid var(--border); border-radius:12px; padding:28px; margin-bottom:24px; }
.bracket-title { font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:24px; color:var(--accent); }
.bracket-teams-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(200px,1fr)); gap:12px; }
.bracket-team { background:var(--panel2); border:1px solid var(--border); border-radius:8px; padding:14px; display:flex; align-items:center; gap:10px; transition:border-color 0.2s; }
.bracket-team:hover { border-color:var(--border2); }
.bracket-team-logo { width:36px; height:36px; border-radius:6px; display:flex; align-items:center; justify-content:center; font-size:18px; background:var(--panel); flex-shrink:0; }
.bracket-team-info .name { font-weight:600; font-size:14px; }
.bracket-team-info .tag { font-family:'Space Mono',monospace; font-size:10px; color:var(--text3); }
.bracket-team.pending { opacity:0.5; border-style:dashed; }
.seed-num { font-family:'Space Mono',monospace; font-size:10px; color:var(--text3); margin-left:auto; }

/* TEAMS */
.teams-layout { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.teams-panel { background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.teams-panel-header { padding:20px 24px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.teams-panel-title { font-family:'Rajdhani',sans-serif; font-size:18px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.teams-panel-body { padding:16px; }
.team-item { background:var(--panel2); border:1px solid var(--border); border-radius:8px; padding:14px 16px; display:flex; align-items:center; gap:12px; margin-bottom:10px; cursor:pointer; transition:all 0.2s; }
.team-item:hover { border-color:var(--accent); background:rgba(249,168,37,0.04); }
.team-logo { width:44px; height:44px; border-radius:8px; display:flex; align-items:center; justify-content:center; font-size:22px; background:var(--panel); border:1px solid var(--border); flex-shrink:0; }
.team-info { flex:1; min-width:0; }
.team-name { font-weight:600; font-size:15px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.team-tag { font-family:'Space Mono',monospace; font-size:10px; color:var(--accent); letter-spacing:1px; }
.team-meta { font-size:12px; color:var(--text3); }
.team-kd { font-family:'Rajdhani',sans-serif; font-size:18px; font-weight:700; margin-left:auto; }

/* MODALS */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,0.7); backdrop-filter:blur(6px); z-index:200; display:none; align-items:center; justify-content:center; }
.modal-overlay.open { display:flex; animation:overlayIn 0.2s ease; }
@keyframes overlayIn { from{opacity:0;} to{opacity:1;} }
.modal { background:var(--panel); border:1px solid var(--border2); border-radius:16px; padding:32px; max-width:540px; width:90%; max-height:90vh; overflow-y:auto; position:relative; animation:modalIn 0.3s ease; box-shadow:0 40px 80px rgba(0,0,0,0.6); }
.modal.wide { max-width:720px; }
@keyframes modalIn { from{opacity:0;transform:scale(0.95) translateY(10px);} to{opacity:1;transform:scale(1) translateY(0);} }
.modal-close { position:absolute; top:16px; right:16px; width:32px; height:32px; border-radius:6px; background:var(--panel2); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:16px; color:var(--text2); transition:all 0.2s; }
.modal-close:hover { color:var(--red); border-color:var(--red); }
.modal-title { font-family:'Rajdhani',sans-serif; font-size:24px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:24px; color:#fff; }
.modal-section { margin-bottom:20px; padding-bottom:20px; border-bottom:1px solid var(--border); }
.modal-section:last-child { border-bottom:none; margin-bottom:0; padding-bottom:0; }
.modal-label { font-family:'Space Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); margin-bottom:8px; }
.select-field { width:100%; background:var(--panel2); border:1px solid var(--border); border-radius:6px; padding:11px 16px; color:var(--text); font-family:'Exo 2',sans-serif; font-size:14px; outline:none; appearance:none; cursor:pointer; transition:border-color 0.3s; }
.select-field:focus { border-color:var(--accent); }
.textarea-field { width:100%; background:var(--panel2); border:1px solid var(--border); border-radius:6px; padding:11px 16px; color:var(--text); font-family:'Exo 2',sans-serif; font-size:14px; outline:none; resize:vertical; min-height:80px; transition:border-color 0.3s; }
.textarea-field:focus { border-color:var(--accent); }
.emoji-picker { display:flex; flex-wrap:wrap; gap:8px; margin-top:8px; }
.emoji-option { width:40px; height:40px; border-radius:6px; background:var(--panel2); border:1px solid var(--border); display:flex; align-items:center; justify-content:center; font-size:20px; cursor:pointer; transition:all 0.2s; }
.emoji-option:hover, .emoji-option.selected { border-color:var(--accent); background:rgba(249,168,37,0.1); }
.modal-btns { display:flex; gap:12px; margin-top:24px; }
.modal-btns .btn { flex:1; }
.member-list { display:flex; flex-direction:column; gap:8px; }
.member-item { background:var(--panel2); border:1px solid var(--border); border-radius:6px; padding:10px 14px; display:flex; align-items:center; gap:10px; font-size:14px; }
.member-item .m-avatar { width:28px; height:28px; border-radius:4px; display:flex; align-items:center; justify-content:center; font-size:14px; background:var(--panel); font-weight:700; }
.member-item .m-name { flex:1; font-weight:600; }
.member-item .m-role { font-size:10px; color:var(--text3); font-family:'Space Mono',monospace; }
.remove-member { cursor:pointer; color:var(--text3); transition:color 0.2s; margin-left:auto; font-size:18px; line-height:1; }
.remove-member:hover { color:var(--red); }
.invite-row { display:flex; gap:8px; margin-top:8px; }
.invite-row input { flex:1; background:var(--panel2); border:1px solid var(--border); border-radius:6px; padding:10px 14px; color:var(--text); font-family:'Exo 2',sans-serif; font-size:14px; outline:none; }

/* NOTIFICATIONS */
.notif-panel { position:fixed; top:72px; right:20px; width:360px; background:var(--panel); border:1px solid var(--border2); border-radius:12px; overflow:hidden; z-index:150; display:none; box-shadow:0 20px 60px rgba(0,0,0,0.5); }
.notif-panel.open { display:block; animation:panelSlide 0.2s ease; }
@keyframes panelSlide { from{opacity:0;transform:translateY(-8px);} to{opacity:1;transform:translateY(0);} }
.notif-panel-header { padding:16px 20px; border-bottom:1px solid var(--border); display:flex; align-items:center; justify-content:space-between; }
.notif-panel-title { font-family:'Rajdhani',sans-serif; font-size:16px; font-weight:700; letter-spacing:2px; text-transform:uppercase; }
.notif-clear { font-size:11px; color:var(--text3); cursor:pointer; font-family:'Space Mono',monospace; transition:color 0.2s; }
.notif-clear:hover { color:var(--accent); }
.notif-list { max-height:400px; overflow-y:auto; }
.notif-item { padding:14px 20px; border-bottom:1px solid var(--border); transition:background 0.2s; }
.notif-item:hover { background:rgba(255,255,255,0.02); }
.notif-item:last-child { border-bottom:none; }
.notif-item.unread { border-left:3px solid var(--accent); }
.notif-text { font-size:13px; line-height:1.5; color:var(--text2); }
.notif-time { font-size:10px; color:var(--text3); font-family:'Space Mono',monospace; margin-top:4px; }
.notif-action { margin-top:8px; }
.notif-empty { padding:32px; text-align:center; color:var(--text3); font-size:13px; font-family:'Space Mono',monospace; }

/* ADMIN */
.admin-layout { display:grid; grid-template-columns:220px 1fr; gap:24px; }
.admin-sidebar { background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; height:fit-content; position:sticky; top:90px; }
.admin-sidebar-title { padding:16px 20px; border-bottom:1px solid var(--border); font-family:'Rajdhani',sans-serif; font-size:14px; font-weight:700; letter-spacing:2px; text-transform:uppercase; color:var(--purple); }
.admin-nav-item { padding:12px 20px; font-size:13px; cursor:pointer; transition:all 0.2s; border-left:3px solid transparent; display:flex; align-items:center; gap:10px; color:var(--text2); }
.admin-nav-item:hover { color:var(--text); background:rgba(255,255,255,0.03); }
.admin-nav-item.active { color:var(--accent); border-left-color:var(--accent); background:rgba(249,168,37,0.04); }
.admin-content { min-height:400px; }
.admin-sub { display:none; }
.admin-sub.active { display:block; animation:fadeUp 0.3s ease; }
.admin-table-wrap { background:var(--panel); border:1px solid var(--border); border-radius:12px; overflow:hidden; }
.admin-table { width:100%; border-collapse:collapse; }
.admin-table th { padding:12px 20px; text-align:left; font-family:'Space Mono',monospace; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--text3); border-bottom:1px solid var(--border); background:var(--panel2); }
.admin-table td { padding:12px 20px; border-bottom:1px solid var(--border); font-size:13px; color:var(--text2); }
.admin-table tr:last-child td { border-bottom:none; }
.admin-table tr:hover td { background:rgba(255,255,255,0.01); }
.admin-actions { display:flex; gap:8px; }
.admin-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.tag-banned { color:var(--red); font-family:'Space Mono',monospace; font-size:10px; }
.tag-active { color:var(--green); font-family:'Space Mono',monospace; font-size:10px; }

/* MISC */
.link-card { background:var(--panel2); border:1px solid var(--border); border-radius:8px; padding:14px 16px; font-family:'Space Mono',monospace; font-size:12px; color:var(--blue); word-break:break-all; margin-top:8px; }
.link-card a { color:inherit; text-decoration:underline; }
.divider { border:none; border-top:1px solid var(--border); margin:20px 0; }
.chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.chip { background:var(--panel2); border:1px solid var(--border); border-radius:20px; padding:4px 12px; font-size:12px; color:var(--text2); display:flex; align-items:center; gap:6px; }
.chip .remove { cursor:pointer; color:var(--text3); transition:color 0.2s; }
.chip .remove:hover { color:var(--red); }
.empty-state { text-align:center; padding:60px 20px; color:var(--text3); }
.empty-state .icon { font-size:48px; margin-bottom:16px; }
.empty-state h3 { font-family:'Rajdhani',sans-serif; font-size:20px; font-weight:700; letter-spacing:2px; text-transform:uppercase; margin-bottom:8px; color:var(--text2); }
.empty-state p { font-family:'Space Mono',monospace; font-size:11px; letter-spacing:1px; }
.toast-container { position:fixed; bottom:24px; right:24px; z-index:300; display:flex; flex-direction:column; gap:8px; }
.toast { background:var(--panel2); border:1px solid var(--border2); border-radius:8px; padding:12px 20px; font-size:13px; max-width:320px; animation:toastIn 0.3s ease; display:flex; align-items:center; gap:10px; box-shadow:0 8px 24px rgba(0,0,0,0.4); }
.toast.success { border-color:rgba(0,230,118,0.3); }
.toast.error { border-color:rgba(255,23,68,0.3); }
.toast.info { border-color:rgba(0,176,255,0.3); }
@keyframes toastIn { from{opacity:0;transform:translateX(20px);} to{opacity:1;transform:translateX(0);} }
.toast-icon { font-size:16px; }

/* SCROLLBAR */
::-webkit-scrollbar { width:6px; height:6px; }
::-webkit-scrollbar-track { background:var(--panel2); }
::-webkit-scrollbar-thumb { background:var(--border2); border-radius:3px; }
::-webkit-scrollbar-thumb:hover { background:var(--text3); }

/* RESPONSIVE */
@media (max-width:900px) {
  #page-auth { flex-direction:column; }
  .auth-left { padding:40px 24px; }
  .auth-right { width:100%; }
  .teams-layout { grid-template-columns:1fr; }
  .admin-layout { grid-template-columns:1fr; }
  .tournament-info-header { flex-direction:column; }
}

/* ═══════════════════════════════════════════════
   ОБНОВЛЕНИЯ v2
═══════════════════════════════════════════════ */

/* п.8 — Подложка для пустых состояний */
.empty-state {
  text-align:center; padding:60px 20px;
  background: linear-gradient(135deg, var(--panel) 0%, var(--panel2) 100%);
  border:1px solid var(--border); border-radius:16px;
  position:relative; overflow:hidden;
}
.empty-state::before {
  content:'';position:absolute;inset:0;
  background:repeating-linear-gradient(0deg,transparent,transparent 18px,rgba(0,182,255,0.03) 18px,rgba(0,182,255,0.03) 19px),
    repeating-linear-gradient(90deg,transparent,transparent 18px,rgba(0,182,255,0.03) 18px,rgba(0,182,255,0.03) 19px);
}
.empty-state .icon { font-size:56px;margin-bottom:16px;position:relative; }
.empty-state h3 { font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;color:var(--text2);position:relative; }
.empty-state p { font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;position:relative; }

/* п.11 — Toast с таймлайном */
.toast { position:relative; overflow:hidden; }
.toast-progress {
  position:absolute; bottom:0; left:0; height:3px;
  background:var(--accent); border-radius:0 0 8px 8px;
  animation: toastProgress 3.5s linear forwards;
}
@keyframes toastProgress { from{width:100%;} to{width:0%;} }
.toast.success .toast-progress { background:var(--green); }
.toast.error .toast-progress { background:var(--red); }
.toast.info .toast-progress { background:var(--blue); }

/* п.12 — Players grid */
.players-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px; }
.player-card {
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:20px;cursor:pointer;transition:all 0.25s;display:flex;align-items:center;gap:14px;
}
.player-card:hover { border-color:var(--accent);transform:translateY(-2px); }
.player-card-avatar {
  width:48px;height:48px;border-radius:10px;background:var(--panel2);
  border:2px solid var(--border);display:flex;align-items:center;justify-content:center;
  font-size:20px;font-weight:700;flex-shrink:0;
}
.player-card-info { flex:1;min-width:0; }
.player-card-nick { font-weight:700;font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.player-card-role { font-size:11px;font-family:'Space Mono',monospace;color:var(--text3);margin-top:2px; }
.online-dot { width:8px;height:8px;border-radius:50%;display:inline-block;margin-right:4px; }
.online-dot.online { background:var(--green);box-shadow:0 0 6px var(--green); }
.online-dot.offline { background:var(--text3); }
.player-status-text { font-size:11px;font-family:'Space Mono',monospace; }
.status-online { color:var(--green); }
.status-offline { color:var(--text3); }

/* Search input */
.search-input {
  background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:8px 16px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:14px;
  outline:none;width:240px;transition:border-color 0.3s;
}
.search-input:focus { border-color:var(--accent); }

/* п.2 — Tournament image */
.tournament-image {
  width:100%;height:180px;object-fit:cover;border-radius:12px 12px 0 0;display:block;
}
.tournament-card-map.has-image { height:180px;padding:0; }

/* Shadow ban badge */
.tag-shadow { color:var(--purple);font-family:'Space Mono',monospace;font-size:10px; }

/* п.13 — Bracket */
.bracket-wrapper { overflow-x:auto;padding-bottom:16px; }
.bracket-rounds { display:flex;gap:32px;align-items:flex-start; }
.bracket-round { display:flex;flex-direction:column;gap:0;min-width:180px; }
.bracket-round-title { font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);text-align:center;margin-bottom:16px; }
.bracket-match {
  background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  margin-bottom:16px;overflow:hidden;transition:border-color 0.2s;
}
.bracket-match.active { border-color:rgba(0,230,118,0.3); }
.bracket-match.finished { border-color:var(--border); }
.bracket-slot {
  padding:10px 12px;display:flex;align-items:center;gap:8px;font-size:13px;
  border-bottom:1px solid var(--border);transition:background 0.2s;cursor:default;
}
.bracket-slot:last-child { border-bottom:none; }
.bracket-slot.winner { background:rgba(0,230,118,0.08);color:var(--green);font-weight:700; }
.bracket-slot.loser { opacity:0.45; }
.bracket-slot.tbd { color:var(--text3);font-style:italic; }
.bracket-slot-logo { width:22px;height:22px;border-radius:4px;display:flex;align-items:center;justify-content:center;font-size:12px;background:var(--panel);flex-shrink:0; }
.bracket-slot-name { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.bracket-win-btn { font-size:10px;padding:3px 8px;font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:1px; }
.bracket-connector { width:32px;height:1px;background:var(--border2);flex-shrink:0; }

/* Mobile hamburger */
.hamburger { display:none;background:none;border:none;color:var(--text);font-size:24px;cursor:pointer;padding:8px;margin-left:8px; }
.mobile-nav { display:none;position:fixed;top:64px;left:0;right:0;background:rgba(10,14,26,0.98);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:99;padding:8px 0; }
.mobile-nav.open { display:block;animation:fadeUp 0.2s ease; }
.mobile-nav-item { padding:14px 24px;font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:600;letter-spacing:1px;cursor:pointer;color:var(--text2);transition:all 0.2s;border-left:3px solid transparent; }
.mobile-nav-item:hover { color:var(--accent);border-left-color:var(--accent);background:rgba(249,168,37,0.05); }

/* ── RESPONSIVE ─────────────────────────────────────────── */
@media (max-width: 768px) {
  .hamburger { display:block; }
  .nav-links { display:none; }
  .nav-right .btn, .nav-right .user-name-nav { display:none; }
  .user-avatar { display:flex; }
  .main-content { padding:16px 12px; }
  .section-title { font-size:24px; }
  .teams-layout { grid-template-columns:1fr; }
  .admin-layout { grid-template-columns:1fr; }
  .admin-sidebar { position:static;margin-bottom:16px; }
  .tournament-info-header { flex-direction:column; }
  .t-info-stats { flex-wrap:wrap;gap:12px; }
  .t-stat { min-width:80px; }
  .profile-hero { flex-direction:column;text-align:center;padding:24px 16px; }
  .profile-stats { justify-content:center; }
  .tournaments-grid { grid-template-columns:1fr; }
  .players-grid { grid-template-columns:1fr; }
  .modal { padding:20px 16px;width:95%; }
  .modal.wide { max-width:98%; }
  .auth-left { display:none; }
  .auth-right { width:100%;padding:24px 16px; }
  .auth-panel { max-width:100%; }
  .bracket-rounds { gap:16px; }
  .bracket-round { min-width:140px; }
  .bracket-slot { padding:8px 10px;font-size:12px; }
  .notif-panel { width:calc(100vw - 20px);right:10px; }
  .search-input { width:100%;margin-top:8px; }
  .section-header { flex-wrap:wrap;gap:8px; }
  .admin-table th, .admin-table td { padding:8px 10px;font-size:11px; }
  /* Hide less important columns on mobile */
  .admin-table th:nth-child(2), .admin-table td:nth-child(2) { display:none; }
}

@media (max-width: 480px) {
  .navbar { padding:0 12px; }
  .nav-logo { font-size:18px; }
  .nav-logo .nav-pin { width:16px;height:16px; }
  .notif-btn { width:36px;height:36px; }
  .toast-container { bottom:12px;right:12px;left:12px; }
  .toast { max-width:100%; }
  .teams-layout { gap:12px; }
}

/* ═══════════════════════════════════════════════
   v3 — User menu, Support, Bracket, Mobile
═══════════════════════════════════════════════ */

/* п.1 — User dropdown menu */
.user-menu-wrap { position:relative; }
.user-menu-trigger { display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:8px;transition:background 0.2s; }
.user-menu-trigger:hover { background:rgba(255,255,255,0.05); }
.user-menu-arrow { font-size:10px;color:var(--text3);transition:transform 0.2s; }
.user-menu-wrap.open .user-menu-arrow { transform:rotate(180deg); }
.user-dropdown {
  position:absolute;top:calc(100% + 8px);right:0;min-width:180px;
  background:var(--panel);border:1px solid var(--border2);border-radius:12px;
  box-shadow:0 16px 48px rgba(0,0,0,0.5);z-index:200;overflow:hidden;
  opacity:0;pointer-events:none;transform:translateY(-8px);
  transition:all 0.18s ease;
}
.user-menu-wrap.open .user-dropdown { opacity:1;pointer-events:all;transform:translateY(0); }
.user-dropdown-item { padding:12px 18px;cursor:pointer;font-size:14px;font-family:'Exo 2',sans-serif;display:flex;align-items:center;gap:8px;transition:background 0.15s;color:var(--text2); }
.user-dropdown-item:hover { background:rgba(249,168,37,0.08);color:var(--text); }
.user-dropdown-item.danger { color:var(--red); }
.user-dropdown-item.danger:hover { background:rgba(255,23,68,0.08); }
.user-dropdown-divider { height:1px;background:var(--border);margin:4px 0; }

/* п.3 — Support modal */
.support-ticket-list {
  width:220px;flex-shrink:0;border-right:1px solid var(--border);overflow-y:auto;
  background:var(--bg);
}
.support-ticket-item {
  padding:14px 16px;cursor:pointer;border-bottom:1px solid var(--border);transition:background 0.15s;
}
.support-ticket-item:hover { background:rgba(249,168,37,0.05); }
.support-ticket-item.active { background:rgba(249,168,37,0.08);border-left:3px solid var(--accent); }
.support-ticket-subject { font-weight:600;font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.support-ticket-meta { font-size:11px;color:var(--text3);margin-top:3px;font-family:'Space Mono',monospace; }
.support-ticket-new-btn { padding:14px 16px;border-bottom:1px solid var(--border);cursor:pointer;color:var(--accent);font-size:13px;display:flex;align-items:center;gap:6px;transition:background 0.15s; }
.support-ticket-new-btn:hover { background:rgba(249,168,37,0.08); }
.support-chat-area { flex:1;display:flex;flex-direction:column;overflow:hidden; }
.support-chat-empty { flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--text3);text-align:center;padding:32px; }
.support-chat-messages { flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px; }
.support-chat-input { padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:10px;align-items:flex-end; }
.support-chat-input textarea { flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;resize:none;outline:none;transition:border-color 0.2s; }
.support-chat-input textarea:focus { border-color:var(--accent); }
.support-msg { max-width:75%;border-radius:12px;padding:10px 14px;font-size:13px;line-height:1.5; }
.support-msg.mine { align-self:flex-end;background:rgba(249,168,37,0.15);border:1px solid rgba(249,168,37,0.2); }
.support-msg.theirs { align-self:flex-start;background:var(--panel2);border:1px solid var(--border); }
.support-msg.admin-msg { background:rgba(124,77,255,0.12);border:1px solid rgba(124,77,255,0.2); }
.support-msg-nick { font-size:10px;color:var(--text3);margin-bottom:4px;font-family:'Space Mono',monospace; }
.support-msg-time { font-size:10px;color:var(--text3);text-align:right;margin-top:4px; }
.ticket-status-badge { font-size:10px;font-family:'Space Mono',monospace;padding:2px 6px;border-radius:4px; }
.ticket-status-open { color:var(--green);border:1px solid rgba(0,230,118,0.3); }
.ticket-status-in_progress { color:var(--accent);border:1px solid rgba(249,168,37,0.3); }
.ticket-status-closed { color:var(--text3);border:1px solid var(--border); }

/* Admin tickets layout */
.admin-tickets-layout { display:grid;grid-template-columns:260px 1fr;height:calc(100vh - 240px);gap:0;border:1px solid var(--border);border-radius:12px;overflow:hidden; }
.admin-tickets-list { background:var(--bg);border-right:1px solid var(--border);overflow-y:auto; }
.admin-ticket-chat { display:flex;flex-direction:column;overflow:hidden;background:var(--panel); }
.ticket-chat-header { padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
.ticket-chat-messages { flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px; }
.ticket-chat-input { padding:12px 16px;border-top:1px solid var(--border);display:flex;gap:8px;align-items:flex-end; }
.ticket-chat-input textarea { flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;resize:none;outline:none; }
.ticket-chat-input textarea:focus { border-color:var(--accent); }
.ticket-chat-empty { display:flex;align-items:center;justify-content:center;height:100%;color:var(--text3);font-family:'Space Mono',monospace;font-size:12px; }

/* п.4 BRACKET — Olympic system */
.bracket-wrapper { overflow-x:auto;padding:8px 0 16px; }
.bracket-rounds { display:flex;gap:0;align-items:flex-start;width:max-content; }
.bracket-round { display:flex;flex-direction:column;justify-content:space-around; }
.bracket-round-header { font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);text-align:center;padding:0 12px;margin-bottom:8px;white-space:nowrap; }
.bracket-matches-col { display:flex;flex-direction:column; }
.bracket-match-wrap { display:flex;align-items:center; }
.bracket-match-box {
  width:160px;background:var(--panel2);border:1px solid var(--border);border-radius:8px;overflow:hidden;
  transition:border-color 0.2s;flex-shrink:0;
}
.bracket-match-box.active { border-color:rgba(0,230,118,0.35); }
.bracket-match-box.finished { border-color:var(--border); }
.bracket-match-box.pending { opacity:0.55; }
.bracket-slot { padding:8px 10px;display:flex;align-items:center;gap:7px;font-size:12px;border-bottom:1px solid var(--border);min-height:36px; }
.bracket-slot:last-child { border-bottom:none; }
.bracket-slot.winner { background:rgba(0,230,118,0.09);color:var(--green);font-weight:700; }
.bracket-slot.loser { opacity:0.38; }
.bracket-slot.tbd { color:var(--text3);font-style:italic; }
.bracket-slot-logo { font-size:13px;flex-shrink:0;width:20px;text-align:center; }
.bracket-slot-name { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.bracket-win-btn { font-size:9px;padding:2px 7px;font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:1px;flex-shrink:0; }

/* Connectors between rounds */
.bracket-connector-col { display:flex;flex-direction:column;justify-content:space-around;width:32px;flex-shrink:0; }
.bracket-connector-pair { display:flex;flex-direction:column;align-items:center;flex:1; }
.bracket-connector-top { flex:1;border-right:1px solid var(--border2);border-bottom:1px solid var(--border2);border-radius:0 0 4px 0; }
.bracket-connector-mid { width:32px;height:1px;background:var(--border2); }
.bracket-connector-bot { flex:1;border-right:1px solid var(--border2);border-top:1px solid var(--border2);border-radius:0 4px 0 0; }

/* Empty state with bg */
.empty-state { text-align:center;padding:60px 20px;background:linear-gradient(135deg,var(--panel) 0%,var(--panel2) 100%);border:1px solid var(--border);border-radius:16px;position:relative;overflow:hidden; }
.empty-state::before { content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 18px,rgba(0,182,255,0.03) 18px,rgba(0,182,255,0.03) 19px),repeating-linear-gradient(90deg,transparent,transparent 18px,rgba(0,182,255,0.03) 18px,rgba(0,182,255,0.03) 19px); }
.empty-state .icon { font-size:56px;margin-bottom:16px;position:relative; }
.empty-state h3 { font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;color:var(--text2);position:relative; }
.empty-state p { font-family:'Space Mono',monospace;font-size:11px;letter-spacing:1px;position:relative; }

/* Toast progress */
.toast { position:relative;overflow:hidden; }
.toast-progress { position:absolute;bottom:0;left:0;height:3px;background:var(--accent);border-radius:0 0 8px 8px;animation:toastProgress 3.5s linear forwards; }
@keyframes toastProgress { from{width:100%;}to{width:0%;} }
.toast.success .toast-progress{background:var(--green);}
.toast.error .toast-progress{background:var(--red);}
.toast.info .toast-progress{background:var(--blue);}

/* Players */
.players-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px; }
.player-card { background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:16px;cursor:pointer;transition:all 0.25s;display:flex;align-items:center;gap:12px; }
.player-card:hover { border-color:var(--accent);transform:translateY(-2px); }
.player-card-avatar { width:44px;height:44px;border-radius:10px;background:var(--panel2);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;flex-shrink:0; }
.player-card-nick { font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.player-card-role { font-size:11px;font-family:'Space Mono',monospace;color:var(--text3);margin-top:2px; }
.online-dot { width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px; }
.online-dot.online { background:var(--green);box-shadow:0 0 5px var(--green); }
.online-dot.offline { background:var(--text3); }
.status-online{color:var(--green);font-size:11px;font-family:'Space Mono',monospace;}
.status-offline{color:var(--text3);font-size:11px;font-family:'Space Mono',monospace;}
.tag-shadow{color:var(--purple);font-family:'Space Mono',monospace;font-size:10px;}

/* Search */
.search-input { background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;outline:none;width:200px;transition:border-color 0.3s; }
.search-input:focus{border-color:var(--accent);}

/* Tournament image */
.tournament-image { width:100%;height:180px;object-fit:cover;border-radius:12px 12px 0 0;display:block; }

/* Hamburger / mobile */
.hamburger { display:none;background:none;border:none;color:var(--text);font-size:22px;cursor:pointer;padding:8px;margin-left:4px; }
.mobile-nav { display:none;position:fixed;top:64px;left:0;right:0;background:rgba(10,14,26,0.98);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:99;padding:6px 0; }
.mobile-nav.open { display:block; }
.mobile-nav-item { padding:13px 24px;font-family:'Rajdhani',sans-serif;font-size:15px;font-weight:600;letter-spacing:1px;cursor:pointer;color:var(--text2);transition:all 0.15s;border-left:3px solid transparent; }
.mobile-nav-item:hover { color:var(--accent);border-left-color:var(--accent);background:rgba(249,168,37,0.05); }

/* ── RESPONSIVE ── */
@media(max-width:768px){
  .hamburger{display:block;}
  .nav-links{display:none;}
  .nav-right .user-name-nav{display:none;}
  .main-content{padding:14px 10px;}
  .section-title{font-size:22px;}
  .teams-layout{grid-template-columns:1fr;}
  .admin-layout{grid-template-columns:1fr;}
  .admin-sidebar{position:static;margin-bottom:12px;}
  .tournament-info-header{flex-direction:column;}
  .t-info-stats{flex-wrap:wrap;gap:10px;}
  .profile-hero{flex-direction:column;text-align:center;padding:20px 12px;}
  .profile-stats{justify-content:center;}
  .tournaments-grid{grid-template-columns:1fr;}
  .players-grid{grid-template-columns:1fr;}
  .modal{padding:18px 14px;width:96%;}
  .modal.wide{max-width:98%;}
  .auth-left{display:none;}
  .auth-right{width:100%;padding:20px 14px;}
  .bracket-match-box{width:130px;}
  .notif-panel{width:calc(100vw - 16px);right:8px;}
  .search-input{width:140px;}
  .admin-tickets-layout{grid-template-columns:1fr;height:auto;}
  .support-ticket-list{width:100%;border-right:none;border-bottom:1px solid var(--border);max-height:180px;}
  .support-chat-area{min-height:300px;}
  .admin-table th:nth-child(2),.admin-table td:nth-child(2){display:none;}
}
@media(max-width:480px){
  .navbar{padding:0 10px;}
  .nav-logo{font-size:16px;}
  .toast-container{bottom:10px;right:10px;left:10px;}
  .toast{max-width:100%;}
  .bracket-match-box{width:110px;}
  .bracket-slot{font-size:11px;padding:6px 8px;}
}

/* ══════════════════════════════════════
   v3 — User Menu, Support, Bracket
══════════════════════════════════════ */

/* User dropdown menu (п.1) */
.user-menu-wrap { position:relative; }
.user-menu-trigger {
  display:flex;align-items:center;gap:8px;cursor:pointer;
  padding:4px 10px;border-radius:8px;transition:background 0.2s;
}
.user-menu-trigger:hover { background:rgba(255,255,255,0.06); }
.user-menu-caret { font-size:10px;color:var(--text3);transition:transform 0.2s; }
.user-menu-wrap.open .user-menu-caret { transform:rotate(180deg); }
.user-dropdown {
  position:absolute;top:calc(100% + 8px);right:0;min-width:180px;
  background:rgba(14,20,38,0.98);backdrop-filter:blur(20px);
  border:1px solid var(--border);border-radius:12px;
  box-shadow:0 16px 48px rgba(0,0,0,0.5);z-index:200;
  opacity:0;transform:translateY(-8px) scale(0.97);pointer-events:none;
  transition:all 0.2s ease;overflow:hidden;
}
.user-menu-wrap.open .user-dropdown { opacity:1;transform:translateY(0) scale(1);pointer-events:all; }
.user-dropdown-item {
  padding:11px 18px;font-size:14px;font-family:'Exo 2',sans-serif;font-weight:500;
  cursor:pointer;color:var(--text2);transition:all 0.15s;display:flex;align-items:center;gap:8px;
}
.user-dropdown-item:hover { background:rgba(249,168,37,0.08);color:var(--text); }
.user-dropdown-item.logout { color:#ff4d4d; }
.user-dropdown-item.logout:hover { background:rgba(255,77,77,0.08);color:#ff6b6b; }
.user-dropdown-divider { height:1px;background:var(--border);margin:4px 0; }

/* Support layout (п.3) */
.support-layout {
  display:grid;grid-template-columns:320px 1fr;gap:20px;height:calc(100vh - 180px);min-height:400px;
}
.support-tickets-panel, .support-chat-panel {
  background:var(--panel);border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;
}
.support-panel-header {
  padding:16px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;background:var(--panel2);flex-shrink:0;
}
.support-panel-title { font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;letter-spacing:1px;text-transform:uppercase; }
.ticket-item {
  padding:14px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:background 0.15s;
}
.ticket-item:hover,.ticket-item.active { background:rgba(249,168,37,0.06); }
.ticket-item.active { border-left:3px solid var(--accent); }
.ticket-item-subject { font-weight:600;font-size:14px;margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.ticket-item-meta { font-size:11px;color:var(--text3);font-family:'Space Mono',monospace;display:flex;gap:8px;align-items:center; }
.ticket-status { padding:2px 8px;border-radius:4px;font-size:10px;font-weight:700;letter-spacing:1px; }
.ticket-status.open { background:rgba(0,230,118,0.15);color:var(--green); }
.ticket-status.in_progress { background:rgba(249,168,37,0.15);color:var(--accent); }
.ticket-status.closed { background:rgba(255,255,255,0.06);color:var(--text3); }

/* Chat */
.support-chat-empty { display:flex;align-items:center;justify-content:center;height:100%;color:var(--text3);font-family:'Space Mono',monospace;font-size:13px;text-align:center;padding:24px; }
.chat-header { padding:14px 20px;border-bottom:1px solid var(--border);background:var(--panel2);flex-shrink:0;display:flex;align-items:center;justify-content:space-between; }
.chat-header-title { font-weight:700;font-size:15px; }
.chat-header-meta { font-size:11px;color:var(--text3);margin-top:2px; }
.chat-messages { flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px; }
.chat-message { max-width:75%;padding:10px 14px;border-radius:10px;font-size:13px;line-height:1.5; }
.chat-message.mine { align-self:flex-end;background:rgba(249,168,37,0.15);border:1px solid rgba(249,168,37,0.2); }
.chat-message.theirs { align-self:flex-start;background:var(--panel2);border:1px solid var(--border); }
.chat-message.admin-msg { align-self:flex-start;background:rgba(155,89,182,0.12);border:1px solid rgba(155,89,182,0.25); }
.chat-msg-nick { font-size:10px;font-family:'Space Mono',monospace;color:var(--text3);margin-bottom:4px; }
.chat-msg-nick.admin-nick { color:var(--purple); }
.chat-msg-time { font-size:10px;color:var(--text3);margin-top:4px;text-align:right; }
.chat-input-area { padding:12px 14px;border-top:1px solid var(--border);display:flex;gap:8px;flex-shrink:0;align-items:flex-end;background:var(--panel2); }
.chat-input { flex:1;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;outline:none;resize:none;transition:border-color 0.2s;min-height:60px;max-height:120px; }
.chat-input-area .btn { flex-shrink:0;width:36px;height:36px;padding:0;display:flex;align-items:center;justify-content:center;font-size:16px;border-radius:8px; }
.chat-input:focus { border-color:var(--accent); }

/* Admin tickets layout */
.admin-tickets-layout { display:grid;grid-template-columns:300px 1fr;gap:16px;height:calc(100vh - 200px);min-height:400px; }
.admin-tickets-list-panel { background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column; }
.ticket-item-user { font-size:11px;color:var(--purple);font-family:'Space Mono',monospace; }

/* Bracket v3 (п.4 / п.9) */
.bracket-wrapper { overflow-x:auto;padding-bottom:20px; }
.bracket-rounds { display:flex;align-items:stretch;gap:0; }
.bracket-round { display:flex;flex-direction:column;justify-content:space-around;min-width:200px;flex:1;position:relative; }
.bracket-round:not(:last-child)::after {
  content:'';position:absolute;right:-1px;top:0;bottom:0;width:1px;background:var(--border);z-index:0;
}
.bracket-round-header { text-align:center;padding:10px;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);border-bottom:1px solid var(--border);background:var(--panel2); }
.bracket-round-body { display:flex;flex-direction:column;justify-content:space-around;flex:1;padding:12px 16px;gap:8px; }
.bracket-match-wrap { display:flex;align-items:center;flex:1; }
.bracket-match-box {
  flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;overflow:hidden;
  transition:border-color 0.2s;position:relative;
}
.bracket-match-box.active { border-color:rgba(0,230,118,0.35); }
.bracket-match-box.finished { border-color:var(--border);opacity:0.9; }
.bracket-connector-right {
  width:20px;flex-shrink:0;height:100%;position:relative;display:flex;align-items:center;
}
.bracket-connector-right::before {
  content:'';position:absolute;left:0;top:50%;width:20px;height:1px;background:var(--border2);
}
.bracket-slot {
  padding:8px 12px;display:flex;align-items:center;gap:8px;font-size:13px;
  border-bottom:1px solid var(--border);min-height:36px;
}
.bracket-slot:last-child { border-bottom:none; }
.bracket-slot.winner { background:rgba(0,230,118,0.08);color:var(--green);font-weight:700; }
.bracket-slot.loser  { opacity:0.4; }
.bracket-slot.tbd    { color:var(--text3);font-style:italic; }
.bracket-slot-logo { width:20px;height:20px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0; }
.bracket-slot-name { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px; }
.bracket-win-btn { font-size:10px;padding:2px 7px;font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:1px;flex-shrink:0; }
.bracket-section { margin-bottom:24px; }
.bracket-title { font-family:'Space Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;color:var(--text3);margin-bottom:12px; }

/* Responsive support */
@media(max-width:768px){
  .support-layout { grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto; }
  .support-chat-panel { height:60vh;min-height:300px; }
  .admin-tickets-layout { grid-template-columns:1fr;grid-template-rows:auto 1fr; }
  .bracket-round { min-width:140px; }
  .bracket-slot { font-size:11px;padding:6px 8px; }
  .user-name-nav { display:none; }
}

/* ══════════════════════════════════════
   v3 ADDITIONS
══════════════════════════════════════ */

/* ── User dropdown (п.1,2) ────────────── */
.user-menu-wrap { position:relative; }
.user-menu-trigger {
  display:flex;align-items:center;gap:8px;cursor:pointer;
  padding:5px 10px;border-radius:8px;transition:background 0.2s;user-select:none;
}
.user-menu-trigger:hover { background:rgba(255,255,255,0.06); }
.user-menu-caret { font-size:10px;color:var(--text3);transition:transform 0.2s;line-height:1; }
.user-menu-wrap.open .user-menu-caret { transform:rotate(180deg); }
.user-dropdown {
  position:absolute;top:calc(100% + 10px);right:0;min-width:190px;
  background:rgba(12,17,33,0.98);backdrop-filter:blur(24px);
  border:1px solid var(--border);border-radius:12px;
  box-shadow:0 20px 60px rgba(0,0,0,0.6);z-index:300;
  opacity:0;transform:translateY(-10px) scale(0.96);pointer-events:none;
  transition:all 0.18s cubic-bezier(.4,0,.2,1);overflow:hidden;
}
.user-menu-wrap.open .user-dropdown {
  opacity:1;transform:translateY(0) scale(1);pointer-events:all;
}
.user-dropdown-header {
  padding:14px 18px 12px;border-bottom:1px solid var(--border);background:rgba(255,255,255,0.02);
}
.user-dropdown-nick { font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;letter-spacing:1px; }
.user-dropdown-role { font-size:10px;color:var(--text3);font-family:'Space Mono',monospace;margin-top:1px; }
.user-dropdown-item {
  padding:11px 18px;font-size:14px;font-family:'Exo 2',sans-serif;font-weight:500;
  cursor:pointer;color:var(--text2);transition:all 0.15s;display:flex;align-items:center;gap:10px;
}
.user-dropdown-item:hover { background:rgba(249,168,37,0.07);color:var(--text);padding-left:22px; }
.user-dropdown-item.danger { color:#ff5f5f; }
.user-dropdown-item.danger:hover { background:rgba(255,77,77,0.07);color:#ff7070; }
.user-dropdown-divider { height:1px;background:var(--border);margin:4px 0; }

/* ── Support / Tickets (п.3) ──────────── */
.support-layout {
  display:grid;grid-template-columns:300px 1fr;gap:16px;
  height:calc(100vh - 180px);min-height:420px;
}
.support-tickets-panel,.support-chat-panel {
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  overflow:hidden;display:flex;flex-direction:column;
}
.support-panel-header {
  padding:14px 18px;border-bottom:1px solid var(--border);
  display:flex;align-items:center;justify-content:space-between;
  background:var(--panel2);flex-shrink:0;
}
.support-panel-title { font-family:'Rajdhani',sans-serif;font-size:15px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase; }
.ticket-item {
  padding:12px 18px;border-bottom:1px solid var(--border);cursor:pointer;transition:all 0.15s;
  border-left:3px solid transparent;
}
.ticket-item:hover { background:rgba(249,168,37,0.04); }
.ticket-item.active { background:rgba(249,168,37,0.06);border-left-color:var(--accent); }
.ticket-item-user { font-size:10px;color:var(--purple);font-family:'Space Mono',monospace;margin-bottom:3px; }
.ticket-item-subject { font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:4px; }
.ticket-item-meta { font-size:10px;color:var(--text3);font-family:'Space Mono',monospace;display:flex;gap:8px;flex-wrap:wrap;align-items:center; }
.ticket-status { padding:2px 8px;border-radius:4px;font-size:9px;font-weight:700;letter-spacing:1px;text-transform:uppercase; }
.ticket-status.open        { background:rgba(0,230,118,0.12);color:var(--green); }
.ticket-status.in_progress { background:rgba(249,168,37,0.12);color:var(--accent); }
.ticket-status.closed      { background:rgba(255,255,255,0.05);color:var(--text3); }
.support-chat-empty {
  display:flex;align-items:center;justify-content:center;height:100%;
  color:var(--text3);font-family:'Space Mono',monospace;font-size:12px;text-align:center;padding:24px;
}
.chat-header {
  padding:14px 18px;border-bottom:1px solid var(--border);background:var(--panel2);
  flex-shrink:0;display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
}
.chat-header-title { font-weight:700;font-size:14px;margin-bottom:3px; }
.chat-header-meta  { font-size:11px;color:var(--text3); }
.chat-messages {
  flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;
}
.chat-message { max-width:76%;padding:10px 14px;border-radius:12px;font-size:13px;line-height:1.55; }
.chat-message.mine      { align-self:flex-end;background:rgba(249,168,37,0.13);border:1px solid rgba(249,168,37,0.2); }
.chat-message.theirs    { align-self:flex-start;background:var(--panel2);border:1px solid var(--border); }
.chat-message.admin-msg { align-self:flex-start;background:rgba(155,89,182,0.1);border:1px solid rgba(155,89,182,0.22); }
.chat-msg-nick      { font-size:10px;font-family:'Space Mono',monospace;color:var(--text3);margin-bottom:5px; }
.chat-msg-nick.admin-nick { color:var(--purple); }
.chat-msg-time      { font-size:10px;color:var(--text3);margin-top:6px;text-align:right; }
.chat-input-area    { padding:12px 14px;border-top:1px solid var(--border);display:flex;gap:8px;flex-shrink:0;align-items:flex-end;background:var(--panel2); }
.chat-input {
  flex:1;background:var(--panel);border:1px solid var(--border);border-radius:8px;
  padding:9px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;
  outline:none;resize:none;transition:border-color 0.2s;min-height:60px;max-height:120px;
}
.chat-input:focus { border-color:var(--accent); }

/* Admin tickets layout */
.admin-tickets-layout {
  display:grid;grid-template-columns:280px 1fr;gap:14px;
  height:calc(100vh - 210px);min-height:400px;
}
.admin-tickets-list-panel {
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  overflow:hidden;display:flex;flex-direction:column;
}
.admin-tickets-list-panel .support-panel-header { background:var(--panel2); }

/* ── Bracket олимпийская (п.4,9) ──────── */
.bracket-scroll { overflow-x:auto;padding-bottom:16px;-webkit-overflow-scrolling:touch; }
.bracket-outer  { display:flex;align-items:flex-start;gap:0;min-width:max-content; }
.bracket-col    { display:flex;flex-direction:column;min-width:190px; }
.bracket-col:last-child { border-right:none; }
.bracket-col-title {
  text-align:center;padding:8px 6px;
  font-family:'Space Mono',monospace;font-size:9px;letter-spacing:2px;
  text-transform:uppercase;color:var(--text3);
  border-bottom:1px solid var(--border);background:var(--panel2);
  flex-shrink:0;border-right:1px solid var(--border2);
}
.bracket-col:last-child .bracket-col-title { border-right:none; }
.bracket-col-body { display:flex;flex-direction:column;padding:12px 0 12px 10px;flex:1;gap:0; }
.bracket-col:last-child .bracket-col-body { padding-right:10px; }
.bracket-gap { flex-shrink:0; }
.bracket-match-wrap { display:flex;align-items:center;gap:0; }
.connector { width:30px;flex-shrink:0;height:1px;background:var(--border2); }
.connector.green { background:var(--green);box-shadow:0 0 6px rgba(0,230,118,0.5); }
.bracket-match-box {
  background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  overflow:hidden;flex-shrink:0;
  transition:border-color 0.2s;
}
.bracket-match-box.active   { border-color:rgba(0,230,118,0.35); }
.bracket-match-box.finished { opacity:0.88; }
.bracket-match-box.pending  { opacity:0.65; }
.bracket-slot {
  padding:8px 10px;display:flex;align-items:center;gap:7px;
  font-size:12px;border-bottom:1px solid var(--border);min-height:36px;
}
.bracket-slot:last-child { border-bottom:none; }
.bracket-slot.winner { background:rgba(0,230,118,0.08);color:var(--green);font-weight:700; }
.bracket-slot.loser  { opacity:0.38; }
.bracket-slot.tbd    { color:var(--text3);font-style:italic; }
.bracket-slot-logo { width:20px;height:20px;border-radius:3px;display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0; }
.bracket-slot-name { flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.bracket-trophy    { font-size:10px;flex-shrink:0; }
.bracket-win-btn   {
  flex-shrink:0;background:rgba(0,230,118,0.15);border:1px solid var(--green);
  color:var(--green);border-radius:5px;padding:2px 8px;font-size:10px;
  font-family:'Rajdhani',sans-serif;font-weight:700;letter-spacing:1px;cursor:pointer;
  transition:background 0.2s;white-space:nowrap;
}
.bracket-win-btn:hover { background:rgba(0,230,118,0.3); }

/* ── Toast progress bar ───────────────── */
.toast { position:relative;overflow:hidden; }
.toast-progress {
  position:absolute;bottom:0;left:0;height:3px;
  background:var(--accent);border-radius:0 0 8px 8px;
  animation:toastProg 3.5s linear forwards;
}
.toast.success .toast-progress { background:var(--green); }
.toast.error   .toast-progress { background:var(--red); }
@keyframes toastProg { from{width:100%} to{width:0%} }

/* ── Players grid ─────────────────────── */
.players-grid { display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:14px; }
.player-card { background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:18px;cursor:pointer;transition:all 0.22s;display:flex;align-items:center;gap:14px; }
.player-card:hover { border-color:var(--accent);transform:translateY(-2px);box-shadow:0 8px 24px rgba(0,0,0,0.3); }
.player-card-avatar { width:46px;height:46px;border-radius:10px;background:var(--panel2);border:2px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:700;flex-shrink:0; }
.player-card-info { flex:1;min-width:0; }
.player-card-nick { font-weight:700;font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.player-card-role { font-size:11px;font-family:'Space Mono',monospace;color:var(--text3);margin-top:2px; }
.player-status-text { font-size:11px;font-family:'Space Mono',monospace;margin-top:4px; }
.online-dot { width:7px;height:7px;border-radius:50%;display:inline-block;margin-right:4px;vertical-align:middle; }
.online-dot.online  { background:var(--green);box-shadow:0 0 6px var(--green); }
.online-dot.offline { background:var(--text3); }
.status-online  { color:var(--green); }
.status-offline { color:var(--text3); }

/* ── Search input ─────────────────────── */
.search-input { background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:8px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:13px;outline:none;min-width:200px;transition:border-color 0.2s; }
.search-input:focus { border-color:var(--accent); }

/* ── Shadow / ban badges ──────────────── */
.tag-shadow { color:var(--purple);font-family:'Space Mono',monospace;font-size:9px;vertical-align:middle; }
.tag-active { color:var(--green);font-size:10px;font-family:'Space Mono',monospace; }

/* ── Empty state ──────────────────────── */
.empty-state { text-align:center;padding:48px 20px;background:linear-gradient(135deg,var(--panel) 0%,var(--panel2) 100%);border:1px solid var(--border);border-radius:16px;position:relative;overflow:hidden; }
.empty-state::before { content:'';position:absolute;inset:0;background:repeating-linear-gradient(0deg,transparent,transparent 20px,rgba(0,182,255,0.025) 20px,rgba(0,182,255,0.025) 21px),repeating-linear-gradient(90deg,transparent,transparent 20px,rgba(0,182,255,0.025) 20px,rgba(0,182,255,0.025) 21px); }
.empty-state .icon { font-size:52px;margin-bottom:14px;position:relative; }
.empty-state h3 { font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;letter-spacing:2px;text-transform:uppercase;margin-bottom:8px;color:var(--text2);position:relative; }
.empty-state p  { font-family:'Space Mono',monospace;font-size:11px;position:relative;color:var(--text3); }

/* ── Mobile hamburger ─────────────────── */
.hamburger { display:none;background:none;border:none;color:var(--text);font-size:24px;cursor:pointer;padding:8px;margin-left:4px; }
.mobile-nav { display:none;position:fixed;top:64px;left:0;right:0;background:rgba(10,14,26,0.98);backdrop-filter:blur(20px);border-bottom:1px solid var(--border);z-index:99;padding:6px 0; }
.mobile-nav.open { display:block; }
.mobile-nav-item { padding:13px 24px;font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:600;letter-spacing:1px;cursor:pointer;color:var(--text2);transition:all 0.2s;border-left:3px solid transparent; }
.mobile-nav-item:hover { color:var(--accent);border-left-color:var(--accent);background:rgba(249,168,37,0.05); }

/* ── RESPONSIVE ───────────────────────── */
@media (max-width:900px) {
  .support-layout { grid-template-columns:260px 1fr; }
  .admin-tickets-layout { grid-template-columns:240px 1fr; }
}
@media (max-width:768px) {
  .hamburger { display:block; }
  .nav-links  { display:none; }
  .user-name-nav { display:none; }
  .main-content { padding:14px 10px; }
  .teams-layout { grid-template-columns:1fr; }
  .admin-layout { grid-template-columns:1fr; }
  .admin-sidebar { position:static;margin-bottom:12px; }
  .support-layout { grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto; }
  .support-chat-panel { height:60vh;min-height:320px; }
  .admin-tickets-layout { grid-template-columns:1fr;height:auto; }
  .tournaments-grid { grid-template-columns:1fr; }
  .players-grid { grid-template-columns:1fr; }
  .modal { padding:20px 14px;width:96%; }
  .modal.wide { max-width:97%; }
  .notif-panel { width:calc(100vw - 20px);right:10px; }
  .auth-left { display:none; }
  .auth-right { width:100%;padding:20px 14px; }
  .auth-panel { max-width:100%; }
  .bracket-col { min-width:140px; }
  .bracket-slot { font-size:11px;padding:6px 8px; }
  .t-info-stats { flex-wrap:wrap;gap:10px; }
  .section-header { flex-wrap:wrap;gap:8px; }
  .search-input { min-width:0;width:100%; }
  .admin-table th:nth-child(2),.admin-table td:nth-child(2) { display:none; }
}
@media (max-width:480px) {
  .navbar { padding:0 10px; }
  .nav-logo { font-size:18px; }
  .notif-btn { width:34px;height:34px; }
  .toast-container { bottom:10px;right:10px;left:10px; }
  .toast { max-width:100%; }
}

/* ── Profile settings gear ───────────────────────────── */
.profile-hero { position:relative; }
.profile-settings-btn {
  position:absolute;top:0;right:0;
  width:38px;height:38px;border-radius:50%;
  background:var(--panel2);border:1px solid var(--border);
  color:var(--text2);font-size:18px;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:all 0.2s;
}
.profile-settings-btn:hover { background:var(--panel3,var(--border));color:var(--accent);transform:rotate(45deg); }

/* ── Popup notifications (п.5) ───────────────────────── */
#popupNotifContainer {
  position:fixed;top:72px;right:20px;z-index:9999;
  display:flex;flex-direction:column;gap:10px;
  pointer-events:none;
}
.popup-notif {
  background:var(--panel2,#1a2035);border:1px solid var(--border);border-radius:12px;
  width:320px;overflow:hidden;pointer-events:all;cursor:pointer;
  opacity:0;transform:translateX(30px);transition:opacity 0.3s,transform 0.3s;
  box-shadow:0 8px 32px rgba(0,0,0,0.4);
}
.popup-notif.visible { opacity:1;transform:translateX(0); }
.popup-notif-body {
  display:flex;align-items:flex-start;gap:12px;padding:14px 16px;
}
.popup-notif-icon { font-size:20px;flex-shrink:0;margin-top:2px; }
.popup-notif-text { flex:1;min-width:0; }
.popup-notif-title { font-family:'Rajdhani',sans-serif;font-weight:700;font-size:14px;letter-spacing:0.5px;color:var(--text); }
.popup-notif-msg   { font-size:12px;color:var(--text2);margin-top:3px;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical; }
.popup-notif-close { flex-shrink:0;width:20px;height:20px;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--text3);cursor:pointer;border-radius:4px;transition:background 0.15s; }
.popup-notif-close:hover { background:var(--border);color:var(--text); }
.popup-notif-bar { height:3px;background:rgba(255,255,255,0.08);overflow:hidden; }
.popup-notif-progress { height:100%;width:100%;background:var(--accent);transition:width 5s linear; }

/* ══════════════════════════════════════════════════════════
   GeoTournament v5 — New styles
   ══════════════════════════════════════════════════════════ */

/* п.4 — Profile settings button (bigger, with label) */
.profile-settings-btn {
  position:absolute;top:0;right:0;
  display:flex;align-items:center;gap:8px;
  background:var(--panel2);border:1px solid var(--border2);
  border-radius:10px;padding:8px 14px;cursor:pointer;
  color:var(--text2);transition:all 0.2s;
  font-family:'Rajdhani',sans-serif;font-weight:600;
  white-space:nowrap;
}
.profile-settings-btn:hover { background:rgba(249,168,37,0.12);border-color:var(--accent);color:var(--accent); }
.profile-settings-btn:hover .settings-icon { transform:rotate(60deg); }
.settings-icon { font-size:18px;transition:transform 0.3s;display:inline-block; }
.settings-label { font-size:13px;letter-spacing:0.5px; }

/* п.8 — About section */
.profile-about-section {
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:20px 24px;margin:20px 0 0;
}
.profile-section-title {
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:2px;
  color:var(--text3);text-transform:uppercase;margin-bottom:12px;
}
.profile-section-subtitle {
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;
  color:var(--text3);text-transform:uppercase;margin:16px 0 10px;
}
.profile-about-content {
  display:flex;flex-wrap:wrap;gap:10px;align-items:flex-start;
  color:var(--text2);font-size:13px;line-height:1.6;
}
.profile-about-content span {
  background:var(--panel2);border:1px solid var(--border);border-radius:6px;
  padding:4px 10px;font-size:13px;
}
.about-text {
  width:100%;color:var(--text2);font-size:13px;line-height:1.7;
  border-top:1px solid var(--border);padding-top:10px;margin-top:4px;
}
.profile-links-row { display:flex;gap:8px;flex-wrap:wrap;margin-top:12px; }

/* Social buttons п.7 */
.social-btn {
  display:inline-flex;align-items:center;justify-content:center;
  width:40px;height:40px;border-radius:8px;text-decoration:none;
  font-family:'Space Mono',monospace;font-size:12px;font-weight:700;
  transition:all 0.2s;border:1px solid var(--border);
}
.social-btn.geo { background:rgba(0,182,255,0.1);border-color:rgba(0,182,255,0.3);color:var(--accent); }
.social-btn.geo:hover { background:rgba(0,182,255,0.2);transform:translateY(-2px); }
.social-btn.vk  { background:rgba(74,118,168,0.15);border-color:rgba(74,118,168,0.4);color:#5181b8; }
.social-btn.vk:hover  { background:rgba(74,118,168,0.3);transform:translateY(-2px); }
.social-btn.tg  { background:rgba(0,136,204,0.15);border-color:rgba(0,136,204,0.4);color:#0088cc; }
.social-btn.tg:hover  { background:rgba(0,136,204,0.3);transform:translateY(-2px); }
.social-btn img { width:20px;height:20px;object-fit:contain; }

/* п.9 — Statistics section */
.profile-stats-section {
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  padding:20px 24px;margin-top:12px;
}
.profile-stat-cards { display:flex;gap:12px;flex-wrap:wrap;margin-bottom:4px; }
.profile-stat-card {
  background:var(--panel2);border:1px solid var(--border);border-radius:10px;
  padding:14px 24px;text-align:center;min-width:90px;
}
.profile-stat-card .stat-num { font-family:'Rajdhani',sans-serif;font-size:28px;font-weight:700;color:var(--accent); }
.profile-stat-card .stat-lbl { font-family:'Space Mono',monospace;font-size:10px;color:var(--text3);margin-top:2px; }

/* Team card in profile */
.profile-team-card {
  display:flex;align-items:center;gap:14px;
  background:var(--panel2);border:1px solid var(--border);border-radius:10px;
  padding:12px 16px;cursor:pointer;transition:all 0.2s;max-width:360px;
}
.profile-team-card:hover { border-color:var(--accent);background:rgba(249,168,37,0.06); }
.profile-team-logo { font-size:32px;flex-shrink:0; }
.profile-team-info { flex:1;min-width:0; }
.profile-team-name { font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;letter-spacing:1px; }
.profile-team-meta { font-family:'Space Mono',monospace;font-size:10px;color:var(--text3);margin-top:2px; }

/* п.6 — Settings rows with checkboxes */
.settings-grid { display:grid;gap:12px;margin-bottom:16px; }
.settings-row { display:flex;align-items:flex-end;gap:12px; }
.settings-row.full { display:block; }
.settings-field { flex:1;min-width:0; }
.settings-field label { display:block;font-family:'Space Mono',monospace;font-size:10px;letter-spacing:1px;color:var(--text3);text-transform:uppercase;margin-bottom:6px; }
.settings-field input, .settings-field select, .settings-field textarea {
  width:100%;box-sizing:border-box;
  background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  padding:10px 14px;color:var(--text);font-family:'Exo 2',sans-serif;font-size:14px;outline:none;
  transition:border-color 0.2s;
}
.settings-field input:focus, .settings-field select:focus, .settings-field textarea:focus { border-color:var(--accent); }
.pub-checkbox {
  display:flex;align-items:center;gap:6px;
  padding-bottom:10px;flex-shrink:0;cursor:pointer;
  font-family:'Space Mono',monospace;font-size:11px;color:var(--text3);
  white-space:nowrap;
}
.pub-checkbox input[type=checkbox] { accent-color:var(--green);width:15px;height:15px;cursor:pointer; }

/* п.10 — Player card about */
.player-card-about { font-size:11px;color:var(--text3);margin-top:3px; }
.player-about-block { display:flex;flex-direction:column;gap:8px; }
.about-item { font-size:13px;color:var(--text2); }

/* Bracket fix п.17 — center alignment */
.bracket-outer { display:flex;align-items:flex-start;gap:0;min-height:200px; }
.bracket-col { display:flex;flex-direction:column;flex-shrink:0; }
.bracket-col-body { display:flex;flex-direction:column;justify-content:flex-start; }
.bracket-col-title {
  font-family:'Space Mono',monospace;font-size:10px;letter-spacing:2px;
  text-transform:uppercase;color:var(--text3);padding:6px 8px 10px;text-align:center;
  border-bottom:1px solid var(--border);background:rgba(0,0,0,0.2);
}
.bracket-match-wrap { display:flex;align-items:center; }
.bracket-match-box {
  background:var(--panel2);border:1px solid var(--border);
  border-radius:8px;overflow:hidden;min-width:180px;
}
.bracket-match-box.finished { border-color:rgba(0,230,118,0.3); }
.bracket-slot {
  display:flex;align-items:center;gap:8px;
  padding:8px 12px;font-size:13px;border-bottom:1px solid var(--border);
  transition:background 0.15s;
}
.bracket-slot:last-child { border-bottom:none; }
.bracket-slot.winner { background:rgba(0,230,118,0.12);color:var(--green); }
.bracket-slot.loser  { opacity:0.38; }
.bracket-slot.tbd    { color:var(--text3);font-style:italic; }
.bracket-slot-logo   { font-size:18px;flex-shrink:0; }
.bracket-slot-name   { flex:1;font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
.bracket-trophy      { font-size:14px; }
.bracket-win-btn {
  background:none;border:1px solid var(--green);color:var(--green);
  border-radius:5px;padding:3px 8px;font-size:11px;cursor:pointer;
  font-family:'Space Mono',monospace;transition:all 0.2s;flex-shrink:0;
}
.bracket-win-btn:hover { background:var(--green);color:#000; }
.connector { width:28px;height:2px;background:var(--border2);flex-shrink:0; }
.connector.green { background:var(--green);box-shadow:0 0 8px rgba(0,230,118,0.5); }

/* Link notification popup action btn */
.popup-notif-action-btn {
  display:inline-block;background:rgba(249,168,37,0.15);
  border:1px solid rgba(249,168,37,0.4);border-radius:6px;
  padding:4px 10px;font-size:11px;color:var(--accent);
  text-decoration:none;font-family:'Space Mono',monospace;
  transition:background 0.2s;
}
.popup-notif-action-btn:hover { background:rgba(249,168,37,0.3); }

@media (max-width:768px) {
  .settings-row { flex-direction:column;align-items:stretch; }
  .pub-checkbox { padding-bottom:0; }
  .profile-settings-btn { position:static;margin-top:12px;align-self:flex-start; }
  .profile-hero { flex-wrap:wrap; }
  .profile-stat-cards { gap:8px; }
}

/* ══════════════════════════════════════════════════════════
   GeoTournament v6
   ══════════════════════════════════════════════════════════ */

/* п.5 — Idle screen */
#page-idle {
  position:fixed;inset:0;background:rgba(5,9,18,0.97);
  display:none;align-items:center;justify-content:center;
  z-index:9999;cursor:pointer;backdrop-filter:blur(6px);
  opacity:0;transition:opacity 0.3s;
}
.idle-screen { display:flex;align-items:center;justify-content:center;width:100%;height:100%; }
.idle-logo-wrap {
  text-align:center;position:relative;
  animation:idleFadeIn 1s ease forwards;
}
@keyframes idleFadeIn {
  from { opacity:0;transform:translateY(30px); }
  to   { opacity:1;transform:translateY(0); }
}
.idle-glow {
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
  width:400px;height:200px;
  background:radial-gradient(ellipse at center, rgba(249,168,37,0.18) 0%, transparent 70%);
  border-radius:50%;
  animation:idlePulse 3s ease-in-out infinite;
  pointer-events:none;
}
@keyframes idlePulse {
  0%,100% { transform:translate(-50%,-50%) scale(1); opacity:0.7; }
  50%      { transform:translate(-50%,-50%) scale(1.15); opacity:1; }
}
.idle-logo {
  font-family:'Rajdhani',sans-serif;font-weight:700;font-size:clamp(40px,8vw,80px);
  letter-spacing:6px;color:var(--text);position:relative;
  text-shadow:0 0 40px rgba(249,168,37,0.4);
}
.idle-logo span { color:var(--accent); }
.idle-tagline {
  font-family:'Space Mono',monospace;font-size:13px;letter-spacing:3px;
  color:var(--text3);margin-top:12px;
  animation:idleFadeIn 1.3s ease forwards;
}
.idle-hint {
  font-family:'Space Mono',monospace;font-size:11px;color:var(--text3);
  margin-top:32px;opacity:0;
  animation:idleHintBlink 2s ease 1.5s infinite;
}
@keyframes idleHintBlink {
  0%,100% { opacity:0.3; }
  50%      { opacity:0.8; }
}

/* п.8 — Bracket SVG connectors */
.bracket-outer { display:flex;align-items:flex-start;gap:0; }
.bracket-match-wrap { display:flex;align-items:center; }
.bracket-connector { display:block; }
.bracket-vbar-col { display:flex;flex-direction:column;align-items:center;width:4px; }
.bracket-vbar { display:block; }

/* п.1 — Remove old settings btn from hero, clean up */
.profile-settings-btn { display:none !important; }

/* btn-blue */
.btn-blue {
  background:rgba(0,136,204,0.15);border:1px solid rgba(0,136,204,0.4);
  color:#0af;padding:8px 18px;border-radius:8px;cursor:pointer;
  font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:600;
  transition:all 0.2s;
}
.btn-blue:hover { background:rgba(0,136,204,0.3); }
.btn-blue.btn-sm { padding:5px 12px;font-size:12px;border-radius:6px; }


/* ══════════════════════════════════════════════════════════
   GeoTournament v7
   ══════════════════════════════════════════════════════════ */

/* ── п.8 — New bracket classes ────────────────────────────── */
/* ── п.1 Bracket — two-row layout (titles row + body row share same y=0) ── */
.bk-scroll      { overflow-x:auto;padding-bottom:16px;-webkit-overflow-scrolling:touch; }
.bk-titles-row  { display:flex;align-items:stretch;border-bottom:1px solid var(--border); }
.bk-title-cell  {
  flex-shrink:0;text-align:center;padding:7px 8px;
  font-family:'Space Mono',monospace;font-size:9px;letter-spacing:2px;
  text-transform:uppercase;color:var(--text3);
  background:rgba(0,0,0,0.18);white-space:nowrap;
}
.bk-body-row    { display:flex;align-items:flex-start;gap:0; }
.bk-match-col   { display:flex;flex-direction:column;flex-shrink:0;width:200px; }
.bk-conn-col    { display:flex;flex-direction:column;flex-shrink:0; }
.bk-match {
  background:var(--panel2);border:1px solid var(--border);
  border-radius:8px;overflow:hidden;min-width:176px;max-width:220px;
}
.bk-match.finished { border-color:rgba(0,230,118,0.35); }
.bk-match.active   { border-color:rgba(249,168,37,0.3); }
.bk-slot {
  display:flex;align-items:center;gap:8px;
  padding:0 10px;height:42px;
  border-bottom:1px solid var(--border);font-size:13px;
  transition:background 0.15s;
}
.bk-slot:last-child { border-bottom:none; }
.bk-slot.win  { background:rgba(0,230,118,0.13);color:var(--green); }
.bk-slot.lose { opacity:0.35; }
.bk-slot.tbd  { color:var(--text3);font-style:italic; }
.bk-logo { font-size:18px;flex-shrink:0;width:24px;text-align:center; }
.bk-name {
  flex:1;font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bk-trophy { font-size:13px; }
.bk-win-btn {
  background:none;border:1px solid var(--green);color:var(--green);
  border-radius:5px;padding:3px 7px;font-size:11px;cursor:pointer;
  font-family:'Space Mono',monospace;transition:all 0.2s;flex-shrink:0;
}
.bk-win-btn:hover { background:var(--green);color:#000; }

/* ── п.4 — Join game button (pulsing) ─────────────────────── */
.btn-join-game {
  display:inline-block;padding:12px 24px;
  background:linear-gradient(135deg,rgba(0,230,118,0.25),rgba(0,182,255,0.2));
  border:2px solid var(--green);border-radius:10px;
  color:var(--green);font-family:'Rajdhani',sans-serif;
  font-size:16px;font-weight:700;letter-spacing:1px;
  text-decoration:none;cursor:pointer;
  animation:joinPulse 2s ease-in-out infinite;
  box-shadow:0 0 20px rgba(0,230,118,0.3);
}
.btn-join-game:hover { box-shadow:0 0 30px rgba(0,230,118,0.5);transform:scale(1.03); }
@keyframes joinPulse {
  0%,100% { box-shadow:0 0 15px rgba(0,230,118,0.3); border-color:var(--green); }
  50%      { box-shadow:0 0 35px rgba(0,230,118,0.7); border-color:#80ffcc; }
}

/* ── п.3 — Clickable members ──────────────────────────────── */
.member-clickable { cursor:pointer;transition:background 0.15s; }
.member-clickable:hover { background:rgba(249,168,37,0.07); }

/* ── п.5 — Auth loading overlay ──────────────────────────── */
#auth-loading-overlay {
  position:fixed;inset:0;background:rgba(5,9,18,0.92);
  z-index:10000;display:flex;align-items:center;justify-content:center;
  opacity:0;transition:opacity 0.3s;pointer-events:none;
}
#auth-loading-overlay.visible { opacity:1;pointer-events:all; }
.auth-loading-inner { text-align:center;width:300px; }
.auth-loading-bar {
  width:100%;height:4px;background:rgba(255,255,255,0.1);
  border-radius:2px;overflow:hidden;margin-bottom:24px;
}
.auth-loading-fill {
  height:100%;width:0;background:linear-gradient(90deg,var(--accent),var(--green));
  border-radius:2px;transition:width 1.2s cubic-bezier(0.4,0,0.2,1);
  box-shadow:0 0 12px rgba(249,168,37,0.6);
}
.auth-success-msg {
  font-family:'Rajdhani',sans-serif;font-size:22px;font-weight:700;
  letter-spacing:2px;color:var(--green);
  text-shadow:0 0 20px rgba(0,230,118,0.8);
  animation:authMsgIn 0.4s ease forwards;
}
@keyframes authMsgIn {
  from { opacity:0;transform:translateY(10px); }
  to   { opacity:1;transform:translateY(0); }
}

/* ── п.6 — Settings emoji fix ─────────────────────────────── */
.user-dropdown-item .settings-emoji { font-style:normal; }


/* ══════════════════════════════════════════════
   v8 ADDITIONS
══════════════════════════════════════════════ */

/* п.6 — Кастомные желтые чекбоксы */
.pub-checkbox {
  display:flex;align-items:center;gap:8px;cursor:pointer;
  font-size:12px;color:var(--text2);user-select:none;padding:4px 0;
}
.pub-checkbox input[type="checkbox"] {
  position:absolute;opacity:0;width:0;height:0;
}
.chk-custom {
  width:18px;height:18px;border-radius:4px;flex-shrink:0;
  border:2px solid rgba(249,168,37,0.4);background:var(--panel2);
  transition:all 0.2s;display:flex;align-items:center;justify-content:center;
}
.pub-checkbox input[type="checkbox"]:checked + .chk-custom {
  background:var(--accent);border-color:var(--accent);
  box-shadow:0 0 8px rgba(249,168,37,0.4);
}
.pub-checkbox input[type="checkbox"]:checked + .chk-custom::after {
  content:'✓';font-size:11px;font-weight:700;color:#000;line-height:1;
}

/* п.6 — Кастомная кнопка выбора файла */
.file-upload-btn {
  display:inline-flex;align-items:center;cursor:pointer;
  padding:9px 16px;border-radius:8px;font-size:13px;font-family:'Exo 2',sans-serif;
  font-weight:600;letter-spacing:0.5px;
  background:rgba(249,168,37,0.08);
  border:1.5px solid rgba(249,168,37,0.35);
  color:var(--accent);transition:all 0.2s;user-select:none;
}
.file-upload-btn:hover {
  background:rgba(249,168,37,0.15);
  border-color:var(--accent);
  box-shadow:0 0 14px rgba(249,168,37,0.25);
}
.file-upload-btn input[type="file"] {
  position:absolute;opacity:0;width:0;height:0;
}

/* п.7 — Одинаковая высота кнопок в modal-btns */
.modal-btn-equal {
  height:42px;min-height:42px;padding-top:0;padding-bottom:0;
  display:inline-flex;align-items:center;justify-content:center;
}

/* п.1 Bracket — bk-match styles (shared) */
.bk-match {
  background:var(--panel2);border:1px solid var(--border);
  border-radius:8px;overflow:hidden;width:200px;
}
.bk-match.finished { border-color:rgba(0,230,118,0.35); }
.bk-match.active   { border-color:rgba(249,168,37,0.3); }
.bk-slot {
  display:flex;align-items:center;gap:8px;
  padding:0 10px;height:42px;
  border-bottom:1px solid var(--border);font-size:13px;
  transition:background 0.15s;
}
.bk-slot:last-child { border-bottom:none; }
.bk-slot.win  { background:rgba(0,230,118,0.13);color:var(--green); }
.bk-slot.lose { opacity:0.35; }
.bk-slot.tbd  { color:var(--text3);font-style:italic; }
.bk-logo { font-size:18px;flex-shrink:0;width:24px;text-align:center; }
.bk-name {
  flex:1;font-family:'Rajdhani',sans-serif;font-weight:600;font-size:13px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.bk-trophy { font-size:13px; }
.bk-win-btn {
  background:none;border:1px solid var(--green);color:var(--green);
  border-radius:5px;padding:3px 7px;font-size:11px;cursor:pointer;
  font-family:'Space Mono',monospace;transition:all 0.2s;flex-shrink:0;
}
.bk-win-btn:hover { background:var(--green);color:#000; }

/* ══════════════════════════════════════════════════════════
   v9 ADDITIONS
══════════════════════════════════════════════════════════ */

/* п.1 — SVG pin logo */
.nav-pin-svg { flex-shrink:0; filter:drop-shadow(0 0 6px rgba(249,168,37,0.5)); transition:filter 0.2s; }
.nav-logo:hover .nav-pin-svg { filter:drop-shadow(0 0 12px rgba(249,168,37,0.9)); }

/* п.4 — Yellow create team button */
.btn-create-team {
  font-family:'Exo 2',sans-serif;font-weight:600;font-size:12px;
  padding:6px 14px;border-radius:7px;cursor:pointer;transition:all 0.2s;
  background:rgba(249,168,37,0.1);border:1.5px solid rgba(249,168,37,0.4);
  color:var(--accent);letter-spacing:0.5px;
}
.btn-create-team:hover {
  background:rgba(249,168,37,0.2);border-color:var(--accent);
  box-shadow:0 0 12px rgba(249,168,37,0.3);
}

/* п.5 — Tournament detail two-column layout with chat */
.tour-detail-with-chat {
  display:grid;
  grid-template-columns:1fr 340px;
  gap:24px;
  align-items:start;
}
@media(max-width:900px){
  .tour-detail-with-chat { grid-template-columns:1fr; }
}

/* п.5 — Chat panel */
.tour-chat-panel {
  background:var(--panel);border:1px solid var(--border);border-radius:12px;
  display:flex;flex-direction:column;height:660px;position:sticky;top:80px;overflow:hidden;
}
.tour-chat-header {
  padding:14px 16px 12px;border-bottom:1px solid var(--border);
  font-family:'Space Mono',monospace;font-size:11px;letter-spacing:2px;text-transform:uppercase;
  color:var(--text3);background:rgba(0,0,0,0.15);flex-shrink:0;display:flex;align-items:center;gap:8px;
}
.tour-chat-header::before { content:'💬'; font-size:14px; }
.tour-chat-messages {
  flex:1;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:8px;
  scroll-behavior:smooth;
}
.tour-chat-messages::-webkit-scrollbar { width:4px; }
.tour-chat-messages::-webkit-scrollbar-thumb { background:var(--border2);border-radius:2px; }
.tcm { display:flex;flex-direction:column;gap:2px; }
.tcm-header { display:flex;align-items:center;gap:6px; }
.tcm-nick { font-size:11px;font-weight:700;color:var(--accent);font-family:'Rajdhani',sans-serif; }
.tcm-nick.admin-nick { color:var(--purple); }
.tcm-time { font-size:10px;color:var(--text3);font-family:'Space Mono',monospace; }
.tcm-text { font-size:13px;color:var(--text2);line-height:1.4;word-break:break-word; }
.tcm-actions { display:none;gap:4px;margin-left:auto; }
.tcm:hover .tcm-actions { display:flex; }
.tcm-ban-btn {
  font-size:10px;padding:2px 6px;border-radius:4px;cursor:pointer;border:none;
  background:rgba(255,50,50,0.15);color:var(--red);transition:all 0.15s;
}
.tcm-ban-btn:hover { background:rgba(255,50,50,0.3); }
.tour-chat-input-wrap {
  flex-shrink:0;padding:10px 12px;border-top:1px solid var(--border);position:relative;
  background:rgba(0,0,0,0.1);
}
.tour-chat-courtesy {
  display:none;position:absolute;bottom:calc(100% + 4px);left:12px;right:12px;
  background:rgba(249,168,37,0.12);border:1px solid rgba(249,168,37,0.3);
  border-radius:8px;padding:8px 12px;font-size:11px;color:var(--accent);
  font-family:'Space Mono',monospace;line-height:1.4;
  animation:fadeUp 0.2s ease;z-index:10;
}
.tour-chat-courtesy.visible { display:block; }
.tour-chat-input-row { display:flex;gap:8px;align-items:center; }
.tour-chat-input {
  flex:1;background:var(--panel2);border:1px solid var(--border);border-radius:8px;
  padding:9px 12px;color:var(--text);font-size:13px;font-family:'Exo 2',sans-serif;
  resize:none;outline:none;transition:border-color 0.2s;min-height:38px;max-height:80px;
}
.tour-chat-input:focus { border-color:rgba(249,168,37,0.4); }
.tour-chat-send {
  width:38px;height:38px;border-radius:8px;flex-shrink:0;cursor:pointer;
  background:rgba(249,168,37,0.12);border:1.5px solid rgba(249,168,37,0.35);
  color:var(--accent);display:flex;align-items:center;justify-content:center;
  transition:all 0.2s;padding:0;
}
.tour-chat-send:hover { background:rgba(249,168,37,0.25);border-color:var(--accent);box-shadow:0 0 10px rgba(249,168,37,0.25); }
.tour-chat-send svg { pointer-events:none; }
.tour-chat-banned {
  padding:12px;text-align:center;font-size:12px;color:var(--red);
  font-family:'Space Mono',monospace;border-top:1px solid var(--border);
}
.tour-chat-no-access {
  padding:10px 12px;text-align:center;font-size:11px;color:var(--text3);
  font-family:'Space Mono',monospace;border-top:1px solid var(--border);
}

/* Ban modal */
.chat-ban-row { display:flex;gap:8px;flex-wrap:wrap;margin-top:10px; }
.chat-ban-opt {
  padding:6px 14px;border-radius:6px;cursor:pointer;font-size:12px;
  border:1px solid var(--border);background:var(--panel2);color:var(--text2);
  transition:all 0.15s;font-family:'Space Mono',monospace;
}
.chat-ban-opt:hover,.chat-ban-opt.selected {
  border-color:var(--red);background:rgba(255,50,50,0.1);color:var(--red);
}

/* ══════════════════════════════════════════════════════════
   v10 ADDITIONS
══════════════════════════════════════════════════════════ */

/* п.1 — Spinning planet image on auth page */
.auth-planet-wrap {
  width:100%;height:100%;border-radius:50%;overflow:hidden;
  position:relative;
  box-shadow:0 0 60px rgba(0,120,255,0.3),0 0 120px rgba(0,50,200,0.15);
}
.auth-planet-img {
  width:100%;height:100%;object-fit:cover;border-radius:50%;
  animation:planetSpin 25s linear infinite;
  transform-origin:center center;
}
@keyframes planetSpin {
  from { transform:rotate(0deg); }
  to   { transform:rotate(360deg); }
}
/* keep ring but tweak */
.auth-deco-ring { position:absolute; inset:-20px; border-radius:50%; border:1px dashed rgba(249,168,37,0.25); animation:ringRotate 18s linear infinite reverse; }

/* п.2 — Tournament detail: wider content, chat shifted right */
.tour-detail-with-chat {
  display:grid;
  grid-template-columns:1fr 360px;
  gap:32px;
  align-items:start;
}
@media(max-width:960px){
  .tour-detail-with-chat { grid-template-columns:1fr; }
}
.tour-chat-panel {
  margin-left:8px; /* slight extra shift right */
}

/* п.3 — Teams: narrow left panel, button in header */
.teams-layout {
  display:grid;
  grid-template-columns:320px 1fr; /* left panel fixed narrower */
  gap:24px;
  align-items:start;
}
.teams-panel-left { max-width:320px; }
@media(max-width:768px){
  .teams-layout { grid-template-columns:1fr; }
  .teams-panel-left { max-width:100%; }
}

/* п.4 — Tournament cards: 2-column grid, wider cards */
.tournaments-grid {
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:24px;
}
@media(max-width:700px){
  .tournaments-grid { grid-template-columns:1fr; }
}

/* п.5 — ПОЛЕЗНОЕ section */
.useful-info-block,
.useful-videos-block {
  background:var(--panel);border:1px solid var(--border);border-radius:14px;
  padding:28px 32px;margin-bottom:24px;
}
.useful-block-title {
  font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;
  letter-spacing:2px;text-transform:uppercase;color:var(--text);
  margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--border);
}
.useful-info-text {
  font-size:14px;color:var(--text2);line-height:1.7;
}
.useful-info-text p { margin:0 0 10px; }
.useful-info-text a { color:var(--accent); }

/* Videos grid: 2 per row, right-to-left order via flex */
.useful-videos-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
@media(max-width:700px){
  .useful-videos-grid { grid-template-columns:1fr; }
}
.useful-video-item {
  background:var(--panel2);border:1px solid var(--border);border-radius:10px;
  overflow:hidden;display:flex;flex-direction:column;
}
.useful-video-item iframe {
  width:100%;aspect-ratio:16/9;border:none;display:block;
}
.useful-video-title {
  padding:10px 14px;font-size:13px;font-weight:600;
  color:var(--text2);font-family:'Exo 2',sans-serif;
}
.useful-no-videos {
  grid-column:1/-1;color:var(--text3);font-size:12px;
  font-family:'Space Mono',monospace;padding:20px 0;
}

/* Admin: Полезное panel */
.useful-admin-card {
  background:var(--panel2);border:1px solid var(--border);border-radius:10px;
  padding:20px 24px;
}
.useful-admin-card-title {
  font-family:'Rajdhani',sans-serif;font-size:16px;font-weight:700;
  letter-spacing:1px;color:var(--text);
}
.field-input {
  width:100%;background:var(--panel);border:1px solid var(--border);
  border-radius:7px;padding:9px 12px;color:var(--text);font-size:13px;
  font-family:'Exo 2',sans-serif;outline:none;box-sizing:border-box;
  display:block;transition:border-color 0.2s;
}
.field-input:focus { border-color:rgba(249,168,37,0.4); }
.admin-video-row {
  display:flex;align-items:center;gap:10px;background:var(--panel);
  border:1px solid var(--border);border-radius:7px;padding:8px 12px;
}
.admin-video-row-title { flex:1;font-size:13px;color:var(--text2); }
.admin-video-row-del {
  background:none;border:none;color:var(--red);cursor:pointer;
  font-size:16px;padding:0 4px;opacity:0.7;transition:opacity 0.15s;
}
.admin-video-row-del:hover { opacity:1; }
