@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap');
:root { --bg:#0b0e0b; --panel:#151914; --line:#343c31; --muted:#969b8d; --text:#f2eee6; --lime:#cfb083; --olive:#7f8a68; --military:#344133; --orange:#d59a58; --red:#c95f55; --shadow:0 24px 70px #0007; }
* { box-sizing:border-box }
html,body { margin:0; min-height:100%; background:var(--bg); color:var(--text); font-family:'DM Sans',sans-serif }
button,input,select,textarea { font:inherit } button { cursor:pointer } .hidden { display:none!important }
.kicker,.eyebrow { color:var(--lime); font:700 11px 'Space Grotesk'; letter-spacing:.16em; margin:0 0 10px }
.muted { color:var(--muted) }
.brand-mark { position:relative; width:66px; height:66px; border:1px solid #cfb08388; display:grid; place-items:center; transform:skew(-6deg); background:#cfb0830d }
.brand-mark span { color:var(--lime); font:700 23px 'Space Grotesk' }
.brand-mark i { position:absolute; width:8px; height:8px; background:var(--lime); right:-4px; bottom:-4px; box-shadow:0 0 16px var(--lime) }
.brand-mark.small { width:42px; height:42px } .brand-mark.small span { font-size:15px }
.brand-logo { display:block; object-fit:contain; filter:drop-shadow(0 8px 22px #0008) }.login-logo { position:relative; z-index:1; width:122px; height:122px }.side-brand-logo { width:54px; height:54px; flex:0 0 54px }.mobile-brand-logo { width:92px; height:92px }
.login-shell { min-height:100vh; display:grid; grid-template-columns:1.2fr .8fr }
.login-art { position:relative; overflow:hidden; padding:52px 6vw; display:flex; flex-direction:column; justify-content:space-between; background:radial-gradient(circle at 70% 35%,#344133 0,transparent 38%),linear-gradient(135deg,#181d16,#080a08) }
.login-art:before { content:''; position:absolute; inset:-48px; opacity:.12; background-image:linear-gradient(#cfb08333 1px,transparent 1px),linear-gradient(90deg,#cfb08333 1px,transparent 1px); background-size:48px 48px; animation:grid-drift 18s linear infinite }
.login-art:after { content:''; position:absolute; width:520px; height:520px; right:-160px; top:8%; border-radius:50%; background:radial-gradient(circle,#a6ff4d12 0,transparent 68%); filter:blur(2px); animation:login-orbit 9s ease-in-out infinite alternate }
.login-logo { animation:logo-float 5s ease-in-out infinite }
.login-copy>* { opacity:0; transform:translateY(18px); animation:login-rise .75s cubic-bezier(.2,.8,.2,1) forwards }
.login-copy>*:nth-child(1){animation-delay:.1s}.login-copy>*:nth-child(2){animation-delay:.22s}.login-copy>*:nth-child(3){animation-delay:.36s}
.login-copy { position:relative; z-index:1; max-width:680px }
.login-copy h1 { font:600 clamp(48px,5vw,78px)/1.02 'Space Grotesk'; letter-spacing:-.05em; margin:15px 0 25px }
.login-copy h1 em,.hero-card h1 em { font-style:normal; color:var(--lime) }
.login-copy>p:last-child { color:#adb7b1; font-size:18px; line-height:1.65; max-width:590px }
.login-foot { position:relative; z-index:1; font:600 10px 'Space Grotesk'; letter-spacing:.13em; color:#657069; animation:login-fade 1s .55s both }
.login-foot span { float:right; color:var(--lime) }
.signal-grid { position:absolute; z-index:1; right:5%; bottom:18%; display:flex; align-items:flex-end; gap:8px; height:140px; opacity:.25 }
.signal-grid span { width:9px; background:linear-gradient(#d8efbf,var(--lime)); transform-origin:bottom; animation:signal-pulse 2.4s ease-in-out infinite } .signal-grid span:nth-child(1){height:30%;animation-delay:-.7s}.signal-grid span:nth-child(2){height:60%;animation-delay:-1.8s}.signal-grid span:nth-child(3){height:42%;animation-delay:-.2s}.signal-grid span:nth-child(4){height:90%;animation-delay:-1.2s}.signal-grid span:nth-child(5){height:70%;animation-delay:-2.1s}
.login-panel { display:grid; place-items:center; padding:40px } .login-card { width:min(410px,100%); animation:login-card-in .7s cubic-bezier(.2,.8,.2,1) both }
.login-card h2 { font:600 38px 'Space Grotesk'; letter-spacing:-.04em; margin:6px 0 }
.login-card>.muted { margin:0 0 36px }
.login-card label,.form-stack label,.form-grid label { display:grid; gap:9px; font-size:13px; font-weight:600; color:#cdd4d0; margin-bottom:18px }
.login-card input,.form-stack input,.form-grid input,.form-grid select,.form-grid textarea,.filter-bar select { width:100%; border:1px solid var(--line); border-radius:8px; background:#141a17; color:var(--text); padding:13px 14px; outline:none }
input:focus,select:focus,textarea:focus { border-color:var(--lime)!important; box-shadow:0 0 0 3px #cfb08312 }
.primary,.secondary { border:0; border-radius:8px; padding:12px 16px; font-weight:700 }
.primary { background:var(--lime); color:#17130d; box-shadow:0 8px 26px #cfb08320 } .primary:hover { background:#dfc49b; transform:translateY(-1px) }
.primary.wide { width:100%; display:flex; justify-content:space-between; margin-top:8px; padding:15px 18px }
.secondary { background:#1a211e; color:#d7ded9; border:1px solid var(--line) }
.login-credit { margin-top:28px; padding-top:20px; border-top:1px solid #cfb08322; text-align:center }
.login-credit span { display:block; color:transparent; background:linear-gradient(105deg,#7d897f 15%,#7d897f 35%,#f5dfb8 48%,#cfb083 54%,#7d897f 67%,#7d897f 100%); background-size:250% auto; background-clip:text; -webkit-background-clip:text; font:600 11px 'Space Grotesk'; letter-spacing:.035em; animation:credit-shine 6s ease-in-out infinite }
.login-credit small { display:block; margin-top:6px; color:#5f6963; font-size:10px; letter-spacing:.02em }
.login-credit b { color:#9a8769; font-weight:600 }
@keyframes credit-shine { 0%,25%{background-position:120% center} 70%,100%{background-position:-80% center} }
@keyframes grid-drift{to{transform:translate(48px,48px)}}
@keyframes login-orbit{from{transform:translate3d(-30px,-20px,0) scale(.9)}to{transform:translate3d(40px,45px,0) scale(1.12)}}
@keyframes logo-float{0%,100%{transform:translateY(0);filter:drop-shadow(0 8px 22px #0008)}50%{transform:translateY(-7px);filter:drop-shadow(0 15px 28px #cfb08324)}}
@keyframes login-rise{to{opacity:1;transform:none}}
@keyframes login-fade{from{opacity:0}to{opacity:1}}
@keyframes login-card-in{from{opacity:0;transform:translateX(22px)}to{opacity:1;transform:none}}
@keyframes signal-pulse{0%,100%{transform:scaleY(.6);opacity:.45}50%{transform:scaleY(1);opacity:1}}
@media(prefers-reduced-motion:reduce){.login-credit span,.login-art:before,.login-art:after,.login-logo,.login-copy>*,.login-foot,.signal-grid span,.login-card{animation:none;transform:none}.login-credit span{color:#a9b2ad;background:none}.login-copy>*{opacity:1}}
.mobile-logo { display:none }
.app { min-height:100vh; display:grid; grid-template-columns:250px 1fr; transition:grid-template-columns .25s ease }
.sidebar { position:fixed; inset:0 auto 0 0; width:250px; z-index:10; border-right:1px solid var(--line); background:linear-gradient(180deg,#11150f,#0c0f0b); padding:24px 16px; display:flex; flex-direction:column; transition:transform .25s ease }
.sidebar-close { position:absolute; top:27px; right:-14px; width:28px; height:28px; display:grid; place-items:center; border:1px solid #46513f; border-radius:50%; background:#1b2119; color:#cfb083; font-size:24px; line-height:1; cursor:pointer; box-shadow:0 6px 18px #0008; z-index:2 }
.sidebar-close:hover { background:#293225; color:white; border-color:#718064 }
.side-brand { display:flex; align-items:center; gap:13px; padding:0 8px 30px }
.side-brand strong,.side-brand small { display:block } .side-brand strong { font:600 15px 'Space Grotesk' } .side-brand small { color:#68736c; font-size:9px; letter-spacing:.13em }
.sidebar nav { display:grid; gap:4px }
.nav-btn { border:0; background:transparent; color:#89948e; text-align:left; border-radius:7px; padding:11px 12px; display:flex; align-items:center; gap:11px; font-weight:600; font-size:13px }
.nav-btn:hover,.nav-btn.active { background:#252d22; color:white } .nav-btn.active { box-shadow:inset 3px 0 var(--lime) }.nav-btn.active .nav-icon { color:var(--lime) }
.nav-btn b { margin-left:auto; background:#242d28; border-radius:10px; padding:2px 7px; font-size:10px }
.nav-icon { width:18px; text-align:center; font-size:17px } .nav-label { font:700 9px 'Space Grotesk'; letter-spacing:.14em; color:#4f5953; margin:26px 12px 8px }
.side-bottom { margin-top:auto } .user-chip { display:flex; align-items:center; gap:10px; border-top:1px solid var(--line); padding:18px 6px 0 }
.user-profile { min-width:0; flex:1; display:flex; align-items:center; gap:10px; padding:5px!important; margin:-5px; border-radius:9px!important; text-align:left; transition:.2s background,.2s color }.user-profile:hover { background:#ffffff0a!important; color:var(--text)!important }.user-profile>span:first-child { flex:0 0 34px; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; background:var(--lime); color:#15200e; font-weight:800 }.user-profile>span:last-child { min-width:0; flex:1 }
.user-chip div { min-width:0; flex:1 } .user-chip strong,.user-chip small { display:block; white-space:nowrap; overflow:hidden; text-overflow:ellipsis }
.user-chip strong { font-size:12px } .user-chip small { font-size:10px; color:var(--muted) } .user-chip button { border:0; background:none; color:#7b8780; font-size:17px }
.main-wrap { grid-column:2; min-width:0 }
.app.sidebar-closed { grid-template-columns:1fr }
.app.sidebar-closed .sidebar { transform:translateX(calc(-100% - 18px)) }
.app.sidebar-closed .main-wrap { grid-column:1 }
.app.sidebar-closed .menu-btn { display:block; margin-right:13px }
.topbar { height:90px; border-bottom:1px solid var(--line); display:flex; align-items:center; padding:0 36px; position:sticky; top:0; background:#0b0e0bf2; backdrop-filter:blur(14px); z-index:8 }
.topbar p { font:700 9px 'Space Grotesk'; letter-spacing:.14em; color:#657069; margin:0 0 5px } .topbar h2 { font:600 19px 'Space Grotesk'; margin:0 }
.top-actions { margin-left:auto } .menu-btn { display:none } .content { padding:32px 36px 60px; max-width:1540px; margin:auto }
.view { display:none } .active-view { display:block }
.hero-card { min-height:240px; padding:42px 44px; border:1px solid var(--line); border-radius:14px; background:linear-gradient(120deg,#293325,#171c16 75%); display:flex; align-items:center; overflow:hidden; box-shadow:inset 0 1px #cfb08318 }
.hero-card h1 { font:600 clamp(30px,4vw,52px) 'Space Grotesk'; letter-spacing:-.04em; margin:6px 0 12px } .hero-card p:last-child { color:#98a49d; max-width:530px }
.radar { margin-left:auto; width:170px; height:170px; border:1px solid #cfb0832d; border-radius:50%; position:relative; display:grid; place-items:center }
.radar:before,.radar:after { content:''; position:absolute; border:1px solid #cfb08325; border-radius:50% } .radar:before { inset:27px } .radar:after { inset:58px }
.radar i:nth-child(1),.radar i:nth-child(2) { position:absolute; background:#cfb08325 } .radar i:nth-child(1){width:1px;height:100%}.radar i:nth-child(2){width:100%;height:1px}
.radar i:nth-child(3){position:absolute;inset:0;border-radius:50%;background:conic-gradient(#cfb08300 60%,#cfb08322);animation:spin 5s linear infinite}.radar span{width:8px;height:8px;border-radius:50%;background:var(--lime);box-shadow:0 0 18px var(--lime);transform:translate(35px,-22px)}@keyframes spin{to{transform:rotate(360deg)}}
.stats { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:18px 0 }
.stat,.panel { border:1px solid var(--line); border-radius:11px; padding:20px; background:var(--panel) }
.stat-top { display:flex; align-items:center; justify-content:space-between } .stat-icon { width:32px; height:32px; border:1px solid #324039; border-radius:7px; display:grid; place-items:center; color:var(--lime) }
.stat small { color:var(--muted); font-size:11px } .stat strong { display:block; font:600 30px 'Space Grotesk'; margin-top:15px } .stat p { margin:3px 0 0; color:#76817b; font-size:11px }
.overview-grid { display:grid; grid-template-columns:1.65fr 1fr; gap:18px } .panel { padding:24px }
.panel-head,.section-intro { display:flex; align-items:center; justify-content:space-between; margin-bottom:20px } .panel h3,.section-intro h3 { font:600 19px 'Space Grotesk'; margin:0 }
.text-btn { border:0; background:none; color:var(--lime); font-size:12px; font-weight:700 }
.recent-row { display:grid; grid-template-columns:40px 1fr auto; gap:12px; align-items:center; padding:13px 0; border-top:1px solid #222a26 }
.team-avatar { width:38px; height:38px; border-radius:7px; display:grid; place-items:center; background:#202923; color:var(--lime); font:700 12px 'Space Grotesk' }
.recent-row strong { font-size:13px } .recent-row p { margin:3px 0 0; font-size:10px; color:var(--muted) }
.activity-row { display:grid; grid-template-columns:8px 1fr; gap:12px; padding:10px 0 } .activity-row>span { width:6px; height:6px; background:var(--lime); border-radius:50%; margin-top:6px; box-shadow:0 0 9px #cfb08399 }
.activity-row p { margin:0; font-size:12px } .activity-row small { color:#66716b; font-size:9px }
.status { display:inline-flex; align-items:center; gap:6px; border-radius:12px; padding:5px 8px; font-size:9px; font-weight:700; text-transform:uppercase; letter-spacing:.05em }
.status:before { content:''; width:5px; height:5px; border-radius:50%; background:currentColor }
.status.done,.status.participating { color:var(--lime); background:#cfb08312 }.status.not-done,.status.not-participating { color:var(--red); background:#ff5c5814 }.status.waiting,.status.undecided { color:var(--orange); background:#ff9f4314 }
.directory-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:18px }.directory-actions { display:flex; gap:8px }.sort-control { position:relative }.sort-control>span { position:absolute; left:11px; top:7px; color:#68736c; font-size:8px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; pointer-events:none }.sort-control select { height:100%; min-width:168px; border:1px solid var(--line); border-radius:7px; background:#1a211e; color:#d7ded9; padding:17px 34px 6px 11px; outline:none; font-size:11px; font-weight:600 }.sort-control select:focus { border-color:#6f7c67; box-shadow:0 0 0 3px #a6ff4d0a }
.search { height:42px; width:300px; display:flex; align-items:center; gap:8px; background:#131815; border:1px solid var(--line); border-radius:8px; padding:0 12px }.search input { border:0; background:none; outline:0; color:white; width:100%; font-size:12px }.search span { color:var(--lime); font-size:19px }
.filter-bar { border:1px solid var(--line); background:var(--panel); padding:12px; border-radius:9px; display:flex; gap:9px; margin-bottom:14px }.filter-bar select { width:auto; padding:9px 36px 9px 11px; font-size:11px }
.table-card { border:1px solid var(--line); border-radius:10px; background:var(--panel); overflow:hidden }.table-scroll { overflow-x:auto } table { border-collapse:collapse; width:100%; min-width:1000px }
th { text-align:left; padding:14px 15px; color:#707b75; font:700 9px 'Space Grotesk'; letter-spacing:.1em; text-transform:uppercase; border-bottom:1px solid var(--line) } td { padding:14px 15px; border-bottom:1px solid #202723; vertical-align:middle; font-size:11px; color:#bcc5c0 } tbody tr:hover { background:#1b2119 } tbody tr:last-child td { border:0 }
.team-cell { display:flex; align-items:center; gap:11px; min-width:180px }.team-cell strong { display:block; color:#eef3f0; font-size:12px }.team-cell small { color:#69746e; font-size:9px }.lang-tag { font-size:9px; background:#202823; color:#aeb8b2; border-radius:4px; padding:3px 5px; margin:2px }.rep-cell { white-space:pre-line; max-width:190px; line-height:1.5 }.record-cell small { display:block; color:#68736d; margin-top:5px }.row-menu { border:1px solid var(--line); background:#181e1b; color:#aab4ae; width:30px; height:30px; border-radius:7px }
.empty { text-align:center; padding:70px }.empty span { font-size:35px; color:var(--lime) }.empty h3 { font:600 17px 'Space Grotesk'; margin-bottom:4px }.empty p { color:var(--muted); font-size:12px }
.section-intro { margin-bottom:24px }.section-intro>div>p:last-child { margin:7px 0 0 }.staff-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:12px }.staff-card { border:1px solid var(--line); border-radius:9px; padding:18px; background:#151b18 }.staff-card-head { display:flex; align-items:center; gap:11px }.staff-avatar { width:42px; height:42px; border-radius:50%; display:grid; place-items:center; background:#263028; color:var(--lime); font-weight:800 }.staff-card h4 { margin:0; font-size:13px }.staff-card p { margin:3px 0 0; color:var(--muted); font-size:10px }.staff-card footer { display:flex; align-items:center; margin-top:20px }.staff-card footer button { margin-left:auto }.role-badge { font:700 9px 'Space Grotesk'; letter-spacing:.08em; color:var(--lime) }
.settings-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px }.form-stack { margin-top:25px }.form-stack .primary { width:max-content }.deploy-card p { color:var(--muted); line-height:1.6 }.deploy-card code { color:var(--lime) }.deploy-status { border-top:1px solid var(--line); padding-top:20px; margin-top:22px; color:#bbc5bf; font-size:12px }.deploy-status span { display:inline-block; width:7px; height:7px; border-radius:50%; background:var(--lime); box-shadow:0 0 8px var(--lime); margin-right:8px }
.form-stack label.check-row { display:flex; align-items:center; gap:10px; margin-bottom:12px; cursor:pointer }.form-stack label.check-row input { width:17px; height:17px; padding:0; accent-color:var(--gold) }.form-stack label.check-row span { color:#cdd4d0 }.form-stack>.form-actions { justify-content:flex-start }.form-stack>.form-actions .primary { margin-left:auto }
.rcon-intro { margin-bottom:22px }
.rcon-overview { display:grid; grid-template-columns:.8fr 1.2fr; gap:18px; margin-bottom:18px }
.rcon-status-card { background:radial-gradient(circle at 90% 10%,#a6ff4d0d,transparent 45%),var(--panel) }
.rcon-status-head { display:flex; align-items:center; gap:14px }.rcon-status-head h3 { margin:3px 0 0 }
.server-pulse { width:13px; height:13px; flex:0 0 13px; border-radius:50%; background:#69716d; box-shadow:0 0 0 7px #69716d12 }.server-pulse.online { background:var(--lime); box-shadow:0 0 0 7px #a6ff4d12,0 0 18px #a6ff4d88; animation:server-pulse 2s ease-out infinite }.server-pulse.error { background:#e46565; box-shadow:0 0 0 7px #e4656512 }
@keyframes server-pulse{0%{box-shadow:0 0 0 0 #a6ff4d55,0 0 18px #a6ff4d88}70%{box-shadow:0 0 0 12px #a6ff4d00,0 0 18px #a6ff4d66}100%{box-shadow:0 0 0 0 #a6ff4d00,0 0 18px #a6ff4d88}}
.rcon-metrics { display:grid; grid-template-columns:1fr 1fr; gap:12px; margin:28px 0 20px }.rcon-metrics div { padding:16px; border:1px solid var(--line); border-radius:9px; background:#101511 }.rcon-metrics strong,.rcon-metrics small { display:block }.rcon-metrics strong { font:600 25px 'Space Grotesk' }.rcon-metrics small { color:#66716b; font-size:8px; letter-spacing:.12em; margin-top:5px }
.encrypted-badge { color:#cfb083; border:1px solid #cfb08333; background:#cfb0830b; border-radius:999px; padding:6px 9px; font-size:9px; letter-spacing:.06em; text-transform:uppercase }
.rcon-config-form { display:grid; grid-template-columns:1.2fr .65fr; gap:12px; margin-top:24px; align-items:end }.rcon-config-form label { display:grid; gap:8px; color:#cdd4d0; font-size:12px; font-weight:600 }.rcon-config-form .rcon-password { grid-column:1/3 }.rcon-config-form .primary { width:max-content }
.rcon-config-form input,.rcon-command-row select { width:100%; border:1px solid var(--line); border-radius:8px; background:#141a17; color:var(--text); padding:13px 14px; outline:none }.rcon-config-form input:focus,.rcon-command-row select:focus { border-color:#73816a; box-shadow:0 0 0 3px #a6ff4d0b }
.rcon-player-panel { margin-bottom:18px }.rcon-players-empty { min-height:170px; display:grid; place-items:center; align-content:center; color:#68736c; text-align:center }.rcon-players-empty>span { font-size:30px; color:#899582; margin-bottom:8px }.rcon-players-empty strong { color:#bcc5bf }.rcon-players-empty p { margin:5px 0 0; font-size:12px }
.rcon-player-table { width:100%; border-collapse:collapse; margin-top:15px }.rcon-player-table th { color:#647068; font-size:9px; letter-spacing:.11em; text-align:left; padding:10px 12px; border-bottom:1px solid var(--line) }.rcon-player-table td { padding:13px 12px; border-bottom:1px solid #28302b88; color:#cdd5d0; font-size:12px }.rcon-player-table tr:last-child td { border-bottom:0 }.rcon-player-name { display:flex; align-items:center; gap:10px }.rcon-player-name span { width:28px; height:28px; border-radius:50%; display:grid; place-items:center; background:#263026; color:var(--lime); font-weight:700 }.rcon-guid { max-width:230px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; color:#748078; font-family:monospace; font-size:10px }.rcon-player-actions { display:flex; gap:7px; justify-content:flex-end }.rcon-player-actions button { padding:7px 9px; font-size:10px }
.rcon-actions-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px }.rcon-actions-grid h3 { margin:5px 0 0 }.rcon-command-row { display:flex; gap:9px; margin-top:23px }.rcon-command-row select { flex:1 }.danger-zone { display:flex; gap:9px; padding-top:17px; margin-top:17px; border-top:1px solid var(--line) }.rcon-note { color:#616c65; font-size:10px; line-height:1.5; margin:14px 0 0 }.rcon-output pre { max-height:260px; overflow:auto; white-space:pre-wrap; word-break:break-word; border:1px solid var(--line); background:#0b0f0c; color:#aeb9b2; padding:15px; border-radius:8px; font:11px/1.6 Consolas,monospace; margin:16px 0 0 }
@media(prefers-reduced-motion:reduce){.server-pulse.online{animation:none}}
.modal { position:fixed; inset:0; z-index:50; display:grid; place-items:center; padding:20px }.modal-backdrop { position:absolute; inset:0; background:#050706d9; backdrop-filter:blur(5px) }.modal-card { position:relative; width:min(720px,100%); max-height:90vh; overflow:auto; border:1px solid #354039; border-radius:13px; background:#121714; padding:30px; box-shadow:var(--shadow) }.modal-close { position:absolute; right:18px; top:16px; border:0; background:none; color:#89958e; font-size:25px }.modal h2 { font:600 25px 'Space Grotesk'; margin:5px 0 7px }.modal .muted { margin:0 0 25px }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 15px }.form-grid .full { grid-column:1/-1 }.form-grid textarea { resize:vertical; min-height:85px }.form-actions { grid-column:1/-1; display:flex; justify-content:flex-end; gap:9px; border-top:1px solid var(--line); padding-top:18px; margin-top:5px }.danger { border:1px solid #ff5c5844; background:#ff5c580d; color:var(--red); border-radius:8px; padding:11px 15px; font-weight:700; margin-right:auto }
.toast { position:fixed; right:22px; bottom:22px; z-index:100; background:#e9f4ed; color:#101511; border-radius:8px; padding:13px 17px; font-weight:700; font-size:12px; box-shadow:var(--shadow); opacity:0; transform:translateY(15px); pointer-events:none; transition:.25s }.toast.show { opacity:1; transform:none }.toast.error { background:#ff6b67; color:white }
.visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important }
.import-modal .modal-card { width:min(820px,calc(100vw - 32px)); padding:0; overflow:hidden; border-color:#46503f }.import-modal .modal-close { top:22px; right:24px; z-index:2 }.import-shell { min-height:420px }.import-header { display:grid; grid-template-columns:48px 1fr; gap:18px; align-items:start; padding:28px 64px 24px 30px; border-bottom:1px solid var(--line); background:linear-gradient(120deg,#20271d,#151914) }.import-header h2 { margin:1px 0 7px }.import-header .muted { margin:0; max-width:560px; line-height:1.5 }.import-step { width:44px; height:44px; display:grid; place-items:center; border:1px solid #cfb08366; border-radius:9px; color:var(--lime); background:#cfb0830b; font:700 12px 'Space Grotesk'; letter-spacing:.08em }.import-body { padding:26px 30px 30px }
.upload-zone { border:1px dashed #5a6652; border-radius:12px; padding:22px; background:#0f130e; display:grid; grid-template-columns:52px minmax(0,1fr) auto; align-items:center; gap:17px; transition:.2s; outline:none }.upload-zone:hover,.upload-zone:focus,.upload-zone.dragging { border-color:var(--lime); background:#cfb08308; box-shadow:0 0 0 3px #cfb0830b }.upload-zone strong { display:block; margin:0 0 5px; font-size:14px }.upload-zone p { color:var(--muted); font-size:11px; margin:0 }.upload-zone .secondary { white-space:nowrap; padding:10px 15px }.upload-icon { width:48px; height:48px; display:grid; place-items:center; border-radius:10px; background:#cfb08312; border:1px solid #cfb08335; color:var(--lime); font-size:23px }
.import-guides { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:12px 0 0 }.import-guides span { display:flex; align-items:center; gap:7px; color:#8f998a; font-size:10px }.import-guides b { color:var(--lime); font-size:10px }.import-guides small { font-size:10px }.file-chip { display:flex; align-items:center; gap:12px; border:1px solid var(--line); border-radius:9px; padding:12px 14px; margin:22px 0 18px; background:#1b2119 }.file-chip span { color:var(--lime); font-size:20px }.file-chip div { flex:1; min-width:0 }.file-chip strong,.file-chip small { display:block; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }.file-chip small { color:var(--muted); font-size:10px; margin-top:3px }.mapping-grid { display:grid; grid-template-columns:1fr 1fr; gap:0 14px }.mapping-grid label,#importForm>label { display:grid; gap:7px; color:#cdd4d0; font-size:11px; font-weight:600; margin-bottom:12px }.mapping-grid select,#importForm>label select { width:100%; border:1px solid var(--line); border-radius:7px; background:#111611; color:var(--text); padding:10px 12px; outline:none }.import-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin:16px 0 }.import-summary div { background:#1b2119; border:1px solid var(--line); border-radius:8px; padding:12px }.import-summary strong,.import-summary small { display:block }.import-summary strong { font:600 20px 'Space Grotesk'; color:var(--lime) }.import-summary small { color:var(--muted); font-size:9px; margin-top:3px }.preview-table { max-height:190px; overflow:auto; border:1px solid var(--line); border-radius:8px; margin:14px 0 0 }.preview-table table { min-width:650px }.preview-table td,.preview-table th { padding:9px 10px; font-size:9px; max-width:150px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }.import-modal .form-actions { position:sticky; bottom:0; background:#151914; padding:16px 0 0; margin-top:0 }.import-result { text-align:center; padding:28px }.import-result>span { display:grid; place-items:center; width:58px; height:58px; border-radius:50%; background:#cfb08315; color:var(--lime); font-size:28px; margin:0 auto 14px }
@media(max-width:1000px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.login-panel{min-height:100vh}.mobile-logo{display:block;margin-bottom:35px}.overview-grid,.rcon-overview,.rcon-actions-grid{grid-template-columns:1fr}.staff-grid{grid-template-columns:1fr 1fr}.stats{grid-template-columns:1fr 1fr}.radar{display:none}}
@media(max-width:760px){.app{display:block}.sidebar,.app.sidebar-closed .sidebar{transform:translateX(-100%);box-shadow:var(--shadow)}.sidebar.open,.app.sidebar-closed .sidebar.open{transform:none}.main-wrap,.app.sidebar-closed .main-wrap{grid-column:1}.topbar{height:75px;padding:0 18px}.menu-btn,.app.sidebar-closed .menu-btn{display:block;margin-right:13px}.sidebar-close{right:12px;top:15px}.icon-btn{border:0;background:none;color:white;font-size:20px}.topbar .primary{font-size:0;padding:10px 12px}.topbar .primary span{font-size:18px}.content{padding:20px 14px 45px}.hero-card{padding:30px 24px;min-height:210px}.stats{grid-template-columns:1fr 1fr}.overview-grid{grid-template-columns:1fr}.directory-head{align-items:stretch;gap:12px;flex-direction:column}.directory-actions{width:100%;flex-wrap:wrap}.search{width:100%;order:4}.sort-control{flex:1}.sort-control select{width:100%}.filter-bar{flex-direction:column}.filter-bar select{width:100%}.staff-grid,.settings-grid{grid-template-columns:1fr}.section-intro{align-items:flex-start;gap:16px}.form-grid,.mapping-grid,.rcon-config-form{grid-template-columns:1fr}.rcon-config-form .rcon-password{grid-column:1}.form-grid .full{grid-column:1}.rcon-command-row,.danger-zone{flex-direction:column}.rcon-player-panel{overflow-x:auto}.rcon-player-table{min-width:650px}.modal-card{padding:26px 20px}.login-panel{padding:25px}.login-card h2{font-size:32px}}

.bracket-intro{margin-bottom:18px}.bracket-save-state{display:flex;align-items:center;gap:8px;color:#7f8a83}.bracket-save-state span{width:8px;height:8px;border-radius:50%;background:#68736c}.bracket-save-state.saving span{background:#cfb083;box-shadow:0 0 10px #cfb08377}.bracket-save-state.saved span{background:var(--lime);box-shadow:0 0 10px #a6ff4d77}.bracket-save-state.error span{background:#e46565}.bracket-save-state small{font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.bracket-format-tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:10px;padding:5px;border:1px solid var(--line);border-radius:11px;background:#101511}.bracket-format-tabs button{border:1px solid transparent;border-radius:8px;background:transparent;color:#7f8b84;padding:12px;font:700 11px 'Space Grotesk';letter-spacing:.05em;text-transform:uppercase;transition:.2s}.bracket-format-tabs button:hover{color:#d4ddd7;background:#182019}.bracket-format-tabs button.active{border-color:#9d865b;background:linear-gradient(135deg,#332e22,#1d241b);color:#ddc28e;box-shadow:inset 0 0 20px #d2b26f0d}.bracket-controls{display:grid;grid-template-columns:1fr auto auto auto;gap:12px;align-items:end;margin-bottom:18px;padding:17px 20px}.bracket-controls label{display:grid;gap:7px;color:#9ca7a0;font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase}.bracket-controls input,.bracket-controls select{width:100%;border:1px solid var(--line);border-radius:8px;background:#111713;color:var(--text);padding:11px 12px;outline:none}.bracket-controls input:focus,.bracket-controls select:focus{border-color:#718066;box-shadow:0 0 0 3px #a6ff4d0a}.draw-button{border:1px solid #a68c5e;border-radius:8px;background:linear-gradient(135deg,#b79a65,#806c49);color:#0d100d;padding:11px 14px;font:800 10px 'Space Grotesk';letter-spacing:.04em;text-transform:uppercase;box-shadow:0 8px 24px #0004}.draw-button:hover{filter:brightness(1.1);transform:translateY(-1px)}
.bracket-workspace{display:grid;grid-template-columns:270px minmax(0,1fr);gap:18px;align-items:start}.bracket-team-bank{position:sticky;top:108px;max-height:calc(100vh - 140px);display:flex;flex-direction:column;padding:18px}.bracket-search{position:relative;display:block;margin:14px 0 12px}.bracket-search span{position:absolute;left:12px;top:10px;color:#657069}.bracket-search input{width:100%;border:1px solid var(--line);border-radius:8px;background:#101511;color:var(--text);padding:10px 11px 10px 34px;outline:none}.bracket-team-list{overflow:auto;display:grid;gap:7px;padding-right:3px}.bracket-bank-team{display:flex;align-items:center;gap:9px;border:1px solid #303a33;border-radius:8px;background:#151b17;color:#cbd3ce;padding:9px;cursor:grab;user-select:none}.bracket-bank-team:hover{border-color:#66745f;transform:translateX(2px)}.bracket-bank-team:active{cursor:grabbing}.bracket-bank-team.assigned{border-color:#5d684c;background:#20271c}.bracket-bank-team .team-avatar{width:28px;height:28px;font-size:9px}.bracket-bank-team strong{min-width:0;font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bracket-bank-team small{margin-left:auto;color:#9daa84;font-size:7px;letter-spacing:.06em;text-transform:uppercase}.bracket-bank-empty{color:#657069;text-align:center;padding:26px 10px;font-size:11px;line-height:1.6}
.bracket-stage-panel{padding:0;overflow:hidden}.bracket-stage-head{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;border-bottom:1px solid var(--line);background:linear-gradient(100deg,#182018,#111512)}.bracket-stage-head h2{margin:4px 0 0;font:600 22px 'Space Grotesk'}.bracket-legend{display:flex;gap:7px}.bracket-legend span{border-radius:999px;padding:6px 9px;font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}.bracket-legend .winner{color:#b8ff87;background:#59b82d18;border:1px solid #69d63744}.bracket-legend .loser{color:#ff9b9b;background:#d6494918;border:1px solid #e75b5b44}
.bracket-scroll{overflow:auto;padding:24px;background:radial-gradient(circle at 50% 40%,#26302344,transparent 55%),#0c100d;scrollbar-width:thin;scrollbar-color:#4e5b52 #111612}.bracket-scroll::-webkit-scrollbar{height:9px;width:9px}.bracket-scroll::-webkit-scrollbar-track{background:#111612}.bracket-scroll::-webkit-scrollbar-thumb{background:#4e5b52;border-radius:999px}.bracket-board{display:grid;grid-auto-flow:column;grid-auto-columns:220px;gap:38px;min-width:max-content}.bracket-round{display:flex;flex-direction:column;justify-content:space-around;gap:20px;min-width:220px}.bracket-round-title{position:sticky;top:0;z-index:2;align-self:stretch;text-align:center;color:#8a968f;font:700 9px 'Space Grotesk';letter-spacing:.14em;text-transform:uppercase;padding:8px;border:1px solid #2b342e;border-radius:7px;background:#111612e8;backdrop-filter:blur(8px)}.bracket-match{position:relative;border:1px solid #354039;border-radius:10px;padding:8px;background:#141a16;box-shadow:0 12px 26px #0003}.bracket-match:after{content:'';position:absolute;width:39px;height:1px;right:-39px;top:50%;background:#445047}.bracket-match-label{display:flex;justify-content:space-between;color:#5f6b63;font-size:8px;letter-spacing:.08em;text-transform:uppercase;padding:2px 4px 7px}.bracket-team-slot{min-height:43px;display:flex;align-items:center;gap:8px;width:100%;border:1px solid #303a33;background:#101511;color:#aeb8b2;padding:7px 30px 7px 8px;text-align:left;cursor:pointer;transition:.18s}.bracket-team-slot.slot-a{border-radius:7px 7px 3px 3px;margin-bottom:5px}.bracket-team-slot.slot-b{border-radius:3px 3px 7px 7px}.bracket-team-slot:hover:not(.empty){border-color:#74826c}.bracket-team-slot.empty{border-style:dashed;color:#536058;cursor:default}.bracket-team-slot.drag-over{border-color:var(--lime);background:#a6ff4d0c;box-shadow:inset 0 0 18px #a6ff4d0a}.bracket-team-slot.winner{border-color:#65c83d;background:#326d241f;color:#c8ffae;box-shadow:inset 3px 0 #70dc42}.bracket-team-slot.loser{border-color:#9b4141;background:#7626261c;color:#e99898;box-shadow:inset 3px 0 #d85151;opacity:.78}.bracket-team-slot .team-avatar{width:27px;height:27px;flex:0 0 27px;font-size:9px}.bracket-team-slot strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px}.bracket-team-slot small{margin-left:auto;color:#68736c;font-size:8px;text-transform:uppercase}.bracket-clear-slot{position:absolute;right:10px;width:19px;height:19px;display:grid;place-items:center;border:0;border-radius:50%;background:#29302b;color:#859087;font-size:11px;z-index:1}.bracket-clear-slot.seed-a{top:32px}.bracket-clear-slot.seed-b{bottom:18px}.bracket-clear-slot:hover{background:#6d3030;color:white}
.bracket-champion{display:flex;flex-direction:column;justify-content:center;min-width:240px}.bracket-trophy{border:1px solid #cfb08366;border-radius:12px;padding:22px;text-align:center;background:radial-gradient(circle at 50% 0,#cfb08320,transparent 60%),#171914;box-shadow:0 18px 40px #0005}.bracket-trophy>span{display:block;color:#cfb083;font-size:35px;margin-bottom:8px;filter:drop-shadow(0 0 12px #cfb08366)}.bracket-trophy .team-avatar{width:48px;height:48px;margin:15px auto 8px;font-size:14px}.bracket-trophy h3{margin:5px 0;font:600 18px 'Space Grotesk'}.bracket-trophy p{margin:0;color:#68736c;font-size:10px}.bracket-trophy.has-champion{border-color:#a6ff4d66}.bracket-trophy.has-champion>span{color:var(--lime)}
@media(max-width:1100px){.bracket-workspace{grid-template-columns:1fr}.bracket-team-bank{position:static;max-height:none}.bracket-team-list{grid-template-columns:repeat(3,minmax(0,1fr));max-height:230px}}
@media(max-width:760px){.bracket-controls{grid-template-columns:1fr 1fr}.bracket-controls label:first-child{grid-column:1/-1}.bracket-controls .danger{margin:0}.bracket-team-list{grid-template-columns:1fr 1fr}.bracket-stage-head{align-items:flex-start;flex-direction:column}.bracket-scroll{padding:14px}}

.preview-link-shell{display:grid;gap:18px}.preview-link-field{display:grid;grid-template-columns:1fr auto;gap:8px}.preview-link-field input{min-width:0;border:1px solid var(--line);border-radius:8px;background:#0d120f;color:#dce4df;padding:12px}.preview-link-actions{display:flex;justify-content:flex-end;gap:9px}.bracket-preview-page{min-height:100vh;color:var(--text);background:radial-gradient(circle at 50% 0,#273224 0,transparent 38%),#090c0a;padding:24px}.bracket-preview-header{min-height:92px;display:flex;align-items:center;gap:18px;border:1px solid #354039;border-radius:12px 12px 0 0;background:#121813;padding:14px 22px}.bracket-preview-header img{width:58px;height:58px;object-fit:contain}.bracket-preview-header p,.bracket-preview-footer{color:#a89169;font:700 9px 'Space Grotesk';letter-spacing:.15em}.bracket-preview-header h1{margin:4px 0 0;font:600 25px 'Space Grotesk'}.bracket-preview-header>span{margin-left:auto;border:1px solid #8d7953;border-radius:999px;color:#d6bc8c;padding:8px 13px;font:700 10px 'Space Grotesk';letter-spacing:.1em}.bracket-preview-stage{overflow:auto;min-height:calc(100vh - 178px);padding:28px;background:radial-gradient(circle at 50% 45%,#26302355,transparent 55%),#0c100d;border:1px solid #354039;border-top:0}.bracket-preview-stage .bracket-board{min-height:620px}.bracket-preview-stage .bracket-team-slot{cursor:default}.bracket-preview-stage .bracket-match:after{background:#6b765f}.bracket-preview-footer{display:flex;justify-content:space-between;border:1px solid #354039;border-top:0;border-radius:0 0 12px 12px;background:#121813;padding:12px 20px}@media(max-width:760px){.bracket-preview-page{padding:0}.bracket-preview-header{border-radius:0}.bracket-preview-header h1{font-size:18px}.bracket-preview-stage{padding:16px}.bracket-preview-footer{border-radius:0}.preview-link-field{grid-template-columns:1fr}}

/* Tournament presentation and motion */
.bracket-board{position:relative;isolation:isolate;gap:56px;width:max-content;min-width:100%;margin:0 auto;justify-content:center}.bracket-round,.bracket-champion{position:relative;z-index:1;animation:bracketRoundIn .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--round-delay,0ms)}.bracket-round-title{display:flex;align-items:center;justify-content:center;gap:8px}.bracket-round-title span{display:grid;place-items:center;width:23px;height:19px;border-radius:4px;background:#a8916917;color:#c9ad7c;font-size:7px}.bracket-match{animation:bracketMatchIn .5s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--match-delay,0ms)}.bracket-match:after{display:none}.bracket-match.bye-match{border-style:dashed;border-color:#536055;background:#101511;opacity:.72}.bracket-match.bye-match .bracket-match-label span:first-child{color:#c5a96f}.bracket-match.bye-match .bracket-team-slot.empty{opacity:.45}.bracket-connectors{position:absolute;inset:0;z-index:0;overflow:visible;pointer-events:none}.bracket-connectors path{fill:none;stroke:#667166;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;opacity:.78;stroke-dasharray:900;stroke-dashoffset:900;animation:drawBracketPath .8s ease-out forwards;animation-delay:var(--path-delay,0ms);filter:drop-shadow(0 0 3px #8ca07a38)}.bracket-team-slot.winner{animation:winnerSet .55s cubic-bezier(.2,.9,.2,1) both}.bracket-team-slot.winner:after{content:'✓';display:grid;place-items:center;flex:0 0 17px;width:17px;height:17px;margin-left:auto;border-radius:50%;background:#65c83d;color:#071006;font-size:10px;box-shadow:0 0 14px #65c83d55}.bracket-team-slot.winner small{display:none}.bracket-trophy{position:relative;overflow:hidden}.bracket-trophy.has-champion{border-color:#b49a69;background:radial-gradient(circle at 50% 30%,#b49a6929,transparent 50%),#171c16;box-shadow:0 0 0 1px #d3b77b16,0 20px 65px #0008;animation:championReveal .85s cubic-bezier(.16,1,.3,1) both}.bracket-trophy.has-champion:before{content:'';position:absolute;inset:-100% -35%;background:linear-gradient(100deg,transparent 42%,#f0d49a24 49%,transparent 56%);animation:championShine 3.8s ease-in-out infinite}.bracket-trophy .trophy-star{position:relative;z-index:1}.bracket-trophy.has-champion .trophy-star{color:#e2c17f;filter:drop-shadow(0 0 12px #d8b66d99);animation:trophyFloat 2.4s ease-in-out infinite}.bracket-trophy.has-champion>*:not(.champion-orbit){position:relative;z-index:2}.champion-orbit{position:absolute;left:50%;top:42%;width:118px;height:118px;border:1px solid #d9ba7650;border-radius:50%;transform:translate(-50%,-50%);animation:championOrbit 8s linear infinite}.champion-orbit:before,.champion-orbit:after{content:'';position:absolute;width:5px;height:5px;border-radius:50%;background:#e7c987;box-shadow:0 0 10px #e7c987}.champion-orbit:before{left:7px;top:17px}.champion-orbit:after{right:3px;bottom:24px}.bracket-complete .bracket-connectors path{stroke:#86967d}.bracket-complete:after{content:'';position:absolute;z-index:-1;inset:4% 0;background:radial-gradient(circle at 88% 50%,#c4a66a14,transparent 25%);animation:completedGlow 3s ease-in-out infinite}.bracket-preview-stage{position:relative}.bracket-preview-stage:before{content:'';position:absolute;inset:0;pointer-events:none;background:linear-gradient(110deg,transparent 25%,#d8bc8310 48%,transparent 70%);transform:translateX(-100%);animation:stageSweep 9s ease-in-out infinite}
@keyframes bracketRoundIn{from{opacity:0;transform:translateX(-18px)}to{opacity:1;transform:none}}@keyframes bracketMatchIn{from{opacity:0;transform:scale(.96) translateX(-10px)}to{opacity:1;transform:none}}@keyframes drawBracketPath{to{stroke-dashoffset:0}}@keyframes winnerSet{0%{transform:scale(.97);filter:brightness(1)}60%{transform:scale(1.025);filter:brightness(1.25)}100%{transform:none;filter:none}}@keyframes championReveal{from{opacity:0;transform:scale(.82) translateY(16px)}to{opacity:1;transform:none}}@keyframes championShine{0%,25%{transform:translateX(-55%)}55%,100%{transform:translateX(55%)}}@keyframes trophyFloat{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes championOrbit{to{transform:translate(-50%,-50%) rotate(360deg)}}@keyframes completedGlow{50%{opacity:.45}}@keyframes stageSweep{0%,65%{transform:translateX(-100%)}90%,100%{transform:translateX(100%)}}
@media(prefers-reduced-motion:reduce){.bracket-round,.bracket-match,.bracket-team-slot.winner,.bracket-trophy.has-champion,.bracket-trophy.has-champion:before,.bracket-trophy.has-champion .trophy-star,.champion-orbit,.bracket-complete:after,.bracket-preview-stage:before,.bracket-connectors path{animation:none!important}.bracket-connectors path{stroke-dashoffset:0}}

.tournament-tags{display:flex;flex-wrap:wrap;gap:4px;min-width:110px}.tournament-tags span{border:1px solid #5f694c;border-radius:999px;background:#9aab7220;color:#c4d49e;padding:4px 7px;font:700 8px 'Space Grotesk';letter-spacing:.04em}.tournament-tags small{color:#657069;font-size:9px}.tournament-picker{margin:2px 0 4px;border:1px solid var(--line);border-radius:9px;padding:14px;background:#101511}.tournament-picker legend{padding:0 7px;color:#b9c3bd;font:700 10px 'Space Grotesk';letter-spacing:.06em;text-transform:uppercase}.tournament-picker>p{margin:0 0 11px;color:#7c8881;font-size:10px}.tournament-picker>div{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tournament-picker label{display:flex;align-items:center;gap:9px;border:1px solid #313b34;border-radius:8px;background:#151b17;padding:10px;cursor:pointer}.tournament-picker label:has(input:checked){border-color:#9d865b;background:#2a281f;box-shadow:inset 3px 0 #c9aa70}.tournament-picker input{width:16px;height:16px;accent-color:#b99c67}.tournament-picker span{display:grid;gap:2px}.tournament-picker b{color:#d6ded9;font:700 11px 'Space Grotesk'}.tournament-picker small{color:#78837d;font-size:8px;line-height:1.3}@media(max-width:760px){.bracket-format-tabs{grid-template-columns:1fr}.bracket-controls{grid-template-columns:1fr 1fr}.bracket-controls label{grid-column:1/-1}.tournament-picker>div{grid-template-columns:1fr}.tournament-tags{min-width:80px}}
.bracket-structure-summary{display:block;margin-top:6px;color:#7b877f;font:600 9px 'Space Grotesk';letter-spacing:.04em;text-transform:uppercase}

/* Role permissions */
.permission-picker{margin:2px 0 4px;border:1px solid var(--line);border-radius:10px;padding:15px;background:#101511}.permission-picker legend{padding:0 7px;color:#d8c090;font:700 10px 'Space Grotesk';letter-spacing:.08em;text-transform:uppercase}.permission-picker>p{margin:0 0 12px;color:#78837d;font-size:10px}.permission-picker>div{display:grid;grid-template-columns:1fr 1fr;gap:8px}.permission-picker label{display:flex;align-items:center;gap:10px;margin:0;padding:11px;border:1px solid #303a33;border-radius:8px;background:#151b17;cursor:pointer}.permission-picker label:has(input:checked){border-color:#8c7954;background:#27251d;box-shadow:inset 3px 0 #cfb083}.permission-picker input{width:16px;height:16px;accent-color:#cfb083}.permission-picker span{display:grid;gap:2px}.permission-picker b{font-size:11px}.permission-picker small{color:#748078;font-size:8px}.staff-permission-summary{display:flex;flex-wrap:wrap;gap:5px;margin:15px 0}.staff-permission-summary span{border:1px solid #354039;border-radius:999px;background:#111713;color:#8d9991;padding:4px 7px;font-size:8px}.bracket-controls input[readonly]{color:#8a958e;cursor:default}.bracket-board.readonly .bracket-team-slot{cursor:default}.bracket-board.readonly .bracket-team-slot:hover:not(.empty){border-color:#303a33}

/* Full tournament layout */
.bracket-stage-panel{min-width:0;box-shadow:0 22px 55px #0004}.bracket-scroll{max-width:100%;padding:28px 24px 34px}.bracket-board{grid-auto-columns:minmax(210px,238px);gap:68px;padding:4px 8px 24px}.bracket-round{min-width:210px;justify-content:space-evenly}.bracket-round-title{padding:10px;background:#121814f2;border-color:#3b463e;box-shadow:0 6px 20px #0005}.bracket-match{border-color:#3b473f;border-radius:12px;padding:9px;background:linear-gradient(145deg,#182019,#111612);box-shadow:0 14px 34px #0005,inset 0 1px #ffffff08}.bracket-match-label{padding:2px 5px 8px;color:#7d8981}.bracket-match-label span:first-child{color:#d1b780;font-weight:800}.bracket-team-slot{min-height:47px;background:#0d120f;padding:8px 30px 8px 9px}.bracket-team-slot strong{font-size:11px}.bracket-connectors path{stroke:#8a967f;stroke-width:1.75;opacity:.8}.bracket-champion{min-width:255px}.bracket-trophy{border-radius:14px;padding:28px 22px}

@media(max-width:1100px){.bracket-workspace:has(.bracket-team-bank.hidden){display:block}.bracket-board{justify-content:start}}
@media(max-width:760px){
  .permission-picker>div{grid-template-columns:1fr}
  .bracket-intro{display:grid}.bracket-intro .bracket-save-state{margin-top:4px}
  .bracket-controls{grid-template-columns:1fr}.bracket-controls label,.bracket-controls button{grid-column:1;width:100%}
  .bracket-workspace{display:block}.bracket-team-list{grid-template-columns:1fr}.bracket-stage-panel{border-radius:12px}
  .bracket-stage-head{padding:18px}.bracket-stage-head h2{font-size:18px}.bracket-legend{width:100%}
  .bracket-scroll,.bracket-preview-stage{overflow:visible;padding:14px;background:linear-gradient(180deg,#111713,#0c100d)}
  .bracket-board,.bracket-preview-stage .bracket-board{display:flex;flex-direction:column;width:100%;min-width:0!important;min-height:0!important;gap:18px;padding:0;justify-content:flex-start}
  .bracket-round,.bracket-champion{width:100%;min-width:0;gap:10px;justify-content:flex-start}
  .bracket-round-title{position:static;justify-content:flex-start;padding:10px 12px}
  .bracket-match{width:100%;margin:0;animation-delay:0ms}
  .bracket-champion{padding-top:4px}.bracket-trophy{width:100%}
  .bracket-connectors{display:none}.bracket-complete:after{display:none}
  .bracket-preview-header{align-items:flex-start;flex-wrap:wrap}.bracket-preview-header>span{margin-left:0}.bracket-preview-footer{gap:10px;flex-wrap:wrap}
}

/* Assignment board */
.task-intro{margin-bottom:18px}.task-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-bottom:14px}.task-stats article{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:11px;background:linear-gradient(140deg,#182019,#111612);padding:17px 19px}.task-stats article:after{content:'';position:absolute;right:-20px;bottom:-30px;width:80px;height:80px;border-radius:50%;background:#cfb0830b}.task-stats small{display:block;color:#78837d;font:700 8px 'Space Grotesk';letter-spacing:.12em}.task-stats strong{display:block;margin-top:8px;color:#e1e7e3;font:600 27px 'Space Grotesk'}.task-toolbar{display:flex;align-items:center;gap:10px;padding:13px;margin-bottom:14px}.task-toolbar .search{flex:1}.task-toolbar select,.task-card select{border:1px solid var(--line);border-radius:8px;background:#111713;color:#d7ded9;padding:10px 12px;outline:none}.task-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.task-card{position:relative;display:flex;flex-direction:column;min-height:250px;border:1px solid #323c35;border-radius:12px;background:linear-gradient(150deg,#182019,#101511 72%);padding:18px;box-shadow:0 16px 36px #0003;transition:.2s}.task-card:hover{transform:translateY(-2px);border-color:#566258;box-shadow:0 20px 42px #0005}.task-card:before{content:'';position:absolute;inset:0 auto 0 0;width:3px;border-radius:12px 0 0 12px;background:#657069}.task-card.status-in-progress:before{background:#d3ae67}.task-card.status-half-done:before{background:#d9974c}.task-card.status-blocked:before{background:#dd5757}.task-card.status-done:before{background:#64c73d}.task-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.task-priority,.task-status{border-radius:999px;padding:5px 8px;font:700 8px 'Space Grotesk';letter-spacing:.07em;text-transform:uppercase}.task-priority{color:#9ca7a0;background:#252d28}.task-priority.high{color:#efbd72;background:#9c64211c}.task-priority.urgent{color:#ff8787;background:#c934341e}.task-priority.low{color:#82a38d;background:#4b6b561c}.task-status{color:#9ba69f;border:1px solid #354039}.task-card h3{margin:18px 0 8px;font:600 17px 'Space Grotesk'}.task-card>p{flex:1;margin:0;color:#8c9891;font-size:11px;line-height:1.6;white-space:pre-line}.task-progress{height:5px;margin:17px 0 13px;border-radius:999px;background:#252d28;overflow:hidden}.task-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#90784f,#ddbf84);transition:width .35s ease}.status-done .task-progress i{background:#64c73d}.status-blocked .task-progress i{background:#dd5757}.task-meta{display:flex;align-items:center;justify-content:space-between;gap:8px;color:#7b877f;font-size:9px}.task-assignee{display:flex;align-items:center;gap:7px;color:#bdc6c0}.task-assignee b{width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#2a332d;color:#d7bd88;font-size:8px}.task-meta .overdue{color:#f06f6f}.task-card footer{display:flex;align-items:center;gap:8px;margin-top:14px;padding-top:13px;border-top:1px solid #283129}.task-card footer select{flex:1;padding:8px 9px;font-size:10px}.task-card footer .row-menu{flex:0 0 auto}
@media(max-width:1100px){.task-board{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.task-stats{grid-template-columns:1fr 1fr}.task-board{grid-template-columns:1fr}.task-toolbar{align-items:stretch;flex-direction:column}.task-toolbar select{width:100%}.task-card{min-height:230px}}

/* Mirrored tournament tree */
.bracket-scroll{padding:30px;background:radial-gradient(circle at 50% 48%,#2b342855,transparent 42%),linear-gradient(180deg,#101611,#0b100c)}
.bracket-board{display:flex;align-items:stretch;justify-content:center;gap:26px;width:max-content;min-width:100%;padding:10px 14px 30px}
.bracket-round{display:flex;flex-direction:column;justify-content:stretch;width:176px;min-width:176px}
.bracket-round-matches{display:grid;flex:1;grid-template-rows:repeat(var(--bracket-tracks),minmax(116px,1fr));gap:0;padding:18px 0}
.bracket-match-track{display:flex;align-items:center;width:100%;min-width:0;min-height:0}.bracket-match-track>.bracket-match{width:100%;min-width:0}
.bracket-side-right .bracket-match-label{flex-direction:row-reverse}
.bracket-side-right .bracket-team-slot{flex-direction:row-reverse;text-align:right;padding:8px 9px 8px 30px}
.bracket-side-right .bracket-team-slot small{margin-left:0;margin-right:auto}
.bracket-side-right .bracket-team-slot.winner{box-shadow:inset -3px 0 #70dc42}
.bracket-side-right .bracket-team-slot.loser{box-shadow:inset -3px 0 #d85151}
.bracket-side-right .bracket-team-slot.winner:after{order:-1;margin-left:0;margin-right:auto}
.bracket-side-right .bracket-clear-slot{right:auto;left:10px}
.bracket-center{position:relative;z-index:2;display:flex;flex-direction:column;width:210px;min-width:210px;animation:bracketRoundIn .55s cubic-bezier(.2,.8,.2,1) both;animation-delay:var(--round-delay,0ms)}
.bracket-center>.bracket-round-title{position:static;flex:0 0 auto}
.bracket-center-stage{position:relative;display:flex;flex:1;align-items:center;padding:18px 0}.bracket-center-stage>.bracket-match{width:100%;margin:0}.bracket-center-stage>.bracket-trophy{position:absolute;top:calc(50% + 86px);left:0;right:0;margin:0}
.bracket-match-center{border-color:#9a8054;box-shadow:0 0 0 1px #cfb08318,0 18px 42px #0007}
.bracket-trophy{min-height:154px;display:flex;flex-direction:column;align-items:center;justify-content:center}
.bracket-empty{display:grid;place-items:center;width:100%!important;min-width:0!important}
.bracket-empty-state{text-align:center;color:#78847c}
.bracket-empty-state>span{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 13px;border:1px solid #49554c;border-radius:50%;color:#d0b47e;font-size:24px}
.bracket-empty-state h3{margin:0 0 7px;color:#dce3df;font:600 17px 'Space Grotesk'}
.bracket-empty-state p{margin:0;font-size:10px}
.bracket-preview-stage .bracket-board{padding-top:18px}

@media(max-width:1100px){
  .bracket-board{justify-content:flex-start}
}
@media(max-width:760px){
  .bracket-scroll,.bracket-preview-stage{overflow-x:auto}
  .bracket-board,.bracket-preview-stage .bracket-board{display:flex;flex-direction:column;align-items:stretch;width:100%;min-width:0!important;gap:18px;padding:0}
  .bracket-round,.bracket-center{width:100%;min-width:0}
  .bracket-round-matches{display:flex;flex-direction:column;padding:0;gap:10px}.bracket-match-track{display:block}.bracket-match-track>.bracket-match{width:100%}
  .bracket-center>.bracket-round-title{position:static}.bracket-center-stage{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:0}.bracket-center-stage>.bracket-match,.bracket-center-stage>.bracket-trophy{position:static;width:100%;margin:0}
  .bracket-side-right .bracket-match-label{flex-direction:row}
  .bracket-side-right .bracket-team-slot{flex-direction:row;text-align:left;padding:8px 30px 8px 9px}
  .bracket-side-right .bracket-team-slot small{margin-left:auto;margin-right:0}
  .bracket-side-right .bracket-clear-slot{right:10px;left:auto}
}
