:root{--bg:#050506;--bg2:#090a0b;--panel:rgba(10,11,12,.82);--panel2:rgba(17,18,20,.86);--line:rgba(255,117,24,.22);--line2:rgba(255,255,255,.08);--orange:#ff6a00;--orange2:#ff9a3d;--text:#f3f3f4;--muted:#8d9198;--green:#57d88b;--red:#ff5d62;--shadow:0 24px 80px rgba(0,0,0,.55)}
*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:88px}body{margin:0;background:transparent;position:relative;color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;overflow-x:hidden;letter-spacing:.01em}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}.is-hidden{display:none!important}
.world{position:fixed;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 14% 18%,rgba(255,86,0,.11),transparent 28%),radial-gradient(circle at 78% 36%,rgba(255,100,20,.045),transparent 32%),linear-gradient(120deg,#090909 0,#060708 46%,#030304 100%);overflow:hidden}.world:before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.018) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.012) 1px,transparent 1px);background-size:72px 72px;mask-image:linear-gradient(to bottom,#000,transparent 82%)}.world__vignette{position:absolute;inset:0;background:radial-gradient(circle at center,transparent 32%,rgba(0,0,0,.6) 100%)}.world__smoke{position:absolute;inset:-10%;background:radial-gradient(ellipse at 18% 22%,rgba(255,120,55,.07),transparent 23%),radial-gradient(ellipse at 48% 65%,rgba(255,255,255,.025),transparent 30%);filter:blur(24px)}.embers{position:absolute;inset:0}.ember{position:absolute;width:2px;height:2px;background:var(--orange2);border-radius:50%;box-shadow:0 0 9px var(--orange);animation:drift var(--d) linear infinite;opacity:var(--o)}@keyframes drift{from{transform:translate3d(0,20vh,0) scale(.7)}to{transform:translate3d(var(--x),-110vh,0) scale(1.8)}}
.topbar{position:fixed;left:0;right:0;top:0;z-index:80;height:72px;padding:0 clamp(18px,4vw,72px);display:flex;align-items:center;gap:28px;border-bottom:1px solid rgba(255,255,255,.055);background:linear-gradient(to bottom,rgba(4,5,6,.93),rgba(4,5,6,.69));backdrop-filter:blur(18px)}.brand{display:flex;align-items:center;gap:10px;font-weight:950;letter-spacing:.16em;white-space:nowrap}.brand-mark{display:grid;place-items:center;width:34px;height:34px;border:1px solid rgba(255,106,0,.55);background:linear-gradient(145deg,#17191b,#090a0b);color:var(--orange);font-weight:950;clip-path:polygon(15% 0,100% 0,100% 85%,85% 100%,0 100%,0 15%)}.brand-word{font-size:17px}.nav{display:flex;align-items:center;gap:clamp(16px,2.2vw,36px);margin:auto}.nav a{position:relative;padding:27px 0 24px;font-size:11px;color:#a9adb2;font-weight:850;letter-spacing:.14em;transition:.2s}.nav a:after{content:"";position:absolute;left:50%;right:50%;bottom:0;height:2px;background:var(--orange);transition:.22s}.nav a:hover{color:#fff}.nav a:hover:after{left:0;right:0}.top-actions{display:flex;align-items:center;gap:12px}.discord-mini{font-size:10px;font-weight:900;color:var(--orange2);letter-spacing:.14em}.gear,.login-btn{display:grid;place-items:center;min-width:42px;height:38px;padding:0 14px;border:1px solid rgba(255,255,255,.1);border-radius:7px;background:rgba(17,18,20,.82);color:#e9e9ea;font-size:10px;font-weight:900;letter-spacing:.11em;transition:.2s}.gear:hover,.login-btn:hover{border-color:rgba(255,106,0,.7);box-shadow:0 0 24px rgba(255,106,0,.13)}.menu-btn{display:none;border:0;background:transparent;color:#fff;font-size:24px}
.hero{position:relative;min-height:100svh;display:flex;align-items:center;padding:118px clamp(24px,7vw,120px) 100px;isolation:isolate;overflow:hidden}.eyebrow{display:block;color:var(--orange2);font-size:10px;font-weight:900;letter-spacing:.22em}.hero-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:34px}.btn{min-height:46px;padding:0 20px;border-radius:4px;border:1px solid transparent;display:inline-flex;align-items:center;justify-content:center;gap:10px;font-size:10px;font-weight:950;letter-spacing:.12em;text-transform:uppercase;transition:.2s}.btn--discord,.btn--primary{background:linear-gradient(180deg,#ff791a,#eb5900);color:#0d0d0e;box-shadow:0 8px 30px rgba(255,91,0,.15)}.btn--discord:hover,.btn--primary:hover{transform:translateY(-1px);filter:brightness(1.07)}.btn--ghost{border-color:rgba(255,255,255,.13);background:rgba(12,13,14,.72);color:#ddd}.btn--ghost:hover{border-color:rgba(255,106,0,.55);color:#fff}.discord-symbol{font-size:15px}
.dashboard-nav{position:relative;z-index:3;width:min(1480px,calc(100% - 40px));margin:-74px auto 30px;display:grid;grid-template-columns:repeat(4,1fr);border:1px solid var(--line2);background:rgba(8,9,10,.86);box-shadow:var(--shadow);backdrop-filter:blur(18px)}.dashboard-nav a{min-height:108px;padding:21px 22px;border-right:1px solid var(--line2);display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-content:center;transition:.2s}.dashboard-nav a:last-child{border-right:0}.dashboard-nav a:hover{background:rgba(255,106,0,.035)}.dashboard-nav span{grid-row:1/3;color:var(--orange);font-weight:950;font-size:12px}.dashboard-nav strong{font-size:13px;letter-spacing:.11em}.dashboard-nav small{margin-top:5px;color:var(--muted);font-size:10px}
.content-shell{width:min(1480px,calc(100% - 40px));margin:0 auto;padding:0 0 90px;display:grid;gap:26px}.panel{position:relative;padding:clamp(22px,2.5vw,38px);border:1px solid rgba(255,255,255,.08);background:linear-gradient(180deg,rgba(17,18,20,.87),rgba(9,10,11,.88));box-shadow:var(--shadow);overflow:hidden}.panel:before{content:"";position:absolute;left:0;top:0;width:80px;height:2px;background:linear-gradient(90deg,var(--orange),transparent)}.glass{backdrop-filter:blur(16px)}.section-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:28px}.section-head h2{margin:4px 0 0;font-size:clamp(25px,2.5vw,42px);line-height:1;font-weight:950;letter-spacing:-.03em}.live-dot,.signal{font-size:9px;color:#a9adb1;font-weight:900;letter-spacing:.14em}.live-dot:before,.signal{color:var(--green)}.live-dot:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--green);margin-right:8px;box-shadow:0 0 10px rgba(87,216,139,.5)}
.roster-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.player-card{position:relative;min-width:0;border:1px solid rgba(255,255,255,.08);background:#0b0c0d;overflow:hidden;transition:.22s}.player-card:hover{transform:translateY(-3px);border-color:rgba(255,106,0,.36);box-shadow:0 18px 42px rgba(0,0,0,.3)}.player-art{position:relative;height:170px;background:radial-gradient(circle at 50% 35%,rgba(255,106,0,.08),transparent 48%),#08090a;overflow:hidden}.player-art img{width:100%;height:100%;object-fit:cover;filter:saturate(.78) contrast(1.05)}.player-art:after{content:"";position:absolute;inset:auto 0 0;height:50%;background:linear-gradient(transparent,#0b0c0d)}.level{position:absolute;right:10px;top:10px;z-index:2;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;border:1px solid rgba(255,106,0,.75);background:#111;color:#fff;font-size:11px;font-weight:950;box-shadow:0 0 18px rgba(255,106,0,.12)}.player-info{padding:15px}.player-name{font-weight:950;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.player-meta{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:14px 0}.metric{min-width:0}.metric small{display:block;color:#6f7378;font-size:8px;font-weight:900;letter-spacing:.1em}.metric strong{display:block;margin-top:3px;font-size:13px}.faceit-link{display:block;padding-top:12px;border-top:1px solid rgba(255,255,255,.06);color:var(--orange2);font-size:9px;font-weight:900;letter-spacing:.1em}.delete-btn{position:absolute;left:8px;top:8px;z-index:5;width:28px;height:28px;border-radius:50%;border:1px solid rgba(255,93,98,.35);background:rgba(10,10,10,.85);color:var(--red)}
.stats-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}.stat-card{padding:22px 18px;border:1px solid rgba(255,255,255,.07);background:#0b0c0d}.stat-card span{display:block;color:#777b80;font-size:9px;font-weight:900;letter-spacing:.12em}.stat-card strong{display:block;margin-top:8px;font-size:clamp(28px,3vw,46px);line-height:1;font-weight:950}.stat-card em{font-style:normal;color:var(--orange);font-size:.45em;margin-left:2px}
.news-feed{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.news-item{position:relative;padding:20px;border:1px solid rgba(255,255,255,.07);background:#0b0c0d;min-height:170px}.news-item time{color:var(--orange2);font-size:9px;font-weight:800}.news-item h3{margin:12px 0 9px;font-size:18px}.news-item p{margin:0;color:#969a9f;line-height:1.6;font-size:13px;white-space:pre-line}
.clanwar-list{display:grid;gap:9px}.clanwar{position:relative;display:grid;grid-template-columns:92px 1fr auto;gap:18px;align-items:center;padding:16px 18px;border:1px solid rgba(255,255,255,.07);background:#0b0c0d}.cw-status{font-size:9px;font-weight:950;letter-spacing:.11em}.cw-status.win{color:var(--green)}.cw-status.loss{color:var(--red)}.cw-status.draw{color:#ffc764}.cw-status.upcoming{color:var(--orange2)}.cw-opponent{font-weight:900}.cw-meta{margin-top:5px;color:#777c82;font-size:10px}.cw-score{font-size:22px;font-weight:950;letter-spacing:.06em}
.loading,.empty{grid-column:1/-1;padding:34px;border:1px dashed rgba(255,255,255,.08);color:#7f8388;text-align:center;font-size:12px}
footer{width:min(1480px,calc(100% - 40px));margin:0 auto 40px;padding:26px 0;display:flex;align-items:center;gap:18px;border-top:1px solid rgba(255,255,255,.07);color:#777b81;font-size:10px;letter-spacing:.1em}footer strong{color:#ddd;font-size:15px}footer small{margin-left:auto}
.admin-drawer{position:fixed;right:0;top:0;bottom:0;z-index:120;width:min(520px,100%);padding:26px;background:#0b0c0d;border-left:1px solid rgba(255,106,0,.18);box-shadow:-30px 0 80px rgba(0,0,0,.6);overflow:auto;transform:translateX(105%);transition:.28s ease}.admin-drawer.open{transform:translateX(0)}.drawer-backdrop{position:fixed;inset:0;z-index:110;background:rgba(0,0,0,.66);opacity:0;pointer-events:none;transition:.28s}.drawer-backdrop.open{opacity:1;pointer-events:auto}.drawer-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:24px}.drawer-head h3{margin:4px 0 0;font-size:25px}.icon-btn{width:36px;height:36px;border:1px solid rgba(255,255,255,.1);background:#111;color:#fff;font-size:22px}.admin-block{padding:22px 0;border-top:1px solid rgba(255,255,255,.07)}.admin-block h4{margin:0 0 14px;font-size:11px;letter-spacing:.12em}.admin-block input,.admin-block textarea,.admin-block select{width:100%;margin:0 0 10px;padding:12px 13px;border:1px solid rgba(255,255,255,.09);background:#08090a;color:#eee;outline:none}.admin-block textarea{min-height:90px;resize:vertical}.inline-form{display:grid;grid-template-columns:1fr auto;gap:8px}.form-row{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:8px}.text-btn{border:0;background:none;color:var(--orange2);padding:4px 0;font-size:10px;font-weight:900}.toggle{display:flex;align-items:center;gap:10px;margin:0 0 14px;color:#aaa;font-size:12px}.toggle input{width:auto;margin:0}.full{width:100%}.admin-message{position:sticky;bottom:10px;margin-top:12px;padding:12px;background:#101815;border:1px solid rgba(87,216,139,.25);display:none}.admin-message.show{display:block}.admin-message.error{background:#1a1010;border-color:rgba(255,93,98,.28)}
.reveal{opacity:0;transform:translateY(20px);transition:.55s ease}.reveal.is-visible{opacity:1;transform:none}
@media(max-width:1200px){.roster-grid{grid-template-columns:repeat(3,1fr)}.news-feed{grid-template-columns:1fr 1fr}.dashboard-nav{grid-template-columns:repeat(2,1fr)}.dashboard-nav a:nth-child(2){border-right:0}.dashboard-nav a:nth-child(-n+2){border-bottom:1px solid var(--line2)}}
@media(max-width:900px){.topbar{height:64px;padding:0 16px}.menu-btn{display:block;margin-left:auto}.nav{position:absolute;left:12px;right:12px;top:72px;display:none;flex-direction:column;align-items:stretch;gap:0;margin:0;padding:8px;border:1px solid rgba(255,255,255,.09);background:rgba(7,8,9,.97);box-shadow:0 20px 50px rgba(0,0,0,.5)}.nav.open{display:flex}.nav a{padding:14px 12px}.nav a:after{display:none}.top-actions{margin-left:0}.discord-mini{display:none}.hero{min-height:920px;align-items:flex-end;padding:95px 20px 105px}.dashboard-nav{margin-top:-35px}.stats-grid{grid-template-columns:repeat(3,1fr)}.clanwar{grid-template-columns:78px 1fr auto}}
@media(max-width:650px){html{scroll-padding-top:72px}.brand-word{display:none}.login-btn{padding:0 10px}.hero{min-height:820px;padding:82px 16px 82px}.btn{min-height:44px;padding:0 14px;font-size:9px}.dashboard-nav,.content-shell,footer{width:calc(100% - 20px)}.dashboard-nav{grid-template-columns:1fr 1fr}.dashboard-nav a{min-height:92px;padding:16px 12px}.dashboard-nav strong{font-size:11px}.dashboard-nav small{font-size:9px}.panel{padding:20px 13px}.section-head{align-items:flex-start;flex-direction:column}.roster-grid{grid-template-columns:1fr 1fr;gap:9px}.player-art{height:120px}.player-info{padding:11px}.player-meta{grid-template-columns:1fr 1fr}.metric:nth-child(3){display:none}.stats-grid{grid-template-columns:1fr 1fr}.stat-card{padding:17px 12px}.news-feed{grid-template-columns:1fr}.clanwar{grid-template-columns:1fr auto;padding:13px}.cw-status,.cw-opponent,.cw-meta{grid-column:1}.cw-score{grid-column:2;grid-row:1/4}.inline-form{grid-template-columns:1fr}.form-row{grid-template-columns:1fr 1fr}.form-row select{grid-column:1/-1}footer{flex-wrap:wrap}footer small{margin-left:0;width:100%}}
@media(max-width:420px){.roster-grid{grid-template-columns:1fr}.dashboard-nav{grid-template-columns:1fr}.dashboard-nav a{border-right:0!important;border-bottom:1px solid var(--line2)!important}.dashboard-nav a:last-child{border-bottom:0!important}}
@media(min-width:2200px){body{font-size:18px}.content-shell,.dashboard-nav,footer{max-width:2000px}.roster-grid{grid-template-columns:repeat(5,1fr)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.ember{animation:none}.reveal{opacity:1;transform:none;transition:none}}
.login-page{min-height:100svh;display:grid;place-items:center;padding:100px 18px 40px;background:radial-gradient(circle at 20% 20%,rgba(255,100,20,.08),transparent 30%)}.brand--login{position:fixed;left:28px;top:24px}.brand--login img{display:none}.login-card{width:min(460px,100%);padding:34px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(180deg,rgba(17,18,20,.92),rgba(8,9,10,.94));box-shadow:var(--shadow)}.login-card h1{margin:8px 0 8px;font-size:34px;letter-spacing:-.04em}.login-card>p{margin:0 0 24px;color:var(--muted);font-size:13px}.login-card form{display:grid;gap:14px}.login-card label{display:grid;gap:7px;color:#a4a7ab;font-size:10px;font-weight:850;letter-spacing:.08em}.login-card input{width:100%;padding:13px 14px;border:1px solid rgba(255,255,255,.1);background:#08090a;color:#fff;outline:none}.login-card input:focus{border-color:rgba(255,106,0,.6);box-shadow:0 0 0 3px rgba(255,106,0,.06)}.form-error{margin:0 0 16px;padding:11px 12px;border:1px solid rgba(255,93,98,.28);background:rgba(255,93,98,.07);color:#ff9b9f;font-size:12px}.back-link{display:inline-block;margin-top:20px;color:#8b8f94;font-size:11px}.back-link:hover{color:var(--orange2)}

/* V4: GRIT title and Spartan are baked into the fixed page background. */
.world{
  background:
    linear-gradient(to bottom,rgba(0,0,0,.02) 0%,rgba(0,0,0,.04) 44%,rgba(3,4,5,.42) 72%,#030405 100%),
}
.world:before{opacity:.32}
.world__smoke{opacity:.55}
.world__vignette{background:radial-gradient(circle at 48% 28%,transparent 18%,rgba(0,0,0,.16) 54%,rgba(0,0,0,.72) 100%)}
.hero--background-title{
  min-height:clamp(650px,88svh,980px);
  display:flex;
  align-items:flex-end;
  justify-content:center;
  padding:0 24px clamp(68px,9vh,110px);
  overflow:visible;
}
.hero-actions--background{margin:0;justify-content:center;position:relative;z-index:2}
.dashboard-nav{position:relative;z-index:4;margin-top:-34px}
.content-shell{position:relative;z-index:4}
.glass{background:linear-gradient(180deg,rgba(12,13,15,.78),rgba(7,8,9,.86));backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.panel{box-shadow:0 24px 70px rgba(0,0,0,.42)}
/* Large GRIT artwork is intentionally baked into the background image. */
main,footer{position:relative;z-index:1}
@media(max-width:900px){
  .world{background-position:38% top;background-size:auto 78vh;background-color:#030405}
  .hero--background-title{min-height:760px;padding:0 18px 72px}
  .hero-actions--background{width:100%;flex-wrap:wrap}
}
@media(max-width:650px){
  .world{background-position:32% 64px;background-size:auto 68vh}
  .hero--background-title{min-height:690px;padding:0 14px 58px}
  .hero-actions--background .btn{flex:1 1 150px}
}
@media(min-width:1800px){
  .world{background-size:cover;background-position:center top}
  .hero--background-title{min-height:900px}
}
/* GRIT V6 admin dashboard */
.admin-page{min-height:100vh;background:radial-gradient(circle at 62% 20%,#191919 0,#101111 38%,#080909 100%);color:#eee;font-family:inherit}.admin-top{height:72px;position:fixed;inset:0 0 auto 0;z-index:30;background:#090a0a;border-bottom:1px solid #252525;display:flex;align-items:center;justify-content:space-between;padding:0 34px}.admin-logo{font-size:30px;font-weight:1000;font-style:italic;color:#ff6a00;text-decoration:none;letter-spacing:-2px}.admin-user{font-size:13px;font-weight:800}.admin-user::first-letter{color:#ff6500}.admin-side{position:fixed;z-index:20;top:72px;bottom:0;left:0;width:235px;background:#090a0a;border-right:1px solid #242424;padding:28px 14px;display:flex;flex-direction:column;gap:8px}.admin-side>a,.admin-side button{display:block;width:100%;box-sizing:border-box;border:0;background:transparent;color:#c9c9c9;text-decoration:none;text-align:left;padding:15px 18px;border-radius:7px;font:800 13px inherit;cursor:pointer}.admin-side>a.active{color:#ff6a00;background:linear-gradient(90deg,rgba(255,100,0,.16),rgba(255,100,0,.04))}.admin-side form{margin-top:auto}.admin-side button{background:#141515}.admin-main{margin-left:235px;padding:112px 46px 90px;position:relative;z-index:1}.admin-section{max-width:1450px;margin:0 auto}.admin-title-row{display:flex;justify-content:space-between;align-items:center;gap:30px;margin-bottom:32px}.admin-title-row h1,.admin-section h2{margin:0;color:#ff6a00;font-size:28px}.admin-title-row p,.admin-sub p{margin:7px 0 0;color:#a9aaac}.admin-add{display:flex;gap:10px}.admin-add input{width:290px;background:#171818;border:1px solid #353535;color:#fff;padding:14px 16px;border-radius:5px;outline:none}.admin-add input:focus{border-color:#ff6a00}.admin-add button{border:0;border-radius:5px;background:#ff6500;color:white;font-weight:900;padding:0 25px;cursor:pointer}.admin-roster-head,.admin-roster-row{display:grid;grid-template-columns:1.6fr 1fr .75fr .85fr 1fr .45fr;align-items:center;gap:18px}.admin-roster-head{color:#ff6a00;font-size:12px;font-weight:900;border-bottom:1px solid #c65300;padding:12px 14px}.admin-roster-row{min-height:72px;background:linear-gradient(90deg,#171818,#131414);border-radius:5px;margin-top:7px;padding:0 14px;color:#e3e3e3}.admin-player{display:flex;align-items:center;gap:14px}.admin-player img,.admin-avatar{width:44px;height:44px;border-radius:50%;object-fit:cover;background:#292929;display:grid;place-items:center;color:#ff6a00;font-weight:900}.admin-level{display:inline-grid;place-items:center;width:30px;height:30px;border:2px solid #ff5a00;clip-path:polygon(50% 0,95% 25%,95% 75%,50% 100%,5% 75%,5% 25%);color:#ff6a00;font-weight:900}.admin-country{background:#292a2a;padding:7px 9px;border-radius:6px;font-size:12px}.admin-delete{border:0;background:transparent;color:#ff4b1a;font-size:24px;cursor:pointer}.admin-delete:hover{color:#fff}.admin-refresh{margin-top:18px;border:1px solid #333;background:#121313;color:#bbb;border-radius:5px;padding:11px 15px;cursor:pointer}.admin-sub{margin-top:70px;padding-top:25px;border-top:1px solid #242424}.admin-stat-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}.admin-stat-grid>div{background:#151616;padding:20px;border-radius:6px}.admin-stat-grid small{display:block;color:#999}.admin-stat-grid strong{font-size:26px;color:#ff6a00}.admin-link{display:inline-block;margin-top:15px;color:#ff6a00}.admin-footer{position:fixed;bottom:18px;left:235px;right:0;text-align:center;color:#888;font-size:12px;pointer-events:none}.admin-footer b{color:#ff6a00}.admin-empty{padding:30px;color:#999}.admin-message{position:fixed;right:24px;bottom:24px;z-index:100;background:#151515;border:1px solid #ff6500;padding:13px 18px;border-radius:6px;opacity:0;transform:translateY(15px);pointer-events:none}.admin-message.show{opacity:1;transform:none}.admin-message.error{border-color:#e33;color:#ffaaaa}
@media(max-width:850px){.admin-side{width:70px;padding:20px 8px}.admin-side>a,.admin-side button{font-size:0;padding:15px;text-align:center}.admin-side>a::first-letter,.admin-side button::first-letter{font-size:18px}.admin-main{margin-left:70px;padding:100px 16px 70px}.admin-footer{left:70px}.admin-title-row{align-items:stretch;flex-direction:column}.admin-add{width:100%}.admin-add input{width:auto;flex:1}.admin-roster-head{display:none}.admin-roster-row{grid-template-columns:1.6fr .7fr .8fr .5fr;gap:8px;padding:12px}.admin-roster-row>div:nth-child(4),.admin-roster-row>div:nth-child(5){display:none}.admin-stat-grid{grid-template-columns:repeat(2,1fr)}}

/* GRIT Admin V7 */
.admin-side .admin-nav{display:block;width:100%;box-sizing:border-box;border:0;background:transparent;color:#c9c9c9;text-decoration:none;text-align:left;padding:15px 18px;border-radius:7px;font:800 13px inherit;cursor:pointer}
.admin-side .admin-nav.active{color:#ff6a00;background:linear-gradient(90deg,rgba(255,100,0,.16),rgba(255,100,0,.04))}
.admin-view{display:none;max-width:1450px;margin:0 auto;animation:adminFade .18s ease}
.admin-view.active{display:block}
@keyframes adminFade{from{opacity:.2;transform:translateY(5px)}to{opacity:1;transform:none}}
.admin-card{background:linear-gradient(135deg,#171818,#111212);border:1px solid #2a2b2b;border-radius:7px;padding:24px;box-shadow:0 18px 50px rgba(0,0,0,.18)}
.admin-card h2{font-size:18px;margin:0;color:#ff6a00}.admin-card p{color:#999}.admin-card label,.admin-wide-label{display:flex;flex-direction:column;gap:7px;color:#ff6a00;font-size:11px;font-weight:900;letter-spacing:.05em}
.admin-card input,.admin-card textarea,.admin-card select{box-sizing:border-box;width:100%;border:1px solid #333;background:#101111;color:#eee;border-radius:5px;padding:13px 14px;outline:none;font:inherit}.admin-card input:focus,.admin-card textarea:focus,.admin-card select:focus{border-color:#ff6500}.admin-card textarea{min-height:105px;resize:vertical}.admin-form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.admin-wide-label{margin-top:16px}.admin-primary{margin-top:16px;border:0;border-radius:5px;background:#ff6500;color:white;font-weight:900;padding:13px 22px;cursor:pointer}.admin-primary:hover{filter:brightness(1.08)}.admin-list-title{margin:28px 0 12px;color:#ff6a00;font-size:12px;font-weight:1000;letter-spacing:.08em}.admin-match-list,.admin-news-row{display:flex;flex-direction:column;gap:7px}.admin-match-row{display:grid;grid-template-columns:2fr .7fr .55fr 1.5fr .25fr;gap:18px;align-items:center;background:linear-gradient(90deg,#171818,#131414);border-radius:5px;padding:16px 18px;margin-bottom:7px}.admin-match-row strong{display:block}.admin-match-row small,.admin-news-row small{display:block;color:#8f9090;margin-top:5px}.admin-vs{color:#ff6500;margin:0 7px}.admin-status{font-size:10px;font-weight:1000;border:1px solid #555;border-radius:20px;padding:6px 9px}.admin-status.win{color:#6ee7a5;border-color:#2b7d53}.admin-status.loss{color:#ff7777;border-color:#813b3b}.admin-status.draw{color:#ffd36e;border-color:#806a38}.admin-status.upcoming{color:#ff8b3d;border-color:#8f4c20}.admin-score{font-size:20px;font-weight:900;color:#fff}.admin-performance-card{margin-top:22px}.admin-performance-head,.admin-performance-row{display:grid;grid-template-columns:1.7fr repeat(5,.75fr);gap:16px;align-items:center}.admin-performance-head{color:#ff6a00;font-size:11px;font-weight:900;padding:10px 12px;border-bottom:1px solid #4f2c14}.admin-performance-row{padding:11px 12px;border-bottom:1px solid #242525}.admin-settings-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.admin-card-head{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:20px}.admin-switch{display:block!important;position:relative;width:54px;min-width:54px;height:28px}.admin-switch input{opacity:0;width:0;height:0;padding:0}.admin-switch span{position:absolute;inset:0;background:#292a2a;border-radius:30px;cursor:pointer;transition:.2s}.admin-switch span:after{content:'';position:absolute;width:20px;height:20px;left:4px;top:4px;background:#aaa;border-radius:50%;transition:.2s}.admin-switch input:checked+span{background:#7b3608}.admin-switch input:checked+span:after{transform:translateX(26px);background:#ff6500}.admin-news-row{flex-direction:row;justify-content:space-between;align-items:flex-start;background:#111212;border:1px solid #252626;padding:15px;border-radius:5px;margin-bottom:7px}.admin-news-row p{white-space:pre-wrap;margin:8px 0 0;color:#bbb;line-height:1.5}.admin-news-row .admin-delete{flex:0 0 auto}
@media(max-width:950px){.admin-form-grid{grid-template-columns:1fr 1fr}.admin-settings-grid{grid-template-columns:1fr}.admin-match-row{grid-template-columns:1.5fr .8fr .55fr .25fr}.admin-match-row>div:nth-child(4){display:none}.admin-performance-head,.admin-performance-row{grid-template-columns:1.5fr repeat(3,.7fr)}.admin-performance-head span:nth-child(4),.admin-performance-head span:nth-child(5),.admin-performance-row>div:nth-child(4),.admin-performance-row>div:nth-child(5){display:none}}
@media(max-width:650px){.admin-form-grid{grid-template-columns:1fr}.admin-match-row{grid-template-columns:1.5fr .8fr .25fr}.admin-match-row>div:nth-child(3){display:none}.admin-performance-head,.admin-performance-row{grid-template-columns:1.6fr .8fr .8fr}.admin-performance-head span:nth-child(6),.admin-performance-row>div:nth-child(6){display:none}}

/* V8: clan identity in match cards */
.cw-grit{color:var(--orange);font-weight:900;letter-spacing:.06em}.cw-vs{color:var(--muted);font-size:.78em;margin:0 .28em}


/* =========================================================
   V17 — USER-PROVIDED TALL BACKGROUND
   Exact uploaded image, no resizing and no CSS cover/zoom.
   ========================================================= */

html {
  background:#020202 !important;
}

body {
  position:relative !important;
  background-color:#020202 !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-attachment:scroll !important;
}

/* Disable all older fixed-background layers and effects. */
.world {
  position:fixed !important;
  inset:0 !important;
  z-index:0 !important;
  pointer-events:none !important;
  background:none !important;
  transform:none !important;
  filter:none !important;
}

.world::before,
.world::after,
.world__smoke,
.world__vignette {
  display:none !important;
}

/* Artwork already contains GRIT + motto. */
.hero--background-title {
  min-height:clamp(620px,72vw,1120px) !important;
  background:none !important;
}

main,
footer,
.content-shell {
  background:transparent !important;
}

/* Keep panels readable without covering the artwork completely. */
.glass,
.panel {
  background:linear-gradient(180deg,rgba(7,8,9,.80),rgba(3,4,5,.90)) !important;
  backdrop-filter:blur(7px);
  -webkit-backdrop-filter:blur(7px);
}

/* Never switch to cover or viewport-height scaling. */
@media(max-width:1200px) {
  body {
    background-size:100% auto !important;
    background-position:center top !important;
  }
}

@media(max-width:650px) {
  body {
    background-size:100% auto !important;
    background-position:center top !important;
  }
  .hero--background-title {
    min-height:78vw !important;
  }
}


/* V19 — News: full-width cards + reactions + comments */
.news-feed{
  display:grid !important;
  grid-template-columns:1fr !important;
  gap:14px !important;
  width:100%;
}

.news-item{
  width:100%;
  box-sizing:border-box;
  min-height:0 !important;
  padding:24px 26px !important;
  border:1px solid rgba(255,255,255,.10) !important;
  background:rgba(10,11,12,.90) !important;
}

.news-date{
  display:block;
}

.news-body{
  max-width:none !important;
  margin-bottom:18px !important;
}

.news-actions{
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.07);
}

.news-vote,
.news-comments-toggle{
  appearance:none;
  border:1px solid rgba(255,255,255,.10);
  background:#111314;
  color:#b8babd;
  border-radius:5px;
  min-height:36px;
  padding:0 12px;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}

.news-vote:hover,
.news-comments-toggle:hover,
.news-vote.active{
  color:#fff;
  border-color:#ff6500;
  background:rgba(255,101,0,.10);
}

.news-comments{
  display:none;
  margin-top:14px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.07);
}

.news-comments.open{
  display:block;
}

.news-comments-list{
  display:flex;
  flex-direction:column;
  gap:8px;
}

.news-comment{
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.07);
  background:#0d0f10;
}

.news-comment-head{
  display:flex;
  gap:10px;
  align-items:center;
  margin-bottom:6px;
}

.news-comment-head strong{
  color:#ff710e;
  font-size:11px;
}

.news-comment-head time{
  color:#777c80;
  font-size:9px;
}

.news-comment p{
  margin:0 !important;
  color:#c4c6c8 !important;
  font-size:12px !important;
  white-space:pre-wrap;
}

.comment-delete{
  margin-left:auto;
  border:0;
  background:transparent;
  color:#777;
  cursor:pointer;
  font-size:17px;
}

.comment-delete:hover{
  color:#ff6500;
}

.news-comment-form{
  display:grid;
  grid-template-columns:1fr auto;
  gap:8px;
  margin-top:12px;
}

.news-comment-form textarea{
  box-sizing:border-box;
  width:100%;
  min-height:64px;
  resize:vertical;
  border:1px solid #2b2d2e;
  background:#0d0f10;
  color:#eee;
  padding:11px 12px;
  font:inherit;
}

.news-comment-send{
  align-self:stretch;
  min-width:100px;
  border:1px solid #ff6500;
  background:#ff6500;
  color:#fff;
  font-size:10px;
  font-weight:900;
  cursor:pointer;
}

.news-login-note,
.news-no-comments{
  color:#777c80;
  font-size:11px;
  padding:8px 0;
}

@media(max-width:650px){
  .news-item{
    padding:18px 15px !important;
  }
  .news-comment-form{
    grid-template-columns:1fr;
  }
  .news-comment-send{
    min-height:42px;
  }
}


/* V20 — Member registration/login */
.register-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:0 13px;
  border:1px solid #ff6500;
  background:#ff6500;
  color:#050505;
  text-decoration:none;
  font-size:10px;
  font-weight:900;
  letter-spacing:.08em;
}

.register-btn:hover{
  filter:brightness(1.08);
}

.top-logout{
  margin:0;
  display:inline-flex;
}

.top-logout .login-btn{
  cursor:pointer;
  font:inherit;
}

.member-name{
  color:#a8abad;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
  max-width:140px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}

.auth-links{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin-top:16px;
}

.auth-links a{
  color:#aeb0b2;
  font-size:11px;
  text-decoration:none;
}

.auth-links a:hover{
  color:#ff710e;
}

@media(max-width:650px){
  .member-name{
    display:none;
  }
  .register-btn{
    padding:0 9px;
    font-size:9px;
  }
}


/* V21 — Homepage section visibility controls */
.admin-section-visibility{
  margin-bottom:18px;
}

.section-toggle-list{
  display:flex;
  flex-direction:column;
  margin-top:8px;
}

.section-toggle-row{
  display:flex !important;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px 0;
  border-top:1px solid rgba(255,255,255,.07);
  cursor:pointer;
}

.section-toggle-row:first-child{
  border-top:0;
}

.section-toggle-row > div{
  display:flex;
  flex-direction:column;
  gap:4px;
}

.section-toggle-row strong{
  color:#f0f0f0;
  font-size:12px;
  letter-spacing:.06em;
}

.section-toggle-row small{
  color:#777c80;
  font-size:10px;
}


/* V22 — Discord CTA */
.discord-mini{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
}
.discord-icon{
  width:19px;
  height:15px;
  flex:0 0 auto;
}


/* V23 — GRIT visual consistency and layout fixes */

/* Discord CTA uses the exact GRIT accent orange. */
.discord-mini,
.discord-mini:hover,
.discord-mini:focus{
  border-color:#ff6500 !important;
}
.discord-mini{
  color:#ff6500 !important;
}
.discord-mini:hover,
.discord-mini:focus{
  background:rgba(255,101,0,.10) !important;
  color:#ff6500 !important;
}
.discord-icon{
  color:#ff6500 !important;
}

/* News reactions: technical line icons instead of emoji. */
.news-vote,
.news-comments-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  min-width:46px;
  border-radius:2px !important;
  border:1px solid #2a2d2f !important;
  background:#0d0f10 !important;
  color:#85898c !important;
  letter-spacing:.06em;
}
.news-vote:hover,
.news-comments-toggle:hover{
  border-color:#ff6500 !important;
  color:#ff6500 !important;
  background:rgba(255,101,0,.06) !important;
}
.news-vote.active{
  border-color:#ff6500 !important;
  color:#ff6500 !important;
  background:rgba(255,101,0,.10) !important;
}
.news-action-icon{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linejoin:round;
  stroke-linecap:round;
  flex:0 0 auto;
}
.news-action-icon--down{
  transform:rotate(180deg);
}
.news-action-label{
  font-size:9px;
  font-weight:900;
}

/* Admin visibility rows: text left, switch right. Override generic admin label/input rules. */
.admin-section-visibility .section-toggle-list{
  width:100%;
}
.admin-section-visibility label.section-toggle-row{
  width:100% !important;
  box-sizing:border-box;
  display:flex !important;
  flex-direction:row !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:24px !important;
  margin:0 !important;
  padding:15px 0 !important;
}
.admin-section-visibility .section-toggle-row > div{
  flex:1 1 auto;
  min-width:0;
  align-items:flex-start !important;
  text-align:left !important;
}
.admin-section-visibility .section-toggle-row > .admin-switch{
  flex:0 0 auto !important;
  width:42px !important;
  margin:0 !important;
}
.admin-section-visibility .section-toggle-row input[type="checkbox"]{
  position:absolute !important;
  opacity:0 !important;
  width:1px !important;
  height:1px !important;
  margin:0 !important;
}

/* Footer must stay in document flow and never overlay cards. */
.admin-shell,
.admin-main,
.admin-content{
  min-height:0;
}
.admin-footer{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:auto !important;
  margin-top:28px !important;
  clear:both;
}

/* Public GRIT footer. */
.site-footer{
  position:relative;
  width:min(1180px,calc(100% - 40px));
  box-sizing:border-box;
  margin:28px auto 0;
  padding:18px 0 24px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#666b6e;
  font-size:10px;
  letter-spacing:.04em;
}
.site-footer strong{
  color:#ff6500;
  font-weight:900;
}

@media(max-width:650px){
  .news-action-label{
    display:none;
  }
  .site-footer{
    width:calc(100% - 28px);
  }
}


/* V27 — filigranere Fenstertitel */
.section-head h2{
  font-weight:500 !important;
  letter-spacing:.11em !important;
  font-size:clamp(22px,2.1vw,34px) !important;
}

/* V27 — Match-Karten ohne Konflikt mit dem alten .clanwar-Grit */
.match-card{
  position:relative;
  display:block;
  width:100%;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.07);
  background:#0b0c0d;
  overflow:hidden;
}
.match-summary{
  appearance:none;
  width:100%;
  box-sizing:border-box;
  display:grid;
  grid-template-columns:92px minmax(0,1fr) auto;
  gap:18px;
  align-items:center;
  padding:16px 18px;
  border:0;
  background:transparent;
  color:inherit;
  text-align:left;
  cursor:pointer;
}
.match-summary:hover{background:rgba(255,255,255,.025)}
.match-summary-center{display:block;min-width:0}
.match-summary-center .cw-opponent,.match-summary-center .cw-meta{display:block}
.match-summary-right{display:flex;align-items:center;gap:12px}
.match-chevron{width:18px;height:18px;fill:none;stroke:#777c80;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .18s ease}
.match-card.open .match-chevron{transform:rotate(180deg)}
.match-details{display:none;padding:12px 18px 17px;border-top:1px solid rgba(255,255,255,.07);background:rgba(0,0,0,.15)}
.match-details.open{display:block}
.match-player-head,.match-player-row{display:grid;grid-template-columns:minmax(150px,1fr) 48px 48px 48px 58px;gap:8px;align-items:center}
.match-player-head{padding:3px 0 8px;color:#676c70;font-size:9px;letter-spacing:.08em}
.match-player-row{padding:9px 0;border-top:1px solid rgba(255,255,255,.055);color:#abb0b3;font-size:11px}
.match-player-row strong{color:#e4e4e4;font-weight:600}
.match-no-players{padding:8px 0 3px;color:#707579;font-size:11px}

/* Admin Spielerwahl */
.match-player-picker-wrap{grid-column:1/-1;margin:4px 0 16px}
.match-player-picker-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}
.match-player-picker-head strong{font-size:11px}
.match-player-picker-head small{color:#707578;font-size:9px}
.match-player-picker{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px}
label.match-player-option{display:flex!important;flex-direction:row!important;align-items:center!important;gap:9px!important;width:auto!important;margin:0!important;padding:10px 11px!important;border:1px solid #292c2e;background:#0d0f10;cursor:pointer}
.match-player-option input{position:absolute!important;opacity:0!important;width:1px!important;height:1px!important}
.match-player-check{width:12px;height:12px;flex:0 0 auto;border:1px solid #555a5d}
.match-player-option input:checked + .match-player-check{border-color:#ff6500;background:#ff6500;box-shadow:inset 0 0 0 3px #0d0f10}
.match-player-name{color:#c9cbcc;font-size:11px}

/* Admin Match-Karten */
.admin-match-row--expandable{display:block!important;padding:0!important;overflow:hidden}
.admin-match-summary-grid{display:grid;grid-template-columns:2fr .7fr .55fr 1.5fr auto;gap:18px;align-items:center;padding:16px 18px}
.admin-match-actions{display:flex;justify-content:flex-end;align-items:center;gap:8px}
.admin-mini{min-height:30px;padding:0 9px;border:1px solid #303437;background:#101213;color:#969a9d;font-size:9px;font-weight:800;cursor:pointer}
.admin-mini:hover{border-color:#ff6500;color:#ff6500}
.admin-match-extra{display:none;padding:10px 18px 15px;border-top:1px solid rgba(255,255,255,.06)}
.admin-match-extra.open{display:block}
.admin-match-player-head,.admin-match-player{display:grid;grid-template-columns:minmax(150px,1fr) 58px 58px 58px auto;gap:8px;align-items:center}
.admin-match-player-head{padding:4px 0 7px;color:#666b6e;font-size:9px}
.admin-match-player{padding:7px 0;border-top:1px solid rgba(255,255,255,.05)}
.admin-match-player input{width:100%!important;min-width:0!important;box-sizing:border-box;padding:7px 8px!important}

@media(max-width:900px){
  .admin-match-summary-grid{grid-template-columns:1.5fr .8fr .55fr auto}
  .admin-match-summary-grid>div:nth-child(4){display:none}
}
@media(max-width:650px){
  .match-summary{grid-template-columns:1fr auto;gap:9px 12px;padding:14px}
  .match-summary>.cw-status{grid-column:1}
  .match-summary-center{grid-column:1}
  .match-summary-right{grid-column:2;grid-row:1/3}
  .match-details{padding:10px 14px 15px;overflow-x:auto}
  .match-player-head,.match-player-row{min-width:420px}
  .admin-match-summary-grid{grid-template-columns:1fr auto;gap:10px}
  .admin-match-summary-grid>div:nth-child(3),.admin-match-summary-grid>div:nth-child(4){display:none}
  .admin-match-extra{padding:10px 12px 14px}
  .admin-match-player-head,.admin-match-player{grid-template-columns:minmax(110px,1fr) 48px 48px 48px}
  .admin-match-player-head span:last-child{display:none}
  .admin-match-player .admin-mini{grid-column:1/-1}
}


/* V28 — Hauptnavigation mittig */
.topbar .main-nav,
.site-header .main-nav,
header .main-nav{
  position:absolute;
  left:50%;
  transform:translateX(-50%);
  margin:0 !important;
}

/* Mobile Navigation unverändert funktionsfähig lassen */
@media(max-width:900px){
  .topbar .main-nav,
  .site-header .main-nav,
  header .main-nav{
    position:static;
    left:auto;
    transform:none;
  }
}


/* V33 — Counter-Strike 2 cards: one compact, slowly moving row */
.roster-marquee{
  width:100%;
  overflow:hidden;
  position:relative;
  padding:2px 0 8px;
  mask-image:linear-gradient(to right,transparent 0,#000 3%,#000 97%,transparent 100%);
  -webkit-mask-image:linear-gradient(to right,transparent 0,#000 3%,#000 97%,transparent 100%);
}

.roster-marquee .roster-grid{
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:16px !important;
  width:max-content;
  min-width:max-content;
  align-items:stretch;
}

.roster-marquee .player-card{
  flex:0 0 230px !important;
  width:230px !important;
  min-width:230px !important;
}

.roster-marquee .player-art{
  height:145px !important;
  min-height:145px !important;
}

.roster-marquee .player-art img{
  width:100%;
  height:100%;
  object-fit:cover;
}

.roster-marquee .roster-grid.is-marquee{
  animation:gridRosterMarquee 58s linear infinite;
  will-change:transform;
}

.roster-marquee:hover .roster-grid.is-marquee,
.roster-marquee:focus-within .roster-grid.is-marquee{
  animation-play-state:paused;
}

@keyframes gridRosterMarquee{
  from{transform:translateX(0)}
  to{transform:translateX(calc(-50% - 8px))}
}

@media(max-width:650px){
  .roster-marquee .player-card{
    flex-basis:190px !important;
    width:190px !important;
    min-width:190px !important;
  }
  .roster-marquee .player-art{
    height:120px !important;
    min-height:120px !important;
  }
  .roster-marquee .roster-grid.is-marquee{
    animation-duration:48s;
  }
}

@media(prefers-reduced-motion:reduce){
  .roster-marquee .roster-grid.is-marquee{
    animation:none;
    transform:none;
  }
  .roster-marquee{
    overflow-x:auto;
  }
}


/* V34 — noch kompaktere FACEIT/API-Karten */
.roster-marquee .player-card{
  flex-basis:190px !important;
  width:190px !important;
  min-width:190px !important;
}
.roster-marquee .player-art{
  height:112px !important;
  min-height:112px !important;
}
.roster-marquee .player-info{
  padding:12px 13px !important;
}
.roster-marquee .player-name{
  font-size:16px !important;
}
.roster-marquee .player-meta{
  gap:7px !important;
}
.roster-marquee .metric small{
  font-size:8px !important;
}
.roster-marquee .metric strong{
  font-size:13px !important;
}
.roster-marquee .player-card--clickable{
  cursor:pointer;
}
.roster-marquee .player-card--clickable:focus-visible{
  outline:2px solid #ff6500;
  outline-offset:2px;
}

@media(max-width:650px){
  .roster-marquee .player-card{
    flex-basis:165px !important;
    width:165px !important;
    min-width:165px !important;
  }
  .roster-marquee .player-art{
    height:98px !important;
    min-height:98px !important;
  }
}


/* V37 — Teams Hover-Menü, bestehendes GRIT-Design bleibt unverändert */
.teams-nav{
  position:relative;
  display:flex;
  align-items:center;
  height:100%;
}
.teams-nav__trigger{
  display:flex !important;
  align-items:center;
  gap:6px;
}
.teams-nav__chevron{
  color:#ff6500;
  font-size:12px;
  transition:transform .18s ease;
}
.teams-nav__menu{
  position:absolute;
  top:calc(100% + 14px);
  left:50%;
  transform:translate(-50%,8px);
  width:360px;
  box-sizing:border-box;
  padding:10px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  background:rgba(9,10,11,.98);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:0 18px 45px rgba(0,0,0,.48);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .18s ease,transform .18s ease,visibility .18s ease;
  z-index:1000;
}
.teams-nav__menu::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:-16px;
  height:16px;
}
.teams-nav:hover .teams-nav__menu,
.teams-nav:focus-within .teams-nav__menu{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translate(-50%,0);
}
.teams-nav:hover .teams-nav__chevron,
.teams-nav:focus-within .teams-nav__chevron{
  transform:rotate(180deg);
}
.game-tile{
  min-height:82px;
  box-sizing:border-box;
  padding:12px !important;
  display:flex !important;
  align-items:center;
  gap:11px;
  border:1px solid rgba(255,255,255,.07);
  background:#0d0f10;
  color:#e8e8e8 !important;
  text-decoration:none !important;
}
.game-tile:hover,
.game-tile:focus-visible{
  border-color:rgba(255,101,0,.65);
  background:#111315;
}
.game-tile__icon{
  width:40px;
  height:40px;
  flex:0 0 40px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,101,0,.35);
  background:rgba(255,101,0,.06);
  color:#ff6500;
}
.game-tile__icon svg{
  width:29px;
  height:29px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.4;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.game-tile__icon--plus{
  font-size:24px;
  font-weight:300;
}
.game-tile strong{
  display:block;
  font-size:11px;
  line-height:1.25;
  letter-spacing:.045em;
}
.game-tile small{
  display:block;
  margin-top:5px;
  color:#666b6e;
  font-size:8px;
  letter-spacing:.08em;
}
.game-tile--active small{color:#ff6500}
.game-tile--placeholder{opacity:.48}

@media(max-width:900px){
  .teams-nav{
    display:block;
    height:auto;
  }
  .teams-nav__menu{
    position:static;
    width:100%;
    grid-template-columns:1fr;
    transform:none;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    display:none;
    margin-top:6px;
    box-shadow:none;
  }
  .teams-nav:hover .teams-nav__menu,
  .teams-nav:focus-within .teams-nav__menu{
    display:grid;
    transform:none;
  }
}


/* V38 — eindeutiges Counter-Strike-2-Zeichen */
.game-tile__icon--cs2{
  border-color:rgba(255,101,0,.55);
  background:#0b0c0d;
}
.cs2-logo-text{
  display:block;
  color:#ff6500;
  font-family:Arial Black, Impact, sans-serif;
  font-size:18px;
  font-weight:900;
  line-height:1;
  letter-spacing:-1.5px;
  transform:skew(-8deg);
}


/* V41 — TEAMS-Menü passt sich der Anzahl der Spiel-Kacheln an */
.teams-nav__menu{
  width:max-content !important;
  min-width:0 !important;
  grid-template-columns:repeat(2, 165px) !important;
}

/* Wenn nur eine Kachel sichtbar ist (z.B. ausgeloggt), kein leerer Platz */
.teams-nav__menu .game-tile:only-child{
  width:165px;
}
.teams-nav__menu:has(.game-tile:only-child){
  grid-template-columns:165px !important;
}

@media(max-width:900px){
  .teams-nav__menu,
  .teams-nav__menu:has(.game-tile:only-child){
    width:100% !important;
    grid-template-columns:1fr !important;
  }
}


/* V42 — Admin Roster: FACEIT-Level ruhiger und sauberer darstellen */
.admin-page .roster-table .level,
.admin-roster .level,
.admin-player-row .level{
  position:static !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:34px !important;
  height:34px !important;
  min-width:34px !important;
  padding:0 !important;
  margin:0 auto !important;
  border:1px solid rgba(255,101,0,.55) !important;
  border-radius:50% !important;
  background:rgba(255,101,0,.06) !important;
  color:#ff6500 !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:none !important;
  clip-path:none !important;
}

.admin-page .roster-table .level::before,
.admin-page .roster-table .level::after,
.admin-roster .level::before,
.admin-roster .level::after,
.admin-player-row .level::before,
.admin-player-row .level::after{
  content:none !important;
  display:none !important;
}


/* V44 — tatsächliches FACEIT-Level im Admin-Roster */
.admin-roster .admin-faceit-level{
  position:static !important;
  box-sizing:border-box !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  padding:0 !important;
  margin:0 auto !important;
  border:1px solid rgba(255,101,0,.55) !important;
  border-radius:50% !important;
  background:rgba(255,101,0,.06) !important;
  color:#ff6500 !important;
  font-size:13px !important;
  font-weight:800 !important;
  line-height:1 !important;
  box-shadow:none !important;
  clip-path:none !important;
  transform:none !important;
}
.admin-roster .admin-faceit-level::before,
.admin-roster .admin-faceit-level::after{
  content:none !important;
  display:none !important;
}


/* V45 — Admin-Roster: sauberes Löschen-Symbol */
.admin-roster .admin-delete--roster{
  width:34px !important;
  height:34px !important;
  padding:0 !important;
  display:inline-grid !important;
  place-items:center !important;
  border:1px solid rgba(255,255,255,.09) !important;
  border-radius:4px !important;
  background:#0d0f10 !important;
  color:#777d80 !important;
  box-shadow:none !important;
  font-size:0 !important;
  cursor:pointer;
  transition:border-color .16s ease,color .16s ease,background .16s ease;
}
.admin-roster .admin-delete--roster:hover,
.admin-roster .admin-delete--roster:focus-visible{
  border-color:rgba(255,101,0,.65) !important;
  background:rgba(255,101,0,.06) !important;
  color:#ff6500 !important;
}
.admin-trash-icon{
  width:16px;
  height:16px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}


/* V46 — News-Bilder und vorbereitete Social-Auswahl */
.admin-upload-label{display:grid;gap:7px}
.admin-upload-label input[type="file"]{width:100%;box-sizing:border-box;padding:10px;border:1px solid rgba(255,255,255,.09);background:#0d0f10;color:#8f9497}
.news-social-publish{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;padding:12px 0 2px}
.news-social-publish__title{width:100%;color:#777d80;font-size:9px;font-weight:800;letter-spacing:.12em}
.news-social-publish label{display:inline-flex!important;flex-direction:row!important;align-items:center!important;gap:7px!important;color:#c8cbcd;font-size:11px;cursor:pointer}
.news-social-publish input[type="checkbox"]{accent-color:#ff6500}
.news-image-button{display:block;width:100%;margin:0 0 14px;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}
.news-image{display:block;width:100%;max-height:460px;object-fit:cover;border:1px solid rgba(255,255,255,.07)}
.news-lightbox{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:28px;background:rgba(0,0,0,.9)}
.news-lightbox img{max-width:min(1200px,94vw);max-height:88vh;object-fit:contain}
.news-lightbox__close{position:fixed;top:20px;right:24px;width:42px;height:42px;border:1px solid rgba(255,255,255,.15);background:#0d0f10;color:#fff;font-size:26px;cursor:pointer}
.news-lightbox__close:hover{color:#ff6500;border-color:#ff6500}


/* V47 — Hintergrundbild vorübergehend deaktiviert */
html,
body{
  background-image:none !important;
  background-color:#242627 !important;
}
body::before,
body::after{
  background-image:none !important;
}


/* V48 — Roster-Unterkategorien / eigene Spiele */
.admin-game-tabs{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 24px}
.admin-game-tab{
  position:relative;display:flex;align-items:center;gap:10px;padding:10px 34px 10px 13px;
  border:1px solid rgba(255,255,255,.09);background:#0d0f10;color:#a5aaad;
  font:inherit;cursor:pointer;text-align:left
}
.admin-game-tab span:first-child{font-weight:800;font-size:11px;letter-spacing:.05em}
.admin-game-tab small{font-size:8px;color:#666d70;letter-spacing:.08em}
.admin-game-tab.active{border-color:rgba(255,101,0,.7);color:#ff6500;background:rgba(255,101,0,.06)}
.admin-game-remove{position:absolute;right:8px;top:50%;transform:translateY(-50%);font-size:17px;color:#666}
.admin-game-remove:hover{color:#ff6500}
.admin-roster-subhead{margin-top:4px}
.admin-roster-subhead h2{margin:0;font-size:18px;letter-spacing:.08em}
.admin-add-game input{min-width:220px}
.teams-game-menu{display:contents}
#customGameSections{display:contents}
.custom-game-panel{margin-top:24px}
.custom-game-roster{display:flex!important;flex-wrap:nowrap!important}
.custom-game-roster .player-card{width:190px;flex:0 0 190px}
@media(max-width:900px){
  .admin-add-game{width:100%}
  .admin-add-game input{min-width:0;flex:1}
  .admin-game-tabs{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px}
  .admin-game-tab{flex:0 0 auto}
}


/* V50 — dynamische Team-Bereiche zuverlässig sichtbar */
.custom-game-panel,
.custom-game-panel.is-ready{
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
}
.custom-game-panel{
  scroll-margin-top:92px;
}


/* V51 — saubere SVG-Icons für Übersicht & Statistiken */
.admin-side > a,
.admin-side > button{
  display:flex;
  align-items:center;
  gap:11px;
}
.admin-nav-icon{
  width:17px;
  height:17px;
  flex:0 0 17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}
.admin-side [data-view="stats"] .admin-nav-icon{
  fill:currentColor;
  stroke:none;
}


/* V55 — Statistik-Icon sauber wie die übrige Admin-Navigation ausrichten */
.admin-side [data-view="stats"]{
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
}
.admin-side [data-view="stats"] .admin-nav-icon{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  margin:0 !important;
}
.admin-side [data-view="stats"] > span{
  margin:0 !important;
}


/* V59 — Social-Plattformen mit klaren Marken-Symbolen */
.news-social-publish label{
  display:inline-flex;
  align-items:center;
  gap:7px;
}
.social-brand-icon{
  width:19px;
  height:19px;
  flex:0 0 19px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  line-height:1;
}
.social-brand-icon svg{
  width:19px;
  height:19px;
  display:block;
}
.social-facebook{
  border-radius:50%;
  background:#1877F2;
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:17px;
  font-weight:700;
  padding-top:3px;
  box-sizing:border-box;
}
.social-x{
  color:#fff;
  font-family:Arial,sans-serif;
  font-size:20px;
}
.social-instagram{
  border-radius:5px;
  background:linear-gradient(135deg,#833AB4,#E1306C 52%,#FCAF45);
}
.social-instagram svg{
  fill:none;
  stroke:#fff;
  stroke-width:1.8;
}
.social-discord{
  color:#5865F2;
}
.social-discord svg{
  fill:currentColor;
}


/* V60 — nur Desktop-Anordnung: Counter-Strike groß links, Matches/News rechts */
@media (min-width: 1100px){
  .desktop-dashboard-layout{
    display:grid;
    grid-template-columns:minmax(0, 1.72fr) minmax(340px, .88fr);
    gap:18px;
    align-items:start;
  }
  .desktop-dashboard-main,
  .desktop-dashboard-side{
    min-width:0;
  }
  .desktop-dashboard-side{
    display:flex;
    flex-direction:column;
    gap:18px;
  }
  .desktop-dashboard-layout .panel{
    margin-top:0;
  }
  .desktop-dashboard-main #roster{
    min-height:100%;
  }
}
@media (max-width: 1099px){
  .desktop-dashboard-layout{
    display:block;
  }
}


/* V61 — orangenen Pfeil neben TEAMS entfernen */
.teams-nav__chevron{
  display:none !important;
}


/* V63 — Desktop-Inhalte höher beginnen lassen; Design unverändert */
@media (min-width:1100px){
  .hero.hero--background-title{
    min-height:clamp(430px,43vw,650px) !important;
  }
}
@media (min-width:1800px){
  .hero.hero--background-title{
    min-height:clamp(470px,40vw,620px) !important;
  }
}


/* V64 — abgestimmtes Desktop-Layout mit Hero oben.
   Bestehende Funktionen und Karten bleiben unverändert. */
@media (min-width:1100px){
  .hero.hero--background-title{
    position:relative;
    min-height:clamp(350px,27vw,500px) !important;
    padding:0 !important;
    margin-top:72px;
    background-image:
      linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.10)),
    background-repeat:no-repeat !important;
    background-size:cover !important;
    background-position:center 7% !important;
    overflow:hidden !important;
  }

  .hero.hero--background-title::after{
    content:"";
    position:absolute;
    inset:0;
    pointer-events:none;
    background:
      linear-gradient(to bottom,rgba(0,0,0,.02) 65%,rgba(0,0,0,.42) 100%);
  }

  .hero-cta{
    position:absolute;
    z-index:2;
    left:61%;
    top:71%;
    transform:translate(-50%,-50%);
  }

  .hero-join-btn{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:190px;
    min-height:48px;
    padding:0 24px;
    border:1px solid rgba(255,101,0,.85);
    background:rgba(4,5,6,.58);
    color:#ff6500;
    font-size:10px;
    font-weight:950;
    letter-spacing:.11em;
    text-transform:uppercase;
    box-shadow:0 10px 34px rgba(0,0,0,.28);
    transition:.2s ease;
  }
  .hero-join-btn:hover{
    background:rgba(255,101,0,.11);
    box-shadow:0 0 26px rgba(255,101,0,.16);
    transform:translateY(-1px);
  }

  .content-shell{
    width:min(1840px,calc(100% - 48px)) !important;
    max-width:none !important;
    gap:16px !important;
    padding-top:0 !important;
  }

  .desktop-dashboard-layout{
    grid-template-columns:minmax(0,1.68fr) minmax(390px,.96fr) !important;
    gap:16px !important;
  }

  .desktop-dashboard-side{
    gap:16px !important;
    margin-top:0 !important;
  }

  .desktop-dashboard-layout .panel,
  #stats.panel{
    padding:clamp(20px,1.55vw,30px) !important;
  }

  #stats{
    margin-top:0 !important;
  }

  footer{
    width:min(1840px,calc(100% - 48px)) !important;
    max-width:none !important;
  }
}

/* Große Desktops: Hero bleibt präsent, Dashboard nutzt die Breite. */
@media (min-width:1800px){
  .hero.hero--background-title{
    min-height:480px !important;
    background-position:center 6% !important;
  }
  .hero-cta{
    left:61.5%;
    top:72%;
  }
}

/* Unterhalb Desktop bleibt die vorhandene responsive Darstellung erhalten. */
@media (max-width:1099px){
  .hero.hero--background-title{
    background-repeat:no-repeat !important;
    background-size:cover !important;
    background-position:center 7% !important;
  }
  .hero-cta{
    display:none;
  }
}


/* V65 — Hintergrund-Artwork läuft vom oberen Bereich hinter den Dashboard-Fenstern weiter.
   Nur Punkt 1: keine Änderung an Fensterbreiten, Karten oder Daten. */
.world{
  background-color:#242627 !important;
  background-repeat:no-repeat !important;
  background-position:center 72px !important;
  background-size:100% auto !important;
  background-attachment:scroll !important;
}

.hero.hero--background-title{
  background:none !important;
}

/* Kein harter Hintergrundwechsel zwischen oberem Motiv und Dashboard. */
main,
.content-shell,
.desktop-dashboard-layout,
.desktop-dashboard-main,
.desktop-dashboard-side{
  background:transparent !important;
}

/* Fenster bleiben dunkel, lassen das gemeinsame Artwork aber dezent durchscheinen. */
.glass,
.panel{
  background:linear-gradient(180deg,rgba(7,8,9,.86),rgba(3,4,5,.92)) !important;
  backdrop-filter:blur(5px);
  -webkit-backdrop-filter:blur(5px);
}

@media (min-width:1100px){
  .hero.hero--background-title{
    min-height:clamp(350px,27vw,500px) !important;
    margin-top:72px;
  }
}

@media (min-width:1800px){
  .hero.hero--background-title{
    min-height:480px !important;
  }
}


/* V67 — freigegebenes reines Artwork testen.
   Keine Layout-Grafiken im Hintergrund; echte Website-Fenster bleiben darüber. */
.world{
  background-image:url("../img/backgrounds/grit-background-3840x2500.png") !important;
  background-repeat:no-repeat !important;
  background-position:center 72px !important;
  background-size:100% auto !important;
  background-color:#242627 !important;
}

.hero.hero--background-title{
  background:none !important;
}

main,
.content-shell,
.desktop-dashboard-layout,
.desktop-dashboard-main,
.desktop-dashboard-side{
  background:transparent !important;
}


/* V68 — nur das vorhandene Hintergrundbild ca. 80px nach oben verschieben */
.world{
  background-position:center -8px !important;
}


/* V69 — Hintergrundposition abhängig von der Bildschirmhöhe.
   1080p bleibt wie V68, ab ca. 1440p wird das Artwork zusätzlich nach oben geschoben. */
.world{
  background-position:center -8px !important;
}

@media (min-height: 1300px){
  .world{
    background-position:center -98px !important;
  }
}


/* V70 — 1440p-Ansicht: Hintergrund weitere 80px nach oben.
   1080p bleibt unverändert. */
@media (min-height: 1300px){
  .world{
    background-position:center -178px !important;
  }
}


/* V71 — großer Monitor anhand der tatsächlichen Browserhöhe erkennen.
   Kleine/1080p-Ansicht bleibt unverändert, große Ansicht greift ab 1150px Viewport-Höhe. */
.world{
  background-position:center -8px !important;
}

@media (min-height: 1150px){
  .world{
    background-position:center -178px !important;
  }
}


/* V72 — nur den äußeren Schatten der öffentlichen Dashboard-Fenster entfernen.
   Rahmen, dunkle Glasflächen und Hintergrund bleiben unverändert. */
body:not(.admin-page) .content-shell .panel{
  box-shadow:none !important;
}


/* V73 — öffentlichen Fenster-Blur abschalten.
   Nur der Blur wird entfernt; Hintergrund, Rahmen, Transparenz und Position bleiben unverändert. */
body:not(.admin-page) .content-shell .glass,
body:not(.admin-page) .content-shell .panel{
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}


/* V74 — alte Hero-/World-Overlays vollständig deaktivieren.
   Das aktuelle Artwork, seine Position und das Dashboard bleiben unverändert. */
body:not(.admin-page) .hero.hero--background-title::before,
body:not(.admin-page) .hero.hero--background-title::after{
  content:none !important;
  display:none !important;
  background:none !important;
  box-shadow:none !important;
  filter:none !important;
}

body:not(.admin-page) .world::before,
body:not(.admin-page) .world::after,
body:not(.admin-page) .world__smoke,
body:not(.admin-page) .world__vignette{
  content:none !important;
  display:none !important;
  background:none !important;
  box-shadow:none !important;
  filter:none !important;
}

body:not(.admin-page) .hero.hero--background-title{
  box-shadow:none !important;
  filter:none !important;
}


/* V75 — Footer an das dunkle GRIT-Design anpassen.
   Nur die graue Footerfläche wird entfernt; Layout/Inhalt bleiben unverändert. */
body:not(.admin-page) footer{
  background:rgba(3,4,5,.96) !important;
  border-top:1px solid rgba(255,255,255,.06) !important;
}


/* V76 — graue Fläche unterhalb des hochgeschobenen Hintergrundbilds entfernen.
   Bildposition und Skalierung bleiben unverändert; nur die Grundfarbe dahinter wird schwarz. */
body:not(.admin-page),
body:not(.admin-page) .world{
  background-color:#030405 !important;
}

body:not(.admin-page) footer{
  background:#030405 !important;
}


/* V77 — Footer transparent über dem bestehenden Hintergrundbild.
   Position und Skalierung des Artworks bleiben unverändert. */
body:not(.admin-page) footer{
  background:transparent !important;
  background-color:transparent !important;
  box-shadow:none !important;
}


/* V79 — neues 2560x1440-Artwork nicht mehr mit der alten V71-Verschiebung beschneiden.
   Nur die Hintergrundposition wird zurück auf oben gesetzt. */
body:not(.admin-page) .world{
  background-position:center top !important;
}


/* V80 — GRIT-Schrift unterhalb der festen Navigation vollständig sichtbar machen.
   Nur das 2560x1440-Hintergrundbild wird 80px nach unten gesetzt. */
body:not(.admin-page) .world{
  background-position:center 80px !important;
}


/* V81 — exakt das vom Nutzer gewählte Bild als Website-Hintergrund.
   Keine neue Bildgenerierung; Motiv/Position werden nicht verändert. */
body:not(.admin-page) .world{
  background-image:url("../img/backgrounds/grit-background-3840x2500.png") !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-color:#030405 !important;
}


/* V83 — GRIT-Logo links entfernt und Hauptnavigation exakt im Bildschirm zentriert.
   Rechte Discord/Admin-Bedienung sowie restliches Layout bleiben unverändert. */
body:not(.admin-page) .topbar{
  position:fixed;
}

body:not(.admin-page) .topbar .nav{
  position:absolute !important;
  left:50% !important;
  top:0 !important;
  height:72px !important;
  margin:0 !important;
  transform:translateX(-50%) !important;
  justify-content:center !important;
}


/* V91 — nur JOIN OUR DISCORD + ADMIN LOGIN wieder rechts ausrichten.
   Die mittige Hauptnavigation und der restliche Seitenaufbau bleiben unverändert. */
body:not(.admin-page) .topbar .top-actions,
body:not(.admin-page) .topbar .nav-actions,
body:not(.admin-page) .topbar .header-actions{
  margin-left:auto !important;
  margin-right:0 !important;
  justify-content:flex-end !important;
}

/* Fallback für die tatsächlich verwendete direkte Aktionsgruppe im Header. */
body:not(.admin-page) .topbar{
  position:fixed;
}
body:not(.admin-page) .topbar > :last-child{
  margin-left:auto !important;
}


/* V112 — sichtbare Scrollbalken in NEWS und MATCH OPERATIONS ausblenden.
   Scrollen mit Mausrad/Touchpad/Touch bleibt vollständig erhalten. */
body:not(.admin-page) #news,
body:not(.admin-page) #news *,
body:not(.admin-page) #clanwars,
body:not(.admin-page) #clanwars *{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}

body:not(.admin-page) #news::-webkit-scrollbar,
body:not(.admin-page) #news *::-webkit-scrollbar,
body:not(.admin-page) #clanwars::-webkit-scrollbar,
body:not(.admin-page) #clanwars *::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}



/* V114 — konsolidiertes, stabiles Desktop-Dashboard.
   Keine JS-Nachmessungen und keine konkurrierenden translateY-Regeln mehr.
   Optischer Stand aus V113 bleibt erhalten:
   - NEWS bei 2560×1440 auf Y=104
   - COUNTER-STRIKE und MATCH OPERATIONS oben bündig
   - alle drei Hauptfenster gleich hoch
   - STATISTIKEN 27 px unter COUNTER-STRIKE
*/
@media (min-width:1100px){
  body:not(.admin-page){
    --grid-panel-height:clamp(330px,24vw,390px);
    --grid-stats-gap:27px;
  }

  body:not(.admin-page) .content-shell{
    gap:var(--grid-stats-gap) !important;
  }

  body:not(.admin-page) .desktop-dashboard-layout{
    align-items:start !important;
  }

  body:not(.admin-page) .desktop-dashboard-main{
    min-width:0 !important;
  }

  body:not(.admin-page) #roster,
  body:not(.admin-page) #news:not(.news-page-panel),
  body:not(.admin-page) #clanwars{
    box-sizing:border-box !important;
    height:var(--grid-panel-height) !important;
    min-height:var(--grid-panel-height) !important;
    max-height:var(--grid-panel-height) !important;
    transform:none !important;
  }

  body:not(.admin-page) #roster .roster-marquee,
  body:not(.admin-page) #news:not(.news-page-panel) .news-feed,
  body:not(.admin-page) #clanwars .clanwar-list{
    max-height:calc(var(--grid-panel-height) - 90px) !important;
    overflow-y:auto !important;
  }

  /* Rechte Spalte wird nicht mehr als verschobener Flex-Stack aufgebaut.
     MATCH OPERATIONS sitzt exakt auf derselben Oberkante wie COUNTER-STRIKE. */
  body:not(.admin-page) .desktop-dashboard-side{
    position:relative !important;
    display:block !important;
    height:var(--grid-panel-height) !important;
    min-height:var(--grid-panel-height) !important;
    align-self:start !important;
    transform:none !important;
    margin:0 !important;
  }

  body:not(.admin-page) .desktop-dashboard-side #clanwars{
    position:absolute !important;
    inset:0 0 auto 0 !important;
    margin:0 !important;
  }

  body:not(.admin-page) .desktop-dashboard-side #news{
    position:absolute !important;
    left:0 !important;
    right:0 !important;
    margin:0 !important;
  }

  /* Bei 1100–1799 px folgt die NEWS-Position der variablen Hero-Höhe,
     bleibt aber relativ zum Seitenanfang auf Y=104. */
  body:not(.admin-page) #stats{
    transform:none !important;
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}

@media (min-width:1100px) and (max-width:1799px){
  body:not(.admin-page) .desktop-dashboard-side #news{
    top:calc(-1 * (72px + clamp(350px,27vw,500px) - 104px)) !important;
  }
}

@media (min-width:1800px){
  body:not(.admin-page) .desktop-dashboard-side #news{
    top:-406px !important; /* V115: NEWS bei 2560×1440 wieder auf gewünschter Höhe */
  }
}

/* V118 — dynamische Spielbereiche: immer identischer vertikaler Abstand.
   Der erste zusätzliche Spielbereich beginnt mit demselben Abstand,
   alle weiteren Spiele verwenden exakt denselben Abstand untereinander. */
body:not(.admin-page) #customGameSections{
  display:flex !important;
  flex-direction:column !important;
  gap:27px !important;
  margin-top:27px !important;
}

body:not(.admin-page) #customGameSections .custom-game-panel{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

/* V119 — zusätzliche Spiele: gleiche einreihige Laufleiste wie Counter-Strike.
   Keine zweite Zeile, Karten laufen dauerhaft von rechts nach links. */
body:not(.admin-page) .custom-game-marquee{
  width:100% !important;
  overflow:hidden !important;
}

body:not(.admin-page) .custom-game-marquee .custom-game-roster{
  display:flex !important;
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:max-content !important;
  gap:16px !important;
  align-items:stretch !important;
}

body:not(.admin-page) .custom-game-marquee .custom-game-roster.is-marquee{
  animation:gridRosterMarquee 58s linear infinite !important;
  will-change:transform;
}

body:not(.admin-page) .custom-game-marquee:hover .custom-game-roster.is-marquee,
body:not(.admin-page) .custom-game-marquee:focus-within .custom-game-roster.is-marquee{
  animation-play-state:paused !important;
}

body:not(.admin-page) .custom-game-marquee .player-card{
  flex:0 0 230px !important;
  width:230px !important;
  min-width:230px !important;
}

@media(max-width:650px){
  body:not(.admin-page) .custom-game-marquee .player-card{
    flex-basis:190px !important;
    width:190px !important;
    min-width:190px !important;
  }
  body:not(.admin-page) .custom-game-marquee .custom-game-roster.is-marquee{
    animation-duration:48s !important;
  }
}





/* V121 — sichtbarer AN/AUS-Schalter für die Spielerkarten-Endlosschleife. */
.admin-page .marquee-toggle-row{
  cursor:default !important;
}

.admin-page .admin-binary-toggle{
  display:inline-flex !important;
  flex:0 0 auto !important;
  gap:4px;
  padding:3px;
  border:1px solid #343638;
  background:#0d0f10;
  border-radius:5px;
}

.admin-page .admin-binary-toggle button{
  min-width:58px;
  height:34px;
  border:1px solid transparent;
  border-radius:3px;
  background:transparent;
  color:#777c80;
  font:inherit;
  font-size:10px;
  font-weight:1000;
  letter-spacing:.08em;
  cursor:pointer;
  transition:.18s ease;
}

.admin-page .admin-binary-toggle button:hover{
  color:#f0f0f0;
  border-color:#3b3d3f;
}

.admin-page .admin-binary-toggle button.active{
  background:#ff6500;
  border-color:#ff6500;
  color:#fff;
  box-shadow:0 0 0 1px rgba(255,101,0,.15);
}

.admin-page .admin-binary-toggle button:disabled{
  opacity:.55;
  cursor:wait;
}


/* V122 — Endlosschleife wird im Roster pro Spiel gesteuert. */
.admin-page .admin-roster-actions{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:18px;
  flex-wrap:wrap;
}

.admin-page .admin-game-marquee-setting{
  display:flex;
  align-items:center;
  gap:12px;
  padding:8px 10px;
  border:1px solid rgba(255,255,255,.08);
  background:#0d0f10;
  border-radius:5px;
}

.admin-page .admin-game-marquee-setting > span{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.admin-page .admin-game-marquee-setting strong{
  font-size:10px;
  letter-spacing:.08em;
  color:#f0f0f0;
}

.admin-page .admin-game-marquee-setting small{
  font-size:9px;
  color:#777c80;
}

@media(max-width:900px){
  .admin-page .admin-roster-actions{
    width:100%;
    justify-content:flex-start;
  }
}


/* V123 — Endlosschleife auch bei neu angelegten Spielen zuverlässig aktiv.
   Bereits eine einzige Spielerkarte wird für den nahtlosen Lauf dupliziert. */
body:not(.admin-page) #customGameSections .roster-marquee .roster-grid.is-marquee{
  display:flex !important;
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:max-content !important;
  animation-name:gridRosterMarquee !important;
  animation-duration:58s !important;
  animation-timing-function:linear !important;
  animation-iteration-count:infinite !important;
  animation-play-state:running !important;
  will-change:transform !important;
}

body:not(.admin-page) #customGameSections .roster-marquee:hover .roster-grid.is-marquee,
body:not(.admin-page) #customGameSections .roster-marquee:focus-within .roster-grid.is-marquee{
  animation-play-state:paused !important;
}

@media(max-width:650px){
  body:not(.admin-page) #customGameSections .roster-marquee .roster-grid.is-marquee{
    animation-duration:48s !important;
  }
}


/* V124 — robuste Laufanimation für dynamisch angelegte Spielfenster. */
@keyframes gridCustomGameMarqueeV124{
  from{transform:translate3d(0,0,0)}
  to{transform:translate3d(calc(-50% - 8px),0,0)}
}

body:not(.admin-page) #customGameSections .custom-game-marquee[data-loop="1"] .custom-game-roster.is-marquee{
  animation:gridCustomGameMarqueeV124 58s linear infinite !important;
  transform:none;
  will-change:transform;
  backface-visibility:hidden;
}

body:not(.admin-page) #customGameSections .custom-game-marquee[data-loop="0"] .custom-game-roster{
  animation:none !important;
  transform:none !important;
}

body:not(.admin-page) #customGameSections .custom-game-marquee[data-loop="1"]:hover .custom-game-roster.is-marquee,
body:not(.admin-page) #customGameSections .custom-game-marquee[data-loop="1"]:focus-within .custom-game-roster.is-marquee{
  animation-play-state:paused !important;
}


/* V125 — JS-gesteuerte Endlosschleife.
   Diese Regeln schalten nur alte CSS-Animationen ab; die Bewegung kommt
   aus der Web-Animations-API und kann daher nicht von Alt-CSS blockiert werden. */
body:not(.admin-page) .roster-grid.js-marquee-running,
body:not(.admin-page) .custom-game-roster.js-marquee-running{
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:max-content !important;
  will-change:transform !important;
}

body:not(.admin-page) .roster-marquee:hover .roster-grid.js-marquee-running,
body:not(.admin-page) .roster-marquee:focus-within .roster-grid.js-marquee-running{
  animation-play-state:running !important;
}


/* V126 — critical fix:
   No !important transform/animation declaration may override the Web Animation
   transform on custom-game roster tracks. */
body:not(.admin-page) #customGameSections .custom-game-roster.is-marquee.js-marquee-running{
  flex-wrap:nowrap !important;
  width:max-content !important;
  min-width:max-content !important;
  will-change:transform !important;
}


/* V127 — dynamische Sichtbarkeitsschalter für neu hinzugefügte Spiele. */
.admin-page #customGameVisibilitySettings:empty{
  display:none;
}


/* V128 — jedes neu erstellte Team/Spielfenster hat exakt die gleiche
   Panel-Höhe wie das Counter-Strike-2-Roster. */
@media (min-width:1100px){
  body:not(.admin-page) #customGameSections .custom-game-panel{
    box-sizing:border-box !important;
    height:var(--grid-panel-height) !important;
    min-height:var(--grid-panel-height) !important;
    max-height:var(--grid-panel-height) !important;
  }

  body:not(.admin-page) #customGameSections .custom-game-panel .roster-marquee{
    max-height:calc(var(--grid-panel-height) - 90px) !important;
  }
}


/* V129 — neue Spiele: Spieler-Kacheln exakt in derselben Größe wie CS2.
   Die unsichtbaren Platzhalter übernehmen nur die Höhe der CS2-Metadaten,
   ohne bei Custom-Spielen ELO/Winrate/KD oder FACEIT anzuzeigen. */
body:not(.admin-page) #customGameSections .custom-player-card{
  box-sizing:border-box !important;
}

body:not(.admin-page) #customGameSections .custom-player-meta-placeholder,
body:not(.admin-page) #customGameSections .custom-faceit-placeholder{
  visibility:hidden !important;
  pointer-events:none !important;
  user-select:none !important;
}

/* Custom-Spiele haben kein FACEIT-Level:
   das runde Level-Zeichen oben rechts wird dort vollständig entfernt. */
body:not(.admin-page) #customGameSections .custom-player-card .level{
  display:none !important;
}


/* V130.1 — Namen der Custom-Spieler weiter unten und mittig. */
body:not(.admin-page) #customGameSections .custom-player-card .player-info{
  position:relative !important;
  min-height:118px !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) #customGameSections .custom-player-card .player-name{
  position:absolute !important;
  left:10px !important;
  right:10px !important;
  bottom:18px !important;
  width:auto !important;
  text-align:center !important;
  margin:0 !important;
}

/* V130.2 — Endlosschleife verwendet exakt den vorhandenen Einstellungen-Toggle. */
.admin-page .admin-marquee-switch{
  flex:0 0 54px !important;
  margin-left:12px;
}
.admin-page .admin-marquee-switch input:disabled + span{
  opacity:.55;
  cursor:wait;
}

/* V130.3 — Spiel-Tabs per Drag & Drop sortierbar. */
.admin-page #adminGameTabs .admin-game-tab{
  cursor:grab;
  user-select:none;
}
.admin-page #adminGameTabs .admin-game-tab:active{
  cursor:grabbing;
}
.admin-page #adminGameTabs .admin-game-tab.is-dragging{
  opacity:.42;
  border-style:dashed;
}


/* V131 — die gespeicherte Spielreihenfolge gilt wirklich für die Fenster
   auf der Hauptseite, einschließlich Counter-Strike 2. */
@media (min-width:1100px){
  body:not(.admin-page) .desktop-dashboard-main{
    display:flex !important;
    flex-direction:column !important;
    gap:27px !important;
  }

  body:not(.admin-page) #customGameSections{
    display:contents !important;
    margin:0 !important;
  }

  body:not(.admin-page) #roster,
  body:not(.admin-page) #customGameSections .custom-game-panel{
    margin-top:0 !important;
    margin-bottom:0 !important;
  }
}

/* Drag-Zustand klar sichtbar, ohne Layoutsprung. */
.admin-page #adminGameTabs .admin-game-tab.is-dragging{
  opacity:.38 !important;
}


/* V132 — eigene TEAMS-Hauptseite. Die Teamfenster nutzen die volle Breite,
   also ungefähr Counter-Strike + Match Operations der bisherigen Hauptseite zusammen. */
body:not(.admin-page) .teams-page-main{padding-top:118px;min-height:100vh}
body:not(.admin-page) .teams-page-shell{display:block !important}
body:not(.admin-page) .teams-page-heading{margin:18px 0 28px}
body:not(.admin-page) .teams-page-heading h1{margin:4px 0 0;font-size:clamp(32px,4vw,58px);letter-spacing:.08em}
body:not(.admin-page) .teams-page-stack{display:flex;flex-direction:column;gap:27px;width:100%}
body:not(.admin-page) .teams-page-team-panel{box-sizing:border-box;width:100%;min-width:100%;height:auto;min-height:0;max-height:none;margin:0 !important}
body:not(.admin-page) .teams-page-team-panel .teams-page-marquee{width:100%;max-width:100%;overflow:hidden}
body:not(.admin-page) .teams-page-team-panel .roster-grid{max-width:none}
@media(max-width:1099px){body:not(.admin-page) .teams-page-main{padding-top:88px}body:not(.admin-page) .teams-page-team-panel{height:auto;min-height:330px;max-height:none}}


/* V133 — nur die separate TEAMS-Seite:
   50 px weiter unten, keine Endlosschleife und mehrere feste Spielerreihen. */
body:not(.admin-page) .teams-page-heading{
  margin-bottom:78px !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  width:100%;
  max-width:100%;
  overflow:hidden;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid.custom-game-roster{
  display:flex !important;
  flex-wrap:wrap !important;
  width:100% !important;
  min-width:0 !important;
  transform:none !important;
  animation:none !important;
  will-change:auto !important;
  align-content:flex-start !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
  flex:0 0 190px !important;
  width:190px !important;
  min-width:190px !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-heading{
    margin-bottom:78px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
    flex:0 0 165px !important;
    width:165px !important;
    min-width:165px !important;
  }
}


/* V134 — separate TEAMS-Seite:
   Teamfenster wachsen automatisch mit mehreren Spielerreihen,
   FACEIT-Spielerbilder werden sauber zentriert. */
body:not(.admin-page) .teams-page-team-panel{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  overflow:visible !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid{
  align-items:flex-start !important;
}

body:not(.admin-page) .teams-page-team-panel .player-art{
  background-position:center center !important;
  background-repeat:no-repeat !important;
}


/* V135 — Korrekturen nur für die getrennte TEAMS-Seite. */

/* FACEIT-Profilbilder nicht mehr als vergrößerten mittigen Ausschnitt zeigen:
   proportional auf die Kartenbreite skalieren und oben ausrichten. */
body:not(.admin-page) .teams-page-team-panel .player-art{
  background-size:cover !important;
  background-position:center top !important;
  background-repeat:no-repeat !important;
}

/* Unter der letzten Spielerreihe bleibt Abstand zum unteren Fensterrahmen. */
body:not(.admin-page) .teams-page-team-panel{
  padding-bottom:24px !important;
}


/* V136 — TEAMS-Seite: sichtbarer Abstand zwischen letzter Spielerreihe
   und dem unteren Rahmen des Teamfensters. Der Abstand liegt jetzt direkt
   im Roster-Inhalt und vergrößert dadurch die automatische Panelhöhe. */
body:not(.admin-page) .teams-page-team-panel{
  padding-bottom:clamp(22px,2.5vw,38px) !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  box-sizing:border-box !important;
  padding-bottom:28px !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
    padding-bottom:22px !important;
  }
}


/* V137 — TEAMS-Fenster werden anhand der tatsächlich benötigten
   Spielerreihen dynamisch in der Höhe berechnet. */
body:not(.admin-page) .teams-page-team-panel{
  max-height:none !important;
  overflow:hidden !important;
  transition:height .16s ease;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid{
  height:auto !important;
  max-height:none !important;
}


/* V138 — präzise dynamische Höhe auf der separaten TEAMS-Seite.
   Keine berechnete Pixelhöhe mehr: Das Fenster folgt direkt der echten
   Höhe der umgebrochenen Spielerreihen. */
body:not(.admin-page) .teams-page-team-panel{
  display:block !important;
  box-sizing:border-box !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  padding-bottom:clamp(28px,2.5vw,40px) !important;
  transition:none !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:0 !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid.custom-game-roster{
  position:static !important;
  display:flex !important;
  flex-flow:row wrap !important;
  align-items:stretch !important;
  align-content:flex-start !important;
  gap:16px !important;
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  transform:none !important;
  animation:none !important;
  will-change:auto !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
  position:relative !important;
  flex:0 0 190px !important;
  width:190px !important;
  min-width:190px !important;
  height:auto !important;
  align-self:stretch !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
    flex-basis:165px !important;
    width:165px !important;
    min-width:165px !important;
  }
}


/* V139 — TEAMS-Seite präzise:
   CSS-Grit bestimmt selbst die Anzahl der Karten pro Reihe.
   Dadurch kann keine Karte rechts in den Fensterrahmen laufen und die
   Panelhöhe wächst exakt mit jeder zusätzlichen Reihe. */
body:not(.admin-page) .teams-page-team-panel{
  box-sizing:border-box !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:hidden !important;
  padding-left:clamp(20px,1.55vw,30px) !important;
  padding-right:clamp(20px,1.55vw,30px) !important;
  padding-bottom:clamp(28px,2.5vw,40px) !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  padding:0 !important;
  margin:0 !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid.custom-game-roster{
  position:static !important;
  display:grid !important;
  grid-template-columns:repeat(auto-fill,190px) !important;
  grid-auto-rows:auto !important;
  justify-content:start !important;
  align-items:stretch !important;
  gap:16px !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  transform:none !important;
  animation:none !important;
  will-change:auto !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
  box-sizing:border-box !important;
  width:190px !important;
  min-width:190px !important;
  max-width:190px !important;
  height:auto !important;
  margin:0 !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid,
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid.custom-game-roster{
    grid-template-columns:repeat(auto-fill,165px) !important;
    gap:12px !important;
  }

  body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid .player-card{
    width:165px !important;
    min-width:165px !important;
    max-width:165px !important;
  }
}


/* V140 — TEAMS: alle Spiele nutzen exakt dieselbe Fenster- und Kartenstruktur.
   Einziger Unterschied: CS2 befüllt Bild/Level/ELO/Winrate/KD über FACEIT. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card{
  box-sizing:border-box !important;
  width:190px !important;
  min-width:190px !important;
  max-width:190px !important;
  margin:0 !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art{
  height:112px !important;
  min-height:112px !important;
  background-size:cover !important;
  background-position:center top !important;
  background-repeat:no-repeat !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-info{
  padding:12px 13px !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-name{
  font-size:16px !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-meta{
  visibility:visible !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card{
    width:165px !important;
    min-width:165px !important;
    max-width:165px !important;
  }

  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art{
    height:98px !important;
    min-height:98px !important;
  }
}


/* V141 — Standard-Profilbild für manuell angelegte Spieler.
   CS2/FACEIT-Avatare bleiben unverändert und kommen weiterhin aus der API. */
body:not(.admin-page) .custom-default-player-art{
  background-color:#0b0c0d !important;
  background-repeat:no-repeat !important;
  background-position:center center !important;
  background-size:contain !important;
}


/* V142 — manuelle Spieler:
   Spartaner-Helm vollständig sichtbar; auf TEAMS unter dem Bild nur der Name. */

/* Höhere Spezifität als die allgemeine TEAMS-player-art-Regel aus V140:
   das quadratische Helm-Bild wird komplett in den Bildbereich eingepasst. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art.custom-default-player-art,
body:not(.admin-page) #customGameSections .custom-player-card .player-art.custom-default-player-art{
  background-size:contain !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-color:#0b0c0d !important;
}

/* Auf der separaten TEAMS-Seite haben manuell angelegte Spieler
   keine FACEIT-Statistikzeile. Nur der Spielername bleibt sichtbar. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
  min-height:54px !important;
  padding:14px 13px 16px !important;
  display:flex !important;
  align-items:center !important;
}

body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  margin:0 !important;
}


/* V143 — neuer Admin-Hauptreiter BAUKASTEN.
   Noch ohne Funktionen; bestehende Bereiche bleiben unverändert. */
.admin-page .admin-builder-placeholder{
  min-height:320px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:28px;
  text-align:left;
}

.admin-page .admin-builder-placeholder h2{
  margin:0 0 8px;
  font-size:22px;
  letter-spacing:.08em;
}

.admin-page .admin-builder-placeholder p{
  margin:0;
  max-width:620px;
  color:#777d80;
  line-height:1.6;
}

.admin-page .admin-builder-placeholder-icon{
  width:88px;
  height:88px;
  flex:0 0 88px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}

.admin-page .admin-builder-placeholder-icon span{
  display:block;
  border:1px solid rgba(255,101,0,.55);
  background:rgba(255,101,0,.045);
}

.admin-page .admin-builder-placeholder-icon span:last-child{
  position:relative;
}

.admin-page .admin-builder-placeholder-icon span:last-child::before,
.admin-page .admin-builder-placeholder-icon span:last-child::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  background:#ff6500;
  transform:translate(-50%,-50%);
}

.admin-page .admin-builder-placeholder-icon span:last-child::before{
  width:16px;
  height:1px;
}

.admin-page .admin-builder-placeholder-icon span:last-child::after{
  width:1px;
  height:16px;
}

@media(max-width:700px){
  .admin-page .admin-builder-placeholder{
    min-height:260px;
    flex-direction:column;
    text-align:center;
  }
}


/* V144 — kleine Korrekturen */

/* Manuell hinzugefügte Spieler: Name mittig. */
body:not(.admin-page) #customGameSections .custom-player-card .player-name,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  width:100% !important;
  text-align:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}

/* BAUKASTEN exakt wie die übrigen Navigationspunkte ausrichten. */
.admin-page .admin-side [data-view="builder"]{
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
}

.admin-page .admin-side [data-view="builder"] .admin-nav-icon{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  margin:0 !important;
}

.admin-page .admin-side [data-view="builder"] > span{
  margin:0 !important;
}

/* EINSTELLUNGEN bleibt immer ganz unten in der Admin-Navigation,
   direkt oberhalb von AUSLOGGEN. */
.admin-page .admin-side{
  display:flex !important;
  flex-direction:column !important;
}

.admin-page .admin-side .admin-nav-settings{
  margin-top:auto !important;
}


/* V145 — komplette Admin-Navigation per Drag & Drop sortierbar.
   AUSLOGGEN bleibt fest und wird nicht verschoben. */
.admin-page .admin-side .admin-nav-settings{
  margin-top:0 !important;
}

.admin-page .admin-side [data-admin-nav-key]{
  cursor:grab !important;
  user-select:none !important;
}

.admin-page .admin-side [data-admin-nav-key]:active{
  cursor:grabbing !important;
}

.admin-page .admin-side [data-admin-nav-key].is-dragging{
  opacity:.42 !important;
  outline:1px dashed rgba(255,101,0,.7);
  outline-offset:-2px;
}


/* V146 — interne Admin-Übersicht als verschiebbare Kacheln. */
.admin-page .admin-overview-tiles{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
  align-items:stretch;
}

.admin-page .admin-overview-tile{
  position:relative;
  min-height:180px;
  padding:24px;
  box-sizing:border-box;
  border:1px solid rgba(255,255,255,.09);
  background:linear-gradient(180deg,rgba(15,16,17,.96),rgba(8,9,10,.98));
  color:#e9eaeb;
  text-align:left;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  gap:6px;
  cursor:grab;
  transition:border-color .18s ease,transform .18s ease,background .18s ease;
}

.admin-page .admin-overview-tile:hover{
  border-color:rgba(255,101,0,.58);
  background:linear-gradient(180deg,rgba(24,15,9,.96),rgba(10,9,8,.98));
  transform:translateY(-2px);
}

.admin-page .admin-overview-tile:active{
  cursor:grabbing;
}

.admin-page .admin-overview-tile.is-dragging{
  opacity:.42;
  border-style:dashed;
  transform:none;
}

.admin-page .admin-overview-tile-icon{
  position:absolute;
  left:24px;
  top:24px;
  color:#ff6500;
  font-size:27px;
  line-height:1;
}

.admin-page .admin-overview-tile strong{
  font-size:18px;
  letter-spacing:.07em;
}

.admin-page .admin-overview-tile small{
  color:#6f7578;
  font-size:11px;
  letter-spacing:.03em;
}

@media(max-width:1100px){
  .admin-page .admin-overview-tiles{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
}

@media(max-width:650px){
  .admin-page .admin-overview-tiles{
    grid-template-columns:1fr;
  }
}


/* V148 — Übersicht: Icons entsprechen der linken Navigation.
   NEWS verwendet ein Zeitungssymbol. Layout bleibt funktional identisch. */
.admin-page .admin-overview-tiles{
  grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  gap:20px !important;
}

.admin-page .admin-overview-tile{
  min-height:210px !important;
  padding:26px !important;
}

.admin-page .admin-overview-tile-icon{
  left:26px !important;
  top:26px !important;
  width:30px;
  height:30px;
  display:flex;
  align-items:center;
  justify-content:center;
  font-size:29px !important;
}

.admin-page .admin-overview-tile-icon--svg svg{
  width:28px;
  height:28px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.admin-page .admin-overview-tile-icon--svg svg path:first-child:last-child{
  fill:currentColor;
  stroke:none;
}

.admin-page .admin-overview-tile strong{
  font-size:19px !important;
}

.admin-page .admin-overview-tile small{
  font-size:11px !important;
}

/* NEWS-Zeitung links genau wie die übrigen SVG-Navigationselemente. */
.admin-page .admin-side [data-view="news"]{
  display:flex !important;
  align-items:center !important;
  gap:11px !important;
}

.admin-page .admin-side [data-view="news"] .admin-nav-icon{
  width:17px !important;
  height:17px !important;
  flex:0 0 17px !important;
  margin:0 !important;
}


/* V154 — optionale Spielerbilder sowie Twitch/Kick-Verknüpfungen. */
.admin-page .admin-add-player{
  display:grid;
  grid-template-columns:minmax(180px,1.25fr) minmax(180px,1fr) minmax(180px,1fr) auto auto;
  gap:10px;
  align-items:center;
  width:100%;
}
.admin-page .admin-add-player input:not([type="file"]){
  min-width:0;
}
.admin-page .admin-player-image-upload{
  min-height:42px;
  padding:0 16px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:8px;
  display:flex;
  align-items:center;
  justify-content:center;
  cursor:pointer;
  font-size:11px;
  font-weight:800;
  letter-spacing:.12em;
  white-space:nowrap;
  background:rgba(255,255,255,.035);
}
.admin-page .admin-player-image-upload:hover{
  border-color:rgba(255,255,255,.28);
  background:rgba(255,255,255,.065);
}
.admin-page .admin-player-image-upload input{
  display:none;
}
.admin-page .admin-roster-actions-cell{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
}
.admin-page .admin-player-profile-edit{
  white-space:nowrap;
  font-size:9px;
  padding:8px 9px;
}

body:not(.admin-page) .player-card{
  position:relative;
}
body:not(.admin-page) .player-socials{
  position:absolute;
  top:8px;
  right:8px;
  z-index:8;
  display:flex;
  gap:6px;
}
body:not(.admin-page) .player-social{
  width:27px;
  height:27px;
  box-sizing:border-box;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.22);
  border-radius:6px;
  background:rgba(5,6,8,.82);
  color:#fff;
  text-decoration:none;
  font-size:11px;
  font-weight:900;
  line-height:1;
  letter-spacing:-.02em;
  box-shadow:0 3px 12px rgba(0,0,0,.34);
  backdrop-filter:blur(5px);
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}
body:not(.admin-page) .player-social:hover{
  transform:translateY(-1px);
  border-color:rgba(255,255,255,.55);
  background:rgba(18,19,23,.94);
}
body:not(.admin-page) .player-social--kick{
  font-size:10px;
}

@media (max-width:1100px){
  .admin-page .admin-add-player{
    grid-template-columns:1fr 1fr;
  }
  .admin-page .admin-add-player #playerNickname{
    grid-column:1/-1;
  }
}
@media (max-width:680px){
  .admin-page .admin-add-player{
    grid-template-columns:1fr;
  }
  .admin-page .admin-add-player #playerNickname{
    grid-column:auto;
  }
}

/* V155 — hochgeladene Spielerbilder füllen die Bildfläche; Spartan-Fallback bleibt vollständig sichtbar. */
body:not(.admin-page) .custom-upload-player-art{
  background-size:cover !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

/* V156 — Twitch LIVE: dezenter lila Glow um die gesamte Spielerkarte. */
@keyframes grid-twitch-live-glow{
  0%,100%{box-shadow:0 0 0 1px rgba(145,70,255,.42),0 0 15px rgba(145,70,255,.30),0 0 32px rgba(145,70,255,.13)}
  50%{box-shadow:0 0 0 1px rgba(177,112,255,.72),0 0 24px rgba(145,70,255,.50),0 0 46px rgba(145,70,255,.22)}
}
body:not(.admin-page) .player-card.player-card--twitch-live{
  border-color:rgba(177,112,255,.78) !important;
  animation:grid-twitch-live-glow 2.4s ease-in-out infinite;
}
body:not(.admin-page) .player-social--twitch.is-live{
  border-color:rgba(177,112,255,.95);
  background:rgba(86,36,148,.94);
  overflow:visible;
}
body:not(.admin-page) .player-social--twitch.is-live b{
  position:absolute;
  top:-7px;
  right:-5px;
  padding:2px 4px;
  border-radius:3px;
  background:#9146ff;
  color:#fff;
  font-size:7px;
  line-height:1;
  letter-spacing:.05em;
}
@media (prefers-reduced-motion:reduce){
  body:not(.admin-page) .player-card.player-card--twitch-live{animation:none}
}

/* V157 — moderner Fokus-/Crop-Editor für manuelle Spielerbilder. */
.player-crop-modal[hidden]{display:none!important}.player-crop-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:24px;background:rgba(0,0,0,.76);backdrop-filter:blur(10px)}
.player-crop-dialog{width:min(760px,94vw);padding:24px;border:1px solid rgba(255,255,255,.14);border-radius:14px;background:linear-gradient(180deg,rgba(24,25,29,.98),rgba(10,11,14,.99));box-shadow:0 28px 90px rgba(0,0,0,.65)}
.player-crop-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.player-crop-head h2{margin:3px 0 0;font-size:22px}.player-crop-close{border:0;background:transparent;color:#fff;font-size:30px;cursor:pointer}.player-crop-hint{margin:10px 0 18px;color:rgba(255,255,255,.62);font-size:12px}
.player-crop-stage{position:relative;width:100%;height:min(58vh,500px);min-height:320px;overflow:hidden;border:1px solid rgba(255,255,255,.12);border-radius:10px;background:#050506;touch-action:none;user-select:none}.player-crop-stage img{position:absolute;max-width:none;max-height:none;pointer-events:none;transform-origin:center center;will-change:transform}
.player-crop-shade{position:absolute;z-index:2;background:rgba(0,0,0,.58);pointer-events:none}.player-crop-frame{position:absolute;z-index:3;border:1px solid rgba(255,255,255,.94);box-shadow:0 0 0 1px rgba(0,0,0,.35),0 0 28px rgba(255,255,255,.08);pointer-events:none}.player-crop-frame span{position:absolute;width:18px;height:18px}.player-crop-frame span:nth-child(1){left:-1px;top:-1px;border-left:2px solid #fff;border-top:2px solid #fff}.player-crop-frame span:nth-child(2){right:-1px;top:-1px;border-right:2px solid #fff;border-top:2px solid #fff}.player-crop-frame span:nth-child(3){right:-1px;bottom:-1px;border-right:2px solid #fff;border-bottom:2px solid #fff}.player-crop-frame span:nth-child(4){left:-1px;bottom:-1px;border-left:2px solid #fff;border-bottom:2px solid #fff}
.player-crop-controls{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:12px;margin:18px 6px 0;color:rgba(255,255,255,.65)}.player-crop-controls input{width:100%;accent-color:#fff}.player-crop-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}.player-crop-actions button{min-height:42px;padding:0 18px;border:1px solid rgba(255,255,255,.16);border-radius:7px;background:rgba(255,255,255,.04);color:#fff;font-weight:800;letter-spacing:.08em;cursor:pointer}.player-crop-actions #playerCropApply{background:#fff;color:#08090b;border-color:#fff}
@media(max-width:640px){.player-crop-modal{padding:10px}.player-crop-dialog{padding:16px}.player-crop-stage{height:52vh;min-height:300px}.player-crop-actions button{flex:1}}

/* V158 — Twitch-Symbol statt des bisherigen T auf Spielerkarten. */
body:not(.admin-page) .player-social-icon--twitch{
  width:17px;
  height:17px;
  display:block;
  object-fit:contain;
  pointer-events:none;
}

/* V159 — ordentliches Spielerprofil-Fenster statt Browser-Prompts. */
.player-profile-modal[hidden]{display:none!important}
.player-profile-modal{
  position:fixed;
  inset:0;
  z-index:9998;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(10px);
}
.player-profile-dialog{
  width:min(620px,94vw);
  padding:24px;
  border:1px solid rgba(255,255,255,.14);
  border-radius:14px;
  background:linear-gradient(180deg,rgba(23,24,28,.99),rgba(9,10,12,.99));
  box-shadow:0 28px 90px rgba(0,0,0,.68);
}
.player-profile-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:20px;
  padding-bottom:18px;
  border-bottom:1px solid rgba(255,255,255,.08);
}
.player-profile-head h2{
  margin:3px 0 0;
  font-size:22px;
}
.player-profile-close{
  width:36px;
  height:36px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:8px;
  background:rgba(255,255,255,.025);
  color:#fff;
  font-size:25px;
  line-height:1;
  cursor:pointer;
}
.player-profile-close:hover{
  border-color:rgba(255,255,255,.25);
  background:rgba(255,255,255,.06);
}
.player-profile-form{
  display:grid;
  gap:16px;
  padding-top:20px;
}
.player-profile-field{
  display:grid;
  gap:8px;
}
.player-profile-field>span,
.player-profile-image-label{
  color:rgba(255,255,255,.72);
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}
.player-profile-field input{
  width:100%;
  min-height:46px;
  box-sizing:border-box;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.13);
  border-radius:8px;
  outline:none;
  background:rgba(255,255,255,.035);
  color:#fff;
  font:inherit;
}
.player-profile-field input:focus{
  border-color:rgba(255,255,255,.38);
  box-shadow:0 0 0 3px rgba(255,255,255,.05);
}
.player-profile-image-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:15px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:9px;
  background:rgba(255,255,255,.025);
}
.player-profile-image-row[hidden]{display:none!important}
.player-profile-image-row>div{
  display:grid;
  gap:5px;
}
.player-profile-image-row small{
  max-width:380px;
  color:rgba(255,255,255,.48);
  font-size:11px;
  line-height:1.45;
}
#playerProfilePickImage{
  flex:0 0 auto;
  min-height:38px;
  padding:0 13px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:7px;
  background:rgba(255,255,255,.045);
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
  cursor:pointer;
}
#playerProfilePickImage:hover{
  border-color:rgba(255,255,255,.32);
  background:rgba(255,255,255,.08);
}
.player-profile-image-status{
  padding:10px 12px;
  border:1px solid rgba(116,215,148,.18);
  border-radius:7px;
  background:rgba(116,215,148,.06);
  color:rgba(198,255,215,.82);
  font-size:11px;
}
.player-profile-actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:22px;
  padding-top:18px;
  border-top:1px solid rgba(255,255,255,.08);
}
.player-profile-actions button{
  min-height:42px;
  padding:0 18px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:7px;
  background:rgba(255,255,255,.035);
  color:#fff;
  font-size:10px;
  font-weight:900;
  letter-spacing:.10em;
  cursor:pointer;
}
.player-profile-actions #playerProfileSave{
  border-color:#fff;
  background:#fff;
  color:#08090b;
}
.player-profile-actions button:disabled{
  opacity:.55;
  cursor:wait;
}
@media(max-width:640px){
  .player-profile-modal{padding:10px}
  .player-profile-dialog{padding:17px}
  .player-profile-image-row{align-items:stretch;flex-direction:column}
  #playerProfilePickImage{width:100%}
  .player-profile-actions button{flex:1}
}

/* V160 — manuelle Spiele ohne FACEIT-Spalten. */
.admin-page .admin-roster-head.is-custom-game,
.admin-page .admin-roster-row.admin-roster-row--custom{
  grid-template-columns:minmax(220px,1.8fr) minmax(130px,.7fr) minmax(220px,.9fr);
}
.admin-page .admin-roster-head.is-custom-game>span:last-child,
.admin-page .admin-roster-row.admin-roster-row--custom>.admin-roster-actions-cell{
  text-align:right;
  justify-content:flex-end;
}

/* V160 — Kick-Symbol statt des bisherigen K. */
body:not(.admin-page) .player-social-icon--kick{
  width:17px;
  height:17px;
  display:block;
  object-fit:contain;
  pointer-events:none;
}

/* V160 — Scrollbar auf öffentlichen Seiten unsichtbar, Scrollen bleibt aktiv. */
html:has(body:not(.admin-page)){
  scrollbar-width:none;
}
html:has(body:not(.admin-page))::-webkit-scrollbar,
body:not(.admin-page)::-webkit-scrollbar{
  width:0;
  height:0;
  display:none;
}
body:not(.admin-page){
  -ms-overflow-style:none;
  scrollbar-width:none;
}

/* V161 — HOME: manuelle Spielerkarten exakt an CS2 ausrichten. */
body:not(.admin-page) #customGameSections .roster-marquee .custom-player-card{
  flex-basis:190px !important;
  width:190px !important;
  min-width:190px !important;
}
body:not(.admin-page) #customGameSections .roster-marquee .custom-player-card .player-art{
  height:112px !important;
  min-height:112px !important;
  max-height:112px !important;
}
body:not(.admin-page) #customGameSections .custom-upload-player-art{
  background:none !important;
}
body:not(.admin-page) #customGameSections .custom-upload-player-art img{
  width:100% !important;
  height:100% !important;
  display:block !important;
  object-fit:contain !important;
  object-position:center center !important;
  filter:saturate(.78) contrast(1.05);
}
body:not(.admin-page) #customGameSections .custom-default-player-art{
  background-size:contain !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
}

/* V161 — Twitch und Kick: identische Badge-Abmessungen und Umrandungsstärke. */
body:not(.admin-page) .player-social--twitch,
body:not(.admin-page) .player-social--kick{
  width:27px !important;
  height:27px !important;
  min-width:27px !important;
  min-height:27px !important;
  padding:0 !important;
  border-width:1px !important;
  border-style:solid !important;
  border-radius:6px !important;
  box-sizing:border-box !important;
  background:rgba(5,6,8,.88);
}
body:not(.admin-page) .player-social--twitch{
  border-color:rgba(145,70,255,.72);
}
body:not(.admin-page) .player-social--kick{
  border-color:rgba(83,252,24,.72);
}
body:not(.admin-page) .player-social-icon--twitch,
body:not(.admin-page) .player-social-icon--kick{
  width:17px !important;
  height:17px !important;
  max-width:17px !important;
  max-height:17px !important;
  object-fit:contain !important;
}
body:not(.admin-page) .player-social--twitch.is-live{
  border-width:1px !important;
}

/* Mobile bleibt ebenfalls exakt an der mobilen CS2-Kartengröße. */
@media(max-width:650px){
  body:not(.admin-page) #customGameSections .roster-marquee .custom-player-card{
    flex-basis:165px !important;
    width:165px !important;
    min-width:165px !important;
  }
  body:not(.admin-page) #customGameSections .roster-marquee .custom-player-card .player-art{
    height:98px !important;
    min-height:98px !important;
    max-height:98px !important;
  }
}

/* V162 — TEAMS: CS2 bestimmt die Kartengröße, alle anderen Spiele folgen exakt. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card{
  width:205px !important;
  min-width:205px !important;
  max-width:205px !important;
  height:285px !important;
  min-height:285px !important;
  max-height:285px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art{
  height:122px !important;
  min-height:122px !important;
  max-height:122px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-info{
  min-height:163px !important;
  box-sizing:border-box !important;
  padding:13px 14px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
  min-height:163px !important;
  padding:13px 14px !important;
  display:block !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  width:100% !important;
  text-align:center !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-manual-meta-placeholder,
body:not(.admin-page) .teams-page-team-panel .teams-page-faceit-placeholder{
  visibility:hidden !important;
  pointer-events:none !important;
  user-select:none !important;
}

/* Hochgeladener, bereits zugeschnittener Ausschnitt bleibt vollständig sichtbar. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art.custom-upload-player-art{
  background-size:contain !important;
  background-position:center center !important;
  background-repeat:no-repeat !important;
  background-color:#08090a !important;
}

/* V162 — gesamte Teamfenster auf der separaten TEAMS-Seite 150 px weiter unten. */
body:not(.admin-page) .teams-page-main{
  padding-top:268px !important;
}

@media(max-width:1099px){
  body:not(.admin-page) .teams-page-main{
    padding-top:238px !important;
  }
}
@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card{
    width:180px !important;
    min-width:180px !important;
    max-width:180px !important;
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-art{
    height:108px !important;
    min-height:108px !important;
    max-height:108px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card .player-info,
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
    min-height:152px !important;
  }
}

/* V163 — TEAMS: zusätzlicher Abstand unter der Spielerreihe. */
body:not(.admin-page) .teams-page-team-panel{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding-bottom:30px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  padding-bottom:28px !important;
  box-sizing:border-box !important;
}

/* V163 — manuelle Spieler auf TEAMS zeigen nur Bild, Name und Social-Links.
   Die Außenmaße bleiben identisch zu den FACEIT-Karten. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
  height:285px !important;
  min-height:285px !important;
  max-height:285px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
  height:163px !important;
  min-height:163px !important;
  max-height:163px !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:center !important;
  padding:18px 14px !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  width:100% !important;
  margin:0 !important;
  text-align:center !important;
}

/* V163 — LOGOUT/AUSLOGGEN überall rot, inklusive Admin/Einstellungen. */
body:not(.admin-page) .top-logout .login-btn{
  border-color:rgba(255,72,72,.82) !important;
  color:#ff5b5b !important;
  background:rgba(94,10,10,.16) !important;
}
body:not(.admin-page) .top-logout .login-btn:hover{
  border-color:#ff5b5b !important;
  color:#fff !important;
  background:rgba(171,22,22,.72) !important;
  box-shadow:0 0 18px rgba(255,72,72,.16) !important;
}
.admin-page .admin-side form[action*="logout"] button{
  border-color:rgba(255,72,72,.72) !important;
  color:#ff5b5b !important;
  background:rgba(94,10,10,.16) !important;
}
.admin-page .admin-side form[action*="logout"] button:hover{
  border-color:#ff5b5b !important;
  color:#fff !important;
  background:rgba(171,22,22,.72) !important;
  box-shadow:0 0 18px rgba(255,72,72,.16) !important;
}

@media(max-width:1099px){
  body:not(.admin-page) .teams-page-team-panel{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}
@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel{
    min-height:0 !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
    height:152px !important;
    min-height:152px !important;
    max-height:152px !important;
  }
}

/* V164 — TEAMS-Fenster wieder vollständig dynamisch.
   Die Höhe folgt automatisch den Kartenreihen; unten bleibt sauberer Abstand. */
body:not(.admin-page) .teams-page-team-panel{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding-bottom:28px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-roster{
  overflow:visible !important;
  padding-bottom:0 !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-grid{
  align-items:flex-start !important;
  row-gap:18px !important;
}

/* V164 — manuelle Spielerkarten:
   gleicher Außenrahmen wie FACEIT, aber Name weiter unten für bessere Flächennutzung. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
  height:285px !important;
  min-height:285px !important;
  max-height:285px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
  position:relative !important;
  height:163px !important;
  min-height:163px !important;
  max-height:163px !important;
  display:block !important;
  padding:0 !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:34px !important;
  width:auto !important;
  margin:0 !important;
  text-align:center !important;
}

/* Mobile: gleiche Logik, nur passend zur kleineren Karte. */
@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    padding-bottom:24px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
    height:260px !important;
    min-height:260px !important;
    max-height:260px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
    height:152px !important;
    min-height:152px !important;
    max-height:152px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
    bottom:28px !important;
  }
}

/* V165 — manuelle TEAMS-Karten kompakter:
   keine FACEIT-Leerfläche; der Name bleibt bewusst weit unten. */
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
  height:235px !important;
  min-height:235px !important;
  max-height:235px !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
  position:relative !important;
  height:113px !important;
  min-height:113px !important;
  max-height:113px !important;
  padding:0 !important;
}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
  position:absolute !important;
  left:12px !important;
  right:12px !important;
  bottom:18px !important;
  width:auto !important;
  margin:0 !important;
  text-align:center !important;
}

@media(max-width:650px){
  body:not(.admin-page) .teams-page-team-panel--faceit .teams-page-roster{
    padding-bottom:30px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual{
    height:205px !important;
    min-height:205px !important;
    max-height:205px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-info{
    height:97px !important;
    min-height:97px !important;
    max-height:97px !important;
  }
  body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual .player-name{
    bottom:16px !important;
  }
}


/* V166 — TEAMS panel sizing cleanup.
   No legacy fixed/minimum panel height remains: each panel is sized only by
   its header, wrapped player rows and bottom breathing room. */
body:not(.admin-page) .teams-page-stack{
  align-items:stretch !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel{
  flex:0 0 auto !important;
  align-self:stretch !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  block-size:auto !important;
  overflow:hidden !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel .teams-page-roster,
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel .teams-page-player-grid{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}
/* CS2 gets the same content-driven sizing, with its required bottom gap. */
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit{
  padding-bottom:0 !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-roster{
  padding-bottom:34px !important;
}
@media(max-width:650px){
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
    block-size:auto !important;
  }
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-roster{
    padding-bottom:30px !important;
  }
}



/* V170 — NUR TEAMS / COUNTER-STRIKE.
   Rückkehr zur funktionierenden V161-Logik: Karten bestimmen die Zeilenhöhe,
   Roster und Panel folgen automatisch dem tatsächlichen Inhalt. */
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-roster{
  display:block !important;
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  padding:0 0 28px 0 !important;
  margin:0 !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-grid{
  position:static !important;
  display:flex !important;
  flex-flow:row wrap !important;
  align-items:flex-start !important;
  align-content:flex-start !important;
  gap:16px !important;
  box-sizing:border-box !important;
  width:100% !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  transform:none !important;
  animation:none !important;
  will-change:auto !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card{
  position:relative !important;
  flex:0 0 205px !important;
  width:205px !important;
  min-width:205px !important;
  max-width:205px !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  align-self:flex-start !important;
  margin:0 !important;
}
@media(max-width:650px){
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-roster{
    padding-bottom:22px !important;
  }
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-grid{
    gap:12px !important;
  }
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card{
    flex-basis:180px !important;
    width:180px !important;
    min-width:180px !important;
    max-width:180px !important;
  }
}

/* V172 — NUR TEAMS / COUNTER-STRIKE.
   Entfernt die alte V162-Zwangshöhe der CS-Karten.
   Dadurch endet die Karte direkt nach Name + FACEIT-Statistiken und
   das bereits dynamische CS-Fenster kann tatsächlich passend schrumpfen. */
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card .player-info{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  padding:13px 14px 16px !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card .player-meta{
  margin-bottom:0 !important;
}
@media(max-width:650px){
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
  body:not(.admin-page) .teams-page-stack > .teams-page-team-panel--faceit .teams-page-player-card .player-info{
    height:auto !important;
    min-height:0 !important;
    max-height:none !important;
  }
}

/* V174 — eigenständige NEWS-Seite */
body:not(.admin-page) .news-page-main{padding-top:118px;min-height:calc(100vh - 120px)}
body:not(.admin-page) .news-page-shell{padding-bottom:70px}
body:not(.admin-page) .news-page-panel{min-height:420px}
body:not(.admin-page) .news-page-panel .section-head h1{margin:0;font-size:clamp(28px,4vw,48px);line-height:1}
body:not(.admin-page) .news-page-feed{grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
body:not(.admin-page) .news-page-feed .news-item{min-height:220px}
@media(max-width:1050px){body:not(.admin-page) .news-page-feed{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){
 body:not(.admin-page) .news-page-main{padding-top:92px}
 body:not(.admin-page) .news-page-feed{grid-template-columns:1fr}
}

/* V175 auth modal */html.auth-modal-open{overflow:hidden}.auth-modal{position:fixed;inset:0;z-index:5000;display:none;place-items:center;padding:24px}.auth-modal.is-open{display:grid}.auth-modal-backdrop{position:absolute;inset:0;border:0;background:rgba(3,7,12,.72);backdrop-filter:blur(7px)}.auth-modal-card{position:relative;z-index:1;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 48px);overflow:auto;padding:30px;border-radius:18px}.auth-modal-card h2{margin:5px 0 20px;font-size:34px}.auth-modal-close{position:absolute;right:16px;top:12px;border:0;background:transparent;color:inherit;font-size:32px;cursor:pointer}.auth-modal-tabs{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:20px}.auth-tab{border:1px solid rgba(255,255,255,.13);background:rgba(255,255,255,.04);color:inherit;padding:11px;font:inherit;font-weight:800;cursor:pointer}.auth-tab.is-active{border-color:rgba(255,255,255,.35);background:rgba(255,255,255,.11)}.auth-pane{display:none}.auth-pane.is-active{display:block}.auth-pane form{display:grid;gap:14px}.auth-pane label{display:grid;gap:6px;font-size:13px;font-weight:700}.auth-pane input{width:100%;box-sizing:border-box}.auth-member-note{font-size:12px;opacity:.68}@media(max-width:650px){.auth-modal{padding:12px}.auth-modal-card{padding:24px 18px;max-height:calc(100vh - 24px)}}

/* V176 — Member Verwaltung */
.member-admin-page{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}.member-admin-page .admin-sidebar{position:sticky;top:0;height:100vh}.member-admin-content{padding:38px;min-width:0}.member-admin-intro{opacity:.72;margin:0 0 24px}.member-admin-list{display:grid;gap:16px}.member-admin-card{padding:20px}.member-admin-identity{display:flex;justify-content:space-between;gap:16px;margin-bottom:18px}.member-admin-identity strong{display:block;font-size:20px}.member-admin-identity small{display:block;opacity:.62;margin-top:5px}.member-admin-role-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}.member-admin-role-grid label{display:grid;gap:6px;font-size:11px;font-weight:800;letter-spacing:.08em}.member-admin-role-grid select{width:100%;box-sizing:border-box;padding:10px 11px;border-radius:8px}.member-admin-actions{display:flex;justify-content:flex-end;margin-top:16px}@media(max-width:760px){.member-admin-page{grid-template-columns:1fr}.member-admin-page .admin-sidebar{position:static;height:auto}.member-admin-content{padding:22px 14px}.member-admin-role-grid{grid-template-columns:1fr}}

/* V177 — TEAMS 50px tiefer; NEWS an TEAMS-Fensterhöhe/Position angeglichen */
body:not(.admin-page) .teams-page-main{
  padding-top:318px !important;
}
body:not(.admin-page) .news-page-main{
  padding-top:318px !important;
  min-height:100vh !important;
}
body:not(.admin-page) .news-page-panel{
  height:auto !important;
  min-height:330px !important;
  max-height:none !important;
}
@media(max-width:1099px){
  body:not(.admin-page) .teams-page-main{
    padding-top:288px !important;
  }
  body:not(.admin-page) .news-page-main{
    padding-top:288px !important;
  }
}
@media(max-width:650px){
  body:not(.admin-page) .news-page-main{
    padding-top:288px !important;
  }
}

/* V178 — Login/Registrierung heller, GRIT-Seite im Hintergrund klarer sichtbar */
.auth-modal-backdrop{
  background:rgba(3,7,12,.38) !important;
  backdrop-filter:blur(2px) !important;
  -webkit-backdrop-filter:blur(2px) !important;
}
.auth-modal-card{
  background:rgba(22,27,34,.88) !important;
  border:1px solid rgba(255,255,255,.18) !important;
  box-shadow:0 24px 70px rgba(0,0,0,.38) !important;
}
.auth-tab{
  background:rgba(255,255,255,.075) !important;
}
.auth-tab.is-active{
  background:rgba(255,255,255,.16) !important;
}

/* V178 — Member Verwaltung nutzt dieselbe linke Adminnavigation wie alle anderen Adminbereiche */
.member-admin-page{
  display:block !important;
  min-height:100vh;
}
.member-admin-page .member-admin-content{
  margin-left:260px;
  padding:104px 38px 38px;
  min-width:0;
}
.member-admin-page .admin-side{
  display:flex !important;
}
@media(max-width:760px){
  .member-admin-page .member-admin-content{
    margin-left:0;
    padding:92px 14px 22px;
  }
}

/* V179 — News-Bild Auswahl */
.news-image-selection{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:-4px 0 14px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.12);
  border-radius:8px;
  background:rgba(255,255,255,.04);
}
.news-image-selection[hidden]{display:none !important}
.news-image-selection span{
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:12px;
  opacity:.78;
}
.news-image-selection button{
  flex:0 0 auto;
  border:1px solid rgba(255,90,90,.35);
  background:rgba(255,70,70,.08);
  color:#ff9b9b;
  border-radius:7px;
  padding:7px 10px;
  font:inherit;
  font-size:11px;
  font-weight:800;
  cursor:pointer;
}

/* V180 — NEWS-Seite wächst dynamisch mit der Anzahl der News */
body:not(.admin-page) .news-page-main,
body:not(.admin-page) .news-page-shell,
body:not(.admin-page) .news-page-panel,
body:not(.admin-page) .news-page-feed{
  height:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-panel{
  min-height:0 !important;
}
body:not(.admin-page) .news-page-feed{
  align-items:start !important;
}
body:not(.admin-page) .news-page-feed .news-item{
  height:auto !important;
  max-height:none !important;
}

/* V181 — HOME Spielerkacheln bleiben beim Hover stehen.
   Kein Hochrutschen mehr: dadurch bleibt auch die obere orange Kante vollständig sichtbar. */
body:not(.admin-page) #roster .player-card{
  transform:none !important;
}
body:not(.admin-page) #roster .player-card:hover{
  transform:none !important;
  position:relative;
  z-index:2;
  border-color:rgba(255,106,0,.58) !important;
}

/* V182 — die JS-gesteuerte HOME-Laufleiste pausiert wirklich unter Maus/Fokus. */
body:not(.admin-page) .roster-marquee .player-card:hover{
  transform:none !important;
}

/* V182 — NEWS-Seitenfenster wächst strikt mit seinem Inhalt nach unten. */
body:not(.admin-page) .news-page-main{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-shell{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-panel{
  display:flow-root !important;
  height:fit-content !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
  contain:none !important;
}
body:not(.admin-page) .news-page-feed{
  display:grid !important;
  grid-auto-rows:max-content !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-feed .news-item{
  position:relative !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* V182 — LIVE bleibt auch beim Hover sichtbar lila. */
body:not(.admin-page) .player-card.player-card--twitch-live,
body:not(.admin-page) #roster .player-card.player-card--twitch-live:hover{
  border-color:rgba(177,112,255,.90) !important;
}

/* V183 — NEWS: echte vertikale Inhalts-Höhe statt 3-Spalten-Grit.
   Jeder Post liegt unter dem vorherigen und das Außenfenster wächst mit. */
body:not(.admin-page) .news-page-feed{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-feed > .news-item{
  display:block !important;
  flex:0 0 auto !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-panel{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* V183 — Bilder auf der eigenen NEWS-Seite: max. 1000 × 1000 px,
   proportional, vollständig sichtbar und mittig. */
body:not(.admin-page) .news-page-feed .news-image-button{
  display:flex !important;
  justify-content:center !important;
  align-items:center !important;
  width:100% !important;
  max-width:1000px !important;
  margin:18px auto !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-feed .news-image{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:min(100%,1000px) !important;
  max-height:1000px !important;
  object-fit:contain !important;
  margin:0 auto !important;
}

/* V184 — VERWALTUNG: Baukasten und Einstellungen sind feste Schlusspositionen. */
.admin-side [data-admin-nav-key="builder"],
.admin-side [data-admin-nav-key="settings"]{
  cursor:default;
}

/* V184 — eigene NEWS-Seite: das Außenfenster folgt ausschließlich der Inhaltshöhe. */
body:not(.admin-page) main.news-page-main{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-main > .news-page-shell{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-main .news-page-panel{
  display:block !important;
  box-sizing:border-box !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-main .news-page-feed{
  display:flex !important;
  flex-flow:column nowrap !important;
  position:static !important;
  box-sizing:border-box !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-main .news-page-feed > .news-item{
  display:block !important;
  position:relative !important;
  box-sizing:border-box !important;
  flex:none !important;
  width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* V184 — Bild links, Text rechts. Bild bleibt vollständig sichtbar, max. 1000×1000. */
body:not(.admin-page) .news-page-main .news-content-row{
  display:block !important;
  width:100% !important;
}
body:not(.admin-page) .news-page-main .news-content-row.has-image{
  display:grid !important;
  grid-template-columns:minmax(240px,min(42vw,1000px)) minmax(0,1fr) !important;
  align-items:start !important;
  gap:28px !important;
}
body:not(.admin-page) .news-page-main .news-content-row .news-image-button{
  display:flex !important;
  justify-content:flex-start !important;
  align-items:flex-start !important;
  width:auto !important;
  max-width:1000px !important;
  margin:0 !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-main .news-content-row .news-image{
  display:block !important;
  width:auto !important;
  height:auto !important;
  max-width:100% !important;
  max-height:1000px !important;
  object-fit:contain !important;
  object-position:left top !important;
  margin:0 !important;
}
body:not(.admin-page) .news-page-main .news-copy{
  min-width:0 !important;
  align-self:start !important;
}
@media(max-width:800px){
  body:not(.admin-page) .news-page-main .news-content-row.has-image{
    grid-template-columns:1fr !important;
  }
  body:not(.admin-page) .news-page-main .news-content-row .news-image-button{
    max-width:100% !important;
  }
}

/* V185 — NEWS finaler Größen-/Layout-Fix.
   Datei wird serverseitig auf max. 1000x1000 gerechnet,
   auf der Seite aber bewusst kleiner dargestellt. */
body:not(.admin-page) .news-page-main .news-content-row.has-image{
  display:grid !important;
  grid-template-columns:minmax(260px,600px) minmax(0,1fr) !important;
  gap:30px !important;
  align-items:start !important;
}
body:not(.admin-page) .news-page-main .news-content-row .news-image-button{
  width:100% !important;
  max-width:600px !important;
  margin:0 !important;
  justify-content:flex-start !important;
}
body:not(.admin-page) .news-page-main .news-content-row .news-image{
  width:auto !important;
  height:auto !important;
  max-width:600px !important;
  max-height:600px !important;
  object-fit:contain !important;
  object-position:left top !important;
  margin:0 !important;
}
body:not(.admin-page) .news-page-main .news-copy{
  min-width:0 !important;
  width:100% !important;
}
@media(max-width:900px){
  body:not(.admin-page) .news-page-main .news-content-row.has-image{
    grid-template-columns:1fr !important;
  }
  body:not(.admin-page) .news-page-main .news-content-row .news-image-button{
    max-width:100% !important;
  }
  body:not(.admin-page) .news-page-main .news-content-row .news-image{
    max-width:100% !important;
    max-height:600px !important;
  }
}

/* V185 — die Höhe des äußeren NEWS-Fensters wird zusätzlich durch JS
   aus der tatsächlichen Feed-Höhe synchronisiert. CSS darf sie nicht deckeln. */
body:not(.admin-page) .news-page-main,
body:not(.admin-page) .news-page-shell,
body:not(.admin-page) .news-page-panel,
body:not(.admin-page) .news-page-feed,
body:not(.admin-page) .news-page-feed > .news-item{
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-panel{
  height:auto !important;
}

/* V186 — NEWS-Seite: kein internes Scrollfenster.
   Die komplette Seite wird so hoch wie alle News zusammen; der Footer folgt erst danach. */
html:has(body:not(.admin-page) .news-page-main),
body:has(.news-page-main){
  height:auto !important;
  min-height:100% !important;
  max-height:none !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
}
body:not(.admin-page) .news-page-main{
  position:relative !important;
  display:block !important;
  height:auto !important;
  min-height:calc(100vh - 120px) !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-shell{
  display:block !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-panel{
  display:block !important;
  position:relative !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-feed{
  display:flex !important;
  flex-direction:column !important;
  position:relative !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:not(.admin-page) .news-page-feed > .news-item{
  position:relative !important;
  flex:0 0 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body:has(.news-page-main) footer{
  position:relative !important;
  clear:both !important;
}

/* V187 — GRIT-eigene Löschbestätigung statt Browser-confirm(). */
html.grid-confirm-open{overflow:hidden !important}

.grid-confirm{
  position:fixed;
  inset:0;
  z-index:99999;
  display:none;
  place-items:center;
  padding:20px;
}
.grid-confirm.is-open{display:grid}

.grid-confirm__backdrop{
  position:absolute;
  inset:0;
  border:0;
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
  cursor:default;
}

.grid-confirm__card{
  position:relative;
  z-index:1;
  width:min(460px,calc(100vw - 32px));
  box-sizing:border-box;
  padding:28px 30px 26px;
  border:1px solid rgba(255,255,255,.10);
  background:
    linear-gradient(180deg,rgba(17,18,20,.98),rgba(8,9,10,.98));
  box-shadow:0 30px 90px rgba(0,0,0,.62);
}

.grid-confirm__card::before{
  content:"";
  position:absolute;
  left:0;
  top:0;
  width:92px;
  height:2px;
  background:linear-gradient(90deg,var(--orange),transparent);
}

.grid-confirm__card h2{
  margin:7px 0 10px;
  font-size:26px;
  line-height:1;
  letter-spacing:-.02em;
}

.grid-confirm__card p{
  margin:0;
  color:#9a9ea3;
  font-size:13px;
  line-height:1.6;
}

.grid-confirm__actions{
  display:flex;
  justify-content:flex-end;
  gap:10px;
  margin-top:26px;
}

.grid-confirm__btn{
  min-width:118px;
  height:40px;
  padding:0 18px;
  border:1px solid rgba(255,255,255,.13);
  background:#111315;
  color:#d7dade;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  cursor:pointer;
  transition:transform .16s ease,border-color .16s ease,background .16s ease;
}

.grid-confirm__btn:hover{transform:translateY(-1px)}

.grid-confirm__btn--cancel:hover{
  border-color:rgba(255,255,255,.28);
  background:#17191c;
}

.grid-confirm__btn--danger{
  border-color:rgba(255,77,77,.52);
  background:rgba(92,18,18,.72);
  color:#ff8c8c;
}

.grid-confirm__btn--danger:hover{
  border-color:#ff5555;
  background:rgba(130,24,24,.86);
  color:#fff;
}

.grid-confirm__btn:disabled{
  opacity:.55;
  cursor:wait;
  transform:none;
}

@media(max-width:560px){
  .grid-confirm__card{padding:24px 20px 20px}
  .grid-confirm__actions{flex-direction:column-reverse}
  .grid-confirm__btn{width:100%}
}

/* V191 — ÜBERSICHT: klar erkennbares Dashboard-Symbol. */
.admin-page .admin-side [data-admin-nav-key="overview"] .admin-nav-icon--overview,
.member-admin-page .admin-side [data-admin-nav-key="overview"] .admin-nav-icon--overview{
  width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  fill:rgba(255,255,255,.06) !important;
  stroke:currentColor !important;
  stroke-width:1.8 !important;
  stroke-linecap:round !important;
  stroke-linejoin:round !important;
}

/* V192 — NEWS-Autor */
.news-meta-line{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:8px 14px;
  margin-bottom:10px;
}
.news-meta-line .news-date{
  margin:0 !important;
}
.news-author{
  color:#7f8489;
  font-size:9px;
  font-weight:800;
  letter-spacing:.10em;
  text-transform:uppercase;
}

/* V193 — Admin-Navigation: alle Symbole und Texte exakt gleich ausrichten.
   Gilt im normalen Adminbereich und in VERWALTUNG. */
.admin-page .admin-side > [data-admin-nav-key],
.member-admin-page .admin-side > [data-admin-nav-key],
.admin-page .admin-side > form > button,
.member-admin-page .admin-side > form > button{
  display:flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  gap:14px !important;
  text-align:left !important;
}

.admin-page .admin-side .admin-nav-icon,
.member-admin-page .admin-side .admin-nav-icon,
.admin-page .admin-side .admin-nav-glyph,
.member-admin-page .admin-side .admin-nav-glyph{
  width:18px !important;
  min-width:18px !important;
  max-width:18px !important;
  height:18px !important;
  flex:0 0 18px !important;
  margin:0 !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  line-height:1 !important;
  text-align:center !important;
}

.admin-page .admin-side .admin-nav-glyph,
.member-admin-page .admin-side .admin-nav-glyph{
  font-size:15px !important;
  font-weight:800 !important;
}

.admin-page .admin-side > [data-admin-nav-key] > span:last-child,
.member-admin-page .admin-side > [data-admin-nav-key] > span:last-child,
.admin-page .admin-side > form > button > span:last-child,
.member-admin-page .admin-side > form > button > span:last-child{
  margin:0 !important;
  padding:0 !important;
  line-height:1.2 !important;
}

/* Die SVG-Sonderregeln dürfen den gemeinsamen Abstand nicht mehr überschreiben. */
.admin-page .admin-side [data-view="stats"],
.admin-page .admin-side [data-view="news"],
.admin-page .admin-side [data-view="builder"]{
  gap:14px !important;
}

/* Mobile/enge Adminleiste: Icon bleibt mittig, Text wird wie bisher ausgeblendet. */
@media(max-width:900px){
  .admin-page .admin-side > [data-admin-nav-key],
  .member-admin-page .admin-side > [data-admin-nav-key],
  .admin-page .admin-side > form > button,
  .member-admin-page .admin-side > form > button{
    justify-content:center !important;
    gap:0 !important;
  }
}

/* V194 — 1: LOGIN/REGISTER Umschalter unter den Eingabefeldern */
.auth-modal-tabs.auth-modal-tabs--bottom{
  margin:20px 0 0 !important;
}

/* V194 — 2: MATCHES pro Spiel */
.admin-match-game-tabs{margin:0 0 18px !important}
.admin-match-game-label,.cw-game-label{
  display:block;
  margin:0 0 5px;
  color:#ff6a00;
  font-size:9px;
  font-weight:900;
  letter-spacing:.10em;
  text-transform:uppercase;
}

/* V194 — 3: TEAMS-Hover auf Desktop immer eine horizontale Reihe */
@media(min-width:901px){
  .teams-nav__menu{
    display:grid !important;
    grid-auto-flow:column !important;
    grid-template-columns:none !important;
    grid-auto-columns:165px !important;
    width:max-content !important;
    max-width:calc(100vw - 40px) !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    gap:8px !important;
  }
  .teams-nav__menu .game-tile{
    width:165px !important;
    min-width:165px !important;
    max-width:165px !important;
  }
}

/* V194 — 4: NUR HOME-News: Bild 200x200, Text rechts.
   Separate NEWS-Seite bleibt bei ihrer bisherigen Darstellung. */
body:not(.admin-page) #news:not(.news-page-panel) .news-content-row.has-image{
  display:grid !important;
  grid-template-columns:200px minmax(0,1fr) !important;
  gap:18px !important;
  align-items:start !important;
}
body:not(.admin-page) #news:not(.news-page-panel) .news-image-button{
  width:200px !important;
  max-width:200px !important;
  height:200px !important;
  max-height:200px !important;
  margin:0 !important;
  overflow:hidden !important;
}
body:not(.admin-page) #news:not(.news-page-panel) .news-image{
  display:block !important;
  width:200px !important;
  max-width:200px !important;
  height:200px !important;
  max-height:200px !important;
  object-fit:cover !important;
  object-position:center !important;
  margin:0 !important;
}
@media(max-width:650px){
  body:not(.admin-page) #news:not(.news-page-panel) .news-content-row.has-image{
    grid-template-columns:120px minmax(0,1fr) !important;
    gap:12px !important;
  }
  body:not(.admin-page) #news:not(.news-page-panel) .news-image-button,
  body:not(.admin-page) #news:not(.news-page-panel) .news-image{
    width:120px !important;
    max-width:120px !important;
    height:120px !important;
    max-height:120px !important;
  }
}

/* V195 — ROSTER: verknüpfte Twitch/Kick-Kanäle direkt neben STREAMS / BILD anzeigen. */
.admin-page .admin-player-profile-edit{
  display:inline-flex !important;
  align-items:center !important;
  gap:8px !important;
}
.admin-page .admin-roster-stream-badges{
  display:inline-flex;
  align-items:center;
  gap:5px;
}
.admin-page .admin-roster-stream-badges:empty{
  display:none;
}
.admin-page .admin-roster-stream-badge{
  width:20px;
  height:20px;
  box-sizing:border-box;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.16);
  border-radius:5px;
  background:rgba(5,6,8,.82);
}
.admin-page .admin-roster-stream-badge img{
  display:block;
  width:13px;
  height:13px;
  object-fit:contain;
}

/* V196 — Match-Maps für BO1/BO3/BO5 */
.admin-match-maps-wrap{margin:18px 0 16px}
.admin-match-map-fields{display:grid;grid-template-columns:1fr;gap:10px;margin-top:10px}
.admin-match-map-fields label{display:grid;gap:6px;color:#ff6a00;font-size:10px;font-weight:900;letter-spacing:.06em}
.admin-match-map-fields input{box-sizing:border-box;width:100%}

/* V196 — HOME: kein Kartensprung beim Pausieren der Laufbänder */
body:not(.admin-page) .roster-marquee .player-card,
body:not(.admin-page) .roster-marquee .player-card:hover{
  transform:none !important;
  translate:none !important;
  animation:none !important;
}
body:not(.admin-page) .roster-marquee.is-pointer-paused .roster-grid{will-change:auto !important}

/* V196 — HOME-News: mehr Platz unter dem letzten Post */
body:not(.admin-page) #news:not(.news-page-panel) .news-feed{
  box-sizing:border-box !important;
  padding-bottom:46px !important;
  scroll-padding-bottom:46px !important;
}
body:not(.admin-page) #news:not(.news-page-panel) .news-item:last-child{margin-bottom:12px !important}

/* V197 */
.admin-match-map-entry{display:grid;grid-template-columns:minmax(220px,1fr) 120px 120px;gap:10px;padding:12px;border:1px solid rgba(255,255,255,.08);background:rgba(5,6,8,.42)}
.matches-page-main{padding:318px 0 50px;min-height:calc(100vh - 180px)}.matches-page-panel{min-height:560px}.matches-game-tabs{display:flex;gap:8px;overflow-x:auto;padding:2px 0 18px}.matches-game-tab{flex:0 0 auto;border:1px solid rgba(255,255,255,.12);background:#090a0b;color:#8f9499;padding:11px 15px;font-size:10px;font-weight:950;cursor:pointer}.matches-game-tab.active{color:#fff;border-color:rgba(255,106,0,.65)}.matches-page-list,.matches-page-map-results{display:grid;gap:12px}.matches-page-map-row{display:flex;justify-content:space-between;gap:20px;padding:10px 12px;border:1px solid rgba(255,255,255,.07)}
body:not(.admin-page) #customGameSections .roster-marquee .roster-grid,body:not(.admin-page) #customGameSections .roster-marquee .roster-grid.is-marquee{animation:none !important}body:not(.admin-page) #customGameSections .roster-marquee .roster-grid.js-marquee-running{display:flex!important;flex-wrap:nowrap!important;gap:16px!important;width:max-content!important;min-width:max-content!important;will-change:transform!important}body:not(.admin-page) #customGameSections .roster-marquee .player-card{flex:0 0 190px!important;width:190px!important;min-width:190px!important;max-width:190px!important}
@media(max-width:650px){.admin-match-map-entry{grid-template-columns:1fr 1fr}.admin-match-map-name{grid-column:1/-1}.matches-page-main{padding-top:288px}body:not(.admin-page) #customGameSections .roster-marquee .player-card{flex:0 0 165px!important;width:165px!important;min-width:165px!important;max-width:165px!important}}


/* Punkt 5 — HOME: Namen in Karten neu angelegter Spiele exakt zentrieren. */
body:not(.admin-page) #customGameSections .roster-marquee .player-card .player-info{
  position:relative !important;
  box-sizing:border-box !important;
}
body:not(.admin-page) #customGameSections .roster-marquee .player-card .player-name{
  position:absolute !important;
  left:0 !important;
  right:0 !important;
  width:100% !important;
  margin:0 !important;
  padding:0 10px !important;
  box-sizing:border-box !important;
  text-align:center !important;
}


/* V200 — eigene MEDIEN-Seite */
body:not(.admin-page) .media-page-main{padding:318px 0 50px;min-height:calc(100vh - 180px)}
body:not(.admin-page) .media-page-panel{min-height:420px}
body:not(.admin-page) .media-empty{display:grid;gap:8px;padding:28px 0;color:#8f9499}
body:not(.admin-page) .media-empty strong{color:#fff;letter-spacing:.08em}
@media(max-width:650px){body:not(.admin-page) .media-page-main{padding-top:288px}}

/* V201 — Medienverwaltung und Benutzerrechte */
.media-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.media-card{overflow:hidden;border:1px solid rgba(255,255,255,.09);background:rgba(8,10,12,.72)}.media-frame{aspect-ratio:16/9;background:#050505}.media-frame iframe{width:100%;height:100%;border:0}.media-card-copy{padding:16px}.media-card-copy>span{font-size:11px;letter-spacing:.14em;color:#f28a2e}.media-card-copy h2{margin:6px 0}.media-card-copy p{color:#a6aaae}.admin-media-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.admin-media-item div{display:grid;gap:4px}.admin-media-item small{color:#8f9499;word-break:break-all}.member-permissions{margin-top:18px;padding-top:16px;border-top:1px solid rgba(255,255,255,.08)}.member-permission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:10px 0}.member-permission-row{display:flex!important;align-items:center;gap:8px}.member-permission-row input{width:auto!important}.member-permissions>small{color:#8f9499}@media(max-width:850px){.media-grid,.member-permission-grid{grid-template-columns:1fr}}
.media-load-button{display:grid;place-content:center;justify-items:center;gap:8px;width:100%;height:100%;padding:22px;border:0;background:radial-gradient(circle at 50% 45%,rgba(255,101,0,.14),transparent 58%),#050505;color:#fff;text-align:center;cursor:pointer}.media-load-button span{color:#f28a2e;font-size:9px;font-weight:900;letter-spacing:.18em}.media-load-button strong{font-size:13px;letter-spacing:.08em}.media-load-button small{max-width:440px;color:#92979b;font-size:10px;line-height:1.5}.media-load-button:hover,.media-load-button:focus-visible{outline:1px solid rgba(255,101,0,.72);outline-offset:-1px;background:radial-gradient(circle at 50% 45%,rgba(255,101,0,.23),transparent 60%),#060606}

/* V207 — neue 4000px-Hintergründe ersetzen das alte Website-Artwork vollständig.
   Die Hintergrundebene scrollt mit der Seite, damit das Motiv bis nach unten sichtbar bleibt. */
body:not(.admin-page) .world{
  position:absolute !important;
  inset:0 0 auto 0 !important;
  width:100% !important;
  height:4000px !important;
  min-height:100% !important;
  background-image:url("../img/backgrounds/grit-background-3840x2500.png") !important;
  background-repeat:no-repeat !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-color:#030405 !important;
}

@media (max-width:2560px){
  body:not(.admin-page) .world{
    background-image:url("../img/backgrounds/grit-background-2560x2000.png") !important;
  }
}

@media (max-width:1920px){
  body:not(.admin-page) .world{
    background-image:url("../img/backgrounds/grit-background-1920x1500.png") !important;
  }
}

/* V208 — neue freigegebene GRIT-Hintergründe nach Bildschirmbreite. */
body:not(.admin-page) .world{
  height:2500px !important;
  background-image:url("../img/backgrounds/grit-background-3840x2500.png") !important;
  background-position:center top !important;
  background-size:100% auto !important;
  background-repeat:no-repeat !important;
}
@media (max-width:2560px){
  body:not(.admin-page) .world{
    height:2000px !important;
    background-image:url("../img/backgrounds/grit-background-2560x2000.png") !important;
  }
}
@media (max-width:1920px){
  body:not(.admin-page) .world{
    height:1500px !important;
    background-image:url("../img/backgrounds/grit-background-1920x1500.png") !important;
  }
}
@media (max-width:1280px){
  body:not(.admin-page) .world{
    height:1000px !important;
    background-image:url("../img/backgrounds/grit-background-1280x1000.png") !important;
  }
}

/* V210 — GRIT-Schriftzug + Motto + kleiner Helm als eigene Overlay-Ebene.
   Hintergrundbilder aus V208 bleiben unverändert. */
body:not(.admin-page) .world::after{
  content:"";
  position:absolute;
  z-index:2;
  top:54px;
  left:57%;
  width:min(42vw,980px);
  aspect-ratio:945 / 605;
  transform:translateX(-50%);
  background:url("../img/grit-title-motto.png") center/contain no-repeat;
  pointer-events:none;
}
@media(max-width:1920px){
  body:not(.admin-page) .world::after{top:50px;left:58%;width:min(44vw,820px)}
}
@media(max-width:1280px){
  body:not(.admin-page) .world::after{top:58px;left:58%;width:min(52vw,650px)}
}

/* V210 — feste Ebenen-Reihenfolge:
   0 Hintergrund, 1 GRIT/Motto/kleiner Helm, 3 Website-Inhalt, 20 Navigation/Overlays. */
body:not(.admin-page) .world{
  z-index:0 !important;
  pointer-events:none !important;
}
body:not(.admin-page) .world::after{
  z-index:1 !important;
  opacity:1 !important;
  visibility:visible !important;
  display:block !important;
}
body:not(.admin-page) main,
body:not(.admin-page) footer{
  position:relative;
  z-index:3;
}
body:not(.admin-page) .topbar{
  position:relative;
  z-index:20;
}
body:not(.admin-page) .auth-modal,
body:not(.admin-page) .auth-backdrop,
body:not(.admin-page) .admin-drawer,
body:not(.admin-page) .drawer-backdrop{
  z-index:50;
}
\n\n/* V211 — zentrale visuelle Ebene aus base.html.
   Jede aktuelle und zukünftige öffentliche Seite erbt automatisch:
   Hintergrund (0) -> GRIT/Motto/Helm (1) -> Inhalt/Fenster (3) -> Navigation/Overlays. */
body .site-visual-layer.world{
  z-index:0 !important;
  pointer-events:none !important;
}
body .site-visual-layer.world::after{
  content:none !important;
  display:none !important;
}
body .site-visual-layer .site-brand-artwork{
  position:absolute;
  z-index:1;
  top:54px;
  left:57%;
  width:min(42vw,980px);
  aspect-ratio:945 / 605;
  transform:translateX(-50%);
  background:url("../img/grit-title-motto.png") center/contain no-repeat;
  opacity:1;
  visibility:visible;
  pointer-events:none;
}
@media(max-width:1920px){
  body .site-visual-layer .site-brand-artwork{top:50px;left:58%;width:min(44vw,820px)}
}
@media(max-width:1280px){
  body .site-visual-layer .site-brand-artwork{top:58px;left:58%;width:min(52vw,650px)}
}
body main,
body footer{
  position:relative;
  z-index:3;
}
body .topbar{
  z-index:20;
}
body .auth-modal,
body .auth-backdrop,
body .admin-drawer,
body .drawer-backdrop{
  z-index:50;
}

/* V212 — Testschritt 1: neues sauberes GRIT/Motto-Artwork nur auf HOME.
   Reihenfolge bleibt: Hintergrund -> Artwork -> Fenster -> Navigation/Overlays. */
body:not(.admin-page) .site-visual-layer .site-brand-artwork{
  display:none !important;
}
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  display:block !important;
  position:absolute !important;
  z-index:1 !important;
  top:52px !important;
  left:39.5% !important;
  width:min(56vw,1180px) !important;
  height:auto !important;
  aspect-ratio:auto !important;
  transform:translateX(-50%) !important;
  background:none !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:none !important;
}
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  user-select:none;
  -webkit-user-drag:none;
}
@media (min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:50px !important;
    left:39% !important;
    width:min(55vw,1320px) !important;
  }
}
@media (max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:64px !important;
    left:50% !important;
    width:min(88vw,820px) !important;
  }
}

/* V213 — HOME: GRIT/Motto ca. 12% kleiner, Position unverändert. */
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  width:min(49.3vw,1038px) !important;
}
@media (min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    width:min(48.4vw,1162px) !important;
  }
}
@media (max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    width:min(77.4vw,722px) !important;
  }
}

/* V214 — GRIT Artwork Positionierung.
   HOME: weitere 10% kleiner als V213 und exakt ueber der Mitte der linken
   Counter-Strike-Spalte des Desktop-Dashboards.
   Alle anderen oeffentlichen Seiten: oben horizontal mittig.
   Zukuenftige oeffentliche Seiten erben automatisch die zentrierte Variante. */
body:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
  display:block !important;
  position:absolute !important;
  z-index:1 !important;
  top:50px !important;
  left:50% !important;
  width:min(44vw,1038px) !important;
  height:auto !important;
  aspect-ratio:auto !important;
  transform:translateX(-50%) !important;
  background:none !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:none !important;
}
body:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
}

@media (min-width:1100px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    /* Mitte der linken Dashboard-Spalte:
       Content = min(1840px, 100vw - 48px), Grid = 1.68fr / .96fr, Gap = 16px. */
    left:calc(
      (100vw - min(1840px, calc(100vw - 48px))) / 2
      + (min(1840px, calc(100vw - 48px)) - 16px) * 0.3181818
    ) !important;
    width:min(44.37vw,934px) !important;
    transform:translateX(-50%) !important;
  }
}
@media (min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    width:min(43.56vw,1046px) !important;
  }
}
@media (max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    left:50% !important;
    width:min(69.66vw,650px) !important;
  }
  body:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
    top:64px !important;
    width:min(78vw,722px) !important;
  }
}

/* V215 — vereinbarte vertikale Positionen.
   HOME: nur GRIT/Motto/Helm +50px; HOME-Inhalte bleiben unverändert.
   Alle anderen aktuellen und zukuenftigen oeffentlichen Seiten:
   GRIT/Motto/Helm +25px und der komplette Seiteninhalt +50px.
   Admin bleibt unveraendert. */
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  top:102px !important;
}
@media (min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:100px !important;
  }
}
@media (max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:114px !important;
  }
}

body:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
  top:75px !important;
}
@media (max-width:1099px){
  body:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
    top:89px !important;
  }
}

/* Zentral auf main statt auf einzelne Seitentypen: dadurch erben auch
   zukuenftige oeffentliche Seiten den 50px-Inhaltsversatz automatisch. */
body:not(.admin-page):not(.home-page) > main{
  transform:translateY(50px) !important;
}

/* V216 — öffentliche Unterseiten scrollen wieder vollständig im normalen Dokumentfluss.
   Der bisherige +50px-Versatz über transform verschob den Inhalt nur optisch und konnte
   bei langen NEWS-/TEAMS-/MATCHES-/MEDIEN-Seiten zu Überlagerungen führen.
   Jetzt wird derselbe Abstand als echter Dokumentabstand reserviert. Dadurch bewegen
   sich alle Fenster beim Scrollen normal nach oben. Zukünftige öffentliche Seiten,
   die wie vorgesehen ein direktes <main> unter <body> verwenden, erben das automatisch. */
body:not(.admin-page):not(.home-page) > main{
  position:relative !important;
  transform:none !important;
  margin-top:50px !important;
  top:auto !important;
  bottom:auto !important;
}

/* Die äußeren Seitencontainer dürfen auf öffentlichen Unterseiten niemals am Viewport
   kleben. Sie bleiben Teil des normalen Seitenflusses und scrollen mit der Seite. */
body:not(.admin-page):not(.home-page) > main > .content-shell,
body:not(.admin-page) .news-page-panel,
body:not(.admin-page) .teams-page-stack,
body:not(.admin-page) .matches-page-panel,
body:not(.admin-page) .media-page-panel{
  position:relative !important;
  top:auto !important;
  bottom:auto !important;
}

/* V217 — NEWS: kein riesiges Außenfenster mehr.
   Jeder News-Beitrag ist ein eigenes, dynamisches Fenster und wird exakt so hoch
   wie sein tatsächlicher Inhalt (Bild/Text). Die Seite bleibt vollständig im normalen
   Dokumentfluss, daher wandern alle News-Fenster beim Scrollen nach oben. */
body:not(.admin-page) .news-page-main,
body:not(.admin-page) .news-page-shell,
body:not(.admin-page) .news-page-panel,
body:not(.admin-page) .news-page-feed,
body:not(.admin-page) .news-page-feed > .news-item{
  position:relative !important;
  top:auto !important;
  bottom:auto !important;
  transform:none !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* Das bisherige große GLASS-Außenfenster wurde bei vielen News zwangsläufig sehr lang.
   Es ist jetzt nur noch ein transparenter Layout-Container. */
body:not(.admin-page) .news-page-panel{
  padding:0 !important;
  border:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* NEWS-Kopf bleibt als eigenes kompaktes Fenster erhalten. */
body:not(.admin-page) .news-page-panel > .section-head{
  box-sizing:border-box !important;
  margin:0 0 18px !important;
  padding:24px 28px !important;
  border:1px solid rgba(255,255,255,.08) !important;
  background:rgba(8,9,10,.82) !important;
  box-shadow:0 18px 60px rgba(0,0,0,.24) !important;
  backdrop-filter:blur(14px) !important;
  -webkit-backdrop-filter:blur(14px) !important;
}

body:not(.admin-page) .news-page-feed{
  display:flex !important;
  flex-direction:column !important;
  align-items:stretch !important;
  gap:14px !important;
  margin:0 !important;
  padding:0 !important;
}

/* Jeder einzelne Beitrag ist nun das eigentliche News-Fenster. */
body:not(.admin-page) .news-page-feed > .news-item{
  display:block !important;
  flex:0 0 auto !important;
  width:100% !important;
  margin:0 !important;
  padding:18px !important;
  box-sizing:border-box !important;
  border:1px solid rgba(255,255,255,.08) !important;
  background:rgba(8,9,10,.88) !important;
  box-shadow:0 18px 60px rgba(0,0,0,.20) !important;
}

/* Die Zeile nimmt ausschließlich die Höhe von Bild/Text an. Keine künstliche Kartenhöhe. */
body:not(.admin-page) .news-page-feed > .news-item .news-content-row,
body:not(.admin-page) .news-page-feed > .news-item .news-content-row.has-image{
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
}

body:not(.admin-page) .news-page-feed > .news-item .news-image-button,
body:not(.admin-page) .news-page-feed > .news-item .news-image{
  height:auto !important;
}

body:not(.admin-page) .news-page-shell{
  padding-bottom:40px !important;
}

@media(max-width:650px){
  body:not(.admin-page) .news-page-panel > .section-head{
    padding:20px 16px !important;
  }
  body:not(.admin-page) .news-page-feed > .news-item{
    padding:14px !important;
  }
}

/* =========================================================
   V222 — BACKGROUND-BOUND PAGE + ONE CONTENT SCROLLER
   - Dokumenthoehe endet exakt mit der aktiven Hintergrunddatei.
   - HOME-Grid bleibt geometrisch unveraendert.
   - TEAMS behaelt seinen normalen Dokumentfluss.
   - NEWS/MATCHES/MEDIEN: auto-Hoehe bis Hintergrundende, danach
     scrollt nur noch das jeweilige Gesamtfenster.
   ========================================================= */
html,body{background:#020202 !important;}

body.public-site{--grit-background-height:2500px;}
@media (max-width:2560px){body.public-site{--grit-background-height:2000px;}}
@media (max-width:1920px){body.public-site{--grit-background-height:1500px;}}
@media (max-width:1280px){body.public-site{--grit-background-height:1000px;}}

body.public-site:not(.admin-page) .site-visual-layer.world{
  height:var(--grit-background-height) !important;
  min-height:var(--grit-background-height) !important;
  max-height:var(--grit-background-height) !important;
  background-color:#020202 !important;
}

/* Nur das Dokument scrollt bis zum Hintergrundende. Es gibt keinen
   kuenstlichen main-/shell-Scroller. Ueberstehender Seiteninhalt wird
   am Hintergrundende abgeschnitten. */
html:has(body.public-site:not(.admin-page):not(.auth-page)){
  overflow-x:hidden !important;
  overflow-y:auto !important;
  background:#020202 !important;
}
body.public-site:not(.admin-page):not(.auth-page){
  height:var(--grit-background-height) !important;
  min-height:var(--grit-background-height) !important;
  max-height:var(--grit-background-height) !important;
  overflow:hidden !important;
}
body.public-site:not(.admin-page):not(.auth-page) > main{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* HOME: absichtlich KEINE Grid-/Fenstergeometrie. */
body.public-site.home-page:not(.admin-page) > main,
body.public-site.home-page:not(.admin-page) > main > .content-shell,
body.public-site.home-page:not(.admin-page) .desktop-dashboard-layout,
body.public-site.home-page:not(.admin-page) .desktop-dashboard-main,
body.public-site.home-page:not(.admin-page) .desktop-dashboard-side{
  height:auto !important;
  max-height:none !important;
  overflow-y:visible !important;
}

/* TEAMS bleibt Referenz: kein eigener vertikaler Stack-Scroller. */
body.public-site:not(.admin-page) .teams-page-main,
body.public-site:not(.admin-page) .teams-page-shell,
body.public-site:not(.admin-page) .teams-page-stack{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:visible !important;
}

/* Dynamische Gesamtfenster. JS setzt --grit-panel-max exakt auf den
   Abstand von der aktuellen Oberkante bis zum Hintergrundende. */
body.public-site:not(.admin-page) .news-page-panel,
body.public-site:not(.admin-page) .matches-page-panel,
body.public-site:not(.admin-page) .media-page-panel{
  height:auto !important;
  min-height:0 !important;
  max-height:var(--grit-panel-max, none) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:auto;
}

body.public-site:not(.admin-page) .news-page-main,
body.public-site:not(.admin-page) .news-page-shell,
body.public-site:not(.admin-page) .news-page-feed,
body.public-site:not(.admin-page) .matches-page-main,
body.public-site:not(.admin-page) .matches-page-shell,
body.public-site:not(.admin-page) .matches-page-list,
body.public-site:not(.admin-page) .media-page-main,
body.public-site:not(.admin-page) .media-page-shell,
body.public-site:not(.admin-page) .media-grid{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow-y:visible !important;
}

/* NEWS bleibt EIN Fenster: section-head und alle News gehoeren zum selben
   scrollbaren Panel; Feed und einzelne News erzeugen keinen Extra-Scroller. */
body.public-site:not(.admin-page) .news-page-panel{
  display:block !important;
  padding:clamp(22px,2.5vw,38px) !important;
  border:1px solid rgba(255,255,255,.08) !important;
  background:linear-gradient(180deg,rgba(17,18,20,.87),rgba(9,10,11,.88)) !important;
  box-shadow:var(--shadow) !important;
  backdrop-filter:blur(16px) !important;
  -webkit-backdrop-filter:blur(16px) !important;
}
body.public-site:not(.admin-page) .news-page-panel > .section-head{
  margin:0 0 28px !important;padding:0 !important;border:0 !important;
  background:transparent !important;box-shadow:none !important;
  backdrop-filter:none !important;-webkit-backdrop-filter:none !important;
}
body.public-site:not(.admin-page) .news-page-feed{
  display:flex !important;flex-direction:column !important;gap:14px !important;
  margin:0 !important;padding:0 !important;overflow:visible !important;
}
body.public-site:not(.admin-page) .news-page-feed > .news-item{
  flex:0 0 auto !important;height:auto !important;min-height:0 !important;
  max-height:none !important;overflow:visible !important;
}
body.public-site:not(.admin-page) .matches-page-panel,
body.public-site:not(.admin-page) .media-page-panel{display:block !important;}

@media(max-width:650px){
  body.public-site:not(.admin-page) .news-page-panel{padding:20px 13px !important;}
}

/* V227 — NEWS: dynamisch bis kurz vor das Hintergrundende.
   Danach scrollt ausschließlich der gemeinsame News-Feed im selben Fenster.
   Der Header bleibt Teil des Fensters und erzeugt keinen zweiten Scrollbereich. */
body.public-site:not(.admin-page) .news-page-main,
body.public-site:not(.admin-page) .news-page-shell{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body.public-site:not(.admin-page) .news-page-panel{
  display:flex !important;
  flex-direction:column !important;
  box-sizing:border-box !important;
  height:auto !important;
  min-height:0 !important;
  max-height:var(--grit-panel-max, none) !important;
  overflow:hidden !important;
}
body.public-site:not(.admin-page) .news-page-panel > .section-head{
  flex:0 0 auto !important;
}
body.public-site:not(.admin-page) .news-page-feed{
  display:flex !important;
  flex-direction:column !important;
  flex:0 1 auto !important;
  min-height:0 !important;
  height:auto !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior:auto;
}
body.public-site:not(.admin-page) .news-page-feed > .news-item{
  flex:0 0 auto !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* NEWS-Bilder auf der eigenen NEWS-Seite kompakter, ohne Verzerrung. */
@media (min-width:901px){
  body.public-site:not(.admin-page) .news-page-main .news-content-row.has-image{
    grid-template-columns:minmax(220px,360px) minmax(0,1fr) !important;
    gap:24px !important;
  }
  body.public-site:not(.admin-page) .news-page-main .news-content-row .news-image-button{
    width:100% !important;
    max-width:360px !important;
  }
  body.public-site:not(.admin-page) .news-page-main .news-content-row .news-image{
    width:auto !important;
    height:auto !important;
    max-width:360px !important;
    max-height:360px !important;
    object-fit:contain !important;
  }
}

/* MEDIEN: vier Karten pro Reihe auf Desktop. Die Videos bleiben 16:9. */
body.public-site:not(.admin-page) .media-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:14px !important;
}
@media (max-width:900px){
  body.public-site:not(.admin-page) .media-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important;}
}
@media (max-width:600px){
  body.public-site:not(.admin-page) .media-grid{grid-template-columns:1fr !important;}
}

/* MEDIEN: vorhandener Panel-Scroller bleibt nutzbar, aber ohne sichtbare Scrollleiste. */
body.public-site:not(.admin-page) .media-page-panel{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
body.public-site:not(.admin-page) .media-page-panel::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

/* V226 bleibt erhalten: Die festen HOME-Dashboard-Höhen gelten ausschließlich
   für das HOME-News-Panel (#news:not(.news-page-panel)). */


/* V228 — GLOBAL SCROLL-CHAINING
   Interne Scrollbereiche geben Wheel/Touch am oberen/unteren Rand
   wieder an den Seiten-Scroller weiter. Fensterhoehen bleiben unveraendert. */
body.public-site:not(.admin-page) *{
  overscroll-behavior-y:auto !important;
}


/* V235 — NEWS exakt so transparent wie das MEDIEN-Hauptfenster. */
body.public-site:not(.admin-page) .news-page-panel{
  background:linear-gradient(180deg,rgba(7,8,9,.86),rgba(3,4,5,.92)) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}

/* V237 — TEAMS scrollt als Gesamtbereich. Auf HOME scrollt am Desktop nur
   die linke Spielespalte, damit NEWS und MATCHES rechts immer sichtbar bleiben. */
body.public-site:not(.admin-page) .teams-page-shell{
  box-sizing:border-box !important;
  height:auto !important;
  min-height:0 !important;
  max-height:var(--grit-flow-max, none) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-y:auto !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
body.public-site:not(.admin-page) .teams-page-shell::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

@media (min-width:1100px){
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-main{
    box-sizing:border-box !important;
    height:auto !important;
    min-height:0 !important;
    max-height:var(--grit-flow-max, none) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-main::-webkit-scrollbar{
    width:0 !important;
    height:0 !important;
    display:none !important;
  }
}

@media (max-width:1099px){
  body.public-site.home-page:not(.admin-page) > main > .content-shell{
    box-sizing:border-box !important;
    height:auto !important;
    min-height:0 !important;
    max-height:var(--grit-flow-max, none) !important;
    overflow-x:hidden !important;
    overflow-y:auto !important;
    overscroll-behavior-y:auto !important;
    scrollbar-width:none !important;
    -ms-overflow-style:none !important;
  }
  body.public-site.home-page:not(.admin-page) > main > .content-shell::-webkit-scrollbar{
    width:0 !important;
    height:0 !important;
    display:none !important;
  }
}

/* V238 — HOME: NEWS nimmt den bisherigen Platz von MATCH OPERATIONS ein.
   MATCH OPERATIONS folgt direkt darunter. Beide Fenster behalten ihre Groesse. */
@media (min-width:1100px){
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-side{
    position:relative !important;
    display:flex !important;
    flex-direction:column !important;
    gap:18px !important;
    height:auto !important;
    min-height:0 !important;
  }
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-side #news,
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-side #clanwars{
    position:relative !important;
    inset:auto !important;
    top:auto !important;
    right:auto !important;
    bottom:auto !important;
    left:auto !important;
    width:auto !important;
    margin:0 !important;
  }
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-side #news{order:1 !important;}
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-side #clanwars{order:2 !important;}
}

/* V238 — GRIT/Motto bleibt auf seiner bisherigen Hoehe und wird nur
   horizontal auf die Mitte der gesamten HOME-Seite gesetzt. */
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  left:50% !important;
  transform:translateX(-50%) !important;
}

/* V239 — öffentliche Hauptnavigation bleibt beim Seiten- und Inhaltsscrollen
   dauerhaft am oberen Bildschirmrand sichtbar. */
body.public-site:not(.admin-page) .topbar{
  position:fixed !important;
  top:0 !important;
  right:0 !important;
  bottom:auto !important;
  left:0 !important;
  z-index:1000 !important;
  transform:none !important;
  visibility:visible !important;
  opacity:1 !important;
}

/* V239 — Twitch LIVE: die spaetere V196-Kartenregel darf die Live-Animation
   nicht mehr abschalten. Aussen- und Innenglow bleiben auch in Bewegung sichtbar. */
@keyframes grit-twitch-live-glow-v239{
  0%,100%{
    box-shadow:
      0 0 0 1px rgba(177,112,255,.90),
      0 0 16px 3px rgba(145,70,255,.58),
      0 0 34px 7px rgba(145,70,255,.28),
      inset 0 0 18px rgba(145,70,255,.20);
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(205,164,255,1),
      0 0 24px 5px rgba(145,70,255,.82),
      0 0 48px 10px rgba(145,70,255,.40),
      inset 0 0 26px rgba(145,70,255,.30);
  }
}
body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live,
body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live:hover{
  position:relative !important;
  z-index:3 !important;
  border-color:rgba(205,164,255,.96) !important;
  animation:grit-twitch-live-glow-v239 1.9s ease-in-out infinite !important;
  will-change:box-shadow;
}
@media (prefers-reduced-motion:reduce){
  body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live,
  body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live:hover{
    animation:none !important;
    box-shadow:0 0 18px 4px rgba(145,70,255,.68),inset 0 0 22px rgba(145,70,255,.25) !important;
  }
}

/* V240 — GRIT und Motto auf HOME exakt 5px hoeher als in V239. */
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  top:97px !important;
}
@media (min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:95px !important;
  }
}
@media (max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:109px !important;
  }
}

/* V240 — HOME-Laufband: mehr unsichtbarer Freiraum ober- und unterhalb der
   Karten, damit der Twitch-Glow nicht abgeschnitten wird. Negative Margins
   halten Kartenposition und Gesamthoehe des Fensters unveraendert. */
body.public-site.home-page:not(.admin-page) .roster-marquee{
  padding-top:24px !important;
  padding-bottom:24px !important;
  margin-top:-22px !important;
  margin-bottom:-16px !important;
}

/* V241 — transparente Spielsymbole im TEAMS-Menü. */
.game-tile__icon img{
  display:block;
  width:36px;
  height:36px;
  object-fit:contain;
  filter:drop-shadow(0 0 5px rgba(255,101,0,.3));
}

/* V241 — Symbolauswahl beim Anlegen eines Spiels im ROSTER-Adminbereich. */
.admin-page .admin-add-game{
  align-items:stretch;
}
.admin-page .admin-add-game .admin-new-game-icon{
  position:relative;
  width:62px;
  min-width:62px;
  padding:5px !important;
  display:grid;
  place-items:center;
  grid-template-rows:1fr auto;
  border:1px solid rgba(255,101,0,.48) !important;
  border-radius:5px;
  background:#0d0f10 !important;
  color:#ff6500 !important;
}
.admin-new-game-icon>span{
  font-size:26px;
  line-height:1;
}
.admin-new-game-icon img{
  width:34px;
  height:34px;
  object-fit:contain;
}
.admin-new-game-icon small{
  font-size:7px;
  letter-spacing:.1em;
  color:#ff8a3d;
}
.admin-new-game-icon:hover,
.admin-new-game-icon:focus-visible{
  box-shadow:0 0 16px rgba(255,101,0,.28);
  outline:none;
}
.game-icon-modal[hidden]{display:none !important}
.game-icon-modal{
  position:fixed;
  inset:0;
  z-index:10000;
  display:grid;
  place-items:center;
  padding:24px;
  background:rgba(0,0,0,.82);
  backdrop-filter:blur(10px);
}
.game-icon-dialog{
  width:min(980px,calc(100vw - 40px));
  max-height:calc(100vh - 48px);
  overflow:auto;
  box-sizing:border-box;
  padding:26px;
  border:1px solid rgba(255,101,0,.42);
  border-radius:8px;
  background:linear-gradient(145deg,#111313,#080909);
  box-shadow:0 24px 80px rgba(0,0,0,.75),0 0 34px rgba(255,101,0,.1);
}
.game-icon-head{
  display:flex;
  justify-content:space-between;
  align-items:flex-start;
  gap:20px;
}
.game-icon-head h2{margin:5px 0 0;color:#fff;letter-spacing:.06em}
.game-icon-close{
  border:0;
  background:transparent;
  color:#aaa;
  font-size:30px;
  cursor:pointer;
}
.game-icon-close:hover{color:#ff6500}
.game-icon-hint{margin:16px 0;color:#a6aaac;font-size:13px}
.game-icon-toolbar{
  display:flex;
  align-items:center;
  gap:15px;
  margin-bottom:18px;
}
.game-icon-toolbar button,
.game-icon-actions button{
  border:1px solid rgba(255,101,0,.5);
  border-radius:4px;
  background:#131515;
  color:#eee;
  padding:11px 15px;
  font:800 11px inherit;
  letter-spacing:.05em;
  cursor:pointer;
}
.game-icon-toolbar button:hover,
.game-icon-actions button:last-child{
  background:#ff6500;
  color:#fff;
}
.game-icon-toolbar span{color:#73787b;font-size:11px}
.game-icon-gallery{
  display:grid;
  grid-template-columns:repeat(auto-fill,minmax(126px,1fr));
  gap:9px;
  max-height:52vh;
  overflow:auto;
  padding:3px;
}
.game-icon-choice{
  min-height:132px;
  display:grid;
  justify-items:center;
  align-content:center;
  gap:6px;
  padding:11px 7px;
  border:1px solid rgba(255,255,255,.09);
  border-radius:5px;
  background:#0d0f10;
  color:#e8e8e8;
  cursor:pointer;
}
.game-icon-choice:hover{border-color:rgba(255,101,0,.45)}
.game-icon-choice.is-selected{
  border-color:#ff6500;
  background:rgba(255,101,0,.08);
  box-shadow:0 0 18px rgba(255,101,0,.18),inset 0 0 14px rgba(255,101,0,.06);
}
.game-icon-choice>span{
  width:64px;
  height:64px;
  display:grid;
  place-items:center;
}
.game-icon-choice img{width:60px;height:60px;object-fit:contain}
.game-icon-choice strong{
  max-width:110px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:10px;
}
.game-icon-choice small{color:#ff6500;font-size:7px;letter-spacing:.08em}
.game-icon-actions{
  display:flex;
  justify-content:flex-end;
  gap:9px;
  margin-top:20px;
}
@media(max-width:700px){
  .admin-page .admin-add-game{flex-wrap:wrap}
  .admin-page .admin-add-game .admin-new-game-icon{height:58px}
  .admin-page .admin-add-game #newGameName{min-width:calc(100% - 72px)}
  .admin-page .admin-add-game #addGame{min-height:46px;flex:1 0 100%}
  .game-icon-modal{padding:10px}
  .game-icon-dialog{width:100%;max-height:calc(100vh - 20px);padding:18px 14px}
  .game-icon-toolbar{align-items:flex-start;flex-direction:column}
  .game-icon-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* V243 — HOME: alle Spielfenster verwenden denselben 18px-Abstand wie
   INTEL FEED / NEWS und MATCH OPERATIONS. */
body.public-site.home-page:not(.admin-page) #customGameSections{
  gap:18px !important;
  margin-top:18px !important;
}
body.public-site.home-page:not(.admin-page) #customGameSections .custom-game-panel{
  margin-top:0 !important;
  margin-bottom:0 !important;
}
@media(min-width:1100px){
  body.public-site.home-page:not(.admin-page) .desktop-dashboard-main{
    gap:18px !important;
  }
}

/* V243 — Twitch LIVE: der Effekt sitzt hauptsaechlich innerhalb der Karte.
   Der kleine Aussenglow bleibt kompakt und wird nicht mehr oben/unten gekappt. */
@keyframes grit-twitch-live-glow-v243{
  0%,100%{
    box-shadow:
      0 0 0 1px rgba(177,112,255,.92),
      0 0 7px 1px rgba(145,70,255,.42),
      inset 0 0 20px 5px rgba(145,70,255,.30),
      inset 0 0 42px 10px rgba(145,70,255,.13);
  }
  50%{
    box-shadow:
      0 0 0 1px rgba(218,185,255,1),
      0 0 10px 2px rgba(145,70,255,.56),
      inset 0 0 28px 7px rgba(145,70,255,.46),
      inset 0 0 52px 13px rgba(145,70,255,.20);
  }
}
body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live,
body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live:hover{
  animation:grit-twitch-live-glow-v243 1.9s ease-in-out infinite !important;
}
@media(prefers-reduced-motion:reduce){
  body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live,
  body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live:hover{
    animation:none !important;
    box-shadow:
      0 0 0 1px rgba(205,164,255,.96),
      0 0 8px 1px rgba(145,70,255,.48),
      inset 0 0 25px 6px rgba(145,70,255,.38),
      inset 0 0 46px 11px rgba(145,70,255,.16) !important;
  }
}

/* V243 — GRIT/Motto auf HOME weitere 10px nach oben. */
body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
  top:87px !important;
}
@media(min-width:1800px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:85px !important;
  }
}
@media(max-width:1099px){
  body.home-page:not(.admin-page) .site-visual-layer .site-brand-artwork{
    top:99px !important;
  }
}

/* V243 — TEAMS-Dropdown: nur noch grosse, zentrierte Spielelogos. */
.teams-nav__menu .game-tile{
  position:relative !important;
  z-index:2 !important;
  pointer-events:auto !important;
  justify-content:center !important;
  gap:0 !important;
  padding:8px !important;
}
.teams-nav__menu .game-tile > *{
  pointer-events:none !important;
}
.teams-nav__menu .game-tile__icon,
.teams-nav__menu .game-tile__icon--cs2{
  width:142px !important;
  height:62px !important;
  flex:0 0 142px !important;
  border:0 !important;
  background:transparent !important;
}
.teams-nav__menu .game-tile__icon img{
  width:136px !important;
  height:58px !important;
  max-width:100% !important;
  max-height:100% !important;
  object-fit:contain !important;
}

/* V244 — LIVE-Glow liegt ueber dem Profilbild, aber unter Twitch/Kick. */
@keyframes grit-twitch-live-overlay-v244{
  0%,100%{
    opacity:.72;
    box-shadow:inset 0 0 18px 4px rgba(145,70,255,.38),inset 0 0 38px 9px rgba(145,70,255,.15);
  }
  50%{
    opacity:1;
    box-shadow:inset 0 0 25px 6px rgba(177,112,255,.52),inset 0 0 48px 12px rgba(145,70,255,.22);
  }
}
body.public-site:not(.admin-page) .player-card.player-card--twitch-live::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:6;
  pointer-events:none;
  animation:grit-twitch-live-overlay-v244 1.9s ease-in-out infinite;
}
body.public-site:not(.admin-page) .player-card.player-card--twitch-live .player-socials{
  z-index:8 !important;
}
@media(prefers-reduced-motion:reduce){
  body.public-site:not(.admin-page) .player-card.player-card--twitch-live::after{
    animation:none;
    opacity:1;
    box-shadow:inset 0 0 22px 5px rgba(177,112,255,.46),inset 0 0 42px 10px rgba(145,70,255,.18);
  }
}

/* V245 — entfernt die sichtbare horizontale Naht zwischen Bild und Infobereich.
   Der kurze Verlauf ueberlappt beide Flaechen, ohne Name oder Kartenhoehe zu verschieben. */
body.public-site:not(.admin-page) .roster-marquee .player-card.player-card--twitch-live .player-info{
  margin-top:-4px !important;
  padding-top:16px !important;
  background:linear-gradient(to bottom,rgba(11,12,13,0),#0b0c0d 4px,#0b0c0d 100%) !important;
}

/* V246 — Member-Verwaltung: Eingang und automatisch erzeugte Spieleordner. */
.member-folder-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(360px,1fr));gap:18px;align-items:start}
.member-folder{padding:0!important;overflow:hidden;min-height:180px;transition:border-color .18s,box-shadow .18s}
.member-folder.is-drop-target{border-color:rgba(255,101,0,.85)!important;box-shadow:0 0 0 2px rgba(255,101,0,.18),0 18px 50px rgba(0,0,0,.42)}
.member-folder--inbox{grid-column:1/-1;border-color:rgba(255,101,0,.28)!important}
.member-folder-head{display:grid;grid-template-columns:48px minmax(0,1fr) auto;align-items:center;gap:13px;padding:16px 18px;border-bottom:1px solid rgba(255,255,255,.08);background:rgba(5,6,7,.72)}
.member-folder-head span{display:block;color:#ff6500;font-size:8px;font-weight:900;letter-spacing:.13em}.member-folder-head h2{margin:3px 0 0;font-size:15px;letter-spacing:.08em}.member-folder-head>b{display:grid;place-items:center;min-width:28px;height:28px;border:1px solid rgba(255,101,0,.35);border-radius:50%;font-size:10px}
.member-folder-icon{width:46px;height:36px;display:grid;place-items:center}.member-folder-icon img{width:100%;height:100%;object-fit:contain}.member-folder-icon>span{color:#ff6500;font-size:22px}
.member-folder-body{display:grid;gap:9px;padding:12px;min-height:90px}.member-folder-empty{display:grid;place-items:center;min-height:78px;border:1px dashed rgba(255,255,255,.10);color:#686d72;font-size:10px;letter-spacing:.08em}
.member-folder-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;gap:11px;align-items:center;padding:11px;border:1px solid rgba(255,255,255,.08);background:#0b0d0e;cursor:grab}.member-folder-card:active{cursor:grabbing}.member-folder-card.is-dragging{opacity:.42}.member-folder-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid rgba(255,101,0,.45);color:#ff6500;font-weight:950}.member-folder-copy{min-width:0}.member-folder-copy strong,.member-folder-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-folder-copy strong{font-size:12px}.member-folder-copy small{margin-top:3px;color:#787d82;font-size:9px}.member-folder-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:7px}.member-folder-tags span{padding:3px 5px;border:1px solid rgba(255,255,255,.09);color:#92979b;font-size:7px;font-weight:900;letter-spacing:.06em}.member-folder-tags .is-linked{color:#5cdf98;border-color:rgba(92,223,152,.28)}.member-folder-tags .is-unlinked{color:#dc826f;border-color:rgba(220,130,111,.25)}
.member-folder-actions{display:flex;align-items:center;gap:6px}.member-folder-actions button{height:30px;padding:0 8px;border:1px solid rgba(255,255,255,.12);background:#111315;color:#ddd;font-size:8px;font-weight:900;cursor:pointer}.member-folder-actions button:hover{border-color:rgba(255,101,0,.6)}.member-folder-actions .member-folder-remove{width:30px;padding:0;color:#e37b7b;font-size:16px}
.member-admin-message{position:sticky;top:86px;z-index:20;display:none;margin:0 0 15px;padding:11px 13px;border:1px solid rgba(92,223,152,.28);background:rgba(9,25,18,.96);color:#baf5d5;font-size:11px}.member-admin-message.is-visible{display:block}.member-admin-message.is-error{border-color:rgba(255,90,90,.32);background:rgba(31,10,12,.97);color:#ffb6b6}
.member-edit-modal[hidden]{display:none!important}.member-edit-modal{position:fixed;inset:0;z-index:10000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.78);backdrop-filter:blur(9px)}.member-edit-dialog{width:min(820px,96vw);max-height:calc(100vh - 40px);overflow:auto;padding:22px;border:1px solid rgba(255,255,255,.14);background:#0b0d0f;box-shadow:0 30px 90px rgba(0,0,0,.72)}.member-edit-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.member-edit-head h2{margin:4px 0 0}.member-edit-head>button{border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}.member-edit-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:22px}.member-edit-grid label{display:grid;gap:7px;color:#aeb2b5;font-size:9px;font-weight:900;letter-spacing:.09em}.member-edit-grid select{width:100%;padding:11px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#eee}.member-edit-permissions{margin-top:20px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}.member-edit-permissions>strong{font-size:10px;letter-spacing:.1em}.member-edit-permissions>small{display:block;margin-top:10px;color:#777c81;font-size:9px;line-height:1.5}.member-edit-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:22px}.member-edit-actions button{min-width:120px;height:40px;border:1px solid rgba(255,255,255,.13);background:#111315;color:#ddd;font-size:9px;font-weight:900;cursor:pointer}.member-edit-actions #memberEditSave{border-color:#ff6500;background:#ff6500;color:#090909}
@media(max-width:760px){.member-folder-grid{grid-template-columns:1fr}.member-folder-card{grid-template-columns:36px minmax(0,1fr)}.member-folder-actions{grid-column:1/-1;justify-content:flex-end}.member-edit-grid{grid-template-columns:1fr}}

/* V246 — erweiterte Profilpflege und oeffentliche GRIT-Spielerprofile. */
.player-profile-form{grid-template-columns:repeat(2,minmax(0,1fr))!important}.player-profile-field--wide,.player-profile-stats-public,.player-profile-image-row,.player-profile-image-status{grid-column:1/-1}.player-profile-field textarea,.player-profile-field select{box-sizing:border-box;width:100%;min-height:42px;padding:10px 12px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#eee;outline:none}.player-profile-field textarea{min-height:90px;resize:vertical}.player-profile-stats-public{display:flex;align-items:center;gap:9px;color:#bbb;font-size:10px}.player-profile-stats-public input{width:auto}
.public-player-profile-main{padding:318px 0 55px;min-height:calc(100vh - 180px)}.public-player-profile-shell{display:grid;gap:18px}.public-player-profile-card,.public-player-profile-edit{padding:26px}.public-player-profile-hero{display:grid;grid-template-columns:190px minmax(0,1fr) auto;gap:24px;align-items:center}.public-player-profile-avatar{width:190px;height:220px;border:1px solid rgba(255,101,0,.25);background:radial-gradient(circle,rgba(255,101,0,.12),transparent 60%),url('/static/img/default-player-spartan.webp') center/contain no-repeat #08090a;background-size:cover;background-position:center}.public-player-profile-title h1{margin:5px 0;font-size:38px}.public-player-profile-title p{margin:0;color:#a9adb1}.public-player-profile-title>strong{display:inline-block;margin-top:10px;color:#ff6500;font-size:10px;letter-spacing:.12em}.public-player-profile-socials{display:flex;flex-direction:column;gap:8px}.public-player-profile-socials a,.public-player-profile-section-head>a{padding:9px 11px;border:1px solid rgba(255,255,255,.12);color:#ddd;font-size:9px;font-weight:900;letter-spacing:.08em}.public-player-profile-bio,.public-player-profile-stats{margin-top:24px;padding-top:20px;border-top:1px solid rgba(255,255,255,.08)}.public-player-profile-bio p{max-width:800px;white-space:pre-line;color:#aeb2b5;line-height:1.65}.public-player-profile-section-head{display:flex;justify-content:space-between;gap:20px;align-items:center}.public-player-profile-section-head h2{margin:5px 0 0}.public-player-profile-stat-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.public-player-profile-stat-grid>div{padding:16px;border:1px solid rgba(255,255,255,.08);background:#090a0b}.public-player-profile-stat-grid small{display:block;color:#777d82;font-size:8px;font-weight:900}.public-player-profile-stat-grid strong{display:block;margin-top:5px;font-size:20px}.public-player-profile-empty{margin-top:15px;color:#777d82;font-size:11px}.public-player-profile-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.public-player-profile-form-grid label,.public-player-profile-bio-field{display:grid;gap:6px;color:#aeb2b5;font-size:9px;font-weight:900;letter-spacing:.07em}.public-player-profile-form-grid input,.public-player-profile-form-grid select,.public-player-profile-bio-field textarea{box-sizing:border-box;width:100%;padding:11px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#eee}.public-player-profile-checkbox{display:flex!important;grid-column:1/-1;align-items:center}.public-player-profile-checkbox input{width:auto}.public-player-profile-bio-field{margin-top:12px}.public-player-profile-bio-field textarea{min-height:120px;resize:vertical}.public-player-profile-edit .btn{margin-top:15px}.public-player-profile-message{display:none;margin-top:12px;padding:10px;border:1px solid rgba(92,223,152,.28);color:#a9edca}.public-player-profile-message.is-visible{display:block}.public-player-profile-message.is-error{border-color:rgba(255,90,90,.3);color:#ffaaaa}
.player-card[data-profile-url]{cursor:pointer}.player-meta--api{grid-template-columns:repeat(3,minmax(0,1fr))!important}
body:not(.admin-page) #customGameSections .custom-player-card.player-card--has-api-stats .player-name,
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual.player-card--has-api-stats .player-name{position:static!important;width:100%!important;margin:0!important;text-align:center!important}
body:not(.admin-page) .teams-page-team-panel .teams-page-player-card--manual.player-card--has-api-stats .player-info{display:block!important;padding:13px 14px!important}
@media(max-width:760px){.player-profile-form{grid-template-columns:1fr!important}.public-player-profile-main{padding-top:288px}.public-player-profile-hero{grid-template-columns:1fr}.public-player-profile-avatar{width:100%;height:280px}.public-player-profile-socials{flex-direction:row;flex-wrap:wrap}.public-player-profile-form-grid,.public-player-profile-stat-grid{grid-template-columns:1fr}}
.my-profiles-main{padding:318px 0 55px;min-height:calc(100vh - 180px)}.my-profiles-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:14px}.my-profiles-grid>a{display:grid;gap:7px;padding:12px;border:1px solid rgba(255,255,255,.08);background:#090a0b}.my-profiles-avatar{height:170px;background:url('/static/img/default-player-spartan.webp') center/contain no-repeat #070809}.my-profiles-grid span{color:#ff6500;font-size:8px;font-weight:900;letter-spacing:.1em}.my-profiles-grid strong{font-size:16px}.my-profiles-grid small{color:#858a8f;font-size:8px}.my-profiles-empty{padding:30px;border:1px dashed rgba(255,255,255,.11);color:#888d92}.my-profiles-empty strong{color:#fff}.member-name{color:#ddd;text-decoration:none}.member-name:hover{color:#ff6500}@media(max-width:650px){.my-profiles-main{padding-top:288px}}

/* V247 — Accounts, Profile, Reaktionen und Member-Dialoge. */
.form-success{margin:10px 0;padding:10px 12px;border:1px solid rgba(92,223,152,.3);background:rgba(31,96,66,.13);color:#a9edca;font-size:11px}.auth-forgot-link{display:inline-block;margin:-4px 0 12px;color:#999;font-size:10px}.auth-forgot-link:hover{color:#ff6500}
.member-name-link-row{display:flex;align-items:center;gap:7px;min-width:0}.member-name-link-row strong{min-width:0}.member-link-status{display:grid!important;place-items:center!important;flex:0 0 22px;width:22px!important;height:22px!important;padding:0!important;border-radius:50%!important;font-size:11px!important}.member-link-status.is-linked{border-color:rgba(92,223,152,.5)!important;color:#68e9a7!important}.member-link-status.is-unlinked{color:#777!important}.member-folder-delete{border-color:rgba(255,78,78,.3)!important;color:#ff8e8e!important}.member-confirm-dialog,.account-delete-dialog{width:min(500px,96vw)!important}.member-edit-actions .danger{border-color:#8d2b2b!important;background:#561719!important;color:#ffd1d1!important}
.public-player-profile-name-row{display:flex;align-items:center;gap:9px}.public-player-profile-name-row h1{margin:5px 5px 5px 0}.profile-country-flag{display:inline-grid;place-items:center;width:30px;height:22px;overflow:hidden;border:1px solid rgba(255,255,255,.18);border-radius:2px;background:#111;line-height:1}.profile-country-flag img{display:block;width:100%;height:100%;object-fit:cover}.profile-discord{display:block;margin-top:10px;color:#8f9499;font-size:9px;letter-spacing:.08em}.profile-edit-link{border-color:#ff6500!important;color:#ff8a37!important}
.account-settings-main{padding:300px 0 60px;min-height:100vh}.account-settings-shell{display:grid;grid-template-columns:230px minmax(0,1fr);gap:18px;align-items:start}.account-settings-nav{position:sticky;top:86px;display:grid;padding:14px}.account-settings-user{display:grid;grid-template-columns:42px 1fr;gap:10px;align-items:center;margin-bottom:12px;padding:8px 7px 15px;border-bottom:1px solid rgba(255,255,255,.08)}.account-settings-user>span{display:grid;place-items:center;width:40px;height:40px;border:1px solid rgba(255,101,0,.45);color:#ff6500;font-weight:950}.account-settings-user strong,.account-settings-user small{display:block}.account-settings-user small{margin-top:4px;color:#7e8387;font-size:8px}.account-settings-nav>a{padding:12px;border-left:2px solid transparent;color:#999;font-size:10px;font-weight:900;letter-spacing:.09em}.account-settings-nav>a:hover,.account-settings-nav>a.active{border-color:#ff6500;background:rgba(255,101,0,.07);color:#fff}.account-settings-content{display:grid;gap:18px}.account-settings-head,.account-profile-card,.account-danger-zone{padding:24px}.account-settings-head h1{margin:5px 0}.account-settings-head p{margin-bottom:0;color:#959a9e}.account-profile-title{display:grid;grid-template-columns:78px 1fr;gap:16px;align-items:center;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.08)}.account-profile-avatar{width:78px;height:88px;border:1px solid rgba(255,101,0,.25);background:url('/static/img/default-player-spartan.webp') center/cover no-repeat #08090a}.account-profile-title h2{margin:4px 0 6px}.account-profile-title a{color:#999;font-size:8px;font-weight:900;letter-spacing:.08em}.account-profile-title a:hover{color:#ff6500}.account-profile-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:15px}.tracker-connection-status{display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-top:15px;padding:11px 13px;border:1px solid rgba(255,255,255,.09);background:#090a0b;font-size:10px}.tracker-connection-status strong{color:#ff6500}.tracker-connection-status span{color:#b4b8bb}.tracker-connection-status small{color:#71767a}.tracker-connection-status em{flex-basis:100%;color:#e99898;font-style:normal}.tracker-status--connected{border-color:rgba(92,223,152,.3)}.tracker-status--connected span{color:#69e7a6}.account-danger-zone{border-color:rgba(195,58,58,.22)!important}.account-danger-zone h2{margin:5px 0}.account-danger-zone p{color:#999}.account-delete-button{padding:11px 14px;border:1px solid #802e31;background:#421517;color:#ffb6b6;font-size:9px;font-weight:900}.account-delete-dialog>label{display:grid;gap:7px;margin-top:18px;color:#aaa;font-size:9px;font-weight:900}.account-delete-dialog input{padding:11px;border:1px solid rgba(255,255,255,.13);background:#070809;color:#fff}.interaction-message{margin-top:8px;color:#ff9d9d;font-size:10px}.media-card .news-actions{margin-top:16px}.media-card .news-comments{padding-bottom:4px}.media-card-copy{overflow:hidden}
@media(max-width:820px){.account-settings-main{padding-top:280px}.account-settings-shell{grid-template-columns:1fr}.account-settings-nav{position:static;grid-template-columns:repeat(2,minmax(0,1fr))}.account-settings-user{grid-column:1/-1}.account-profile-actions{flex-direction:column}.account-profile-actions .btn{width:100%}}
.member-link-status svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.member-link-status.is-linked{color:#73ff91}.member-link-status.is-unlinked{color:#747984}.member-link-status:hover{color:#ff8a00}.profile-country-flag{display:inline-flex;width:30px;height:20px;padding:2px;border:1px solid rgba(255,138,0,.45);background:#111;align-items:center;justify-content:center}.profile-country-flag img{width:100%;height:100%;object-fit:contain}.public-stat-section{margin-top:18px}.public-stat-section h3{font-size:12px;letter-spacing:.14em;color:#ff8a00;margin:0 0 8px}
.member-link-status{border:0!important;background:transparent!important;border-radius:0!important;box-shadow:none!important;width:24px!important;height:24px!important}.member-link-status svg{width:21px;height:21px;stroke-width:2.2;filter:drop-shadow(0 0 3px currentColor)}.member-link-status.is-linked svg{stroke:#73ff91}.member-link-status.is-unlinked svg{stroke:#8a8f99;opacity:.75}
.profile-country-flag--combined{position:relative;overflow:hidden;padding:0;background:#111;isolation:isolate}.profile-country-flag--combined img{position:absolute;inset:1px;width:calc(100% - 2px);height:calc(100% - 2px);object-fit:cover}.profile-country-flag--combined img:first-child{clip-path:polygon(0 0,100% 0,0 100%);z-index:1}.profile-country-flag--combined img:last-child{clip-path:polygon(100% 0,100% 100%,0 100%);z-index:2}.profile-country-flag--combined::after{content:"";position:absolute;inset:0;z-index:3;background:linear-gradient(135deg,transparent 48%,rgba(255,138,0,.8) 49%,rgba(255,138,0,.8) 51%,transparent 52%);pointer-events:none}
.integration-setting-row{display:flex;align-items:center;gap:14px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.08)}.integration-setting-row>div{flex:1;display:grid;gap:4px}.integration-setting-row small{color:#8f949f}.integration-status{color:#73ff91;font-size:12px}.integration-status.is-error{color:#ff6868}.admin-secondary{background:#16181d;color:#ddd;border:1px solid #555;padding:8px 12px;cursor:pointer}
.integration-group{margin-top:18px;padding:18px;border:1px solid rgba(255,255,255,.1);background:rgba(8,9,10,.5)}.integration-group h3{margin:0 0 14px;color:#ff8a00;font-size:11px;letter-spacing:.16em}.integration-setting-row{display:grid;grid-template-columns:1fr;gap:8px;padding:13px 0}.integration-setting-row>div{min-height:34px}.integration-secret-input{width:100%;padding:10px 11px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#eee}.integration-setting-row .admin-secondary{width:100%}.integration-status{min-height:16px}@media(min-width:1050px){#integrationSettingsGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.integration-group{margin-top:0}}
.profile-country-flag{border:0!important;background:transparent!important;padding:0!important}
body:not(.admin-page) #news .news-vote,body:not(.admin-page) #news .news-votes,body:not(.admin-page) #news .news-reactions{display:inline-flex!important}.news-action-icon{width:17px;height:17px;fill:currentColor;vertical-align:middle}.news-action-icon--down{transform:rotate(180deg)}.news-vote{align-items:center;gap:6px}.news-vote.active{color:#ff8a00!important;border-color:rgba(255,138,0,.7)!important}
.forgot-inline-modal[hidden]{display:none}.forgot-inline-modal{position:fixed;inset:0;z-index:5000;display:grid;place-items:center;padding:20px;background:rgba(0,0,0,.74);backdrop-filter:blur(8px)}.forgot-inline-card{position:relative;width:min(460px,100%);padding:30px;background:#0b0d0f;border:1px solid rgba(255,101,0,.45);box-shadow:0 24px 80px rgba(0,0,0,.65)}.forgot-inline-card>button{position:absolute;right:14px;top:8px;border:0;background:transparent;color:#fff;font-size:28px}.forgot-inline-card h2{margin:6px 0 8px}.forgot-inline-card p{color:#aeb2b5;font-size:13px}.forgot-inline-card form{display:grid;gap:14px}.forgot-inline-card label{display:grid;gap:7px;color:#aaa;font-size:10px}.forgot-inline-card input{padding:12px;border:1px solid rgba(255,255,255,.13);background:#08090a;color:#fff}.forgot-inline-message{min-height:18px;color:#a9edca;font-size:11px}
.admin-page{overflow-y:auto!important;min-height:100vh}.admin-main{min-height:calc(100vh - 72px);padding-bottom:180px!important}
.grid-input-modal{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:rgba(0,0,0,.72);backdrop-filter:blur(5px)}.grid-input-card{width:min(92vw,480px);padding:28px;background:#0b0c0f;border:1px solid #6d3cff;box-shadow:0 0 32px rgba(108,57,255,.35);color:#f5f5f5}.grid-input-card h2{margin:0 0 20px;color:#ff8a00;letter-spacing:.14em;font-size:18px}.grid-input-card label{display:grid;gap:8px;color:#aaa;font-size:12px;letter-spacing:.1em}.grid-input-card input{background:#15171b;border:1px solid #494b54;color:#fff;padding:12px}.grid-input-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:20px}.grid-input-actions button{padding:10px 16px;background:#16181d;color:#fff;border:1px solid #555}.grid-input-actions button[data-ok]{border-color:#ff8a00;color:#ff8a00}
.polls-main{padding:150px 0 100px;min-height:100vh}.polls-list{display:grid;gap:18px;margin-top:25px}.poll-card{padding:22px;border:1px solid rgba(255,255,255,.1);background:rgba(8,9,10,.78)}.poll-card h2{margin:8px 0 18px}.poll-form{display:grid;gap:10px}.poll-option{display:grid;grid-template-columns:22px 1fr auto;align-items:center;gap:8px;padding:12px;border:1px solid rgba(255,255,255,.1);background:#0d0f11;cursor:pointer}.poll-option small{color:#858b91}.poll-message{min-height:18px;color:#ff9b9b}.poll-voted{color:#9de8bd}.poll-empty{padding:30px;border:1px dashed rgba(255,255,255,.14);color:#8d9297}.poll-option-fields{display:grid;gap:8px;margin:12px 0}.poll-option-fields input{box-sizing:border-box;width:100%;padding:11px;border:1px solid #333;background:#101111;color:#eee}.poll-admin-card{margin-top:18px}
.poll-comments{display:grid;gap:8px;margin-top:18px;padding-top:14px;border-top:1px solid rgba(255,255,255,.1)}.poll-comments>div{padding:9px 11px;background:#0d0f11;border:1px solid rgba(255,255,255,.08)}.poll-comments strong{color:#ff8a00;font-size:10px}.poll-comments p{margin:5px 0 0;color:#c5c8ca;font-size:12px}.poll-comment-form{display:grid;gap:8px;margin-top:14px}.poll-comment-form textarea{min-height:70px;padding:10px;background:#08090a;border:1px solid rgba(255,255,255,.12);color:#fff}

/* V260 — Umfrageergebnisse, Kommentare und Verwaltung. */
.poll-results{display:grid;gap:12px;margin:18px 0 12px}
.poll-result-row{padding:11px 12px;border:1px solid rgba(255,255,255,.1);background:#0d0f11}
.poll-result-row.is-selected{border-color:rgba(255,138,0,.65);box-shadow:inset 3px 0 #ff8a00}
.poll-result-head{display:flex;justify-content:space-between;gap:12px;color:#d7d9da;font-size:12px}.poll-result-head strong{color:#ff8a00}
.poll-result-bar{height:7px;margin-top:8px;background:#25282a;overflow:hidden}.poll-result-bar span{display:block;height:100%;background:linear-gradient(90deg,#ff6500,#ff9c43);transition:width .25s ease}
.poll-result-row small{display:block;margin-top:6px;color:#858b91;font-size:9px}
.poll-comments-head{display:flex!important;justify-content:space-between;align-items:center;color:#ff8a00!important}.poll-comments-head small{color:#858b91;font-size:10px}.poll-comment-item{position:relative}.poll-comment-item>div{display:flex;justify-content:space-between;gap:12px}.poll-comment-item>div small{color:#777d82;font-size:9px}.poll-comment-delete{border:0;background:transparent;color:#b97070;font-size:8px;font-weight:900;cursor:pointer;padding:0}.poll-comment-delete:hover{color:#ff9a9a}.poll-no-comments{color:#777d82!important;font-size:11px}
.admin-poll-list{display:grid;gap:8px}.admin-poll-item{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:13px 14px;border:1px solid rgba(255,255,255,.1);background:#0d0f10}.admin-poll-item strong,.admin-poll-item small{display:block}.admin-poll-item small{margin-top:5px;color:#858b91;font-size:10px}.admin-poll-item-actions{display:flex;gap:8px;flex:0 0 auto}.admin-poll-item-actions .admin-danger{border-color:rgba(220,80,80,.45);color:#ff9b9b}
@media(max-width:700px){.admin-poll-item{align-items:stretch;flex-direction:column}.admin-poll-item-actions button{flex:1}}
html,body.public-site:not(.admin-page){overflow-y:auto!important}

/* V257 — Admin-Einstellungen bleiben vollständig im Dokumentfluss.
   Öffentliche Seiten dürfen bis zur Hintergrundhöhe begrenzt werden; die
   Admin-Oberfläche hat dagegen keinen solchen Hintergrundabschluss. */
body.public-site.admin-page{
  height:auto !important;
  min-height:100vh !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
}
body.public-site.admin-page #grit-page-content > .admin-page{
  height:auto !important;
  min-height:100vh !important;
  max-height:none !important;
  overflow:visible !important;
}
body.public-site.admin-page .admin-main,
body.public-site.admin-page .member-admin-content{
  height:auto !important;
  min-height:calc(100vh - 72px) !important;
  max-height:none !important;
  overflow:visible !important;
  padding-bottom:220px !important;
}
body.public-site.admin-page .admin-view,
body.public-site.admin-page #admin-settings-view{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}

/* V258 — E-Mail-Postfach klar nach den netcup-Bezeichnungen gliedern. */
@media (min-width:1050px){
  #integrationSettingsGrid .integration-group--mail{
    grid-column:1 / -1;
  }
  #integrationSettingsGrid .integration-group--mail .integration-setting-row{
    grid-template-columns:minmax(280px,1.2fr) minmax(220px,1fr) auto auto minmax(120px,.55fr);
    align-items:center;
    column-gap:12px;
  }
  #integrationSettingsGrid .integration-group--mail .integration-setting-row > div{
    min-width:0;
  }
}

/* V259 — Protokollfelder im E-Mail-Postfach als Auswahl statt Freitext. */
.integration-protocol-select{
  appearance:auto;
  color:#eee;
}
.integration-protocol-select option{
  background:#08090a;
  color:#eee;
}

/* V260 — mehrere Postfächer mit Zweckzuordnung. */
.admin-email-account-form{display:grid;gap:16px;margin-top:18px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08)}
.admin-email-account-subhead{color:#ff8a00;font-size:10px;font-weight:900;letter-spacing:.14em;padding-top:4px;border-top:1px solid rgba(255,255,255,.08)}
.admin-check-label{display:flex!important;align-items:center;gap:9px;min-height:42px;color:#c9ccce!important;cursor:pointer}
.admin-check-label input{width:auto!important;accent-color:#ff6500}
.admin-email-account-actions{display:flex;justify-content:flex-end;gap:9px}
.admin-email-account-actions button[hidden]{display:none!important}
.admin-email-account-list{display:grid;gap:10px;margin-top:22px}
.admin-email-account-item{padding:15px;border:1px solid rgba(255,255,255,.1);background:#0c0e0f}
.admin-email-account-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}
.admin-email-account-item-head strong,.admin-email-account-item-head small{display:block}
.admin-email-account-item-head small{margin-top:5px;color:#8f9599;font-size:10px}
.admin-email-account-state{padding:5px 7px;border:1px solid rgba(255,255,255,.14);color:#888;font-size:8px;font-weight:900;letter-spacing:.08em}
.admin-email-account-state.is-enabled{border-color:rgba(92,223,152,.35);color:#73e6a5}
.admin-email-account-meta{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:12px;color:#aeb3b6;font-size:10px}
.admin-email-account-item-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:14px}
.admin-email-account-item-actions .admin-danger{border-color:rgba(220,80,80,.45);color:#ff9b9b}
@media(max-width:760px){.admin-email-account-item-head{flex-direction:column}.admin-email-account-item-actions{justify-content:stretch}.admin-email-account-item-actions button{flex:1}.admin-email-account-actions{flex-direction:column}.admin-email-account-actions button{width:100%}}

/* V263 — transparenter Spartaner als globale Dekorgrafik.
   Er liegt auf derselben visuellen Ebene wie das GRIT/Motto-Artwork,
   bleibt hinter allen Fenstern und veraendert keine Inhaltsflaechen. */
body.public-site:not(.admin-page) .site-spartan-artwork{
  position:fixed !important;
  z-index:2 !important;
  top:clamp(90px,9vh,150px) !important;
  left:clamp(-120px,-5vw,-24px) !important;
  width:min(43vw,760px) !important;
  height:auto !important;
  opacity:.92 !important;
  pointer-events:none !important;
  user-select:none !important;
}
body.public-site:not(.admin-page) .site-spartan-artwork img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  user-select:none !important;
  -webkit-user-drag:none !important;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.48));
}
@media (min-width:1800px){
  body.public-site:not(.admin-page) .site-spartan-artwork{
    top:clamp(92px,9vh,170px) !important;
    left:clamp(-140px,-4vw,-28px) !important;
    width:min(39vw,840px) !important;
  }
}
@media (max-width:1099px){
  body.public-site:not(.admin-page) .site-spartan-artwork{
    top:clamp(118px,12vh,190px) !important;
    left:-78px !important;
    width:min(60vw,560px) !important;
    opacity:.82 !important;
  }
}
@media (max-width:650px){
  body.public-site:not(.admin-page) .site-spartan-artwork{
    top:150px !important;
    left:-112px !important;
    width:78vw !important;
    opacity:.62 !important;
  }
}

/* V265 — dichtere, unregelmaessige aufsteigende Glut statt runder Punkte. */
.embers .ember{
  width:var(--w,2px) !important;
  height:var(--h,4px) !important;
  border-radius:var(--ember-radius,55% 45% 62% 38%) !important;
  background:var(--hue,#ff9a3d) !important;
  box-shadow:0 0 5px var(--hue,#ff9a3d),0 0 13px rgba(255,91,18,.72) !important;
  transform-origin:50% 100%;
  animation-name:grit-ember-rise !important;
}
@keyframes grit-ember-rise{
  from{transform:translate3d(0,20vh,0) rotate(var(--r,0deg)) scale(.62)}
  42%{transform:translate3d(calc(var(--x,0px) * .42),-36vh,0) rotate(calc(var(--r,0deg) * .45)) scale(1)}
  to{transform:translate3d(var(--x,0px),-110vh,0) rotate(calc(var(--r,0deg) * -.25)) scale(1.42)}
}
.embers .ember::after{
  content:"";
  position:absolute;
  left:50%;
  top:calc(100% - 1px);
  width:max(1px,calc(var(--w,2px) * .62));
  height:var(--tail,5px);
  transform:translateX(-50%) rotate(calc(var(--r,0deg) * -.45));
  transform-origin:top center;
  border-radius:50%;
  background:linear-gradient(to bottom,rgba(255,137,45,.7),transparent);
  filter:blur(.25px);
  opacity:.62;
}
.embers .ember--spark{
  --ember-radius:68% 32% 56% 44% !important;
}
.embers .ember--grain{
  --ember-radius:42% 58% 35% 65% !important;
  transform:rotate(var(--r,0deg));
}
.embers .ember--flare{
  --ember-radius:58% 42% 72% 28% !important;
  filter:blur(.1px);
}
@media(prefers-reduced-motion:reduce){
  .embers .ember::after{display:none}
}

/* V266 — Glut liegt über dem GRIT/Motto-Artwork, bleibt aber unter
   Inhaltsfenstern/Kacheln und der globalen Navigation. */
body .site-visual-layer .embers{
  position:absolute !important;
  inset:0 !important;
  z-index:2 !important;
  pointer-events:none !important;
}

/* V267 — moderne Lösch-Schaltfläche und linke Stream-Badges. */
body:not(.admin-page) .delete-btn{
  display:grid;
  place-items:center;
  padding:0;
  cursor:pointer;
  transition:color .16s ease,border-color .16s ease,background .16s ease,transform .16s ease;
}
body:not(.admin-page) .delete-btn__icon{
  width:14px;
  height:14px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
}
body:not(.admin-page) .delete-btn:hover,
body:not(.admin-page) .delete-btn:focus-visible{
  color:#ffb1b1;
  border-color:rgba(255,120,120,.78);
  background:rgba(75,18,22,.92);
  transform:scale(1.06);
  outline:none;
}
body:not(.admin-page) .player-socials{
  left:8px;
  right:auto;
}
body:not(.admin-page) .player-card .delete-btn ~ .player-socials{
  top:43px;
}

/* V268 — Admin-Artwork liegt fest hinter Sidebar, Header und Einstellungsfenstern.
   Es bleibt sichtbar, nimmt aber keinen Platz im Dokumentfluss ein. */
body.public-site.admin-page #grit-page-content > .site-spartan-artwork{
  display:block !important;
  position:fixed !important;
  z-index:0 !important;
  top:-120px !important;
  left:-150px !important;
  width:min(48vw,860px) !important;
  height:auto !important;
  opacity:.30 !important;
  pointer-events:none !important;
  user-select:none !important;
}
body.public-site.admin-page #grit-page-content > .site-spartan-artwork img{
  display:block !important;
  width:100% !important;
  height:auto !important;
  object-fit:contain !important;
  filter:drop-shadow(0 18px 30px rgba(0,0,0,.48));
}
body.public-site.admin-page #grit-page-content > .admin-page{
  position:relative !important;
  z-index:1 !important;
  background:linear-gradient(120deg,rgba(8,9,9,.90),rgba(8,9,9,.97) 58%,rgba(8,9,9,.985)) !important;
}
body.public-site.admin-page .admin-main{
  z-index:2 !important;
}

/* V273 — getrennte Spartaner-Positionen für 1440p- und 1080p-Desktops.
   Gilt auf öffentlichen Seiten und im Adminbereich. Die Erkennung erfolgt
   über die Breite, damit Browserhöhe und Fensterleiste sie nicht verhindern. */
@media (min-width:2200px){
  body.public-site:not(.admin-page) > .site-spartan-artwork{
    top:calc(clamp(92px,9vh,170px) - 50px) !important;
    left:calc(clamp(-140px,-4vw,-28px) - 40px) !important;
    width:min(37vw,798px) !important;
  }
  body.public-site.admin-page #grit-page-content > .site-spartan-artwork{
    top:-200px !important;
  }
}

@media (min-width:1100px) and (max-width:2199px){
  body.public-site:not(.admin-page) > .site-spartan-artwork{
    top:clamp(86px,8vh,125px) !important;
    left:-180px !important;
    width:min(32vw,600px) !important;
  }
  body.public-site.admin-page #grit-page-content > .site-spartan-artwork{
    top:-120px !important;
    left:-260px !important;
    width:min(34vw,580px) !important;
  }
}

@media(max-width:850px){
  body.public-site.admin-page #grit-page-content > .site-spartan-artwork{
    top:-10px !important;
    left:-170px !important;
    width:min(82vw,600px) !important;
    opacity:.22 !important;
  }
}

/* V270 — MEDIEN, MATCHES und UMFRAGEN bleiben innerhalb ihres Fensters.
   Lange Titel, Links oder Antworttexte dürfen keine zusätzliche Seitenbreite erzeugen. */
body.public-site:not(.admin-page) .media-page-shell,
body.public-site:not(.admin-page) .matches-page-shell,
body.public-site:not(.admin-page) .polls-page-shell,
body.public-site:not(.admin-page) .media-page-panel,
body.public-site:not(.admin-page) .matches-page-panel,
body.public-site:not(.admin-page) .polls-page-panel,
body.public-site:not(.admin-page) .media-grid,
body.public-site:not(.admin-page) .matches-page-list,
body.public-site:not(.admin-page) .polls-list{
  box-sizing:border-box !important;
  min-width:0 !important;
  max-width:100% !important;
}
body.public-site:not(.admin-page) .media-page-panel,
body.public-site:not(.admin-page) .matches-page-panel,
body.public-site:not(.admin-page) .polls-page-panel{
  overflow-x:hidden !important;
  overflow-y:auto !important;
  max-height:var(--grit-panel-max, none) !important;
}
body.public-site:not(.admin-page) .media-card,
body.public-site:not(.admin-page) .match-card,
body.public-site:not(.admin-page) .poll-card{
  box-sizing:border-box !important;
  min-width:0 !important;
  max-width:100% !important;
}
body.public-site:not(.admin-page) .media-card-copy,
body.public-site:not(.admin-page) .poll-card,
body.public-site:not(.admin-page) .poll-card h2,
body.public-site:not(.admin-page) .matches-page-map-row{
  overflow-wrap:anywhere !important;
  word-break:break-word;
}
body.public-site:not(.admin-page) .media-frame,
body.public-site:not(.admin-page) .media-frame iframe{
  display:block !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
}
body.public-site:not(.admin-page) .poll-option{
  grid-template-columns:22px minmax(0,1fr) auto !important;
  min-width:0 !important;
}
body.public-site:not(.admin-page) .matches-page-map-row,
body.public-site:not(.admin-page) .matches-page-map-row>*{
  min-width:0 !important;
}
body.public-site:not(.admin-page) .matches-page-main,
body.public-site:not(.admin-page) .polls-page-main{
  min-width:0 !important;
  max-width:100% !important;
}

/* V274 — ausschließlich öffentliche Inhaltsfenster 20px tiefer.
   Der Adminbereich und die feste Hintergrundhöhe bleiben unverändert. */
body.public-site:not(.admin-page) > main > .content-shell{
  margin-top:20px !important;
}

/* V275 — auf 1080p-Desktops bleibt die bewaehrte Fensterposition aus V273.
   Nur die zusaetzlichen 20px aus V274 werden hier wieder aufgehoben. */
@media (min-width:1100px) and (max-width:2199px){
  body.public-site:not(.admin-page) > main > .content-shell{
    margin-top:0 !important;
  }
}

/* V276 — FACEIT-Verknüpfungswunsch im eigenen Einstellungsbereich. */
.account-faceit-request{display:grid;gap:20px}
.account-faceit-request-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px}
.account-faceit-request-head h2{margin:5px 0 8px}
.account-faceit-request-head p{max-width:720px;margin:0;color:#989da2}
.account-faceit-status{flex:0 0 auto;padding:8px 10px;border:1px solid rgba(255,255,255,.16);color:#8e9398;font-size:9px;font-weight:950;letter-spacing:.1em}
.account-faceit-status--pending{border-color:rgba(255,132,35,.48);color:#ff9138}
.account-faceit-status--linked{border-color:rgba(85,224,150,.45);color:#65e69d}
.account-faceit-form{display:grid;grid-template-columns:minmax(260px,1fr) auto;align-items:end;gap:14px}
.account-faceit-form>label{display:grid;gap:7px;color:#c4c7c9;font-size:10px;font-weight:900;letter-spacing:.08em}
.account-faceit-form input{box-sizing:border-box;width:100%;padding:13px;border:1px solid rgba(255,255,255,.14);background:#0b0c0d;color:#fff}
.account-faceit-form .public-player-profile-message{grid-column:1/-1}
.account-faceit-form .account-profile-actions{margin:0}
.auth-field-hint{display:block;margin-top:6px;color:#888f94;font-size:9px;line-height:1.5;letter-spacing:0;text-transform:none}
.member-faceit-request{color:#ff9138!important}
.member-edit-faceit-request{margin-top:14px;padding:12px 14px;border:1px solid rgba(255,132,35,.38);background:rgba(255,106,0,.06);color:#ff9b4a;font-size:10px;font-weight:900;letter-spacing:.08em}
@media(max-width:760px){.account-faceit-request-head{flex-direction:column}.account-faceit-form{grid-template-columns:1fr}.account-faceit-form .account-profile-actions{justify-content:stretch}.account-faceit-form .account-profile-actions button{flex:1}}

/* V278 — übersichtliche FACEIT-Profilansicht im GRIT-Stil. */
.faceit-profile-dashboard{display:grid;gap:14px;margin-top:18px;color:#f4f4f4}
.faceit-profile-dashboard section,.faceit-details-panel{box-sizing:border-box;border:1px solid rgba(255,255,255,.095);border-radius:4px;background:linear-gradient(145deg,rgba(14,15,16,.97),rgba(7,8,9,.98));box-shadow:0 12px 30px rgba(0,0,0,.22)}
.faceit-section-kicker{display:block;color:#ff761b;font-size:9px;font-weight:950;letter-spacing:.14em}
.faceit-summary-panel{position:relative;display:grid;grid-template-columns:minmax(220px,1fr) auto minmax(380px,1.25fr);align-items:center;gap:28px;min-height:128px;padding:22px 25px;overflow:hidden}
.faceit-summary-panel::before{content:"";position:absolute;inset:0 auto 0 0;width:44%;pointer-events:none;background:linear-gradient(120deg,rgba(255,101,0,.10),transparent 68%),repeating-linear-gradient(120deg,transparent 0 50px,rgba(255,101,0,.025) 50px 90px)}
.faceit-summary-copy,.faceit-level-block,.faceit-summary-totals{position:relative;z-index:1}
.faceit-summary-copy h3,.faceit-performance-panel h3,.faceit-matches-panel h3{margin:5px 0 4px;font-size:14px;letter-spacing:.08em}
.faceit-summary-copy small{color:#858a8e;font-size:9px}
.faceit-level-block{display:flex;align-items:center;gap:13px;padding-right:27px;border-right:1px solid rgba(255,255,255,.08)}
.faceit-level-ring{display:grid;place-items:center;width:55px;height:55px;border:3px solid #ff6500;border-radius:50%;background:#090a0b;box-shadow:0 0 22px rgba(255,101,0,.18),inset 0 0 12px rgba(255,101,0,.1);color:#fff;font-size:19px;font-weight:950}
.faceit-level-block div{display:grid}.faceit-level-block small,.faceit-level-block em,.faceit-summary-totals small,.faceit-performance-metrics small{color:#7f858a;font-size:8px;font-style:normal;font-weight:900;letter-spacing:.1em}.faceit-level-block strong{font-size:25px;line-height:1.05}.faceit-level-block em{color:#ff761b;margin-top:2px}
.faceit-summary-totals{display:grid;grid-template-columns:repeat(4,minmax(80px,1fr));gap:8px}.faceit-summary-totals>div{display:grid;gap:5px;padding:12px 14px;border-left:1px solid rgba(255,255,255,.08)}.faceit-summary-totals strong{font-size:18px}.faceit-summary-totals small{display:block}
.faceit-performance-panel,.faceit-matches-panel{padding:20px}.faceit-performance-panel>header,.faceit-matches-panel>header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding-bottom:13px;border-bottom:1px solid rgba(255,255,255,.08)}
.faceit-record{display:flex;align-items:center;gap:8px;font-size:11px;font-weight:950}.faceit-record span:first-child{color:#54e783}.faceit-record span:last-child{color:#ff5963}.faceit-record b{color:#565c60}
.faceit-performance-layout{display:grid;grid-template-columns:minmax(360px,1.3fr) minmax(360px,1fr);gap:16px;padding-top:16px}.faceit-performance-chart{position:relative;display:grid;min-height:214px;padding:15px;border:1px solid rgba(255,255,255,.07);background:linear-gradient(180deg,rgba(255,101,0,.025),rgba(0,0,0,.12))}.faceit-chart-label{color:#969b9f;font-size:8px;font-weight:900;letter-spacing:.1em}.faceit-performance-chart svg{width:100%;height:158px;overflow:visible}.faceit-performance-chart line{stroke:rgba(255,255,255,.065);stroke-width:.25;vector-effect:non-scaling-stroke}.faceit-performance-chart polygon{fill:rgba(255,101,0,.09)}.faceit-performance-chart polyline{fill:none;stroke:#ff6500;stroke-width:.75;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke;filter:drop-shadow(0 0 3px rgba(255,101,0,.32))}.faceit-performance-chart circle{stroke:#0a0b0c;stroke-width:.55;vector-effect:non-scaling-stroke}.faceit-performance-chart circle.is-win{fill:#4ee982}.faceit-performance-chart circle.is-loss{fill:#ff4e5b}.faceit-chart-caption{display:flex;justify-content:space-between;color:#575d61;font-size:7px;font-weight:900;letter-spacing:.08em}
.faceit-performance-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.faceit-performance-metrics>div{display:grid;align-content:center;gap:6px;min-height:82px;padding:13px 15px;border:1px solid rgba(255,255,255,.085);background:#0a0b0c}.faceit-performance-metrics strong{font-size:18px}.faceit-chart-empty{display:grid;place-items:center;min-height:120px;padding:20px;color:#6f7579;font-size:10px;text-align:center}
.faceit-matches-panel>header>small{color:#6f7579;font-size:8px;font-weight:900;letter-spacing:.09em}.faceit-match-table-wrap{overflow-x:auto;padding-top:13px}.faceit-match-table{width:100%;min-width:780px;border-collapse:separate;border-spacing:0 4px;font-size:10px}.faceit-match-table th{padding:8px 11px;color:#777d81;font-size:8px;letter-spacing:.1em;text-align:left}.faceit-match-table td{padding:11px;background:#0b0c0d;border-top:1px solid rgba(255,255,255,.035);border-bottom:1px solid rgba(255,255,255,.035)}.faceit-match-table tr td:first-child{border-left:3px solid #ff5862}.faceit-match-table tr.is-win td:first-child{border-left-color:#42e078}.faceit-match-table td:nth-child(2){display:flex;align-items:center;gap:9px}.faceit-result-badge{display:grid;place-items:center;width:21px;height:21px;border-radius:3px;background:#ec3443;color:#fff;font-size:9px;font-weight:950}.faceit-match-table tr.is-win .faceit-result-badge{background:#20bd5d}.faceit-match-table td:nth-child(4) strong{display:inline-block;padding:3px 6px;border-bottom:2px solid #ff6500;background:#181a1b}
.faceit-details-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.faceit-details-panel{overflow:hidden}.faceit-details-panel>summary,.faceit-map-list>details>summary{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px;cursor:pointer;list-style:none;color:#eee;font-size:10px;font-weight:950;letter-spacing:.1em}.faceit-details-panel>summary::-webkit-details-marker,.faceit-map-list>details>summary::-webkit-details-marker{display:none}.faceit-details-panel>summary::after,.faceit-map-list>details>summary::after{content:"+";color:#ff761b;font-size:18px}.faceit-details-panel[open]>summary::after,.faceit-map-list>details[open]>summary::after{content:"−"}.faceit-details-panel>summary small{margin-left:auto;color:#686e72;font-size:8px}.faceit-details-panel[open]>summary{border-bottom:1px solid rgba(255,255,255,.08)}
.faceit-detail-values{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;padding:14px}.faceit-detail-values>div{padding:12px;border:1px solid rgba(255,255,255,.065);background:#090a0b}.faceit-detail-values small{display:block;color:#777d82;font-size:7px;font-weight:900;letter-spacing:.07em}.faceit-detail-values strong{display:block;margin-top:5px;overflow-wrap:anywhere;font-size:13px}.faceit-map-list{padding:8px}.faceit-map-list>details{border-bottom:1px solid rgba(255,255,255,.065)}.faceit-map-list>details:last-child{border-bottom:0}.faceit-map-list>details>summary{padding:12px 10px}.faceit-map-list>details>summary::after{margin-left:auto}
@media(max-width:1180px){.faceit-summary-panel{grid-template-columns:1fr auto}.faceit-summary-totals{grid-column:1/-1}.faceit-performance-layout{grid-template-columns:1fr}.faceit-details-grid{grid-template-columns:1fr}}
@media(max-width:760px){.faceit-summary-panel{grid-template-columns:1fr;gap:18px}.faceit-level-block{padding:0 0 18px;border-right:0;border-bottom:1px solid rgba(255,255,255,.08)}.faceit-summary-totals{grid-template-columns:repeat(2,1fr)}.faceit-performance-panel,.faceit-matches-panel{padding:14px}.faceit-performance-layout{grid-template-columns:minmax(0,1fr)}.faceit-performance-chart{min-height:185px;padding:10px}.faceit-performance-chart svg{height:135px}.faceit-performance-metrics{grid-template-columns:1fr}.faceit-detail-values{grid-template-columns:1fr}.faceit-performance-panel>header,.faceit-matches-panel>header{flex-direction:column}}

/* V279 — lange Spielerprofile bleiben innerhalb des Hintergrunds und
   scrollen als ein einziges Fenster. HOME/TEAMS bleiben unverändert. */
body.public-site:not(.admin-page) .public-player-profile-main,
body.public-site:not(.admin-page) .public-player-profile-shell{
  box-sizing:border-box !important;
  min-width:0 !important;
  max-width:100% !important;
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body.public-site:not(.admin-page) .public-player-profile-card{
  box-sizing:border-box !important;
  min-width:0 !important;
  height:auto !important;
  min-height:0 !important;
  max-height:var(--grit-panel-max, none) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-y:auto !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
body.public-site:not(.admin-page) .public-player-profile-card::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

/* V284 — Umfragen scrollen weiter, die technische Scrollleiste bleibt unsichtbar. */
body.public-site:not(.admin-page) .polls-page-panel{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
body.public-site:not(.admin-page) .polls-page-panel::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}
/* V289 — Statistik-Aktualisierung für jedes Spiel und mehr Abstand zur Mitgliederverwaltung. */
.profile-stat-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}.profile-refresh-stats{padding:9px 11px;border:1px solid rgba(255,101,0,.45);background:transparent;color:#ff8a00;font-size:9px;font-weight:900;letter-spacing:.08em;cursor:pointer}.profile-refresh-stats:disabled{opacity:.55;cursor:wait}.roster-member-management{margin-top:38px!important}

/* V292 — zentrales Impressum mit administrierbaren Angaben. */
.site-footer{
  display:flex!important;
  align-items:center!important;
  justify-content:space-between!important;
  gap:22px!important;
}
.site-footer-brand,.site-footer-right{display:flex;align-items:center;gap:16px}
.site-footer-right{margin-left:auto}
.site-footer small{margin-left:0!important;width:auto!important}
.site-footer a{padding:7px 0;color:#a8abad;font-size:9px;font-weight:900;letter-spacing:.12em;text-decoration:none}
.site-footer a:hover,.site-footer a:focus-visible{color:#ff6500}
.legal-page-main{padding:290px 0 50px;min-height:calc(100vh - 120px)}
.legal-page-shell{max-width:1050px}
.legal-page-panel{padding:34px}
.legal-page-panel h1{margin:5px 0 0;font-size:clamp(28px,3vw,42px)}
.legal-content{display:grid;gap:0;margin-top:25px}
.legal-content section{padding:22px 0;border-top:1px solid rgba(255,255,255,.08)}
.legal-content h2{margin:0 0 12px;color:#ff760f;font-size:11px;letter-spacing:.14em}
.legal-content p,.legal-content address{margin:0;color:#c1c4c6;font-size:14px;font-style:normal;line-height:1.75}
.legal-content a{color:#ff8a32;overflow-wrap:anywhere}
.legal-preline{white-space:pre-line}
.legal-empty{margin-top:25px;padding:24px;border:1px solid rgba(255,101,0,.25);background:rgba(8,9,10,.65)}
.legal-empty strong{color:#ff760f;font-size:11px;letter-spacing:.12em}.legal-empty p{margin:8px 0 0;color:#969b9e}
.admin-imprint-card .admin-card-head>a{flex:0 0 auto;text-decoration:none}
.admin-imprint-responsible-toggle{margin:20px 0 14px!important}
.admin-imprint-card #imprintResponsibleFields{margin-bottom:16px}
.admin-imprint-card .admin-wide-label{display:grid;gap:8px}

/* V295 — einheitlicher Abstand zwischen allen Fenstern in EINSTELLUNGEN. */
body.public-site.admin-page #admin-settings-view.active{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:22px;
}
body.public-site.admin-page #admin-settings-view>.admin-title-row{
  margin-bottom:8px;
}
body.public-site.admin-page #admin-settings-view>.admin-card{
  min-width:0;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* V296 — öffentliches Kontaktformular mit Versand an Kontakt / Support. */
.contact-page-shell{max-width:920px}
.contact-page-panel{padding:34px}
.contact-intro{margin:12px 0 24px;color:#aeb3b6;line-height:1.65}
.contact-form{display:grid;gap:17px;margin-top:22px}
.contact-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.contact-form label{display:grid;gap:8px;color:#ff760f;font-size:10px;font-weight:900;letter-spacing:.1em}
.contact-form input,.contact-form textarea{box-sizing:border-box;width:100%;padding:13px 14px;border:1px solid rgba(255,255,255,.13);border-radius:4px;background:#090a0b;color:#f3f3f3;font:inherit;outline:none}
.contact-form textarea{min-height:180px;resize:vertical;line-height:1.55}
.contact-form input:focus,.contact-form textarea:focus{border-color:rgba(255,101,0,.78);box-shadow:0 0 0 3px rgba(255,101,0,.07)}
.contact-status{margin:14px 0;padding:13px 15px;border:1px solid rgba(255,255,255,.13);background:rgba(8,9,10,.76);color:#c8cccf;font-size:12px;line-height:1.5}
.contact-status--success{border-color:rgba(88,221,148,.42);color:#9be8bd}
.contact-status--error{border-color:rgba(255,91,99,.42);color:#ffafb3}
.contact-status--notice{border-color:rgba(255,101,0,.34);color:#d6a578}
.contact-privacy-note{margin:0;color:#858b90;font-size:10px;line-height:1.55}
.contact-submit{justify-self:start;margin-top:2px}
.contact-submit:disabled{opacity:.45;cursor:not-allowed}
.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
@media(max-width:650px){
  .site-footer{align-items:flex-start!important;flex-direction:column!important}
  .site-footer-right{width:100%;margin-left:0;justify-content:space-between}
  .legal-page-main{padding-top:250px}
  .legal-page-panel{padding:22px 16px}
  .contact-page-panel{padding:22px 16px}
  .contact-form-grid{grid-template-columns:1fr}
  .contact-submit{width:100%}
}

/* V298 — öffentliche Unterseiten: GRIT vollständig sichtbar und alle
   Inhaltsfenster insgesamt 70px tiefer (weitere 50px). HOME, Admin und Navigation bleiben unverändert.
   Die direkte main/content-shell-Regel gilt automatisch auch für neue Seiten. */
body.public-site:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
  width:min(39vw,920px) !important;
}
body.public-site:not(.admin-page):not(.home-page) > main > .content-shell{
  margin-top:70px !important;
}
@media(max-width:1099px){
  body.public-site:not(.admin-page):not(.home-page) .site-visual-layer .site-brand-artwork{
    width:min(70vw,650px) !important;
  }
}

/* V298 — direkte Rückmeldung während und nach der Registrierung. */
.auth-register-feedback{display:none;padding:11px 12px;border:1px solid rgba(255,255,255,.14);font-size:11px;line-height:1.5}
.auth-register-feedback:not(:empty){display:block}
.auth-register-feedback.is-pending{border-color:rgba(255,101,0,.36);color:#ffc18f}
.auth-register-feedback.is-success{border-color:rgba(88,221,148,.42);color:#9be8bd}
.auth-register-feedback.is-success.has-mail-warning{border-color:rgba(255,174,66,.48);color:#ffd08e}
.auth-register-feedback.is-error{border-color:rgba(255,91,99,.42);color:#ffafb3}

/* V299 — 1440p-Unterseiten weitere 50px tiefer als 1080p.
   Gilt über die gemeinsame content-shell automatisch auch für neue Seiten. */
@media (min-width:2000px) and (max-width:3000px) and (min-height:1100px) and (max-height:1700px){
  body.public-site:not(.admin-page):not(.home-page) > main > .content-shell{
    margin-top:120px !important;
  }
}

/* V300 — kompakte E-Mail-Verwaltung mit mehreren Zwecken pro Postfach. */
.admin-email-accounts-card{overflow:hidden}
.admin-email-account-form{gap:14px}
.admin-email-block{padding:18px;border:1px solid rgba(255,255,255,.09);background:linear-gradient(145deg,rgba(255,101,0,.035),rgba(7,8,9,.5))}
.admin-email-block-head{display:flex;align-items:flex-start;gap:12px;margin-bottom:16px}
.admin-email-block-head>span{display:grid;place-items:center;flex:0 0 30px;width:30px;height:30px;border:1px solid rgba(255,101,0,.42);color:#ff760f;font-size:9px;font-weight:950}
.admin-email-block-head h3{margin:1px 0 4px;color:#ff760f;font-size:12px;letter-spacing:.12em}
.admin-email-block-head p{margin:0;color:#858b90;font-size:10px}
.admin-email-field-grid{display:grid;gap:14px}
.admin-email-field-grid--account{grid-template-columns:repeat(3,minmax(0,1fr))}
.admin-email-field-grid--account .admin-email-switches{grid-column:1/-1}
.admin-email-field-grid--smtp{grid-template-columns:minmax(260px,1.4fr) minmax(100px,.45fr) minmax(210px,1fr)}
.admin-email-field-grid--smtp .admin-email-password-field{grid-column:1/-1}
.admin-email-field-grid--incoming{grid-template-columns:repeat(4,minmax(0,1fr));padding-top:17px}
.admin-email-field-grid label>small,.admin-email-contact-fields label>small{color:#777f84;font-size:9px;font-weight:600;line-height:1.45;letter-spacing:0}
.admin-email-switches{display:flex;align-items:center;gap:28px;padding-top:2px}
.admin-email-switches .admin-check-label{min-height:28px}
.admin-email-purpose-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.admin-email-purpose-grid>label{display:grid!important;grid-template-columns:18px minmax(0,1fr);align-items:start;gap:10px!important;min-height:70px;padding:12px;border:1px solid rgba(255,255,255,.1);background:#0a0b0c;color:#ddd!important;cursor:pointer}
.admin-email-purpose-grid>label:has(input:checked){border-color:rgba(255,101,0,.55);background:rgba(255,101,0,.07)}
.admin-email-purpose-grid input{width:auto!important;margin:2px 0 0;padding:0!important;accent-color:#ff6500}
.admin-email-purpose-grid strong,.admin-email-purpose-grid small{display:block}
.admin-email-purpose-grid strong{color:#e9ebec;font-size:10px;line-height:1.35;letter-spacing:.06em}
.admin-email-purpose-grid small{margin-top:5px;color:#7f868a;font-size:9px;font-weight:600;line-height:1.4;letter-spacing:0}
.admin-email-contact-fields{display:grid;grid-template-columns:minmax(0,520px);margin-top:14px;padding:14px;border-left:2px solid #ff6500;background:rgba(255,101,0,.045)}
.admin-email-contact-fields[hidden]{display:none!important}
.admin-email-optional{border:1px solid rgba(255,255,255,.09);background:#0a0b0c}
.admin-email-optional summary{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:15px 17px;color:#d6d8da;cursor:pointer;list-style:none}
.admin-email-optional summary::-webkit-details-marker{display:none}
.admin-email-optional summary strong,.admin-email-optional summary small{display:block}
.admin-email-optional summary strong{font-size:10px;letter-spacing:.11em}
.admin-email-optional summary small{margin-top:4px;color:#737a7f;font-size:9px}
.admin-email-optional summary b{color:#ff760f;font-size:0;letter-spacing:.08em}
.admin-email-optional summary b::after{content:'ÖFFNEN';font-size:9px}
.admin-email-optional[open] summary b::after{content:'SCHLIESSEN'}
.admin-email-optional[open]{padding:0 17px 17px}
.admin-email-optional[open] summary{margin:0 -17px;border-bottom:1px solid rgba(255,255,255,.08)}
.admin-email-account-actions{align-items:center;margin-top:2px;padding-top:14px;border-top:1px solid rgba(255,255,255,.08)}
.admin-email-account-actions .admin-primary{margin-top:0}
.admin-email-account-actions .admin-secondary{min-height:42px}
@media(max-width:1100px){
  .admin-email-field-grid--account,.admin-email-purpose-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .admin-email-field-grid--smtp{grid-template-columns:1fr 120px}
  .admin-email-field-grid--smtp label:nth-child(3),.admin-email-field-grid--smtp .admin-email-password-field{grid-column:1/-1}
  .admin-email-field-grid--incoming{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
  .admin-email-block{padding:14px}
  .admin-email-field-grid--account,.admin-email-field-grid--smtp,.admin-email-field-grid--incoming,.admin-email-purpose-grid{grid-template-columns:1fr}
  .admin-email-field-grid--smtp label:nth-child(3),.admin-email-field-grid--smtp .admin-email-password-field{grid-column:auto}
  .admin-email-switches{align-items:flex-start;flex-direction:column;gap:6px}
}

/* V303 — V300-Profilfluss erhalten; Nutzerkonto, Spielerprofil und optionale Verknüpfung getrennt. */
.account-user-profile-card{padding:24px}
.account-user-profile-form{margin-top:18px}
.account-user-profile-form .account-profile-actions{margin-top:15px}
.account-user-profile-form button:disabled{opacity:.55;cursor:wait}
.member-edit-account-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:20px;padding-bottom:20px;border-bottom:1px solid rgba(255,255,255,.08)}
.member-edit-account-grid label{display:grid;gap:7px;color:#aeb2b5;font-size:9px;font-weight:900;letter-spacing:.09em}
.member-edit-account-grid input{box-sizing:border-box;width:100%;padding:11px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#eee}
.member-account-danger{margin-top:20px;padding:15px;border:1px solid rgba(255,78,78,.25);background:rgba(74,18,20,.18)}
.member-account-danger[hidden]{display:none!important}
.member-account-danger strong{display:block;color:#ff9b9b;font-size:10px;letter-spacing:.1em}
.member-account-danger p{margin:7px 0 12px;color:#b5a0a0;font-size:10px;line-height:1.5}
.member-account-danger button{min-height:36px;padding:0 12px;border:1px solid #8d2b2b;background:#561719;color:#ffd1d1;font-size:9px;font-weight:900;cursor:pointer}
.member-account-protected{display:inline-flex;align-items:center;min-height:30px;padding:0 7px;border:1px solid rgba(255,255,255,.08);color:#777d82;font-size:7px;font-weight:900;letter-spacing:.06em;white-space:nowrap}
.member-folder-actions{flex-wrap:wrap}
.member-folder-actions .member-folder-delete{min-height:30px;padding:0 8px}
.admin-player--placeholder{align-items:center}
.admin-player--placeholder small{display:block;margin-top:3px;color:#c58470;font-size:8px;font-weight:900;letter-spacing:.07em}
.admin-roster-placeholder-status{display:inline-block;color:#c58470;font-size:8px;font-weight:900;letter-spacing:.06em;text-align:right;line-height:1.35}
.admin-page .admin-roster-head:not(.is-custom-game),
.admin-page .admin-roster-row:not(.admin-roster-row--custom){
  grid-template-columns:minmax(220px,1.6fr) minmax(90px,1fr) minmax(80px,.75fr) minmax(80px,.85fr) minmax(90px,1fr) minmax(165px,.9fr);
}
.admin-page .admin-roster-actions-cell .admin-delete--roster{flex:0 0 34px;color:#ff6500}
@media(max-width:760px){
  .member-edit-account-grid{grid-template-columns:1fr}
  .admin-roster-placeholder-status{font-size:7px}
}
@media(max-width:850px){
  .admin-page .admin-roster-row:not(.admin-roster-row--custom){grid-template-columns:minmax(0,1.4fr) minmax(42px,.45fr) minmax(65px,.7fr) minmax(155px,auto)}
  .admin-page .admin-roster-row--custom{grid-template-columns:minmax(0,1fr) minmax(155px,auto)}
  .admin-page .admin-roster-row .admin-roster-actions-cell{grid-column:auto;min-width:155px}
}

/* V304 — Member ohne Profil bleiben im Team sichtbar, bis der Admin sie
   mit einem vorhandenen Spielerprofil verknüpft. Diese Karte ist bewusst
   nicht klickbar und verspricht noch keine Statistik. */
.player-card--member-placeholder{cursor:default;border-color:rgba(255,101,0,.28);background:linear-gradient(180deg,rgba(40,25,16,.72),rgba(9,10,11,.92))}
.player-card--member-placeholder .player-art{position:relative;filter:saturate(.45) brightness(.7)}
.player-member-placeholder-label{position:absolute;left:8px;right:8px;bottom:8px;padding:6px 7px;background:rgba(7,8,9,.86);border:1px solid rgba(255,145,62,.42);color:#ffad67;font-size:7px;font-weight:950;letter-spacing:.08em;text-align:center}
.player-member-placeholder-copy{display:block;margin-top:6px;color:#c58470;font-size:8px;line-height:1.35;letter-spacing:.04em}

/* V304 — Einstellungen sind ein normaler langer Dokumentfluss. Dadurch
   bleiben Bio, Bild-Upload und Speichern auf jedem Bildschirm erreichbar. */
html:has(body.account-settings-page),
body.account-settings-page,
body.account-settings-page > main.account-settings-main,
body.account-settings-page .account-settings-shell,
body.account-settings-page .account-settings-content,
body.account-settings-page .account-profile-card,
body.account-settings-page .account-user-profile-card,
body.account-settings-page .account-faceit-request{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}
body.account-settings-page > main.account-settings-main{padding-bottom:120px!important}

/* V305 — lange Seiten gehören dem normalen Dokument-Scroller.
   Die ältere Hintergrundbegrenzung setzt body auf eine feste Höhe und
   overflow:hidden. Diese Regel hat bewusst höhere Spezifität und gilt nur
   für Einstellungen und öffentliche Spielerprofile. */
html:has(body.public-site.long-document-page:not(.admin-page):not(.auth-page)){
  height:auto !important;
  min-height:100% !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
}
body.public-site.long-document-page:not(.admin-page):not(.auth-page){
  height:auto !important;
  min-height:100vh !important;
  max-height:none !important;
  overflow-x:hidden !important;
  overflow-y:visible !important;
}
body.public-site.long-document-page:not(.admin-page):not(.auth-page) > main,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) > main > .content-shell,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .account-settings-shell,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .account-settings-content,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-main,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-shell,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .account-user-profile-card,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .account-faceit-request,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .account-profile-card,
body.public-site.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-card{
  height:auto !important;
  min-height:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
body.public-site.long-document-page:not(.admin-page):not(.auth-page) > main.account-settings-main{
  padding-bottom:140px !important;
}

/* V306 — öffentliche Spielerprofile bleiben innerhalb der Hintergrundhöhe.
   Die Einstellungsseite bleibt ein normaler Dokument-Scroller. Beim
   Spielerprofil scrollt nur das Profilfenster selbst, so dass der Footer
   innerhalb des vorhandenen Hintergrunds bleibt und kein schwarzer Bereich
   unterhalb des Hintergrundbildes entsteht. */
body.public-site.player-profile-page.long-document-page:not(.admin-page):not(.auth-page) > main.public-player-profile-main{
  min-height:0 !important;
  padding-bottom:0 !important;
  overflow:visible !important;
}
body.public-site.player-profile-page.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-shell{
  min-height:0 !important;
  padding-bottom:0 !important;
  overflow:visible !important;
}
body.public-site.player-profile-page.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-card{
  max-height:var(--grit-panel-max, none) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-y:auto !important;
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
body.public-site.player-profile-page.long-document-page:not(.admin-page):not(.auth-page) .public-player-profile-card::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}

/* V307 — direkte FACEIT-Verknüpfung aus Roster und Member-Verwaltung. */
.admin-roster-member-link,
.member-faceit-link-action{
  border-color:rgba(255,101,0,.7)!important;
  color:#ff9a4d!important;
  white-space:nowrap;
}
.admin-roster-member-link:hover,
.member-faceit-link-action:hover{
  border-color:#ff6500!important;
  background:rgba(255,101,0,.1)!important;
  color:#fff!important;
}
.admin-roster-member-link:disabled,
.member-faceit-link-action:disabled{
  opacity:.6;
  cursor:wait;
}
.member-folder-actions .member-faceit-link-action{
  min-height:30px;
  padding:0 8px;
  font-size:8px;
}

/* V308 — eigenes Spielerprofil ohne verpflichtende FACEIT-Verknüpfung. */
.account-player-create-card{padding:24px}
.account-player-create-form{margin-top:18px}
.account-player-create-form .account-profile-actions{margin-top:15px}
.account-player-create-form button:disabled{opacity:.55;cursor:wait}
body.account-settings-page .account-player-create-card{height:auto!important;min-height:0!important;max-height:none!important;overflow:visible!important}

/* V309 — die Fenstergrenze folgt der tatsächlich gerenderten Bildhöhe.
   Das Hintergrundbild wird mit 100% auto skaliert; seine Originalhöhe (z.B.
   2000px) ist deshalb bei schmaleren Viewports nicht die sichtbare Höhe.
   app.js misst zusätzlich die aktive Datei exakt und aktualisiert den Wert. */
body.public-site{--grit-background-height:calc(100vw * 2500 / 3840)}
@media(max-width:2560px){body.public-site{--grit-background-height:calc(100vw * 2000 / 2560)}}
@media(max-width:1920px){body.public-site{--grit-background-height:calc(100vw * 1500 / 1920)}}
@media(max-width:1280px){body.public-site{--grit-background-height:calc(100vw * 1000 / 1280)}}

/* V310 — globale Musiksteuerung: feine Schnittkante. */
.grit-music-control{
  position:fixed;
  left:clamp(18px,4vw,72px);
  top:36px;
  z-index:95;
  display:flex;
  align-items:center;
  gap:7px;
  height:28px;
  pointer-events:none;
}
.grit-music-play{
  display:grid;
  place-items:center;
  width:22px;
  height:28px;
  padding:0;
  border:0;
  background:transparent;
  color:#ff9b42;
  font:inherit;
  font-size:13px;
  line-height:1;
  cursor:pointer;
  pointer-events:auto;
  transition:color .16s ease,transform .16s ease;
}
.grit-music-play:hover,
.grit-music-play:focus-visible{
  color:#fff;
  transform:scale(1.1);
}
.grit-music-play-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:10px;
  height:15px;
}
.grit-music-control.is-playing .grit-music-play-icon{
  width:10px;
  height:15px;
  font-size:0;
}
.grit-music-control.is-playing .grit-music-play-icon::after{
  content:"";
  display:block;
  width:3px;
  height:14px;
  border-radius:1px;
  background:currentColor;
  box-shadow:5px 0 0 currentColor;
}
.grit-music-volume{
  position:relative;
  display:block;
  width:76px;
  height:24px;
  pointer-events:auto;
}
.grit-music-volume:has(input:focus-visible){
  outline:1px solid rgba(255,155,66,.75);
  outline-offset:4px;
}
.grit-music-volume input{
  position:absolute;
  inset:0;
  z-index:3;
  width:100%;
  height:100%;
  margin:0;
  opacity:0;
  cursor:pointer;
}
.grit-music-volume-track{
  position:absolute;
  left:2px;
  right:2px;
  top:50%;
  height:13px;
  transform:translateY(-50%);
  background:linear-gradient(90deg,#ff6500 0 var(--grit-music-value,55%),rgba(255,255,255,.2) var(--grit-music-value,55%) 100%);
  clip-path:polygon(0 39%,100% 39%,100% 61%,0 61%);
}
.grit-music-volume-track::after{
  content:"";
  position:absolute;
  left:var(--grit-music-value,55%);
  top:0;
  width:7px;
  height:13px;
  transform:translateX(-50%) skewX(-20deg);
  border-left:2px solid #ff9b42;
  border-right:1px solid rgba(255,255,255,.65);
  filter:drop-shadow(0 0 4px rgba(255,101,0,.24));
}
.grit-music-control.is-resume-pending .grit-music-play,
.grit-music-control.is-music-error .grit-music-play{
  color:#ff7c79;
}
@media(max-width:900px){
  .grit-music-control{left:16px;top:32px}
}
@media(max-width:650px){
  .grit-music-control{left:14px;top:32px;gap:5px}
  .grit-music-volume{width:68px}
}

/* V311 Musikplayer oben links */
body.public-site .grit-music-control {
  left: clamp(18px, 4vw, 72px);
  right: auto;
  top: 22px;
  z-index: 1001;
}
@media (max-width: 900px) {
  body.public-site .grit-music-control {
    left: 16px;
    top: 18px;
  }
}
@media (max-width: 650px) {
  body.public-site .grit-music-control {
    left: 14px;
  }
}

/* V311 Admin-Logo neben Musikplayer */
body.public-site.admin-page .admin-top .admin-logo {
  margin-left: calc(clamp(18px, 4vw, 72px) + 90px);
}

/* GRIT_DIRECT_PROFILE_FIX */
html:has(body.public-site.account-settings-page.long-document-page:not(.admin-page)){
  height:100%!important;min-height:0!important;max-height:100%!important;overflow:hidden!important
}
body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page){
  height:100dvh!important;min-height:0!important;max-height:100dvh!important;overflow:hidden!important
}
body.public-site.account-settings-page #grit-page-content{
  height:100%;overflow:hidden
}
body.public-site.account-settings-page .site-visual-layer.world{
  position:fixed!important;inset:0!important;height:100dvh!important;
  min-height:100dvh!important;max-height:100dvh!important;
  background-size:cover!important;background-position:center top!important
}
body.public-site.account-settings-page .site-spartan-artwork{
  position:fixed!important;pointer-events:none!important
}
body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) main.account-settings-main{
  height:100dvh!important;min-height:0!important;max-height:100dvh!important;
  padding:100px 0 80px!important;box-sizing:border-box;overflow:hidden!important
}
body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) .account-settings-shell{
  height:100%!important;min-height:0!important;max-height:100%!important;
  overflow:hidden!important;align-items:stretch;
  width:calc(100% - 40px);max-width:1600px;margin:0 auto
}
body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) .account-settings-content{
  display:block;height:100%!important;min-height:0!important;max-height:100%!important;
  overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;
  padding-right:8px;scrollbar-width:thin;scrollbar-color:#ff6500 #111
}
body.account-settings-page .account-settings-nav{
  position:static;align-self:start;max-height:100%;overflow-y:auto
}
body.account-settings-page .account-settings-content>.panel{margin-bottom:16px}
body.account-settings-page .account-settings-content>details{display:block!important;padding:20px}
body.account-settings-page details>summary{
  cursor:pointer;color:#ff8b35;font-weight:800;font-size:14px;padding:8px 0
}
body.account-settings-page details[open]>summary{
  margin-bottom:18px;border-bottom:1px solid #555;padding-bottom:16px
}
body.account-settings-page #grit-page-content>footer{
  position:fixed!important;bottom:0!important;left:0!important;right:0!important;
  margin:0!important;padding:12px 20px!important;width:auto!important;
  max-width:none!important;z-index:5;background:#090a0ae6;font-size:10px
}
@media(max-width:820px){
  body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) main.account-settings-main{
    padding:80px 0 90px!important
  }
  body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) .account-settings-shell{
    grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr);
    gap:10px;width:calc(100% - 20px)
  }
  body.account-settings-page .account-settings-nav{padding:8px;max-height:140px}
  body.account-settings-page .account-settings-user{margin:0;padding:4px}
  body.account-settings-page .public-player-profile-form-grid{grid-template-columns:minmax(0,1fr)!important}
}

/* GRIT Profil: Scrollleiste ausblenden */
body.public-site.account-settings-page.long-document-page:not(.admin-page):not(.auth-page) .account-settings-content {
  scrollbar-width: none !important;
  scrollbar-gutter: auto !important;
}
body.account-settings-page .account-settings-content::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}

/* GRIT Admin-Benachrichtigungen */
.admin-user{display:flex;align-items:center;gap:12px}
.grit-notices{position:relative;display:inline-flex;align-items:center;text-align:left;font-family:Arial,sans-serif;font-style:normal;letter-spacing:normal}
.grit-bell{position:relative;display:grid;place-items:center;width:38px;height:38px;background:#141414;color:#ff8a30;border:1px solid #55402e;border-radius:6px;cursor:pointer}
.grit-notice-count{position:absolute;top:-6px;right:-6px;min-width:18px;height:18px;padding:0 4px;box-sizing:border-box;display:grid;place-items:center;border-radius:12px;background:#e74435;color:#fff;font:bold 11px Arial}
.grit-notices [hidden]{display:none!important}
.grit-notice-panel{position:absolute;right:0;top:48px;width:min(360px,calc(100vw - 32px));z-index:1500;background:#101112;border:1px solid #805022;box-shadow:0 12px 40px #000b;padding:15px;box-sizing:border-box;color:#eee}
.grit-notice-panel>strong{font-size:12px;color:#ff8a30}
.grit-notice-list{max-height:min(420px,65dvh);overflow-y:auto;margin-top:12px;font-size:12px}
.grit-notice-item{display:block;width:100%;text-align:left;background:#191b1c;border:0;border-left:3px solid transparent;padding:12px;margin:0 0 7px;color:#bbb;cursor:pointer;white-space:normal;overflow-wrap:anywhere;font:13px Arial}
.grit-notice-item.is-unread{border-left-color:#ff6500;color:#fff;background:#2a2019}
.grit-notice-item small{display:block;font-size:10px;color:#999;margin-top:7px}
.grit-notice-item:hover,.grit-bell:hover{background:#33251b}
.grit-notice-item:focus-visible,.grit-bell:focus-visible{outline:2px solid #ff8a30;outline-offset:2px}

/* GRIT Memberkarten: Angaben oben, Aktionen darunter */
.member-folder-card{grid-template-columns:36px minmax(0,1fr)!important;align-items:start}
.member-folder-card .member-folder-actions{grid-column:1/-1;width:100%;min-width:0;display:flex;flex-wrap:wrap;justify-content:flex-start;gap:8px;margin-top:6px}
.member-folder-card .member-folder-actions button{position:static;height:auto;min-height:30px;max-width:100%;white-space:normal;overflow-wrap:anywhere;padding:7px 9px}
.member-folder-card .member-folder-copy{min-width:0;width:100%}
.member-folder-card .member-name-link-row strong{min-width:0;white-space:normal;overflow-wrap:anywhere}
.member-folder-card .member-folder-copy small{white-space:normal;overflow-wrap:anywhere}

/* GRIT Server directory */
.grit-server-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:18px;margin-top:22px}
.grit-server-card{min-width:0;padding:20px;background:rgba(12,14,16,.85);border:1px solid #3b3026;border-top:2px solid #ff6500;overflow-wrap:anywhere}
.grit-server-card h2{font-size:19px;margin:10px 0;color:#eee}.grit-server-card small{color:#ff8a30}.grit-server-card p{font-size:13px;line-height:1.6;color:#aaa}
.grit-server-status.is-online{color:#66d898}.grit-server-address{font-family:monospace}
.grit-server-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.grit-server-actions button,.grit-server-join{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 12px;border:1px solid #614026;background:#171717;color:#fff;font-size:11px;cursor:pointer;max-width:100%;white-space:normal}
.grit-server-join{background:#f60;color:#080808;font-weight:bold}.grit-server-actions :focus-visible{outline:2px solid #ffa04a;outline-offset:3px}
.grit-server-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.grit-server-form label{display:flex;flex-direction:column;gap:7px}.grit-server-form input,.grit-server-form textarea{width:100%;box-sizing:border-box}.grit-server-form input[type=checkbox]{width:auto;align-self:flex-start}.grit-server-wide{grid-column:1/-1}
@media(max-width:650px){.grit-server-form{grid-template-columns:1fr}}

/* GRIT: ausgeblendete Admin-Reiter und Kacheln */
.admin-nav[hidden],.admin-overview-tile[hidden],.admin-view[hidden]{display:none!important}



/* GRIT_PUBLIC_WINDOWS_DOWN_200_STANDARD_V1 */
body.public-site:not(.admin-page):not(.home-page):not(.auth-page):not(.account-settings-page):not(.player-profile-page):not(.legal-page):not(.contact-page) #grit-page-content > main:not(.my-profiles-main):has(> .content-shell)::before {
  content:"";
  display:block;
  position:static;
  height:200px;
  min-height:200px;
  margin:0;
  padding:0;
  border:0;
  pointer-events:none;
}
/* Future content pages use the existing background-bound scrolling. */
body.public-site:not(.admin-page):not(.home-page):not(.auth-page):not(.account-settings-page):not(.player-profile-page):not(.legal-page):not(.contact-page) #grit-page-content > main:not(.my-profiles-main):has(> .content-shell) > .content-shell:not(.teams-page-shell):not(.news-page-shell):not(.matches-page-shell):not(.media-page-shell):not(.polls-page-shell) {
  box-sizing:border-box !important;
  min-height:0 !important;
  max-height:var(--grit-flow-max,none) !important;
  overflow-x:hidden !important;
  overflow-y:auto !important;
  overscroll-behavior-y:auto !important;
}

/* GRIT_SPARTAN_POSITION_V1 */
body.public-site:not(:has(#admin-settings-view.active)) .site-spartan-artwork {
  transform-origin: top left !important;
  transform: translate(-10px, -150px) scale(0.9) !important;
}

/* GRIT personal area V1 */
.admin-page [hidden]{display:none!important}
.admin-side{overflow-y:auto;scrollbar-width:none}
.admin-side::-webkit-scrollbar{display:none}
.admin-side>a.admin-nav{flex-shrink:0}
.admin-overview-tiles>a.admin-overview-tile{text-decoration:none;color:inherit}
body.public-site.personal-profile-page{height:auto!important;min-height:100vh!important;overflow-y:auto!important;overflow-x:hidden!important}
body.public-site.personal-profile-page main.account-settings-main{display:block!important;position:relative!important;top:auto!important;height:auto!important;max-height:none!important;margin-left:235px!important;padding:112px 46px 90px!important;overflow:visible!important}
body.public-site.personal-profile-page .account-settings-shell{display:block!important;width:100%!important;max-width:1100px!important;margin:0 auto!important;height:auto!important;max-height:none!important;overflow:visible!important}
body.public-site.personal-profile-page .account-settings-content{display:block!important;width:100%!important;height:auto!important;max-height:none!important;overflow:visible!important}
body.personal-profile-page .admin-user{color:inherit;text-decoration:none}
@media(max-width:850px){body.public-site.personal-profile-page main.account-settings-main{margin-left:70px!important;padding:100px 16px 70px!important}}

.personal-avatar-preview{display:block;width:120px;height:120px;object-fit:cover;border-radius:12px;margin:16px 0}

/* GRIT profile: same frame as other admin views */
html:has(body.public-site.personal-profile-page){height:auto!important;min-height:100%!important;max-height:none!important;overflow-x:hidden!important;overflow-y:auto!important}
body.public-site.personal-profile-page #grit-page-content{height:auto!important;min-height:100vh;overflow:visible!important}
body.public-site.admin-page .admin-home-link{border:1px solid rgba(255,106,0,.25);margin-bottom:8px;color:#ff8a32}

/* GRIT Umfragen: Titelbilder und Bildauswahl */
.poll-cover{display:block;width:100%;max-height:430px;margin:14px 0 18px;object-fit:cover;border:1px solid rgba(255,101,0,.32);background:#08090a}
.poll-image-upload{display:grid;gap:8px;margin-top:14px;color:#aeb2b5;font-size:9px;font-weight:900;letter-spacing:.09em}
.poll-image-upload input{box-sizing:border-box;width:100%;padding:10px;border:1px solid rgba(255,255,255,.12);background:#08090a;color:#ddd}
.poll-image-preview{margin-top:12px}
.poll-image-preview img{display:block;width:min(100%,520px);max-height:280px;object-fit:cover;border:1px solid rgba(255,101,0,.35)}
.admin-poll-thumb{width:86px;height:58px;flex:0 0 86px;object-fit:cover;border:1px solid rgba(255,101,0,.3)}



/* GRIT Umfragen: Bild und Scrollfenster V3 */
body.public-site.polls-page:not(.admin-page) .poll-cover {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: 100% !important;
  max-height: 280px !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 16px auto 22px !important;
  box-sizing: border-box !important;
}

body.public-site.polls-page:not(.admin-page) .polls-page-panel {
  box-sizing: border-box !important;
  min-height: 0 !important;
  height: auto !important;
  max-height: min(
    var(--grit-panel-max, calc(100vh - 140px)),
    max(240px, calc(100vh - 140px))
  ) !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  overscroll-behavior-y: auto !important;
  touch-action: pan-y;
  scrollbar-width: none !important;
}

body.public-site.polls-page:not(.admin-page)
.polls-page-panel::-webkit-scrollbar {
  display: none !important;
}

@media (max-width: 600px) {
  body.public-site.polls-page:not(.admin-page) .poll-cover {
    max-height: 200px !important;
  }
}

/* GRIT Umfragebild 1000x1000 V4 */
body.public-site.polls-page:not(.admin-page)
.polls-page-panel .poll-card img.poll-cover {
  display: block !important;
  width: 1000px !important;
  max-width: 100% !important;
  height: auto !important;
  max-height: none !important;
  aspect-ratio: 1 / 1 !important;
  object-fit: contain !important;
  object-position: center center !important;
  margin: 20px auto !important;
  box-sizing: border-box !important;
}

/* GRIT Umfragebild kompakt V5 */
body.public-site.polls-page:not(.admin-page)
.polls-page-panel .poll-card img.poll-cover {
  display: block !important;
  width: auto !important;
  height: auto !important;
  max-width: min(400px, 100%) !important;
  max-height: 250px !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  margin: 12px auto 18px !important;
}

/* GRIT Umfragen Zielgruppen V1 */
.poll-audience{border:0;border-top:1px solid #ffffff18;padding:22px 0 8px;margin:18px 0;min-width:0}
.poll-audience legend{padding:0 10px 0 0;color:#ff963d;font:800 11px/1.4 Arial,sans-serif;letter-spacing:.1em}
.poll-audience-modes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.poll-audience-modes label,.poll-audience-chip{position:relative;cursor:pointer;margin:0!important}
.poll-audience-modes input,.poll-audience-chip input{position:absolute;width:1px!important;height:1px!important;opacity:0;margin:0!important}
.poll-audience-modes span{display:flex;flex-direction:column;gap:7px;min-height:88px;justify-content:center;padding:16px;border:1px solid #ffffff24;border-radius:12px;background:#111214;box-sizing:border-box;transition:border-color .15s,background .15s}
.poll-audience-modes strong{font:700 14px/1.3 Arial,sans-serif;color:#f6f6f6}
.poll-audience-modes small{font:400 12px/1.4 Arial,sans-serif;color:#a7acb2;text-transform:none;letter-spacing:normal}
.poll-audience input:checked+span{border-color:#ff7800;background:#ff780016;box-shadow:inset 0 0 0 1px #ff780044}
.poll-audience input:focus-visible+span{outline:2px solid #ffad66;outline-offset:3px}
.poll-audience-options{display:flex;flex-wrap:wrap;gap:9px;margin:15px 0}
.poll-audience-chip span{display:flex;align-items:center;gap:9px;min-height:44px;padding:10px 14px;border:1px solid #ffffff26;border-radius:9px;background:#101113;color:#eee;font:600 13px/1.4 Arial,sans-serif;text-transform:none;letter-spacing:normal}
.poll-audience-chip input:checked+span::after{content:'✓';color:#ff9a45;font-weight:900}
.poll-audience-chip img{width:25px;height:25px;object-fit:contain}
.poll-audience-narrow{display:flex!important;align-items:center;gap:10px;color:#b5bac1!important;font:400 13px/1.5 Arial,sans-serif!important;text-transform:none!important;letter-spacing:normal!important;margin:16px 0!important}
.poll-audience-narrow input{width:17px!important;height:17px!important;accent-color:#ff7800;margin:0!important}
.poll-audience-summary{padding:12px 14px;border-left:2px solid #ff7800;background:#ff780009;color:#dedede!important;font:400 13px/1.6 Arial,sans-serif!important;margin:14px 0 0!important}
.poll-audience [hidden]{display:none!important}
@media(max-width:700px){.poll-audience-modes{grid-template-columns:1fr}.poll-audience-modes span{min-height:68px;padding:12px 14px}.poll-audience-chip{flex:1 1 140px}}


/* GRIT_DATHOST_READONLY_V1 */
/* GRIT Dathost directory */
.grit-dathost{margin-top:20px}.grit-dathost-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.grit-dathost-form label{display:flex;flex-direction:column;gap:7px;font-size:12px;letter-spacing:.06em;color:#e2d0bd}.grit-dathost-form input{width:100%;box-sizing:border-box;background:#141414;color:#fff;border:1px solid #494038;border-radius:5px;padding:12px;font:inherit}.grit-dathost-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;grid-column:1/-1}.grit-dathost-list{display:grid;gap:10px}.grit-dathost-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:13px;border:1px solid #45403b;background:#151515}.grit-dathost-row small{display:block;color:#bbb;margin-top:6px}.grit-dathost-note{font-size:13px;color:#aaa}@media(max-width:700px){.grit-dathost-form{grid-template-columns:1fr}.grit-dathost-row{flex-wrap:wrap}}


/* GRIT_PROFIL_ZUERST_ICON_ABSTAND_20260928 */
.admin-side .admin-nav {
    display: flex !important;
    align-items: center !important;
    gap: 16px !important;
}
.admin-side .admin-nav > .grit-sidebar-svg,
.admin-side .admin-nav > .admin-nav-icon,
.admin-side .admin-nav > .admin-nav-glyph {
    flex: 0 0 20px !important;
    width: 20px !important;
    min-width: 20px !important;
    margin: 0 !important;
}

/* GRIT_SIDEBAR_ROSTER_ABSTAND_20260928 */
.admin-side a.admin-nav {
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
}
.admin-side a.admin-nav > .admin-nav-glyph,
.admin-side a.admin-nav > .admin-nav-icon,
.admin-side a.admin-nav > .grit-sidebar-svg {
  flex: 0 0 18px !important;
  width: 18px !important;
  margin: 0 !important;
}
