:root{--ink:#10131c;--panel:#191d29;--panel-2:#222737;--purple:#9147ff;--purple-2:#b98cff;--cyan:#28d7c0;--muted:#98a0b5}
body.app-body{background:#0e1119;color:#eef0f7;font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif}
.app-topbar{background:rgba(16,19,28,.96)!important;border-bottom:1px solid rgba(255,255,255,.08);backdrop-filter:blur(14px)}
.brand-mark{display:inline-grid;place-items:center;width:30px;height:30px;background:var(--purple);border-radius:8px;margin-right:7px;box-shadow:0 0 22px rgba(145,71,255,.45)}
.app-sidebar{background:#121620;color:#fff;border-right:1px solid rgba(255,255,255,.06)}
.app-sidebar .nav-link{color:#aeb5c7;border-radius:9px;margin:2px 0}.app-sidebar .nav-link:hover,.app-sidebar .nav-link.active{background:rgba(145,71,255,.15);color:#fff}.app-sidebar .nav-link.active{box-shadow:inset 3px 0 var(--purple)}
.app-sidebar .sb-sidenav-footer{background:#0e1119;color:#98a0b5}.app-footer{background:#10131c;color:#697086;border-top:1px solid rgba(255,255,255,.06)}
.page-kicker{text-transform:uppercase;letter-spacing:.13em;font-size:.72rem;font-weight:800;color:var(--purple-2)}.display-title{font-weight:800;letter-spacing:-.035em}
.card{background:var(--panel);border:1px solid rgba(255,255,255,.08);color:#eef0f7;border-radius:14px}.card-header{background:transparent;border-bottom:1px solid rgba(255,255,255,.08);font-weight:700}
.form-control,.form-select{background:#11151f;border-color:#343a4e;color:#fff}.form-control:focus,.form-select:focus{background:#11151f;color:#fff;border-color:var(--purple);box-shadow:0 0 0 .2rem rgba(145,71,255,.16)}.form-control::placeholder{color:#60697d}.form-select option{background:#11151f}
.btn-primary{background:var(--purple);border-color:var(--purple)}.btn-primary:hover{background:#7d32ee;border-color:#7d32ee}.btn-outline-primary{border-color:var(--purple);color:var(--purple-2)}.text-muted{color:var(--muted)!important}
.avatar{width:32px;height:32px;object-fit:cover;border-radius:50%;border:2px solid var(--purple)}.stat-card{overflow:hidden;position:relative}.stat-card:after{content:"";position:absolute;width:100px;height:100px;border-radius:50%;right:-30px;top:-40px;background:rgba(145,71,255,.15)}
.tournament-card{transition:.2s transform,.2s border-color}.tournament-card:hover{transform:translateY(-3px);border-color:rgba(145,71,255,.65)}.status-dot{width:8px;height:8px;border-radius:50%;display:inline-block}.status-live{background:#3de89a;box-shadow:0 0 10px #3de89a}.status-draft{background:#f5b942}.status-finished{background:#7b8397}
.badge-soft{background:rgba(145,71,255,.16);color:#cdb2ff;padding:.45rem .6rem;border-radius:7px}.member-row{display:flex;gap:.5rem;margin-bottom:.5rem}
.new-team-column,.existing-teams-column{position:relative}.new-team-column{z-index:2}.existing-teams-column{z-index:1}.add-team-card,.add-team-card.sticky-xl-top{position:relative!important;top:auto!important;margin-bottom:1rem;overflow:visible}.add-team-card .card-body{position:relative;background:var(--panel);border-radius:0 0 14px 14px}
@media(max-width:1199.98px){.new-team-column{margin-bottom:1rem}.existing-teams-column{clear:both}.add-team-card{width:100%;height:auto!important}}
.bracket-scroll{overflow:auto;padding:1rem 0}.bracket{display:flex;align-items:stretch;gap:3rem;min-width:max-content}.round{width:250px;display:flex;flex-direction:column}.round-title{height:72px}.match-list{display:flex;flex-direction:column;justify-content:space-around;gap:22px;flex:1}.match-card{background:#151a25;border:1px solid #323849;border-radius:12px;overflow:hidden;min-height:92px;position:relative}.match-team{height:45px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:1px solid rgba(255,255,255,.06)}.match-team:last-child{border:0}.team-color{width:4px;height:22px;border-radius:5px}.match-team .score{margin-left:auto;font-weight:800;font-variant-numeric:tabular-nums}.match-team.winner{background:rgba(40,215,192,.09);color:#8cf4e7}.match-actions{padding:.55rem;background:#10141d;border-top:1px solid rgba(255,255,255,.06)}.round-rule{font-size:.75rem;color:var(--muted)}
.public-body{background:#090c12;color:#fff;min-height:100vh}.public-header{padding:24px 4vw;border-bottom:1px solid rgba(255,255,255,.08);background:linear-gradient(110deg,#151a25,#201534)}.public-wrap{padding:28px 4vw}.live-pill{display:inline-flex;align-items:center;gap:8px;border-radius:99px;padding:6px 12px;font-size:.78rem;font-weight:800;letter-spacing:.08em}.live-pill:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}.status-pill-live{background:rgba(61,232,154,.12);color:#72f0ad;border:1px solid rgba(61,232,154,.28)}.status-pill-live:before{animation:pulse 1.5s infinite}.status-pill-draft{background:rgba(245,185,66,.12);color:#f5c96e;border:1px solid rgba(245,185,66,.3)}.status-pill-finished{background:rgba(152,160,181,.12);color:#bbc1d0;border:1px solid rgba(152,160,181,.28)}@keyframes pulse{50%{box-shadow:0 0 0 7px rgba(61,232,154,0)}}.empty-state{border:1px dashed #3b4255;border-radius:16px;padding:4rem 2rem;text-align:center;color:var(--muted)}
.obs-body{margin:0;padding:0;background:transparent!important;color:#fff;overflow:hidden}.obs-bracket{width:100vw;height:100vh;padding:24px;box-sizing:border-box;overflow:hidden}.obs-bracket>.bracket{width:max-content;min-width:100%;height:100%;gap:32px}.obs-bracket .round{min-width:230px}.obs-bracket .round-title{height:58px;text-shadow:0 2px 5px rgba(0,0,0,.9)}.obs-bracket .match-card{background:rgba(15,19,29,.94);box-shadow:0 4px 18px rgba(0,0,0,.45)}.obs-loading{color:rgba(255,255,255,.7);font:600 14px system-ui;padding:20px}
@media(max-width:991px){.display-title{font-size:1.85rem}.bracket{gap:1.2rem}.round{width:225px}}

/* Spielbezogene Bracket-Designs. Die Teamfarbe bleibt als schmaler Marker erhalten. */
.bracket-theme-standard{--bracket-accent:#9147ff;--bracket-accent-soft:rgba(145,71,255,.17);--bracket-card:#151a25;--bracket-card-alt:#1b2030;--bracket-border:#3a4052;--bracket-winner:#8cf4e7;--bracket-winner-bg:rgba(40,215,192,.11);--bracket-rule:#9aa3b8}
.bracket-theme-dead_by_daylight{--bracket-accent:#c51f2c;--bracket-accent-soft:rgba(197,31,44,.22);--bracket-card:#111214;--bracket-card-alt:#1d1c1d;--bracket-border:#5b252a;--bracket-winner:#f1d7d2;--bracket-winner-bg:rgba(165,20,31,.28);--bracket-rule:#aaa3a0}
.bracket-theme-valorant{--bracket-accent:#ff4655;--bracket-accent-soft:rgba(255,70,85,.2);--bracket-card:#111823;--bracket-card-alt:#172431;--bracket-border:#36505d;--bracket-winner:#fff1e8;--bracket-winner-bg:rgba(255,70,85,.2);--bracket-rule:#9fb4bd}
.bracket-theme-counter_strike{--bracket-accent:#f5a623;--bracket-accent-soft:rgba(245,166,35,.2);--bracket-card:#101820;--bracket-card-alt:#172633;--bracket-border:#37556b;--bracket-winner:#ffd28b;--bracket-winner-bg:rgba(245,166,35,.17);--bracket-rule:#9cb0bd}
.bracket[class*="bracket-theme-"] .round-title h2,.bracket-theme-dead_by_daylight .round-title .fw-bold,.bracket-theme-valorant .round-title .fw-bold,.bracket-theme-counter_strike .round-title .fw-bold{color:var(--bracket-accent)}
.bracket-theme-dead_by_daylight .round-title h2{text-transform:uppercase;letter-spacing:.07em}
.bracket-theme-valorant .round-title h2{text-transform:uppercase;letter-spacing:.045em}
.bracket-theme-counter_strike .round-title h2{letter-spacing:.025em}
.bracket[class*="bracket-theme-"] .round-rule{color:var(--bracket-rule)}
.bracket[class*="bracket-theme-"] .match-card,.bracket-theme-dead_by_daylight .match-card,.bracket-theme-valorant .match-card,.bracket-theme-counter_strike .match-card{background:linear-gradient(135deg,var(--bracket-card),var(--bracket-card-alt));border-color:var(--bracket-border);box-shadow:0 5px 20px rgba(0,0,0,.28),inset 3px 0 0 var(--bracket-accent)}
.bracket[class*="bracket-theme-"] .match-team.winner,.bracket-theme-dead_by_daylight .match-team.winner,.bracket-theme-valorant .match-team.winner,.bracket-theme-counter_strike .match-team.winner{background:var(--bracket-winner-bg);color:var(--bracket-winner)}
.bracket-theme-dead_by_daylight .match-card{border-radius:2px;clip-path:polygon(0 0,97% 0,100% 12%,100% 100%,3% 100%,0 88%)}
.bracket-theme-valorant .match-card{border-radius:3px;clip-path:polygon(0 0,94% 0,100% 18%,100% 100%,6% 100%,0 82%)}
.bracket-theme-counter_strike .match-card{border-radius:5px}
.bracket-theme-dead_by_daylight .round-title .form-control,.bracket-theme-valorant .round-title .form-control,.bracket-theme-counter_strike .round-title .form-control{border-color:var(--bracket-border);box-shadow:inset 3px 0 0 var(--bracket-accent)}
